From 863c6fcd7a792126815728e20cd3df09b9bd376c Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Tue, 9 Mar 2021 17:32:33 -0500 Subject: [PATCH] update tfjs and esbuild --- CHANGELOG.md | 3 + README.md | 2 +- dist/face-api.esm-nobundle.js | 2 +- dist/face-api.esm-nobundle.json | 3194 ---- dist/face-api.esm.js | 1016 +- dist/face-api.esm.js.map | 6 +- dist/face-api.esm.json | 3194 ---- dist/face-api.js | 1006 +- dist/face-api.js.map | 6 +- dist/face-api.json | 3073 ---- dist/face-api.node-cpu.js | 2 +- dist/face-api.node-cpu.json | 3073 ---- dist/face-api.node-gpu.js | 2 +- dist/face-api.node-gpu.json | 3073 ---- dist/face-api.node.js | 2 +- dist/face-api.node.json | 3073 ---- dist/tfjs.esm.js | 936 +- dist/tfjs.esm.js.map | 6 +- dist/tfjs.esm.json | 29564 ------------------------------ package-lock.json | 180 +- package.json | 8 +- server/build.js | 36 +- server/changelog.js | 3 + 23 files changed, 1780 insertions(+), 49680 deletions(-) delete mode 100644 dist/face-api.esm-nobundle.json delete mode 100644 dist/face-api.esm.json delete mode 100644 dist/face-api.json delete mode 100644 dist/face-api.node-cpu.json delete mode 100644 dist/face-api.node-gpu.json delete mode 100644 dist/face-api.node.json delete mode 100644 dist/tfjs.esm.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d0a619..3b7575d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,9 @@ Repository: **** ## Changelog +### **HEAD -> master** 2021/03/09 mandic00@live.com + + ### **1.0.1** 2021/03/09 mandic00@live.com - add badges diff --git a/README.md b/README.md index ac57afb..8958e9f 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ This is updated **face-api.js** with latest available TensorFlow/JS as the origi Forked from [face-api.js](https://github.com/justadudewhohacks/face-api.js) version **0.22.2** which was released on March 22nd, 2020 -Currently based on **`TensorFlow/JS` 3.2.0** +Currently based on **`TensorFlow/JS` 3.3.0** ### Why? diff --git a/dist/face-api.esm-nobundle.js b/dist/face-api.esm-nobundle.js index 9fa6079..50fb1b0 100644 --- a/dist/face-api.esm-nobundle.js +++ b/dist/face-api.esm-nobundle.js @@ -5,5 +5,5 @@ author: ' */ -var pn=Object.create,Ye=Object.defineProperty,dn=Object.getPrototypeOf,un=Object.prototype.hasOwnProperty,fn=Object.getOwnPropertyNames,ln=Object.getOwnPropertyDescriptor;var Dr=o=>Ye(o,"__esModule",{value:!0});var lo=(o,t)=>()=>(t||(t={exports:{}},o(t.exports,t)),t.exports),Er=(o,t)=>{for(var e in t)Ye(o,e,{get:t[e],enumerable:!0})},ft=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of fn(t))!un.call(o,r)&&r!=="default"&&Ye(o,r,{get:()=>t[r],enumerable:!(e=ln(t,r))||e.enumerable});return o},hn=o=>ft(Dr(Ye(o!=null?pn(dn(o)):{},"default",o&&o.__esModule&&"default"in o?{get:()=>o.default,enumerable:!0}:{value:o,enumerable:!0})),o);import*as Ca from"@tensorflow/tfjs/dist/index.js";import*as Na from"@tensorflow/tfjs-backend-wasm";var b=lo(xn=>{Dr(xn);ft(xn,Ca);ft(xn,Na)});var vo=lo((Pn,go)=>{Dr(Pn);Er(Pn,{isNodejs:()=>_n});function _n(){return typeof global=="object"&&!0&&typeof go!="undefined"&&typeof process!="undefined"&&!!process.version}});var ya=b();var Qr={};Er(Qr,{AnchorPosition:()=>pt,DrawBox:()=>Ue,DrawBoxOptions:()=>Hr,DrawFaceLandmarks:()=>Kr,DrawFaceLandmarksOptions:()=>Zr,DrawTextField:()=>Mt,DrawTextFieldOptions:()=>Ce,drawContour:()=>lt,drawDetections:()=>En,drawFaceExpressions:()=>In,drawFaceLandmarks:()=>kn});function lt(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},a)=>{let s=t[a];o.moveTo(s.x,s.y),o.lineTo(r,n)}),e){let r=t[t.length-1],n=t[0];if(!r||!n)return;o.moveTo(r.x,r.y),o.lineTo(n.x,n.y)}o.stroke()}var Mr={};Er(Mr,{computeReshapedDimensions:()=>Ir,getCenterPoint:()=>$t,isDimensions:()=>ze,isEven:()=>Ge,isFloat:()=>Nr,isTensor:()=>Bt,isTensor1D:()=>bn,isTensor2D:()=>Cr,isTensor3D:()=>ht,isTensor4D:()=>G,isValidNumber:()=>et,isValidProbablitiy:()=>ee,range:()=>it,round:()=>Rt});var ho=b();var S=class{constructor(t,e){if(!et(t)||!et(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new S(1/this.width,1/this.height)}};function Bt(o,t){return o instanceof ho.Tensor&&o.shape.length===t}function bn(o){return Bt(o,1)}function Cr(o){return Bt(o,2)}function ht(o){return Bt(o,3)}function G(o){return Bt(o,4)}function Nr(o){return o%1!=0}function Ge(o){return o%2==0}function Rt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function ze(o){return o&&o.width&&o.height}function Ir({width:o,height:t},e){let r=e/Math.max(t,o);return new S(Math.round(o*r),Math.round(t*r))}function $t(o){return o.reduce((t,e)=>t.add(e),new x(0,0)).div(new x(o.length,o.length))}function it(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function et(o){return!!o&&o!==Infinity&&o!==-Infinity&&!Number.isNaN(o)||o===0}function ee(o){return et(o)&&o>=0&&o<=1}var x=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new x(this.x+t.x,this.y+t.y)}sub(t){return new x(this.x-t.x,this.y-t.y)}mul(t){return new x(this.x*t.x,this.y*t.y)}div(t){return new x(this.x/t.x,this.y/t.y)}abs(){return new x(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new x(Math.floor(this.x),Math.floor(this.y))}};var w=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(et)}static assertIsValidBox(t,e,r=!1){if(!w.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},n=[r.left,r.top,r.right,r.bottom].every(et),a=[r.x,r.y,r.width,r.height].every(et);if(!a&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,i,c,m]=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];w.assertIsValidBox({x:s,y:i,width:c,height:m},"Box.constructor",e),this._x=s,this._y=i,this._width=c,this._height=m}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new x(this.left,this.top)}get topRight(){return new x(this.right,this.top)}get bottomLeft(){return new x(this.left,this.bottom)}get bottomRight(){return new x(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.round(a));return new w({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.floor(a));return new w({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,a=Math.abs(r-n);return re&&(i=-d+e+r,d=e),u>t&&(c=-u+t+n,u=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:s,edy:c,dx:a,edx:i,y:p,ey:u,x:m,ex:d,w:r,h:n}}calibrate(t){return new w({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var re=class extends w{constructor(t,e,r,n,a=!1){super({left:t,top:e,right:r,bottom:n},a)}};var Dt=class{constructor(t,e,r,n,a){this._imageDims=new S(a.width,a.height),this._score=t,this._classScore=e,this._className=r,this._box=new w(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new w(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new Dt(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var E=class extends Dt{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:a}=super.forSize(t,e);return new E(r,n,a)}};function Lr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),n=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),a=r*n;return e?a/(o.area+t.area-a):a/Math.min(o.area,t.area)}function kr(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:s,boxIndex:i})).sort((s,i)=>s.score-i.score).map(s=>s.boxIndex),a=[];for(;n.length>0;){let s=n.pop();a.push(s);let i=n,c=[];for(let m=0;mc[p]<=e)}return a}var ct=b();function rt(o,t){return ct.tidy(()=>{let[e,r,n]=t,a=ct.fill([...o.shape.slice(0,3),1],e,"float32"),s=ct.fill([...o.shape.slice(0,3),1],r,"float32"),i=ct.fill([...o.shape.slice(0,3),1],n,"float32"),c=ct.concat([a,s,i],3);return ct.sub(o,c)})}var Et=b();function Ar(o,t=!1){return Et.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),a=Math.round(n*(t?.5:1)),s=e>r?2:1,i=u=>{let f=o.shape.slice();return f[s]=u,Et.fill(f,0,"float32")},c=i(a),m=n-c.shape[s],d=[t&&m?i(m):null,o,c].filter(u=>!!u).map(u=>Et.cast(u,"float32"));return Et.concat(d,s)})}function gn(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function De(o){return 1/(1+Math.exp(-o))}function vn(o){return Math.log(o/(1-o))}var oe=class extends w{constructor(t,e,r,n,a=!1){super({x:t,y:e,width:r,height:n},a)}};var yn=.5,Fn=.43,Tn=.45,z=class{constructor(t,e,r=new x(0,0)){let{width:n,height:a}=e;this._imgDims=new S(n,a),this._shift=r,this._positions=t.map(s=>s.mul(new x(n,a)).add(r))}get shift(){return new x(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new x(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new x(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let a=t instanceof E?t.box.floor():new w(t);return this.shiftBy(a.x,a.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:n}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(n)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,n]=t,a=d=>n.sub(d).magnitude(),s=(a(e)+a(r))/2,i=Math.floor(s/Tn),c=$t(t),m=Math.floor(Math.max(0,c.x-yn*i)),p=Math.floor(Math.max(0,c.y-Fn*i));return new oe(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=kr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var xo=class extends z{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],$t([t[3],t[4]])]}};var ne=class extends z{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map($t)}};var Ee=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Rt(this.distance)})`:""}`}};var Me=class extends w{static assertIsValidLabeledBox(t,e){if(w.assertIsValidBox(t,e),!et(t.label))throw new Error(`${e} - expected property label (${t.label}) to be a number`)}constructor(t,e){super(t);this._label=e}get label(){return this._label}};var xt=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new xt(t.label,e)}};var bo=class extends Me{static assertIsValidPredictedBox(t,e){if(Me.assertIsValidLabeledBox(t,e),!ee(t.score)||!ee(t.classScore))throw new Error(`${e} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,e,r,n){super(t,e);this._score=r,this._classScore=n}get score(){return this._score}get classScore(){return this._classScore}};function mt(o){return o.detection instanceof E}function Ot(o,t){return{...o,...{detection:t}}}function Wr(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Ve(o){let t="";if(!o)try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,a)=>{o.readFile(r,(s,i)=>s?a(s):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Br(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},n=global.fetch,a=Ve();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:e,createImageElement:r,fetch:n,...a}}function Rr(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var $r=hn(vo()),L;function wn(){if(!L)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return L}function Or(o){L=o}function jr(){return Rr()?Or(Wr()):(0,$r.isNodejs)()?Or(Br()):null}function Dn(o){if(L||jr(),!L)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=L.Canvas,Image:e=L.Image}=o;L.Canvas=t,L.Image=e,L.createCanvasElement=o.createCanvasElement||(()=>new t),L.createImageElement=o.createImageElement||(()=>new e),L.ImageData=o.ImageData||L.ImageData,L.Video=o.Video||L.Video,L.fetch=o.fetch||L.fetch,L.readFile=o.readFile||L.readFile}var _={getEnv:wn,setEnv:Or,initialize:jr,createBrowserEnv:Wr,createFileSystem:Ve,createNodejsEnv:Br,monkeyPatch:Dn,isBrowser:Rr,isNodejs:$r.isNodejs};jr();function jt(o){return!_.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function R(o){let{Canvas:t,CanvasRenderingContext2D:e}=_.getEnv();if(o instanceof e)return o;let r=jt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d");if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var pt;(function(o){o.TOP_LEFT="TOP_LEFT",o.TOP_RIGHT="TOP_RIGHT",o.BOTTOM_LEFT="BOTTOM_LEFT",o.BOTTOM_RIGHT="BOTTOM_RIGHT"})(pt||(pt={}));var Ce=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:a,fontStyle:s,padding:i}=t;this.anchorPosition=e||pt.TOP_LEFT,this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=a||14,this.fontStyle=s||"Georgia",this.padding=i||4}},Mt=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof Mt?t.text:t,this.anchor=e,this.options=new Ce(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let g=c+d.x,P=c+d.y+(f+1)*s;r.fillText(u,g,P)})}};var Hr=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:a}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let s={anchorPosition:pt.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Ce({...s,...a})}},Ue=class{constructor(t,e={}){this.box=new w(t),this.options=new Hr(e)}draw(t){let e=R(t),{boxColor:r,lineWidth:n}=this.options,{x:a,y:s,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(a,s,i,c);let{label:m}=this.options;m&&new Mt([m],{x:a-n/2,y:s},this.options.drawLabelOptions).draw(t)}};function En(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof E?r.score:mt(r)?r.detection.score:void 0,a=r instanceof E?r.box:mt(r)?r.detection.box:new w(r),s=n?`${Rt(n)}`:void 0;new Ue(a,{label:s}).draw(o)})}var ue=b();function Ne(o){let{Image:t,Video:e}=_.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function Yr(o){return new Promise((t,e)=>{if(o instanceof _.getEnv().Canvas||Ne(o))return t(null);function r(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),e(a))}function n(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),t(a))}o.addEventListener("load",n),o.addEventListener("error",r)})}function Gr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let n=_.getEnv().createImageElement();n.onload=()=>t(n),n.onerror=e,n.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Ht(o){let{Image:t,Video:e}=_.getEnv();return o instanceof t?new S(o.naturalWidth,o.naturalHeight):o instanceof e?new S(o.videoWidth,o.videoHeight):new S(o.width,o.height)}function Yt({width:o,height:t}){let{createCanvasElement:e}=_.getEnv(),r=e();return r.width=o,r.height=t,r}function Ie(o,t){let{ImageData:e}=_.getEnv();if(!(o instanceof e)&&!Ne(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Ht(o),a=Yt({width:r,height:n});return o instanceof e?R(a).putImageData(o,0,0):R(a).drawImage(o,0,0,r,n),a}var Xe=b();async function zr(o,t){let e=t||_.getEnv().createCanvasElement(),[r,n,a]=o.shape.slice(G(o)?1:0),s=Xe.tidy(()=>o.as3D(r,n,a).toInt());return await Xe.browser.toPixels(s,e),s.dispose(),e}function Je(o){let{Image:t,Canvas:e,Video:r}=_.getEnv();return o instanceof t||o instanceof e||o instanceof r}var X=b();function Vr(o,t,e=!1){let{Image:r,Canvas:n}=_.getEnv();if(!(o instanceof r||o instanceof n))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Yt({width:1,height:1});let a=Ht(o),s=t/Math.max(a.height,a.width),i=s*a.width,c=s*a.height,m=Yt({width:t,height:t}),p=o instanceof n?o:Ie(o),d=Math.abs(i-c)/2,u=e&&i0&&p.height>0&&R(m).drawImage(p,u,f,i,c),m}var bt=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=e,this._batchSize=t.length,t.forEach((r,n)=>{if(ht(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(G(r)){let s=r.shape[0];if(s!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${s} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let a=r instanceof _.getEnv().Canvas?r:Ie(r);this._canvases[n]=a,this._inputDimensions[n]=[a.height,a.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return it(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return Ir({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,X.tidy(()=>{let r=it(this.batchSize,0,1).map(a=>{let s=this.getInput(a);if(s instanceof X.Tensor){let i=G(s)?s:s.expandDims();return i=Ar(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=X.image.resizeBilinear(i,[t,t])),i.as3D(t,t,3)}if(s instanceof _.getEnv().Canvas)return X.browser.fromPixels(Vr(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${a}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return X.stack(r.map(a=>X.cast(a,"float32"))).as4D(this.batchSize,t,t,3)})}};async function D(o){if(o instanceof bt)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=n=>Array.isArray(o)?` at input index ${n}:`:"",r=t.map(jt);return r.forEach((n,a)=>{if(!Je(n)&&!ht(n)&&!G(n))throw typeof t[a]=="string"?new Error(`toNetInput -${e(a)} string passed, but could not resolve HTMLElement for element id ${t[a]}`):new Error(`toNetInput -${e(a)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(G(n)){let s=n.shape[0];if(s!==1)throw new Error(`toNetInput -${e(a)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>Je(n)&&Yr(n))),new bt(r,Array.isArray(o))}async function ae(o,t){let{Canvas:e}=_.getEnv(),r=o;if(!(o instanceof e)){let s=await D(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=s.getInput(0);r=i instanceof e?i:await zr(i)}let n=R(r);return t.map(s=>s instanceof E?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:i,width:c,height:m})=>{let p=Yt({width:c,height:m});return c>0&&m>0&&R(p).putImageData(n.getImageData(s,i,c,m),0,0),p})}var qe=b();async function se(o,t){if(!ht(o)&&!G(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(G(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return qe.tidy(()=>{let[e,r,n]=o.shape.slice(G(o)?1:0);return t.map(i=>i instanceof E?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).map(({x:i,y:c,width:m,height:p})=>qe.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function Gt(o,t){let{fetch:e}=_.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Mn(o){let t=await Gt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return Gr(e)}async function Ur(o){return(await Gt(o)).json()}async function Cn(o){return new Float32Array(await(await Gt(o)).arrayBuffer())}var yo=b();function Ze(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let n=o.split("/").filter(i=>i),a=o.endsWith(".json")?n[n.length-1]:e,s=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${a}`:`${s}/${a}`}}async function Xr(o,t){let{manifestUri:e,modelBaseUri:r}=Ze(o,t),n=await Ur(e);return yo.io.loadWeights(n,r)}function Nn(o,t,e=!1){let{width:r,height:n}=e?Ht(t):t;return o.width=r,o.height=n,{width:r,height:n}}var Nt=b();var gt=b();var k=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:n}=this.traversePropertyPath(t);r[n].dispose(),r[n]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof gt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof gt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=gt.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await Xr(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=_.getEnv(),{manifestUri:r,modelBaseUri:n}=Ze(t,this.getDefaultModelName()),a=m=>Promise.all(m.map(p=>e(p).then(d=>d.buffer))),s=gt.io.weightsLoaderFactory(a),i=JSON.parse((await e(r)).toString()),c=await s(i,n);this.loadFromWeightMap(c)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((a,s)=>{if(!a.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:a.nextObj,objProp:s,nextObj:a.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof gt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var M=b();var ie=b();function $(o,t,e){return ie.tidy(()=>{let r=ie.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=ie.add(r,t.bias),r})}function Ke(o,t,e=!1){return M.tidy(()=>{let r=M.relu(e?M.add(M.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):$(o,t.conv0,[2,2])),n=$(r,t.conv1,[1,1]),a=M.relu(M.add(r,n)),s=$(a,t.conv2,[1,1]);return M.relu(M.add(r,M.add(n,s)))})}function Le(o,t,e=!1,r=!0){return M.tidy(()=>{let n=M.relu(e?M.add(M.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):$(o,t.conv0,r?[2,2]:[1,1])),a=$(n,t.conv1,[1,1]),s=M.relu(M.add(n,a)),i=$(s,t.conv2,[1,1]),c=M.relu(M.add(n,M.add(a,i))),m=$(c,t.conv3,[1,1]);return M.relu(M.add(n,M.add(a,M.add(i,m))))})}var Ct=b();function zt(o,t,e="same",r=!1){return Ct.tidy(()=>{let n=Ct.add(Ct.conv2d(o,t.filters,[1,1],e),t.bias);return r?Ct.relu(n):n})}function A(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var Qe=b();function ce(o,t){return(e,r,n,a)=>{let s=Qe.tensor4d(o(e*r*n*n),[n,n,e,r]),i=Qe.tensor1d(o(r));return t.push({paramPath:`${a}/filters`},{paramPath:`${a}/bias`}),{filters:s,bias:i}}}var tr=b();function er(o,t){return(e,r,n)=>{let a=tr.tensor2d(o(e*r),[e,r]),s=tr.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:a,bias:s}}}var ke=b();var rr=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function me(o,t){return(e,r,n)=>{let a=ke.tensor4d(o(3*3*e),[3,3,e,1]),s=ke.tensor4d(o(e*r),[1,1,e,r]),i=ke.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new rr(a,s,i)}}function pe(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new rr(e,r,n)}}function O(o,t){return(e,r,n)=>{let a=o[e];if(!Bt(a,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${a}`);return t.push({originalPath:e,paramPath:n||e}),a}}function W(o){let t=o;function e(n){let a=t.slice(0,n);return t=t.slice(n),a}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function or(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c,m=!1){let p=m?e(s,i,3,`${c}/conv0`):r(s,i,`${c}/conv0`),d=r(i,i,`${c}/conv1`),u=r(i,i,`${c}/conv2`);return{conv0:p,conv1:d,conv2:u}}function a(s,i,c,m=!1){let{conv0:p,conv1:d,conv2:u}=n(s,i,c,m),f=r(i,i,`${c}/conv3`);return{conv0:p,conv1:d,conv2:u,conv3:f}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:a}}function Fo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=W(o),{extractDenseBlock4Params:n}=or(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2"),c=n(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i,dense3:c}}}function nr(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function ar(o,t){let e=O(o,t),r=nr(e),n=pe(e);function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:d}}function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`),u=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:d,conv3:u}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function To(o){let t=[],{extractDenseBlock4Params:e}=ar(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return A(o,t),{params:r,paramMappings:t}}var Se=class extends k{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return Nt.tidy(()=>{let r=Nt.cast(t.toBatchTensor(112,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(Nt.scalar(255)),s=Le(a,e.dense0,!0);return s=Le(s,e.dense1),s=Le(s,e.dense2),s=Le(s,e.dense3),s=Nt.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return To(t)}extractParams(t){return Fo(t)}};var wo=b();var de=b();function Ae(o,t){return de.tidy(()=>de.add(de.matMul(o,t.weights),t.bias))}function Po(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:a}=W(o),i=er(n,r)(t,e,"fc");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:r,params:{fc:i}}}function _o(o){let t=[],e=O(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:r("fc")};return A(o,t),{params:n,paramMappings:t}}function sr(o){let t={},e={};return Object.keys(o).forEach(r=>{let n=r.startsWith("fc")?e:t;n[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var We=class extends k{constructor(t,e){super(t);this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return wo.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t;return Ae(r.as2D(r.shape[0],-1),e.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return Po(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=sr(t);return this.faceFeatureExtractor.loadFromWeightMap(e),_o(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),n=r*e+r,a=t.slice(0,t.length-n),s=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(s)}};var Jr=["neutral","happy","sad","angry","fearful","disgusted","surprised"],It=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);Jr.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return Jr.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var ir=class extends We{constructor(t=new Se){super("FaceExpressionNet",t)}forwardInput(t){return ue.tidy(()=>ue.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await D(t))}async predictExpressions(t){let e=await D(t),r=await this.forwardInput(e),n=await Promise.all(ue.unstack(r).map(async s=>{let i=await s.data();return s.dispose(),i}));r.dispose();let a=n.map(s=>new It(s));return e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function qr(o){return o.expressions instanceof It}function cr(o,t){return{...o,...{expressions:t}}}function In(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(a=>{let s=a instanceof It?a:qr(a)?a.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=s.asSortedArray().filter(d=>d.probability>e),m=mt(a)?a.detection.box.bottomLeft:r||new x(0,0);new Mt(c.map(d=>`${d.expression} (${Rt(d.probability)})`),m).draw(o)})}function Vt(o){return mt(o)&&o.landmarks instanceof z&&o.unshiftedLandmarks instanceof z&&o.alignedRect instanceof E}function Ln(o){let t=(i,c,m,p)=>Math.atan2(p-c,m-i)%Math.PI,e=i=>i*180/Math.PI,r={roll:void 0,pitch:void 0,yaw:void 0};if(!o||!o._positions||o._positions.length!==68)return r;let n=o._positions;r.roll=-t(n[36]._x,n[36]._y,n[45]._x,n[45]._y),r.pitch=t(0,Math.abs(n[0]._x-n[30]._x)/n[30]._x,Math.PI,Math.abs(n[16]._x-n[30]._x)/n[30]._x);let a=n.reduce((i,c)=>ii>c._y?i:c._y,-Infinity);return r.yaw=Math.PI*(o._imgDims._height/(s-a)/1.4-1),r}function fe(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:a}=o.detection,s=new E(o.detection.score,n.rescale(a.reverse()),a),i=Ln(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s,angle:i}}}var Zr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:a,pointSize:s,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=s||2,this.lineColor=a||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},Kr=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new Zr(e)}draw(t){let e=R(t),{drawLines:r,drawPoints:n,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof ne&&(e.strokeStyle=s,e.lineWidth=a,lt(e,this.faceLandmarks.getJawOutline()),lt(e,this.faceLandmarks.getLeftEyeBrow()),lt(e,this.faceLandmarks.getRightEyeBrow()),lt(e,this.faceLandmarks.getNose()),lt(e,this.faceLandmarks.getLeftEye(),!0),lt(e,this.faceLandmarks.getRightEye(),!0),lt(e,this.faceLandmarks.getMouth(),!0)),n){e.strokeStyle=c,e.fillStyle=c;let m=p=>{e.beginPath(),e.arc(p.x,p.y,i,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(m)}}};function kn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof z?r:Vt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new Kr(n).draw(o)})}var Do="1.0.1";var dt=b();var N=b();function Sn(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c){let m=r(s,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),d=e(s,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:d}}function a(s,i){let c=r(s,s,`${i}/separable_conv0`),m=r(s,s,`${i}/separable_conv1`),p=r(s,s,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:a}}function Eo(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=W(o),{extractConvParams:a,extractSeparableConvParams:s,extractReductionBlockParams:i,extractMainBlockParams:c}=Sn(r,e),m=a(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),d=i(64,128,"entry_flow/reduction_block_1"),u={conv_in:m,reduction_block_0:p,reduction_block_1:d},f={};it(t,0,1).forEach(v=>{f[`main_block_${v}`]=c(128,`middle_flow/main_block_${v}`)});let g=i(128,256,"exit_flow/reduction_block"),P=s(256,512,"exit_flow/separable_conv"),h={reduction_block:g,separable_conv:P};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:u,middle_flow:f,exit_flow:h}}}function An(o,t){let e=O(o,t),r=nr(e),n=pe(e);function a(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=r(`${i}/expansion_conv`);return{separable_conv0:c,separable_conv1:m,expansion_conv:p}}function s(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=n(`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}}function Mo(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}=An(o,e),i=r("entry_flow/conv_in"),c=a("entry_flow/reduction_block_0"),m=a("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},d={};it(t,0,1).forEach(P=>{d[`main_block_${P}`]=s(`middle_flow/main_block_${P}`)});let u=a("exit_flow/reduction_block"),f=n("exit_flow/separable_conv"),g={reduction_block:u,separable_conv:f};return A(o,e),{params:{entry_flow:p,middle_flow:d,exit_flow:g},paramMappings:e}}function Co(o,t,e){return N.add(N.conv2d(o,t.filters,e,"same"),t.bias)}function to(o,t,e=!0){let r=e?N.relu(o):o;return r=$(r,t.separable_conv0,[1,1]),r=$(N.relu(r),t.separable_conv1,[1,1]),r=N.maxPool(r,[3,3],[2,2],"same"),r=N.add(r,Co(o,t.expansion_conv,[2,2])),r}function Wn(o,t){let e=$(N.relu(o),t.separable_conv0,[1,1]);return e=$(N.relu(e),t.separable_conv1,[1,1]),e=$(N.relu(e),t.separable_conv2,[1,1]),e=N.add(e,o),e}var eo=class extends k{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyXception - load model before inference");return N.tidy(()=>{let r=N.cast(t.toBatchTensor(112,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(N.scalar(256)),s=N.relu(Co(a,e.entry_flow.conv_in,[2,2]));return s=to(s,e.entry_flow.reduction_block_0,!1),s=to(s,e.entry_flow.reduction_block_1),it(this._numMainBlocks,0,1).forEach(i=>{s=Wn(s,e.middle_flow[`main_block_${i}`])}),s=to(s,e.exit_flow.reduction_block),s=N.relu($(s,e.exit_flow.separable_conv,[1,1])),s})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return Mo(t,this._numMainBlocks)}extractParams(t){return Eo(t,this._numMainBlocks)}};function No(o){let t=[],{extractWeights:e,getRemainingWeights:r}=W(o),n=er(e,t),a=n(512,1,"fc/age"),s=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:a,gender:s}}}}function Io(o){let t=[],e=O(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return A(o,t),{params:n,paramMappings:t}}var vt;(function(o){o.FEMALE="female",o.MALE="male"})(vt||(vt={}));var mr=class extends k{constructor(t=new eo(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return dt.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t,n=dt.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),a=Ae(n,e.fc.age).as1D(),s=Ae(n,e.fc.gender);return{age:a,gender:s}})}forwardInput(t){return dt.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:dt.softmax(r)}})}async forward(t){return this.forwardInput(await D(t))}async predictAgeAndGender(t){let e=await D(t),r=await this.forwardInput(e),n=dt.unstack(r.age),a=dt.unstack(r.gender),s=n.map((c,m)=>({ageTensor:c,genderTensor:a[m]})),i=await Promise.all(s.map(async({ageTensor:c,genderTensor:m})=>{let p=(await c.data())[0],d=(await m.data())[0],u=d>.5,f=u?vt.MALE:vt.FEMALE,g=u?d:1-d;return c.dispose(),m.dispose(),{age:p,gender:f,genderProbability:g}}));return r.age.dispose(),r.gender.dispose(),e.isBatchInput?i:i[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return No(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=sr(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Io(r)}extractParams(t){let e=512*1+1+(512*2+2),r=t.slice(0,t.length-e),n=t.slice(t.length-e);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(n)}};var j=b();var Be=class extends We{postProcess(t,e,r){let n=r.map(({width:s,height:i})=>{let c=e/Math.max(i,s);return{width:s*c,height:i*c}}),a=n.length;return j.tidy(()=>{let s=(d,u)=>j.stack([j.fill([68],d,"float32"),j.fill([68],u,"float32")],1).as2D(1,136).as1D(),i=(d,u)=>{let{width:f,height:g}=n[d];return u(f,g)?Math.abs(f-g)/2:0},c=d=>i(d,(u,f)=>ui(d,(u,f)=>fs(c(u),m(u))))).div(j.stack(Array.from(Array(a),(d,u)=>s(n[u].width,n[u].height))))})}forwardInput(t){return j.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,n])=>({height:r,width:n})))})}async forward(t){return this.forwardInput(await D(t))}async detectLandmarks(t){let e=await D(t),r=j.tidy(()=>j.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(a,s)=>{let i=Array.from(await a.data()),c=i.filter((p,d)=>Ge(d)),m=i.filter((p,d)=>!Ge(d));return new ne(Array(68).fill(0).map((p,d)=>new x(c[d],m[d])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var le=class extends Be{constructor(t=new Se){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var Lt=b();function Lo(o){let t=[],{extractDenseBlock3Params:e}=ar(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return A(o,t),{params:r,paramMappings:t}}function ko(o){let t=[],{extractWeights:e,getRemainingWeights:r}=W(o),{extractDenseBlock3Params:n}=or(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i}}}var ro=class extends k{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return Lt.tidy(()=>{let r=Lt.cast(t.toBatchTensor(112,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(Lt.scalar(255)),s=Ke(a,e.dense0,!0);return s=Ke(s,e.dense1),s=Ke(s,e.dense2),s=Lt.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Lo(t)}extractParams(t){return ko(t)}};var pr=class extends Be{constructor(t=new ro){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var So=class extends le{};var V=b();var he=b();var dr=b();function Ao(o,t){return dr.add(dr.mul(o,t.weights),t.biases)}function oo(o,t,e,r,n="same"){let{filters:a,bias:s}=t.conv,i=he.conv2d(o,a,e,n);return i=he.add(i,s),i=Ao(i,t.scale),r?he.relu(i):i}function Wo(o,t){return oo(o,t,[1,1],!0)}function no(o,t){return oo(o,t,[1,1],!1)}function ur(o,t){return oo(o,t,[2,2],!0,"valid")}var H=b();function Bn(o,t){function e(i,c,m){let p=o(i),d=p.length/(c*m*m);if(Nr(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return H.tidy(()=>H.transpose(H.tensor4d(p,[c,d,m,m]),[2,3,1,0]))}function r(i,c,m,p){let d=e(i,c,m),u=H.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:u}}function n(i,c){let m=H.tensor1d(o(i)),p=H.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function a(i,c,m,p){let d=r(i,c,m,`${p}/conv`),u=n(c,`${p}/scale`);return{conv:d,scale:u}}function s(i,c,m,p,d=!1){let u=a((d?.5:1)*i,c,m,`${p}/conv1`),f=a(i,c,m,`${p}/conv2`);return{conv1:u,conv2:f}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function Bo(o){let{extractWeights:t,getRemainingWeights:e}=W(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Bn(t,r),s=n(4704,32,7,"conv32_down"),i=a(9216,32,3,"conv32_1"),c=a(9216,32,3,"conv32_2"),m=a(9216,32,3,"conv32_3"),p=a(36864,64,3,"conv64_down",!0),d=a(36864,64,3,"conv64_1"),u=a(36864,64,3,"conv64_2"),f=a(36864,64,3,"conv64_3"),g=a(147456,128,3,"conv128_down",!0),P=a(147456,128,3,"conv128_1"),h=a(147456,128,3,"conv128_2"),v=a(589824,256,3,"conv256_down",!0),F=a(589824,256,3,"conv256_1"),y=a(589824,256,3,"conv256_2"),I=a(589824,256,3,"conv256_down_out"),Y=H.tidy(()=>H.transpose(H.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:s,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:d,conv64_2:u,conv64_3:f,conv128_down:g,conv128_1:P,conv128_2:h,conv256_down:v,conv256_1:F,conv256_2:y,conv256_down_out:I,fc:Y},paramMappings:r}}function Rn(o,t){let e=O(o,t);function r(s){let i=e(`${s}/scale/weights`,1),c=e(`${s}/scale/biases`,1);return{weights:i,biases:c}}function n(s){let i=e(`${s}/conv/filters`,4),c=e(`${s}/conv/bias`,1),m=r(s);return{conv:{filters:i,bias:c},scale:m}}function a(s){return{conv1:n(`${s}/conv1`),conv2:n(`${s}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:a}}function Ro(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Rn(o,t),n=e("conv32_down"),a=r("conv32_1"),s=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),d=r("conv64_3"),u=r("conv128_down"),f=r("conv128_1"),g=r("conv128_2"),P=r("conv256_down"),h=r("conv256_1"),v=r("conv256_2"),F=r("conv256_down_out"),{fc:y}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Cr(y))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${y}`);let I={conv32_down:n,conv32_1:a,conv32_2:s,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:d,conv128_down:u,conv128_1:f,conv128_2:g,conv256_down:P,conv256_1:h,conv256_2:v,conv256_down_out:F,fc:y};return A(o,t),{params:I,paramMappings:t}}var B=b();function ot(o,t){let e=Wo(o,t.conv1);return e=no(e,t.conv2),e=B.add(e,o),e=B.relu(e),e}function Re(o,t){let e=ur(o,t.conv1);e=no(e,t.conv2);let r=B.avgPool(o,2,2,"valid"),n=B.zeros(r.shape),a=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let i=[...e.shape];i[1]=1;let c=B.zeros(i);e=B.concat([e,c],1);let m=[...e.shape];m[2]=1;let p=B.zeros(m);e=B.concat([e,p],2)}return r=a?B.concat([r,n],3):r,e=B.add(r,e),e=B.relu(e),e}var xe=class extends k{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return V.tidy(()=>{let r=V.cast(t.toBatchTensor(150,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(V.scalar(256)),s=ur(a,e.conv32_down);s=V.maxPool(s,3,2,"valid"),s=ot(s,e.conv32_1),s=ot(s,e.conv32_2),s=ot(s,e.conv32_3),s=Re(s,e.conv64_down),s=ot(s,e.conv64_1),s=ot(s,e.conv64_2),s=ot(s,e.conv64_3),s=Re(s,e.conv128_down),s=ot(s,e.conv128_1),s=ot(s,e.conv128_2),s=Re(s,e.conv256_down),s=ot(s,e.conv256_1),s=ot(s,e.conv256_2),s=Re(s,e.conv256_down_out);let i=s.mean([1,2]);return V.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await D(t))}async computeFaceDescriptor(t){var a;if((a=t==null?void 0:t.shape)==null?void 0:a.some(s=>s<=0))return new Float32Array(128);let e=await D(t),r=V.tidy(()=>V.unstack(this.forwardInput(e))),n=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Ro(t)}extractParams(t){return Bo(t)}};function $n(o){let t=new xe;return t.extractWeights(o),t}function fr(o,t){return{...o,...{descriptor:t}}}function On(o){return typeof o.age=="number"}function lr(o,t){return{...o,...{age:t}}}function jn(o){return(o.gender===vt.MALE||o.gender===vt.FEMALE)&&ee(o.genderProbability)}function hr(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var at=b();var nt=b();function Hn(o,t){function e(c,m){let p=nt.tensor4d(o(3*3*c),[3,3,c,1]),d=nt.tensor1d(o(c)),u=nt.tensor1d(o(c)),f=nt.tensor1d(o(c)),g=nt.tensor1d(o(c));return t.push({paramPath:`${m}/filters`},{paramPath:`${m}/batch_norm_scale`},{paramPath:`${m}/batch_norm_offset`},{paramPath:`${m}/batch_norm_mean`},{paramPath:`${m}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:u,batch_norm_mean:f,batch_norm_variance:g}}function r(c,m,p,d,u){let f=nt.tensor4d(o(c*m*p*p),[p,p,c,m]),g=nt.tensor1d(o(m));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${u?"batch_norm_offset":"bias"}`}),{filters:f,bias:g}}function n(c,m,p,d){let{filters:u,bias:f}=r(c,m,p,d,!0);return{filters:u,batch_norm_offset:f}}function a(c,m,p){let d=e(c,`${p}/depthwise_conv`),u=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:u}}function s(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=a(32,64,"mobilenetv1/conv_1"),p=a(64,128,"mobilenetv1/conv_2"),d=a(128,128,"mobilenetv1/conv_3"),u=a(128,256,"mobilenetv1/conv_4"),f=a(256,256,"mobilenetv1/conv_5"),g=a(256,512,"mobilenetv1/conv_6"),P=a(512,512,"mobilenetv1/conv_7"),h=a(512,512,"mobilenetv1/conv_8"),v=a(512,512,"mobilenetv1/conv_9"),F=a(512,512,"mobilenetv1/conv_10"),y=a(512,512,"mobilenetv1/conv_11"),I=a(512,1024,"mobilenetv1/conv_12"),Y=a(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:f,conv_6:g,conv_7:P,conv_8:h,conv_9:v,conv_10:F,conv_11:y,conv_12:I,conv_13:Y}}function i(){let c=n(1024,256,1,"prediction_layer/conv_0"),m=n(256,512,3,"prediction_layer/conv_1"),p=n(512,128,1,"prediction_layer/conv_2"),d=n(128,256,3,"prediction_layer/conv_3"),u=n(256,128,1,"prediction_layer/conv_4"),f=n(128,256,3,"prediction_layer/conv_5"),g=n(256,64,1,"prediction_layer/conv_6"),P=n(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),v=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),F=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),y=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),I=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),Y=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),tt=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),st=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),U=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),Pt=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),_t=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),wt=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:f,conv_6:g,conv_7:P,box_predictor_0:{box_encoding_predictor:h,class_predictor:v},box_predictor_1:{box_encoding_predictor:F,class_predictor:y},box_predictor_2:{box_encoding_predictor:I,class_predictor:Y},box_predictor_3:{box_encoding_predictor:tt,class_predictor:st},box_predictor_4:{box_encoding_predictor:U,class_predictor:Pt},box_predictor_5:{box_encoding_predictor:_t,class_predictor:wt}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:i}}function $o(o){let t=[],{extractWeights:e,getRemainingWeights:r}=W(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=Hn(e,t),s=n(),i=a(),m={extra_dim:nt.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:s,prediction_layer:i,output_layer:m},paramMappings:t}}function Yn(o,t){let e=O(o,t);function r(m,p,d){let u=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),f=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:u,batch_norm_offset:f}}function n(m){let p=`mobilenetv1/conv_${m}`,d=`MobilenetV1/Conv2d_${m}_depthwise`,u=`${p}/depthwise_conv`,f=`${p}/pointwise_conv`,g=e(`${d}/depthwise_weights`,4,`${u}/filters`),P=e(`${d}/BatchNorm/gamma`,1,`${u}/batch_norm_scale`),h=e(`${d}/BatchNorm/beta`,1,`${u}/batch_norm_offset`),v=e(`${d}/BatchNorm/moving_mean`,1,`${u}/batch_norm_mean`),F=e(`${d}/BatchNorm/moving_variance`,1,`${u}/batch_norm_variance`);return{depthwise_conv:{filters:g,batch_norm_scale:P,batch_norm_offset:h,batch_norm_mean:v,batch_norm_variance:F},pointwise_conv:r("MobilenetV1",m,f)}}function a(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:n(1),conv_2:n(2),conv_3:n(3),conv_4:n(4),conv_5:n(5),conv_6:n(6),conv_7:n(7),conv_8:n(8),conv_9:n(9),conv_10:n(10),conv_11:n(11),conv_12:n(12),conv_13:n(13)}}function s(m,p){let d=e(`${m}/weights`,4,`${p}/filters`),u=e(`${m}/biases`,1,`${p}/bias`);return{filters:d,bias:u}}function i(m){let p=s(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),d=s(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:c}}function Oo(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=Yn(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!ht(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let a={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return A(o,t),{params:a,paramMappings:t}}var yt=b();var kt=b();function J(o,t,e){return kt.tidy(()=>{let r=kt.conv2d(o,t.filters,e,"same");return r=kt.add(r,t.batch_norm_offset),kt.clipByValue(r,0,6)})}var Gn=.0010000000474974513;function zn(o,t,e){return yt.tidy(()=>{let r=yt.depthwiseConv2d(o,t.filters,e,"same");return r=yt.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Gn),yt.clipByValue(r,0,6)})}function Vn(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function jo(o,t){return yt.tidy(()=>{let e,r=J(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((a,s)=>{let i=s+1,c=Vn(i);r=zn(r,a.depthwise_conv,c),r=J(r,a.pointwise_conv,[1,1]),i===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function Un(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),i=Math.max(r[t][1],r[t][3]),c=Math.min(r[e][0],r[e][2]),m=Math.min(r[e][1],r[e][3]),p=Math.max(r[e][0],r[e][2]),d=Math.max(r[e][1],r[e][3]),u=(s-n)*(i-a),f=(p-c)*(d-m);if(u<=0||f<=0)return 0;let g=Math.max(n,c),P=Math.max(a,m),h=Math.min(s,p),v=Math.min(i,d),F=Math.max(h-g,0)*Math.max(v-P,0);return F/(u+f-F)}function Ho(o,t,e,r,n){let a=o.shape[0],s=Math.min(e,a),i=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>n).sort((p,d)=>d.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=s)return;let d=p.score;for(let u=m.length-1;u>=0;--u){let f=Un(o,p.boxIndex,m[u]);if(f!==0&&(p.score*=c(f),p.score<=n))break}d===p.score&&m.push(p.boxIndex)}),m}var l=b();function Xn(o){let t=l.unstack(l.transpose(o,[1,0])),e=[l.sub(t[2],t[0]),l.sub(t[3],t[1])],r=[l.add(t[0],l.div(e[0],l.scalar(2))),l.add(t[1],l.div(e[1],l.scalar(2)))];return{sizes:e,centers:r}}function Jn(o,t){let{sizes:e,centers:r}=Xn(o),n=l.unstack(l.transpose(t,[1,0])),a=l.div(l.mul(l.exp(l.div(n[2],l.scalar(5))),e[0]),l.scalar(2)),s=l.add(l.mul(l.div(n[0],l.scalar(10)),e[0]),r[0]),i=l.div(l.mul(l.exp(l.div(n[3],l.scalar(5))),e[1]),l.scalar(2)),c=l.add(l.mul(l.div(n[1],l.scalar(10)),e[1]),r[1]);return l.transpose(l.stack([l.sub(s,a),l.sub(c,i),l.add(s,a),l.add(c,i)]),[1,0])}function Yo(o,t,e){return l.tidy(()=>{let r=o.shape[0],n=Jn(l.reshape(l.tile(e.extra_dim,[r,1,1]),[-1,4]),l.reshape(o,[-1,4]));n=l.reshape(n,[r,n.shape[0]/r,4]);let a=l.sigmoid(l.slice(t,[0,0,1],[-1,-1,-1])),s=l.slice(a,[0,0,0],[-1,-1,1]);s=l.reshape(s,[r,s.shape[1]]);let i=l.unstack(n),c=l.unstack(s);return{boxes:i,scores:c}})}var Oe=b();var $e=b();function Ut(o,t){return $e.tidy(()=>{let e=o.shape[0],r=$e.reshape(zt(o,t.box_encoding_predictor),[e,-1,1,4]),n=$e.reshape(zt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Go(o,t,e){return Oe.tidy(()=>{let r=J(o,e.conv_0,[1,1]),n=J(r,e.conv_1,[2,2]),a=J(n,e.conv_2,[1,1]),s=J(a,e.conv_3,[2,2]),i=J(s,e.conv_4,[1,1]),c=J(i,e.conv_5,[2,2]),m=J(c,e.conv_6,[1,1]),p=J(m,e.conv_7,[2,2]),d=Ut(t,e.box_predictor_0),u=Ut(o,e.box_predictor_1),f=Ut(n,e.box_predictor_2),g=Ut(s,e.box_predictor_3),P=Ut(c,e.box_predictor_4),h=Ut(p,e.box_predictor_5),v=Oe.concat([d.boxPredictionEncoding,u.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding,P.boxPredictionEncoding,h.boxPredictionEncoding],1),F=Oe.concat([d.classPrediction,u.classPrediction,f.classPrediction,g.classPrediction,P.classPrediction,h.classPrediction],1);return{boxPredictions:v,classPredictions:F}})}var q=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var Xt=class extends k{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return at.tidy(()=>{let r=at.cast(t.toBatchTensor(512,!1),"float32"),n=at.sub(at.mul(r,at.scalar(.007843137718737125)),at.scalar(1)),a=jo(n,e.mobilenetv1),{boxPredictions:s,classPredictions:i}=Go(a.out,a.conv11,e.prediction_layer);return Yo(s,i,e.output_layer)})}async forward(t){return this.forwardInput(await D(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new q(e),a=await D(t),{boxes:s,scores:i}=this.forwardInput(a),c=s[0],m=i[0];for(let y=1;y{let[I,Y]=[Math.max(0,v[y][0]),Math.min(1,v[y][2])].map(U=>U*h),[tt,st]=[Math.max(0,v[y][1]),Math.min(1,v[y][3])].map(U=>U*P);return new E(p[y],new oe(tt,I,st-tt,Y-I),{height:a.getInputHeight(0),width:a.getInputWidth(0)})});return c.dispose(),m.dispose(),F}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Oo(t)}extractParams(t){return $o(t)}};function zo(o){let t=new Xt;return t.extractWeights(o),t}function qn(o){return zo(o)}var Vo=class extends Xt{};var Uo=.4,Xo=[new x(.738768,.874946),new x(2.42204,2.65704),new x(4.30971,7.04493),new x(10.246,4.59428),new x(12.6868,11.8741)],Jo=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],qo=[117.001,114.697,97.404],Zo="tiny_yolov2_model",Ko="tiny_yolov2_separable_conv_model";var C=b();var xr=o=>typeof o=="number";function ao(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!xr(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>xr(t.x)&&xr(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(xr)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var K=b();var Z=b();function be(o){return Z.tidy(()=>{let t=Z.mul(o,Z.scalar(.10000000149011612));return Z.add(Z.relu(Z.sub(o,t)),t)})}function Ft(o,t){return K.tidy(()=>{let e=K.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=K.conv2d(e,t.conv.filters,[1,1],"valid"),e=K.sub(e,t.bn.sub),e=K.mul(e,t.bn.truediv),e=K.add(e,t.conv.bias),be(e)})}var St=b();function Tt(o,t){return St.tidy(()=>{let e=St.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=St.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=St.add(e,t.bias),be(e)})}var so=b();function Zn(o,t){let e=ce(o,t);function r(s,i){let c=so.tensor1d(o(s)),m=so.tensor1d(o(s));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(s,i,c){let m=e(s,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let a=me(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}}function Qo(o,t,e,r){let{extractWeights:n,getRemainingWeights:a}=W(o),s=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=Zn(n,s),p;if(t.withSeparableConvs){let[d,u,f,g,P,h,v,F,y]=r,I=t.isFirstLayerConv2d?i(d,u,3,"conv0"):m(d,u,"conv0"),Y=m(u,f,"conv1"),tt=m(f,g,"conv2"),st=m(g,P,"conv3"),U=m(P,h,"conv4"),Pt=m(h,v,"conv5"),_t=F?m(v,F,"conv6"):void 0,wt=y?m(F,y,"conv7"):void 0,te=i(y||F||v,5*e,1,"conv8");p={conv0:I,conv1:Y,conv2:tt,conv3:st,conv4:U,conv5:Pt,conv6:_t,conv7:wt,conv8:te}}else{let[d,u,f,g,P,h,v,F,y]=r,I=c(d,u,"conv0"),Y=c(u,f,"conv1"),tt=c(f,g,"conv2"),st=c(g,P,"conv3"),U=c(P,h,"conv4"),Pt=c(h,v,"conv5"),_t=c(v,F,"conv6"),wt=c(F,y,"conv7"),te=i(y,5*e,1,"conv8");p={conv0:I,conv1:Y,conv2:tt,conv3:st,conv4:U,conv5:Pt,conv6:_t,conv7:wt,conv8:te}}if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:p,paramMappings:s}}function Kn(o,t){let e=O(o,t);function r(i){let c=e(`${i}/sub`,1),m=e(`${i}/truediv`,1);return{sub:c,truediv:m}}function n(i){let c=e(`${i}/filters`,4),m=e(`${i}/bias`,1);return{filters:c,bias:m}}function a(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let s=pe(e);return{extractConvParams:n,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function tn(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}=Kn(o,e),s;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:i>7?a("conv6"):void 0,conv7:i>8?a("conv7"):void 0,conv8:r("conv8")}}else s={conv0:n("conv0"),conv1:n("conv1"),conv2:n("conv2"),conv3:n("conv3"),conv4:n("conv4"),conv5:n("conv5"),conv6:n("conv6"),conv7:n("conv7"),conv8:r("conv8")};return A(o,e),{params:s,paramMappings:e}}var ut=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var io=class extends k{constructor(t){super("TinyYolov2");ao(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,e){let r=Ft(t,e.conv0);return r=C.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv1),r=C.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv2),r=C.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv3),r=C.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv4),r=C.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv5),r=C.maxPool(r,[2,2],[1,1],"same"),r=Ft(r,e.conv6),r=Ft(r,e.conv7),zt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?be(zt(t,e.conv0,"valid",!1)):Tt(t,e.conv0);return r=C.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv1),r=C.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv2),r=C.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv3),r=C.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv4),r=C.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv5),r=C.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?Tt(r,e.conv6):r,r=e.conv7?Tt(r,e.conv7):r,zt(r,e.conv8,"valid",!1)}forwardInput(t,e){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return C.tidy(()=>{let n=C.cast(t.toBatchTensor(e,!1),"float32");return n=this.config.meanRgb?rt(n,this.config.meanRgb):n,n=n.div(C.scalar(256)),this.config.withSeparableConvs?this.runMobilenet(n,r):this.runTinyYolov2(n,r)})}async forward(t,e){return this.forwardInput(await D(t),e)}async detect(t,e={}){let{inputSize:r,scoreThreshold:n}=new ut(e),a=await D(t),s=await this.forwardInput(a,r),i=C.tidy(()=>C.unstack(s)[0].expandDims()),c={width:a.getInputWidth(0),height:a.getInputHeight(0)},m=await this.extractBoxes(i,a.getReshapedInputDimensions(0),n);s.dispose(),i.dispose();let p=m.map(h=>h.box),d=m.map(h=>h.score),u=m.map(h=>h.classScore),f=m.map(h=>this.config.classes[h.label]);return Sr(p.map(h=>h.rescale(r)),d,this.config.iouThreshold,!0).map(h=>new Dt(d[h],u[h],f[h],p[h],c))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return tn(t,this.config)}extractParams(t){let e=this.config.filterSizes||io.DEFAULT_FILTER_SIZES,r=e?e.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return Qo(t,this.config,this.boxEncodingSize,e)}async extractBoxes(t,e,r){let{width:n,height:a}=e,s=Math.max(n,a),i=s/n,c=s/a,m=t.shape[1],p=this.config.anchors.length,[d,u,f]=C.tidy(()=>{let v=t.reshape([m,m,p,this.boxEncodingSize]),F=v.slice([0,0,0,0],[m,m,p,4]),y=v.slice([0,0,0,4],[m,m,p,1]),I=this.withClassScores?C.softmax(v.slice([0,0,0,5],[m,m,p,this.config.classes.length]),3):C.scalar(0);return[F,y,I]}),g=[],P=await u.array(),h=await d.array();for(let v=0;vr){let Y=(F+De(h[v][F][y][0]))/m*i,tt=(v+De(h[v][F][y][1]))/m*c,st=Math.exp(h[v][F][y][2])*this.config.anchors[y].x/m*i,U=Math.exp(h[v][F][y][3])*this.config.anchors[y].y/m*c,Pt=Y-st/2,_t=tt-U/2,wt={row:v,col:F,anchor:y},{classScore:te,label:fo}=this.withClassScores?await this.extractPredictedClass(f,wt):{classScore:1,label:0};g.push({box:new re(Pt,_t,Pt+st,_t+U),score:I,classScore:I*te,label:fo,...wt})}}return d.dispose(),u.dispose(),f.dispose(),g}async extractPredictedClass(t,e){let{row:r,col:n,anchor:a}=e,s=await t.array();return Array(this.config.classes.length).fill(0).map((i,c)=>s[r][n][a][c]).map((i,c)=>({classScore:i,label:c})).reduce((i,c)=>i.classScore>c.classScore?i:c)}},ge=io;ge.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var ve=class extends ge{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:Uo,classes:["face"],...t?{anchors:Jo,meanRgb:qo}:{anchors:Xo,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new E(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?Ko:Zo}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function Qn(o,t=!0){let e=new ve(t);return e.extractWeights(o),e}var br=class extends ut{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var Q=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var je=b();var co=b();async function Jt(o,t,e,r,n=({alignedRect:a})=>a){let a=o.map(c=>Vt(c)?n(c):c.detection),s=r||(t instanceof co.Tensor?await se(t,a):await ae(t,a)),i=await e(s);return s.forEach(c=>c instanceof co.Tensor&&c.dispose()),i}async function ye(o,t,e,r,n){return Jt([o],t,async a=>e(a[0]),r,n)}var en=.4,rn=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],on=[117.001,114.697,97.404];var Fe=class extends ge{constructor(){let t={withSeparableConvs:!0,iouThreshold:en,classes:["face"],anchors:rn,meanRgb:on,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new E(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var T={ssdMobilenetv1:new Xt,tinyFaceDetector:new Fe,tinyYolov2:new ve,faceLandmark68Net:new le,faceLandmark68TinyNet:new pr,faceRecognitionNet:new xe,faceExpressionNet:new ir,ageGenderNet:new mr},nn=(o,t)=>T.ssdMobilenetv1.locateFaces(o,t),ta=(o,t)=>T.tinyFaceDetector.locateFaces(o,t),ea=(o,t)=>T.tinyYolov2.locateFaces(o,t),an=o=>T.faceLandmark68Net.detectLandmarks(o),ra=o=>T.faceLandmark68TinyNet.detectLandmarks(o),oa=o=>T.faceRecognitionNet.computeFaceDescriptor(o),na=o=>T.faceExpressionNet.predictExpressions(o),aa=o=>T.ageGenderNet.predictAgeAndGender(o),sn=o=>T.ssdMobilenetv1.load(o),sa=o=>T.tinyFaceDetector.load(o),ia=o=>T.tinyYolov2.load(o),ca=o=>T.faceLandmark68Net.load(o),ma=o=>T.faceLandmark68TinyNet.load(o),pa=o=>T.faceRecognitionNet.load(o),da=o=>T.faceExpressionNet.load(o),ua=o=>T.ageGenderNet.load(o),fa=sn,la=nn,ha=an;var mo=class extends Q{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},_e=class extends mo{async run(){let t=await this.parentTask,e=await Jt(t,this.input,async r=>Promise.all(r.map(n=>T.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>cr(r,e[n]))}withAgeAndGender(){return new Te(this,this.input)}},we=class extends mo{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>T.faceExpressionNet.predictExpressions(r),this.extractedFaces);return cr(t,e)}withAgeAndGender(){return new Pe(this,this.input)}},Kt=class extends _e{withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Qt=class extends we{withAgeAndGender(){return new Zt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var po=class extends Q{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},Te=class extends po{async run(){let t=await this.parentTask,e=await Jt(t,this.input,async r=>Promise.all(r.map(n=>T.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:a,gender:s,genderProbability:i}=e[n];return lr(hr(r,s,i),a)})}withFaceExpressions(){return new _e(this,this.input)}},Pe=class extends po{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await ye(t,this.input,a=>T.ageGenderNet.predictAgeAndGender(a),this.extractedFaces);return lr(hr(t,r,n),e)}withFaceExpressions(){return new we(this,this.input)}},qt=class extends Te{withFaceExpressions(){return new Kt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Zt=class extends Pe{withFaceExpressions(){return new Qt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var gr=class extends Q{constructor(t,e){super();this.parentTask=t;this.input=e}},At=class extends gr{async run(){let t=await this.parentTask;return(await Jt(t,this.input,r=>Promise.all(r.map(n=>T.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>fr(t[n],r))}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}},Wt=class extends gr{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>T.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return fr(t,e)}withFaceExpressions(){return new Qt(this,this.input)}withAgeAndGender(){return new Zt(this,this.input)}};var vr=class extends Q{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?T.faceLandmark68TinyNet:T.faceLandmark68Net}},yr=class extends vr{async run(){let t=await this.parentTask,e=t.map(a=>a.detection),r=this.input instanceof je.Tensor?await se(this.input,e):await ae(this.input,e),n=await Promise.all(r.map(a=>this.landmarkNet.detectLandmarks(a)));return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),t.map((a,s)=>fe(a,n[s]))}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Fr=class extends vr{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof je.Tensor?await se(this.input,[e]):await ae(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),fe(t,n)}withFaceExpressions(){return new Qt(this,this.input)}withAgeAndGender(){return new Zt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var Tr=class extends Q{constructor(t,e=new q){super();this.input=t;this.options=e}},He=class extends Tr{async run(){let{input:t,options:e}=this,r;if(e instanceof br)r=T.tinyFaceDetector.locateFaces(t,e);else if(e instanceof q)r=T.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof ut)r=T.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise(async t=>{let e=await this.run();t(e.map(r=>Ot({},r)))})}withFaceLandmarks(t=!1){return new yr(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new _e(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Te(this.runAndExtendWithFaceDetections(),this.input)}},Pr=class extends Tr{async run(){let t=await new He(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?Ot({},e):void 0)})}withFaceLandmarks(t=!1){return new Fr(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new we(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Pe(this.runAndExtendWithFaceDetection(),this.input)}};function xa(o,t=new q){return new Pr(o,t)}function _r(o,t=new q){return new He(o,t)}async function cn(o,t){return _r(o,new q(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function ba(o,t={}){return _r(o,new ut(t)).withFaceLandmarks().withFaceDescriptors()}var ga=cn;function uo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((n,a)=>n-r[a]).reduce((n,a)=>n+a**2,0))}var wr=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1,a=()=>`person ${n++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof xt)return s;if(s instanceof Float32Array)return new xt(a(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new xt(a(),[s.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>uo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new Ee(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>xt.fromJSON(r));return new wr(e,t.distanceThreshold)}};function va(o){let t=new Fe;return t.extractWeights(o),t}function mn(o,t){let{width:e,height:r}=new S(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(n=>mn(n,{width:e,height:r}));if(Vt(o)){let n=o.detection.forSize(e,r),a=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return fe(Ot(o,n),a)}return mt(o)?Ot(o,o.detection.forSize(e,r)):o instanceof z||o instanceof E?o.forSize(e,r):o}var Fa=typeof process!="undefined",Ta=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",Pa={faceapi:Do,node:Fa,browser:Ta};export{mr as AgeGenderNet,re as BoundingBox,w as Box,Q as ComposableTask,At as ComputeAllFaceDescriptorsTask,gr as ComputeFaceDescriptorsTaskBase,Wt as ComputeSingleFaceDescriptorTask,yr as DetectAllFaceLandmarksTask,He as DetectAllFacesTask,vr as DetectFaceLandmarksTaskBase,Tr as DetectFacesTaskBase,Fr as DetectSingleFaceLandmarksTask,Pr as DetectSingleFaceTask,S as Dimensions,Jr as FACE_EXPRESSION_LABELS,E as FaceDetection,Vo as FaceDetectionNet,ir as FaceExpressionNet,It as FaceExpressions,le as FaceLandmark68Net,pr as FaceLandmark68TinyNet,So as FaceLandmarkNet,z as FaceLandmarks,xo as FaceLandmarks5,ne as FaceLandmarks68,Ee as FaceMatch,wr as FaceMatcher,xe as FaceRecognitionNet,vt as Gender,Me as LabeledBox,xt as LabeledFaceDescriptors,bt as NetInput,k as NeuralNetwork,Dt as ObjectDetection,x as Point,bo as PredictedBox,oe as Rect,Xt as SsdMobilenetv1,q as SsdMobilenetv1Options,Fe as TinyFaceDetector,br as TinyFaceDetectorOptions,ve as TinyYolov2,ut as TinyYolov2Options,ga as allFaces,cn as allFacesSsdMobilenetv1,ba as allFacesTinyYolov2,Yr as awaitMediaLoaded,Gr as bufferToImage,oa as computeFaceDescriptor,Yt as createCanvas,Ie as createCanvasFromMedia,qn as createFaceDetectionNet,$n as createFaceRecognitionNet,zo as createSsdMobilenetv1,va as createTinyFaceDetector,Qn as createTinyYolov2,_r as detectAllFaces,an as detectFaceLandmarks,ra as detectFaceLandmarksTiny,ha as detectLandmarks,xa as detectSingleFace,Qr as draw,_ as env,uo as euclideanDistance,lr as extendWithAge,fr as extendWithFaceDescriptor,Ot as extendWithFaceDetection,cr as extendWithFaceExpressions,fe as extendWithFaceLandmarks,hr as extendWithGender,se as extractFaceTensors,ae as extractFaces,Mn as fetchImage,Ur as fetchJson,Cn as fetchNetWeights,Gt as fetchOrThrow,R as getContext2dOrThrow,Ht as getMediaDimensions,zr as imageTensorToCanvas,Vr as imageToSquare,vn as inverseSigmoid,Lr as iou,Je as isMediaElement,Ne as isMediaLoaded,On as isWithAge,mt as isWithFaceDetection,qr as isWithFaceExpressions,Vt as isWithFaceLandmarks,jn as isWithGender,ua as loadAgeGenderModel,fa as loadFaceDetectionModel,da as loadFaceExpressionModel,ca as loadFaceLandmarkModel,ma as loadFaceLandmarkTinyModel,pa as loadFaceRecognitionModel,sn as loadSsdMobilenetv1Model,sa as loadTinyFaceDetectorModel,ia as loadTinyYolov2Model,Xr as loadWeightMap,la as locateFaces,Nn as matchDimensions,kr as minBbox,T as nets,Sr as nonMaxSuppression,rt as normalize,Ar as padToSquare,aa as predictAgeAndGender,na as recognizeFaceExpressions,mn as resizeResults,jt as resolveInput,gn as shuffleArray,De as sigmoid,nn as ssdMobilenetv1,ya as tf,ta as tinyFaceDetector,ea as tinyYolov2,D as toNetInput,Mr as utils,ao as validateConfig,Pa as version}; +var pn=Object.create,Ye=Object.defineProperty,dn=Object.getPrototypeOf,un=Object.prototype.hasOwnProperty,ln=Object.getOwnPropertyNames,fn=Object.getOwnPropertyDescriptor;var Dr=o=>Ye(o,"__esModule",{value:!0});var uo=(o,t)=>()=>(t||(t={exports:{}},o(t.exports,t)),t.exports),Er=(o,t)=>{for(var e in t)Ye(o,e,{get:t[e],enumerable:!0})},lt=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of ln(t))!un.call(o,r)&&r!=="default"&&Ye(o,r,{get:()=>t[r],enumerable:!(e=fn(t,r))||e.enumerable});return o},hn=o=>lt(Dr(Ye(o!=null?pn(dn(o)):{},"default",o&&o.__esModule&&"default"in o?{get:()=>o.default,enumerable:!0}:{value:o,enumerable:!0})),o);import*as Ca from"@tensorflow/tfjs/dist/index.js";import*as Na from"@tensorflow/tfjs-backend-wasm";var b=uo(xn=>{Dr(xn);lt(xn,Ca);lt(xn,Na)});var go=uo((_n,bo)=>{Dr(_n);Er(_n,{isNodejs:()=>wn});function wn(){return typeof global=="object"&&!0&&typeof bo!="undefined"&&typeof process!="undefined"&&!!process.version}});var ya=b();var Po={};Er(Po,{AnchorPosition:()=>pt,DrawBox:()=>Ue,DrawBoxOptions:()=>jr,DrawFaceLandmarks:()=>Zr,DrawFaceLandmarksOptions:()=>qr,DrawTextField:()=>Mt,DrawTextFieldOptions:()=>Ce,drawContour:()=>ft,drawDetections:()=>En,drawFaceExpressions:()=>kn,drawFaceLandmarks:()=>Ln});function ft(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},a)=>{let s=t[a];o.moveTo(s.x,s.y),o.lineTo(r,n)}),e){let r=t[t.length-1],n=t[0];if(!r||!n)return;o.moveTo(r.x,r.y),o.lineTo(n.x,n.y)}o.stroke()}var lo={};Er(lo,{computeReshapedDimensions:()=>Nr,getCenterPoint:()=>$t,isDimensions:()=>ze,isEven:()=>Ge,isFloat:()=>Cr,isTensor:()=>Bt,isTensor1D:()=>bn,isTensor2D:()=>Mr,isTensor3D:()=>ht,isTensor4D:()=>G,isValidNumber:()=>et,isValidProbablitiy:()=>ee,range:()=>it,round:()=>Rt});var fo=b();var S=class{constructor(t,e){if(!et(t)||!et(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new S(1/this.width,1/this.height)}};function Bt(o,t){return o instanceof fo.Tensor&&o.shape.length===t}function bn(o){return Bt(o,1)}function Mr(o){return Bt(o,2)}function ht(o){return Bt(o,3)}function G(o){return Bt(o,4)}function Cr(o){return o%1!=0}function Ge(o){return o%2==0}function Rt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function ze(o){return o&&o.width&&o.height}function Nr({width:o,height:t},e){let r=e/Math.max(t,o);return new S(Math.round(o*r),Math.round(t*r))}function $t(o){return o.reduce((t,e)=>t.add(e),new x(0,0)).div(new x(o.length,o.length))}function it(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function et(o){return!!o&&o!==Infinity&&o!==-Infinity&&!Number.isNaN(o)||o===0}function ee(o){return et(o)&&o>=0&&o<=1}var x=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new x(this.x+t.x,this.y+t.y)}sub(t){return new x(this.x-t.x,this.y-t.y)}mul(t){return new x(this.x*t.x,this.y*t.y)}div(t){return new x(this.x/t.x,this.y/t.y)}abs(){return new x(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new x(Math.floor(this.x),Math.floor(this.y))}};var P=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(et)}static assertIsValidBox(t,e,r=!1){if(!P.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},n=[r.left,r.top,r.right,r.bottom].every(et),a=[r.x,r.y,r.width,r.height].every(et);if(!a&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,i,c,m]=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];P.assertIsValidBox({x:s,y:i,width:c,height:m},"Box.constructor",e),this._x=s,this._y=i,this._width=c,this._height=m}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new x(this.left,this.top)}get topRight(){return new x(this.right,this.top)}get bottomLeft(){return new x(this.left,this.bottom)}get bottomRight(){return new x(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.round(a));return new P({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.floor(a));return new P({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,a=Math.abs(r-n);return re&&(i=-d+e+r,d=e),u>t&&(c=-u+t+n,u=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:s,edy:c,dx:a,edx:i,y:p,ey:u,x:m,ex:d,w:r,h:n}}calibrate(t){return new P({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var re=class extends P{constructor(t,e,r,n,a=!1){super({left:t,top:e,right:r,bottom:n},a)}};var Dt=class{constructor(t,e,r,n,a){this._imageDims=new S(a.width,a.height),this._score=t,this._classScore=e,this._className=r,this._box=new P(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new P(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new Dt(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var E=class extends Dt{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:a}=super.forSize(t,e);return new E(r,n,a)}};function kr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),n=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),a=r*n;return e?a/(o.area+t.area-a):a/Math.min(o.area,t.area)}function Ir(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:s,boxIndex:i})).sort((s,i)=>s.score-i.score).map(s=>s.boxIndex),a=[];for(;n.length>0;){let s=n.pop();a.push(s);let i=n,c=[];for(let m=0;mc[p]<=e)}return a}var ct=b();function rt(o,t){return ct.tidy(()=>{let[e,r,n]=t,a=ct.fill([...o.shape.slice(0,3),1],e,"float32"),s=ct.fill([...o.shape.slice(0,3),1],r,"float32"),i=ct.fill([...o.shape.slice(0,3),1],n,"float32"),c=ct.concat([a,s,i],3);return ct.sub(o,c)})}var Et=b();function Sr(o,t=!1){return Et.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),a=Math.round(n*(t?.5:1)),s=e>r?2:1,i=u=>{let l=o.shape.slice();return l[s]=u,Et.fill(l,0,"float32")},c=i(a),m=n-c.shape[s],d=[t&&m?i(m):null,o,c].filter(u=>!!u).map(u=>Et.cast(u,"float32"));return Et.concat(d,s)})}function gn(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function De(o){return 1/(1+Math.exp(-o))}function vn(o){return Math.log(o/(1-o))}var oe=class extends P{constructor(t,e,r,n,a=!1){super({x:t,y:e,width:r,height:n},a)}};var yn=.5,Fn=.43,Tn=.45,z=class{constructor(t,e,r=new x(0,0)){let{width:n,height:a}=e;this._imgDims=new S(n,a),this._shift=r,this._positions=t.map(s=>s.mul(new x(n,a)).add(r))}get shift(){return new x(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new x(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new x(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let a=t instanceof E?t.box.floor():new P(t);return this.shiftBy(a.x,a.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:n}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(n)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,n]=t,a=d=>n.sub(d).magnitude(),s=(a(e)+a(r))/2,i=Math.floor(s/Tn),c=$t(t),m=Math.floor(Math.max(0,c.x-yn*i)),p=Math.floor(Math.max(0,c.y-Fn*i));return new oe(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Ir(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var ho=class extends z{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],$t([t[3],t[4]])]}};var ne=class extends z{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map($t)}};var Ee=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Rt(this.distance)})`:""}`}};var Me=class extends P{static assertIsValidLabeledBox(t,e){if(P.assertIsValidBox(t,e),!et(t.label))throw new Error(`${e} - expected property label (${t.label}) to be a number`)}constructor(t,e){super(t);this._label=e}get label(){return this._label}};var xt=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new xt(t.label,e)}};var xo=class extends Me{static assertIsValidPredictedBox(t,e){if(Me.assertIsValidLabeledBox(t,e),!ee(t.score)||!ee(t.classScore))throw new Error(`${e} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,e,r,n){super(t,e);this._score=r,this._classScore=n}get score(){return this._score}get classScore(){return this._classScore}};function mt(o){return o.detection instanceof E}function Ot(o,t){return{...o,...{detection:t}}}function Ar(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Ve(o){let t="";if(!o)try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,a)=>{o.readFile(r,(s,i)=>s?a(s):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Wr(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},n=global.fetch,a=Ve();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:e,createImageElement:r,fetch:n,...a}}function Br(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var Rr=hn(go()),I;function Pn(){if(!I)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return I}function $r(o){I=o}function Or(){return Br()?$r(Ar()):(0,Rr.isNodejs)()?$r(Wr()):null}function Dn(o){if(I||Or(),!I)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=I.Canvas,Image:e=I.Image}=o;I.Canvas=t,I.Image=e,I.createCanvasElement=o.createCanvasElement||(()=>new t),I.createImageElement=o.createImageElement||(()=>new e),I.ImageData=o.ImageData||I.ImageData,I.Video=o.Video||I.Video,I.fetch=o.fetch||I.fetch,I.readFile=o.readFile||I.readFile}var w={getEnv:Pn,setEnv:$r,initialize:Or,createBrowserEnv:Ar,createFileSystem:Ve,createNodejsEnv:Wr,monkeyPatch:Dn,isBrowser:Br,isNodejs:Rr.isNodejs};Or();function jt(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function R(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=jt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d");if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var pt;(function(o){o.TOP_LEFT="TOP_LEFT",o.TOP_RIGHT="TOP_RIGHT",o.BOTTOM_LEFT="BOTTOM_LEFT",o.BOTTOM_RIGHT="BOTTOM_RIGHT"})(pt||(pt={}));var Ce=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:a,fontStyle:s,padding:i}=t;this.anchorPosition=e||pt.TOP_LEFT,this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=a||14,this.fontStyle=s||"Georgia",this.padding=i||4}},Mt=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof Mt?t.text:t,this.anchor=e,this.options=new Ce(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let g=c+d.x,_=c+d.y+(l+1)*s;r.fillText(u,g,_)})}};var jr=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:a}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let s={anchorPosition:pt.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Ce({...s,...a})}},Ue=class{constructor(t,e={}){this.box=new P(t),this.options=new jr(e)}draw(t){let e=R(t),{boxColor:r,lineWidth:n}=this.options,{x:a,y:s,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(a,s,i,c);let{label:m}=this.options;m&&new Mt([m],{x:a-n/2,y:s},this.options.drawLabelOptions).draw(t)}};function En(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof E?r.score:mt(r)?r.detection.score:void 0,a=r instanceof E?r.box:mt(r)?r.detection.box:new P(r),s=n?`${Rt(n)}`:void 0;new Ue(a,{label:s}).draw(o)})}var ue=b();function Ne(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function Hr(o){return new Promise((t,e)=>{if(o instanceof w.getEnv().Canvas||Ne(o))return t(null);function r(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),e(a))}function n(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),t(a))}o.addEventListener("load",n),o.addEventListener("error",r)})}function Yr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let n=w.getEnv().createImageElement();n.onload=()=>t(n),n.onerror=e,n.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Ht(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new S(o.naturalWidth,o.naturalHeight):o instanceof e?new S(o.videoWidth,o.videoHeight):new S(o.width,o.height)}function Yt({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function ke(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ne(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Ht(o),a=Yt({width:r,height:n});return o instanceof e?R(a).putImageData(o,0,0):R(a).drawImage(o,0,0,r,n),a}var Xe=b();async function Gr(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,a]=o.shape.slice(G(o)?1:0),s=Xe.tidy(()=>o.as3D(r,n,a).toInt());return await Xe.browser.toPixels(s,e),s.dispose(),e}function Je(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var X=b();function zr(o,t,e=!1){let{Image:r,Canvas:n}=w.getEnv();if(!(o instanceof r||o instanceof n))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Yt({width:1,height:1});let a=Ht(o),s=t/Math.max(a.height,a.width),i=s*a.width,c=s*a.height,m=Yt({width:t,height:t}),p=o instanceof n?o:ke(o),d=Math.abs(i-c)/2,u=e&&i0&&p.height>0&&R(m).drawImage(p,u,l,i,c),m}var bt=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=e,this._batchSize=t.length,t.forEach((r,n)=>{if(ht(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(G(r)){let s=r.shape[0];if(s!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${s} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let a=r instanceof w.getEnv().Canvas?r:ke(r);this._canvases[n]=a,this._inputDimensions[n]=[a.height,a.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return it(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return Nr({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,X.tidy(()=>{let r=it(this.batchSize,0,1).map(a=>{let s=this.getInput(a);if(s instanceof X.Tensor){let i=G(s)?s:s.expandDims();return i=Sr(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=X.image.resizeBilinear(i,[t,t])),i.as3D(t,t,3)}if(s instanceof w.getEnv().Canvas)return X.browser.fromPixels(zr(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${a}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return X.stack(r.map(a=>X.cast(a,"float32"))).as4D(this.batchSize,t,t,3)})}};async function D(o){if(o instanceof bt)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=n=>Array.isArray(o)?` at input index ${n}:`:"",r=t.map(jt);return r.forEach((n,a)=>{if(!Je(n)&&!ht(n)&&!G(n))throw typeof t[a]=="string"?new Error(`toNetInput -${e(a)} string passed, but could not resolve HTMLElement for element id ${t[a]}`):new Error(`toNetInput -${e(a)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(G(n)){let s=n.shape[0];if(s!==1)throw new Error(`toNetInput -${e(a)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>Je(n)&&Hr(n))),new bt(r,Array.isArray(o))}async function ae(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let s=await D(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=s.getInput(0);r=i instanceof e?i:await Gr(i)}let n=R(r);return t.map(s=>s instanceof E?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:i,width:c,height:m})=>{let p=Yt({width:c,height:m});return c>0&&m>0&&R(p).putImageData(n.getImageData(s,i,c,m),0,0),p})}var qe=b();async function se(o,t){if(!ht(o)&&!G(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(G(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return qe.tidy(()=>{let[e,r,n]=o.shape.slice(G(o)?1:0);return t.map(i=>i instanceof E?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).map(({x:i,y:c,width:m,height:p})=>qe.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function Gt(o,t){let{fetch:e}=w.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Mn(o){let t=await Gt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return Yr(e)}async function Vr(o){return(await Gt(o)).json()}async function Cn(o){return new Float32Array(await(await Gt(o)).arrayBuffer())}var vo=b();function Ze(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let n=o.split("/").filter(i=>i),a=o.endsWith(".json")?n[n.length-1]:e,s=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${a}`:`${s}/${a}`}}async function Ur(o,t){let{manifestUri:e,modelBaseUri:r}=Ze(o,t),n=await Vr(e);return vo.io.loadWeights(n,r)}function Nn(o,t,e=!1){let{width:r,height:n}=e?Ht(t):t;return o.width=r,o.height=n,{width:r,height:n}}var Nt=b();var gt=b();var L=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:n}=this.traversePropertyPath(t);r[n].dispose(),r[n]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof gt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof gt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=gt.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await Ur(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=w.getEnv(),{manifestUri:r,modelBaseUri:n}=Ze(t,this.getDefaultModelName()),a=m=>Promise.all(m.map(p=>e(p).then(d=>d.buffer))),s=gt.io.weightsLoaderFactory(a),i=JSON.parse((await e(r)).toString()),c=await s(i,n);this.loadFromWeightMap(c)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((a,s)=>{if(!a.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:a.nextObj,objProp:s,nextObj:a.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof gt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var M=b();var ie=b();function $(o,t,e){return ie.tidy(()=>{let r=ie.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=ie.add(r,t.bias),r})}function Ke(o,t,e=!1){return M.tidy(()=>{let r=M.relu(e?M.add(M.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):$(o,t.conv0,[2,2])),n=$(r,t.conv1,[1,1]),a=M.relu(M.add(r,n)),s=$(a,t.conv2,[1,1]);return M.relu(M.add(r,M.add(n,s)))})}function Ie(o,t,e=!1,r=!0){return M.tidy(()=>{let n=M.relu(e?M.add(M.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):$(o,t.conv0,r?[2,2]:[1,1])),a=$(n,t.conv1,[1,1]),s=M.relu(M.add(n,a)),i=$(s,t.conv2,[1,1]),c=M.relu(M.add(n,M.add(a,i))),m=$(c,t.conv3,[1,1]);return M.relu(M.add(n,M.add(a,M.add(i,m))))})}var Ct=b();function zt(o,t,e="same",r=!1){return Ct.tidy(()=>{let n=Ct.add(Ct.conv2d(o,t.filters,[1,1],e),t.bias);return r?Ct.relu(n):n})}function A(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var Qe=b();function ce(o,t){return(e,r,n,a)=>{let s=Qe.tensor4d(o(e*r*n*n),[n,n,e,r]),i=Qe.tensor1d(o(r));return t.push({paramPath:`${a}/filters`},{paramPath:`${a}/bias`}),{filters:s,bias:i}}}var tr=b();function er(o,t){return(e,r,n)=>{let a=tr.tensor2d(o(e*r),[e,r]),s=tr.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:a,bias:s}}}var Le=b();var rr=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function me(o,t){return(e,r,n)=>{let a=Le.tensor4d(o(3*3*e),[3,3,e,1]),s=Le.tensor4d(o(e*r),[1,1,e,r]),i=Le.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new rr(a,s,i)}}function pe(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new rr(e,r,n)}}function O(o,t){return(e,r,n)=>{let a=o[e];if(!Bt(a,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${a}`);return t.push({originalPath:e,paramPath:n||e}),a}}function W(o){let t=o;function e(n){let a=t.slice(0,n);return t=t.slice(n),a}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function or(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c,m=!1){let p=m?e(s,i,3,`${c}/conv0`):r(s,i,`${c}/conv0`),d=r(i,i,`${c}/conv1`),u=r(i,i,`${c}/conv2`);return{conv0:p,conv1:d,conv2:u}}function a(s,i,c,m=!1){let{conv0:p,conv1:d,conv2:u}=n(s,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:d,conv2:u,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:a}}function yo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=W(o),{extractDenseBlock4Params:n}=or(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2"),c=n(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i,dense3:c}}}function nr(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function ar(o,t){let e=O(o,t),r=nr(e),n=pe(e);function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:d}}function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`),u=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:d,conv3:u}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Fo(o){let t=[],{extractDenseBlock4Params:e}=ar(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return A(o,t),{params:r,paramMappings:t}}var Se=class extends L{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return Nt.tidy(()=>{let r=Nt.cast(t.toBatchTensor(112,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(Nt.scalar(255)),s=Ie(a,e.dense0,!0);return s=Ie(s,e.dense1),s=Ie(s,e.dense2),s=Ie(s,e.dense3),s=Nt.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Fo(t)}extractParams(t){return yo(t)}};var wo=b();var de=b();function Ae(o,t){return de.tidy(()=>de.add(de.matMul(o,t.weights),t.bias))}function To(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:a}=W(o),i=er(n,r)(t,e,"fc");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:r,params:{fc:i}}}function _o(o){let t=[],e=O(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:r("fc")};return A(o,t),{params:n,paramMappings:t}}function sr(o){let t={},e={};return Object.keys(o).forEach(r=>{let n=r.startsWith("fc")?e:t;n[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var We=class extends L{constructor(t,e){super(t);this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return wo.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t;return Ae(r.as2D(r.shape[0],-1),e.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return To(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=sr(t);return this.faceFeatureExtractor.loadFromWeightMap(e),_o(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),n=r*e+r,a=t.slice(0,t.length-n),s=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(s)}};var Xr=["neutral","happy","sad","angry","fearful","disgusted","surprised"],kt=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);Xr.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return Xr.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var ir=class extends We{constructor(t=new Se){super("FaceExpressionNet",t)}forwardInput(t){return ue.tidy(()=>ue.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await D(t))}async predictExpressions(t){let e=await D(t),r=await this.forwardInput(e),n=await Promise.all(ue.unstack(r).map(async s=>{let i=await s.data();return s.dispose(),i}));r.dispose();let a=n.map(s=>new kt(s));return e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Jr(o){return o.expressions instanceof kt}function cr(o,t){return{...o,...{expressions:t}}}function kn(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(a=>{let s=a instanceof kt?a:Jr(a)?a.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=s.asSortedArray().filter(d=>d.probability>e),m=mt(a)?a.detection.box.bottomLeft:r||new x(0,0);new Mt(c.map(d=>`${d.expression} (${Rt(d.probability)})`),m).draw(o)})}function Vt(o){return mt(o)&&o.landmarks instanceof z&&o.unshiftedLandmarks instanceof z&&o.alignedRect instanceof E}function In(o){let t=(i,c,m,p)=>Math.atan2(p-c,m-i)%Math.PI,e=i=>i*180/Math.PI,r={roll:void 0,pitch:void 0,yaw:void 0};if(!o||!o._positions||o._positions.length!==68)return r;let n=o._positions;r.roll=-t(n[36]._x,n[36]._y,n[45]._x,n[45]._y),r.pitch=t(0,Math.abs(n[0]._x-n[30]._x)/n[30]._x,Math.PI,Math.abs(n[16]._x-n[30]._x)/n[30]._x);let a=n.reduce((i,c)=>ii>c._y?i:c._y,-Infinity);return r.yaw=Math.PI*(o._imgDims._height/(s-a)/1.4-1),r}function le(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:a}=o.detection,s=new E(o.detection.score,n.rescale(a.reverse()),a),i=In(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s,angle:i}}}var qr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:a,pointSize:s,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=s||2,this.lineColor=a||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},Zr=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new qr(e)}draw(t){let e=R(t),{drawLines:r,drawPoints:n,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof ne&&(e.strokeStyle=s,e.lineWidth=a,ft(e,this.faceLandmarks.getJawOutline()),ft(e,this.faceLandmarks.getLeftEyeBrow()),ft(e,this.faceLandmarks.getRightEyeBrow()),ft(e,this.faceLandmarks.getNose()),ft(e,this.faceLandmarks.getLeftEye(),!0),ft(e,this.faceLandmarks.getRightEye(),!0),ft(e,this.faceLandmarks.getMouth(),!0)),n){e.strokeStyle=c,e.fillStyle=c;let m=p=>{e.beginPath(),e.arc(p.x,p.y,i,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(m)}}};function Ln(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof z?r:Vt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new Zr(n).draw(o)})}var Do="1.0.1";var dt=b();var N=b();function Sn(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c){let m=r(s,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),d=e(s,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:d}}function a(s,i){let c=r(s,s,`${i}/separable_conv0`),m=r(s,s,`${i}/separable_conv1`),p=r(s,s,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:a}}function Eo(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=W(o),{extractConvParams:a,extractSeparableConvParams:s,extractReductionBlockParams:i,extractMainBlockParams:c}=Sn(r,e),m=a(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),d=i(64,128,"entry_flow/reduction_block_1"),u={conv_in:m,reduction_block_0:p,reduction_block_1:d},l={};it(t,0,1).forEach(v=>{l[`main_block_${v}`]=c(128,`middle_flow/main_block_${v}`)});let g=i(128,256,"exit_flow/reduction_block"),_=s(256,512,"exit_flow/separable_conv"),h={reduction_block:g,separable_conv:_};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:u,middle_flow:l,exit_flow:h}}}function An(o,t){let e=O(o,t),r=nr(e),n=pe(e);function a(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=r(`${i}/expansion_conv`);return{separable_conv0:c,separable_conv1:m,expansion_conv:p}}function s(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=n(`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}}function Mo(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}=An(o,e),i=r("entry_flow/conv_in"),c=a("entry_flow/reduction_block_0"),m=a("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},d={};it(t,0,1).forEach(_=>{d[`main_block_${_}`]=s(`middle_flow/main_block_${_}`)});let u=a("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),g={reduction_block:u,separable_conv:l};return A(o,e),{params:{entry_flow:p,middle_flow:d,exit_flow:g},paramMappings:e}}function Co(o,t,e){return N.add(N.conv2d(o,t.filters,e,"same"),t.bias)}function Kr(o,t,e=!0){let r=e?N.relu(o):o;return r=$(r,t.separable_conv0,[1,1]),r=$(N.relu(r),t.separable_conv1,[1,1]),r=N.maxPool(r,[3,3],[2,2],"same"),r=N.add(r,Co(o,t.expansion_conv,[2,2])),r}function Wn(o,t){let e=$(N.relu(o),t.separable_conv0,[1,1]);return e=$(N.relu(e),t.separable_conv1,[1,1]),e=$(N.relu(e),t.separable_conv2,[1,1]),e=N.add(e,o),e}var Qr=class extends L{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyXception - load model before inference");return N.tidy(()=>{let r=N.cast(t.toBatchTensor(112,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(N.scalar(256)),s=N.relu(Co(a,e.entry_flow.conv_in,[2,2]));return s=Kr(s,e.entry_flow.reduction_block_0,!1),s=Kr(s,e.entry_flow.reduction_block_1),it(this._numMainBlocks,0,1).forEach(i=>{s=Wn(s,e.middle_flow[`main_block_${i}`])}),s=Kr(s,e.exit_flow.reduction_block),s=N.relu($(s,e.exit_flow.separable_conv,[1,1])),s})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return Mo(t,this._numMainBlocks)}extractParams(t){return Eo(t,this._numMainBlocks)}};function No(o){let t=[],{extractWeights:e,getRemainingWeights:r}=W(o),n=er(e,t),a=n(512,1,"fc/age"),s=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:a,gender:s}}}}function ko(o){let t=[],e=O(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return A(o,t),{params:n,paramMappings:t}}var vt;(function(o){o.FEMALE="female",o.MALE="male"})(vt||(vt={}));var mr=class extends L{constructor(t=new Qr(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return dt.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t,n=dt.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),a=Ae(n,e.fc.age).as1D(),s=Ae(n,e.fc.gender);return{age:a,gender:s}})}forwardInput(t){return dt.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:dt.softmax(r)}})}async forward(t){return this.forwardInput(await D(t))}async predictAgeAndGender(t){let e=await D(t),r=await this.forwardInput(e),n=dt.unstack(r.age),a=dt.unstack(r.gender),s=n.map((c,m)=>({ageTensor:c,genderTensor:a[m]})),i=await Promise.all(s.map(async({ageTensor:c,genderTensor:m})=>{let p=(await c.data())[0],d=(await m.data())[0],u=d>.5,l=u?vt.MALE:vt.FEMALE,g=u?d:1-d;return c.dispose(),m.dispose(),{age:p,gender:l,genderProbability:g}}));return r.age.dispose(),r.gender.dispose(),e.isBatchInput?i:i[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return No(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=sr(t);return this.faceFeatureExtractor.loadFromWeightMap(e),ko(r)}extractParams(t){let e=512*1+1+(512*2+2),r=t.slice(0,t.length-e),n=t.slice(t.length-e);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(n)}};var j=b();var Be=class extends We{postProcess(t,e,r){let n=r.map(({width:s,height:i})=>{let c=e/Math.max(i,s);return{width:s*c,height:i*c}}),a=n.length;return j.tidy(()=>{let s=(d,u)=>j.stack([j.fill([68],d,"float32"),j.fill([68],u,"float32")],1).as2D(1,136).as1D(),i=(d,u)=>{let{width:l,height:g}=n[d];return u(l,g)?Math.abs(l-g)/2:0},c=d=>i(d,(u,l)=>ui(d,(u,l)=>ls(c(u),m(u))))).div(j.stack(Array.from(Array(a),(d,u)=>s(n[u].width,n[u].height))))})}forwardInput(t){return j.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,n])=>({height:r,width:n})))})}async forward(t){return this.forwardInput(await D(t))}async detectLandmarks(t){let e=await D(t),r=j.tidy(()=>j.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(a,s)=>{let i=Array.from(await a.data()),c=i.filter((p,d)=>Ge(d)),m=i.filter((p,d)=>!Ge(d));return new ne(Array(68).fill(0).map((p,d)=>new x(c[d],m[d])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var fe=class extends Be{constructor(t=new Se){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var It=b();function Io(o){let t=[],{extractDenseBlock3Params:e}=ar(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return A(o,t),{params:r,paramMappings:t}}function Lo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=W(o),{extractDenseBlock3Params:n}=or(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i}}}var to=class extends L{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return It.tidy(()=>{let r=It.cast(t.toBatchTensor(112,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(It.scalar(255)),s=Ke(a,e.dense0,!0);return s=Ke(s,e.dense1),s=Ke(s,e.dense2),s=It.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Io(t)}extractParams(t){return Lo(t)}};var pr=class extends Be{constructor(t=new to){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var So=class extends fe{};var V=b();var he=b();var dr=b();function Ao(o,t){return dr.add(dr.mul(o,t.weights),t.biases)}function eo(o,t,e,r,n="same"){let{filters:a,bias:s}=t.conv,i=he.conv2d(o,a,e,n);return i=he.add(i,s),i=Ao(i,t.scale),r?he.relu(i):i}function Wo(o,t){return eo(o,t,[1,1],!0)}function ro(o,t){return eo(o,t,[1,1],!1)}function ur(o,t){return eo(o,t,[2,2],!0,"valid")}var H=b();function Bn(o,t){function e(i,c,m){let p=o(i),d=p.length/(c*m*m);if(Cr(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return H.tidy(()=>H.transpose(H.tensor4d(p,[c,d,m,m]),[2,3,1,0]))}function r(i,c,m,p){let d=e(i,c,m),u=H.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:u}}function n(i,c){let m=H.tensor1d(o(i)),p=H.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function a(i,c,m,p){let d=r(i,c,m,`${p}/conv`),u=n(c,`${p}/scale`);return{conv:d,scale:u}}function s(i,c,m,p,d=!1){let u=a((d?.5:1)*i,c,m,`${p}/conv1`),l=a(i,c,m,`${p}/conv2`);return{conv1:u,conv2:l}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function Bo(o){let{extractWeights:t,getRemainingWeights:e}=W(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Bn(t,r),s=n(4704,32,7,"conv32_down"),i=a(9216,32,3,"conv32_1"),c=a(9216,32,3,"conv32_2"),m=a(9216,32,3,"conv32_3"),p=a(36864,64,3,"conv64_down",!0),d=a(36864,64,3,"conv64_1"),u=a(36864,64,3,"conv64_2"),l=a(36864,64,3,"conv64_3"),g=a(147456,128,3,"conv128_down",!0),_=a(147456,128,3,"conv128_1"),h=a(147456,128,3,"conv128_2"),v=a(589824,256,3,"conv256_down",!0),F=a(589824,256,3,"conv256_1"),y=a(589824,256,3,"conv256_2"),k=a(589824,256,3,"conv256_down_out"),Y=H.tidy(()=>H.transpose(H.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:s,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:d,conv64_2:u,conv64_3:l,conv128_down:g,conv128_1:_,conv128_2:h,conv256_down:v,conv256_1:F,conv256_2:y,conv256_down_out:k,fc:Y},paramMappings:r}}function Rn(o,t){let e=O(o,t);function r(s){let i=e(`${s}/scale/weights`,1),c=e(`${s}/scale/biases`,1);return{weights:i,biases:c}}function n(s){let i=e(`${s}/conv/filters`,4),c=e(`${s}/conv/bias`,1),m=r(s);return{conv:{filters:i,bias:c},scale:m}}function a(s){return{conv1:n(`${s}/conv1`),conv2:n(`${s}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:a}}function Ro(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Rn(o,t),n=e("conv32_down"),a=r("conv32_1"),s=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),d=r("conv64_3"),u=r("conv128_down"),l=r("conv128_1"),g=r("conv128_2"),_=r("conv256_down"),h=r("conv256_1"),v=r("conv256_2"),F=r("conv256_down_out"),{fc:y}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Mr(y))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${y}`);let k={conv32_down:n,conv32_1:a,conv32_2:s,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:d,conv128_down:u,conv128_1:l,conv128_2:g,conv256_down:_,conv256_1:h,conv256_2:v,conv256_down_out:F,fc:y};return A(o,t),{params:k,paramMappings:t}}var B=b();function ot(o,t){let e=Wo(o,t.conv1);return e=ro(e,t.conv2),e=B.add(e,o),e=B.relu(e),e}function Re(o,t){let e=ur(o,t.conv1);e=ro(e,t.conv2);let r=B.avgPool(o,2,2,"valid"),n=B.zeros(r.shape),a=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let i=[...e.shape];i[1]=1;let c=B.zeros(i);e=B.concat([e,c],1);let m=[...e.shape];m[2]=1;let p=B.zeros(m);e=B.concat([e,p],2)}return r=a?B.concat([r,n],3):r,e=B.add(r,e),e=B.relu(e),e}var xe=class extends L{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return V.tidy(()=>{let r=V.cast(t.toBatchTensor(150,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(V.scalar(256)),s=ur(a,e.conv32_down);s=V.maxPool(s,3,2,"valid"),s=ot(s,e.conv32_1),s=ot(s,e.conv32_2),s=ot(s,e.conv32_3),s=Re(s,e.conv64_down),s=ot(s,e.conv64_1),s=ot(s,e.conv64_2),s=ot(s,e.conv64_3),s=Re(s,e.conv128_down),s=ot(s,e.conv128_1),s=ot(s,e.conv128_2),s=Re(s,e.conv256_down),s=ot(s,e.conv256_1),s=ot(s,e.conv256_2),s=Re(s,e.conv256_down_out);let i=s.mean([1,2]);return V.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await D(t))}async computeFaceDescriptor(t){var a;if((a=t==null?void 0:t.shape)==null?void 0:a.some(s=>s<=0))return new Float32Array(128);let e=await D(t),r=V.tidy(()=>V.unstack(this.forwardInput(e))),n=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Ro(t)}extractParams(t){return Bo(t)}};function $n(o){let t=new xe;return t.extractWeights(o),t}function lr(o,t){return{...o,...{descriptor:t}}}function On(o){return typeof o.age=="number"}function fr(o,t){return{...o,...{age:t}}}function jn(o){return(o.gender===vt.MALE||o.gender===vt.FEMALE)&&ee(o.genderProbability)}function hr(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var at=b();var nt=b();function Hn(o,t){function e(c,m){let p=nt.tensor4d(o(3*3*c),[3,3,c,1]),d=nt.tensor1d(o(c)),u=nt.tensor1d(o(c)),l=nt.tensor1d(o(c)),g=nt.tensor1d(o(c));return t.push({paramPath:`${m}/filters`},{paramPath:`${m}/batch_norm_scale`},{paramPath:`${m}/batch_norm_offset`},{paramPath:`${m}/batch_norm_mean`},{paramPath:`${m}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:u,batch_norm_mean:l,batch_norm_variance:g}}function r(c,m,p,d,u){let l=nt.tensor4d(o(c*m*p*p),[p,p,c,m]),g=nt.tensor1d(o(m));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${u?"batch_norm_offset":"bias"}`}),{filters:l,bias:g}}function n(c,m,p,d){let{filters:u,bias:l}=r(c,m,p,d,!0);return{filters:u,batch_norm_offset:l}}function a(c,m,p){let d=e(c,`${p}/depthwise_conv`),u=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:u}}function s(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=a(32,64,"mobilenetv1/conv_1"),p=a(64,128,"mobilenetv1/conv_2"),d=a(128,128,"mobilenetv1/conv_3"),u=a(128,256,"mobilenetv1/conv_4"),l=a(256,256,"mobilenetv1/conv_5"),g=a(256,512,"mobilenetv1/conv_6"),_=a(512,512,"mobilenetv1/conv_7"),h=a(512,512,"mobilenetv1/conv_8"),v=a(512,512,"mobilenetv1/conv_9"),F=a(512,512,"mobilenetv1/conv_10"),y=a(512,512,"mobilenetv1/conv_11"),k=a(512,1024,"mobilenetv1/conv_12"),Y=a(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:g,conv_7:_,conv_8:h,conv_9:v,conv_10:F,conv_11:y,conv_12:k,conv_13:Y}}function i(){let c=n(1024,256,1,"prediction_layer/conv_0"),m=n(256,512,3,"prediction_layer/conv_1"),p=n(512,128,1,"prediction_layer/conv_2"),d=n(128,256,3,"prediction_layer/conv_3"),u=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),g=n(256,64,1,"prediction_layer/conv_6"),_=n(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),v=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),F=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),y=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),k=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),Y=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),tt=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),st=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),U=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),_t=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),wt=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),Pt=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:g,conv_7:_,box_predictor_0:{box_encoding_predictor:h,class_predictor:v},box_predictor_1:{box_encoding_predictor:F,class_predictor:y},box_predictor_2:{box_encoding_predictor:k,class_predictor:Y},box_predictor_3:{box_encoding_predictor:tt,class_predictor:st},box_predictor_4:{box_encoding_predictor:U,class_predictor:_t},box_predictor_5:{box_encoding_predictor:wt,class_predictor:Pt}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:i}}function $o(o){let t=[],{extractWeights:e,getRemainingWeights:r}=W(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=Hn(e,t),s=n(),i=a(),m={extra_dim:nt.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:s,prediction_layer:i,output_layer:m},paramMappings:t}}function Yn(o,t){let e=O(o,t);function r(m,p,d){let u=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:u,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,d=`MobilenetV1/Conv2d_${m}_depthwise`,u=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,g=e(`${d}/depthwise_weights`,4,`${u}/filters`),_=e(`${d}/BatchNorm/gamma`,1,`${u}/batch_norm_scale`),h=e(`${d}/BatchNorm/beta`,1,`${u}/batch_norm_offset`),v=e(`${d}/BatchNorm/moving_mean`,1,`${u}/batch_norm_mean`),F=e(`${d}/BatchNorm/moving_variance`,1,`${u}/batch_norm_variance`);return{depthwise_conv:{filters:g,batch_norm_scale:_,batch_norm_offset:h,batch_norm_mean:v,batch_norm_variance:F},pointwise_conv:r("MobilenetV1",m,l)}}function a(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:n(1),conv_2:n(2),conv_3:n(3),conv_4:n(4),conv_5:n(5),conv_6:n(6),conv_7:n(7),conv_8:n(8),conv_9:n(9),conv_10:n(10),conv_11:n(11),conv_12:n(12),conv_13:n(13)}}function s(m,p){let d=e(`${m}/weights`,4,`${p}/filters`),u=e(`${m}/biases`,1,`${p}/bias`);return{filters:d,bias:u}}function i(m){let p=s(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),d=s(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:c}}function Oo(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=Yn(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!ht(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let a={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return A(o,t),{params:a,paramMappings:t}}var yt=b();var Lt=b();function J(o,t,e){return Lt.tidy(()=>{let r=Lt.conv2d(o,t.filters,e,"same");return r=Lt.add(r,t.batch_norm_offset),Lt.clipByValue(r,0,6)})}var Gn=.0010000000474974513;function zn(o,t,e){return yt.tidy(()=>{let r=yt.depthwiseConv2d(o,t.filters,e,"same");return r=yt.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Gn),yt.clipByValue(r,0,6)})}function Vn(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function jo(o,t){return yt.tidy(()=>{let e,r=J(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((a,s)=>{let i=s+1,c=Vn(i);r=zn(r,a.depthwise_conv,c),r=J(r,a.pointwise_conv,[1,1]),i===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function Un(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),i=Math.max(r[t][1],r[t][3]),c=Math.min(r[e][0],r[e][2]),m=Math.min(r[e][1],r[e][3]),p=Math.max(r[e][0],r[e][2]),d=Math.max(r[e][1],r[e][3]),u=(s-n)*(i-a),l=(p-c)*(d-m);if(u<=0||l<=0)return 0;let g=Math.max(n,c),_=Math.max(a,m),h=Math.min(s,p),v=Math.min(i,d),F=Math.max(h-g,0)*Math.max(v-_,0);return F/(u+l-F)}function Ho(o,t,e,r,n){let a=o.shape[0],s=Math.min(e,a),i=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>n).sort((p,d)=>d.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=s)return;let d=p.score;for(let u=m.length-1;u>=0;--u){let l=Un(o,p.boxIndex,m[u]);if(l!==0&&(p.score*=c(l),p.score<=n))break}d===p.score&&m.push(p.boxIndex)}),m}var f=b();function Xn(o){let t=f.unstack(f.transpose(o,[1,0])),e=[f.sub(t[2],t[0]),f.sub(t[3],t[1])],r=[f.add(t[0],f.div(e[0],f.scalar(2))),f.add(t[1],f.div(e[1],f.scalar(2)))];return{sizes:e,centers:r}}function Jn(o,t){let{sizes:e,centers:r}=Xn(o),n=f.unstack(f.transpose(t,[1,0])),a=f.div(f.mul(f.exp(f.div(n[2],f.scalar(5))),e[0]),f.scalar(2)),s=f.add(f.mul(f.div(n[0],f.scalar(10)),e[0]),r[0]),i=f.div(f.mul(f.exp(f.div(n[3],f.scalar(5))),e[1]),f.scalar(2)),c=f.add(f.mul(f.div(n[1],f.scalar(10)),e[1]),r[1]);return f.transpose(f.stack([f.sub(s,a),f.sub(c,i),f.add(s,a),f.add(c,i)]),[1,0])}function Yo(o,t,e){return f.tidy(()=>{let r=o.shape[0],n=Jn(f.reshape(f.tile(e.extra_dim,[r,1,1]),[-1,4]),f.reshape(o,[-1,4]));n=f.reshape(n,[r,n.shape[0]/r,4]);let a=f.sigmoid(f.slice(t,[0,0,1],[-1,-1,-1])),s=f.slice(a,[0,0,0],[-1,-1,1]);s=f.reshape(s,[r,s.shape[1]]);let i=f.unstack(n),c=f.unstack(s);return{boxes:i,scores:c}})}var Oe=b();var $e=b();function Ut(o,t){return $e.tidy(()=>{let e=o.shape[0],r=$e.reshape(zt(o,t.box_encoding_predictor),[e,-1,1,4]),n=$e.reshape(zt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Go(o,t,e){return Oe.tidy(()=>{let r=J(o,e.conv_0,[1,1]),n=J(r,e.conv_1,[2,2]),a=J(n,e.conv_2,[1,1]),s=J(a,e.conv_3,[2,2]),i=J(s,e.conv_4,[1,1]),c=J(i,e.conv_5,[2,2]),m=J(c,e.conv_6,[1,1]),p=J(m,e.conv_7,[2,2]),d=Ut(t,e.box_predictor_0),u=Ut(o,e.box_predictor_1),l=Ut(n,e.box_predictor_2),g=Ut(s,e.box_predictor_3),_=Ut(c,e.box_predictor_4),h=Ut(p,e.box_predictor_5),v=Oe.concat([d.boxPredictionEncoding,u.boxPredictionEncoding,l.boxPredictionEncoding,g.boxPredictionEncoding,_.boxPredictionEncoding,h.boxPredictionEncoding],1),F=Oe.concat([d.classPrediction,u.classPrediction,l.classPrediction,g.classPrediction,_.classPrediction,h.classPrediction],1);return{boxPredictions:v,classPredictions:F}})}var q=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var Xt=class extends L{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return at.tidy(()=>{let r=at.cast(t.toBatchTensor(512,!1),"float32"),n=at.sub(at.mul(r,at.scalar(.007843137718737125)),at.scalar(1)),a=jo(n,e.mobilenetv1),{boxPredictions:s,classPredictions:i}=Go(a.out,a.conv11,e.prediction_layer);return Yo(s,i,e.output_layer)})}async forward(t){return this.forwardInput(await D(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new q(e),a=await D(t),{boxes:s,scores:i}=this.forwardInput(a),c=s[0],m=i[0];for(let y=1;y{let[k,Y]=[Math.max(0,v[y][0]),Math.min(1,v[y][2])].map(U=>U*h),[tt,st]=[Math.max(0,v[y][1]),Math.min(1,v[y][3])].map(U=>U*_);return new E(p[y],new oe(tt,k,st-tt,Y-k),{height:a.getInputHeight(0),width:a.getInputWidth(0)})});return c.dispose(),m.dispose(),F}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Oo(t)}extractParams(t){return $o(t)}};function zo(o){let t=new Xt;return t.extractWeights(o),t}function qn(o){return zo(o)}var Vo=class extends Xt{};var Uo=.4,Xo=[new x(.738768,.874946),new x(2.42204,2.65704),new x(4.30971,7.04493),new x(10.246,4.59428),new x(12.6868,11.8741)],Jo=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],qo=[117.001,114.697,97.404],Zo="tiny_yolov2_model",Ko="tiny_yolov2_separable_conv_model";var C=b();var xr=o=>typeof o=="number";function oo(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!xr(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>xr(t.x)&&xr(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(xr)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var K=b();var Z=b();function be(o){return Z.tidy(()=>{let t=Z.mul(o,Z.scalar(.10000000149011612));return Z.add(Z.relu(Z.sub(o,t)),t)})}function Ft(o,t){return K.tidy(()=>{let e=K.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=K.conv2d(e,t.conv.filters,[1,1],"valid"),e=K.sub(e,t.bn.sub),e=K.mul(e,t.bn.truediv),e=K.add(e,t.conv.bias),be(e)})}var St=b();function Tt(o,t){return St.tidy(()=>{let e=St.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=St.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=St.add(e,t.bias),be(e)})}var no=b();function Zn(o,t){let e=ce(o,t);function r(s,i){let c=no.tensor1d(o(s)),m=no.tensor1d(o(s));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(s,i,c){let m=e(s,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let a=me(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}}function Qo(o,t,e,r){let{extractWeights:n,getRemainingWeights:a}=W(o),s=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=Zn(n,s),p;if(t.withSeparableConvs){let[d,u,l,g,_,h,v,F,y]=r,k=t.isFirstLayerConv2d?i(d,u,3,"conv0"):m(d,u,"conv0"),Y=m(u,l,"conv1"),tt=m(l,g,"conv2"),st=m(g,_,"conv3"),U=m(_,h,"conv4"),_t=m(h,v,"conv5"),wt=F?m(v,F,"conv6"):void 0,Pt=y?m(F,y,"conv7"):void 0,te=i(y||F||v,5*e,1,"conv8");p={conv0:k,conv1:Y,conv2:tt,conv3:st,conv4:U,conv5:_t,conv6:wt,conv7:Pt,conv8:te}}else{let[d,u,l,g,_,h,v,F,y]=r,k=c(d,u,"conv0"),Y=c(u,l,"conv1"),tt=c(l,g,"conv2"),st=c(g,_,"conv3"),U=c(_,h,"conv4"),_t=c(h,v,"conv5"),wt=c(v,F,"conv6"),Pt=c(F,y,"conv7"),te=i(y,5*e,1,"conv8");p={conv0:k,conv1:Y,conv2:tt,conv3:st,conv4:U,conv5:_t,conv6:wt,conv7:Pt,conv8:te}}if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:p,paramMappings:s}}function Kn(o,t){let e=O(o,t);function r(i){let c=e(`${i}/sub`,1),m=e(`${i}/truediv`,1);return{sub:c,truediv:m}}function n(i){let c=e(`${i}/filters`,4),m=e(`${i}/bias`,1);return{filters:c,bias:m}}function a(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let s=pe(e);return{extractConvParams:n,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function tn(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}=Kn(o,e),s;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:i>7?a("conv6"):void 0,conv7:i>8?a("conv7"):void 0,conv8:r("conv8")}}else s={conv0:n("conv0"),conv1:n("conv1"),conv2:n("conv2"),conv3:n("conv3"),conv4:n("conv4"),conv5:n("conv5"),conv6:n("conv6"),conv7:n("conv7"),conv8:r("conv8")};return A(o,e),{params:s,paramMappings:e}}var ut=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var ao=class extends L{constructor(t){super("TinyYolov2");oo(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,e){let r=Ft(t,e.conv0);return r=C.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv1),r=C.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv2),r=C.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv3),r=C.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv4),r=C.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv5),r=C.maxPool(r,[2,2],[1,1],"same"),r=Ft(r,e.conv6),r=Ft(r,e.conv7),zt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?be(zt(t,e.conv0,"valid",!1)):Tt(t,e.conv0);return r=C.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv1),r=C.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv2),r=C.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv3),r=C.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv4),r=C.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv5),r=C.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?Tt(r,e.conv6):r,r=e.conv7?Tt(r,e.conv7):r,zt(r,e.conv8,"valid",!1)}forwardInput(t,e){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return C.tidy(()=>{let n=C.cast(t.toBatchTensor(e,!1),"float32");return n=this.config.meanRgb?rt(n,this.config.meanRgb):n,n=n.div(C.scalar(256)),this.config.withSeparableConvs?this.runMobilenet(n,r):this.runTinyYolov2(n,r)})}async forward(t,e){return this.forwardInput(await D(t),e)}async detect(t,e={}){let{inputSize:r,scoreThreshold:n}=new ut(e),a=await D(t),s=await this.forwardInput(a,r),i=C.tidy(()=>C.unstack(s)[0].expandDims()),c={width:a.getInputWidth(0),height:a.getInputHeight(0)},m=await this.extractBoxes(i,a.getReshapedInputDimensions(0),n);s.dispose(),i.dispose();let p=m.map(h=>h.box),d=m.map(h=>h.score),u=m.map(h=>h.classScore),l=m.map(h=>this.config.classes[h.label]);return Lr(p.map(h=>h.rescale(r)),d,this.config.iouThreshold,!0).map(h=>new Dt(d[h],u[h],l[h],p[h],c))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return tn(t,this.config)}extractParams(t){let e=this.config.filterSizes||ao.DEFAULT_FILTER_SIZES,r=e?e.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return Qo(t,this.config,this.boxEncodingSize,e)}async extractBoxes(t,e,r){let{width:n,height:a}=e,s=Math.max(n,a),i=s/n,c=s/a,m=t.shape[1],p=this.config.anchors.length,[d,u,l]=C.tidy(()=>{let v=t.reshape([m,m,p,this.boxEncodingSize]),F=v.slice([0,0,0,0],[m,m,p,4]),y=v.slice([0,0,0,4],[m,m,p,1]),k=this.withClassScores?C.softmax(v.slice([0,0,0,5],[m,m,p,this.config.classes.length]),3):C.scalar(0);return[F,y,k]}),g=[],_=await u.array(),h=await d.array();for(let v=0;vr){let Y=(F+De(h[v][F][y][0]))/m*i,tt=(v+De(h[v][F][y][1]))/m*c,st=Math.exp(h[v][F][y][2])*this.config.anchors[y].x/m*i,U=Math.exp(h[v][F][y][3])*this.config.anchors[y].y/m*c,_t=Y-st/2,wt=tt-U/2,Pt={row:v,col:F,anchor:y},{classScore:te,label:po}=this.withClassScores?await this.extractPredictedClass(l,Pt):{classScore:1,label:0};g.push({box:new re(_t,wt,_t+st,wt+U),score:k,classScore:k*te,label:po,...Pt})}}return d.dispose(),u.dispose(),l.dispose(),g}async extractPredictedClass(t,e){let{row:r,col:n,anchor:a}=e,s=await t.array();return Array(this.config.classes.length).fill(0).map((i,c)=>s[r][n][a][c]).map((i,c)=>({classScore:i,label:c})).reduce((i,c)=>i.classScore>c.classScore?i:c)}},ge=ao;ge.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var ve=class extends ge{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:Uo,classes:["face"],...t?{anchors:Jo,meanRgb:qo}:{anchors:Xo,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new E(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?Ko:Zo}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function Qn(o,t=!0){let e=new ve(t);return e.extractWeights(o),e}var br=class extends ut{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var Q=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var je=b();var so=b();async function Jt(o,t,e,r,n=({alignedRect:a})=>a){let a=o.map(c=>Vt(c)?n(c):c.detection),s=r||(t instanceof so.Tensor?await se(t,a):await ae(t,a)),i=await e(s);return s.forEach(c=>c instanceof so.Tensor&&c.dispose()),i}async function ye(o,t,e,r,n){return Jt([o],t,async a=>e(a[0]),r,n)}var en=.4,rn=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],on=[117.001,114.697,97.404];var Fe=class extends ge{constructor(){let t={withSeparableConvs:!0,iouThreshold:en,classes:["face"],anchors:rn,meanRgb:on,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new E(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var T={ssdMobilenetv1:new Xt,tinyFaceDetector:new Fe,tinyYolov2:new ve,faceLandmark68Net:new fe,faceLandmark68TinyNet:new pr,faceRecognitionNet:new xe,faceExpressionNet:new ir,ageGenderNet:new mr},nn=(o,t)=>T.ssdMobilenetv1.locateFaces(o,t),ta=(o,t)=>T.tinyFaceDetector.locateFaces(o,t),ea=(o,t)=>T.tinyYolov2.locateFaces(o,t),an=o=>T.faceLandmark68Net.detectLandmarks(o),ra=o=>T.faceLandmark68TinyNet.detectLandmarks(o),oa=o=>T.faceRecognitionNet.computeFaceDescriptor(o),na=o=>T.faceExpressionNet.predictExpressions(o),aa=o=>T.ageGenderNet.predictAgeAndGender(o),sn=o=>T.ssdMobilenetv1.load(o),sa=o=>T.tinyFaceDetector.load(o),ia=o=>T.tinyYolov2.load(o),ca=o=>T.faceLandmark68Net.load(o),ma=o=>T.faceLandmark68TinyNet.load(o),pa=o=>T.faceRecognitionNet.load(o),da=o=>T.faceExpressionNet.load(o),ua=o=>T.ageGenderNet.load(o),la=sn,fa=nn,ha=an;var io=class extends Q{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},we=class extends io{async run(){let t=await this.parentTask,e=await Jt(t,this.input,async r=>Promise.all(r.map(n=>T.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>cr(r,e[n]))}withAgeAndGender(){return new Te(this,this.input)}},Pe=class extends io{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>T.faceExpressionNet.predictExpressions(r),this.extractedFaces);return cr(t,e)}withAgeAndGender(){return new _e(this,this.input)}},Kt=class extends we{withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Qt=class extends Pe{withAgeAndGender(){return new Zt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var co=class extends Q{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},Te=class extends co{async run(){let t=await this.parentTask,e=await Jt(t,this.input,async r=>Promise.all(r.map(n=>T.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:a,gender:s,genderProbability:i}=e[n];return fr(hr(r,s,i),a)})}withFaceExpressions(){return new we(this,this.input)}},_e=class extends co{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await ye(t,this.input,a=>T.ageGenderNet.predictAgeAndGender(a),this.extractedFaces);return fr(hr(t,r,n),e)}withFaceExpressions(){return new Pe(this,this.input)}},qt=class extends Te{withFaceExpressions(){return new Kt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Zt=class extends _e{withFaceExpressions(){return new Qt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var gr=class extends Q{constructor(t,e){super();this.parentTask=t;this.input=e}},At=class extends gr{async run(){let t=await this.parentTask;return(await Jt(t,this.input,r=>Promise.all(r.map(n=>T.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>lr(t[n],r))}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}},Wt=class extends gr{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>T.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return lr(t,e)}withFaceExpressions(){return new Qt(this,this.input)}withAgeAndGender(){return new Zt(this,this.input)}};var vr=class extends Q{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?T.faceLandmark68TinyNet:T.faceLandmark68Net}},yr=class extends vr{async run(){let t=await this.parentTask,e=t.map(a=>a.detection),r=this.input instanceof je.Tensor?await se(this.input,e):await ae(this.input,e),n=await Promise.all(r.map(a=>this.landmarkNet.detectLandmarks(a)));return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),t.map((a,s)=>le(a,n[s]))}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Fr=class extends vr{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof je.Tensor?await se(this.input,[e]):await ae(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),le(t,n)}withFaceExpressions(){return new Qt(this,this.input)}withAgeAndGender(){return new Zt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var Tr=class extends Q{constructor(t,e=new q){super();this.input=t;this.options=e}},He=class extends Tr{async run(){let{input:t,options:e}=this,r;if(e instanceof br)r=T.tinyFaceDetector.locateFaces(t,e);else if(e instanceof q)r=T.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof ut)r=T.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise(async t=>{let e=await this.run();t(e.map(r=>Ot({},r)))})}withFaceLandmarks(t=!1){return new yr(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new we(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Te(this.runAndExtendWithFaceDetections(),this.input)}},_r=class extends Tr{async run(){let t=await new He(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?Ot({},e):void 0)})}withFaceLandmarks(t=!1){return new Fr(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Pe(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new _e(this.runAndExtendWithFaceDetection(),this.input)}};function xa(o,t=new q){return new _r(o,t)}function wr(o,t=new q){return new He(o,t)}async function cn(o,t){return wr(o,new q(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function ba(o,t={}){return wr(o,new ut(t)).withFaceLandmarks().withFaceDescriptors()}var ga=cn;function mo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((n,a)=>n-r[a]).reduce((n,a)=>n+a**2,0))}var Pr=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1,a=()=>`person ${n++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof xt)return s;if(s instanceof Float32Array)return new xt(a(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new xt(a(),[s.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>mo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new Ee(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>xt.fromJSON(r));return new Pr(e,t.distanceThreshold)}};function va(o){let t=new Fe;return t.extractWeights(o),t}function mn(o,t){let{width:e,height:r}=new S(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(n=>mn(n,{width:e,height:r}));if(Vt(o)){let n=o.detection.forSize(e,r),a=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return le(Ot(o,n),a)}return mt(o)?Ot(o,o.detection.forSize(e,r)):o instanceof z||o instanceof E?o.forSize(e,r):o}var Fa=typeof process!="undefined",Ta=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",_a={faceapi:Do,node:Fa,browser:Ta};export{mr as AgeGenderNet,re as BoundingBox,P as Box,Q as ComposableTask,At as ComputeAllFaceDescriptorsTask,gr as ComputeFaceDescriptorsTaskBase,Wt as ComputeSingleFaceDescriptorTask,yr as DetectAllFaceLandmarksTask,He as DetectAllFacesTask,vr as DetectFaceLandmarksTaskBase,Tr as DetectFacesTaskBase,Fr as DetectSingleFaceLandmarksTask,_r as DetectSingleFaceTask,S as Dimensions,Xr as FACE_EXPRESSION_LABELS,E as FaceDetection,Vo as FaceDetectionNet,ir as FaceExpressionNet,kt as FaceExpressions,fe as FaceLandmark68Net,pr as FaceLandmark68TinyNet,So as FaceLandmarkNet,z as FaceLandmarks,ho as FaceLandmarks5,ne as FaceLandmarks68,Ee as FaceMatch,Pr as FaceMatcher,xe as FaceRecognitionNet,vt as Gender,Me as LabeledBox,xt as LabeledFaceDescriptors,bt as NetInput,L as NeuralNetwork,Dt as ObjectDetection,x as Point,xo as PredictedBox,oe as Rect,Xt as SsdMobilenetv1,q as SsdMobilenetv1Options,Fe as TinyFaceDetector,br as TinyFaceDetectorOptions,ve as TinyYolov2,ut as TinyYolov2Options,ga as allFaces,cn as allFacesSsdMobilenetv1,ba as allFacesTinyYolov2,Hr as awaitMediaLoaded,Yr as bufferToImage,oa as computeFaceDescriptor,Yt as createCanvas,ke as createCanvasFromMedia,qn as createFaceDetectionNet,$n as createFaceRecognitionNet,zo as createSsdMobilenetv1,va as createTinyFaceDetector,Qn as createTinyYolov2,wr as detectAllFaces,an as detectFaceLandmarks,ra as detectFaceLandmarksTiny,ha as detectLandmarks,xa as detectSingleFace,Po as draw,w as env,mo as euclideanDistance,fr as extendWithAge,lr as extendWithFaceDescriptor,Ot as extendWithFaceDetection,cr as extendWithFaceExpressions,le as extendWithFaceLandmarks,hr as extendWithGender,se as extractFaceTensors,ae as extractFaces,Mn as fetchImage,Vr as fetchJson,Cn as fetchNetWeights,Gt as fetchOrThrow,R as getContext2dOrThrow,Ht as getMediaDimensions,Gr as imageTensorToCanvas,zr as imageToSquare,vn as inverseSigmoid,kr as iou,Je as isMediaElement,Ne as isMediaLoaded,On as isWithAge,mt as isWithFaceDetection,Jr as isWithFaceExpressions,Vt as isWithFaceLandmarks,jn as isWithGender,ua as loadAgeGenderModel,la as loadFaceDetectionModel,da as loadFaceExpressionModel,ca as loadFaceLandmarkModel,ma as loadFaceLandmarkTinyModel,pa as loadFaceRecognitionModel,sn as loadSsdMobilenetv1Model,sa as loadTinyFaceDetectorModel,ia as loadTinyYolov2Model,Ur as loadWeightMap,fa as locateFaces,Nn as matchDimensions,Ir as minBbox,T as nets,Lr as nonMaxSuppression,rt as normalize,Sr as padToSquare,aa as predictAgeAndGender,na as recognizeFaceExpressions,mn as resizeResults,jt as resolveInput,gn as shuffleArray,De as sigmoid,nn as ssdMobilenetv1,ya as tf,ta as tinyFaceDetector,ea as tinyYolov2,D as toNetInput,lo as utils,oo as validateConfig,_a as version}; //# sourceMappingURL=face-api.esm-nobundle.js.map diff --git a/dist/face-api.esm-nobundle.json b/dist/face-api.esm-nobundle.json deleted file mode 100644 index 70762aa..0000000 --- a/dist/face-api.esm-nobundle.json +++ /dev/null @@ -1,3194 +0,0 @@ -{ - "inputs": { - "dist/tfjs.esm.js": { - "bytes": 244, - "imports": [] - }, - "src/draw/drawContour.ts": { - "bytes": 539, - "imports": [] - }, - "src/classes/Dimensions.ts": { - "bytes": 745, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/utils/index.ts": { - "bytes": 1793, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/Point.ts": { - "bytes": 925, - "imports": [] - }, - "src/classes/Box.ts": { - "bytes": 5690, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Point.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/BoundingBox.ts": { - "bytes": 402, - "imports": [ - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/ObjectDetection.ts": { - "bytes": 1424, - "imports": [ - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceDetection.ts": { - "bytes": 656, - "imports": [ - { - "path": "src/classes/ObjectDetection.ts", - "kind": "import-statement" - } - ] - }, - "src/ops/iou.ts": { - "bytes": 473, - "imports": [] - }, - "src/ops/minBbox.ts": { - "bytes": 498, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ops/nonMaxSuppression.ts": { - "bytes": 924, - "imports": [ - { - "path": "src/ops/iou.ts", - "kind": "import-statement" - } - ] - }, - "src/ops/normalize.ts": { - "bytes": 483, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ops/padToSquare.ts": { - "bytes": 1684, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ops/shuffleArray.ts": { - "bytes": 273, - "imports": [] - }, - "src/ops/index.ts": { - "bytes": 331, - "imports": [ - { - "path": "src/ops/iou.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/minBbox.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/nonMaxSuppression.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/normalize.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/padToSquare.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/shuffleArray.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/Rect.ts": { - "bytes": 359, - "imports": [ - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceLandmarks.ts": { - "bytes": 4199, - "imports": [ - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Point.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Rect.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceLandmarks5.ts": { - "bytes": 360, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceLandmarks68.ts": { - "bytes": 915, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceMatch.ts": { - "bytes": 578, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/LabeledBox.ts": { - "bytes": 645, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/LabeledFaceDescriptors.ts": { - "bytes": 1072, - "imports": [] - }, - "src/classes/PredictedBox.ts": { - "bytes": 952, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledBox.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/index.ts": { - "bytes": 436, - "imports": [ - { - "path": "src/classes/BoundingBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks5.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks68.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceMatch.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledFaceDescriptors.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/ObjectDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Point.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/PredictedBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Rect.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceDetection.ts": { - "bytes": 486, - "imports": [ - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - } - ] - }, - "src/env/createBrowserEnv.ts": { - "bytes": 636, - "imports": [] - }, - "src/env/createFileSystem.ts": { - "bytes": 654, - "imports": [] - }, - "src/env/createNodejsEnv.ts": { - "bytes": 1202, - "imports": [ - { - "path": "src/env/createFileSystem.ts", - "kind": "import-statement" - } - ] - }, - "src/env/isBrowser.ts": { - "bytes": 354, - "imports": [] - }, - "src/env/isNodejs.ts": { - "bytes": 295, - "imports": [] - }, - "src/env/types.ts": { - "bytes": 570, - "imports": [] - }, - "src/env/index.ts": { - "bytes": 1817, - "imports": [ - { - "path": "src/env/createBrowserEnv.ts", - "kind": "import-statement" - }, - { - "path": "src/env/createFileSystem.ts", - "kind": "import-statement" - }, - { - "path": "src/env/createNodejsEnv.ts", - "kind": "import-statement" - }, - { - "path": "src/env/isBrowser.ts", - "kind": "import-statement" - }, - { - "path": "src/env/isNodejs.ts", - "kind": "import-statement" - }, - { - "path": "src/env/types.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/resolveInput.ts": { - "bytes": 200, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/getContext2dOrThrow.ts": { - "bytes": 673, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/DrawTextField.ts": { - "bytes": 4094, - "imports": [ - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/DrawBox.ts": { - "bytes": 1831, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawTextField.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/drawDetections.ts": { - "bytes": 1128, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawBox.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/isMediaLoaded.ts": { - "bytes": 277, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/awaitMediaLoaded.ts": { - "bytes": 963, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaLoaded.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/bufferToImage.ts": { - "bytes": 687, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/getMediaDimensions.ts": { - "bytes": 529, - "imports": [ - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/createCanvas.ts": { - "bytes": 1139, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaLoaded.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/imageTensorToCanvas.ts": { - "bytes": 615, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/isMediaElement.ts": { - "bytes": 228, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/imageToSquare.ts": { - "bytes": 1296, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/NetInput.ts": { - "bytes": 5508, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/padToSquare.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageToSquare.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/toNetInput.ts": { - "bytes": 2115, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/awaitMediaLoaded.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaElement.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/NetInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/extractFaces.ts": { - "bytes": 1804, - "imports": [ - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageTensorToCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/toNetInput.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/extractFaceTensors.ts": { - "bytes": 1730, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchOrThrow.ts": { - "bytes": 390, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchImage.ts": { - "bytes": 451, - "imports": [ - { - "path": "src/dom/bufferToImage.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchJson.ts": { - "bytes": 155, - "imports": [ - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchNetWeights.ts": { - "bytes": 200, - "imports": [ - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - } - ] - }, - "src/common/getModelUris.ts": { - "bytes": 1052, - "imports": [] - }, - "src/dom/loadWeightMap.ts": { - "bytes": 552, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/getModelUris.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchJson.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/matchDimensions.ts": { - "bytes": 401, - "imports": [ - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/types.ts": { - "bytes": 383, - "imports": [] - }, - "src/dom/index.ts": { - "bytes": 696, - "imports": [ - { - "path": "src/dom/awaitMediaLoaded.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/bufferToImage.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/extractFaces.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/extractFaceTensors.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchImage.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchJson.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchNetWeights.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageTensorToCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageToSquare.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaElement.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaLoaded.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/loadWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/matchDimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/NetInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/toNetInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/types.ts", - "kind": "import-statement" - } - ] - }, - "src/NeuralNetwork.ts": { - "bytes": 5291, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/getModelUris.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/common/depthwiseSeparableConv.ts": { - "bytes": 414, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/denseBlock.ts": { - "bytes": 2038, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/depthwiseSeparableConv.ts", - "kind": "import-statement" - } - ] - }, - "src/common/convLayer.ts": { - "bytes": 428, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/common/disposeUnusedWeightTensors.ts": { - "bytes": 290, - "imports": [] - }, - "src/common/extractConvParamsFactory.ts": { - "bytes": 766, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/common/extractFCParamsFactory.ts": { - "bytes": 711, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/common/types.ts": { - "bytes": 797, - "imports": [] - }, - "src/common/extractSeparableConvParamsFactory.ts": { - "bytes": 1533, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/types.ts", - "kind": "import-statement" - } - ] - }, - "src/common/extractWeightEntryFactory.ts": { - "bytes": 579, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/common/extractWeightsFactory.ts": { - "bytes": 441, - "imports": [] - }, - "src/common/index.ts": { - "bytes": 399, - "imports": [ - { - "path": "src/common/convLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/common/depthwiseSeparableConv.ts", - "kind": "import-statement" - }, - { - "path": "src/common/disposeUnusedWeightTensors.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractFCParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractSeparableConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightEntryFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/getModelUris.ts", - "kind": "import-statement" - }, - { - "path": "src/common/types.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractorsFactory.ts": { - "bytes": 1587, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParams.ts": { - "bytes": 1030, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractorsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/common/loadConvParamsFactory.ts": { - "bytes": 466, - "imports": [] - }, - "src/faceFeatureExtractor/loadParamsFactory.ts": { - "bytes": 1547, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/common/loadConvParamsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParamsFromWeightMap.ts": { - "bytes": 838, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/loadParamsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/FaceFeatureExtractor.ts": { - "bytes": 1806, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/denseBlock.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParamsFromWeightMap.ts", - "kind": "import-statement" - } - ] - }, - "src/common/fullyConnectedLayer.ts": { - "bytes": 263, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/faceProcessor/extractParams.ts": { - "bytes": 759, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceProcessor/extractParamsFromWeightMap.ts": { - "bytes": 823, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceProcessor/util.ts": { - "bytes": 421, - "imports": [] - }, - "src/faceProcessor/FaceProcessor.ts": { - "bytes": 3034, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/fullyConnectedLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/util.ts", - "kind": "import-statement" - } - ] - }, - "src/faceExpressionNet/FaceExpressions.ts": { - "bytes": 869, - "imports": [] - }, - "src/faceExpressionNet/FaceExpressionNet.ts": { - "bytes": 1664, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/FaceFeatureExtractor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/FaceProcessor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/FaceExpressions.ts", - "kind": "import-statement" - } - ] - }, - "src/faceExpressionNet/index.ts": { - "bytes": 72, - "imports": [ - { - "path": "src/faceExpressionNet/FaceExpressionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/FaceExpressions.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceExpressions.ts": { - "bytes": 524, - "imports": [ - { - "path": "src/faceExpressionNet/FaceExpressions.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/drawFaceExpressions.ts": { - "bytes": 1612, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawTextField.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceLandmarks.ts": { - "bytes": 3592, - "imports": [ - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/DrawFaceLandmarks.ts": { - "bytes": 3528, - "imports": [ - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks68.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/drawContour.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/index.ts": { - "bytes": 201, - "imports": [ - { - "path": "src/draw/drawContour.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/drawDetections.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/drawFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawBox.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawTextField.ts", - "kind": "import-statement" - } - ] - }, - "package.json": { - "bytes": 2040, - "imports": [] - }, - "src/xception/extractParams.ts": { - "bytes": 3440, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/xception/extractParamsFromWeightMap.ts": { - "bytes": 3130, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/common/loadConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/xception/TinyXception.ts": { - "bytes": 3143, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/xception/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/xception/extractParamsFromWeightMap.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/extractParams.ts": { - "bytes": 778, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/extractParamsFromWeightMap.ts": { - "bytes": 891, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/types.ts": { - "bytes": 525, - "imports": [] - }, - "src/ageGenderNet/AgeGenderNet.ts": { - "bytes": 4269, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/fullyConnectedLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/util.ts", - "kind": "import-statement" - }, - { - "path": "src/xception/TinyXception.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/types.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/index.ts": { - "bytes": 57, - "imports": [ - { - "path": "src/ageGenderNet/AgeGenderNet.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/types.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/FaceLandmark68NetBase.ts": { - "bytes": 3717, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks68.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/FaceProcessor.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/FaceLandmark68Net.ts": { - "bytes": 622, - "imports": [ - { - "path": "src/faceFeatureExtractor/FaceFeatureExtractor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68NetBase.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts": { - "bytes": 802, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/loadParamsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParamsTiny.ts": { - "bytes": 960, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractorsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts": { - "bytes": 1816, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/denseBlock.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParamsTiny.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/FaceLandmark68TinyNet.ts": { - "bytes": 659, - "imports": [ - { - "path": "src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68NetBase.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/index.ts": { - "bytes": 194, - "imports": [ - { - "path": "src/faceLandmarkNet/FaceLandmark68Net.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68Net.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68TinyNet.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/scaleLayer.ts": { - "bytes": 229, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/convLayer.ts": { - "bytes": 850, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/scaleLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/extractParams.ts": { - "bytes": 4907, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/extractParamsFromWeightMap.ts": { - "bytes": 3098, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/residualLayer.ts": { - "bytes": 1342, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/convLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/FaceRecognitionNet.ts": { - "bytes": 2959, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/convLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/residualLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/index.ts": { - "bytes": 252, - "imports": [ - { - "path": "src/faceRecognitionNet/FaceRecognitionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/FaceRecognitionNet.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceDescriptor.ts": { - "bytes": 301, - "imports": [] - }, - "src/factories/WithAge.ts": { - "bytes": 334, - "imports": [] - }, - "src/factories/WithGender.ts": { - "bytes": 618, - "imports": [ - { - "path": "src/ageGenderNet/types.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/index.ts": { - "bytes": 208, - "imports": [ - { - "path": "src/factories/WithFaceDescriptor.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithAge.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithGender.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/extractParams.ts": { - "bytes": 8330, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/extractParamsFromWeightMap.ts": { - "bytes": 5775, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/pointwiseConvLayer.ts": { - "bytes": 391, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/mobileNetV1.ts": { - "bytes": 1811, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/pointwiseConvLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/nonMaxSuppression.ts": { - "bytes": 2170, - "imports": [] - }, - "src/ssdMobilenetv1/outputLayer.ts": { - "bytes": 2183, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/boxPredictionLayer.ts": { - "bytes": 598, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/predictionLayer.ts": { - "bytes": 2055, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/boxPredictionLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/pointwiseConvLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/SsdMobilenetv1Options.ts": { - "bytes": 881, - "imports": [] - }, - "src/ssdMobilenetv1/SsdMobilenetv1.ts": { - "bytes": 3652, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/mobileNetV1.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/nonMaxSuppression.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/outputLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/predictionLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/index.ts": { - "bytes": 471, - "imports": [ - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/const.ts": { - "bytes": 704, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/config.ts": { - "bytes": 1701, - "imports": [] - }, - "src/tinyYolov2/leaky.ts": { - "bytes": 238, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/convWithBatchNorm.ts": { - "bytes": 530, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/leaky.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/depthwiseSeparableConv.ts": { - "bytes": 500, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/leaky.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/extractParams.ts": { - "bytes": 3911, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractSeparableConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/extractParamsFromWeightMap.ts": { - "bytes": 3282, - "imports": [ - { - "path": "src/common/disposeUnusedWeightTensors.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractSeparableConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightEntryFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/TinyYolov2Options.ts": { - "bytes": 913, - "imports": [] - }, - "src/tinyYolov2/TinyYolov2Base.ts": { - "bytes": 9606, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/BoundingBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/ObjectDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/nonMaxSuppression.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/normalize.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/config.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/convWithBatchNorm.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/depthwiseSeparableConv.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/leaky.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Options.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/TinyYolov2.ts": { - "bytes": 1801, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/const.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Base.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/types.ts": { - "bytes": 952, - "imports": [] - }, - "src/tinyYolov2/index.ts": { - "bytes": 347, - "imports": [ - { - "path": "src/tinyYolov2/TinyYolov2.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Options.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/config.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/types.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/TinyFaceDetectorOptions.ts": { - "bytes": 272, - "imports": [ - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/ComposableTask.ts": { - "bytes": 322, - "imports": [] - }, - "src/globalApi/extractFacesAndComputeResults.ts": { - "bytes": 2037, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/const.ts": { - "bytes": 354, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/TinyFaceDetector.ts": { - "bytes": 1470, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Base.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/const.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/nets.ts": { - "bytes": 6336, - "imports": [ - { - "path": "src/ageGenderNet/AgeGenderNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/FaceExpressionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68Net.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68TinyNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/FaceRecognitionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetector.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/PredictFaceExpressionsTask.ts": { - "bytes": 3827, - "imports": [ - { - "path": "src/factories/WithFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/extractFacesAndComputeResults.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/PredictAgeAndGenderTask.ts": { - "bytes": 4008, - "imports": [ - { - "path": "src/factories/WithAge.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithGender.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/extractFacesAndComputeResults.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/ComputeFaceDescriptorsTasks.ts": { - "bytes": 3215, - "imports": [ - { - "path": "src/factories/WithFaceDescriptor.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/extractFacesAndComputeResults.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/DetectFaceLandmarksTasks.ts": { - "bytes": 4002, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/DetectFacesTasks.ts": { - "bytes": 4124, - "imports": [ - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetectorOptions.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFaceLandmarksTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/detectFaces.ts": { - "bytes": 624, - "imports": [ - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFacesTasks.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/allFaces.ts": { - "bytes": 1056, - "imports": [ - { - "path": "src/ssdMobilenetv1/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/detectFaces.ts", - "kind": "import-statement" - } - ] - }, - "src/euclideanDistance.ts": { - "bytes": 398, - "imports": [] - }, - "src/globalApi/FaceMatcher.ts": { - "bytes": 2992, - "imports": [ - { - "path": "src/classes/FaceMatch.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledFaceDescriptors.ts", - "kind": "import-statement" - }, - { - "path": "src/euclideanDistance.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/types.ts": { - "bytes": 556, - "imports": [] - }, - "src/globalApi/index.ts": { - "bytes": 300, - "imports": [ - { - "path": "src/globalApi/allFaces.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/detectFaces.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFacesTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFaceLandmarksTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/FaceMatcher.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/types.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/index.ts": { - "bytes": 285, - "imports": [ - { - "path": "src/tinyFaceDetector/TinyFaceDetector.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetector.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetectorOptions.ts", - "kind": "import-statement" - } - ] - }, - "src/resizeResults.ts": { - "bytes": 1519, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/index.ts": { - "bytes": 987, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/draw/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "package.json", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/index.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - }, - { - "path": "src/euclideanDistance.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/resizeResults.ts", - "kind": "import-statement" - } - ] - } - }, - "outputs": { - "dist/face-api.esm-nobundle.js.map": { - "imports": [], - "exports": [], - "inputs": {}, - "bytes": 315931 - }, - "dist/face-api.esm-nobundle.js": { - "imports": [], - "exports": [ - "AgeGenderNet", - "BoundingBox", - "Box", - "ComposableTask", - "ComputeAllFaceDescriptorsTask", - "ComputeFaceDescriptorsTaskBase", - "ComputeSingleFaceDescriptorTask", - "DetectAllFaceLandmarksTask", - "DetectAllFacesTask", - "DetectFaceLandmarksTaskBase", - "DetectFacesTaskBase", - "DetectSingleFaceLandmarksTask", - "DetectSingleFaceTask", - "Dimensions", - "FACE_EXPRESSION_LABELS", - "FaceDetection", - "FaceDetectionNet", - "FaceExpressionNet", - "FaceExpressions", - "FaceLandmark68Net", - "FaceLandmark68TinyNet", - "FaceLandmarkNet", - "FaceLandmarks", - "FaceLandmarks5", - "FaceLandmarks68", - "FaceMatch", - "FaceMatcher", - "FaceRecognitionNet", - "Gender", - "LabeledBox", - "LabeledFaceDescriptors", - "NetInput", - "NeuralNetwork", - "ObjectDetection", - "Point", - "PredictedBox", - "Rect", - "SsdMobilenetv1", - "SsdMobilenetv1Options", - "TinyFaceDetector", - "TinyFaceDetectorOptions", - "TinyYolov2", - "TinyYolov2Options", - "allFaces", - "allFacesSsdMobilenetv1", - "allFacesTinyYolov2", - "awaitMediaLoaded", - "bufferToImage", - "computeFaceDescriptor", - "createCanvas", - "createCanvasFromMedia", - "createFaceDetectionNet", - "createFaceRecognitionNet", - "createSsdMobilenetv1", - "createTinyFaceDetector", - "createTinyYolov2", - "detectAllFaces", - "detectFaceLandmarks", - "detectFaceLandmarksTiny", - "detectLandmarks", - "detectSingleFace", - "draw", - "env", - "euclideanDistance", - "extendWithAge", - "extendWithFaceDescriptor", - "extendWithFaceDetection", - "extendWithFaceExpressions", - "extendWithFaceLandmarks", - "extendWithGender", - "extractFaceTensors", - "extractFaces", - "fetchImage", - "fetchJson", - "fetchNetWeights", - "fetchOrThrow", - "getContext2dOrThrow", - "getMediaDimensions", - "imageTensorToCanvas", - "imageToSquare", - "inverseSigmoid", - "iou", - "isMediaElement", - "isMediaLoaded", - "isWithAge", - "isWithFaceDetection", - "isWithFaceExpressions", - "isWithFaceLandmarks", - "isWithGender", - "loadAgeGenderModel", - "loadFaceDetectionModel", - "loadFaceExpressionModel", - "loadFaceLandmarkModel", - "loadFaceLandmarkTinyModel", - "loadFaceRecognitionModel", - "loadSsdMobilenetv1Model", - "loadTinyFaceDetectorModel", - "loadTinyYolov2Model", - "loadWeightMap", - "locateFaces", - "matchDimensions", - "minBbox", - "nets", - "nonMaxSuppression", - "normalize", - "padToSquare", - "predictAgeAndGender", - "recognizeFaceExpressions", - "resizeResults", - "resolveInput", - "shuffleArray", - "sigmoid", - "ssdMobilenetv1", - "tf", - "tinyFaceDetector", - "tinyYolov2", - "toNetInput", - "utils", - "validateConfig", - "version" - ], - "entryPoint": "src/index.ts", - "inputs": { - "dist/tfjs.esm.js": { - "bytesInOutput": 142 - }, - "src/env/isNodejs.ts": { - "bytesInOutput": 176 - }, - "src/index.ts": { - "bytesInOutput": 155 - }, - "src/draw/index.ts": { - "bytesInOutput": 277 - }, - "src/draw/drawContour.ts": { - "bytesInOutput": 213 - }, - "src/utils/index.ts": { - "bytesInOutput": 1008 - }, - "src/classes/Dimensions.ts": { - "bytesInOutput": 335 - }, - "src/classes/Point.ts": { - "bytesInOutput": 433 - }, - "src/classes/Box.ts": { - "bytesInOutput": 2646 - }, - "src/classes/BoundingBox.ts": { - "bytesInOutput": 92 - }, - "src/classes/index.ts": { - "bytesInOutput": 0 - }, - "src/classes/ObjectDetection.ts": { - "bytesInOutput": 624 - }, - "src/classes/FaceDetection.ts": { - "bytesInOutput": 153 - }, - "src/ops/iou.ts": { - "bytesInOutput": 215 - }, - "src/ops/index.ts": { - "bytesInOutput": 81 - }, - "src/ops/minBbox.ts": { - "bytesInOutput": 204 - }, - "src/ops/nonMaxSuppression.ts": { - "bytesInOutput": 282 - }, - "src/ops/normalize.ts": { - "bytesInOutput": 252 - }, - "src/ops/padToSquare.ts": { - "bytesInOutput": 329 - }, - "src/ops/shuffleArray.ts": { - "bytesInOutput": 132 - }, - "src/classes/Rect.ts": { - "bytesInOutput": 87 - }, - "src/classes/FaceLandmarks.ts": { - "bytesInOutput": 1393 - }, - "src/classes/FaceLandmarks5.ts": { - "bytesInOutput": 107 - }, - "src/classes/FaceLandmarks68.ts": { - "bytesInOutput": 464 - }, - "src/classes/FaceMatch.ts": { - "bytesInOutput": 201 - }, - "src/classes/LabeledBox.ts": { - "bytesInOutput": 250 - }, - "src/classes/LabeledFaceDescriptors.ts": { - "bytesInOutput": 595 - }, - "src/classes/PredictedBox.ts": { - "bytesInOutput": 385 - }, - "src/factories/WithFaceDetection.ts": { - "bytesInOutput": 94 - }, - "src/env/createBrowserEnv.ts": { - "bytesInOutput": 445 - }, - "src/env/createFileSystem.ts": { - "bytesInOutput": 247 - }, - "src/env/createNodejsEnv.ts": { - "bytesInOutput": 600 - }, - "src/env/isBrowser.ts": { - "bytesInOutput": 267 - }, - "src/env/index.ts": { - "bytesInOutput": 795 - }, - "src/dom/resolveInput.ts": { - "bytesInOutput": 84 - }, - "src/dom/getContext2dOrThrow.ts": { - "bytesInOutput": 312 - }, - "src/draw/DrawTextField.ts": { - "bytesInOutput": 1484 - }, - "src/draw/DrawBox.ts": { - "bytesInOutput": 581 - }, - "src/draw/drawDetections.ts": { - "bytesInOutput": 220 - }, - "src/faceExpressionNet/FaceExpressionNet.ts": { - "bytesInOutput": 564 - }, - "src/dom/isMediaLoaded.ts": { - "bytesInOutput": 114 - }, - "src/dom/awaitMediaLoaded.ts": { - "bytesInOutput": 423 - }, - "src/dom/index.ts": { - "bytesInOutput": 0 - }, - "src/dom/bufferToImage.ts": { - "bytesInOutput": 386 - }, - "src/dom/getMediaDimensions.ts": { - "bytesInOutput": 180 - }, - "src/dom/createCanvas.ts": { - "bytesInOutput": 389 - }, - "src/dom/imageTensorToCanvas.ts": { - "bytesInOutput": 197 - }, - "src/dom/isMediaElement.ts": { - "bytesInOutput": 110 - }, - "src/dom/NetInput.ts": { - "bytesInOutput": 2211 - }, - "src/dom/imageToSquare.ts": { - "bytesInOutput": 442 - }, - "src/dom/toNetInput.ts": { - "bytesInOutput": 773 - }, - "src/dom/extractFaces.ts": { - "bytesInOutput": 485 - }, - "src/dom/extractFaceTensors.ts": { - "bytesInOutput": 439 - }, - "src/dom/fetchOrThrow.ts": { - "bytesInOutput": 176 - }, - "src/dom/fetchImage.ts": { - "bytesInOutput": 218 - }, - "src/dom/fetchJson.ts": { - "bytesInOutput": 48 - }, - "src/dom/fetchNetWeights.ts": { - "bytesInOutput": 79 - }, - "src/dom/loadWeightMap.ts": { - "bytesInOutput": 120 - }, - "src/common/getModelUris.ts": { - "bytesInOutput": 473 - }, - "src/dom/matchDimensions.ts": { - "bytesInOutput": 101 - }, - "src/faceFeatureExtractor/FaceFeatureExtractor.ts": { - "bytesInOutput": 618 - }, - "src/NeuralNetwork.ts": { - "bytesInOutput": 2651 - }, - "src/faceFeatureExtractor/denseBlock.ts": { - "bytesInOutput": 565 - }, - "src/common/depthwiseSeparableConv.ts": { - "bytesInOutput": 154 - }, - "src/common/convLayer.ts": { - "bytesInOutput": 138 - }, - "src/common/index.ts": { - "bytesInOutput": 0 - }, - "src/common/disposeUnusedWeightTensors.ts": { - "bytesInOutput": 91 - }, - "src/common/extractConvParamsFactory.ts": { - "bytesInOutput": 192 - }, - "src/common/extractFCParamsFactory.ts": { - "bytesInOutput": 182 - }, - "src/common/extractSeparableConvParamsFactory.ts": { - "bytesInOutput": 393 - }, - "src/common/types.ts": { - "bytesInOutput": 94 - }, - "src/common/extractWeightEntryFactory.ts": { - "bytesInOutput": 188 - }, - "src/common/extractWeightsFactory.ts": { - "bytesInOutput": 146 - }, - "src/faceFeatureExtractor/extractorsFactory.ts": { - "bytesInOutput": 377 - }, - "src/faceFeatureExtractor/extractParams.ts": { - "bytesInOutput": 343 - }, - "src/common/loadConvParamsFactory.ts": { - "bytesInOutput": 97 - }, - "src/faceFeatureExtractor/loadParamsFactory.ts": { - "bytesInOutput": 388 - }, - "src/faceFeatureExtractor/extractParamsFromWeightMap.ts": { - "bytesInOutput": 185 - }, - "src/faceProcessor/FaceProcessor.ts": { - "bytesInOutput": 1034 - }, - "src/common/fullyConnectedLayer.ts": { - "bytesInOutput": 86 - }, - "src/faceProcessor/extractParams.ts": { - "bytesInOutput": 214 - }, - "src/faceProcessor/extractParamsFromWeightMap.ts": { - "bytesInOutput": 177 - }, - "src/faceProcessor/util.ts": { - "bytesInOutput": 144 - }, - "src/faceExpressionNet/FaceExpressions.ts": { - "bytesInOutput": 369 - }, - "src/faceExpressionNet/index.ts": { - "bytesInOutput": 0 - }, - "src/factories/WithFaceExpressions.ts": { - "bytesInOutput": 99 - }, - "src/draw/drawFaceExpressions.ts": { - "bytesInOutput": 420 - }, - "src/factories/WithFaceLandmarks.ts": { - "bytesInOutput": 829 - }, - "src/draw/DrawFaceLandmarks.ts": { - "bytesInOutput": 1225 - }, - "package.json": { - "bytesInOutput": 15 - }, - "src/ageGenderNet/AgeGenderNet.ts": { - "bytesInOutput": 1685 - }, - "src/xception/TinyXception.ts": { - "bytesInOutput": 1262 - }, - "src/xception/extractParams.ts": { - "bytesInOutput": 1234 - }, - "src/xception/extractParamsFromWeightMap.ts": { - "bytesInOutput": 1047 - }, - "src/ageGenderNet/extractParams.ts": { - "bytesInOutput": 258 - }, - "src/ageGenderNet/extractParamsFromWeightMap.ts": { - "bytesInOutput": 209 - }, - "src/ageGenderNet/types.ts": { - "bytesInOutput": 67 - }, - "src/ageGenderNet/index.ts": { - "bytesInOutput": 0 - }, - "src/faceLandmarkNet/FaceLandmark68NetBase.ts": { - "bytesInOutput": 1174 - }, - "src/faceLandmarkNet/FaceLandmark68Net.ts": { - "bytesInOutput": 167 - }, - "src/faceLandmarkNet/index.ts": { - "bytesInOutput": 26 - }, - "src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts": { - "bytesInOutput": 616 - }, - "src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts": { - "bytesInOutput": 166 - }, - "src/faceFeatureExtractor/extractParamsTiny.ts": { - "bytesInOutput": 312 - }, - "src/faceLandmarkNet/FaceLandmark68TinyNet.ts": { - "bytesInOutput": 176 - }, - "src/faceRecognitionNet/FaceRecognitionNet.ts": { - "bytesInOutput": 1153 - }, - "src/faceRecognitionNet/convLayer.ts": { - "bytesInOutput": 274 - }, - "src/faceRecognitionNet/scaleLayer.ts": { - "bytesInOutput": 72 - }, - "src/faceRecognitionNet/extractParams.ts": { - "bytesInOutput": 1800 - }, - "src/faceRecognitionNet/extractParamsFromWeightMap.ts": { - "bytesInOutput": 1113 - }, - "src/faceRecognitionNet/residualLayer.ts": { - "bytesInOutput": 463 - }, - "src/faceRecognitionNet/index.ts": { - "bytesInOutput": 57 - }, - "src/factories/WithFaceDescriptor.ts": { - "bytesInOutput": 48 - }, - "src/factories/index.ts": { - "bytesInOutput": 0 - }, - "src/factories/WithAge.ts": { - "bytesInOutput": 86 - }, - "src/factories/WithGender.ts": { - "bytesInOutput": 155 - }, - "src/ssdMobilenetv1/SsdMobilenetv1.ts": { - "bytesInOutput": 1221 - }, - "src/ssdMobilenetv1/extractParams.ts": { - "bytesInOutput": 3585 - }, - "src/ssdMobilenetv1/extractParamsFromWeightMap.ts": { - "bytesInOutput": 2463 - }, - "src/ssdMobilenetv1/mobileNetV1.ts": { - "bytesInOutput": 712 - }, - "src/ssdMobilenetv1/pointwiseConvLayer.ts": { - "bytesInOutput": 150 - }, - "src/ssdMobilenetv1/nonMaxSuppression.ts": { - "bytesInOutput": 792 - }, - "src/ssdMobilenetv1/outputLayer.ts": { - "bytesInOutput": 924 - }, - "src/ssdMobilenetv1/predictionLayer.ts": { - "bytesInOutput": 718 - }, - "src/ssdMobilenetv1/boxPredictionLayer.ts": { - "bytesInOutput": 220 - }, - "src/ssdMobilenetv1/SsdMobilenetv1Options.ts": { - "bytesInOutput": 518 - }, - "src/ssdMobilenetv1/index.ts": { - "bytesInOutput": 111 - }, - "src/tinyYolov2/const.ts": { - "bytesInOutput": 348 - }, - "src/tinyYolov2/TinyYolov2Base.ts": { - "bytesInOutput": 3653 - }, - "src/tinyYolov2/config.ts": { - "bytesInOutput": 1012 - }, - "src/tinyYolov2/convWithBatchNorm.ts": { - "bytesInOutput": 212 - }, - "src/tinyYolov2/leaky.ts": { - "bytesInOutput": 125 - }, - "src/tinyYolov2/depthwiseSeparableConv.ts": { - "bytesInOutput": 200 - }, - "src/tinyYolov2/extractParams.ts": { - "bytesInOutput": 1287 - }, - "src/tinyYolov2/extractParamsFromWeightMap.ts": { - "bytesInOutput": 972 - }, - "src/tinyYolov2/TinyYolov2Options.ts": { - "bytesInOutput": 556 - }, - "src/tinyYolov2/TinyYolov2.ts": { - "bytesInOutput": 545 - }, - "src/tinyYolov2/index.ts": { - "bytesInOutput": 65 - }, - "src/tinyFaceDetector/TinyFaceDetectorOptions.ts": { - "bytesInOutput": 97 - }, - "src/globalApi/ComposableTask.ts": { - "bytesInOutput": 126 - }, - "src/globalApi/DetectFaceLandmarksTasks.ts": { - "bytesInOutput": 1129 - }, - "src/globalApi/extractFacesAndComputeResults.ts": { - "bytesInOutput": 297 - }, - "src/tinyFaceDetector/const.ts": { - "bytesInOutput": 168 - }, - "src/tinyFaceDetector/TinyFaceDetector.ts": { - "bytesInOutput": 495 - }, - "src/globalApi/nets.ts": { - "bytesInOutput": 844 - }, - "src/globalApi/PredictFaceExpressionsTask.ts": { - "bytesInOutput": 851 - }, - "src/globalApi/PredictAgeAndGenderTask.ts": { - "bytesInOutput": 956 - }, - "src/globalApi/ComputeFaceDescriptorsTasks.ts": { - "bytesInOutput": 751 - }, - "src/globalApi/DetectFacesTasks.ts": { - "bytesInOutput": 1334 - }, - "src/globalApi/detectFaces.ts": { - "bytesInOutput": 84 - }, - "src/globalApi/allFaces.ts": { - "bytesInOutput": 209 - }, - "src/globalApi/index.ts": { - "bytesInOutput": 0 - }, - "src/euclideanDistance.ts": { - "bytesInOutput": 205 - }, - "src/globalApi/FaceMatcher.ts": { - "bytesInOutput": 1333 - }, - "src/tinyFaceDetector/index.ts": { - "bytesInOutput": 57 - }, - "src/resizeResults.ts": { - "bytesInOutput": 443 - } - }, - "bytes": 82634 - } - } -} diff --git a/dist/face-api.esm.js b/dist/face-api.esm.js index 72f02fa..1d37d3c 100644 --- a/dist/face-api.esm.js +++ b/dist/face-api.esm.js @@ -5,43 +5,43 @@ author: ' */ -var T_=Object.create,ed=Object.defineProperty,N_=Object.getPrototypeOf,S_=Object.prototype.hasOwnProperty,C_=Object.getOwnPropertyNames,__=Object.getOwnPropertyDescriptor;var Gw=e=>ed(e,"__esModule",{value:!0});var E_=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),td=(e,t)=>{for(var n in t)ed(e,n,{get:t[n],enumerable:!0})},F_=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of C_(t))!S_.call(e,a)&&a!=="default"&&ed(e,a,{get:()=>t[a],enumerable:!(n=__(t,a))||n.enumerable});return e},A_=e=>F_(Gw(ed(e!=null?T_(N_(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var G2=E_((Bae,U2)=>{Gw(Bae);td(Bae,{isNodejs:()=>Wae});function Wae(){return typeof global=="object"&&!0&&typeof U2!="undefined"&&typeof process!="undefined"&&!!process.version}});var Og={};td(Og,{Abs:()=>So,Acos:()=>Co,Acosh:()=>_o,AdadeltaOptimizer:()=>Eh,AdagradOptimizer:()=>Fh,AdamOptimizer:()=>Ah,AdamaxOptimizer:()=>$h,Add:()=>Wr,AddN:()=>Ts,All:()=>ld,Any:()=>ud,ArgMax:()=>Ns,ArgMin:()=>Xu,Asin:()=>Eo,Asinh:()=>Fo,Atan:()=>Ao,Atan2:()=>Do,Atanh:()=>$o,AvgPool:()=>Ss,AvgPool3D:()=>Yu,AvgPool3DGrad:()=>pd,AvgPoolGrad:()=>cd,BackendWasm:()=>z2,BatchMatMul:()=>Cs,BatchToSpaceND:()=>Ju,Bincount:()=>dd,BroadcastTo:()=>r0,Callback:()=>LI,CallbackList:()=>P1,Cast:()=>_s,Ceil:()=>Es,ClipByValue:()=>Vr,Complex:()=>hd,ComplexAbs:()=>Qu,Concat:()=>Ro,Conv2D:()=>Fs,Conv2DBackpropFilter:()=>md,Conv2DBackpropInput:()=>As,Conv3D:()=>Zu,Conv3DBackpropFilterV2:()=>fd,Conv3DBackpropInputV2:()=>gd,Cos:()=>$s,Cosh:()=>Mo,CropAndResize:()=>Po,Cumsum:()=>Ds,CustomCallback:()=>L1,DataStorage:()=>rd,DenseBincount:()=>yd,DepthToSpace:()=>Oo,DepthwiseConv2dNative:()=>Rs,DepthwiseConv2dNativeBackpropFilter:()=>bd,DepthwiseConv2dNativeBackpropInput:()=>xd,Diag:()=>vd,Dilation2D:()=>ec,Dilation2DBackpropFilter:()=>kd,Dilation2DBackpropInput:()=>wd,ENV:()=>Vg,EarlyStopping:()=>BI,Elu:()=>Lo,EluGrad:()=>Id,Environment:()=>n0,Equal:()=>Bo,Erf:()=>zo,Exp:()=>Ps,ExpandDims:()=>Wo,Expm1:()=>Vo,FFT:()=>Td,Fill:()=>tc,FlipLeftRight:()=>Uo,Floor:()=>Os,FloorDiv:()=>Ls,FromPixels:()=>Ld,FusedBatchNorm:()=>zs,FusedConv2D:()=>yi,FusedDepthwiseConv2D:()=>bi,GatherNd:()=>Ho,GatherV2:()=>Go,GraphModel:()=>gT,Greater:()=>jo,GreaterEqual:()=>Bs,History:()=>O1,IFFT:()=>Nd,Identity:()=>Ws,Imag:()=>Sd,InputSpec:()=>Xt,IsFinite:()=>qo,IsInf:()=>Ko,IsNan:()=>Xo,KernelBackend:()=>ju,LRN:()=>rc,LRNGrad:()=>_d,LayerVariable:()=>A1,LayersModel:()=>wr,LeakyRelu:()=>Vs,Less:()=>Yo,LessEqual:()=>Jo,LinSpace:()=>Cd,Log:()=>Us,Log1p:()=>Qo,LogSoftmax:()=>s0,LogicalAnd:()=>Zo,LogicalNot:()=>nc,LogicalOr:()=>ac,Max:()=>Gs,MaxPool:()=>js,MaxPool3D:()=>sc,MaxPool3DGrad:()=>Fd,MaxPoolGrad:()=>Ed,MaxPoolWithArgmax:()=>Ad,Maximum:()=>Hs,Mean:()=>qs,Min:()=>Ks,Minimum:()=>Xs,MirrorPad:()=>ic,Mod:()=>el,MomentumOptimizer:()=>Dh,Multinomial:()=>$d,Multiply:()=>Ys,Neg:()=>tl,NonMaxSuppressionV3:()=>al,NonMaxSuppressionV4:()=>rl,NonMaxSuppressionV5:()=>sl,NotEqual:()=>nl,OP_SCOPE_SUFFIX:()=>g0,OneHot:()=>Js,OnesLike:()=>il,Optimizer:()=>br,Pack:()=>ol,PadV2:()=>Qs,Pool:()=>wE,Pow:()=>Zs,Prelu:()=>ei,Prod:()=>ll,RMSPropOptimizer:()=>Rh,RNN:()=>er,Range:()=>oc,Rank:()=>Xg,Real:()=>Dd,RealDiv:()=>Ms,Reciprocal:()=>ul,Reduction:()=>hn,Relu:()=>ti,Relu6:()=>ai,Reshape:()=>cl,ResizeBilinear:()=>ni,ResizeBilinearGrad:()=>Md,ResizeNearestNeighbor:()=>lc,ResizeNearestNeighborGrad:()=>Rd,Reverse:()=>ri,RotateWithOffset:()=>Tl,Round:()=>si,Rsqrt:()=>ii,SGDOptimizer:()=>Pc,ScatterNd:()=>pl,Select:()=>dl,Selu:()=>hl,Sequential:()=>Xl,Sigmoid:()=>li,Sign:()=>gl,Sin:()=>oi,Sinh:()=>fl,Slice:()=>ml,Softmax:()=>pi,Softplus:()=>yl,SpaceToBatchND:()=>uc,SparseToDense:()=>Pd,SplitV:()=>bl,Sqrt:()=>ui,Square:()=>cc,SquaredDifference:()=>di,Step:()=>Gr,StridedSlice:()=>xl,Sub:()=>hi,Sum:()=>ci,SymbolicTensor:()=>Fa,Tan:()=>vl,Tanh:()=>mi,Tensor:()=>Ee,TensorBuffer:()=>Ot,Tile:()=>Ur,TopK:()=>wl,Transpose:()=>fi,Unique:()=>Od,Unpack:()=>kl,UnsortedSegmentSum:()=>pc,Variable:()=>Hr,ZerosLike:()=>Il,_FusedMatMul:()=>gi,abs:()=>Lt,acos:()=>vy,acosh:()=>wy,add:()=>J,addN:()=>Q0,all:()=>Zd,any:()=>kc,argMax:()=>Ic,argMin:()=>ky,asin:()=>Iy,asinh:()=>Ty,atan:()=>Ny,atan2:()=>Sy,atanh:()=>Cy,avgPool:()=>Qn,avgPool3d:()=>Fy,backend:()=>J0,backend_util:()=>_,basicLSTMCell:()=>YA,batchNorm:()=>fr,batchNorm2d:()=>nk,batchNorm3d:()=>ak,batchNorm4d:()=>rk,batchToSpaceND:()=>Nc,bincount:()=>sk,booleanMaskAsync:()=>eM,broadcastTo:()=>Sc,browser:()=>ki,buffer:()=>Le,callbacks:()=>WW,cast:()=>ue,ceil:()=>Ay,clipByValue:()=>qt,clone:()=>Xr,complex:()=>jr,concat:()=>Je,concat1d:()=>ik,concat2d:()=>ok,concat3d:()=>lk,concat4d:()=>uk,constraints:()=>r1,conv1d:()=>th,conv2d:()=>Ft,conv2dTranspose:()=>nh,conv3d:()=>Dy,conv3dTranspose:()=>b$,copyRegisteredKernels:()=>TE,cos:()=>Cc,cosh:()=>ah,cosineWindow:()=>sb,cumsum:()=>rh,customGrad:()=>ja,data:()=>bT,denseBincount:()=>pk,deprecationWarn:()=>xy,depthToSpace:()=>Ry,depthwiseConv2d:()=>Qr,deregisterOp:()=>UW,device_util:()=>Hd,diag:()=>S$,dilation2d:()=>My,disableDeprecationWarnings:()=>lA,dispose:()=>Ae,disposeVariables:()=>uA,div:()=>xe,divNoNan:()=>Py,dot:()=>dk,dropout:()=>Dk,elu:()=>Rl,enableDebugMode:()=>oA,enableProdMode:()=>iA,enclosingPowerOfTwo:()=>Rk,engine:()=>Ua,env:()=>ee,equal:()=>Zr,erf:()=>Oy,exp:()=>dn,expandDims:()=>Mn,expm1:()=>Ly,eye:()=>zy,fft:()=>Rc,fill:()=>Sn,findBackend:()=>gA,findBackendFactory:()=>yA,floor:()=>Ml,floorDiv:()=>Qd,fused:()=>ns,gather:()=>Ni,gatherND:()=>$k,gather_util:()=>dy,getBackend:()=>mA,getGradient:()=>jg,getKernel:()=>zd,getKernelsForBackend:()=>Bd,grad:()=>tD,grads:()=>nD,greater:()=>pa,greaterEqual:()=>es,ifft:()=>Wl,imag:()=>sh,image:()=>Xa,inTopKAsync:()=>pM,initializers:()=>p1,input:()=>T1,io:()=>Ht,irfft:()=>vh,isFinite:()=>hk,isInf:()=>mk,isNaN:()=>fk,keep:()=>jt,kernel_impls:()=>Ya,layers:()=>I1,leakyRelu:()=>_c,less:()=>ih,lessEqual:()=>Si,linalg:()=>jk,linspace:()=>gk,loadGraphModel:()=>V4,loadLayersModel:()=>oW,localResponseNormalization:()=>By,log:()=>Pn,log1p:()=>oh,logSigmoid:()=>bk,logSoftmax:()=>uh,logSumExp:()=>Uy,logicalAnd:()=>da,logicalNot:()=>Ec,logicalOr:()=>ch,logicalXor:()=>kk,losses:()=>SP,matMul:()=>ze,math:()=>$0,max:()=>Zn,maxPool:()=>At,maxPool3d:()=>Gy,maxPoolWithArgmax:()=>Ik,maximum:()=>qa,mean:()=>St,memory:()=>Yd,metrics:()=>MI,min:()=>Ol,minimum:()=>Ll,mirrorPad:()=>Hy,mod:()=>jy,model:()=>sW,models:()=>PI,moments:()=>ph,movingAverage:()=>aM,mul:()=>L,multiRNNCell:()=>AD,multinomial:()=>Tk,neg:()=>Nt,nextFrame:()=>Mh,norm:()=>Th,notEqual:()=>_i,oneHot:()=>Fl,ones:()=>Ka,onesLike:()=>On,op:()=>P,outerProduct:()=>PD,pad:()=>ea,pad1d:()=>zD,pad2d:()=>WD,pad3d:()=>UD,pad4d:()=>HD,pool:()=>Nk,pow:()=>gr,prelu:()=>Ac,print:()=>S0,prod:()=>dh,profile:()=>cA,rand:()=>eR,randomGamma:()=>rR,randomNormal:()=>Sk,randomUniform:()=>zl,range:()=>hh,ready:()=>hA,real:()=>$c,reciprocal:()=>Xy,registerBackend:()=>Jd,registerCallbackConstructor:()=>lW,registerGradient:()=>i0,registerKernel:()=>hc,registerOp:()=>VW,regularizers:()=>OI,relu:()=>qe,relu6:()=>mh,removeBackend:()=>fA,reshape:()=>U,reverse:()=>Ln,reverse1d:()=>hR,reverse2d:()=>fR,reverse3d:()=>yR,reverse4d:()=>xR,rfft:()=>Mc,round:()=>Yy,rsqrt:()=>fh,scalar:()=>pe,scatterND:()=>Ak,scatter_util:()=>hy,selu:()=>gh,separableConv2d:()=>Ei,sequential:()=>iW,serialization:()=>re,setBackend:()=>dA,setPlatform:()=>bA,setWasmPath:()=>Fae,setWasmPaths:()=>Aae,setdiff1dAsync:()=>Ck,sigmoid:()=>ca,sign:()=>Jy,signal:()=>NP,sin:()=>yh,sinh:()=>bh,slice:()=>We,slice1d:()=>xh,slice2d:()=>Qy,slice3d:()=>Bl,slice4d:()=>Dc,slice_util:()=>pn,softmax:()=>Ta,softplus:()=>Pl,spaceToBatchND:()=>Fc,sparseToDense:()=>rb,spectral:()=>TP,split:()=>zn,sqrt:()=>nn,square:()=>ot,squaredDifference:()=>wh,squeeze:()=>ts,stack:()=>$t,step:()=>Vl,stridedSlice:()=>Zy,sub:()=>me,sum:()=>Se,sumOutType:()=>Gd,tan:()=>eb,tanh:()=>Dl,tensor:()=>Yn,tensor1d:()=>Qe,tensor2d:()=>Na,tensor3d:()=>Kd,tensor4d:()=>Sa,tensor5d:()=>HR,tensor6d:()=>jR,tensor_util:()=>Ia,test_util:()=>q0,tidy:()=>D,tile:()=>Ha,time:()=>pA,topk:()=>tb,train:()=>Ai,transpose:()=>Ve,truncatedNormal:()=>kh,unique:()=>Ih,unregisterGradient:()=>IE,unregisterKernel:()=>kE,unsortedSegmentSum:()=>nb,unstack:()=>ut,upcastType:()=>ua,util:()=>w,valueAndGrad:()=>aD,valueAndGrads:()=>rD,variable:()=>_k,variableGrads:()=>yk,version:()=>LZ,version_converter:()=>yT,version_core:()=>Y0,version_layers:()=>sm,version_wasm:()=>$ae,where:()=>Nn,whereAsync:()=>ab,zeros:()=>xt,zerosLike:()=>Ge});var $_=Object.create,nd=Object.defineProperty,D_=Object.getPrototypeOf,R_=Object.prototype.hasOwnProperty,M_=Object.getOwnPropertyNames,P_=Object.getOwnPropertyDescriptor,O_=e=>nd(e,"__esModule",{value:!0}),cn=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),Oe=(e,t)=>{for(var n in t)nd(e,n,{get:t[n],enumerable:!0})},L_=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of M_(t))!R_.call(e,a)&&a!=="default"&&nd(e,a,{get:()=>t[a],enumerable:!(n=P_(t,a))||n.enumerable});return e},Io=e=>L_(O_(nd(e!=null?$_(D_(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e),z_=cn(()=>{}),B_=cn((e,t)=>{(function(n,a,r){function s(c){var u=this,p=l();u.next=function(){var d=2091639*u.s0+u.c*23283064365386963e-26;return u.s0=u.s1,u.s1=u.s2,u.s2=d-(u.c=d|0)},u.c=1,u.s0=p(" "),u.s1=p(" "),u.s2=p(" "),u.s0-=p(c),u.s0<0&&(u.s0+=1),u.s1-=p(c),u.s1<0&&(u.s1+=1),u.s2-=p(c),u.s2<0&&(u.s2+=1),p=null}function i(c,u){return u.c=c.c,u.s0=c.s0,u.s1=c.s1,u.s2=c.s2,u}function o(c,u){var p=new s(c),d=u&&u.state,h=p.next;return h.int32=function(){return p.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,d&&(typeof d=="object"&&i(d,p),h.state=function(){return i(p,{})}),h}function l(){var c=4022871197,u=function(p){p=p.toString();for(var d=0;d>>0,h-=c,h*=c,c=h>>>0,h-=c,c+=h*4294967296}return(c>>>0)*23283064365386963e-26};return u}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),W_=cn((e,t)=>{(function(n,a,r){function s(l){var c=this,u="";c.x=0,c.y=0,c.z=0,c.w=0,c.next=function(){var d=c.x^c.x<<11;return c.x=c.y,c.y=c.z,c.z=c.w,c.w^=c.w>>>19^d^d>>>8},l===(l|0)?c.x=l:u+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(typeof p=="object"&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),V_=cn((e,t)=>{(function(n,a,r){function s(l){var c=this,u="";c.next=function(){var d=c.x^c.x>>>2;return c.x=c.y,c.y=c.z,c.z=c.w,c.w=c.v,(c.d=c.d+362437|0)+(c.v=c.v^c.v<<4^(d^d<<1))|0},c.x=0,c.y=0,c.z=0,c.w=0,c.v=0,l===(l|0)?c.x=l:u+=l;for(var p=0;p>>4),c.next()}function i(l,c){return c.x=l.x,c.y=l.y,c.z=l.z,c.w=l.w,c.v=l.v,c.d=l.d,c}function o(l,c){var u=new s(l),p=c&&c.state,d=function(){return(u.next()>>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(typeof p=="object"&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),U_=cn((e,t)=>{(function(n,a,r){function s(l){var c=this;c.next=function(){var p=c.x,d=c.i,h,m,f;return h=p[d],h^=h>>>7,m=h^h<<24,h=p[d+1&7],m^=h^h>>>10,h=p[d+3&7],m^=h^h>>>3,h=p[d+4&7],m^=h^h<<7,h=p[d+7&7],h=h^h<<13,m^=h^h<<9,p[d]=m,c.i=d+1&7,m};function u(p,d){var h,m,f=[];if(d===(d|0))m=f[0]=d;else for(d=""+d,h=0;h0;--h)p.next()}u(c,l)}function i(l,c){return c.x=l.x.slice(),c.i=l.i,c}function o(l,c){l==null&&(l=+new Date);var u=new s(l),p=c&&c.state,d=function(){return(u.next()>>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(p.x&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),G_=cn((e,t)=>{(function(n,a,r){function s(l){var c=this;c.next=function(){var p=c.w,d=c.X,h=c.i,m,f;return c.w=p=p+1640531527|0,f=d[h+34&127],m=d[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=d[h]=f^m,c.i=h,f+(p^p>>>16)|0};function u(p,d){var h,m,f,g,y,b=[],x=128;for(d===(d|0)?(m=d,d=null):(d=d+"\0",m=0,x=Math.max(x,d.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(y=y+1640531527|0,h=b[g&127]^=m+y,f=h==0?f+1:0);for(f>=128&&(b[(d&&d.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=b[f+34&127],h=b[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,b[f]=m^h;p.w=y,p.X=b,p.i=f}u(c,l)}function i(l,c){return c.i=l.i,c.w=l.w,c.X=l.X.slice(),c}function o(l,c){l==null&&(l=+new Date);var u=new s(l),p=c&&c.state,d=function(){return(u.next()>>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(p.X&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),H_=cn((e,t)=>{(function(n,a,r){function s(l){var c=this,u="";c.next=function(){var d=c.b,h=c.c,m=c.d,f=c.a;return d=d<<25^d>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-d|0,c.b=d=d<<20^d>>>12^h,c.c=h=h-m|0,c.d=m<<16^h>>>16^f,c.a=f-d|0},c.a=0,c.b=0,c.c=2654435769|0,c.d=1367130551,l===Math.floor(l)?(c.a=l/4294967296|0,c.b=l|0):u+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(typeof p=="object"&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),j_=cn(()=>{}),q_=cn((e,t)=>{(function(n,a){var r=this,s=256,i=6,o=52,l="random",c=a.pow(s,i),u=a.pow(2,o),p=u*2,d=s-1,h;function m(N,T,S){var A=[];T=T==!0?{entropy:!0}:T||{};var $=b(y(T.entropy?[N,v(n)]:N==null?x():N,3),A),R=new f(A),B=function(){for(var V=R.g(i),W=c,G=0;V=p;)V/=2,W/=2,G>>>=1;return(V+G)/W};return B.int32=function(){return R.g(4)|0},B.quick=function(){return R.g(4)/4294967296},B.double=B,b(v(R.S),n),(T.pass||S||function(V,W,G,H){return H&&(H.S&&g(H,R),V.state=function(){return g(R,{})}),G?(a[l]=V,W):V})(B,$,"global"in T?T.global:this==a,T.state)}a["seed"+l]=m;function f(N){var T,S=N.length,A=this,$=0,R=A.i=A.j=0,B=A.S=[];for(S||(N=[S++]);${var n=B_(),a=W_(),r=V_(),s=U_(),i=G_(),o=H_(),l=q_();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),K_=cn(()=>{}),Hu=cn(()=>{}),X_=cn(()=>{}),Y_=cn(()=>{}),J_=cn((e,t)=>{var n=function(){var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};function s(){return Z.buffer!=Be&&en(Z.buffer),vn}function i(){return Z.buffer!=Be&&en(Z.buffer),It}function o(){return Z.buffer!=Be&&en(Z.buffer),wn}function l(){return Z.buffer!=Be&&en(Z.buffer),Kn}function c(){return Z.buffer!=Be&&en(Z.buffer),un}var u=typeof r!="undefined"?r:{},p,d;u.ready=new Promise(function(I,C){p=I,d=C});var h={},m;for(m in u)u.hasOwnProperty(m)&&(h[m]=u[m]);var f=[],g="./this.program",y=function(I,C){throw C},b=!1,x=!1,v=!1,N=!1;b=typeof window=="object",x=typeof importScripts=="function",v=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",N=!b&&!v&&!x;var T=u.ENVIRONMENT_IS_PTHREAD||!1;T&&(Be=u.buffer);var S="";function A(I){return u.locateFile?u.locateFile(I,S):S+I}var $,R,B,V,W,G;if(v){x?S=Hu().dirname(S)+"/":S=__dirname+"/",$=function(I,C){return W||(W=require("fs")),G||(G=Hu()),I=G.normalize(I),W.readFileSync(I,C?null:"utf8")},B=function(I){var C=$(I,!0);return C.buffer||(C=new Uint8Array(C)),fe(C.buffer),C},process.argv.length>1&&(g=process.argv[1].replace(/\\/g,"/")),f=process.argv.slice(2),process.on("uncaughtException",function(I){if(!(I instanceof Gu))throw I}),process.on("unhandledRejection",cr),y=function(I){process.exit(I)},u.inspect=function(){return"[Emscripten Module object]"};var H;try{H=X_()}catch(I){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),I}global.Worker=H.Worker}else N?(typeof read!="undefined"&&($=function(I){return read(I)}),B=function(I){var C;return typeof readbuffer=="function"?new Uint8Array(readbuffer(I)):(C=read(I,"binary"),fe(typeof C=="object"),C)},typeof scriptArgs!="undefined"?f=scriptArgs:typeof arguments!="undefined"&&(f=arguments),typeof quit=="function"&&(y=function(I){quit(I)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(b||x)&&(x?S=self.location.href:typeof document!="undefined"&&document.currentScript&&(S=document.currentScript.src),typeof a!="undefined"&&a&&(S=a),S.indexOf("blob:")!==0?S=S.substr(0,S.lastIndexOf("/")+1):S="",v?($=function(I,C){return W||(W=require("fs")),G||(G=Hu()),I=G.normalize(I),W.readFileSync(I,C?null:"utf8")},B=function(I){var C=$(I,!0);return C.buffer||(C=new Uint8Array(C)),fe(C.buffer),C}):($=function(I){var C=new XMLHttpRequest;return C.open("GET",I,!1),C.send(null),C.responseText},x&&(B=function(I){var C=new XMLHttpRequest;return C.open("GET",I,!1),C.responseType="arraybuffer",C.send(null),new Uint8Array(C.response)}),R=function(I,C,O){var j=new XMLHttpRequest;j.open("GET",I,!0),j.responseType="arraybuffer",j.onload=function(){if(j.status==200||j.status==0&&j.response){C(j.response);return}O()},j.onerror=O,j.send(null)}),V=function(I){document.title=I});v&&typeof performance=="undefined"&&(global.performance=Y_().performance);var X=u.print||console.log.bind(console),q=u.printErr||console.warn.bind(console);for(m in h)h.hasOwnProperty(m)&&(u[m]=h[m]);h=null,u.arguments&&(f=u.arguments),u.thisProgram&&(g=u.thisProgram),u.quit&&(y=u.quit);var te=Atomics.load,Q=Atomics.store,se=Atomics.compareExchange,ne;u.wasmBinary&&(ne=u.wasmBinary);var ie=u.noExitRuntime||!0;typeof WebAssembly!="object"&&cr("no native wasm support detected");var Z,de,oe=!1,ge;function fe(I,C){I||cr("Assertion failed: "+C)}function we(I){var C=u["_"+I];return fe(C,"Cannot call unknown function "+I+", make sure it is exported"),C}function Te(I,C,O,j,he){var le={string:function(Tn){var ko=0;if(Tn!=null&&Tn!==0){var Uw=(Tn.length<<2)+1;ko=xo(Uw),nt(Tn,ko,Uw)}return ko},array:function(Tn){var ko=xo(Tn.length);return Xe(Tn,ko),ko}};function ce(Tn){return C==="string"?Fe(Tn):C==="boolean"?Boolean(Tn):Tn}var be=we(I),at=[],Ut=0;if(j)for(var Mt=0;Mt=j);){var le=I[C++];if(!le)return he;if(!(le&128)){he+=String.fromCharCode(le);continue}var ce=I[C++]&63;if((le&224)==192){he+=String.fromCharCode((le&31)<<6|ce);continue}var be=I[C++]&63;if((le&240)==224?le=(le&15)<<12|ce<<6|be:le=(le&7)<<18|ce<<12|be<<6|I[C++]&63,le<65536)he+=String.fromCharCode(le);else{var at=le-65536;he+=String.fromCharCode(55296|at>>10,56320|at&1023)}}return he}function Fe(I,C){return I?Re(i(),I,C):""}function tt(I,C,O,j){if(!(j>0))return 0;for(var he=O,le=O+j-1,ce=0;ce=55296&&be<=57343){var at=I.charCodeAt(++ce);be=65536+((be&1023)<<10)|at&1023}if(be<=127){if(O>=le)break;C[O++]=be}else if(be<=2047){if(O+1>=le)break;C[O++]=192|be>>6,C[O++]=128|be&63}else if(be<=65535){if(O+2>=le)break;C[O++]=224|be>>12,C[O++]=128|be>>6&63,C[O++]=128|be&63}else{if(O+3>=le)break;C[O++]=240|be>>18,C[O++]=128|be>>12&63,C[O++]=128|be>>6&63,C[O++]=128|be&63}}return C[O]=0,O-he}function nt(I,C,O){return tt(I,i(),C,O)}function it(I){for(var C=0,O=0;O=55296&&j<=57343&&(j=65536+((j&1023)<<10)|I.charCodeAt(++O)&1023),j<=127?++C:j<=2047?C+=2:j<=65535?C+=3:C+=4}return C}function Xe(I,C){s().set(I,C)}function mt(I,C){return I%C>0&&(I+=C-I%C),I}var Be,vn,It,qn,Zt,wn,Kn,Rn,un;function en(I){Be=I,u.HEAP8=vn=new Int8Array(I),u.HEAP16=qn=new Int16Array(I),u.HEAP32=wn=new Int32Array(I),u.HEAPU8=It=new Uint8Array(I),u.HEAPU16=Zt=new Uint16Array(I),u.HEAPU32=Kn=new Uint32Array(I),u.HEAPF32=Rn=new Float32Array(I),u.HEAPF64=un=new Float64Array(I)}var za=u.INITIAL_MEMORY||16777216;if(T)Z=u.wasmMemory,Be=u.buffer;else if(u.wasmMemory)Z=u.wasmMemory;else if(Z=new WebAssembly.Memory({initial:za/65536,maximum:2147483648/65536,shared:!0}),!(Z.buffer instanceof SharedArrayBuffer))throw q("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),v&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");Z&&(Be=Z.buffer),za=Be.byteLength,en(Be);var sa,ia=[],$r=[],lr=[],Dr=[],co=[],ka=!1,Ap=!1;T||$r.push({func:function(){qp()}}),T&&(ka=!0);function kf(){if(!T){if(u.preRun)for(typeof u.preRun=="function"&&(u.preRun=[u.preRun]);u.preRun.length;)Rp(u.preRun.shift());ho(ia)}}function $p(){ka=!0,ho($r)}function If(){T||ho(lr)}function Dp(){T||(Ap=!0)}function kn(){if(!T){if(u.postRun)for(typeof u.postRun=="function"&&(u.postRun=[u.postRun]);u.postRun.length;)Tf(u.postRun.shift());ho(co)}}function Rp(I){ia.unshift(I)}function Tf(I){co.unshift(I)}var ur=0,Rr=null,xs=null;function Nf(I){fe(!T,"addRunDependency cannot be used in a pthread worker"),ur++,u.monitorRunDependencies&&u.monitorRunDependencies(ur)}function Sf(I){if(ur--,u.monitorRunDependencies&&u.monitorRunDependencies(ur),ur==0&&(Rr!==null&&(clearInterval(Rr),Rr=null),xs)){var C=xs;xs=null,C()}}u.preloadedImages={},u.preloadedAudios={};function cr(I){u.onAbort&&u.onAbort(I),T&&console.error("Pthread aborting at "+new Error().stack),I+="",q(I),oe=!0,ge=1,I="abort("+I+"). Build with -s ASSERTIONS=1 for more info.";var C=new WebAssembly.RuntimeError(I);throw d(C),C}function Mp(I,C){return String.prototype.startsWith?I.startsWith(C):I.indexOf(C)===0}var po="data:application/octet-stream;base64,";function Pp(I){return Mp(I,po)}var Cf="file://";function Op(I){return Mp(I,Cf)}var In="tfjs-backend-wasm-threaded-simd.wasm";Pp(In)||(In=A(In));function _f(I){try{if(I==In&&ne)return new Uint8Array(ne);if(B)return B(I);throw"both async and sync fetching of the wasm failed"}catch(C){cr(C)}}function Lp(){if(!ne&&(b||x)){if(typeof fetch=="function"&&!Op(In))return fetch(In,{credentials:"same-origin"}).then(function(I){if(!I.ok)throw"failed to load wasm binary file at '"+In+"'";return I.arrayBuffer()}).catch(function(){return _f(In)});if(R)return new Promise(function(I,C){R(In,function(O){I(new Uint8Array(O))},C)})}return Promise.resolve().then(function(){return _f(In)})}function Ef(){var I={a:xg};function C(ce,be){var at=ce.exports;if(u.asm=at,sa=u.asm.F,de=be,!T){var Ut=ke.unusedWorkers.length;ke.unusedWorkers.forEach(function(Mt){ke.loadWasmModuleToWorker(Mt,function(){--Ut||Sf("wasm-instantiate")})})}}T||Nf("wasm-instantiate");function O(ce){C(ce.instance,ce.module)}function j(ce){return Lp().then(function(be){return WebAssembly.instantiate(be,I)}).then(ce,function(be){q("failed to asynchronously prepare wasm: "+be),cr(be)})}function he(){return!ne&&typeof WebAssembly.instantiateStreaming=="function"&&!Pp(In)&&!Op(In)&&typeof fetch=="function"?fetch(In,{credentials:"same-origin"}).then(function(ce){var be=WebAssembly.instantiateStreaming(ce,I);return be.then(O,function(at){return q("wasm streaming compile failed: "+at),q("falling back to ArrayBuffer instantiation"),j(O)})}):j(O)}if(u.instantiateWasm)try{var le=u.instantiateWasm(I,C);return le}catch(ce){return q("Module.instantiateWasm callback failed with error: "+ce),!1}return he().catch(d),{}}var zp={8991:function(I,C){setTimeout(function(){Ow(I,C)},0)}};function Ff(){ke.initRuntime()}function ho(I){for(;I.length>0;){var C=I.shift();if(typeof C=="function"){C(u);continue}var O=C.func;typeof O=="number"?C.arg===void 0?sa.get(O)():sa.get(O)(C.arg):O(C.arg===void 0?null:C.arg)}}function mo(I,C){if(I<=0||I>s().length||I&!0||C<0)return-28;if(C==0)return 0;C>=2147483647&&(C=Infinity);var O=Atomics.load(o(),vo>>2),j=0;if(O==I){var he=Atomics.compareExchange(o(),vo>>2,O,0);if(he==O&&(--C,j=1,C<=0))return 1}var le=Atomics.notify(o(),I>>2,C);if(le>=0)return le+j;throw"Atomics.notify returned an unexpected value "+le}u._emscripten_futex_wake=mo;function Af(I){if(T)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!I)throw"Internal Error! Null pthread_ptr in killThread!";o()[I+12>>2]=0;var C=ke.pthreads[I];C.worker.terminate(),ke.freeThreadData(C),ke.runningWorkers.splice(ke.runningWorkers.indexOf(C.worker),1),C.worker.pthread=void 0}function $f(I){if(T)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!I)throw"Internal Error! Null pthread_ptr in cancelThread!";var C=ke.pthreads[I];C.worker.postMessage({cmd:"cancel"})}function Df(I){if(T)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!I)throw"Internal Error! Null pthread_ptr in cleanupThread!";o()[I+12>>2]=0;var C=ke.pthreads[I];if(C){var O=C.worker;ke.returnWorkerToPool(O)}}var ke={unusedWorkers:[],runningWorkers:[],initMainThreadBlock:function(){for(var I=8,C=0;C>2]=I;var O=I+152;o()[O>>2]=O;for(var j=ws(512),C=0;C<128;++C)l()[j/4+C]=0;Atomics.store(l(),I+100>>2,j),Atomics.store(l(),I+40>>2,I),Qp(I,!x,1),Pw(I)},initWorker:function(){},pthreads:{},threadExitHandlers:[],setThreadStatus:function(){},runExitHandlers:function(){for(;ke.threadExitHandlers.length>0;)ke.threadExitHandlers.pop()();T&&yo()&&Mw()},threadExit:function(I){var C=yo();C&&(Atomics.store(l(),C+4>>2,I),Atomics.store(l(),C+0>>2,1),Atomics.store(l(),C+56>>2,1),Atomics.store(l(),C+60>>2,0),ke.runExitHandlers(),mo(C+0,2147483647),Qp(0,0,0),T&&postMessage({cmd:"exit"}))},threadCancel:function(){ke.runExitHandlers();var I=yo();Atomics.store(l(),I+4>>2,-1),Atomics.store(l(),I+0>>2,1),mo(I+0,2147483647),Qp(0,0,0),postMessage({cmd:"cancelDone"})},terminateAllThreads:function(){for(var I in ke.pthreads){var C=ke.pthreads[I];C&&C.worker&&ke.returnWorkerToPool(C.worker)}ke.pthreads={};for(var O=0;O>2];o()[I.threadInfoStruct+100>>2]=0,Vu(C),Vu(I.threadInfoStruct)}I.threadInfoStruct=0,I.allocatedOwnStack&&I.stackBase&&Vu(I.stackBase),I.stackBase=0,I.worker&&(I.worker.pthread=null)}},returnWorkerToPool:function(I){ke.runWithoutMainThreadQueuedCalls(function(){delete ke.pthreads[I.pthread.threadInfoStruct],ke.unusedWorkers.push(I),ke.runningWorkers.splice(ke.runningWorkers.indexOf(I),1),ke.freeThreadData(I.pthread),I.pthread=void 0})},runWithoutMainThreadQueuedCalls:function(I){o()[Vw>>2]=0;try{I()}finally{o()[Vw>>2]=1}},receiveObjectTransfer:function(I){},loadWasmModuleToWorker:function(I,C){I.onmessage=function(O){var j=O.data,he=j.cmd;if(I.pthread&&(ke.currentProxiedOperationCallerThread=I.pthread.threadInfoStruct),j.targetThread&&j.targetThread!=yo()){var le=ke.pthreads[j.targetThread];le?le.worker.postMessage(O.data,j.transferList):console.error('Internal error! Worker sent a message "'+he+'" to target pthread '+j.targetThread+", but that thread no longer exists!"),ke.currentProxiedOperationCallerThread=void 0;return}if(he==="processQueuedMainThreadWork")Rg();else if(he==="spawnThread")Hp(O.data);else if(he==="cleanupThread")Df(j.thread);else if(he==="killThread")Af(j.thread);else if(he==="cancelThread")$f(j.thread);else if(he==="loaded")I.loaded=!0,C&&C(I),I.runPthread&&(I.runPthread(),delete I.runPthread);else if(he==="print")X("Thread "+j.threadId+": "+j.text);else if(he==="printErr")q("Thread "+j.threadId+": "+j.text);else if(he==="alert")alert("Thread "+j.threadId+": "+j.text);else if(he==="exit"){var ce=I.pthread&&Atomics.load(l(),I.pthread.threadInfoStruct+64>>2);ce&&ke.returnWorkerToPool(I)}else if(he==="exitProcess")try{I_(j.returnCode)}catch(be){if(be instanceof Gu)return;throw be}else he==="cancelDone"?ke.returnWorkerToPool(I):he==="objectTransfer"?ke.receiveObjectTransfer(O.data):O.data.target==="setimmediate"?I.postMessage(O.data):q("worker sent an unknown command "+he);ke.currentProxiedOperationCallerThread=void 0},I.onerror=function(O){q("pthread sent an error! "+O.filename+":"+O.lineno+": "+O.message)},v&&(I.on("message",function(O){I.onmessage({data:O})}),I.on("error",function(O){I.onerror(O)}),I.on("exit",function(O){})),I.postMessage({cmd:"load",urlOrBlob:u.mainScriptUrlOrBlob||a,wasmMemory:Z,wasmModule:de})},allocateUnusedWorker:function(){var I=A("tfjs-backend-wasm-threaded-simd.worker.js");ke.unusedWorkers.push(new Worker(I))},getNewWorker:function(){return ke.unusedWorkers.length==0&&(ke.allocateUnusedWorker(),ke.loadWasmModuleToWorker(ke.unusedWorkers[0])),ke.unusedWorkers.length>0?ke.unusedWorkers.pop():null},busySpinWait:function(I){for(var C=performance.now()+I;performance.now()>2]=I,I}function Bf(I,C){if(T)return Mr(1,1,I,C)}function Wf(I,C){if(I==C)postMessage({cmd:"processQueuedMainThreadWork"});else if(T)postMessage({targetThread:I,cmd:"processThreadQueue"});else{var O=ke.pthreads[I],j=O&&O.worker;if(!j)return;j.postMessage({cmd:"processThreadQueue"})}return 1}function Vf(){cr()}function Uf(I,C,O){var j=Kf(C,O);return zp[I].apply(null,j)}function Gf(I,C){}function Hf(I,C,O){if(I<=0||I>s().length||I&!0)return-28;if(b){if(Atomics.load(o(),I>>2)!=C)return-6;for(var j=performance.now(),he=j+O,le=Atomics.exchange(o(),vo>>2,I);;){if(j=performance.now(),j>he)return le=Atomics.exchange(o(),vo>>2,0),-73;if(le=Atomics.exchange(o(),vo>>2,0),le==0)break;if(Rg(),Atomics.load(o(),I>>2)!=C)return-6;le=Atomics.exchange(o(),vo>>2,I)}return 0}else{var ce=Atomics.wait(o(),I>>2,C,O);if(ce==="timed-out")return-73;if(ce==="not-equal")return-6;if(ce==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ce}}function jf(I,C,O){i().copyWithin(I,C,C+O)}function qf(){return v?require("os").cpus().length:navigator.hardwareConcurrency}function Mr(I,C){for(var O=arguments.length-2,j=Uu(),he=O,le=xo(he*8),ce=le>>3,be=0;be>=2;O=i()[I++];){var j=O<105;j&&C&1&&C++,Ou.push(j?c()[C++>>1]:o()[C]),++C}return Ou}function Xf(I,C,O){Pu.length=C;for(var j=O>>3,he=0;he>>16),en(Z.buffer),1}catch(C){}}function Qf(I){var C=Yf();if(I<=C)return!1;var O=2147483648;if(I>O)return!1;for(var j=1;j<=4;j*=2){var he=C*(1+.2/j);he=Math.min(he,I+100663296);var le=Math.min(O,mt(Math.max(I,he),65536)),ce=Jf(le);if(ce)return!0}return!1}var Pe={inEventHandler:0,removeAllEventListeners:function(){for(var I=Pe.eventHandlers.length-1;I>=0;--I)Pe._removeHandler(I);Pe.eventHandlers=[],Pe.deferredCalls=[]},registerRemoveEventListeners:function(){Pe.removeEventListenersRegistered||(Dr.push(Pe.removeAllEventListeners),Pe.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(I,C,O){function j(ce,be){if(ce.length!=be.length)return!1;for(var at in ce)if(ce[at]!=be[at])return!1;return!0}for(var he in Pe.deferredCalls){var le=Pe.deferredCalls[he];if(le.targetFunction==I&&j(le.argsList,O))return}Pe.deferredCalls.push({targetFunction:I,precedence:C,argsList:O}),Pe.deferredCalls.sort(function(ce,be){return ce.precedence>2]=O,o()[ce+4>>2]=j,o()[ce+8>>2]=he,Mg(0,I,637534208,C,j,ce),bo(le)},getTargetThreadForEventCallback:function(I){switch(I){case 1:return 0;case 2:return ke.currentProxiedOperationCallerThread;default:return I}},getNodeNameForTarget:function(I){return I?I==window?"#window":I==screen?"#screen":I&&I.nodeName?I.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function Zf(I){var C=it(I)+1,O=ws(C);return nt(I,O,C),O}function eg(I,C,O,j){var he=Uu(),le=xo(12),ce=0;C&&(ce=Zf(C)),o()[le>>2]=ce,o()[le+4>>2]=O,o()[le+8>>2]=j,Mg(0,I,657457152,0,ce,le),bo(he)}function tg(I,C,O,j){C=C?Fe(C):"",eg(I,C,O,j)}function ng(I){return I>2?Fe(I):I}var ag=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function rg(I){I=ng(I);var C=ag[I]||(typeof document!="undefined"?document.querySelector(I):void 0);return C}function Lu(I){return rg(I)}function Bp(I,C,O){var j=Lu(I);if(!j)return-4;if(j.canvasSharedPtr&&(o()[j.canvasSharedPtr>>2]=C,o()[j.canvasSharedPtr+4>>2]=O),j.offscreenCanvas||!j.controlTransferredOffscreen){j.offscreenCanvas&&(j=j.offscreenCanvas);var he=!1;if(j.GLctxObject&&j.GLctxObject.GLctx){var le=j.GLctxObject.GLctx.getParameter(2978);he=le[0]===0&&le[1]===0&&le[2]===j.width&&le[3]===j.height}j.width=C,j.height=O,he&&j.GLctxObject.GLctx.viewport(0,0,C,O)}else if(j.canvasSharedPtr){var ce=o()[j.canvasSharedPtr+8>>2];return tg(ce,I,C,O),1}else return-4;return 0}function Wp(I,C,O){return T?Mr(2,1,I,C,O):Bp(I,C,O)}function sg(I,C,O){var j=Lu(I);return j?Bp(I,C,O):Wp(I,C,O)}function ig(I){}function og(I,C){}function lg(I){var C=I.getExtension("ANGLE_instanced_arrays");if(C)return I.vertexAttribDivisor=function(O,j){C.vertexAttribDivisorANGLE(O,j)},I.drawArraysInstanced=function(O,j,he,le){C.drawArraysInstancedANGLE(O,j,he,le)},I.drawElementsInstanced=function(O,j,he,le,ce){C.drawElementsInstancedANGLE(O,j,he,le,ce)},1}function ug(I){var C=I.getExtension("OES_vertex_array_object");if(C)return I.createVertexArray=function(){return C.createVertexArrayOES()},I.deleteVertexArray=function(O){C.deleteVertexArrayOES(O)},I.bindVertexArray=function(O){C.bindVertexArrayOES(O)},I.isVertexArray=function(O){return C.isVertexArrayOES(O)},1}function cg(I){var C=I.getExtension("WEBGL_draw_buffers");if(C)return I.drawBuffers=function(O,j){C.drawBuffersWEBGL(O,j)},1}function pg(I){return!!(I.multiDrawWebgl=I.getExtension("WEBGL_multi_draw"))}var et={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,recordError:function(I){et.lastError||(et.lastError=I)},getNewId:function(I){for(var C=et.counter++,O=I.length;O>2]:-1;he+=Fe(o()[O+le*4>>2],ce<0?void 0:ce)}return he},createContext:function(I,C){var O=I.getContext("webgl",C);if(!O)return 0;var j=et.registerContext(O,C);return j},registerContext:function(I,C){var O=ws(8);o()[O+4>>2]=yo();var j={handle:O,attributes:C,version:C.majorVersion,GLctx:I};return I.canvas&&(I.canvas.GLctxObject=j),et.contexts[O]=j,(typeof C.enableExtensionsByDefault=="undefined"||C.enableExtensionsByDefault)&&et.initExtensions(j),O},makeContextCurrent:function(I){return et.currentContext=et.contexts[I],u.ctx=Pr=et.currentContext&&et.currentContext.GLctx,!(I&&!Pr)},getContext:function(I){return et.contexts[I]},deleteContext:function(I){et.currentContext===et.contexts[I]&&(et.currentContext=null),typeof Pe=="object"&&Pe.removeAllHandlersOnTarget(et.contexts[I].GLctx.canvas),et.contexts[I]&&et.contexts[I].GLctx.canvas&&(et.contexts[I].GLctx.canvas.GLctxObject=void 0),Vu(et.contexts[I].handle),et.contexts[I]=null},initExtensions:function(I){if(I||(I=et.currentContext),!I.initExtensionsDone){I.initExtensionsDone=!0;var C=I.GLctx;lg(C),ug(C),cg(C),C.disjointTimerQueryExt=C.getExtension("EXT_disjoint_timer_query"),pg(C);var O=C.getSupportedExtensions()||[];O.forEach(function(j){j.indexOf("lose_context")<0&&j.indexOf("debug")<0&&C.getExtension(j)})}},populateUniformTable:function(I){for(var C=et.programs[I],O=et.programInfos[I]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1},j=O.uniforms,he=Pr.getProgramParameter(C,35718),le=0;le>2,j=o()[O+(24>>2)],he={alpha:!!o()[O+(0>>2)],depth:!!o()[O+(4>>2)],stencil:!!o()[O+(8>>2)],antialias:!!o()[O+(12>>2)],premultipliedAlpha:!!o()[O+(16>>2)],preserveDrawingBuffer:!!o()[O+(20>>2)],powerPreference:dg[j],failIfMajorPerformanceCaveat:!!o()[O+(28>>2)],majorVersion:o()[O+(32>>2)],minorVersion:o()[O+(36>>2)],enableExtensionsByDefault:o()[O+(40>>2)],explicitSwapControl:o()[O+(44>>2)],proxyContextToMainThread:o()[O+(48>>2)],renderViaOffscreenBackBuffer:o()[O+(52>>2)]},le=Lu(I);if(!le||he.explicitSwapControl)return 0;var ce=et.createContext(le,he);return ce}function mg(I,C){return hg(I,C)}var fo={mappings:{},buffers:[null,[],[]],printChar:function(I,C){var O=fo.buffers[I];C===0||C===10?((I===1?X:q)(Re(O,0)),O.length=0):O.push(C)},varargs:void 0,get:function(){fo.varargs+=4;var I=o()[fo.varargs-4>>2];return I},getStr:function(I){var C=Fe(I);return C},get64:function(I,C){return I}};function Vp(I){return T?Mr(3,1,I):0}function Up(I,C,O,j,he){if(T)return Mr(4,1,I,C,O,j,he)}function Gp(I,C,O,j){if(T)return Mr(5,1,I,C,O,j);for(var he=0,le=0;le>2],be=o()[C+(le*8+4)>>2],at=0;at>2]=he,0}function fg(I){var C=ke.threadExitHandlers.pop();I&&C()}function gg(I,C){ke.threadExitHandlers.push(function(){sa.get(I)(C)})}function Hp(I){if(T)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var C=ke.getNewWorker();if(C.pthread!==void 0)throw"Internal error!";if(!I.pthread_ptr)throw"Internal error, no pthread ptr!";ke.runningWorkers.push(C);for(var O=ws(128*4),j=0;j<128;++j)o()[O+j*4>>2]=0;var he=I.stackBase+I.stackSize,le=ke.pthreads[I.pthread_ptr]={worker:C,stackBase:I.stackBase,stackSize:I.stackSize,allocatedOwnStack:I.allocatedOwnStack,threadInfoStruct:I.pthread_ptr},ce=le.threadInfoStruct>>2;Atomics.store(l(),ce+(64>>2),I.detached),Atomics.store(l(),ce+(100>>2),O),Atomics.store(l(),ce+(40>>2),le.threadInfoStruct),Atomics.store(l(),ce+(80>>2),I.stackSize),Atomics.store(l(),ce+(76>>2),he),Atomics.store(l(),ce+(104>>2),I.stackSize),Atomics.store(l(),ce+(104+8>>2),he),Atomics.store(l(),ce+(104+12>>2),I.detached);var be=Rw(),at=be+40;Atomics.store(l(),ce+(172>>2),at),C.pthread=le;var Ut={cmd:"run",start_routine:I.startRoutine,arg:I.arg,threadInfoStruct:I.pthread_ptr,stackBase:I.stackBase,stackSize:I.stackSize};C.runPthread=function(){Ut.time=performance.now(),C.postMessage(Ut,I.transferList)},C.loaded&&(C.runPthread(),delete C.runPthread)}function yg(I,C,O,j){if(typeof SharedArrayBuffer=="undefined")return q("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;if(!I)return q("pthread_create called with a null thread pointer!"),28;var he=[],le=0;if(T&&(he.length===0||le))return Lw(687865856,I,C,O,j);if(le)return le;var ce=0,be=0,at=0;C&&C!=-1?(ce=o()[C>>2],ce+=81920,be=o()[C+8>>2],at=o()[C+12>>2]!==0):ce=2097152;var Ut=be==0;Ut?be=Ww(16,ce):(be-=ce,fe(be>0));for(var Mt=ws(228),Lr=0;Lr<228>>2;++Lr)l()[(Mt>>2)+Lr]=0;o()[I>>2]=Mt,o()[Mt+12>>2]=Mt;var wo=Mt+152;o()[wo>>2]=wo;var Tn={stackBase:be,stackSize:ce,allocatedOwnStack:Ut,detached:at,startRoutine:O,pthread_ptr:Mt,arg:j,transferList:he};return T?(Tn.cmd="spawnThread",postMessage(Tn,he)):Hp(Tn),0}function jp(I){if(T)return Mr(6,1,I);switch(I){case 30:return 16384;case 85:var C=2147483648;return C/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return zf(28),-1}T||ke.initMainThreadBlock();var Pr,bg=[null,Bf,Wp,Vp,Up,Gp,jp],xg={e:Of,r:Lf,x:Wf,b:Vf,y:Uf,j:Gf,c:Hf,d:mo,f:vs,p:jf,z:qf,u:Xf,q:Qf,v:sg,i:ig,t:og,w:mg,m:Vp,n:Up,g:Gp,o:Ff,a:Z||u.wasmMemory,k:fg,l:gg,h:yg,s:jp},$w=Ef(),qp=u.___wasm_call_ctors=function(){return(qp=u.___wasm_call_ctors=u.asm.A).apply(null,arguments)},vg=u._init=function(){return(vg=u._init=u.asm.B).apply(null,arguments)},wg=u._register_tensor=function(){return(wg=u._register_tensor=u.asm.C).apply(null,arguments)},kg=u._dispose_data=function(){return(kg=u._dispose_data=u.asm.D).apply(null,arguments)},Ig=u._dispose=function(){return(Ig=u._dispose=u.asm.E).apply(null,arguments)},Tg=u._Abs=function(){return(Tg=u._Abs=u.asm.G).apply(null,arguments)},Ng=u._Add=function(){return(Ng=u._Add=u.asm.H).apply(null,arguments)},Sg=u._AddN=function(){return(Sg=u._AddN=u.asm.I).apply(null,arguments)},Cg=u._ArgMax=function(){return(Cg=u._ArgMax=u.asm.J).apply(null,arguments)},_g=u._AvgPool=function(){return(_g=u._AvgPool=u.asm.K).apply(null,arguments)},Eg=u._BatchMatMul=function(){return(Eg=u._BatchMatMul=u.asm.L).apply(null,arguments)},Fg=u._Ceil=function(){return(Fg=u._Ceil=u.asm.M).apply(null,arguments)},Ag=u._ClipByValue=function(){return(Ag=u._ClipByValue=u.asm.N).apply(null,arguments)},$g=u._Conv2D=function(){return($g=u._Conv2D=u.asm.O).apply(null,arguments)},Kp=u._Conv2DBackpropInput=function(){return(Kp=u._Conv2DBackpropInput=u.asm.P).apply(null,arguments)},Xp=u._Cos=function(){return(Xp=u._Cos=u.asm.Q).apply(null,arguments)},zu=u._CropAndResize=function(){return(zu=u._CropAndResize=u.asm.R).apply(null,arguments)},go=u._Cumsum=function(){return(go=u._Cumsum=u.asm.S).apply(null,arguments)},Dg=u._DepthToSpace=function(){return(Dg=u._DepthToSpace=u.asm.T).apply(null,arguments)},Bu=u._DepthwiseConv2dNative=function(){return(Bu=u._DepthwiseConv2dNative=u.asm.U).apply(null,arguments)},K=u._Equal=function(){return(K=u._Equal=u.asm.V).apply(null,arguments)},ae=u._Exp=function(){return(ae=u._Exp=u.asm.W).apply(null,arguments)},Ne=u._FlipLeftRight=function(){return(Ne=u._FlipLeftRight=u.asm.X).apply(null,arguments)},Ye=u._Floor=function(){return(Ye=u._Floor=u.asm.Y).apply(null,arguments)},_t=u._FloorDiv=function(){return(_t=u._FloorDiv=u.asm.Z).apply(null,arguments)},yt=u._FusedBatchNorm=function(){return(yt=u._FusedBatchNorm=u.asm._).apply(null,arguments)},Ue=u._FusedConv2D=function(){return(Ue=u._FusedConv2D=u.asm.$).apply(null,arguments)},He=u._FusedDepthwiseConv2D=function(){return(He=u._FusedDepthwiseConv2D=u.asm.aa).apply(null,arguments)},tn=u._Gather=function(){return(tn=u._Gather=u.asm.ba).apply(null,arguments)},pr=u._GatherNd=function(){return(pr=u._GatherNd=u.asm.ca).apply(null,arguments)},dr=u._Greater=function(){return(dr=u._Greater=u.asm.da).apply(null,arguments)},Yp=u._GreaterEqual=function(){return(Yp=u._GreaterEqual=u.asm.ea).apply(null,arguments)},Wu=u._LeakyRelu=function(){return(Wu=u._LeakyRelu=u.asm.fa).apply(null,arguments)},Xn=u._Less=function(){return(Xn=u._Less=u.asm.ga).apply(null,arguments)},Or=u._LessEqual=function(){return(Or=u._LessEqual=u.asm.ha).apply(null,arguments)},Jp=u._Log=function(){return(Jp=u._Log=u.asm.ia).apply(null,arguments)},$C=u._LogicalAnd=function(){return($C=u._LogicalAnd=u.asm.ja).apply(null,arguments)},DC=u._Max=function(){return(DC=u._Max=u.asm.ka).apply(null,arguments)},RC=u._MaxPool=function(){return(RC=u._MaxPool=u.asm.la).apply(null,arguments)},MC=u._Maximum=function(){return(MC=u._Maximum=u.asm.ma).apply(null,arguments)},PC=u._Mean=function(){return(PC=u._Mean=u.asm.na).apply(null,arguments)},OC=u._Min=function(){return(OC=u._Min=u.asm.oa).apply(null,arguments)},LC=u._Minimum=function(){return(LC=u._Minimum=u.asm.pa).apply(null,arguments)},zC=u._Multiply=function(){return(zC=u._Multiply=u.asm.qa).apply(null,arguments)},BC=u._Neg=function(){return(BC=u._Neg=u.asm.ra).apply(null,arguments)},WC=u._NonMaxSuppressionV3=function(){return(WC=u._NonMaxSuppressionV3=u.asm.sa).apply(null,arguments)},VC=u._NonMaxSuppressionV4=function(){return(VC=u._NonMaxSuppressionV4=u.asm.ta).apply(null,arguments)},UC=u._NonMaxSuppressionV5=function(){return(UC=u._NonMaxSuppressionV5=u.asm.ua).apply(null,arguments)},GC=u._NotEqual=function(){return(GC=u._NotEqual=u.asm.va).apply(null,arguments)},HC=u._OneHot=function(){return(HC=u._OneHot=u.asm.wa).apply(null,arguments)},jC=u._PadV2=function(){return(jC=u._PadV2=u.asm.xa).apply(null,arguments)},qC=u._Pow=function(){return(qC=u._Pow=u.asm.ya).apply(null,arguments)},KC=u._Prelu=function(){return(KC=u._Prelu=u.asm.za).apply(null,arguments)},XC=u._Prod=function(){return(XC=u._Prod=u.asm.Aa).apply(null,arguments)},YC=u._RealDiv=function(){return(YC=u._RealDiv=u.asm.Ba).apply(null,arguments)},JC=u._Relu=function(){return(JC=u._Relu=u.asm.Ca).apply(null,arguments)},QC=u._Relu6=function(){return(QC=u._Relu6=u.asm.Da).apply(null,arguments)},ZC=u._ResizeBilinear=function(){return(ZC=u._ResizeBilinear=u.asm.Ea).apply(null,arguments)},e_=u._Reverse=function(){return(e_=u._Reverse=u.asm.Fa).apply(null,arguments)},t_=u._RotateWithOffset=function(){return(t_=u._RotateWithOffset=u.asm.Ga).apply(null,arguments)},n_=u._Round=function(){return(n_=u._Round=u.asm.Ha).apply(null,arguments)},a_=u._Rsqrt=function(){return(a_=u._Rsqrt=u.asm.Ia).apply(null,arguments)},r_=u._ScatterNd=function(){return(r_=u._ScatterNd=u.asm.Ja).apply(null,arguments)},s_=u._SelectV2=function(){return(s_=u._SelectV2=u.asm.Ka).apply(null,arguments)},i_=u._Sigmoid=function(){return(i_=u._Sigmoid=u.asm.La).apply(null,arguments)},o_=u._Sin=function(){return(o_=u._Sin=u.asm.Ma).apply(null,arguments)},l_=u._Softmax=function(){return(l_=u._Softmax=u.asm.Na).apply(null,arguments)},u_=u._Sqrt=function(){return(u_=u._Sqrt=u.asm.Oa).apply(null,arguments)},c_=u._Square=function(){return(c_=u._Square=u.asm.Pa).apply(null,arguments)},p_=u._SquaredDifference=function(){return(p_=u._SquaredDifference=u.asm.Qa).apply(null,arguments)},d_=u._Step=function(){return(d_=u._Step=u.asm.Ra).apply(null,arguments)},h_=u._StridedSlice=function(){return(h_=u._StridedSlice=u.asm.Sa).apply(null,arguments)},m_=u._Sub=function(){return(m_=u._Sub=u.asm.Ta).apply(null,arguments)},f_=u._Sum=function(){return(f_=u._Sum=u.asm.Ua).apply(null,arguments)},g_=u._Tanh=function(){return(g_=u._Tanh=u.asm.Va).apply(null,arguments)},y_=u._Tile=function(){return(y_=u._Tile=u.asm.Wa).apply(null,arguments)},b_=u._TopK=function(){return(b_=u._TopK=u.asm.Xa).apply(null,arguments)},x_=u._Transpose=function(){return(x_=u._Transpose=u.asm.Ya).apply(null,arguments)},v_=u.__FusedMatMul=function(){return(v_=u.__FusedMatMul=u.asm.Za).apply(null,arguments)},ws=u._malloc=function(){return(ws=u._malloc=u.asm._a).apply(null,arguments)},Vu=u._free=function(){return(Vu=u._free=u.asm.$a).apply(null,arguments)},Dw=u.___errno_location=function(){return(Dw=u.___errno_location=u.asm.ab).apply(null,arguments)},Rw=u._emscripten_get_global_libc=function(){return(Rw=u._emscripten_get_global_libc=u.asm.bb).apply(null,arguments)},yo=u._pthread_self=function(){return(yo=u._pthread_self=u.asm.cb).apply(null,arguments)},Mw=u.___pthread_tsd_run_dtors=function(){return(Mw=u.___pthread_tsd_run_dtors=u.asm.db).apply(null,arguments)},Rg=u._emscripten_main_thread_process_queued_calls=function(){return(Rg=u._emscripten_main_thread_process_queued_calls=u.asm.eb).apply(null,arguments)},w_=u._emscripten_current_thread_process_queued_calls=function(){return(w_=u._emscripten_current_thread_process_queued_calls=u.asm.fb).apply(null,arguments)},Pw=u._emscripten_register_main_browser_thread_id=function(){return(Pw=u._emscripten_register_main_browser_thread_id=u.asm.gb).apply(null,arguments)},Ow=u.__emscripten_do_dispatch_to_thread=function(){return(Ow=u.__emscripten_do_dispatch_to_thread=u.asm.hb).apply(null,arguments)},Lw=u._emscripten_sync_run_in_main_thread_4=function(){return(Lw=u._emscripten_sync_run_in_main_thread_4=u.asm.ib).apply(null,arguments)},zw=u._emscripten_run_in_main_runtime_thread_js=function(){return(zw=u._emscripten_run_in_main_runtime_thread_js=u.asm.jb).apply(null,arguments)},Mg=u.__emscripten_call_on_thread=function(){return(Mg=u.__emscripten_call_on_thread=u.asm.kb).apply(null,arguments)},k_=u._emscripten_tls_init=function(){return(k_=u._emscripten_tls_init=u.asm.lb).apply(null,arguments)},Qp=u.__emscripten_thread_init=function(){return(Qp=u.__emscripten_thread_init=u.asm.mb).apply(null,arguments)},Uu=u.stackSave=function(){return(Uu=u.stackSave=u.asm.nb).apply(null,arguments)},bo=u.stackRestore=function(){return(bo=u.stackRestore=u.asm.ob).apply(null,arguments)},xo=u.stackAlloc=function(){return(xo=u.stackAlloc=u.asm.pb).apply(null,arguments)},Bw=u._emscripten_stack_set_limits=function(){return(Bw=u._emscripten_stack_set_limits=u.asm.qb).apply(null,arguments)},Ww=u._memalign=function(){return(Ww=u._memalign=u.asm.rb).apply(null,arguments)},Vw=u.__emscripten_allow_main_runtime_queued_calls=9880,vo=u.__emscripten_main_thread_futex=11368;u.cwrap=_e,u.PThread=ke,u.PThread=ke,u.wasmMemory=Z,u.ExitStatus=Gu;var Zp;function Gu(I){this.name="ExitStatus",this.message="Program terminated with exit("+I+")",this.status=I}xs=function I(){Zp||Pg(),Zp||(xs=I)};function Pg(I){if(I=I||f,ur>0)return;if(T){p(u),postMessage({cmd:"loaded"});return}if(kf(),ur>0)return;function C(){Zp||(Zp=!0,u.calledRun=!0,!oe&&($p(),If(),p(u),u.onRuntimeInitialized&&u.onRuntimeInitialized(),kn()))}u.setStatus?(u.setStatus("Running..."),setTimeout(function(){setTimeout(function(){u.setStatus("")},1),C()},1)):C()}u.run=Pg;function I_(I,C){if(!(C&&ie&&I===0)){if(!C&&T)throw postMessage({cmd:"exitProcess",returnCode:I}),new Gu(I);ie||(ke.terminateAllThreads(),ge=I,Dp(),u.onExit&&u.onExit(I),oe=!0),y(I,new Gu(I))}}if(u.preInit)for(typeof u.preInit=="function"&&(u.preInit=[u.preInit]);u.preInit.length>0;)u.preInit.pop()();return T&&(ie=!1,ke.initWorker()),Pg(),r.ready}}();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModuleThreadedSimd=n)}),Q_=cn((e,t)=>{var n=function(){var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};var s=typeof r!="undefined"?r:{},i,o;s.ready=new Promise(function(K,ae){i=K,o=ae});var l={},c;for(c in s)s.hasOwnProperty(c)&&(l[c]=s[c]);var u=[],p="./this.program",d=function(K,ae){throw ae},h=!1,m=!1,f=!1,g=!1;h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g=!h&&!f&&!m;var y="";function b(K){return s.locateFile?s.locateFile(K,y):y+K}var x,v,N,T,S,A;f?(m?y=Hu().dirname(y)+"/":y=__dirname+"/",x=function(K,ae){return S||(S=require("fs")),A||(A=Hu()),K=A.normalize(K),S.readFileSync(K,ae?null:"utf8")},N=function(K){var ae=x(K,!0);return ae.buffer||(ae=new Uint8Array(ae)),X(ae.buffer),ae},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),u=process.argv.slice(2),process.on("uncaughtException",function(K){if(!(K instanceof Dg))throw K}),process.on("unhandledRejection",ka),d=function(K){process.exit(K)},s.inspect=function(){return"[Emscripten Module object]"}):g?(typeof read!="undefined"&&(x=function(K){return read(K)}),N=function(K){var ae;return typeof readbuffer=="function"?new Uint8Array(readbuffer(K)):(ae=read(K,"binary"),X(typeof ae=="object"),ae)},typeof scriptArgs!="undefined"?u=scriptArgs:typeof arguments!="undefined"&&(u=arguments),typeof quit=="function"&&(d=function(K){quit(K)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(h||m)&&(m?y=self.location.href:typeof document!="undefined"&&document.currentScript&&(y=document.currentScript.src),a&&(y=a),y.indexOf("blob:")!==0?y=y.substr(0,y.lastIndexOf("/")+1):y="",x=function(K){var ae=new XMLHttpRequest;return ae.open("GET",K,!1),ae.send(null),ae.responseText},m&&(N=function(K){var ae=new XMLHttpRequest;return ae.open("GET",K,!1),ae.responseType="arraybuffer",ae.send(null),new Uint8Array(ae.response)}),v=function(K,ae,Ne){var Ye=new XMLHttpRequest;Ye.open("GET",K,!0),Ye.responseType="arraybuffer",Ye.onload=function(){if(Ye.status==200||Ye.status==0&&Ye.response){ae(Ye.response);return}Ne()},Ye.onerror=Ne,Ye.send(null)},T=function(K){document.title=K});var $=s.print||console.log.bind(console),R=s.printErr||console.warn.bind(console);for(c in l)l.hasOwnProperty(c)&&(s[c]=l[c]);l=null,s.arguments&&(u=s.arguments),s.thisProgram&&(p=s.thisProgram),s.quit&&(d=s.quit);var B;s.wasmBinary&&(B=s.wasmBinary);var V=s.noExitRuntime||!0;typeof WebAssembly!="object"&&ka("no native wasm support detected");var W,G=!1,H;function X(K,ae){K||ka("Assertion failed: "+ae)}function q(K){var ae=s["_"+K];return X(ae,"Cannot call unknown function "+K+", make sure it is exported"),ae}function te(K,ae,Ne,Ye,_t){var yt={string:function(Xn){var Or=0;if(Xn!=null&&Xn!==0){var Jp=(Xn.length<<2)+1;Or=zu(Jp),de(Xn,Or,Jp)}return Or},array:function(Xn){var Or=zu(Xn.length);return oe(Xn,Or),Or}};function Ue(Xn){return ae==="string"?ie(Xn):ae==="boolean"?Boolean(Xn):Xn}var He=q(K),tn=[],pr=0;if(Ye)for(var dr=0;dr=Ye);)++_t;if(_t-ae>16&&K.subarray&&se)return se.decode(K.subarray(ae,_t));for(var yt="";ae<_t;){var Ue=K[ae++];if(!(Ue&128)){yt+=String.fromCharCode(Ue);continue}var He=K[ae++]&63;if((Ue&224)==192){yt+=String.fromCharCode((Ue&31)<<6|He);continue}var tn=K[ae++]&63;if((Ue&240)==224?Ue=(Ue&15)<<12|He<<6|tn:Ue=(Ue&7)<<18|He<<12|tn<<6|K[ae++]&63,Ue<65536)yt+=String.fromCharCode(Ue);else{var pr=Ue-65536;yt+=String.fromCharCode(55296|pr>>10,56320|pr&1023)}}return yt}function ie(K,ae){return K?ne(Te,K,ae):""}function Z(K,ae,Ne,Ye){if(!(Ye>0))return 0;for(var _t=Ne,yt=Ne+Ye-1,Ue=0;Ue=55296&&He<=57343){var tn=K.charCodeAt(++Ue);He=65536+((He&1023)<<10)|tn&1023}if(He<=127){if(Ne>=yt)break;ae[Ne++]=He}else if(He<=2047){if(Ne+1>=yt)break;ae[Ne++]=192|He>>6,ae[Ne++]=128|He&63}else if(He<=65535){if(Ne+2>=yt)break;ae[Ne++]=224|He>>12,ae[Ne++]=128|He>>6&63,ae[Ne++]=128|He&63}else{if(Ne+3>=yt)break;ae[Ne++]=240|He>>18,ae[Ne++]=128|He>>12&63,ae[Ne++]=128|He>>6&63,ae[Ne++]=128|He&63}}return ae[Ne]=0,Ne-_t}function de(K,ae,Ne){return Z(K,Te,ae,Ne)}function oe(K,ae){we.set(K,ae)}function ge(K,ae){return K%ae>0&&(K+=ae-K%ae),K}var fe,we,Te,_e,Re,Fe,tt,nt,it;function Xe(K){fe=K,s.HEAP8=we=new Int8Array(K),s.HEAP16=_e=new Int16Array(K),s.HEAP32=Fe=new Int32Array(K),s.HEAPU8=Te=new Uint8Array(K),s.HEAPU16=Re=new Uint16Array(K),s.HEAPU32=tt=new Uint32Array(K),s.HEAPF32=nt=new Float32Array(K),s.HEAPF64=it=new Float64Array(K)}var mt=s.INITIAL_MEMORY||16777216,Be,vn=[],It=[],qn=[],Zt=[],wn=!1;It.push({func:function(){Lp()}});function Kn(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)za(s.preRun.shift());Rr(vn)}function Rn(){wn=!0,Rr(It)}function un(){Rr(qn)}function en(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)sa(s.postRun.shift());Rr(Zt)}function za(K){vn.unshift(K)}function sa(K){Zt.unshift(K)}var ia=0,$r=null,lr=null;function Dr(K){ia++,s.monitorRunDependencies&&s.monitorRunDependencies(ia)}function co(K){if(ia--,s.monitorRunDependencies&&s.monitorRunDependencies(ia),ia==0&&($r!==null&&(clearInterval($r),$r=null),lr)){var ae=lr;lr=null,ae()}}s.preloadedImages={},s.preloadedAudios={};function ka(K){s.onAbort&&s.onAbort(K),K+="",R(K),G=!0,H=1,K="abort("+K+"). Build with -s ASSERTIONS=1 for more info.";var ae=new WebAssembly.RuntimeError(K);throw o(ae),ae}function Ap(K,ae){return String.prototype.startsWith?K.startsWith(ae):K.indexOf(ae)===0}var kf="data:application/octet-stream;base64,";function $p(K){return Ap(K,kf)}var If="file://";function Dp(K){return Ap(K,If)}var kn="tfjs-backend-wasm.wasm";$p(kn)||(kn=b(kn));function Rp(K){try{if(K==kn&&B)return new Uint8Array(B);if(N)return N(K);throw"both async and sync fetching of the wasm failed"}catch(ae){ka(ae)}}function Tf(){if(!B&&(h||m)){if(typeof fetch=="function"&&!Dp(kn))return fetch(kn,{credentials:"same-origin"}).then(function(K){if(!K.ok)throw"failed to load wasm binary file at '"+kn+"'";return K.arrayBuffer()}).catch(function(){return Rp(kn)});if(v)return new Promise(function(K,ae){v(kn,function(Ne){K(new Uint8Array(Ne))},ae)})}return Promise.resolve().then(function(){return Rp(kn)})}function ur(){var K={a:In};function ae(Ue,He){var tn=Ue.exports;s.asm=tn,W=s.asm.g,Xe(W.buffer),Be=s.asm.m,co("wasm-instantiate")}Dr("wasm-instantiate");function Ne(Ue){ae(Ue.instance)}function Ye(Ue){return Tf().then(function(He){return WebAssembly.instantiate(He,K)}).then(Ue,function(He){R("failed to asynchronously prepare wasm: "+He),ka(He)})}function _t(){return!B&&typeof WebAssembly.instantiateStreaming=="function"&&!$p(kn)&&!Dp(kn)&&typeof fetch=="function"?fetch(kn,{credentials:"same-origin"}).then(function(Ue){var He=WebAssembly.instantiateStreaming(Ue,K);return He.then(Ne,function(tn){return R("wasm streaming compile failed: "+tn),R("falling back to ArrayBuffer instantiation"),Ye(Ne)})}):Ye(Ne)}if(s.instantiateWasm)try{var yt=s.instantiateWasm(K,ae);return yt}catch(Ue){return R("Module.instantiateWasm callback failed with error: "+Ue),!1}return _t().catch(o),{}}function Rr(K){for(;K.length>0;){var ae=K.shift();if(typeof ae=="function"){ae(s);continue}var Ne=ae.func;typeof Ne=="number"?ae.arg===void 0?Be.get(Ne)():Be.get(Ne)(ae.arg):Ne(ae.arg===void 0?null:ae.arg)}}function xs(){ka()}function Nf(K,ae,Ne){Te.copyWithin(K,ae,ae+Ne)}function Sf(){return Te.length}function cr(K){try{return W.grow(K-fe.byteLength+65535>>>16),Xe(W.buffer),1}catch(ae){}}function Mp(K){var ae=Sf(),Ne=2147483648;if(K>Ne)return!1;for(var Ye=1;Ye<=4;Ye*=2){var _t=ae*(1+.2/Ye);_t=Math.min(_t,K+100663296);var yt=Math.min(Ne,ge(Math.max(K,_t),65536)),Ue=cr(yt);if(Ue)return!0}return!1}var po={mappings:{},buffers:[null,[],[]],printChar:function(K,ae){var Ne=po.buffers[K];ae===0||ae===10?((K===1?$:R)(ne(Ne,0)),Ne.length=0):Ne.push(ae)},varargs:void 0,get:function(){po.varargs+=4;var K=Fe[po.varargs-4>>2];return K},getStr:function(K){var ae=ie(K);return ae},get64:function(K,ae){return K}};function Pp(K){return 0}function Cf(K,ae,Ne,Ye,_t){}function Op(K,ae,Ne,Ye){for(var _t=0,yt=0;yt>2],He=Fe[ae+(yt*8+4)>>2],tn=0;tn>2]=_t,0}var In={a:xs,d:Nf,e:Mp,f:Pp,c:Cf,b:Op},_f=ur(),Lp=s.___wasm_call_ctors=function(){return(Lp=s.___wasm_call_ctors=s.asm.h).apply(null,arguments)},Ef=s._init=function(){return(Ef=s._init=s.asm.i).apply(null,arguments)},zp=s._register_tensor=function(){return(zp=s._register_tensor=s.asm.j).apply(null,arguments)},Ff=s._dispose_data=function(){return(Ff=s._dispose_data=s.asm.k).apply(null,arguments)},ho=s._dispose=function(){return(ho=s._dispose=s.asm.l).apply(null,arguments)},mo=s._Abs=function(){return(mo=s._Abs=s.asm.n).apply(null,arguments)},Af=s._Add=function(){return(Af=s._Add=s.asm.o).apply(null,arguments)},$f=s._AddN=function(){return($f=s._AddN=s.asm.p).apply(null,arguments)},Df=s._ArgMax=function(){return(Df=s._ArgMax=s.asm.q).apply(null,arguments)},ke=s._AvgPool=function(){return(ke=s._AvgPool=s.asm.r).apply(null,arguments)},Rf=s._BatchMatMul=function(){return(Rf=s._BatchMatMul=s.asm.s).apply(null,arguments)},Mf=s._Ceil=function(){return(Mf=s._Ceil=s.asm.t).apply(null,arguments)},Pf=s._ClipByValue=function(){return(Pf=s._ClipByValue=s.asm.u).apply(null,arguments)},Of=s._Conv2D=function(){return(Of=s._Conv2D=s.asm.v).apply(null,arguments)},Lf=s._Conv2DBackpropInput=function(){return(Lf=s._Conv2DBackpropInput=s.asm.w).apply(null,arguments)},vs=s._Cos=function(){return(vs=s._Cos=s.asm.x).apply(null,arguments)},zf=s._CropAndResize=function(){return(zf=s._CropAndResize=s.asm.y).apply(null,arguments)},Bf=s._Cumsum=function(){return(Bf=s._Cumsum=s.asm.z).apply(null,arguments)},Wf=s._DepthToSpace=function(){return(Wf=s._DepthToSpace=s.asm.A).apply(null,arguments)},Vf=s._DepthwiseConv2dNative=function(){return(Vf=s._DepthwiseConv2dNative=s.asm.B).apply(null,arguments)},Uf=s._Equal=function(){return(Uf=s._Equal=s.asm.C).apply(null,arguments)},Gf=s._Exp=function(){return(Gf=s._Exp=s.asm.D).apply(null,arguments)},Hf=s._FlipLeftRight=function(){return(Hf=s._FlipLeftRight=s.asm.E).apply(null,arguments)},jf=s._Floor=function(){return(jf=s._Floor=s.asm.F).apply(null,arguments)},qf=s._FloorDiv=function(){return(qf=s._FloorDiv=s.asm.G).apply(null,arguments)},Mr=s._FusedBatchNorm=function(){return(Mr=s._FusedBatchNorm=s.asm.H).apply(null,arguments)},Pu=s._FusedConv2D=function(){return(Pu=s._FusedConv2D=s.asm.I).apply(null,arguments)},Ou=s._FusedDepthwiseConv2D=function(){return(Ou=s._FusedDepthwiseConv2D=s.asm.J).apply(null,arguments)},Kf=s._Gather=function(){return(Kf=s._Gather=s.asm.K).apply(null,arguments)},Xf=s._GatherNd=function(){return(Xf=s._GatherNd=s.asm.L).apply(null,arguments)},Yf=s._Greater=function(){return(Yf=s._Greater=s.asm.M).apply(null,arguments)},Jf=s._GreaterEqual=function(){return(Jf=s._GreaterEqual=s.asm.N).apply(null,arguments)},Qf=s._LeakyRelu=function(){return(Qf=s._LeakyRelu=s.asm.O).apply(null,arguments)},Pe=s._Less=function(){return(Pe=s._Less=s.asm.P).apply(null,arguments)},Zf=s._LessEqual=function(){return(Zf=s._LessEqual=s.asm.Q).apply(null,arguments)},eg=s._Log=function(){return(eg=s._Log=s.asm.R).apply(null,arguments)},tg=s._LogicalAnd=function(){return(tg=s._LogicalAnd=s.asm.S).apply(null,arguments)},ng=s._Max=function(){return(ng=s._Max=s.asm.T).apply(null,arguments)},ag=s._MaxPool=function(){return(ag=s._MaxPool=s.asm.U).apply(null,arguments)},rg=s._Maximum=function(){return(rg=s._Maximum=s.asm.V).apply(null,arguments)},Lu=s._Mean=function(){return(Lu=s._Mean=s.asm.W).apply(null,arguments)},Bp=s._Min=function(){return(Bp=s._Min=s.asm.X).apply(null,arguments)},Wp=s._Minimum=function(){return(Wp=s._Minimum=s.asm.Y).apply(null,arguments)},sg=s._Multiply=function(){return(sg=s._Multiply=s.asm.Z).apply(null,arguments)},ig=s._Neg=function(){return(ig=s._Neg=s.asm._).apply(null,arguments)},og=s._NonMaxSuppressionV3=function(){return(og=s._NonMaxSuppressionV3=s.asm.$).apply(null,arguments)},lg=s._NonMaxSuppressionV4=function(){return(lg=s._NonMaxSuppressionV4=s.asm.aa).apply(null,arguments)},ug=s._NonMaxSuppressionV5=function(){return(ug=s._NonMaxSuppressionV5=s.asm.ba).apply(null,arguments)},cg=s._NotEqual=function(){return(cg=s._NotEqual=s.asm.ca).apply(null,arguments)},pg=s._OneHot=function(){return(pg=s._OneHot=s.asm.da).apply(null,arguments)},et=s._PadV2=function(){return(et=s._PadV2=s.asm.ea).apply(null,arguments)},dg=s._Pow=function(){return(dg=s._Pow=s.asm.fa).apply(null,arguments)},hg=s._Prelu=function(){return(hg=s._Prelu=s.asm.ga).apply(null,arguments)},mg=s._Prod=function(){return(mg=s._Prod=s.asm.ha).apply(null,arguments)},fo=s._RealDiv=function(){return(fo=s._RealDiv=s.asm.ia).apply(null,arguments)},Vp=s._Relu=function(){return(Vp=s._Relu=s.asm.ja).apply(null,arguments)},Up=s._Relu6=function(){return(Up=s._Relu6=s.asm.ka).apply(null,arguments)},Gp=s._ResizeBilinear=function(){return(Gp=s._ResizeBilinear=s.asm.la).apply(null,arguments)},fg=s._Reverse=function(){return(fg=s._Reverse=s.asm.ma).apply(null,arguments)},gg=s._RotateWithOffset=function(){return(gg=s._RotateWithOffset=s.asm.na).apply(null,arguments)},Hp=s._Round=function(){return(Hp=s._Round=s.asm.oa).apply(null,arguments)},yg=s._Rsqrt=function(){return(yg=s._Rsqrt=s.asm.pa).apply(null,arguments)},jp=s._ScatterNd=function(){return(jp=s._ScatterNd=s.asm.qa).apply(null,arguments)},Pr=s._SelectV2=function(){return(Pr=s._SelectV2=s.asm.ra).apply(null,arguments)},bg=s._Sigmoid=function(){return(bg=s._Sigmoid=s.asm.sa).apply(null,arguments)},xg=s._Sin=function(){return(xg=s._Sin=s.asm.ta).apply(null,arguments)},$w=s._Softmax=function(){return($w=s._Softmax=s.asm.ua).apply(null,arguments)},qp=s._Sqrt=function(){return(qp=s._Sqrt=s.asm.va).apply(null,arguments)},vg=s._Square=function(){return(vg=s._Square=s.asm.wa).apply(null,arguments)},wg=s._SquaredDifference=function(){return(wg=s._SquaredDifference=s.asm.xa).apply(null,arguments)},kg=s._Step=function(){return(kg=s._Step=s.asm.ya).apply(null,arguments)},Ig=s._StridedSlice=function(){return(Ig=s._StridedSlice=s.asm.za).apply(null,arguments)},Tg=s._Sub=function(){return(Tg=s._Sub=s.asm.Aa).apply(null,arguments)},Ng=s._Sum=function(){return(Ng=s._Sum=s.asm.Ba).apply(null,arguments)},Sg=s._Tanh=function(){return(Sg=s._Tanh=s.asm.Ca).apply(null,arguments)},Cg=s._Tile=function(){return(Cg=s._Tile=s.asm.Da).apply(null,arguments)},_g=s._TopK=function(){return(_g=s._TopK=s.asm.Ea).apply(null,arguments)},Eg=s._Transpose=function(){return(Eg=s._Transpose=s.asm.Fa).apply(null,arguments)},Fg=s.__FusedMatMul=function(){return(Fg=s.__FusedMatMul=s.asm.Ga).apply(null,arguments)},Ag=s._malloc=function(){return(Ag=s._malloc=s.asm.Ha).apply(null,arguments)},$g=s._free=function(){return($g=s._free=s.asm.Ia).apply(null,arguments)},Kp=s.stackSave=function(){return(Kp=s.stackSave=s.asm.Ja).apply(null,arguments)},Xp=s.stackRestore=function(){return(Xp=s.stackRestore=s.asm.Ka).apply(null,arguments)},zu=s.stackAlloc=function(){return(zu=s.stackAlloc=s.asm.La).apply(null,arguments)};s.cwrap=Q;var go;function Dg(K){this.name="ExitStatus",this.message="Program terminated with exit("+K+")",this.status=K}lr=function K(){go||Bu(),go||(lr=K)};function Bu(K){if(K=K||u,ia>0||(Kn(),ia>0))return;function ae(){go||(go=!0,s.calledRun=!0,!G&&(Rn(),un(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),en()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),ae()},1)):ae()}if(s.run=Bu,s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();return Bu(),r.ready}}();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModule=n)}),Z_=1e-7,eE=1e-4,rd=class{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}},ju=class{refCount(e){return oa("refCount")}incRef(e){return oa("incRef")}timerAvailable(){return!0}time(e){return oa("time")}read(e){return oa("read")}readSync(e){return oa("readSync")}numDataIds(){return oa("numDataIds")}disposeData(e,t){return oa("disposeData")}write(e,t,n){return oa("write")}move(e,t,n,a,r){return oa("move")}memory(){return oa("memory")}floatPrecision(){return oa("floatPrecision")}epsilon(){return this.floatPrecision()===32?Z_:eE}dispose(){return oa("dispose")}};function oa(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function Hw(e){let t=e.length,n=0,a=0;for(;t>0;)a=Math.random()*t|0,t--,n=e[t],e[t]=e[a],e[a]=n}function tE(e,t){if(e.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${e.length}Second array length was ${t.length}`);let n=e.length,a,r,s=0;for(;n>0;)s=Math.random()*n|0,n--,a=e[n],r=t[n],e[n]=e[s],t[n]=t[s],e[s]=a,t[s]=r}function qu(e,t,n){return Math.max(e,Math.min(t,n))}function nE(e){return e%2==0?e:e+1}function aE(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function ks(e){F(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Is(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||ln(e)&&!n)for(let a=0;a0,n){return new Promise((a,r)=>{let s=0,i=()=>{if(e()){a();return}s++;let o=t(s);if(n!=null&&s>=n){r();return}setTimeout(i,o)};i()})}function pE(e,t){let n=1,a=-1;for(let s=0;s=0)n*=e[s];else if(e[s]===-1){if(a!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${a} and dim ${s}`);a=s}else if(e[s]<0)throw Error(`Shapes can not be < 0. Found ${e[s]} at dim ${s}`);if(a===-1){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(n===0)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%n!=0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${n}`);let r=e.slice();return r[a]=t/n,r}function la(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),F(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),F(e.every(a=>Gt(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function jw(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:la(t,e).sort(),i=0;for(let o=0;oo)&&e[o]===1&&(n.push(e[o]),a.push(o)),s[i]<=o&&i++}e[o]!==1&&(n.push(e[o]),a.push(o))}return{newShape:n,keptDims:a}}function qw(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return n}function Kw(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else if(e==="string")n=new Array(t);else throw new Error(`Unknown data type ${e}`);return n}function Xw(e,t){for(let n=0;nt+=n.length),t}function zr(e){return typeof e=="string"||e instanceof String}function Qw(e){return typeof e=="boolean"}function Zw(e){return typeof e=="number"}function sd(e){return Array.isArray(e)?sd(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":Zw(e)?"float32":zr(e)?"string":Qw(e)?"bool":"float32"}function Br(e){return!!(e&&e.constructor&&e.call&&e.apply)}function id(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function e0(e,t,n){let a=new Array;if(t.length===1){let r=t[0];for(let s=0;so*l);for(let o=0;oa*r);if(n===0)return[];if(n!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}.`);return e0(0,e,t)}function zg(e,t){let n=od(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return No(e,new Float32Array(n));if(t==="int32")return No(e,new Int32Array(n));if(t==="bool")return No(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function Bg(e){e.forEach(t=>{F(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function mE(e,t,n){if(t===0)return 0;if(t===1)return e[0];let a=e[e.length-1];for(let r=0;r{let[n,a]=t.split(":");this.urlFlags[n]=yE(n,a)})}};function gE(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(bE(t,a[0],a[1]),a.join("="))),t}function bE(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function yE(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function ee(){return Vg}var Vg=null;function xE(e){Vg=e}var Ug;function a0(){if(Ug==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");Ug=e}return Ug}function vE(){let e=a0();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Gg(e,t){let n=vE();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var So="Abs",Co="Acos",_o="Acosh",Wr="Add",Ts="AddN",ld="All",ud="Any",Ns="ArgMax",Xu="ArgMin",Eo="Asin",Fo="Asinh",Ao="Atan",$o="Atanh",Do="Atan2",Ss="AvgPool",cd="AvgPoolGrad",Yu="AvgPool3D",pd="AvgPool3DGrad",Cs="BatchMatMul",Ju="BatchToSpaceND",dd="Bincount",r0="BroadcastTo",_s="Cast",Es="Ceil",Vr="ClipByValue",hd="Complex",Qu="ComplexAbs",Ro="Concat",Fs="Conv2D",md="Conv2DBackpropFilter",As="Conv2DBackpropInput",Zu="Conv3D",fd="Conv3DBackpropFilterV2",gd="Conv3DBackpropInputV2",$s="Cos",Mo="Cosh",Ds="Cumsum",Po="CropAndResize",yd="DenseBincount",Oo="DepthToSpace",Rs="DepthwiseConv2dNative",bd="DepthwiseConv2dNativeBackpropFilter",xd="DepthwiseConv2dNativeBackpropInput",vd="Diag",ec="Dilation2D",wd="Dilation2DBackpropInput",kd="Dilation2DBackpropFilter",Ms="RealDiv",Lo="Elu",Id="EluGrad",zo="Erf",Bo="Equal",Ps="Exp",Wo="ExpandDims",Vo="Expm1",Td="FFT",tc="Fill",Uo="FlipLeftRight",Os="Floor",Ls="FloorDiv",zs="FusedBatchNorm",Go="GatherV2",Ho="GatherNd",jo="Greater",Bs="GreaterEqual",Ws="Identity",Nd="IFFT",Sd="Imag",qo="IsFinite",Ko="IsInf",Xo="IsNan",Vs="LeakyRelu",Yo="Less",Jo="LessEqual",Cd="LinSpace",Us="Log",Qo="Log1p",Zo="LogicalAnd",nc="LogicalNot",ac="LogicalOr",s0="LogSoftmax",rc="LRN",_d="LRNGrad",Gs="Max",Hs="Maximum",js="MaxPool",Ed="MaxPoolGrad",sc="MaxPool3D",Fd="MaxPool3DGrad",Ad="MaxPoolWithArgmax",qs="Mean",Ks="Min",Xs="Minimum",ic="MirrorPad",el="Mod",$d="Multinomial",Ys="Multiply",tl="Neg",nl="NotEqual",al="NonMaxSuppressionV3",rl="NonMaxSuppressionV4",sl="NonMaxSuppressionV5",il="OnesLike",Js="OneHot",ol="Pack",Qs="PadV2",wE="Pool",Zs="Pow",ei="Prelu",ll="Prod",oc="Range",Dd="Real",ul="Reciprocal",ti="Relu",cl="Reshape",lc="ResizeNearestNeighbor",Rd="ResizeNearestNeighborGrad",ni="ResizeBilinear",Md="ResizeBilinearGrad",ai="Relu6",ri="Reverse",si="Round",ii="Rsqrt",pl="ScatterNd",dl="Select",hl="Selu",ml="Slice",oi="Sin",fl="Sinh",gl="Sign",li="Sigmoid",yl="Softplus",ui="Sqrt",ci="Sum",uc="SpaceToBatchND",bl="SplitV",pi="Softmax",di="SquaredDifference",cc="Square",hi="Sub",Pd="SparseToDense",xl="StridedSlice",vl="Tan",mi="Tanh",Ur="Tile",wl="TopK",fi="Transpose",Od="Unique",kl="Unpack",pc="UnsortedSegmentSum",Il="ZerosLike",Gr="Step",Ld="FromPixels",Tl="RotateWithOffset",gi="_FusedMatMul",yi="FusedConv2D",bi="FusedDepthwiseConv2D",Nl=Gg("kernelRegistry",()=>new Map),dc=Gg("gradRegistry",()=>new Map);function zd(e,t){let n=Hg(e,t);return Nl.get(n)}function jg(e){return dc.get(e)}function Bd(e){let t=Nl.entries(),n=[];for(;;){let{done:a,value:r}=t.next();if(a)break;let[s,i]=r,[o]=s.split("_");o===e&&n.push(i)}return n}function hc(e){let{kernelName:t,backendName:n}=e,a=Hg(t,n);Nl.has(a)&&console.warn(`The kernel '${t}' for backend '${n}' is already registered`),Nl.set(a,e)}function i0(e){let{kernelName:t}=e;dc.has(t)&&ee().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${t}'`),dc.set(t,e)}function kE(e,t){let n=Hg(e,t);if(!Nl.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Nl.delete(n)}function IE(e){if(!dc.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);dc.delete(e)}function TE(e,t){Bd(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});hc(a)})}function Hg(e,t){return`${t}_${e}`}var w={};Oe(w,{arraysEqual:()=>hr,assert:()=>F,assertNonNegativeIntegerDimensions:()=>Bg,assertNonNull:()=>ks,assertShapesMatch:()=>on,bytesFromStringArray:()=>Jw,bytesPerElement:()=>Lg,checkConversionForErrors:()=>Xw,clamp:()=>qu,computeStrides:()=>To,createScalarValue:()=>NE,createShuffledIndices:()=>uE,decodeString:()=>Vd,distSquared:()=>sE,encodeString:()=>fc,fetch:()=>SE,flatten:()=>Is,getArrayFromDType:()=>Kw,getTypedArrayFromDType:()=>qw,hasEncodingLoss:()=>dE,indexToLoc:()=>fE,inferDtype:()=>sd,inferFromImplicitShape:()=>pE,isBoolean:()=>Qw,isFunction:()=>Br,isInt:()=>Gt,isNumber:()=>Zw,isPromise:()=>Wg,isScalarShape:()=>iE,isString:()=>zr,isTypedArray:()=>ln,isValidDtype:()=>Yw,locToIndex:()=>mE,makeOnesTypedArray:()=>zg,makeZerosNestedTypedArray:()=>hE,makeZerosTypedArray:()=>od,nearestDivisor:()=>id,nearestLargerEven:()=>nE,now:()=>mc,parseAxisParam:()=>la,randUniform:()=>rE,repeatedTry:()=>cE,rightPad:()=>Ku,shuffle:()=>Hw,shuffleCombo:()=>tE,sizeFromShape:()=>Pt,sizeToSquarishShape:()=>lE,squeezeShape:()=>jw,sum:()=>aE,tanh:()=>oE,toNestedArray:()=>No,toTypedArray:()=>Wd});function NE(e,t){return t==="string"?fc(e):Wd([e],t)}function CE(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Wd(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=Is(e)),ee().getBool("DEBUG")&&Xw(e,t),CE(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){let n=new Uint8Array(e.length);for(let a=0;a{a=n()},s,i=mc();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:mc()-i})}if(ee().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{_E(c,l.dtype,e)})}return{kernelName:e,outputs:a,inputs:t,timeMs:s.then(o=>o.kernelMs),extraInfo:s.then(o=>o.getExtraProfileInfo!=null?o.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:n,timeMs:a,inputs:r,extraInfo:s}=e;n.forEach(i=>{Promise.all([i.data(),a,s]).then(o=>{this.logger.logKernelProfile(t,i,o[0],o[1],r,o[2])})})}};function _E(e,t,n){if(t!=="float32")return!1;for(let a=0;a0?m:""} `}}console.log(`%c${o} %c${i} %c${l}D ${u} %c${c} %c${p} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function AE(e,t,n){let a={},r={};for(let l=0;la[f.id]=!0),h=!0,r[c.id]=!0;break}if(h)break}}let s={};s[n.id]=!0;let i={};for(let l=e.length-1;l>=0;l--){let c=e[l],u=c.inputs;for(let p=0;p=0;r--){let s=t[r],i=[];if(s.outputs.forEach(l=>{let c=e[l.id];c!=null?i.push(c):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let o=s.gradient(i);for(let l in s.inputs){if(!(l in o))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(o)}.`);let c=n(()=>o[l]());if(c.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${c.dtype}'`);let u=s.inputs[l];if(!hr(c.shape,u.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${c.shape}', which does not match the shape of the input '${u.shape}'`);if(e[u.id]==null)e[u.id]=c;else{let p=e[u.id];e[u.id]=a(p,c),p.dispose()}}}}var o0=20,gc=3,qg=7;function RE(e,t,n,a){let r=To(t),s=DE(e,t,n,r),i=t.length,o=Ud(e,t,n,r,s),l=["Tensor"];return a&&(l.push(` dtype: ${n}`),l.push(` rank: ${i}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(o.map(c=>" "+c).join(` +var FA=Object.create,nd=Object.defineProperty,_A=Object.getPrototypeOf,EA=Object.prototype.hasOwnProperty,$A=Object.getOwnPropertyNames,DA=Object.getOwnPropertyDescriptor;var Uw=e=>nd(e,"__esModule",{value:!0});var MA=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),ad=(e,t)=>{for(var n in t)nd(e,n,{get:t[n],enumerable:!0})},RA=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of $A(t))!EA.call(e,a)&&a!=="default"&&nd(e,a,{get:()=>t[a],enumerable:!(n=DA(t,a))||n.enumerable});return e},PA=e=>RA(Uw(nd(e!=null?FA(_A(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var XS=MA((Ire,qS)=>{Uw(Ire);ad(Ire,{isNodejs:()=>Nre});function Nre(){return typeof global=="object"&&!0&&typeof qS!="undefined"&&typeof process!="undefined"&&!!process.version}});var Gw={};ad(Gw,{Abs:()=>So,Acos:()=>Co,Acosh:()=>Ao,AdadeltaOptimizer:()=>_h,AdagradOptimizer:()=>Eh,AdamOptimizer:()=>$h,AdamaxOptimizer:()=>Dh,Add:()=>Br,AddN:()=>Ns,All:()=>ud,Any:()=>cd,ArgMax:()=>Ts,ArgMin:()=>Ku,Asin:()=>Fo,Asinh:()=>_o,Atan:()=>Eo,Atan2:()=>Do,Atanh:()=>$o,AvgPool:()=>Ss,AvgPool3D:()=>Yu,AvgPool3DGrad:()=>dd,AvgPoolGrad:()=>pd,BackendWasm:()=>VS,BatchMatMul:()=>Cs,BatchToSpaceND:()=>Ju,Bincount:()=>hd,BroadcastTo:()=>s0,Callback:()=>WI,CallbackList:()=>Lk,Cast:()=>As,Ceil:()=>Fs,ClipByValue:()=>Vr,Complex:()=>md,ComplexAbs:()=>Qu,Concat:()=>Mo,Conv2D:()=>_s,Conv2DBackpropFilter:()=>fd,Conv2DBackpropInput:()=>Es,Conv3D:()=>Zu,Conv3DBackpropFilterV2:()=>gd,Conv3DBackpropInputV2:()=>yd,Cos:()=>$s,Cosh:()=>Ro,CropAndResize:()=>Po,Cumsum:()=>Ds,CustomCallback:()=>Wk,DataStorage:()=>sd,DenseBincount:()=>bd,DepthToSpace:()=>Oo,DepthwiseConv2dNative:()=>Ms,DepthwiseConv2dNativeBackpropFilter:()=>xd,DepthwiseConv2dNativeBackpropInput:()=>vd,Diag:()=>wd,Dilation2D:()=>ec,Dilation2DBackpropFilter:()=>Id,Dilation2DBackpropInput:()=>kd,ENV:()=>Ug,EarlyStopping:()=>VI,Elu:()=>Lo,EluGrad:()=>Nd,Environment:()=>a0,Equal:()=>Wo,Erf:()=>zo,Exp:()=>Ps,ExpandDims:()=>Bo,Expm1:()=>Vo,FFT:()=>Td,Fill:()=>tc,FlipLeftRight:()=>Uo,Floor:()=>Os,FloorDiv:()=>Ls,FromPixels:()=>Wd,FusedBatchNorm:()=>zs,FusedConv2D:()=>yi,FusedDepthwiseConv2D:()=>bi,GatherNd:()=>Ho,GatherV2:()=>Go,GraphModel:()=>bN,Greater:()=>jo,GreaterEqual:()=>Ws,History:()=>zk,IFFT:()=>Sd,Identity:()=>Bs,Imag:()=>Cd,InputSpec:()=>Yt,IsFinite:()=>qo,IsInf:()=>Xo,IsNan:()=>Ko,KernelBackend:()=>ju,LRN:()=>rc,LRNGrad:()=>Fd,LayerVariable:()=>Dk,LayersModel:()=>wr,LeakyRelu:()=>Vs,Less:()=>Yo,LessEqual:()=>Jo,LinSpace:()=>Ad,Log:()=>Us,Log1p:()=>Qo,LogSoftmax:()=>i0,LogicalAnd:()=>Zo,LogicalNot:()=>nc,LogicalOr:()=>ac,Max:()=>Gs,MaxPool:()=>js,MaxPool3D:()=>sc,MaxPool3DGrad:()=>Ed,MaxPoolGrad:()=>_d,MaxPoolWithArgmax:()=>$d,Maximum:()=>Hs,Mean:()=>qs,Min:()=>Xs,Minimum:()=>Ks,MirrorPad:()=>ic,Mod:()=>el,MomentumOptimizer:()=>Mh,Multinomial:()=>Dd,Multiply:()=>Ys,Neg:()=>tl,NonMaxSuppressionV3:()=>al,NonMaxSuppressionV4:()=>rl,NonMaxSuppressionV5:()=>sl,NotEqual:()=>nl,OP_SCOPE_SUFFIX:()=>y0,OneHot:()=>Js,OnesLike:()=>il,Optimizer:()=>br,Pack:()=>ol,PadV2:()=>Qs,Pool:()=>BF,Pow:()=>Zs,Prelu:()=>ei,Prod:()=>ll,RMSPropOptimizer:()=>Rh,RNN:()=>er,Range:()=>oc,Rank:()=>Yg,Real:()=>Md,RealDiv:()=>Rs,Reciprocal:()=>ul,Reduction:()=>hn,Relu:()=>ti,Relu6:()=>ai,Reshape:()=>cl,ResizeBilinear:()=>ni,ResizeBilinearGrad:()=>Pd,ResizeNearestNeighbor:()=>lc,ResizeNearestNeighborGrad:()=>Rd,Reverse:()=>ri,RotateWithOffset:()=>Nl,Round:()=>si,Rsqrt:()=>ii,SGDOptimizer:()=>Oc,ScatterNd:()=>pl,Select:()=>dl,Selu:()=>hl,Sequential:()=>Kl,Sigmoid:()=>li,Sign:()=>gl,Sin:()=>oi,Sinh:()=>fl,Slice:()=>ml,Softmax:()=>pi,Softplus:()=>yl,SpaceToBatchND:()=>uc,SparseToDense:()=>Od,SplitV:()=>bl,Sqrt:()=>ui,Square:()=>cc,SquaredDifference:()=>di,Step:()=>Gr,StridedSlice:()=>xl,Sub:()=>hi,Sum:()=>ci,SymbolicTensor:()=>Ea,Tan:()=>vl,Tanh:()=>mi,Tensor:()=>Fe,TensorBuffer:()=>Lt,Tile:()=>Ur,TopK:()=>wl,Transform:()=>Ld,Transpose:()=>fi,Unique:()=>zd,Unpack:()=>kl,UnsortedSegmentSum:()=>pc,Variable:()=>Hr,ZerosLike:()=>Il,_FusedMatMul:()=>gi,abs:()=>zt,acos:()=>wy,acosh:()=>ky,add:()=>J,addN:()=>e1,all:()=>eh,any:()=>Ic,argMax:()=>Nc,argMin:()=>Iy,asin:()=>Ny,asinh:()=>Ty,atan:()=>Sy,atan2:()=>Cy,atanh:()=>Ay,avgPool:()=>Qn,avgPool3d:()=>Ey,backend:()=>Z0,backend_util:()=>E,basicLSTMCell:()=>v$,batchNorm:()=>fr,batchNorm2d:()=>r1,batchNorm3d:()=>s1,batchNorm4d:()=>i1,batchToSpaceND:()=>Sc,bincount:()=>o1,booleanMaskAsync:()=>NR,broadcastTo:()=>Cc,browser:()=>ki,buffer:()=>Le,callbacks:()=>h4,cast:()=>ue,ceil:()=>$y,clipByValue:()=>Xt,clone:()=>Kr,complex:()=>jr,concat:()=>Je,concat1d:()=>l1,concat2d:()=>u1,concat3d:()=>c1,concat4d:()=>p1,constraints:()=>ik,conv1d:()=>nh,conv2d:()=>Et,conv2dTranspose:()=>ah,conv3d:()=>My,conv3dTranspose:()=>V$,copyRegisteredKernels:()=>GF,cos:()=>Ac,cosh:()=>rh,cosineWindow:()=>ib,cumsum:()=>sh,customGrad:()=>ja,data:()=>vN,denseBincount:()=>h1,deprecationWarn:()=>vy,depthToSpace:()=>Ry,depthwiseConv2d:()=>Qr,deregisterOp:()=>f4,device_util:()=>vc,diag:()=>Y$,dilation2d:()=>Py,disableDeprecationWarnings:()=>$E,dispose:()=>Ee,disposeVariables:()=>DE,div:()=>xe,divNoNan:()=>Oy,dot:()=>m1,dropout:()=>R1,elu:()=>Ml,enableDebugMode:()=>EE,enableProdMode:()=>_E,enclosingPowerOfTwo:()=>P1,engine:()=>Ua,env:()=>Z,equal:()=>Zr,erf:()=>Ly,exp:()=>dn,expandDims:()=>Rn,expm1:()=>zy,eye:()=>Wy,fft:()=>Rc,fill:()=>Sn,findBackend:()=>WE,findBackendFactory:()=>BE,floor:()=>Rl,floorDiv:()=>Zd,fused:()=>ns,gather:()=>Ti,gatherND:()=>M1,gather_util:()=>hy,getBackend:()=>LE,getGradient:()=>qg,getKernel:()=>Bd,getKernelsForBackend:()=>Vd,grad:()=>TD,grads:()=>SD,greater:()=>pa,greaterEqual:()=>es,ifft:()=>Bl,imag:()=>ih,image:()=>Ka,inTopKAsync:()=>RR,initializers:()=>hk,input:()=>Sk,io:()=>jt,irfft:()=>wh,isFinite:()=>f1,isInf:()=>g1,isNaN:()=>y1,keep:()=>qt,kernel_impls:()=>Ya,layers:()=>Tk,leakyRelu:()=>Fc,less:()=>oh,lessEqual:()=>Si,linalg:()=>X1,linspace:()=>b1,loadGraphModel:()=>mV,loadLayersModel:()=>DB,localResponseNormalization:()=>By,log:()=>Pn,log1p:()=>lh,logSigmoid:()=>v1,logSoftmax:()=>ch,logSumExp:()=>Gy,logicalAnd:()=>da,logicalNot:()=>_c,logicalOr:()=>ph,logicalXor:()=>N1,losses:()=>QP,matMul:()=>ze,math:()=>D0,max:()=>Zn,maxPool:()=>$t,maxPool3d:()=>Hy,maxPoolWithArgmax:()=>T1,maximum:()=>qa,mean:()=>Ct,memory:()=>Jd,metrics:()=>OI,min:()=>Ol,minimum:()=>Ll,mirrorPad:()=>jy,mod:()=>qy,model:()=>EB,models:()=>LI,moments:()=>dh,movingAverage:()=>CR,mul:()=>B,multiRNNCell:()=>tM,multinomial:()=>S1,neg:()=>St,nextFrame:()=>Ph,norm:()=>Th,notEqual:()=>Ai,oneHot:()=>_l,ones:()=>Xa,onesLike:()=>On,op:()=>O,outerProduct:()=>iM,pad:()=>ea,pad1d:()=>uM,pad2d:()=>pM,pad3d:()=>hM,pad4d:()=>fM,pool:()=>C1,pow:()=>gr,prelu:()=>$c,print:()=>C0,prod:()=>hh,profile:()=>ME,rand:()=>NM,randomGamma:()=>AM,randomNormal:()=>A1,randomUniform:()=>zl,range:()=>mh,ready:()=>OE,real:()=>Dc,reciprocal:()=>Yy,registerBackend:()=>Qd,registerCallbackConstructor:()=>MB,registerGradient:()=>o0,registerKernel:()=>hc,registerOp:()=>m4,regularizers:()=>zI,relu:()=>qe,relu6:()=>fh,removeBackend:()=>zE,reshape:()=>H,reverse:()=>Ln,reverse1d:()=>OM,reverse2d:()=>zM,reverse3d:()=>BM,reverse4d:()=>UM,rfft:()=>Pc,round:()=>Jy,rsqrt:()=>gh,scalar:()=>ce,scatterND:()=>D1,scatter_util:()=>my,selu:()=>yh,separableConv2d:()=>Fi,sequential:()=>$B,serialization:()=>re,setBackend:()=>PE,setPlatform:()=>VE,setWasmPath:()=>hre,setWasmPaths:()=>mre,setdiff1dAsync:()=>F1,sigmoid:()=>ca,sign:()=>Qy,signal:()=>JP,sin:()=>bh,sinh:()=>xh,slice:()=>Be,slice1d:()=>vh,slice2d:()=>Zy,slice3d:()=>Wl,slice4d:()=>Mc,slice_util:()=>pn,softmax:()=>Ta,softplus:()=>Pl,spaceToBatchND:()=>Ec,sparseToDense:()=>sb,spectral:()=>YP,split:()=>zn,sqrt:()=>an,square:()=>lt,squaredDifference:()=>kh,squeeze:()=>ts,stack:()=>Dt,step:()=>Vl,stridedSlice:()=>eb,sub:()=>me,sum:()=>Se,sumOutType:()=>jd,tan:()=>tb,tanh:()=>Dl,tensor:()=>Yn,tensor1d:()=>Qe,tensor2d:()=>Sa,tensor3d:()=>Kd,tensor4d:()=>Ca,tensor5d:()=>fR,tensor6d:()=>gR,tensor_util:()=>Ia,test_util:()=>K0,tidy:()=>M,tile:()=>Ha,time:()=>RE,topk:()=>nb,train:()=>Ei,transpose:()=>Ve,truncatedNormal:()=>Ih,unique:()=>Nh,unregisterGradient:()=>UF,unregisterKernel:()=>VF,unsortedSegmentSum:()=>ab,unstack:()=>ct,upcastType:()=>ua,util:()=>I,valueAndGrad:()=>CD,valueAndGrads:()=>AD,variable:()=>_1,variableGrads:()=>x1,version:()=>wee,version_converter:()=>xN,version_core:()=>Q0,version_layers:()=>im,version_wasm:()=>fre,where:()=>Tn,whereAsync:()=>rb,zeros:()=>vt,zerosLike:()=>Ge});var OA=Object.create,rd=Object.defineProperty,LA=Object.getPrototypeOf,zA=Object.prototype.hasOwnProperty,WA=Object.getOwnPropertyNames,BA=Object.getOwnPropertyDescriptor,VA=e=>rd(e,"__esModule",{value:!0}),tt=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),Oe=(e,t)=>{for(var n in t)rd(e,n,{get:t[n],enumerable:!0})},UA=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of WA(t))!zA.call(e,a)&&a!=="default"&&rd(e,a,{get:()=>t[a],enumerable:!(n=BA(t,a))||n.enumerable});return e},Io=e=>UA(VA(rd(e!=null?OA(LA(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e),GA=tt(()=>{}),HA=tt((e,t)=>{(function(n,a,r){function s(u){var c=this,p=l();c.next=function(){var d=2091639*c.s0+c.c*23283064365386963e-26;return c.s0=c.s1,c.s1=c.s2,c.s2=d-(c.c=d|0)},c.c=1,c.s0=p(" "),c.s1=p(" "),c.s2=p(" "),c.s0-=p(u),c.s0<0&&(c.s0+=1),c.s1-=p(u),c.s1<0&&(c.s1+=1),c.s2-=p(u),c.s2<0&&(c.s2+=1),p=null}function i(u,c){return c.c=u.c,c.s0=u.s0,c.s1=u.s1,c.s2=u.s2,c}function o(u,c){var p=new s(u),d=c&&c.state,h=p.next;return h.int32=function(){return p.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,d&&(typeof d=="object"&&i(d,p),h.state=function(){return i(p,{})}),h}function l(){var u=4022871197,c=function(p){p=p.toString();for(var d=0;d>>0,h-=u,h*=u,u=h>>>0,h-=u,u+=h*4294967296}return(u>>>0)*23283064365386963e-26};return c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),jA=tt((e,t)=>{(function(n,a,r){function s(l){var u=this,c="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var d=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^d^d>>>8},l===(l|0)?u.x=l:c+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),qA=tt((e,t)=>{(function(n,a,r){function s(l){var u=this,c="";u.next=function(){var d=u.x^u.x>>>2;return u.x=u.y,u.y=u.z,u.z=u.w,u.w=u.v,(u.d=u.d+362437|0)+(u.v=u.v^u.v<<4^(d^d<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:c+=l;for(var p=0;p>>4),u.next()}function i(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u.v=l.v,u.d=l.d,u}function o(l,u){var c=new s(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),XA=tt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var p=u.x,d=u.i,h,m,f;return h=p[d],h^=h>>>7,m=h^h<<24,h=p[d+1&7],m^=h^h>>>10,h=p[d+3&7],m^=h^h>>>3,h=p[d+4&7],m^=h^h<<7,h=p[d+7&7],h=h^h<<13,m^=h^h<<9,p[d]=m,u.i=d+1&7,m};function c(p,d){var h,m,f=[];if(d===(d|0))m=f[0]=d;else for(d=""+d,h=0;h0;--h)p.next()}c(u,l)}function i(l,u){return u.x=l.x.slice(),u.i=l.i,u}function o(l,u){l==null&&(l=+new Date);var c=new s(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(p.x&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),KA=tt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var p=u.w,d=u.X,h=u.i,m,f;return u.w=p=p+1640531527|0,f=d[h+34&127],m=d[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=d[h]=f^m,u.i=h,f+(p^p>>>16)|0};function c(p,d){var h,m,f,g,y,b=[],x=128;for(d===(d|0)?(m=d,d=null):(d=d+"\0",m=0,x=Math.max(x,d.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(y=y+1640531527|0,h=b[g&127]^=m+y,f=h==0?f+1:0);for(f>=128&&(b[(d&&d.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=b[f+34&127],h=b[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,b[f]=m^h;p.w=y,p.X=b,p.i=f}c(u,l)}function i(l,u){return u.i=l.i,u.w=l.w,u.X=l.X.slice(),u}function o(l,u){l==null&&(l=+new Date);var c=new s(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(p.X&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),YA=tt((e,t)=>{(function(n,a,r){function s(l){var u=this,c="";u.next=function(){var d=u.b,h=u.c,m=u.d,f=u.a;return d=d<<25^d>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-d|0,u.b=d=d<<20^d>>>12^h,u.c=h=h-m|0,u.d=m<<16^h>>>16^f,u.a=f-d|0},u.a=0,u.b=0,u.c=2654435769|0,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):c+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),Lg=tt(()=>{}),JA=tt((e,t)=>{(function(n,a){var r=this,s=256,i=6,o=52,l="random",u=a.pow(s,i),c=a.pow(2,o),p=c*2,d=s-1,h;function m(k,w,S){var A=[];w=w==!0?{entropy:!0}:w||{};var F=b(y(w.entropy?[k,v(n)]:k==null?x():k,3),A),D=new f(A),R=function(){for(var L=D.g(i),W=u,U=0;L=p;)L/=2,W/=2,U>>>=1;return(L+U)/W};return R.int32=function(){return D.g(4)|0},R.quick=function(){return D.g(4)/4294967296},R.double=R,b(v(D.S),n),(w.pass||S||function(L,W,U,G){return G&&(G.S&&g(G,D),L.state=function(){return g(D,{})}),U?(a[l]=L,W):L})(R,F,"global"in w?w.global:this==a,w.state)}a["seed"+l]=m;function f(k){var w,S=k.length,A=this,F=0,D=A.i=A.j=0,R=A.S=[];for(S||(k=[S++]);F{var n=HA(),a=jA(),r=qA(),s=XA(),i=KA(),o=YA(),l=JA();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),ZA=tt((e,t)=>{(function(n,a,r){function s(u){var c=this,p=l();c.next=function(){var d=2091639*c.s0+c.c*23283064365386963e-26;return c.s0=c.s1,c.s1=c.s2,c.s2=d-(c.c=d|0)},c.c=1,c.s0=p(" "),c.s1=p(" "),c.s2=p(" "),c.s0-=p(u),c.s0<0&&(c.s0+=1),c.s1-=p(u),c.s1<0&&(c.s1+=1),c.s2-=p(u),c.s2<0&&(c.s2+=1),p=null}function i(u,c){return c.c=u.c,c.s0=u.s0,c.s1=u.s1,c.s2=u.s2,c}function o(u,c){var p=new s(u),d=c&&c.state,h=p.next;return h.int32=function(){return p.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,d&&(typeof d=="object"&&i(d,p),h.state=function(){return i(p,{})}),h}function l(){var u=4022871197,c=function(p){p=p.toString();for(var d=0;d>>0,h-=u,h*=u,u=h>>>0,h-=u,u+=h*4294967296}return(u>>>0)*23283064365386963e-26};return c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),eF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this,c="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var d=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^d^d>>>8},l===(l|0)?u.x=l:c+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),tF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this,c="";u.next=function(){var d=u.x^u.x>>>2;return u.x=u.y,u.y=u.z,u.z=u.w,u.w=u.v,(u.d=u.d+362437|0)+(u.v=u.v^u.v<<4^(d^d<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:c+=l;for(var p=0;p>>4),u.next()}function i(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u.v=l.v,u.d=l.d,u}function o(l,u){var c=new s(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),nF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var p=u.x,d=u.i,h,m,f;return h=p[d],h^=h>>>7,m=h^h<<24,h=p[d+1&7],m^=h^h>>>10,h=p[d+3&7],m^=h^h>>>3,h=p[d+4&7],m^=h^h<<7,h=p[d+7&7],h=h^h<<13,m^=h^h<<9,p[d]=m,u.i=d+1&7,m};function c(p,d){var h,m,f=[];if(d===(d|0))m=f[0]=d;else for(d=""+d,h=0;h0;--h)p.next()}c(u,l)}function i(l,u){return u.x=l.x.slice(),u.i=l.i,u}function o(l,u){l==null&&(l=+new Date);var c=new s(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(p.x&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),aF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var p=u.w,d=u.X,h=u.i,m,f;return u.w=p=p+1640531527|0,f=d[h+34&127],m=d[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=d[h]=f^m,u.i=h,f+(p^p>>>16)|0};function c(p,d){var h,m,f,g,y,b=[],x=128;for(d===(d|0)?(m=d,d=null):(d=d+"\0",m=0,x=Math.max(x,d.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(y=y+1640531527|0,h=b[g&127]^=m+y,f=h==0?f+1:0);for(f>=128&&(b[(d&&d.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=b[f+34&127],h=b[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,b[f]=m^h;p.w=y,p.X=b,p.i=f}c(u,l)}function i(l,u){return u.i=l.i,u.w=l.w,u.X=l.X.slice(),u}function o(l,u){l==null&&(l=+new Date);var c=new s(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(p.X&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),rF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this,c="";u.next=function(){var d=u.b,h=u.c,m=u.d,f=u.a;return d=d<<25^d>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-d|0,u.b=d=d<<20^d>>>12^h,u.c=h=h-m|0,u.d=m<<16^h>>>16^f,u.a=f-d|0},u.a=0,u.b=0,u.c=2654435769|0,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):c+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),sF=tt((e,t)=>{(function(n,a){var r=(0,eval)("this"),s=256,i=6,o=52,l="random",u=a.pow(s,i),c=a.pow(2,o),p=c*2,d=s-1,h;function m(k,w,S){var A=[];w=w==!0?{entropy:!0}:w||{};var F=b(y(w.entropy?[k,v(n)]:k==null?x():k,3),A),D=new f(A),R=function(){for(var L=D.g(i),W=u,U=0;L=p;)L/=2,W/=2,U>>>=1;return(L+U)/W};return R.int32=function(){return D.g(4)|0},R.quick=function(){return D.g(4)/4294967296},R.double=R,b(v(D.S),n),(w.pass||S||function(L,W,U,G){return G&&(G.S&&g(G,D),L.state=function(){return g(D,{})}),U?(a[l]=L,W):L})(R,F,"global"in w?w.global:this==a,w.state)}a["seed"+l]=m;function f(k){var w,S=k.length,A=this,F=0,D=A.i=A.j=0,R=A.S=[];for(S||(k=[S++]);F{var n=ZA(),a=eF(),r=tF(),s=nF(),i=aF(),o=rF(),l=sF();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),iF=tt(()=>{}),oF=tt((e,t)=>{(function(n,a,r){function s(u){var c=this,p=l();c.next=function(){var d=2091639*c.s0+c.c*23283064365386963e-26;return c.s0=c.s1,c.s1=c.s2,c.s2=d-(c.c=d|0)},c.c=1,c.s0=p(" "),c.s1=p(" "),c.s2=p(" "),c.s0-=p(u),c.s0<0&&(c.s0+=1),c.s1-=p(u),c.s1<0&&(c.s1+=1),c.s2-=p(u),c.s2<0&&(c.s2+=1),p=null}function i(u,c){return c.c=u.c,c.s0=u.s0,c.s1=u.s1,c.s2=u.s2,c}function o(u,c){var p=new s(u),d=c&&c.state,h=p.next;return h.int32=function(){return p.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,d&&(typeof d=="object"&&i(d,p),h.state=function(){return i(p,{})}),h}function l(){var u=4022871197,c=function(p){p=p.toString();for(var d=0;d>>0,h-=u,h*=u,u=h>>>0,h-=u,u+=h*4294967296}return(u>>>0)*23283064365386963e-26};return c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),lF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this,c="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var d=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^d^d>>>8},l===(l|0)?u.x=l:c+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),uF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this,c="";u.next=function(){var d=u.x^u.x>>>2;return u.x=u.y,u.y=u.z,u.z=u.w,u.w=u.v,(u.d=u.d+362437|0)+(u.v=u.v^u.v<<4^(d^d<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:c+=l;for(var p=0;p>>4),u.next()}function i(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u.v=l.v,u.d=l.d,u}function o(l,u){var c=new s(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),cF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var p=u.x,d=u.i,h,m,f;return h=p[d],h^=h>>>7,m=h^h<<24,h=p[d+1&7],m^=h^h>>>10,h=p[d+3&7],m^=h^h>>>3,h=p[d+4&7],m^=h^h<<7,h=p[d+7&7],h=h^h<<13,m^=h^h<<9,p[d]=m,u.i=d+1&7,m};function c(p,d){var h,m,f=[];if(d===(d|0))m=f[0]=d;else for(d=""+d,h=0;h0;--h)p.next()}c(u,l)}function i(l,u){return u.x=l.x.slice(),u.i=l.i,u}function o(l,u){l==null&&(l=+new Date);var c=new s(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(p.x&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),pF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var p=u.w,d=u.X,h=u.i,m,f;return u.w=p=p+1640531527|0,f=d[h+34&127],m=d[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=d[h]=f^m,u.i=h,f+(p^p>>>16)|0};function c(p,d){var h,m,f,g,y,b=[],x=128;for(d===(d|0)?(m=d,d=null):(d=d+"\0",m=0,x=Math.max(x,d.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(y=y+1640531527|0,h=b[g&127]^=m+y,f=h==0?f+1:0);for(f>=128&&(b[(d&&d.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=b[f+34&127],h=b[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,b[f]=m^h;p.w=y,p.X=b,p.i=f}c(u,l)}function i(l,u){return u.i=l.i,u.w=l.w,u.X=l.X.slice(),u}function o(l,u){l==null&&(l=+new Date);var c=new s(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(p.X&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),dF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this,c="";u.next=function(){var d=u.b,h=u.c,m=u.d,f=u.a;return d=d<<25^d>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-d|0,u.b=d=d<<20^d>>>12^h,u.c=h=h-m|0,u.d=m<<16^h>>>16^f,u.a=f-d|0},u.a=0,u.b=0,u.c=2654435769|0,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):c+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),hF=tt((e,t)=>{(function(n,a){var r=this,s=256,i=6,o=52,l="random",u=a.pow(s,i),c=a.pow(2,o),p=c*2,d=s-1,h;function m(k,w,S){var A=[];w=w==!0?{entropy:!0}:w||{};var F=b(y(w.entropy?[k,v(n)]:k==null?x():k,3),A),D=new f(A),R=function(){for(var L=D.g(i),W=u,U=0;L=p;)L/=2,W/=2,U>>>=1;return(L+U)/W};return R.int32=function(){return D.g(4)|0},R.quick=function(){return D.g(4)/4294967296},R.double=R,b(v(D.S),n),(w.pass||S||function(L,W,U,G){return G&&(G.S&&g(G,D),L.state=function(){return g(D,{})}),U?(a[l]=L,W):L})(R,F,"global"in w?w.global:this==a,w.state)}a["seed"+l]=m;function f(k){var w,S=k.length,A=this,F=0,D=A.i=A.j=0,R=A.S=[];for(S||(k=[S++]);F{var n=oF(),a=lF(),r=uF(),s=cF(),i=pF(),o=dF(),l=hF();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),Hu=tt(()=>{}),fF=tt(()=>{}),gF=tt(()=>{}),yF=tt((e,t)=>{var n=function(){var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};function s(){return ee.buffer!=We&&tn(ee.buffer),vn}function i(){return ee.buffer!=We&&tn(ee.buffer),Nt}function o(){return ee.buffer!=We&&tn(ee.buffer),wn}function l(){return ee.buffer!=We&&tn(ee.buffer),Xn}function u(){return ee.buffer!=We&&tn(ee.buffer),cn}var c=typeof r!="undefined"?r:{},p,d;c.ready=new Promise(function(T,C){p=T,d=C});var h={},m;for(m in c)c.hasOwnProperty(m)&&(h[m]=c[m]);var f=[],g="./this.program",y=function(T,C){throw C},b=!1,x=!1,v=!1,k=!1;b=typeof window=="object",x=typeof importScripts=="function",v=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",k=!b&&!v&&!x;var w=c.ENVIRONMENT_IS_PTHREAD||!1;w&&(We=c.buffer);var S="";function A(T){return c.locateFile?c.locateFile(T,S):S+T}var F,D,R,L,W,U;if(v){x?S=Hu().dirname(S)+"/":S=__dirname+"/",F=function(T,C){return W||(W=require("fs")),U||(U=Hu()),T=U.normalize(T),W.readFileSync(T,C?null:"utf8")},R=function(T){var C=F(T,!0);return C.buffer||(C=new Uint8Array(C)),fe(C.buffer),C},process.argv.length>1&&(g=process.argv[1].replace(/\\/g,"/")),f=process.argv.slice(2),process.on("uncaughtException",function(T){if(!(T instanceof Gu))throw T}),process.on("unhandledRejection",cr),y=function(T){process.exit(T)},c.inspect=function(){return"[Emscripten Module object]"};var G;try{G=fF()}catch(T){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),T}global.Worker=G.Worker}else k?(typeof read!="undefined"&&(F=function(T){return read(T)}),R=function(T){var C;return typeof readbuffer=="function"?new Uint8Array(readbuffer(T)):(C=read(T,"binary"),fe(typeof C=="object"),C)},typeof scriptArgs!="undefined"?f=scriptArgs:typeof arguments!="undefined"&&(f=arguments),typeof quit=="function"&&(y=function(T){quit(T)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(b||x)&&(x?S=self.location.href:typeof document!="undefined"&&document.currentScript&&(S=document.currentScript.src),typeof a!="undefined"&&a&&(S=a),S.indexOf("blob:")!==0?S=S.substr(0,S.lastIndexOf("/")+1):S="",v?(F=function(T,C){return W||(W=require("fs")),U||(U=Hu()),T=U.normalize(T),W.readFileSync(T,C?null:"utf8")},R=function(T){var C=F(T,!0);return C.buffer||(C=new Uint8Array(C)),fe(C.buffer),C}):(F=function(T){var C=new XMLHttpRequest;return C.open("GET",T,!1),C.send(null),C.responseText},x&&(R=function(T){var C=new XMLHttpRequest;return C.open("GET",T,!1),C.responseType="arraybuffer",C.send(null),new Uint8Array(C.response)}),D=function(T,C,z){var q=new XMLHttpRequest;q.open("GET",T,!0),q.responseType="arraybuffer",q.onload=function(){if(q.status==200||q.status==0&&q.response){C(q.response);return}z()},q.onerror=z,q.send(null)}),L=function(T){document.title=T});v&&typeof performance=="undefined"&&(global.performance=gF().performance);var X=c.print||console.log.bind(console),j=c.printErr||console.warn.bind(console);for(m in h)h.hasOwnProperty(m)&&(c[m]=h[m]);h=null,c.arguments&&(f=c.arguments),c.thisProgram&&(g=c.thisProgram),c.quit&&(y=c.quit);var te=Atomics.load,Q=Atomics.store,se=Atomics.compareExchange,ne;c.wasmBinary&&(ne=c.wasmBinary);var ie=c.noExitRuntime||!0;typeof WebAssembly!="object"&&cr("no native wasm support detected");var ee,de,oe=!1,ge;function fe(T,C){T||cr("Assertion failed: "+C)}function we(T){var C=c["_"+T];return fe(C,"Cannot call unknown function "+T+", make sure it is exported"),C}function Ne(T,C,z,q,he){var le={string:function(Nn){var ko=0;if(Nn!=null&&Nn!==0){var Vw=(Nn.length<<2)+1;ko=xo(Vw),at(Nn,ko,Vw)}return ko},array:function(Nn){var ko=xo(Nn.length);return Ke(Nn,ko),ko}};function pe(Nn){return C==="string"?_e(Nn):C==="boolean"?Boolean(Nn):Nn}var be=we(T),rt=[],Gt=0;if(q)for(var Pt=0;Pt=q);){var le=T[C++];if(!le)return he;if(!(le&128)){he+=String.fromCharCode(le);continue}var pe=T[C++]&63;if((le&224)==192){he+=String.fromCharCode((le&31)<<6|pe);continue}var be=T[C++]&63;if((le&240)==224?le=(le&15)<<12|pe<<6|be:le=(le&7)<<18|pe<<12|be<<6|T[C++]&63,le<65536)he+=String.fromCharCode(le);else{var rt=le-65536;he+=String.fromCharCode(55296|rt>>10,56320|rt&1023)}}return he}function _e(T,C){return T?Me(i(),T,C):""}function nt(T,C,z,q){if(!(q>0))return 0;for(var he=z,le=z+q-1,pe=0;pe=55296&&be<=57343){var rt=T.charCodeAt(++pe);be=65536+((be&1023)<<10)|rt&1023}if(be<=127){if(z>=le)break;C[z++]=be}else if(be<=2047){if(z+1>=le)break;C[z++]=192|be>>6,C[z++]=128|be&63}else if(be<=65535){if(z+2>=le)break;C[z++]=224|be>>12,C[z++]=128|be>>6&63,C[z++]=128|be&63}else{if(z+3>=le)break;C[z++]=240|be>>18,C[z++]=128|be>>12&63,C[z++]=128|be>>6&63,C[z++]=128|be&63}}return C[z]=0,z-he}function at(T,C,z){return nt(T,i(),C,z)}function ot(T){for(var C=0,z=0;z=55296&&q<=57343&&(q=65536+((q&1023)<<10)|T.charCodeAt(++z)&1023),q<=127?++C:q<=2047?C+=2:q<=65535?C+=3:C+=4}return C}function Ke(T,C){s().set(T,C)}function ft(T,C){return T%C>0&&(T+=C-T%C),T}var We,vn,Nt,qn,en,wn,Xn,Mn,cn;function tn(T){We=T,c.HEAP8=vn=new Int8Array(T),c.HEAP16=qn=new Int16Array(T),c.HEAP32=wn=new Int32Array(T),c.HEAPU8=Nt=new Uint8Array(T),c.HEAPU16=en=new Uint16Array(T),c.HEAPU32=Xn=new Uint32Array(T),c.HEAPF32=Mn=new Float32Array(T),c.HEAPF64=cn=new Float64Array(T)}var Wa=c.INITIAL_MEMORY||16777216;if(w)ee=c.wasmMemory,We=c.buffer;else if(c.wasmMemory)ee=c.wasmMemory;else if(ee=new WebAssembly.Memory({initial:Wa/65536,maximum:2147483648/65536,shared:!0}),!(ee.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"),v&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");ee&&(We=ee.buffer),Wa=We.byteLength,tn(We);var sa,ia=[],$r=[],lr=[],Dr=[],co=[],ka=!1,Dp=!1;w||$r.push({func:function(){Kp()}}),w&&(ka=!0);function If(){if(!w){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)Pp(c.preRun.shift());ho(ia)}}function Mp(){ka=!0,ho($r)}function Nf(){w||ho(lr)}function Rp(){w||(Dp=!0)}function kn(){if(!w){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)Tf(c.postRun.shift());ho(co)}}function Pp(T){ia.unshift(T)}function Tf(T){co.unshift(T)}var ur=0,Mr=null,xs=null;function Sf(T){fe(!w,"addRunDependency cannot be used in a pthread worker"),ur++,c.monitorRunDependencies&&c.monitorRunDependencies(ur)}function Cf(T){if(ur--,c.monitorRunDependencies&&c.monitorRunDependencies(ur),ur==0&&(Mr!==null&&(clearInterval(Mr),Mr=null),xs)){var C=xs;xs=null,C()}}c.preloadedImages={},c.preloadedAudios={};function cr(T){c.onAbort&&c.onAbort(T),w&&console.error("Pthread aborting at "+new Error().stack),T+="",j(T),oe=!0,ge=1,T="abort("+T+"). Build with -s ASSERTIONS=1 for more info.";var C=new WebAssembly.RuntimeError(T);throw d(C),C}function Op(T,C){return String.prototype.startsWith?T.startsWith(C):T.indexOf(C)===0}var po="data:application/octet-stream;base64,";function Lp(T){return Op(T,po)}var Af="file://";function zp(T){return Op(T,Af)}var In="tfjs-backend-wasm-threaded-simd.wasm";Lp(In)||(In=A(In));function Ff(T){try{if(T==In&&ne)return new Uint8Array(ne);if(R)return R(T);throw"both async and sync fetching of the wasm failed"}catch(C){cr(C)}}function Wp(){if(!ne&&(b||x)){if(typeof fetch=="function"&&!zp(In))return fetch(In,{credentials:"same-origin"}).then(function(T){if(!T.ok)throw"failed to load wasm binary file at '"+In+"'";return T.arrayBuffer()}).catch(function(){return Ff(In)});if(D)return new Promise(function(T,C){D(In,function(z){T(new Uint8Array(z))},C)})}return Promise.resolve().then(function(){return Ff(In)})}function _f(){var T={a:vg};function C(pe,be){var rt=pe.exports;if(c.asm=rt,sa=c.asm.F,de=be,!w){var Gt=ke.unusedWorkers.length;ke.unusedWorkers.forEach(function(Pt){ke.loadWasmModuleToWorker(Pt,function(){--Gt||Cf("wasm-instantiate")})})}}w||Sf("wasm-instantiate");function z(pe){C(pe.instance,pe.module)}function q(pe){return Wp().then(function(be){return WebAssembly.instantiate(be,T)}).then(pe,function(be){j("failed to asynchronously prepare wasm: "+be),cr(be)})}function he(){return!ne&&typeof WebAssembly.instantiateStreaming=="function"&&!Lp(In)&&!zp(In)&&typeof fetch=="function"?fetch(In,{credentials:"same-origin"}).then(function(pe){var be=WebAssembly.instantiateStreaming(pe,T);return be.then(z,function(rt){return j("wasm streaming compile failed: "+rt),j("falling back to ArrayBuffer instantiation"),q(z)})}):q(z)}if(c.instantiateWasm)try{var le=c.instantiateWasm(T,C);return le}catch(pe){return j("Module.instantiateWasm callback failed with error: "+pe),!1}return he().catch(d),{}}var Bp={8991:function(T,C){setTimeout(function(){Pw(T,C)},0)}};function Ef(){ke.initRuntime()}function ho(T){for(;T.length>0;){var C=T.shift();if(typeof C=="function"){C(c);continue}var z=C.func;typeof z=="number"?C.arg===void 0?sa.get(z)():sa.get(z)(C.arg):z(C.arg===void 0?null:C.arg)}}function mo(T,C){if(T<=0||T>s().length||T&!0||C<0)return-28;if(C==0)return 0;C>=2147483647&&(C=Infinity);var z=Atomics.load(o(),vo>>2),q=0;if(z==T){var he=Atomics.compareExchange(o(),vo>>2,z,0);if(he==z&&(--C,q=1,C<=0))return 1}var le=Atomics.notify(o(),T>>2,C);if(le>=0)return le+q;throw"Atomics.notify returned an unexpected value "+le}c._emscripten_futex_wake=mo;function $f(T){if(w)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!T)throw"Internal Error! Null pthread_ptr in killThread!";o()[T+12>>2]=0;var C=ke.pthreads[T];C.worker.terminate(),ke.freeThreadData(C),ke.runningWorkers.splice(ke.runningWorkers.indexOf(C.worker),1),C.worker.pthread=void 0}function Df(T){if(w)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!T)throw"Internal Error! Null pthread_ptr in cancelThread!";var C=ke.pthreads[T];C.worker.postMessage({cmd:"cancel"})}function Mf(T){if(w)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!T)throw"Internal Error! Null pthread_ptr in cleanupThread!";o()[T+12>>2]=0;var C=ke.pthreads[T];if(C){var z=C.worker;ke.returnWorkerToPool(z)}}var ke={unusedWorkers:[],runningWorkers:[],initMainThreadBlock:function(){for(var T=8,C=0;C>2]=T;var z=T+152;o()[z>>2]=z;for(var q=ws(512),C=0;C<128;++C)l()[q/4+C]=0;Atomics.store(l(),T+100>>2,q),Atomics.store(l(),T+40>>2,T),ed(T,!x,1),Rw(T)},initWorker:function(){},pthreads:{},threadExitHandlers:[],setThreadStatus:function(){},runExitHandlers:function(){for(;ke.threadExitHandlers.length>0;)ke.threadExitHandlers.pop()();w&&yo()&&Mw()},threadExit:function(T){var C=yo();C&&(Atomics.store(l(),C+4>>2,T),Atomics.store(l(),C+0>>2,1),Atomics.store(l(),C+56>>2,1),Atomics.store(l(),C+60>>2,0),ke.runExitHandlers(),mo(C+0,2147483647),ed(0,0,0),w&&postMessage({cmd:"exit"}))},threadCancel:function(){ke.runExitHandlers();var T=yo();Atomics.store(l(),T+4>>2,-1),Atomics.store(l(),T+0>>2,1),mo(T+0,2147483647),ed(0,0,0),postMessage({cmd:"cancelDone"})},terminateAllThreads:function(){for(var T in ke.pthreads){var C=ke.pthreads[T];C&&C.worker&&ke.returnWorkerToPool(C.worker)}ke.pthreads={};for(var z=0;z>2];o()[T.threadInfoStruct+100>>2]=0,Vu(C),Vu(T.threadInfoStruct)}T.threadInfoStruct=0,T.allocatedOwnStack&&T.stackBase&&Vu(T.stackBase),T.stackBase=0,T.worker&&(T.worker.pthread=null)}},returnWorkerToPool:function(T){ke.runWithoutMainThreadQueuedCalls(function(){delete ke.pthreads[T.pthread.threadInfoStruct],ke.unusedWorkers.push(T),ke.runningWorkers.splice(ke.runningWorkers.indexOf(T),1),ke.freeThreadData(T.pthread),T.pthread=void 0})},runWithoutMainThreadQueuedCalls:function(T){o()[Bw>>2]=0;try{T()}finally{o()[Bw>>2]=1}},receiveObjectTransfer:function(T){},loadWasmModuleToWorker:function(T,C){T.onmessage=function(z){var q=z.data,he=q.cmd;if(T.pthread&&(ke.currentProxiedOperationCallerThread=T.pthread.threadInfoStruct),q.targetThread&&q.targetThread!=yo()){var le=ke.pthreads[q.targetThread];le?le.worker.postMessage(z.data,q.transferList):console.error('Internal error! Worker sent a message "'+he+'" to target pthread '+q.targetThread+", but that thread no longer exists!"),ke.currentProxiedOperationCallerThread=void 0;return}if(he==="processQueuedMainThreadWork")Rg();else if(he==="spawnThread")qp(z.data);else if(he==="cleanupThread")Mf(q.thread);else if(he==="killThread")$f(q.thread);else if(he==="cancelThread")Df(q.thread);else if(he==="loaded")T.loaded=!0,C&&C(T),T.runPthread&&(T.runPthread(),delete T.runPthread);else if(he==="print")X("Thread "+q.threadId+": "+q.text);else if(he==="printErr")j("Thread "+q.threadId+": "+q.text);else if(he==="alert")alert("Thread "+q.threadId+": "+q.text);else if(he==="exit"){var pe=T.pthread&&Atomics.load(l(),T.pthread.threadInfoStruct+64>>2);pe&&ke.returnWorkerToPool(T)}else if(he==="exitProcess")try{AA(q.returnCode)}catch(be){if(be instanceof Gu)return;throw be}else he==="cancelDone"?ke.returnWorkerToPool(T):he==="objectTransfer"?ke.receiveObjectTransfer(z.data):z.data.target==="setimmediate"?T.postMessage(z.data):j("worker sent an unknown command "+he);ke.currentProxiedOperationCallerThread=void 0},T.onerror=function(z){j("pthread sent an error! "+z.filename+":"+z.lineno+": "+z.message)},v&&(T.on("message",function(z){T.onmessage({data:z})}),T.on("error",function(z){T.onerror(z)}),T.on("exit",function(z){})),T.postMessage({cmd:"load",urlOrBlob:c.mainScriptUrlOrBlob||a,wasmMemory:ee,wasmModule:de})},allocateUnusedWorker:function(){var T=A("tfjs-backend-wasm-threaded-simd.worker.js");ke.unusedWorkers.push(new Worker(T))},getNewWorker:function(){return ke.unusedWorkers.length==0&&(ke.allocateUnusedWorker(),ke.loadWasmModuleToWorker(ke.unusedWorkers[0])),ke.unusedWorkers.length>0?ke.unusedWorkers.pop():null},busySpinWait:function(T){for(var C=performance.now()+T;performance.now()>2]=T,T}function Bf(T,C){if(w)return Rr(1,1,T,C)}function Vf(T,C){if(T==C)postMessage({cmd:"processQueuedMainThreadWork"});else if(w)postMessage({targetThread:T,cmd:"processThreadQueue"});else{var z=ke.pthreads[T],q=z&&z.worker;if(!q)return;q.postMessage({cmd:"processThreadQueue"})}return 1}function Uf(){cr()}function Gf(T,C,z){var q=Kf(C,z);return Bp[T].apply(null,q)}function Hf(T,C){}function jf(T,C,z){if(T<=0||T>s().length||T&!0)return-28;if(b){if(Atomics.load(o(),T>>2)!=C)return-6;for(var q=performance.now(),he=q+z,le=Atomics.exchange(o(),vo>>2,T);;){if(q=performance.now(),q>he)return le=Atomics.exchange(o(),vo>>2,0),-73;if(le=Atomics.exchange(o(),vo>>2,0),le==0)break;if(Rg(),Atomics.load(o(),T>>2)!=C)return-6;le=Atomics.exchange(o(),vo>>2,T)}return 0}else{var pe=Atomics.wait(o(),T>>2,C,z);if(pe==="timed-out")return-73;if(pe==="not-equal")return-6;if(pe==="ok")return 0;throw"Atomics.wait returned an unexpected value "+pe}}function qf(T,C,z){i().copyWithin(T,C,C+z)}function Xf(){return v?require("os").cpus().length:navigator.hardwareConcurrency}function Rr(T,C){for(var z=arguments.length-2,q=Uu(),he=z,le=xo(he*8),pe=le>>3,be=0;be>=2;z=i()[T++];){var q=z<105;q&&C&1&&C++,Ou.push(q?u()[C++>>1]:o()[C]),++C}return Ou}function Yf(T,C,z){Pu.length=C;for(var q=z>>3,he=0;he>>16),tn(ee.buffer),1}catch(C){}}function Zf(T){var C=Jf();if(T<=C)return!1;var z=2147483648;if(T>z)return!1;for(var q=1;q<=4;q*=2){var he=C*(1+.2/q);he=Math.min(he,T+100663296);var le=Math.min(z,ft(Math.max(T,he),65536)),pe=Qf(le);if(pe)return!0}return!1}var Pe={inEventHandler:0,removeAllEventListeners:function(){for(var T=Pe.eventHandlers.length-1;T>=0;--T)Pe._removeHandler(T);Pe.eventHandlers=[],Pe.deferredCalls=[]},registerRemoveEventListeners:function(){Pe.removeEventListenersRegistered||(Dr.push(Pe.removeAllEventListeners),Pe.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(T,C,z){function q(pe,be){if(pe.length!=be.length)return!1;for(var rt in pe)if(pe[rt]!=be[rt])return!1;return!0}for(var he in Pe.deferredCalls){var le=Pe.deferredCalls[he];if(le.targetFunction==T&&q(le.argsList,z))return}Pe.deferredCalls.push({targetFunction:T,precedence:C,argsList:z}),Pe.deferredCalls.sort(function(pe,be){return pe.precedence>2]=z,o()[pe+4>>2]=q,o()[pe+8>>2]=he,Pg(0,T,637534208,C,q,pe),bo(le)},getTargetThreadForEventCallback:function(T){switch(T){case 1:return 0;case 2:return ke.currentProxiedOperationCallerThread;default:return T}},getNodeNameForTarget:function(T){return T?T==window?"#window":T==screen?"#screen":T&&T.nodeName?T.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function eg(T){var C=ot(T)+1,z=ws(C);return at(T,z,C),z}function tg(T,C,z,q){var he=Uu(),le=xo(12),pe=0;C&&(pe=eg(C)),o()[le>>2]=pe,o()[le+4>>2]=z,o()[le+8>>2]=q,Pg(0,T,657457152,0,pe,le),bo(he)}function ng(T,C,z,q){C=C?_e(C):"",tg(T,C,z,q)}function ag(T){return T>2?_e(T):T}var rg=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function sg(T){T=ag(T);var C=rg[T]||(typeof document!="undefined"?document.querySelector(T):void 0);return C}function Lu(T){return sg(T)}function Vp(T,C,z){var q=Lu(T);if(!q)return-4;if(q.canvasSharedPtr&&(o()[q.canvasSharedPtr>>2]=C,o()[q.canvasSharedPtr+4>>2]=z),q.offscreenCanvas||!q.controlTransferredOffscreen){q.offscreenCanvas&&(q=q.offscreenCanvas);var he=!1;if(q.GLctxObject&&q.GLctxObject.GLctx){var le=q.GLctxObject.GLctx.getParameter(2978);he=le[0]===0&&le[1]===0&&le[2]===q.width&&le[3]===q.height}q.width=C,q.height=z,he&&q.GLctxObject.GLctx.viewport(0,0,C,z)}else if(q.canvasSharedPtr){var pe=o()[q.canvasSharedPtr+8>>2];return ng(pe,T,C,z),1}else return-4;return 0}function Up(T,C,z){return w?Rr(2,1,T,C,z):Vp(T,C,z)}function ig(T,C,z){var q=Lu(T);return q?Vp(T,C,z):Up(T,C,z)}function og(T){}function lg(T,C){}function ug(T){var C=T.getExtension("ANGLE_instanced_arrays");if(C)return T.vertexAttribDivisor=function(z,q){C.vertexAttribDivisorANGLE(z,q)},T.drawArraysInstanced=function(z,q,he,le){C.drawArraysInstancedANGLE(z,q,he,le)},T.drawElementsInstanced=function(z,q,he,le,pe){C.drawElementsInstancedANGLE(z,q,he,le,pe)},1}function cg(T){var C=T.getExtension("OES_vertex_array_object");if(C)return T.createVertexArray=function(){return C.createVertexArrayOES()},T.deleteVertexArray=function(z){C.deleteVertexArrayOES(z)},T.bindVertexArray=function(z){C.bindVertexArrayOES(z)},T.isVertexArray=function(z){return C.isVertexArrayOES(z)},1}function pg(T){var C=T.getExtension("WEBGL_draw_buffers");if(C)return T.drawBuffers=function(z,q){C.drawBuffersWEBGL(z,q)},1}function dg(T){return!!(T.multiDrawWebgl=T.getExtension("WEBGL_multi_draw"))}var et={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,recordError:function(T){et.lastError||(et.lastError=T)},getNewId:function(T){for(var C=et.counter++,z=T.length;z>2]:-1;he+=_e(o()[z+le*4>>2],pe<0?void 0:pe)}return he},createContext:function(T,C){var z=T.getContext("webgl",C);if(!z)return 0;var q=et.registerContext(z,C);return q},registerContext:function(T,C){var z=ws(8);o()[z+4>>2]=yo();var q={handle:z,attributes:C,version:C.majorVersion,GLctx:T};return T.canvas&&(T.canvas.GLctxObject=q),et.contexts[z]=q,(typeof C.enableExtensionsByDefault=="undefined"||C.enableExtensionsByDefault)&&et.initExtensions(q),z},makeContextCurrent:function(T){return et.currentContext=et.contexts[T],c.ctx=Pr=et.currentContext&&et.currentContext.GLctx,!(T&&!Pr)},getContext:function(T){return et.contexts[T]},deleteContext:function(T){et.currentContext===et.contexts[T]&&(et.currentContext=null),typeof Pe=="object"&&Pe.removeAllHandlersOnTarget(et.contexts[T].GLctx.canvas),et.contexts[T]&&et.contexts[T].GLctx.canvas&&(et.contexts[T].GLctx.canvas.GLctxObject=void 0),Vu(et.contexts[T].handle),et.contexts[T]=null},initExtensions:function(T){if(T||(T=et.currentContext),!T.initExtensionsDone){T.initExtensionsDone=!0;var C=T.GLctx;ug(C),cg(C),pg(C),C.disjointTimerQueryExt=C.getExtension("EXT_disjoint_timer_query"),dg(C);var z=C.getSupportedExtensions()||[];z.forEach(function(q){q.indexOf("lose_context")<0&&q.indexOf("debug")<0&&C.getExtension(q)})}},populateUniformTable:function(T){for(var C=et.programs[T],z=et.programInfos[T]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1},q=z.uniforms,he=Pr.getProgramParameter(C,35718),le=0;le>2,q=o()[z+(24>>2)],he={alpha:!!o()[z+(0>>2)],depth:!!o()[z+(4>>2)],stencil:!!o()[z+(8>>2)],antialias:!!o()[z+(12>>2)],premultipliedAlpha:!!o()[z+(16>>2)],preserveDrawingBuffer:!!o()[z+(20>>2)],powerPreference:hg[q],failIfMajorPerformanceCaveat:!!o()[z+(28>>2)],majorVersion:o()[z+(32>>2)],minorVersion:o()[z+(36>>2)],enableExtensionsByDefault:o()[z+(40>>2)],explicitSwapControl:o()[z+(44>>2)],proxyContextToMainThread:o()[z+(48>>2)],renderViaOffscreenBackBuffer:o()[z+(52>>2)]},le=Lu(T);if(!le||he.explicitSwapControl)return 0;var pe=et.createContext(le,he);return pe}function fg(T,C){return mg(T,C)}var fo={mappings:{},buffers:[null,[],[]],printChar:function(T,C){var z=fo.buffers[T];C===0||C===10?((T===1?X:j)(Me(z,0)),z.length=0):z.push(C)},varargs:void 0,get:function(){fo.varargs+=4;var T=o()[fo.varargs-4>>2];return T},getStr:function(T){var C=_e(T);return C},get64:function(T,C){return T}};function Gp(T){return w?Rr(3,1,T):0}function Hp(T,C,z,q,he){if(w)return Rr(4,1,T,C,z,q,he)}function jp(T,C,z,q){if(w)return Rr(5,1,T,C,z,q);for(var he=0,le=0;le>2],be=o()[C+(le*8+4)>>2],rt=0;rt>2]=he,0}function gg(T){var C=ke.threadExitHandlers.pop();T&&C()}function yg(T,C){ke.threadExitHandlers.push(function(){sa.get(T)(C)})}function qp(T){if(w)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var C=ke.getNewWorker();if(C.pthread!==void 0)throw"Internal error!";if(!T.pthread_ptr)throw"Internal error, no pthread ptr!";ke.runningWorkers.push(C);for(var z=ws(128*4),q=0;q<128;++q)o()[z+q*4>>2]=0;var he=T.stackBase+T.stackSize,le=ke.pthreads[T.pthread_ptr]={worker:C,stackBase:T.stackBase,stackSize:T.stackSize,allocatedOwnStack:T.allocatedOwnStack,threadInfoStruct:T.pthread_ptr},pe=le.threadInfoStruct>>2;Atomics.store(l(),pe+(64>>2),T.detached),Atomics.store(l(),pe+(100>>2),z),Atomics.store(l(),pe+(40>>2),le.threadInfoStruct),Atomics.store(l(),pe+(80>>2),T.stackSize),Atomics.store(l(),pe+(76>>2),he),Atomics.store(l(),pe+(104>>2),T.stackSize),Atomics.store(l(),pe+(104+8>>2),he),Atomics.store(l(),pe+(104+12>>2),T.detached);var be=Dw(),rt=be+40;Atomics.store(l(),pe+(172>>2),rt),C.pthread=le;var Gt={cmd:"run",start_routine:T.startRoutine,arg:T.arg,threadInfoStruct:T.pthread_ptr,stackBase:T.stackBase,stackSize:T.stackSize};C.runPthread=function(){Gt.time=performance.now(),C.postMessage(Gt,T.transferList)},C.loaded&&(C.runPthread(),delete C.runPthread)}function bg(T,C,z,q){if(typeof SharedArrayBuffer=="undefined")return j("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;if(!T)return j("pthread_create called with a null thread pointer!"),28;var he=[],le=0;if(w&&(he.length===0||le))return Ow(687865856,T,C,z,q);if(le)return le;var pe=0,be=0,rt=0;C&&C!=-1?(pe=o()[C>>2],pe+=81920,be=o()[C+8>>2],rt=o()[C+12>>2]!==0):pe=2097152;var Gt=be==0;Gt?be=Ww(16,pe):(be-=pe,fe(be>0));for(var Pt=ws(228),Lr=0;Lr<228>>2;++Lr)l()[(Pt>>2)+Lr]=0;o()[T>>2]=Pt,o()[Pt+12>>2]=Pt;var wo=Pt+152;o()[wo>>2]=wo;var Nn={stackBase:be,stackSize:pe,allocatedOwnStack:Gt,detached:rt,startRoutine:z,pthread_ptr:Pt,arg:q,transferList:he};return w?(Nn.cmd="spawnThread",postMessage(Nn,he)):qp(Nn),0}function Xp(T){if(w)return Rr(6,1,T);switch(T){case 30:return 16384;case 85:var C=2147483648;return C/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return Wf(28),-1}w||ke.initMainThreadBlock();var Pr,xg=[null,Bf,Up,Gp,Hp,jp,Xp],vg={e:Lf,r:zf,x:Vf,b:Uf,y:Gf,j:Hf,c:jf,d:mo,f:vs,p:qf,z:Xf,u:Yf,q:Zf,v:ig,i:og,t:lg,w:fg,m:Gp,n:Hp,g:jp,o:Ef,a:ee||c.wasmMemory,k:gg,l:yg,h:bg,s:Xp},Ew=_f(),Kp=c.___wasm_call_ctors=function(){return(Kp=c.___wasm_call_ctors=c.asm.A).apply(null,arguments)},wg=c._init=function(){return(wg=c._init=c.asm.B).apply(null,arguments)},kg=c._register_tensor=function(){return(kg=c._register_tensor=c.asm.C).apply(null,arguments)},Ig=c._dispose_data=function(){return(Ig=c._dispose_data=c.asm.D).apply(null,arguments)},Ng=c._dispose=function(){return(Ng=c._dispose=c.asm.E).apply(null,arguments)},Tg=c._Abs=function(){return(Tg=c._Abs=c.asm.G).apply(null,arguments)},Sg=c._Add=function(){return(Sg=c._Add=c.asm.H).apply(null,arguments)},Cg=c._AddN=function(){return(Cg=c._AddN=c.asm.I).apply(null,arguments)},Ag=c._ArgMax=function(){return(Ag=c._ArgMax=c.asm.J).apply(null,arguments)},Fg=c._AvgPool=function(){return(Fg=c._AvgPool=c.asm.K).apply(null,arguments)},_g=c._BatchMatMul=function(){return(_g=c._BatchMatMul=c.asm.L).apply(null,arguments)},Eg=c._Ceil=function(){return(Eg=c._Ceil=c.asm.M).apply(null,arguments)},$g=c._ClipByValue=function(){return($g=c._ClipByValue=c.asm.N).apply(null,arguments)},Dg=c._Conv2D=function(){return(Dg=c._Conv2D=c.asm.O).apply(null,arguments)},Yp=c._Conv2DBackpropInput=function(){return(Yp=c._Conv2DBackpropInput=c.asm.P).apply(null,arguments)},Jp=c._Cos=function(){return(Jp=c._Cos=c.asm.Q).apply(null,arguments)},zu=c._CropAndResize=function(){return(zu=c._CropAndResize=c.asm.R).apply(null,arguments)},go=c._Cumsum=function(){return(go=c._Cumsum=c.asm.S).apply(null,arguments)},Mg=c._DepthToSpace=function(){return(Mg=c._DepthToSpace=c.asm.T).apply(null,arguments)},Wu=c._DepthwiseConv2dNative=function(){return(Wu=c._DepthwiseConv2dNative=c.asm.U).apply(null,arguments)},K=c._Equal=function(){return(K=c._Equal=c.asm.V).apply(null,arguments)},ae=c._Exp=function(){return(ae=c._Exp=c.asm.W).apply(null,arguments)},Te=c._FlipLeftRight=function(){return(Te=c._FlipLeftRight=c.asm.X).apply(null,arguments)},Ye=c._Floor=function(){return(Ye=c._Floor=c.asm.Y).apply(null,arguments)},Ft=c._FloorDiv=function(){return(Ft=c._FloorDiv=c.asm.Z).apply(null,arguments)},bt=c._FusedBatchNorm=function(){return(bt=c._FusedBatchNorm=c.asm._).apply(null,arguments)},Ue=c._FusedConv2D=function(){return(Ue=c._FusedConv2D=c.asm.$).apply(null,arguments)},He=c._FusedDepthwiseConv2D=function(){return(He=c._FusedDepthwiseConv2D=c.asm.aa).apply(null,arguments)},nn=c._Gather=function(){return(nn=c._Gather=c.asm.ba).apply(null,arguments)},pr=c._GatherNd=function(){return(pr=c._GatherNd=c.asm.ca).apply(null,arguments)},dr=c._Greater=function(){return(dr=c._Greater=c.asm.da).apply(null,arguments)},Qp=c._GreaterEqual=function(){return(Qp=c._GreaterEqual=c.asm.ea).apply(null,arguments)},Bu=c._LeakyRelu=function(){return(Bu=c._LeakyRelu=c.asm.fa).apply(null,arguments)},Kn=c._Less=function(){return(Kn=c._Less=c.asm.ga).apply(null,arguments)},Or=c._LessEqual=function(){return(Or=c._LessEqual=c.asm.ha).apply(null,arguments)},Zp=c._Log=function(){return(Zp=c._Log=c.asm.ia).apply(null,arguments)},OC=c._LogicalAnd=function(){return(OC=c._LogicalAnd=c.asm.ja).apply(null,arguments)},LC=c._Max=function(){return(LC=c._Max=c.asm.ka).apply(null,arguments)},zC=c._MaxPool=function(){return(zC=c._MaxPool=c.asm.la).apply(null,arguments)},WC=c._Maximum=function(){return(WC=c._Maximum=c.asm.ma).apply(null,arguments)},BC=c._Mean=function(){return(BC=c._Mean=c.asm.na).apply(null,arguments)},VC=c._Min=function(){return(VC=c._Min=c.asm.oa).apply(null,arguments)},UC=c._Minimum=function(){return(UC=c._Minimum=c.asm.pa).apply(null,arguments)},GC=c._Multiply=function(){return(GC=c._Multiply=c.asm.qa).apply(null,arguments)},HC=c._Neg=function(){return(HC=c._Neg=c.asm.ra).apply(null,arguments)},jC=c._NonMaxSuppressionV3=function(){return(jC=c._NonMaxSuppressionV3=c.asm.sa).apply(null,arguments)},qC=c._NonMaxSuppressionV4=function(){return(qC=c._NonMaxSuppressionV4=c.asm.ta).apply(null,arguments)},XC=c._NonMaxSuppressionV5=function(){return(XC=c._NonMaxSuppressionV5=c.asm.ua).apply(null,arguments)},KC=c._NotEqual=function(){return(KC=c._NotEqual=c.asm.va).apply(null,arguments)},YC=c._OneHot=function(){return(YC=c._OneHot=c.asm.wa).apply(null,arguments)},JC=c._PadV2=function(){return(JC=c._PadV2=c.asm.xa).apply(null,arguments)},QC=c._Pow=function(){return(QC=c._Pow=c.asm.ya).apply(null,arguments)},ZC=c._Prelu=function(){return(ZC=c._Prelu=c.asm.za).apply(null,arguments)},eA=c._Prod=function(){return(eA=c._Prod=c.asm.Aa).apply(null,arguments)},tA=c._RealDiv=function(){return(tA=c._RealDiv=c.asm.Ba).apply(null,arguments)},nA=c._Relu=function(){return(nA=c._Relu=c.asm.Ca).apply(null,arguments)},aA=c._Relu6=function(){return(aA=c._Relu6=c.asm.Da).apply(null,arguments)},rA=c._ResizeBilinear=function(){return(rA=c._ResizeBilinear=c.asm.Ea).apply(null,arguments)},sA=c._Reverse=function(){return(sA=c._Reverse=c.asm.Fa).apply(null,arguments)},iA=c._RotateWithOffset=function(){return(iA=c._RotateWithOffset=c.asm.Ga).apply(null,arguments)},oA=c._Round=function(){return(oA=c._Round=c.asm.Ha).apply(null,arguments)},lA=c._Rsqrt=function(){return(lA=c._Rsqrt=c.asm.Ia).apply(null,arguments)},uA=c._ScatterNd=function(){return(uA=c._ScatterNd=c.asm.Ja).apply(null,arguments)},cA=c._SelectV2=function(){return(cA=c._SelectV2=c.asm.Ka).apply(null,arguments)},pA=c._Sigmoid=function(){return(pA=c._Sigmoid=c.asm.La).apply(null,arguments)},dA=c._Sin=function(){return(dA=c._Sin=c.asm.Ma).apply(null,arguments)},hA=c._Softmax=function(){return(hA=c._Softmax=c.asm.Na).apply(null,arguments)},mA=c._Sqrt=function(){return(mA=c._Sqrt=c.asm.Oa).apply(null,arguments)},fA=c._Square=function(){return(fA=c._Square=c.asm.Pa).apply(null,arguments)},gA=c._SquaredDifference=function(){return(gA=c._SquaredDifference=c.asm.Qa).apply(null,arguments)},yA=c._Step=function(){return(yA=c._Step=c.asm.Ra).apply(null,arguments)},bA=c._StridedSlice=function(){return(bA=c._StridedSlice=c.asm.Sa).apply(null,arguments)},xA=c._Sub=function(){return(xA=c._Sub=c.asm.Ta).apply(null,arguments)},vA=c._Sum=function(){return(vA=c._Sum=c.asm.Ua).apply(null,arguments)},wA=c._Tanh=function(){return(wA=c._Tanh=c.asm.Va).apply(null,arguments)},kA=c._Tile=function(){return(kA=c._Tile=c.asm.Wa).apply(null,arguments)},IA=c._TopK=function(){return(IA=c._TopK=c.asm.Xa).apply(null,arguments)},NA=c._Transpose=function(){return(NA=c._Transpose=c.asm.Ya).apply(null,arguments)},TA=c.__FusedMatMul=function(){return(TA=c.__FusedMatMul=c.asm.Za).apply(null,arguments)},ws=c._malloc=function(){return(ws=c._malloc=c.asm._a).apply(null,arguments)},Vu=c._free=function(){return(Vu=c._free=c.asm.$a).apply(null,arguments)},$w=c.___errno_location=function(){return($w=c.___errno_location=c.asm.ab).apply(null,arguments)},Dw=c._emscripten_get_global_libc=function(){return(Dw=c._emscripten_get_global_libc=c.asm.bb).apply(null,arguments)},yo=c._pthread_self=function(){return(yo=c._pthread_self=c.asm.cb).apply(null,arguments)},Mw=c.___pthread_tsd_run_dtors=function(){return(Mw=c.___pthread_tsd_run_dtors=c.asm.db).apply(null,arguments)},Rg=c._emscripten_main_thread_process_queued_calls=function(){return(Rg=c._emscripten_main_thread_process_queued_calls=c.asm.eb).apply(null,arguments)},SA=c._emscripten_current_thread_process_queued_calls=function(){return(SA=c._emscripten_current_thread_process_queued_calls=c.asm.fb).apply(null,arguments)},Rw=c._emscripten_register_main_browser_thread_id=function(){return(Rw=c._emscripten_register_main_browser_thread_id=c.asm.gb).apply(null,arguments)},Pw=c.__emscripten_do_dispatch_to_thread=function(){return(Pw=c.__emscripten_do_dispatch_to_thread=c.asm.hb).apply(null,arguments)},Ow=c._emscripten_sync_run_in_main_thread_4=function(){return(Ow=c._emscripten_sync_run_in_main_thread_4=c.asm.ib).apply(null,arguments)},Lw=c._emscripten_run_in_main_runtime_thread_js=function(){return(Lw=c._emscripten_run_in_main_runtime_thread_js=c.asm.jb).apply(null,arguments)},Pg=c.__emscripten_call_on_thread=function(){return(Pg=c.__emscripten_call_on_thread=c.asm.kb).apply(null,arguments)},CA=c._emscripten_tls_init=function(){return(CA=c._emscripten_tls_init=c.asm.lb).apply(null,arguments)},ed=c.__emscripten_thread_init=function(){return(ed=c.__emscripten_thread_init=c.asm.mb).apply(null,arguments)},Uu=c.stackSave=function(){return(Uu=c.stackSave=c.asm.nb).apply(null,arguments)},bo=c.stackRestore=function(){return(bo=c.stackRestore=c.asm.ob).apply(null,arguments)},xo=c.stackAlloc=function(){return(xo=c.stackAlloc=c.asm.pb).apply(null,arguments)},zw=c._emscripten_stack_set_limits=function(){return(zw=c._emscripten_stack_set_limits=c.asm.qb).apply(null,arguments)},Ww=c._memalign=function(){return(Ww=c._memalign=c.asm.rb).apply(null,arguments)},Bw=c.__emscripten_allow_main_runtime_queued_calls=9880,vo=c.__emscripten_main_thread_futex=11368;c.cwrap=Ae,c.PThread=ke,c.PThread=ke,c.wasmMemory=ee,c.ExitStatus=Gu;var td;function Gu(T){this.name="ExitStatus",this.message="Program terminated with exit("+T+")",this.status=T}xs=function T(){td||Og(),td||(xs=T)};function Og(T){if(T=T||f,ur>0)return;if(w){p(c),postMessage({cmd:"loaded"});return}if(If(),ur>0)return;function C(){td||(td=!0,c.calledRun=!0,!oe&&(Mp(),Nf(),p(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),kn()))}c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1),C()},1)):C()}c.run=Og;function AA(T,C){if(!(C&&ie&&T===0)){if(!C&&w)throw postMessage({cmd:"exitProcess",returnCode:T}),new Gu(T);ie||(ke.terminateAllThreads(),ge=T,Rp(),c.onExit&&c.onExit(T),oe=!0),y(T,new Gu(T))}}if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();return w&&(ie=!1,ke.initWorker()),Og(),r.ready}}();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModuleThreadedSimd=n)}),bF=tt((e,t)=>{var n=function(){var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};var s=typeof r!="undefined"?r:{},i,o;s.ready=new Promise(function(K,ae){i=K,o=ae});var l={},u;for(u in s)s.hasOwnProperty(u)&&(l[u]=s[u]);var c=[],p="./this.program",d=function(K,ae){throw ae},h=!1,m=!1,f=!1,g=!1;h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g=!h&&!f&&!m;var y="";function b(K){return s.locateFile?s.locateFile(K,y):y+K}var x,v,k,w,S,A;f?(m?y=Hu().dirname(y)+"/":y=__dirname+"/",x=function(K,ae){return S||(S=require("fs")),A||(A=Hu()),K=A.normalize(K),S.readFileSync(K,ae?null:"utf8")},k=function(K){var ae=x(K,!0);return ae.buffer||(ae=new Uint8Array(ae)),X(ae.buffer),ae},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),c=process.argv.slice(2),process.on("uncaughtException",function(K){if(!(K instanceof Mg))throw K}),process.on("unhandledRejection",ka),d=function(K){process.exit(K)},s.inspect=function(){return"[Emscripten Module object]"}):g?(typeof read!="undefined"&&(x=function(K){return read(K)}),k=function(K){var ae;return typeof readbuffer=="function"?new Uint8Array(readbuffer(K)):(ae=read(K,"binary"),X(typeof ae=="object"),ae)},typeof scriptArgs!="undefined"?c=scriptArgs:typeof arguments!="undefined"&&(c=arguments),typeof quit=="function"&&(d=function(K){quit(K)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(h||m)&&(m?y=self.location.href:typeof document!="undefined"&&document.currentScript&&(y=document.currentScript.src),a&&(y=a),y.indexOf("blob:")!==0?y=y.substr(0,y.lastIndexOf("/")+1):y="",x=function(K){var ae=new XMLHttpRequest;return ae.open("GET",K,!1),ae.send(null),ae.responseText},m&&(k=function(K){var ae=new XMLHttpRequest;return ae.open("GET",K,!1),ae.responseType="arraybuffer",ae.send(null),new Uint8Array(ae.response)}),v=function(K,ae,Te){var Ye=new XMLHttpRequest;Ye.open("GET",K,!0),Ye.responseType="arraybuffer",Ye.onload=function(){if(Ye.status==200||Ye.status==0&&Ye.response){ae(Ye.response);return}Te()},Ye.onerror=Te,Ye.send(null)},w=function(K){document.title=K});var F=s.print||console.log.bind(console),D=s.printErr||console.warn.bind(console);for(u in l)l.hasOwnProperty(u)&&(s[u]=l[u]);l=null,s.arguments&&(c=s.arguments),s.thisProgram&&(p=s.thisProgram),s.quit&&(d=s.quit);var R;s.wasmBinary&&(R=s.wasmBinary);var L=s.noExitRuntime||!0;typeof WebAssembly!="object"&&ka("no native wasm support detected");var W,U=!1,G;function X(K,ae){K||ka("Assertion failed: "+ae)}function j(K){var ae=s["_"+K];return X(ae,"Cannot call unknown function "+K+", make sure it is exported"),ae}function te(K,ae,Te,Ye,Ft){var bt={string:function(Kn){var Or=0;if(Kn!=null&&Kn!==0){var Zp=(Kn.length<<2)+1;Or=zu(Zp),de(Kn,Or,Zp)}return Or},array:function(Kn){var Or=zu(Kn.length);return oe(Kn,Or),Or}};function Ue(Kn){return ae==="string"?ie(Kn):ae==="boolean"?Boolean(Kn):Kn}var He=j(K),nn=[],pr=0;if(Ye)for(var dr=0;dr=Ye);)++Ft;if(Ft-ae>16&&K.subarray&&se)return se.decode(K.subarray(ae,Ft));for(var bt="";ae>10,56320|pr&1023)}}return bt}function ie(K,ae){return K?ne(Ne,K,ae):""}function ee(K,ae,Te,Ye){if(!(Ye>0))return 0;for(var Ft=Te,bt=Te+Ye-1,Ue=0;Ue=55296&&He<=57343){var nn=K.charCodeAt(++Ue);He=65536+((He&1023)<<10)|nn&1023}if(He<=127){if(Te>=bt)break;ae[Te++]=He}else if(He<=2047){if(Te+1>=bt)break;ae[Te++]=192|He>>6,ae[Te++]=128|He&63}else if(He<=65535){if(Te+2>=bt)break;ae[Te++]=224|He>>12,ae[Te++]=128|He>>6&63,ae[Te++]=128|He&63}else{if(Te+3>=bt)break;ae[Te++]=240|He>>18,ae[Te++]=128|He>>12&63,ae[Te++]=128|He>>6&63,ae[Te++]=128|He&63}}return ae[Te]=0,Te-Ft}function de(K,ae,Te){return ee(K,Ne,ae,Te)}function oe(K,ae){we.set(K,ae)}function ge(K,ae){return K%ae>0&&(K+=ae-K%ae),K}var fe,we,Ne,Ae,Me,_e,nt,at,ot;function Ke(K){fe=K,s.HEAP8=we=new Int8Array(K),s.HEAP16=Ae=new Int16Array(K),s.HEAP32=_e=new Int32Array(K),s.HEAPU8=Ne=new Uint8Array(K),s.HEAPU16=Me=new Uint16Array(K),s.HEAPU32=nt=new Uint32Array(K),s.HEAPF32=at=new Float32Array(K),s.HEAPF64=ot=new Float64Array(K)}var ft=s.INITIAL_MEMORY||16777216,We,vn=[],Nt=[],qn=[],en=[],wn=!1;Nt.push({func:function(){Wp()}});function Xn(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)Wa(s.preRun.shift());Mr(vn)}function Mn(){wn=!0,Mr(Nt)}function cn(){Mr(qn)}function tn(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)sa(s.postRun.shift());Mr(en)}function Wa(K){vn.unshift(K)}function sa(K){en.unshift(K)}var ia=0,$r=null,lr=null;function Dr(K){ia++,s.monitorRunDependencies&&s.monitorRunDependencies(ia)}function co(K){if(ia--,s.monitorRunDependencies&&s.monitorRunDependencies(ia),ia==0&&($r!==null&&(clearInterval($r),$r=null),lr)){var ae=lr;lr=null,ae()}}s.preloadedImages={},s.preloadedAudios={};function ka(K){s.onAbort&&s.onAbort(K),K+="",D(K),U=!0,G=1,K="abort("+K+"). Build with -s ASSERTIONS=1 for more info.";var ae=new WebAssembly.RuntimeError(K);throw o(ae),ae}function Dp(K,ae){return String.prototype.startsWith?K.startsWith(ae):K.indexOf(ae)===0}var If="data:application/octet-stream;base64,";function Mp(K){return Dp(K,If)}var Nf="file://";function Rp(K){return Dp(K,Nf)}var kn="tfjs-backend-wasm.wasm";Mp(kn)||(kn=b(kn));function Pp(K){try{if(K==kn&&R)return new Uint8Array(R);if(k)return k(K);throw"both async and sync fetching of the wasm failed"}catch(ae){ka(ae)}}function Tf(){if(!R&&(h||m)){if(typeof fetch=="function"&&!Rp(kn))return fetch(kn,{credentials:"same-origin"}).then(function(K){if(!K.ok)throw"failed to load wasm binary file at '"+kn+"'";return K.arrayBuffer()}).catch(function(){return Pp(kn)});if(v)return new Promise(function(K,ae){v(kn,function(Te){K(new Uint8Array(Te))},ae)})}return Promise.resolve().then(function(){return Pp(kn)})}function ur(){var K={a:In};function ae(Ue,He){var nn=Ue.exports;s.asm=nn,W=s.asm.g,Ke(W.buffer),We=s.asm.m,co("wasm-instantiate")}Dr("wasm-instantiate");function Te(Ue){ae(Ue.instance)}function Ye(Ue){return Tf().then(function(He){return WebAssembly.instantiate(He,K)}).then(Ue,function(He){D("failed to asynchronously prepare wasm: "+He),ka(He)})}function Ft(){return!R&&typeof WebAssembly.instantiateStreaming=="function"&&!Mp(kn)&&!Rp(kn)&&typeof fetch=="function"?fetch(kn,{credentials:"same-origin"}).then(function(Ue){var He=WebAssembly.instantiateStreaming(Ue,K);return He.then(Te,function(nn){return D("wasm streaming compile failed: "+nn),D("falling back to ArrayBuffer instantiation"),Ye(Te)})}):Ye(Te)}if(s.instantiateWasm)try{var bt=s.instantiateWasm(K,ae);return bt}catch(Ue){return D("Module.instantiateWasm callback failed with error: "+Ue),!1}return Ft().catch(o),{}}function Mr(K){for(;K.length>0;){var ae=K.shift();if(typeof ae=="function"){ae(s);continue}var Te=ae.func;typeof Te=="number"?ae.arg===void 0?We.get(Te)():We.get(Te)(ae.arg):Te(ae.arg===void 0?null:ae.arg)}}function xs(){ka()}function Sf(K,ae,Te){Ne.copyWithin(K,ae,ae+Te)}function Cf(){return Ne.length}function cr(K){try{return W.grow(K-fe.byteLength+65535>>>16),Ke(W.buffer),1}catch(ae){}}function Op(K){var ae=Cf(),Te=2147483648;if(K>Te)return!1;for(var Ye=1;Ye<=4;Ye*=2){var Ft=ae*(1+.2/Ye);Ft=Math.min(Ft,K+100663296);var bt=Math.min(Te,ge(Math.max(K,Ft),65536)),Ue=cr(bt);if(Ue)return!0}return!1}var po={mappings:{},buffers:[null,[],[]],printChar:function(K,ae){var Te=po.buffers[K];ae===0||ae===10?((K===1?F:D)(ne(Te,0)),Te.length=0):Te.push(ae)},varargs:void 0,get:function(){po.varargs+=4;var K=_e[po.varargs-4>>2];return K},getStr:function(K){var ae=ie(K);return ae},get64:function(K,ae){return K}};function Lp(K){return 0}function Af(K,ae,Te,Ye,Ft){}function zp(K,ae,Te,Ye){for(var Ft=0,bt=0;bt>2],He=_e[ae+(bt*8+4)>>2],nn=0;nn>2]=Ft,0}var In={a:xs,d:Sf,e:Op,f:Lp,c:Af,b:zp},Ff=ur(),Wp=s.___wasm_call_ctors=function(){return(Wp=s.___wasm_call_ctors=s.asm.h).apply(null,arguments)},_f=s._init=function(){return(_f=s._init=s.asm.i).apply(null,arguments)},Bp=s._register_tensor=function(){return(Bp=s._register_tensor=s.asm.j).apply(null,arguments)},Ef=s._dispose_data=function(){return(Ef=s._dispose_data=s.asm.k).apply(null,arguments)},ho=s._dispose=function(){return(ho=s._dispose=s.asm.l).apply(null,arguments)},mo=s._Abs=function(){return(mo=s._Abs=s.asm.n).apply(null,arguments)},$f=s._Add=function(){return($f=s._Add=s.asm.o).apply(null,arguments)},Df=s._AddN=function(){return(Df=s._AddN=s.asm.p).apply(null,arguments)},Mf=s._ArgMax=function(){return(Mf=s._ArgMax=s.asm.q).apply(null,arguments)},ke=s._AvgPool=function(){return(ke=s._AvgPool=s.asm.r).apply(null,arguments)},Rf=s._BatchMatMul=function(){return(Rf=s._BatchMatMul=s.asm.s).apply(null,arguments)},Pf=s._Ceil=function(){return(Pf=s._Ceil=s.asm.t).apply(null,arguments)},Of=s._ClipByValue=function(){return(Of=s._ClipByValue=s.asm.u).apply(null,arguments)},Lf=s._Conv2D=function(){return(Lf=s._Conv2D=s.asm.v).apply(null,arguments)},zf=s._Conv2DBackpropInput=function(){return(zf=s._Conv2DBackpropInput=s.asm.w).apply(null,arguments)},vs=s._Cos=function(){return(vs=s._Cos=s.asm.x).apply(null,arguments)},Wf=s._CropAndResize=function(){return(Wf=s._CropAndResize=s.asm.y).apply(null,arguments)},Bf=s._Cumsum=function(){return(Bf=s._Cumsum=s.asm.z).apply(null,arguments)},Vf=s._DepthToSpace=function(){return(Vf=s._DepthToSpace=s.asm.A).apply(null,arguments)},Uf=s._DepthwiseConv2dNative=function(){return(Uf=s._DepthwiseConv2dNative=s.asm.B).apply(null,arguments)},Gf=s._Equal=function(){return(Gf=s._Equal=s.asm.C).apply(null,arguments)},Hf=s._Exp=function(){return(Hf=s._Exp=s.asm.D).apply(null,arguments)},jf=s._FlipLeftRight=function(){return(jf=s._FlipLeftRight=s.asm.E).apply(null,arguments)},qf=s._Floor=function(){return(qf=s._Floor=s.asm.F).apply(null,arguments)},Xf=s._FloorDiv=function(){return(Xf=s._FloorDiv=s.asm.G).apply(null,arguments)},Rr=s._FusedBatchNorm=function(){return(Rr=s._FusedBatchNorm=s.asm.H).apply(null,arguments)},Pu=s._FusedConv2D=function(){return(Pu=s._FusedConv2D=s.asm.I).apply(null,arguments)},Ou=s._FusedDepthwiseConv2D=function(){return(Ou=s._FusedDepthwiseConv2D=s.asm.J).apply(null,arguments)},Kf=s._Gather=function(){return(Kf=s._Gather=s.asm.K).apply(null,arguments)},Yf=s._GatherNd=function(){return(Yf=s._GatherNd=s.asm.L).apply(null,arguments)},Jf=s._Greater=function(){return(Jf=s._Greater=s.asm.M).apply(null,arguments)},Qf=s._GreaterEqual=function(){return(Qf=s._GreaterEqual=s.asm.N).apply(null,arguments)},Zf=s._LeakyRelu=function(){return(Zf=s._LeakyRelu=s.asm.O).apply(null,arguments)},Pe=s._Less=function(){return(Pe=s._Less=s.asm.P).apply(null,arguments)},eg=s._LessEqual=function(){return(eg=s._LessEqual=s.asm.Q).apply(null,arguments)},tg=s._Log=function(){return(tg=s._Log=s.asm.R).apply(null,arguments)},ng=s._LogicalAnd=function(){return(ng=s._LogicalAnd=s.asm.S).apply(null,arguments)},ag=s._Max=function(){return(ag=s._Max=s.asm.T).apply(null,arguments)},rg=s._MaxPool=function(){return(rg=s._MaxPool=s.asm.U).apply(null,arguments)},sg=s._Maximum=function(){return(sg=s._Maximum=s.asm.V).apply(null,arguments)},Lu=s._Mean=function(){return(Lu=s._Mean=s.asm.W).apply(null,arguments)},Vp=s._Min=function(){return(Vp=s._Min=s.asm.X).apply(null,arguments)},Up=s._Minimum=function(){return(Up=s._Minimum=s.asm.Y).apply(null,arguments)},ig=s._Multiply=function(){return(ig=s._Multiply=s.asm.Z).apply(null,arguments)},og=s._Neg=function(){return(og=s._Neg=s.asm._).apply(null,arguments)},lg=s._NonMaxSuppressionV3=function(){return(lg=s._NonMaxSuppressionV3=s.asm.$).apply(null,arguments)},ug=s._NonMaxSuppressionV4=function(){return(ug=s._NonMaxSuppressionV4=s.asm.aa).apply(null,arguments)},cg=s._NonMaxSuppressionV5=function(){return(cg=s._NonMaxSuppressionV5=s.asm.ba).apply(null,arguments)},pg=s._NotEqual=function(){return(pg=s._NotEqual=s.asm.ca).apply(null,arguments)},dg=s._OneHot=function(){return(dg=s._OneHot=s.asm.da).apply(null,arguments)},et=s._PadV2=function(){return(et=s._PadV2=s.asm.ea).apply(null,arguments)},hg=s._Pow=function(){return(hg=s._Pow=s.asm.fa).apply(null,arguments)},mg=s._Prelu=function(){return(mg=s._Prelu=s.asm.ga).apply(null,arguments)},fg=s._Prod=function(){return(fg=s._Prod=s.asm.ha).apply(null,arguments)},fo=s._RealDiv=function(){return(fo=s._RealDiv=s.asm.ia).apply(null,arguments)},Gp=s._Relu=function(){return(Gp=s._Relu=s.asm.ja).apply(null,arguments)},Hp=s._Relu6=function(){return(Hp=s._Relu6=s.asm.ka).apply(null,arguments)},jp=s._ResizeBilinear=function(){return(jp=s._ResizeBilinear=s.asm.la).apply(null,arguments)},gg=s._Reverse=function(){return(gg=s._Reverse=s.asm.ma).apply(null,arguments)},yg=s._RotateWithOffset=function(){return(yg=s._RotateWithOffset=s.asm.na).apply(null,arguments)},qp=s._Round=function(){return(qp=s._Round=s.asm.oa).apply(null,arguments)},bg=s._Rsqrt=function(){return(bg=s._Rsqrt=s.asm.pa).apply(null,arguments)},Xp=s._ScatterNd=function(){return(Xp=s._ScatterNd=s.asm.qa).apply(null,arguments)},Pr=s._SelectV2=function(){return(Pr=s._SelectV2=s.asm.ra).apply(null,arguments)},xg=s._Sigmoid=function(){return(xg=s._Sigmoid=s.asm.sa).apply(null,arguments)},vg=s._Sin=function(){return(vg=s._Sin=s.asm.ta).apply(null,arguments)},Ew=s._Softmax=function(){return(Ew=s._Softmax=s.asm.ua).apply(null,arguments)},Kp=s._Sqrt=function(){return(Kp=s._Sqrt=s.asm.va).apply(null,arguments)},wg=s._Square=function(){return(wg=s._Square=s.asm.wa).apply(null,arguments)},kg=s._SquaredDifference=function(){return(kg=s._SquaredDifference=s.asm.xa).apply(null,arguments)},Ig=s._Step=function(){return(Ig=s._Step=s.asm.ya).apply(null,arguments)},Ng=s._StridedSlice=function(){return(Ng=s._StridedSlice=s.asm.za).apply(null,arguments)},Tg=s._Sub=function(){return(Tg=s._Sub=s.asm.Aa).apply(null,arguments)},Sg=s._Sum=function(){return(Sg=s._Sum=s.asm.Ba).apply(null,arguments)},Cg=s._Tanh=function(){return(Cg=s._Tanh=s.asm.Ca).apply(null,arguments)},Ag=s._Tile=function(){return(Ag=s._Tile=s.asm.Da).apply(null,arguments)},Fg=s._TopK=function(){return(Fg=s._TopK=s.asm.Ea).apply(null,arguments)},_g=s._Transpose=function(){return(_g=s._Transpose=s.asm.Fa).apply(null,arguments)},Eg=s.__FusedMatMul=function(){return(Eg=s.__FusedMatMul=s.asm.Ga).apply(null,arguments)},$g=s._malloc=function(){return($g=s._malloc=s.asm.Ha).apply(null,arguments)},Dg=s._free=function(){return(Dg=s._free=s.asm.Ia).apply(null,arguments)},Yp=s.stackSave=function(){return(Yp=s.stackSave=s.asm.Ja).apply(null,arguments)},Jp=s.stackRestore=function(){return(Jp=s.stackRestore=s.asm.Ka).apply(null,arguments)},zu=s.stackAlloc=function(){return(zu=s.stackAlloc=s.asm.La).apply(null,arguments)};s.cwrap=Q;var go;function Mg(K){this.name="ExitStatus",this.message="Program terminated with exit("+K+")",this.status=K}lr=function K(){go||Wu(),go||(lr=K)};function Wu(K){if(K=K||c,ia>0||(Xn(),ia>0))return;function ae(){go||(go=!0,s.calledRun=!0,!U&&(Mn(),cn(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),tn()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),ae()},1)):ae()}if(s.run=Wu,s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();return Wu(),r.ready}}();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModule=n)}),xF=1e-7,vF=1e-4,sd=class{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}},ju=class{refCount(e){return oa("refCount")}incRef(e){return oa("incRef")}timerAvailable(){return!0}time(e){return oa("time")}read(e){return oa("read")}readSync(e){return oa("readSync")}numDataIds(){return oa("numDataIds")}disposeData(e,t){return oa("disposeData")}write(e,t,n){return oa("write")}move(e,t,n,a,r){return oa("move")}memory(){return oa("memory")}floatPrecision(){return oa("floatPrecision")}epsilon(){return this.floatPrecision()===32?xF:vF}dispose(){return oa("dispose")}};function oa(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function jw(e){let t=e.length,n=0,a=0;for(;t>0;)a=Math.random()*t|0,t--,n=e[t],e[t]=e[a],e[a]=n}function wF(e,t){if(e.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${e.length}Second array length was ${t.length}`);let n=e.length,a,r,s=0;for(;n>0;)s=Math.random()*n|0,n--,a=e[n],r=t[n],e[n]=e[s],t[n]=t[s],e[s]=a,t[s]=r}function qu(e,t,n){return Math.max(e,Math.min(t,n))}function kF(e){return e%2==0?e:e+1}function IF(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function ks(e){$(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Is(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||un(e)&&!n)for(let a=0;a0,n){return new Promise((a,r)=>{let s=0,i=()=>{if(e()){a();return}s++;let o=t(s);if(n!=null&&s>=n){r();return}setTimeout(i,o)};i()})}function EF(e,t){let n=1,a=-1;for(let s=0;s=0)n*=e[s];else if(e[s]===-1){if(a!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${a} and dim ${s}`);a=s}else if(e[s]<0)throw Error(`Shapes can not be < 0. Found ${e[s]} at dim ${s}`);if(a===-1){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(n===0)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%n!=0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${n}`);let r=e.slice();return r[a]=t/n,r}function la(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),$(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),$(e.every(a=>Ht(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function qw(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:la(t,e).sort(),i=0;for(let o=0;oo)&&e[o]===1&&(n.push(e[o]),a.push(o)),s[i]<=o&&i++}e[o]!==1&&(n.push(e[o]),a.push(o))}return{newShape:n,keptDims:a}}function Xw(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return n}function Kw(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else if(e==="string")n=new Array(t);else throw new Error(`Unknown data type ${e}`);return n}function Yw(e,t){for(let n=0;nt+=n.length),t}function zr(e){return typeof e=="string"||e instanceof String}function Zw(e){return typeof e=="boolean"}function e0(e){return typeof e=="number"}function id(e){return Array.isArray(e)?id(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":e0(e)?"float32":zr(e)?"string":Zw(e)?"bool":"float32"}function Wr(e){return!!(e&&e.constructor&&e.call&&e.apply)}function od(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function t0(e,t,n){let a=new Array;if(t.length===1){let r=t[0];for(let s=0;so*l);for(let o=0;oa*r);if(n===0)return[];if(n!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}.`);return t0(0,e,t)}function Wg(e,t){let n=ld(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return To(e,new Float32Array(n));if(t==="int32")return To(e,new Int32Array(n));if(t==="bool")return To(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function Bg(e){e.forEach(t=>{$(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function MF(e,t,n){if(t===0)return 0;if(t===1)return e[0];let a=e[e.length-1];for(let r=0;r{let[n,a]=t.split(":");this.urlFlags[n]=OF(n,a)})}};function PF(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(LF(t,a[0],a[1]),a.join("="))),t}function LF(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function OF(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function Z(){return Ug}var Ug=null;function zF(e){Ug=e}var Gg;function r0(){if(Gg==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");Gg=e}return Gg}function WF(){let e=r0();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Hg(e,t){let n=WF();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var So="Abs",Co="Acos",Ao="Acosh",Br="Add",Ns="AddN",ud="All",cd="Any",Ts="ArgMax",Ku="ArgMin",Fo="Asin",_o="Asinh",Eo="Atan",$o="Atanh",Do="Atan2",Ss="AvgPool",pd="AvgPoolGrad",Yu="AvgPool3D",dd="AvgPool3DGrad",Cs="BatchMatMul",Ju="BatchToSpaceND",hd="Bincount",s0="BroadcastTo",As="Cast",Fs="Ceil",Vr="ClipByValue",md="Complex",Qu="ComplexAbs",Mo="Concat",_s="Conv2D",fd="Conv2DBackpropFilter",Es="Conv2DBackpropInput",Zu="Conv3D",gd="Conv3DBackpropFilterV2",yd="Conv3DBackpropInputV2",$s="Cos",Ro="Cosh",Ds="Cumsum",Po="CropAndResize",bd="DenseBincount",Oo="DepthToSpace",Ms="DepthwiseConv2dNative",xd="DepthwiseConv2dNativeBackpropFilter",vd="DepthwiseConv2dNativeBackpropInput",wd="Diag",ec="Dilation2D",kd="Dilation2DBackpropInput",Id="Dilation2DBackpropFilter",Rs="RealDiv",Lo="Elu",Nd="EluGrad",zo="Erf",Wo="Equal",Ps="Exp",Bo="ExpandDims",Vo="Expm1",Td="FFT",tc="Fill",Uo="FlipLeftRight",Os="Floor",Ls="FloorDiv",zs="FusedBatchNorm",Go="GatherV2",Ho="GatherNd",jo="Greater",Ws="GreaterEqual",Bs="Identity",Sd="IFFT",Cd="Imag",qo="IsFinite",Xo="IsInf",Ko="IsNan",Vs="LeakyRelu",Yo="Less",Jo="LessEqual",Ad="LinSpace",Us="Log",Qo="Log1p",Zo="LogicalAnd",nc="LogicalNot",ac="LogicalOr",i0="LogSoftmax",rc="LRN",Fd="LRNGrad",Gs="Max",Hs="Maximum",js="MaxPool",_d="MaxPoolGrad",sc="MaxPool3D",Ed="MaxPool3DGrad",$d="MaxPoolWithArgmax",qs="Mean",Xs="Min",Ks="Minimum",ic="MirrorPad",el="Mod",Dd="Multinomial",Ys="Multiply",tl="Neg",nl="NotEqual",al="NonMaxSuppressionV3",rl="NonMaxSuppressionV4",sl="NonMaxSuppressionV5",il="OnesLike",Js="OneHot",ol="Pack",Qs="PadV2",BF="Pool",Zs="Pow",ei="Prelu",ll="Prod",oc="Range",Md="Real",ul="Reciprocal",ti="Relu",cl="Reshape",lc="ResizeNearestNeighbor",Rd="ResizeNearestNeighborGrad",ni="ResizeBilinear",Pd="ResizeBilinearGrad",ai="Relu6",ri="Reverse",si="Round",ii="Rsqrt",pl="ScatterNd",dl="Select",hl="Selu",ml="Slice",oi="Sin",fl="Sinh",gl="Sign",li="Sigmoid",yl="Softplus",ui="Sqrt",ci="Sum",uc="SpaceToBatchND",bl="SplitV",pi="Softmax",di="SquaredDifference",cc="Square",hi="Sub",Od="SparseToDense",xl="StridedSlice",vl="Tan",mi="Tanh",Ur="Tile",wl="TopK",Ld="Transform",fi="Transpose",zd="Unique",kl="Unpack",pc="UnsortedSegmentSum",Il="ZerosLike",Gr="Step",Wd="FromPixels",Nl="RotateWithOffset",gi="_FusedMatMul",yi="FusedConv2D",bi="FusedDepthwiseConv2D",Tl=Hg("kernelRegistry",()=>new Map),dc=Hg("gradRegistry",()=>new Map);function Bd(e,t){let n=jg(e,t);return Tl.get(n)}function qg(e){return dc.get(e)}function Vd(e){let t=Tl.entries(),n=[];for(;;){let{done:a,value:r}=t.next();if(a)break;let[s,i]=r,[o]=s.split("_");o===e&&n.push(i)}return n}function hc(e){let{kernelName:t,backendName:n}=e,a=jg(t,n);Tl.has(a)&&console.warn(`The kernel '${t}' for backend '${n}' is already registered`),Tl.set(a,e)}function o0(e){let{kernelName:t}=e;dc.has(t)&&Z().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${t}'`),dc.set(t,e)}function VF(e,t){let n=jg(e,t);if(!Tl.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Tl.delete(n)}function UF(e){if(!dc.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);dc.delete(e)}function GF(e,t){Vd(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});hc(a)})}function jg(e,t){return`${t}_${e}`}var I={};Oe(I,{arraysEqual:()=>hr,assert:()=>$,assertNonNegativeIntegerDimensions:()=>Bg,assertNonNull:()=>ks,assertShapesMatch:()=>ln,bytesFromStringArray:()=>Qw,bytesPerElement:()=>zg,checkConversionForErrors:()=>Yw,clamp:()=>qu,computeStrides:()=>No,createScalarValue:()=>HF,createShuffledIndices:()=>FF,decodeString:()=>Gd,distSquared:()=>TF,encodeString:()=>fc,fetch:()=>jF,flatten:()=>Is,getArrayFromDType:()=>Kw,getTypedArrayFromDType:()=>Xw,hasEncodingLoss:()=>$F,indexToLoc:()=>RF,inferDtype:()=>id,inferFromImplicitShape:()=>EF,isBoolean:()=>Zw,isFunction:()=>Wr,isInt:()=>Ht,isNumber:()=>e0,isPromise:()=>Vg,isScalarShape:()=>SF,isString:()=>zr,isTypedArray:()=>un,isValidDtype:()=>Jw,locToIndex:()=>MF,makeOnesTypedArray:()=>Wg,makeZerosNestedTypedArray:()=>DF,makeZerosTypedArray:()=>ld,nearestDivisor:()=>od,nearestLargerEven:()=>kF,now:()=>mc,parseAxisParam:()=>la,randUniform:()=>NF,repeatedTry:()=>_F,rightPad:()=>Xu,shuffle:()=>jw,shuffleCombo:()=>wF,sizeFromShape:()=>Ot,sizeToSquarishShape:()=>AF,squeezeShape:()=>qw,sum:()=>IF,tanh:()=>CF,toNestedArray:()=>To,toTypedArray:()=>Ud});function HF(e,t){return t==="string"?fc(e):Ud([e],t)}function qF(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Ud(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=Is(e)),Z().getBool("DEBUG")&&Yw(e,t),qF(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){let n=new Uint8Array(e.length);for(let a=0;a{a=n()},s,i=mc();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:mc()-i})}if(Z().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{XF(u,l.dtype,e)})}return{kernelName:e,outputs:a,inputs:t,timeMs:s.then(o=>o.kernelMs),extraInfo:s.then(o=>o.getExtraProfileInfo!=null?o.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:n,timeMs:a,inputs:r,extraInfo:s}=e;n.forEach(i=>{Promise.all([i.data(),a,s]).then(o=>{this.logger.logKernelProfile(t,i,o[0],o[1],r,o[2])})})}};function XF(e,t,n){if(t!=="float32")return!1;for(let a=0;a0?m:""} `}}console.log(`%c${o} %c${i} %c${l}D ${c} %c${u} %c${p} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function JF(e,t,n){let a={},r={};for(let l=0;la[f.id]=!0),h=!0,r[u.id]=!0;break}if(h)break}}let s={};s[n.id]=!0;let i={};for(let l=e.length-1;l>=0;l--){let u=e[l],c=u.inputs;for(let p=0;p=0;r--){let s=t[r],i=[];if(s.outputs.forEach(l=>{let u=e[l.id];u!=null?i.push(u):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let o=s.gradient(i);for(let l in s.inputs){if(!(l in o))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(o)}.`);let u=n(()=>o[l]());if(u.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${u.dtype}'`);let c=s.inputs[l];if(!hr(u.shape,c.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${u.shape}', which does not match the shape of the input '${c.shape}'`);if(e[c.id]==null)e[c.id]=u;else{let p=e[c.id];e[c.id]=a(p,u),p.dispose()}}}}var l0=20,gc=3,Xg=7;function e_(e,t,n,a){let r=No(t),s=ZF(e,t,n,r),i=t.length,o=Hd(e,t,n,r,s),l=["Tensor"];return a&&(l.push(` dtype: ${n}`),l.push(` rank: ${i}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(o.map(u=>" "+u).join(` `)),l.join(` -`)}function DE(e,t,n,a){let r=Pt(t),s=a[a.length-1],i=new Array(s).fill(0),o=t.length,l=n==="complex64"?bc(e):e;if(o>1)for(let c=0;co0){let g=gc*i,y=Array.from(e.slice(0,g)),b=Array.from(e.slice((o-gc)*i,o*i));return n==="complex64"&&(y=bc(y),b=bc(b)),["["+y.map((x,v)=>yc(x,r[v],n)).join(", ")+", ..., "+b.map((x,v)=>yc(x,r[o-gc+v],n)).join(", ")+"]"]}let f=n==="complex64"?bc(e):Array.from(e);return["["+f.map((g,y)=>yc(g,r[y],n)).join(", ")+"]"]}let c=t.slice(1),u=a.slice(1),p=a[0]*i,d=[];if(o>o0){for(let f=0;f1)for(let u=0;ul0){let g=gc*i,y=Array.from(e.slice(0,g)),b=Array.from(e.slice((o-gc)*i,o*i));return n==="complex64"&&(y=bc(y),b=bc(b)),["["+y.map((x,v)=>yc(x,r[v],n)).join(", ")+", ..., "+b.map((x,v)=>yc(x,r[o-gc+v],n)).join(", ")+"]"]}let f=n==="complex64"?bc(e):Array.from(e);return["["+f.map((g,y)=>yc(g,r[y],n)).join(", ")+"]"]}let u=t.slice(1),c=a.slice(1),p=a[0]*i,d=[];if(o>l0){for(let f=0;f`Length of values '${a}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||Kw(t,this.size),this.strides=To(e)}set(e,...t){t.length===0&&(t=[0]),F(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${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=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(r)}t++}let n=e[e.length-1];for(let a=0;aVd(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}dataSync(){this.throwIfDisposed();let e=Ba().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>Vd(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 Ba().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Ba().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 RE(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Sl.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Ba().makeVariable(this,e,t,n)}};Object.defineProperty(Ee,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Y(){return Gg("Tensor",()=>Ee)}Y();var Hr=class extends Ee{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(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!hr(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Ba().disposeTensor(this),this.dataId=e.dataId,Ba().incRef(this,null)}dispose(){Ba().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Hr,Symbol.hasInstance,{value:e=>e instanceof Ee&&e.assign!=null&&e.assign instanceof Function});var Ia={};Oe(Ia,{assertTypesMatch:()=>u0,getTensorsInContainer:()=>Kg,isTensorInList:()=>zE,makeTypesMatch:()=>Tt});var Xg;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(Xg||(Xg={}));var Yg;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(Yg||(Yg={}));var Jg;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(Jg||(Jg={}));var Qg;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Qg||(Qg={}));var Zg;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(Zg||(Zg={}));var BE={float32:Qg,int32:Yg,bool:Jg,complex64:Zg};function ua(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return BE[e][t]}function Gd(e){return ua(e,"int32")}function Tt(e,t){if(e.dtype===t.dtype)return[e,t];let n=ua(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function u0(e,t){F(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function zE(e,t){return t.some(n=>n.id===e.id)}function Kg(e){let t=[],n=new Set;return c0(e,t,n),t}function c0(e,t,n){if(e==null)return;if(e instanceof Ee){t.push(e);return}if(!WE(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),c0(s,t,n))}}function WE(e){return Array.isArray(e)||typeof e=="object"}function ey(e){return e.kernelName!=null}var p0=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},xc=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new p0}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){Bd(e).forEach(t=>{t.disposeFunc!=null&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let n=t.factory();if(n&&!(n instanceof ju)&&typeof n.then=="function"){let a=++this.pendingBackendInitId,r=n.then(s=>a(athis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(n),()=>this.endScope(a),()=>(a=t(),a instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),a))}scopedRun(e,t,n){e();try{let a=n();return t(),a}catch(a){throw t(),a}}nextTensorId(){return xc.nextTensorId++}nextVariableId(){return xc.nextVariableId++}clone(e){let t=M.runKernel(Ws,{x:e}),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return M.runKernel(_s,o,l)}}),r=[];return this.addTapeNode(this.state.activeScope.name,n,[t],a,r,{}),t}runKernel(e,t,n){if(zd(e,this.backendName)==null)throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,n){let a=this.backend.numDataIds(),r=0;n.forEach(o=>{r+=o.dtype==="complex64"?3:1});let s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=a-t-r-s;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e){let t,n=[],a=this.isTapeOn(),r=this.state.numBytes,s=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let o,l=ey(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(ey(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=zd(h,this.backendName);F(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let y=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let b=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,y,b);let x=b.map(v=>{if(v.rank!=null)return v;let{dataId:N,shape:T,dtype:S}=v;return this.makeTensorFromDataId(N,T,S)});if(a){let v=this.getTensorsForGradient(h,m,x);n=this.saveTensorsForBackwardMode(v)}return x}}else{let{forwardFunc:h}=e,m=f=>{!a||(n=f.map(g=>this.keep(this.clone(g))))};i=()=>{let f=this.backend.numDataIds();o=this.tidy(()=>h(this.backend,m));let g=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,f,g),g}}let{inputs:c,attrs:u}=e,p=ey(e)?null:e.backwardsFunc,d;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(d=this.profiler.profileKernel(l,c,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(d),t=d.outputs)}),a&&this.addTapeNode(l,c,t,p,n,u),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(h=>c[h]!=null?c[h].shape:null),outputShapes:t.map(h=>h.shape),kernelTimeMs:d.timeMs,extraInfo:d.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(t=>this.keep(this.clone(t)))}getTensorsForGradient(e,t,n){let a=jg(e);if(a!=null){let r=a.inputsToSave||[],s=a.outputsToSave||[],i;a.saveAllInputs?(F(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(l=>t[l])):i=r.map(l=>t[l]);let o=n.filter((l,c)=>s[c]);return i.concat(o)}return[]}makeTensor(e,t,n,a){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",a=a||this.backend;let r=e;n==="string"&&zr(e[0])&&(r=e.map(o=>fc(o)));let s=a.write(r,t,n),i=new Ee(t,n,s,this.nextTensorId());if(this.trackTensor(i,a),n==="string"){let o=this.state.tensorInfo.get(s),l=Jw(r);this.state.numBytes+=l-o.bytes,o.bytes=l}return i}makeTensorFromDataId(e,t,n,a){n=n||"float32";let r=new Ee(t,n,e,this.nextTensorId());return this.trackTensor(r,a),r}makeVariable(e,t=!0,n,a){n=n||this.nextVariableId().toString(),a!=null&&a!==e.dtype&&(e=e.cast(a));let r=new Hr(e,t,n,this.nextTensorId());if(this.state.registeredVariables[r.name]!=null)throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}trackTensor(e,t){this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++;let n=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(n=e.size*Lg(e.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n})),e instanceof Hr||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,e.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),e.dtype!=="complex64"&&e.dtype!=="string"){let n=e.size*Lg(e.dtype);this.state.numBytes-=n}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(a=>a.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let a of this.state.activeProfile.kernels)a.kernelTimeMs=await a.kernelTimeMs,a.extraInfo=await a.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,n,a,r,s){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:r},o=jg(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((c,u)=>{if(c==null){let p=n[u],d=od(p.size,p.dtype);return this.makeTensor(d,p.shape,p.dtype)}return c}),a(l.length>1?l:l[0],r,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=Kg(e),n=new Set(t.map(r=>r.id));for(let r=0;r{!r.kept&&r.scopeId===a.id&&this.track(r)})}gradients(e,t,n,a=!1){if(F(t.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let r=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));F(r instanceof Ee,()=>"The result y returned by f() must be a tensor.");let s=AE(this.state.activeTape,t,r);if(!a&&s.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let i={};i[r.id]=n==null?VE(r.shape):n,$E(i,s,l=>this.tidy(l),UE);let o=t.map(l=>i[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let c of l.saved)c.dispose()}),this.state.activeTape=null),{value:r,grads:o}})}customGrad(e){return F(Br(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{F(t.every(i=>i instanceof Ee),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,a={};t.forEach((i,o)=>{a[o]=i});let r=(i,o)=>(n=e(...t,o),F(n.value instanceof Ee,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),F(Br(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),s=(i,o)=>{let l=n.gradFunc(i,o),c=Array.isArray(l)?l:[l];F(c.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),F(c.every(p=>p instanceof Ee),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let u={};return c.forEach((p,d)=>{u[d]=()=>p}),u};return this.runKernelFunc({forwardFunc:r,backwardsFunc:s,inputs:a})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}async time(e){let t=mc(),n=await this.backend.time(e);return n.wallMs=mc()-t,n}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new p0;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};xc.nextTensorId=0;xc.nextVariableId=0;function VE(e){let t=zg(Pt(e),"float32");return M.makeTensor(t,e,"float32")}function d0(){let e=a0();if(e._tfengine==null){let t=new n0(e);e._tfengine=new xc(t)}return xE(e._tfengine.ENV),PE(()=>e._tfengine),e._tfengine}var M=d0();function UE(e,t){let n={a:e,b:t};return M.runKernel(Wr,n)}var Hd={};Oe(Hd,{isBrowser:()=>h0,isMobile:()=>GE});function HE(){return typeof navigator!="undefined"&&navigator!=null}function GE(){if(HE()){let e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))}return!1}function h0(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Wa=ee();Wa.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});Wa.registerFlag("IS_BROWSER",()=>h0());Wa.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Wa.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Wa.registerFlag("PROD",()=>!1);Wa.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Wa.getBool("DEBUG"));Wa.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Wa.registerFlag("IS_TEST",()=>!1);Wa.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);function Va(e,t){let n=e;if(ln(e))return t==="string"?[]:[e.length];if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||ln(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&ee().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&m0(e,a,[]),a}function m0(e,t,n){if(n=n||[],!Array.isArray(e)&&!ln(e)){F(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}F(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),F(e.length===t[0],()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);let a=t.slice(1);for(let r=0;r=0&&(r=a),f0(a,r,t,n),e==null||!ln(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){let o=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${o}'`)}let s=Va(e,r);!ln(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Wd(e,r):Is(e,[],!0);return M.makeTensor(i,s,r)}function vc(e,t,n,a="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((r,s)=>E(r,`${t}[${s}]`,n,a))}var g0="__op";function P(e){let t=Object.keys(e);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let n=t[0],a=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n=n+g0;let r=(...s)=>{M.startScope(n);try{let i=a(...s);return Wg(i)&&console.error("Cannot return a Promise inside of tidy."),M.endScope(i),i}catch(i){throw M.endScope(null),i}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}function jE(e,t){let n=E(e,"real","complex"),a=E(t,"imag","complex");on(n.shape,a.shape,`real and imag shapes, ${n.shape} and ${a.shape}, must match in call to tf.complex().`);let r={real:n,imag:a};return M.runKernel(hd,r)}var jr=P({complex_:jE});function qr(e,t,n,a){if(a==null&&(a=sd(e)),a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!ln(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(t!=null){Bg(t);let r=Pt(t),s=Pt(n);F(r===s,()=>`Based on the provided shape, [${t}], the tensor should have ${r} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `)}}return!ln(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Wd(e,a):Is(e,[],!0),M.makeTensor(e,t,a)}function Yn(e,t,n){let a=Va(e,n);return qr(e,t,a,n)}var ty={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},jd=4;async function KE(e,t){let n=[],a=[],r=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let d=await l.bytes(),h=d.reduce((g,y)=>g+y.length,0)+jd*d.length,m=new Uint8Array(h),f=0;for(let g=0;g{if(t+=s.byteLength,n.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let a=new Uint8Array(t),r=0;return n.forEach(s=>{a.set(new Uint8Array(s.buffer),r),r+=s.byteLength}),a.buffer}var ny=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function b0(e){return ny?Buffer.byteLength(e):new Blob([e]).size}function YE(e){if(ny)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{t+=r.byteLength});let n=new Uint8Array(t),a=0;return e.forEach(r=>{n.set(new Uint8Array(r),a),a+=r.byteLength}),n.buffer}function x0(e){let t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);let n=e.split(t);return n[n.length-1]}function wc(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:b0(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:b0(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function QE(){let e=n=>{let a=n<<13,r=0;for(;(a&8388608)==0;)r-=8388608,a<<=1;return a&=~8388608,r+=947912704,a|r},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let n=1024;n<2048;n++)t[n]=939524096+(n-1024<<13);return t}function ZE(){let e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}function eF(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function XE(){let e=QE(),t=ZE(),n=eF();return a=>{let r=new ArrayBuffer(4*a.length),s=new Uint32Array(r);for(let i=0;i>10]+(o&1023)]+t[o>>10];s[i]=l}return new Float32Array(r)}}var Et=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Et.instance==null&&(Et.instance=new Et),Et.instance}static registerSaveRouter(e){Et.getInstance().saveRouters.push(e)}static registerLoadRouter(e){Et.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return Et.getHandlers(e,"save")}static getLoadHandlers(e,t){return Et.getHandlers(e,"load",t)}static getHandlers(e,t,n){let a=[];return(t==="load"?Et.getInstance().loadRouters:Et.getInstance().saveRouters).forEach(r=>{let s=r(e,n);s!==null&&a.push(s)}),a}},tF=e=>Et.registerSaveRouter(e),nF=e=>Et.registerLoadRouter(e),aF=e=>Et.getSaveHandlers(e),rF=(e,t)=>Et.getLoadHandlers(e,t),ry="tensorflowjs",sy=1,xi="models_store",Kr="model_info_store";function v0(){if(!ee().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e=typeof window=="undefined"?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function iy(e){let t=e.result;t.createObjectStore(xi,{keyPath:"modelPath"}),t.createObjectStore(Kr,{keyPath:"modelPath"})}var vi=class{constructor(e){if(this.indexedDB=v0(),e==null||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((n,a)=>{let r=this.indexedDB.open(ry,sy);r.onupgradeneeded=()=>iy(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(xi,"readonly"),o=i.objectStore(xi).get(this.modelPath);o.onsuccess=()=>{if(o.result==null)return s.close(),a(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(o.result.modelArtifacts)},o.onerror=l=>(s.close(),a(o.error)),i.oncomplete=()=>s.close()}else{let i=wc(t),o=s.transaction(Kr,"readwrite"),l=o.objectStore(Kr),c=l.put({modelPath:this.modelPath,modelArtifactsInfo:i}),u;c.onsuccess=()=>{u=s.transaction(xi,"readwrite");let p=u.objectStore(xi).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});p.onsuccess=()=>n({modelArtifactsInfo:i}),p.onerror=d=>{l=o.objectStore(Kr);let h=l.delete(this.modelPath);h.onsuccess=()=>(s.close(),a(p.error)),h.onerror=m=>(s.close(),a(p.error))}},c.onerror=p=>(s.close(),a(c.error)),o.oncomplete=()=>{u==null?s.close():u.oncomplete=()=>s.close()}}},r.onerror=s=>a(r.error)})}};vi.URL_SCHEME="indexeddb://";var w0=e=>ee().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(vi.URL_SCHEME)?sF(e.slice(vi.URL_SCHEME.length)):null;Et.registerSaveRouter(w0);Et.registerLoadRouter(w0);function sF(e){return new vi(e)}function iF(e){return e.startsWith(vi.URL_SCHEME)?e.slice(vi.URL_SCHEME.length):e}var oF=class{constructor(){this.indexedDB=v0()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(ry,sy);n.onupgradeneeded=()=>iy(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(Kr,"readonly"),s=r.objectStore(Kr).getAll();s.onsuccess=()=>{let i={};for(let o of s.result)i[o.modelPath]=o.modelArtifactsInfo;e(i)},s.onerror=i=>(a.close(),t(s.error)),r.oncomplete=()=>a.close()},n.onerror=a=>t(n.error)})}async removeModel(e){return e=iF(e),new Promise((t,n)=>{let a=this.indexedDB.open(ry,sy);a.onupgradeneeded=()=>iy(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(Kr,"readwrite"),i=s.objectStore(Kr),o=i.get(e),l;o.onsuccess=()=>{if(o.result==null)return r.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let c=i.delete(e),u=()=>{l=r.transaction(xi,"readwrite");let p=l.objectStore(xi).delete(e);p.onsuccess=()=>t(o.result.modelArtifactsInfo),p.onerror=d=>n(o.error)};c.onsuccess=u,c.onerror=p=>(u(),r.close(),n(o.error))}},o.onerror=c=>(r.close(),n(o.error)),s.oncomplete=()=>{l==null?r.close():l.oncomplete=()=>r.close()}},a.onerror=r=>n(a.error)})}},mr="/",Cl="tensorflowjs_models",k0="info",lF="model_topology",uF="weight_specs",cF="weight_data",pF="model_metadata";function I0(e){return{info:[Cl,e,k0].join(mr),topology:[Cl,e,lF].join(mr),weightSpecs:[Cl,e,uF].join(mr),weightData:[Cl,e,cF].join(mr),modelMetadata:[Cl,e,pF].join(mr)}}function dF(e){let t=e.split(mr);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(mr)}function hF(e){return e.startsWith(wi.URL_SCHEME)?e.slice(wi.URL_SCHEME.length):e}var wi=class{constructor(e){if(!ee().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=I0(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),a=wc(e);try{this.LS.setItem(this.keys.info,JSON.stringify(a)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,YE(e.weightData));let r={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};return e.signature!=null&&(r.signature=e.signature),e.userDefinedMetadata!=null&&(r.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(r.modelInitializer=e.modelInitializer),this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:a}}catch(r){throw this.LS.removeItem(this.keys.info),this.LS.removeItem(this.keys.topology),this.LS.removeItem(this.keys.weightSpecs),this.LS.removeItem(this.keys.weightData),this.LS.removeItem(this.keys.modelMetadata),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${a.modelTopologyBytes}, weightSpecsBytes=${a.weightSpecsBytes}, weightDataBytes=${a.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=n;let a=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(a==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=a;let r=this.LS.getItem(this.keys.modelMetadata);if(r!=null){let i=JSON.parse(r);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=JE(s),t}};wi.URL_SCHEME="localstorage://";var T0=e=>ee().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(wi.URL_SCHEME)?mF(e.slice(wi.URL_SCHEME.length)):null;Et.registerSaveRouter(T0);Et.registerLoadRouter(T0);function mF(e){return new wi(e)}var fF=class{constructor(){F(ee().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),F(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=Cl+mr,n=mr+k0;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(_l)&&(e=e.slice(0,e.indexOf(_l))),F(e.length>0,()=>"scheme must not be an empty string.");let n=Jn.getInstance();F(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=this.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}};function qd(e){if(e.indexOf(_l)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Jn.getSchemes().join(",")}`);return{scheme:e.split(_l)[0],path:e.split(_l)[1]}}async function N0(e,t,n=!1){F(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=Et.getLoadHandlers(e);F(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),F(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=Et.getSaveHandlers(t);F(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),F(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=qd(e).scheme,l=qd(e).path,c=o===qd(e).scheme,u=await r.load();n&&c&&await Jn.getManager(o).removeModel(l);let p=await i.save(u);return n&&!c&&await Jn.getManager(o).removeModel(l),p.modelArtifactsInfo}async function gF(){let e=Jn.getSchemes(),t={};for(let n of e){let a=await Jn.getManager(n).listModels();for(let r in a){let s=n+_l+r;t[s]=a[r]}}return t}async function yF(e){let t=qd(e);return Jn.getManager(t.scheme).removeModel(t.path)}async function bF(e,t){return N0(e,t,!1)}async function xF(e,t){return N0(e,t,!0)}var vF=class{fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}};if(ee().get("IS_BROWSER")){ee().setPlatform("browser",new vF);try{Jn.registerManager(wi.URL_SCHEME,new fF)}catch(e){}try{Jn.registerManager(vi.URL_SCHEME,new oF)}catch(e){}}var wF={importFetch:()=>z_()},oy,kF=class{constructor(){this.util=require("util"),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return ee().global.fetch!=null?ee().global.fetch(e,t):(oy==null&&(oy=wF.importFetch()),oy(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};ee().get("IS_NODE")&&ee().setPlatform("node",new kF);function Le(e,t="float32",n){return t=t||"float32",Bg(e),new Ot(e,t,n)}function IF(e,t){let n=E(e,"x","cast");if(!Yw(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&n.dtype!=="string"||t!=="string"&&n.dtype==="string")throw new Error("Only strings can be casted to strings");let a={x:n},r={dtype:t};return M.runKernel(_s,a,r)}var ue=P({cast_:IF});function TF(e){let t={x:E(e,"x","clone","string_or_numeric")};return M.runKernel(Ws,t)}var Xr=P({clone_:TF});function S0(e,t=!1){console.log(e.toString(t))}d0();var NF={buffer:Le,cast:ue,clone:Xr,print:S0};OE(NF);var Ht={};Oe(Ht,{browserFiles:()=>SF,browserHTTPRequest:()=>_F,concatenateArrayBuffers:()=>ay,copyModel:()=>bF,decodeWeights:()=>y0,encodeWeights:()=>KE,fromMemory:()=>EF,getLoadHandlers:()=>rF,getModelArtifactsInfoForJSON:()=>wc,getSaveHandlers:()=>aF,http:()=>uy,isHTTPScheme:()=>ly,listModels:()=>gF,loadWeights:()=>CF,moveModel:()=>xF,registerLoadRouter:()=>nF,registerSaveRouter:()=>tF,removeModel:()=>yF,weightsLoaderFactory:()=>C0,withSaveHandler:()=>FF});var AF="model",$F=".json",DF=".weights.bin";function _0(e){return new Promise(t=>setTimeout(t)).then(e)}var El=class{constructor(e){if(!ee().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(El.URL_SCHEME)&&(e=e.slice(El.URL_SCHEME.length)),(e==null||e.length===0)&&(e=AF),this.modelTopologyFileName=e+$F,this.weightDataFileName=e+DF}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer);let r=window.URL.createObjectURL(new Blob([JSON.stringify(a)],{type:"application/json"})),s=this.jsonAnchor==null?document.createElement("a"):this.jsonAnchor;if(s.download=this.modelTopologyFileName,s.href=r,await _0(()=>s.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await _0(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:wc(e)}}}};El.URL_SCHEME="downloads://";var RF=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){let e=this.files[0],t=this.files.slice(1);return new Promise((n,a)=>{let r=new FileReader;r.onload=s=>{let i=JSON.parse(s.target.result),o=i.modelTopology;if(o==null){a(new Error(`modelTopology field is missing from file ${e.name}`));return}t.length===0&&n({modelTopology:o});let l=i.weightsManifest;if(l==null){a(new Error(`weightManifest field is missing from file ${e.name}`));return}let c;try{c=this.checkManifestAndWeightFiles(l,t)}catch(h){a(h);return}let u=[],p=[],d=[];l.forEach(h=>{h.paths.forEach(m=>{p.push(m),d.push(null)}),u.push(...h.weights)}),l.forEach(h=>{h.paths.forEach(m=>{let f=new FileReader;f.onload=g=>{let y=g.target.result,b=p.indexOf(m);if(d[b]=y,d.indexOf(null)===-1){let x={modelTopology:o,weightSpecs:u,weightData:ay(d),format:i.format,generatedBy:i.generatedBy,convertedBy:i.convertedBy};i.signature!=null&&(x.signature=i.signature),i.userDefinedMetadata!=null&&(x.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(x.modelInitializer=i.modelInitializer),n(x)}},f.onerror=g=>a(`Failed to weights data from file of path '${m}'.`),f.readAsArrayBuffer(c[m])})})},r.onerror=s=>a(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),r.readAsText(e)})}checkManifestAndWeightFiles(e,t){let n=[],a=t.map(s=>x0(s.name)),r={};for(let s of e)s.paths.forEach(i=>{let o=x0(i);if(n.indexOf(o)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${o}'`);if(n.push(o),a.indexOf(o)===-1)throw new Error(`Weight file with basename '${o}' is not provided.`);r[i]=t[a.indexOf(o)]});if(n.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${n.length}) and the number of weight files provided (${t.length}).`);return r}},PF=e=>ee().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(El.URL_SCHEME)?MF(e.slice(El.URL_SCHEME.length)):null;Et.registerSaveRouter(PF);function MF(e="model"){return new El(e)}function SF(e){return new RF(e)}function E0(e,t,n,a){i(e),n=n==null?0:n,a=a==null?1:a,o(n,a);let r=0,s=l=>(l.then(c=>{let u=n+ ++r/e.length*(a-n);return t(u),c}),l);function i(l){F(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(l,c){F(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),F(c>=0&&c<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${c}`),F(c>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${c}`)}return Promise.all(e.map(s))}async function F0(e,t){t==null&&(t={});let n=t.fetchFunc==null?ee().platform.fetch:t.fetchFunc,a=e.map(c=>n(c,t.requestInit,{isBinary:!0})),r=0,s=.5,i=(t.onProgress==null?await Promise.all(a):await E0(a,t.onProgress,r,s)).map(c=>c.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await E0(i,t.onProgress,o,l)}async function CF(e,t="",n,a){return C0(r=>F0(r,{requestInit:a}))(e,t,n)}function C0(e){return async(t,n="",a)=>{let r=t.map(()=>!1),s={},i=a!=null?a.map(()=>!1):[],o=[];if(t.forEach((h,m)=>{let f=0;h.weights.forEach(g=>{let y="quantization"in g?g.quantization.dtype:g.dtype,b=ty[y]*Pt(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:b})};a!=null?a.forEach((v,N)=>{v===g.name&&(x(),i[N]=!0)}):x(),o.push(g.name),f+=b})}),!i.every(h=>h)){let h=a.filter((m,f)=>!i[f]);throw new Error(`Could not find weights in manifest with names: ${h.join(", ")}. -Manifest JSON has weights with names: ${o.join(", ")}.`)}let l=r.reduce((h,m,f)=>(m&&h.push(f),h),[]),c=[];l.forEach(h=>{t[h].paths.forEach(m=>{let f=n+(n.endsWith("/")?"":"/")+m;c.push(f)})});let u=await e(c),p={},d=0;return l.forEach(h=>{let m=t[h].paths.length,f=0;for(let x=0;x{let v=g.slice(x.groupOffset,x.groupOffset+x.sizeBytes),N=y0(v,[x.manifestEntry]);for(let T in N)p[T]=N[T]}),d+=m}),p}}var OF="application/octet-stream",LF="application/json",cy=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(F(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=ee().platform.fetch,F(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&F(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer),t.body.append("model.json",new Blob([JSON.stringify(a)],{type:LF}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:OF}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:wc(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async load(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(h){let m=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?m+=" 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.":m+=" Please make sure the server is serving valid JSON for this request.",new Error(m)}let n=t.modelTopology,a=t.weightsManifest,r=t.generatedBy,s=t.convertedBy,i=t.format,o=t.signature,l=t.userDefinedMetadata;if(n==null&&a==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let c,u;a!=null&&([c,u]=await this.loadWeights(a));let p={modelTopology:n,weightSpecs:c,weightData:u,generatedBy:r,convertedBy:s,format:i};o!=null&&(p.signature=o),l!=null&&(p.userDefinedMetadata=l);let d=t.modelInitializer;return d&&(p.modelInitializer=d),p}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=zF(t),r=this.weightPathPrefix||n,s=[];for(let c of e)s.push(...c.weights);let i=[],o=[];for(let c of e)for(let u of c.paths)this.weightUrlConverter!=null?o.push(this.weightUrlConverter(u)):i.push(r+u+a);this.weightUrlConverter&&i.push(...await Promise.all(o));let l=await F0(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,ay(l)]}};cy.URL_SCHEME_REGEX=/^https?:\/\//;function zF(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function ly(e){return e.match(cy.URL_SCHEME_REGEX)!=null}var A0=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>ly(a)):n=ly(e),n)return uy(e,t)}return null};Et.registerSaveRouter(A0);Et.registerLoadRouter(A0);function uy(e,t){return new cy(e,t)}function _F(e,t){return uy(e,t)}var py=class{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}},BF=class{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}};function EF(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new py(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new py({modelTopology:e})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new py({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function FF(e){return new BF(e)}var $0={};Oe($0,{confusionMatrix:()=>WF});function VF(e,t,n=!1,a=!1){let r=E(e,"a","matMul"),s=E(t,"b","matMul");[r,s]=Tt(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return M.runKernel(Cs,i,o)}var ze=P({matMul_:VF});function UF(e,t,n=1,a=0){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let r={indices:E(e,"indices","oneHot","int32")},s={depth:t,onValue:n,offValue:a};return M.runKernel(Js,r,s)}var Fl=P({oneHot_:UF});function GF(e,t){let n=E(e,"x","transpose");if(t==null&&(t=n.shape.map((s,i)=>i).reverse()),F(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(s=>{F(s>=0&&s`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let a={x:n},r={perm:t};return M.runKernel(fi,a,r)}var Ve=P({transpose_:GF});function HF(e,t,n){let a=E(e,"labels","confusionMatrix"),r=E(t,"predictions","confusionMatrix");F(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),F(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),F(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),F(a.shape[0]===r.shape[0],()=>`Mismatch in the number of examples: ${a.shape[0]} vs. ${r.shape[0]}. Labels and predictions should have the same number of elements.`),F(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=Fl(ue(a,"int32"),n),i=Fl(ue(r,"int32"),n),o=Ve(s),l=ze(o,i);return ue(l,"int32")}var WF=P({confusionMatrix_:HF}),ki={};Oe(ki,{fromPixels:()=>qF,toPixels:()=>jF});function Kd(e,t,n){if(ks(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=Va(e,n);if(a.length!==3&&a.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return qr(e,t,a,n)}var Al;function KF(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,a=!1,r=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)a=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)r=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)s=!0;else if(e.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap)o=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(r){let d=2;if(r&&e.readyState element.")}if(zd(Ld,M.backendName)!=null){let d={pixels:e},h={numChannels:t};return M.runKernel(Ld,d,h)}let[l,c]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height],u;i?u=e.getContext("2d").getImageData(0,0,l,c).data:a||n?u=e.data:(s||r||o)&&(Al==null&&(Al=document.createElement("canvas").getContext("2d")),Al.canvas.width=l,Al.canvas.height=c,Al.drawImage(e,0,0,l,c),u=Al.getImageData(0,0,l,c).data);let p;if(t===4)p=new Int32Array(u);else{let d=l*c;p=new Int32Array(d*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(n.dtype!=="float32"&&n.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);let i=await n.data(),o=n.dtype==="float32"?255:1,l=new Uint8ClampedArray(r*a*4);for(let c=0;c1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${h}.`)}else if(n.dtype==="int32"&&(h<0||h>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${h}.`);s===1?(u[0]=h*o,u[1]=h*o,u[2]=h*o):u[d]=h*o}let p=c*4;l[p+0]=Math.round(u[0]),l[p+1]=Math.round(u[1]),l[p+2]=Math.round(u[2]),l[p+3]=Math.round(u[3])}if(t!=null){t.width=r,t.height=a;let c=t.getContext("2d"),u=new ImageData(l,r,a);c.putImageData(u,0,0)}return n!==e&&n.dispose(),l}var qF=P({fromPixels_:KF}),dy={};Oe(dy,{prepareAndValidate:()=>D0});function D0(e,t){let n=e.shape.length,a=t.shape.length;if(n<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${n}.`);if(a<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${a}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[a-1]>n)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[a-1]} vs. ${n}`);if(Pt(e.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);let r=t.shape,s=r[r.length-1],i=1;for(let p=0;pp/c),1].slice(0,s);return[l,i,c,u]}var hy={};Oe(hy,{calculateShapes:()=>R0,validateInput:()=>fy,validateUpdateShape:()=>my});function my(e,t,n){let a=t.rank>1?t.shape[t.rank-1]:1,r=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${n.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${a}, and batchDim: ${r}.`;if(n.rank1?t.shape[a-1]:1,s=n.length,i=1;for(let p=r;pXF,computeFlatOffset:()=>JF,computeOutShape:()=>M0,getNormalizedAxes:()=>O0,isSliceContinous:()=>YF,maskToAxes:()=>Xd,parseSliceParams:()=>U0,sliceInfo:()=>QF,startForAxis:()=>W0,startIndicesWithElidedDims:()=>L0,stopForAxis:()=>V0,stopIndicesWithElidedDims:()=>z0,stridesForAxis:()=>B0,stridesWithElidedDims:()=>P0});function XF(e,t,n){let a=e.shape.length;F(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),F(a===n.length,()=>`Error in slice${a}D: Length of size ${n} must match the rank of the array (${a}).`);for(let r=0;r`Error in slice${a}D: begin[${r}] + size[${r}] (${t[r]+n[r]}) would overflow input.shape[${r}] (${e.shape[r]})`)}function Xd(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function M0(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;u=L0(i,h,m,a,e),p=z0(o,h,m,r,e),d=P0(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=G0(t,n,o),c=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=G0(t,n,o),c=a[l];e&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),i=qu(0,i,l-1),i}function V0(e,t,n,a,r,s){let i=t[r],o=n[r]||1;(e&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),o>0?i=qu(0,i,l):i=qu(-1,i,l-1),i}function YF(e,t,n){let a=n.length;for(let r=0;r1){a=r;break}for(let r=a+1;r0||n[r]!==e[r])return!1;return!0}function JF(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{F(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return n==null?s=new Array(r).fill(-1):typeof n=="number"?s=[n,...new Array(r-1).fill(-1)]:n.lengthi>=0?i:(F(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${o}.`),e.shape[o]-a[o])),[a,s]}function QF(e,t,n,a,r,s,i,o,l){let c=t.slice(),u=n.slice(),p=a;a==null&&(p=new Array(c.length));let d=Xd(i);if(d.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(i!==0&&o!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(i!==0&&l!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let h=e.length-c.length,m=Xd(o),f=e.slice();m.forEach(T=>{c[T]=0,u[T]=1,f.splice(T,0,1)});let{begin:g,end:y,strides:b}=O0(f,d,h,c,u,p,r,s,i);c=g,u=y,p=b;let x=Xd(l);x.forEach(T=>{u[T]=c[T]+1,p[T]=1});let v=M0(c,u,p),N=v.filter((T,S)=>x.indexOf(S)===-1);return{nonStrided:p.every(T=>T===1),$begin:c,$end:u,$strides:p,size:v,newShape:f,outShape:N}}var re={};Oe(re,{Serializable:()=>j0,SerializationMap:()=>Ii,registerClass:()=>Yr});var j0=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Ii=class{constructor(){this.classNameMap={}}static getMap(){return Ii.instance==null&&(Ii.instance=new Ii),Ii.instance}static register(e){Ii.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function Yr(e){F(e.className!=null,()=>"Class being registered does not have the static className property defined."),F(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),F(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Ii.register(e)}var q0={};Oe(q0,{TEST_EPSILON_FLOAT16:()=>K0,encodeStrings:()=>X0,expectArrayBuffersEqual:()=>rA,expectArraysClose:()=>ZF,expectArraysEqual:()=>tA,expectNumbersClose:()=>nA,expectPromiseToFail:()=>eA,expectValuesInRange:()=>aA,testEpsilon:()=>gy});var sA=.001,K0=.1;function ZF(e,t,n){return n==null&&(n=gy()),yy(e,t,(a,r)=>by(a,r,n))}function gy(){return M.backend.floatPrecision()===32?sA:K0}function yy(e,t,n){let a=!0;if((ln(e)||ln(t))&&(a=!1),ln(e)&&ln(t)&&(a=!0),a){let i=e.constructor.name,o=t.constructor.name;if(i!==o)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${o}`)}if(Array.isArray(e)&&Array.isArray(t)){let i=Va(e),o=Va(t);if(!hr(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=ln(e)?e:Is(e),s=ln(t)?t:Is(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}. +`;return d[d.length-1]=" "+d[d.length-1]+"]"+(s?"":m),d}function bc(e){let t=[];for(let n=0;n`Length of values '${a}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||Kw(t,this.size),this.strides=No(e)}set(e,...t){t.length===0&&(t=[0]),$(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${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=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(r)}t++}let n=e[e.length-1];for(let a=0;aGd(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}dataSync(){this.throwIfDisposed();let e=Ba().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>Gd(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 Ba().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Ba().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 e_(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Sl.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Ba().makeVariable(this,e,t,n)}};Object.defineProperty(Fe,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Y(){return Hg("Tensor",()=>Fe)}Y();var Hr=class extends Fe{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(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!hr(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Ba().disposeTensor(this),this.dataId=e.dataId,Ba().incRef(this,null)}dispose(){Ba().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Hr,Symbol.hasInstance,{value:e=>e instanceof Fe&&e.assign!=null&&e.assign instanceof Function});var Ia={};Oe(Ia,{assertTypesMatch:()=>c0,getTensorsInContainer:()=>Kg,isTensorInList:()=>s_,makeTypesMatch:()=>Tt});var Yg;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(Yg||(Yg={}));var Jg;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(Jg||(Jg={}));var Qg;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(Qg||(Qg={}));var Zg;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Zg||(Zg={}));var ey;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(ey||(ey={}));var i_={float32:Zg,int32:Jg,bool:Qg,complex64:ey};function ua(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return i_[e][t]}function jd(e){return ua(e,"int32")}function Tt(e,t){if(e.dtype===t.dtype)return[e,t];let n=ua(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function c0(e,t){$(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function s_(e,t){return t.some(n=>n.id===e.id)}function Kg(e){let t=[],n=new Set;return p0(e,t,n),t}function p0(e,t,n){if(e==null)return;if(e instanceof Fe){t.push(e);return}if(!o_(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),p0(s,t,n))}}function o_(e){return Array.isArray(e)||typeof e=="object"}function ty(e){return e.kernelName!=null}var d0=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},xc=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new d0}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){Vd(e).forEach(t=>{t.disposeFunc!=null&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let n=t.factory();if(n&&!(n instanceof ju)&&typeof n.then=="function"){let a=++this.pendingBackendInitId,r=n.then(s=>a(athis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(n),()=>this.endScope(a),()=>(a=t(),a instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),a))}scopedRun(e,t,n){e();try{let a=n();return t(),a}catch(a){throw t(),a}}nextTensorId(){return xc.nextTensorId++}nextVariableId(){return xc.nextVariableId++}clone(e){let t=P.runKernel(Bs,{x:e}),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return P.runKernel(As,o,l)}}),r=[];return this.addTapeNode(this.state.activeScope.name,n,[t],a,r,{}),t}runKernel(e,t,n){if(Bd(e,this.backendName)==null)throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,n){let a=this.backend.numDataIds(),r=0;n.forEach(o=>{r+=o.dtype==="complex64"?3:1});let s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=a-t-r-s;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e){let t,n=[],a=this.isTapeOn(),r=this.state.numBytes,s=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let o,l=ty(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(ty(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=Bd(h,this.backendName);$(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let y=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let b=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,y,b);let x=b.map(v=>{if(v.rank!=null)return v;let{dataId:k,shape:w,dtype:S}=v;return this.makeTensorFromDataId(k,w,S)});if(a){let v=this.getTensorsForGradient(h,m,x);n=this.saveTensorsForBackwardMode(v)}return x}}else{let{forwardFunc:h}=e,m=f=>{!a||(n=f.map(g=>this.keep(this.clone(g))))};i=()=>{let f=this.backend.numDataIds();o=this.tidy(()=>h(this.backend,m));let g=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,f,g),g}}let{inputs:u,attrs:c}=e,p=ty(e)?null:e.backwardsFunc,d;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(d=this.profiler.profileKernel(l,u,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(d),t=d.outputs)}),a&&this.addTapeNode(l,u,t,p,n,c),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(u).map(h=>u[h]!=null?u[h].shape:null),outputShapes:t.map(h=>h.shape),kernelTimeMs:d.timeMs,extraInfo:d.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(t=>this.keep(this.clone(t)))}getTensorsForGradient(e,t,n){let a=qg(e);if(a!=null){let r=a.inputsToSave||[],s=a.outputsToSave||[],i;a.saveAllInputs?($(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(l=>t[l])):i=r.map(l=>t[l]);let o=n.filter((l,u)=>s[u]);return i.concat(o)}return[]}makeTensor(e,t,n,a){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",a=a||this.backend;let r=e;n==="string"&&zr(e[0])&&(r=e.map(o=>fc(o)));let s=a.write(r,t,n),i=new Fe(t,n,s,this.nextTensorId());if(this.trackTensor(i,a),n==="string"){let o=this.state.tensorInfo.get(s),l=Qw(r);this.state.numBytes+=l-o.bytes,o.bytes=l}return i}makeTensorFromDataId(e,t,n,a){n=n||"float32";let r=new Fe(t,n,e,this.nextTensorId());return this.trackTensor(r,a),r}makeVariable(e,t=!0,n,a){n=n||this.nextVariableId().toString(),a!=null&&a!==e.dtype&&(e=e.cast(a));let r=new Hr(e,t,n,this.nextTensorId());if(this.state.registeredVariables[r.name]!=null)throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}trackTensor(e,t){this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++;let n=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(n=e.size*zg(e.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n})),e instanceof Hr||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,e.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),e.dtype!=="complex64"&&e.dtype!=="string"){let n=e.size*zg(e.dtype);this.state.numBytes-=n}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(a=>a.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let a of this.state.activeProfile.kernels)a.kernelTimeMs=await a.kernelTimeMs,a.extraInfo=await a.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,n,a,r,s){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:r},o=qg(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((u,c)=>{if(u==null){let p=n[c],d=ld(p.size,p.dtype);return this.makeTensor(d,p.shape,p.dtype)}return u}),a(l.length>1?l:l[0],r,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=Kg(e),n=new Set(t.map(r=>r.id));for(let r=0;r{!r.kept&&r.scopeId===a.id&&this.track(r)})}gradients(e,t,n,a=!1){if($(t.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let r=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));$(r instanceof Fe,()=>"The result y returned by f() must be a tensor.");let s=JF(this.state.activeTape,t,r);if(!a&&s.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let i={};i[r.id]=n==null?l_(r.shape):n,QF(i,s,l=>this.tidy(l),u_);let o=t.map(l=>i[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let u of l.saved)u.dispose()}),this.state.activeTape=null),{value:r,grads:o}})}customGrad(e){return $(Wr(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{$(t.every(i=>i instanceof Fe),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,a={};t.forEach((i,o)=>{a[o]=i});let r=(i,o)=>(n=e(...t,o),$(n.value instanceof Fe,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),$(Wr(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),s=(i,o)=>{let l=n.gradFunc(i,o),u=Array.isArray(l)?l:[l];$(u.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),$(u.every(p=>p instanceof Fe),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let c={};return u.forEach((p,d)=>{c[d]=()=>p}),c};return this.runKernelFunc({forwardFunc:r,backwardsFunc:s,inputs:a})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}async time(e){let t=mc(),n=await this.backend.time(e);return n.wallMs=mc()-t,n}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new d0;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};xc.nextTensorId=0;xc.nextVariableId=0;function l_(e){let t=Wg(Ot(e),"float32");return P.makeTensor(t,e,"float32")}function h0(){let e=r0();if(e._tfengine==null){let t=new a0(e);e._tfengine=new xc(t)}return zF(e._tfengine.ENV),n_(()=>e._tfengine),e._tfengine}var P=h0();function u_(e,t){let n={a:e,b:t};return P.runKernel(Br,n)}var vc={};Oe(vc,{isBrowser:()=>m0,isMobile:()=>c_});function p_(){return typeof navigator!="undefined"&&navigator!=null}function c_(){if(p_()){let e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))}return!1}function m0(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Na=Z();Na.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});Na.registerFlag("IS_BROWSER",()=>m0());Na.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Na.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Na.registerFlag("PROD",()=>!1);Na.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Na.getBool("DEBUG"));Na.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Na.registerFlag("IS_TEST",()=>!1);Na.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);Na.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);function Va(e,t){let n=e;if(un(e))return t==="string"?[]:[e.length];if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||un(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&Z().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&f0(e,a,[]),a}function f0(e,t,n){if(n=n||[],!Array.isArray(e)&&!un(e)){$(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}$(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),$(e.length===t[0],()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);let a=t.slice(1);for(let r=0;r=0&&(r=a),g0(a,r,t,n),e==null||!un(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){let o=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${o}'`)}let s=Va(e,r);!un(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Ud(e,r):Is(e,[],!0);return P.makeTensor(i,s,r)}function wc(e,t,n,a="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((r,s)=>_(r,`${t}[${s}]`,n,a))}var y0="__op";function O(e){let t=Object.keys(e);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let n=t[0],a=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n=n+y0;let r=(...s)=>{P.startScope(n);try{let i=a(...s);return Vg(i)&&console.error("Cannot return a Promise inside of tidy."),P.endScope(i),i}catch(i){throw P.endScope(null),i}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}function d_(e,t){let n=_(e,"real","complex"),a=_(t,"imag","complex");ln(n.shape,a.shape,`real and imag shapes, ${n.shape} and ${a.shape}, must match in call to tf.complex().`);let r={real:n,imag:a};return P.runKernel(md,r)}var jr=O({complex_:d_});function qr(e,t,n,a){if(a==null&&(a=id(e)),a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!un(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(t!=null){Bg(t);let r=Ot(t),s=Ot(n);$(r===s,()=>`Based on the provided shape, [${t}], the tensor should have ${r} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `)}}return!un(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Ud(e,a):Is(e,[],!0),P.makeTensor(e,t,a)}function Yn(e,t,n){let a=Va(e,n);return qr(e,t,a,n)}var ny={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},qd=4;async function m_(e,t){let n=[],a=[],r=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let d=await l.bytes(),h=d.reduce((g,y)=>g+y.length,0)+qd*d.length,m=new Uint8Array(h),f=0;for(let g=0;g{if(t+=s.byteLength,n.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let a=new Uint8Array(t),r=0;return n.forEach(s=>{a.set(new Uint8Array(s.buffer),r),r+=s.byteLength}),a.buffer}var ay=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function x0(e){return ay?Buffer.byteLength(e):new Blob([e]).size}function g_(e){if(ay)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{t+=r.byteLength});let n=new Uint8Array(t),a=0;return e.forEach(r=>{n.set(new Uint8Array(r),a),a+=r.byteLength}),n.buffer}function v0(e){let t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);let n=e.split(t);return n[n.length-1]}function kc(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:x0(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:x0(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function b_(){let e=n=>{let a=n<<13,r=0;for(;(a&8388608)==0;)r-=8388608,a<<=1;return a&=~8388608,r+=947912704,a|r},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let n=1024;n<2048;n++)t[n]=939524096+(n-1024<<13);return t}function x_(){let e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}function v_(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function f_(){let e=b_(),t=x_(),n=v_();return a=>{let r=new ArrayBuffer(4*a.length),s=new Uint32Array(r);for(let i=0;i>10]+(o&1023)]+t[o>>10];s[i]=l}return new Float32Array(r)}}var _t=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return _t.instance==null&&(_t.instance=new _t),_t.instance}static registerSaveRouter(e){_t.getInstance().saveRouters.push(e)}static registerLoadRouter(e){_t.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return _t.getHandlers(e,"save")}static getLoadHandlers(e,t){return _t.getHandlers(e,"load",t)}static getHandlers(e,t,n){let a=[];return(t==="load"?_t.getInstance().loadRouters:_t.getInstance().saveRouters).forEach(r=>{let s=r(e,n);s!==null&&a.push(s)}),a}},w_=e=>_t.registerSaveRouter(e),k_=e=>_t.registerLoadRouter(e),I_=e=>_t.getSaveHandlers(e),N_=(e,t)=>_t.getLoadHandlers(e,t),sy="tensorflowjs",iy=1,xi="models_store",Xr="model_info_store";function w0(){if(!Z().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e=typeof window=="undefined"?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function oy(e){let t=e.result;t.createObjectStore(xi,{keyPath:"modelPath"}),t.createObjectStore(Xr,{keyPath:"modelPath"})}var vi=class{constructor(e){if(this.indexedDB=w0(),e==null||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((n,a)=>{let r=this.indexedDB.open(sy,iy);r.onupgradeneeded=()=>oy(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(xi,"readonly"),o=i.objectStore(xi).get(this.modelPath);o.onsuccess=()=>{if(o.result==null)return s.close(),a(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(o.result.modelArtifacts)},o.onerror=l=>(s.close(),a(o.error)),i.oncomplete=()=>s.close()}else{let i=kc(t),o=s.transaction(Xr,"readwrite"),l=o.objectStore(Xr),u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i}),c;u.onsuccess=()=>{c=s.transaction(xi,"readwrite");let p=c.objectStore(xi).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});p.onsuccess=()=>n({modelArtifactsInfo:i}),p.onerror=d=>{l=o.objectStore(Xr);let h=l.delete(this.modelPath);h.onsuccess=()=>(s.close(),a(p.error)),h.onerror=m=>(s.close(),a(p.error))}},u.onerror=p=>(s.close(),a(u.error)),o.oncomplete=()=>{c==null?s.close():c.oncomplete=()=>s.close()}}},r.onerror=s=>a(r.error)})}};vi.URL_SCHEME="indexeddb://";var k0=e=>Z().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(vi.URL_SCHEME)?T_(e.slice(vi.URL_SCHEME.length)):null;_t.registerSaveRouter(k0);_t.registerLoadRouter(k0);function T_(e){return new vi(e)}function S_(e){return e.startsWith(vi.URL_SCHEME)?e.slice(vi.URL_SCHEME.length):e}var C_=class{constructor(){this.indexedDB=w0()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(sy,iy);n.onupgradeneeded=()=>oy(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(Xr,"readonly"),s=r.objectStore(Xr).getAll();s.onsuccess=()=>{let i={};for(let o of s.result)i[o.modelPath]=o.modelArtifactsInfo;e(i)},s.onerror=i=>(a.close(),t(s.error)),r.oncomplete=()=>a.close()},n.onerror=a=>t(n.error)})}async removeModel(e){return e=S_(e),new Promise((t,n)=>{let a=this.indexedDB.open(sy,iy);a.onupgradeneeded=()=>oy(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(Xr,"readwrite"),i=s.objectStore(Xr),o=i.get(e),l;o.onsuccess=()=>{if(o.result==null)return r.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let u=i.delete(e),c=()=>{l=r.transaction(xi,"readwrite");let p=l.objectStore(xi).delete(e);p.onsuccess=()=>t(o.result.modelArtifactsInfo),p.onerror=d=>n(o.error)};u.onsuccess=c,u.onerror=p=>(c(),r.close(),n(o.error))}},o.onerror=u=>(r.close(),n(o.error)),s.oncomplete=()=>{l==null?r.close():l.oncomplete=()=>r.close()}},a.onerror=r=>n(a.error)})}},mr="/",Cl="tensorflowjs_models",I0="info",A_="model_topology",F_="weight_specs",__="weight_data",E_="model_metadata";function N0(e){return{info:[Cl,e,I0].join(mr),topology:[Cl,e,A_].join(mr),weightSpecs:[Cl,e,F_].join(mr),weightData:[Cl,e,__].join(mr),modelMetadata:[Cl,e,E_].join(mr)}}function $_(e){let t=e.split(mr);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(mr)}function D_(e){return e.startsWith(wi.URL_SCHEME)?e.slice(wi.URL_SCHEME.length):e}var wi=class{constructor(e){if(!Z().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=N0(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),a=kc(e);try{this.LS.setItem(this.keys.info,JSON.stringify(a)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,g_(e.weightData));let r={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};return e.signature!=null&&(r.signature=e.signature),e.userDefinedMetadata!=null&&(r.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(r.modelInitializer=e.modelInitializer),this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:a}}catch(r){throw this.LS.removeItem(this.keys.info),this.LS.removeItem(this.keys.topology),this.LS.removeItem(this.keys.weightSpecs),this.LS.removeItem(this.keys.weightData),this.LS.removeItem(this.keys.modelMetadata),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${a.modelTopologyBytes}, weightSpecsBytes=${a.weightSpecsBytes}, weightDataBytes=${a.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=n;let a=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(a==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=a;let r=this.LS.getItem(this.keys.modelMetadata);if(r!=null){let i=JSON.parse(r);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=y_(s),t}};wi.URL_SCHEME="localstorage://";var T0=e=>Z().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(wi.URL_SCHEME)?M_(e.slice(wi.URL_SCHEME.length)):null;_t.registerSaveRouter(T0);_t.registerLoadRouter(T0);function M_(e){return new wi(e)}var R_=class{constructor(){$(Z().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),$(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=Cl+mr,n=mr+I0;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(Al)&&(e=e.slice(0,e.indexOf(Al))),$(e.length>0,()=>"scheme must not be an empty string.");let n=Jn.getInstance();$(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=this.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}};function Xd(e){if(e.indexOf(Al)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Jn.getSchemes().join(",")}`);return{scheme:e.split(Al)[0],path:e.split(Al)[1]}}async function S0(e,t,n=!1){$(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=_t.getLoadHandlers(e);$(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),$(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=_t.getSaveHandlers(t);$(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),$(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=Xd(e).scheme,l=Xd(e).path,u=o===Xd(e).scheme,c=await r.load();n&&u&&await Jn.getManager(o).removeModel(l);let p=await i.save(c);return n&&!u&&await Jn.getManager(o).removeModel(l),p.modelArtifactsInfo}async function P_(){let e=Jn.getSchemes(),t={};for(let n of e){let a=await Jn.getManager(n).listModels();for(let r in a){let s=n+Al+r;t[s]=a[r]}}return t}async function O_(e){let t=Xd(e);return Jn.getManager(t.scheme).removeModel(t.path)}async function L_(e,t){return S0(e,t,!1)}async function z_(e,t){return S0(e,t,!0)}var W_=class{fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}};if(Z().get("IS_BROWSER")){Z().setPlatform("browser",new W_);try{Jn.registerManager(wi.URL_SCHEME,new R_)}catch(e){}try{Jn.registerManager(vi.URL_SCHEME,new C_)}catch(e){}}var B_={importFetch:()=>GA()},ly,V_=class{constructor(){this.util=require("util"),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return Z().global.fetch!=null?Z().global.fetch(e,t):(ly==null&&(ly=B_.importFetch()),ly(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};Z().get("IS_NODE")&&Z().setPlatform("node",new V_);function Le(e,t="float32",n){return t=t||"float32",Bg(e),new Lt(e,t,n)}function U_(e,t){let n=_(e,"x","cast");if(!Jw(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&n.dtype!=="string"||t!=="string"&&n.dtype==="string")throw new Error("Only strings can be casted to strings");let a={x:n},r={dtype:t};return P.runKernel(As,a,r)}var ue=O({cast_:U_});function G_(e){let t={x:_(e,"x","clone","string_or_numeric")};return P.runKernel(Bs,t)}var Kr=O({clone_:G_});function C0(e,t=!1){console.log(e.toString(t))}h0();var H_={buffer:Le,cast:ue,clone:Kr,print:C0};a_(H_);var jt={};Oe(jt,{browserFiles:()=>j_,browserHTTPRequest:()=>X_,concatenateArrayBuffers:()=>ry,copyModel:()=>L_,decodeWeights:()=>b0,encodeWeights:()=>m_,fromMemory:()=>K_,getLoadHandlers:()=>N_,getModelArtifactsInfoForJSON:()=>kc,getSaveHandlers:()=>I_,http:()=>cy,isHTTPScheme:()=>uy,listModels:()=>P_,loadWeights:()=>q_,moveModel:()=>z_,registerLoadRouter:()=>k_,registerSaveRouter:()=>w_,removeModel:()=>O_,weightsLoaderFactory:()=>A0,withSaveHandler:()=>Y_});var J_="model",Q_=".json",Z_=".weights.bin";function F0(e){return new Promise(t=>setTimeout(t)).then(e)}var Fl=class{constructor(e){if(!Z().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(Fl.URL_SCHEME)&&(e=e.slice(Fl.URL_SCHEME.length)),(e==null||e.length===0)&&(e=J_),this.modelTopologyFileName=e+Q_,this.weightDataFileName=e+Z_}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer);let r=window.URL.createObjectURL(new Blob([JSON.stringify(a)],{type:"application/json"})),s=this.jsonAnchor==null?document.createElement("a"):this.jsonAnchor;if(s.download=this.modelTopologyFileName,s.href=r,await F0(()=>s.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await F0(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:kc(e)}}}};Fl.URL_SCHEME="downloads://";var eE=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){let e=this.files[0],t=this.files.slice(1);return new Promise((n,a)=>{let r=new FileReader;r.onload=s=>{let i=JSON.parse(s.target.result),o=i.modelTopology;if(o==null){a(new Error(`modelTopology field is missing from file ${e.name}`));return}t.length===0&&n({modelTopology:o});let l=i.weightsManifest;if(l==null){a(new Error(`weightManifest field is missing from file ${e.name}`));return}let u;try{u=this.checkManifestAndWeightFiles(l,t)}catch(h){a(h);return}let c=[],p=[],d=[];l.forEach(h=>{h.paths.forEach(m=>{p.push(m),d.push(null)}),c.push(...h.weights)}),l.forEach(h=>{h.paths.forEach(m=>{let f=new FileReader;f.onload=g=>{let y=g.target.result,b=p.indexOf(m);if(d[b]=y,d.indexOf(null)===-1){let x={modelTopology:o,weightSpecs:c,weightData:ry(d),format:i.format,generatedBy:i.generatedBy,convertedBy:i.convertedBy};i.signature!=null&&(x.signature=i.signature),i.userDefinedMetadata!=null&&(x.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(x.modelInitializer=i.modelInitializer),n(x)}},f.onerror=g=>a(`Failed to weights data from file of path '${m}'.`),f.readAsArrayBuffer(u[m])})})},r.onerror=s=>a(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),r.readAsText(e)})}checkManifestAndWeightFiles(e,t){let n=[],a=t.map(s=>v0(s.name)),r={};for(let s of e)s.paths.forEach(i=>{let o=v0(i);if(n.indexOf(o)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${o}'`);if(n.push(o),a.indexOf(o)===-1)throw new Error(`Weight file with basename '${o}' is not provided.`);r[i]=t[a.indexOf(o)]});if(n.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${n.length}) and the number of weight files provided (${t.length}).`);return r}},nE=e=>Z().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Fl.URL_SCHEME)?tE(e.slice(Fl.URL_SCHEME.length)):null;_t.registerSaveRouter(nE);function tE(e="model"){return new Fl(e)}function j_(e){return new eE(e)}function _0(e,t,n,a){i(e),n=n==null?0:n,a=a==null?1:a,o(n,a);let r=0,s=l=>(l.then(u=>{let c=n+ ++r/e.length*(a-n);return t(c),u}),l);function i(l){$(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(l,u){$(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),$(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${u}`),$(u>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${u}`)}return Promise.all(e.map(s))}async function E0(e,t){t==null&&(t={});let n=t.fetchFunc==null?Z().platform.fetch:t.fetchFunc,a=e.map(u=>n(u,t.requestInit,{isBinary:!0})),r=0,s=.5,i=(t.onProgress==null?await Promise.all(a):await _0(a,t.onProgress,r,s)).map(u=>u.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await _0(i,t.onProgress,o,l)}async function q_(e,t="",n,a){return A0(r=>E0(r,{requestInit:a}))(e,t,n)}function A0(e){return async(t,n="",a)=>{let r=t.map(()=>!1),s={},i=a!=null?a.map(()=>!1):[],o=[];if(t.forEach((h,m)=>{let f=0;h.weights.forEach(g=>{let y="quantization"in g?g.quantization.dtype:g.dtype,b=ny[y]*Ot(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:b})};a!=null?a.forEach((v,k)=>{v===g.name&&(x(),i[k]=!0)}):x(),o.push(g.name),f+=b})}),!i.every(h=>h)){let h=a.filter((m,f)=>!i[f]);throw new Error(`Could not find weights in manifest with names: ${h.join(", ")}. +Manifest JSON has weights with names: ${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 c=await e(u),p={},d=0;return l.forEach(h=>{let m=t[h].paths.length,f=0;for(let x=0;x{let v=g.slice(x.groupOffset,x.groupOffset+x.sizeBytes),k=b0(v,[x.manifestEntry]);for(let w in k)p[w]=k[w]}),d+=m}),p}}var aE="application/octet-stream",rE="application/json",py=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?($(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=Z().platform.fetch,$(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&$(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer),t.body.append("model.json",new Blob([JSON.stringify(a)],{type:rE}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:aE}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:kc(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async load(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(h){let m=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?m+=" 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.":m+=" Please make sure the server is serving valid JSON for this request.",new Error(m)}let n=t.modelTopology,a=t.weightsManifest,r=t.generatedBy,s=t.convertedBy,i=t.format,o=t.signature,l=t.userDefinedMetadata;if(n==null&&a==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let u,c;a!=null&&([u,c]=await this.loadWeights(a));let p={modelTopology:n,weightSpecs:u,weightData:c,generatedBy:r,convertedBy:s,format:i};o!=null&&(p.signature=o),l!=null&&(p.userDefinedMetadata=l);let d=t.modelInitializer;return d&&(p.modelInitializer=d),p}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=sE(t),r=this.weightPathPrefix||n,s=[];for(let u of e)s.push(...u.weights);let i=[],o=[];for(let u of e)for(let c of u.paths)this.weightUrlConverter!=null?o.push(this.weightUrlConverter(c)):i.push(r+c+a);this.weightUrlConverter&&i.push(...await Promise.all(o));let l=await E0(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,ry(l)]}};py.URL_SCHEME_REGEX=/^https?:\/\//;function sE(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function uy(e){return e.match(py.URL_SCHEME_REGEX)!=null}var $0=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>uy(a)):n=uy(e),n)return cy(e,t)}return null};_t.registerSaveRouter($0);_t.registerLoadRouter($0);function cy(e,t){return new py(e,t)}function X_(e,t){return cy(e,t)}var dy=class{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}},iE=class{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}};function K_(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new dy(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new dy({modelTopology:e})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new dy({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function Y_(e){return new iE(e)}var D0={};Oe(D0,{confusionMatrix:()=>oE});function lE(e,t,n=!1,a=!1){let r=_(e,"a","matMul"),s=_(t,"b","matMul");[r,s]=Tt(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return P.runKernel(Cs,i,o)}var ze=O({matMul_:lE});function uE(e,t,n=1,a=0){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let r={indices:_(e,"indices","oneHot","int32")},s={depth:t,onValue:n,offValue:a};return P.runKernel(Js,r,s)}var _l=O({oneHot_:uE});function cE(e,t){let n=_(e,"x","transpose");if(t==null&&(t=n.shape.map((s,i)=>i).reverse()),$(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(s=>{$(s>=0&&s`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let a={x:n},r={perm:t};return P.runKernel(fi,a,r)}var Ve=O({transpose_:cE});function pE(e,t,n){let a=_(e,"labels","confusionMatrix"),r=_(t,"predictions","confusionMatrix");$(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),$(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),$(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),$(a.shape[0]===r.shape[0],()=>`Mismatch in the number of examples: ${a.shape[0]} vs. ${r.shape[0]}. Labels and predictions should have the same number of elements.`),$(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=_l(ue(a,"int32"),n),i=_l(ue(r,"int32"),n),o=Ve(s),l=ze(o,i);return ue(l,"int32")}var oE=O({confusionMatrix_:pE}),ki={};Oe(ki,{fromPixels:()=>mE,fromPixelsAsync:()=>dE,toPixels:()=>hE});function Kd(e,t,n){if(ks(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=Va(e,n);if(a.length!==3&&a.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return qr(e,t,a,n)}var El;function M0(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,a=!1,r=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)a=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)r=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)s=!0;else if(e.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap)o=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(r){let d=2;if(r&&e.readyState element.")}if(Bd(Wd,P.backendName)!=null){let d={pixels:e},h={numChannels:t};return P.runKernel(Wd,d,h)}let[l,u]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height],c;i?c=e.getContext("2d").getImageData(0,0,l,u).data:a||n?c=e.data:(s||r||o)&&(El==null&&(El=document.createElement("canvas").getContext("2d")),El.canvas.width=l,El.canvas.height=u,El.drawImage(e,0,0,l,u),c=El.getImageData(0,0,l,u).data);let p;if(t===4)p=new Int32Array(c);else{let d=l*u;p=new Int32Array(d*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(n.dtype!=="float32"&&n.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);let i=await n.data(),o=n.dtype==="float32"?255:1,l=new Uint8ClampedArray(r*a*4);for(let u=0;u1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${h}.`)}else if(n.dtype==="int32"&&(h<0||h>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${h}.`);s===1?(c[0]=h*o,c[1]=h*o,c[2]=h*o):c[d]=h*o}let p=u*4;l[p+0]=Math.round(c[0]),l[p+1]=Math.round(c[1]),l[p+2]=Math.round(c[2]),l[p+3]=Math.round(c[3])}if(t!=null){t.width=r,t.height=a;let u=t.getContext("2d"),c=new ImageData(l,r,a);u.putImageData(c,0,0)}return n!==e&&n.dispose(),l}var mE=O({fromPixels_:M0}),hy={};Oe(hy,{prepareAndValidate:()=>R0});function R0(e,t){let n=e.shape.length,a=t.shape.length;if(n<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${n}.`);if(a<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${a}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[a-1]>n)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[a-1]} vs. ${n}`);if(Ot(e.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);let r=t.shape,s=r[r.length-1],i=1;for(let p=0;pp/u),1].slice(0,s);return[l,i,u,c]}var my={};Oe(my,{calculateShapes:()=>P0,validateInput:()=>gy,validateUpdateShape:()=>fy});function fy(e,t,n){let a=t.rank>1?t.shape[t.rank-1]:1,r=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${n.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${a}, and batchDim: ${r}.`;if(n.rank1?t.shape[a-1]:1,s=n.length,i=1;for(let p=r;pxE,computeFlatOffset:()=>wE,computeOutShape:()=>O0,getNormalizedAxes:()=>z0,isSliceContinous:()=>vE,maskToAxes:()=>Yd,parseSliceParams:()=>H0,sliceInfo:()=>kE,startForAxis:()=>U0,startIndicesWithElidedDims:()=>W0,stopForAxis:()=>G0,stopIndicesWithElidedDims:()=>B0,stridesForAxis:()=>V0,stridesWithElidedDims:()=>L0});function xE(e,t,n){let a=e.shape.length;$(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),$(a===n.length,()=>`Error in slice${a}D: Length of size ${n} must match the rank of the array (${a}).`);for(let r=0;r`Error in slice${a}D: begin[${r}] + size[${r}] (${t[r]+n[r]}) would overflow input.shape[${r}] (${e.shape[r]})`)}function Yd(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function O0(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;c=W0(i,h,m,a,e),p=B0(o,h,m,r,e),d=L0(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=j0(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=j0(t,n,o),u=a[l];e&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),i=qu(0,i,l-1),i}function G0(e,t,n,a,r,s){let i=t[r],o=n[r]||1;(e&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),o>0?i=qu(0,i,l):i=qu(-1,i,l-1),i}function vE(e,t,n){let a=n.length;for(let r=0;r1){a=r;break}for(let r=a+1;r0||n[r]!==e[r])return!1;return!0}function wE(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{$(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return n==null?s=new Array(r).fill(-1):typeof n=="number"?s=[n,...new Array(r-1).fill(-1)]:n.lengthi>=0?i:($(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${o}.`),e.shape[o]-a[o])),[a,s]}function kE(e,t,n,a,r,s,i,o,l){let u=t.slice(),c=n.slice(),p=a;a==null&&(p=new Array(u.length));let d=Yd(i);if(d.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(i!==0&&o!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(i!==0&&l!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let h=e.length-u.length,m=Yd(o),f=e.slice();m.forEach(w=>{u[w]=0,c[w]=1,f.splice(w,0,1)});let{begin:g,end:y,strides:b}=z0(f,d,h,u,c,p,r,s,i);u=g,c=y,p=b;let x=Yd(l);x.forEach(w=>{c[w]=u[w]+1,p[w]=1});let v=O0(u,c,p),k=v.filter((w,S)=>x.indexOf(S)===-1);return{nonStrided:p.every(w=>w===1),$begin:u,$end:c,$strides:p,size:v,newShape:f,outShape:k}}var re={};Oe(re,{Serializable:()=>X0,SerializationMap:()=>Ii,registerClass:()=>Yr});var X0=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Ii=class{constructor(){this.classNameMap={}}static getMap(){return Ii.instance==null&&(Ii.instance=new Ii),Ii.instance}static register(e){Ii.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function Yr(e){$(e.className!=null,()=>"Class being registered does not have the static className property defined."),$(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),$(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Ii.register(e)}var K0={};Oe(K0,{TEST_EPSILON_FLOAT16:()=>Y0,encodeStrings:()=>J0,expectArrayBuffersEqual:()=>AE,expectArraysClose:()=>IE,expectArraysEqual:()=>TE,expectNumbersClose:()=>SE,expectPromiseToFail:()=>NE,expectValuesInRange:()=>CE,testEpsilon:()=>yy});var FE=.001,Y0=.1;function IE(e,t,n){return n==null&&(n=yy()),by(e,t,(a,r)=>xy(a,r,n))}function yy(){return P.backend.floatPrecision()===32?FE:Y0}function by(e,t,n){let a=!0;if((un(e)||un(t))&&(a=!1),un(e)&&un(t)&&(a=!0),a){let i=e.constructor.name,o=t.constructor.name;if(i!==o)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${o}`)}if(Array.isArray(e)&&Array.isArray(t)){let i=Va(e),o=Va(t);if(!hr(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=un(e)?e:Is(e),s=un(t)?t:Is(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}. Actual: ${r}. Expected: ${s}.`);for(let i=0;it.fail(),()=>t())}function tA(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return zr(e)||zr(e[0])||zr(t)||zr(t[0])?yy(e,n,(a,r)=>a==r):yy(e,t,(a,r)=>by(a,r,0))}function nA(e,t,n){if(n==null&&(n=gy()),!by(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`)}function by(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function aA(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function rA(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}function X0(e){for(let t=0;tt.dispose())}function jt(e){return M.keep(e)}function pA(e){return M.time(e)}function dA(e){return M.setBackend(e)}function hA(){return M.ready()}function mA(){return M.backendName}function fA(e){M.removeBackend(e)}function gA(e){return M.findBackend(e)}function yA(e){return M.findBackendFactory(e)}function Jd(e,t,n=1){return M.registerBackend(e,t,n)}function J0(){return M.backend}function bA(e,t){ee().setPlatform(e,t)}function xA(e,t){let n=E(e,"a","add"),a=E(t,"b","add");[n,a]=Tt(n,a);let r={a:n,b:a};return M.runKernel(Wr,r)}var J=P({add_:xA});function vA(e,t){let n=E(e,"a","floorDiv"),a=E(t,"b","floorDiv");[n,a]=Tt(n,a);let r={a:n,b:a};return M.runKernel(Ls,r)}var Qd=P({floorDiv_:vA});function wA(e,t){let n=E(e,"a","div"),a=E(t,"b","div");if([n,a]=Tt(n,a),n.dtype==="int32"&&a.dtype==="int32")return Qd(n,a);let r={a:n,b:a},s={};return M.runKernel(Ms,r,s)}var xe=P({div_:wA});function kA(e,t){let n=E(e,"a","mul"),a=E(t,"b","mul");[n,a]=Tt(n,a);let r={a:n,b:a};return M.runKernel(Ys,r)}var L=P({mul_:kA});function IA(e){let t=E(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return M.runKernel(Qu,n)}else{let n={x:t};return M.runKernel(So,n)}}var Lt=P({abs_:IA});function TA(e){let t={x:E(e,"x","acos")};return M.runKernel(Co,t)}var vy=P({acos_:TA});function NA(e){let t={x:E(e,"x","acosh")};return M.runKernel(_o,t)}var wy=P({acosh_:NA});function SA(e){F(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),F(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((r,s)=>E(r,`tensors${s}`,"addN")),n=t[0];t.forEach(r=>{if(r.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(r=>{if(!hr(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return M.runKernel(Ts,a)}var Q0=P({addN_:SA});function CA(e,t=null,n=!1){let a={x:E(e,"x","all","bool")},r={axis:t,keepDims:n};return M.runKernel(ld,a,r)}var Zd=P({all_:CA});function _A(e,t=null,n=!1){let a={x:E(e,"x","any","bool")},r={axis:t,keepDims:n};return M.runKernel(ud,a,r)}var kc=P({any_:_A});function EA(e,t=0){let n={x:E(e,"x","argMax")},a={axis:t};return M.runKernel(Ns,n,a)}var Ic=P({argMax_:EA});function FA(e,t=0){let n={x:E(e,"x","argMin")},a={axis:t};return M.runKernel(Xu,n,a)}var ky=P({argMin_:FA});function AA(e){let t={x:E(e,"x","asin")};return M.runKernel(Eo,t)}var Iy=P({asin_:AA});function $A(e){let t={x:E(e,"x","asinh")};return M.runKernel(Fo,t)}var Ty=P({asinh_:$A});function DA(e){let t={x:E(e,"x","atan")};return M.runKernel(Ao,t)}var Ny=P({atan_:DA});function RA(e,t){let n=E(e,"a","atan2"),a=E(t,"b","atan2");[n,a]=Tt(n,a);let r={a:n,b:a};return M.runKernel(Do,r)}var Sy=P({atan2_:RA});function MA(e){let t={x:E(e,"x","atanh")};return M.runKernel($o,t)}var Cy=P({atanh_:MA});function PA(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=Z0(r);return Tc(e,o,n,s,a,null,null,l)}function ek(e,t,n,a,r,s,i="channelsLast"){let[o,l]=eh(t),c;if(i==="channelsLast")c=[o,l,e[3],e[3]];else if(i==="channelsFirst")c=[o,l,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return Tc(e,c,n,a,r,s,!1,i)}function OA(e,t,n,a,r,s,i="NDHWC"){let[o,l,c]=_y(t),u,p;if(i==="NDHWC")p="channelsLast",u=[o,l,c,e[4],e[4]];else if(i==="NCDHW")p="channelsFirst",u=[o,l,c,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return tk(e,u,n,a,r,!1,p,s)}function Tc(e,t,n,a,r,s,i=!1,o="channelsLast"){let[l,c,u,p]=[-1,-1,-1,-1];if(o==="channelsLast")[l,c,u,p]=e;else if(o==="channelsFirst")[l,p,c,u]=e;else throw new Error(`Unknown dataFormat ${o}`);let[d,h,,m]=t,[f,g]=eh(n),[y,b]=eh(a),x=$l(d,y),v=$l(h,b),{padInfo:N,outHeight:T,outWidth:S}=LA(r,c,u,f,g,x,v,s,o),A=i?m*p:m,$;return o==="channelsFirst"?$=[l,A,T,S]:o==="channelsLast"&&($=[l,T,S,A]),{batchSize:l,dataFormat:o,inHeight:c,inWidth:u,inChannels:p,outHeight:T,outWidth:S,outChannels:A,padInfo:N,strideHeight:f,strideWidth:g,filterHeight:d,filterWidth:h,effectiveFilterHeight:x,effectiveFilterWidth:v,dilationHeight:y,dilationWidth:b,inShape:e,outShape:$,filterShape:t}}function tk(e,t,n,a,r,s=!1,i="channelsLast",o){let[l,c,u,p,d]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,c,u,p,d]=e;else if(i==="channelsFirst")[l,d,c,u,p]=e;else throw new Error(`Unknown dataFormat ${i}`);let[h,m,f,,g]=t,[y,b,x]=_y(n),[v,N,T]=_y(a),S=$l(h,v),A=$l(m,N),$=$l(f,T),{padInfo:R,outDepth:B,outHeight:V,outWidth:W}=zA(r,c,u,p,y,b,x,S,A,$,o),G=s?g*d:g,H;return i==="channelsFirst"?H=[l,G,B,V,W]:i==="channelsLast"&&(H=[l,B,V,W,G]),{batchSize:l,dataFormat:i,inDepth:c,inHeight:u,inWidth:p,inChannels:d,outDepth:B,outHeight:V,outWidth:W,outChannels:G,padInfo:R,strideDepth:y,strideHeight:b,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:S,effectiveFilterHeight:A,effectiveFilterWidth:$,dilationDepth:v,dilationHeight:N,dilationWidth:T,inShape:e,outShape:H,filterShape:t}}function BA(e,t,n,a,r){a==null&&(a=Ey(e,t,n));let s=e[0],i=e[1],o=Ti((s-t+2*a)/n+1,r),l=Ti((i-t+2*a)/n+1,r);return[o,l]}function WA(e,t,n,a,r,s){r==null&&(r=Ey(e,t,a));let i=e[0],o=e[1],l=e[2],c=Ti((i-t+2*r)/a+1,s),u=Ti((o-t+2*r)/a+1,s),p=Ti((l-t+2*r)/a+1,s);return[c,u,p,n]}function Ey(e,t,n,a=1){let r=$l(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function eh(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function _y(e){return typeof e=="number"?[e,e,e]:e}function $l(e,t){return t<=1?e:e+(e-1)*(t-1)}function LA(e,t,n,a,r,s,i,o,l){let c,u,p;if(typeof e=="number"){c={top:e,bottom:e,left:e,right:e,type:e===0?"VALID":"NUMBER"};let d=BA([t,n],s,a,e,o);u=d[0],p=d[1]}else if(e==="same"){u=Math.ceil(t/a),p=Math.ceil(n/r);let d=Math.max(0,(u-1)*a+s-t),h=Math.max(0,(p-1)*r+i-n),m=Math.floor(d/2),f=d-m,g=Math.floor(h/2),y=h-g;c={top:m,bottom:f,left:g,right:y,type:"SAME"}}else if(e==="valid")c={top:0,bottom:0,left:0,right:0,type:"VALID"},u=Math.ceil((t-s+1)/a),p=Math.ceil((n-i+1)/r);else if(typeof e=="object"){let d=l==="channelsLast"?e[1][0]:e[2][0],h=l==="channelsLast"?e[1][1]:e[2][1],m=l==="channelsLast"?e[2][0]:e[3][0],f=l==="channelsLast"?e[2][1]:e[3][1];c={top:d,bottom:h,left:m,right:f,type:d===0&&h===0&&m===0&&f===0?"VALID":"EXPLICIT"},u=Ti((t-s+d+h)/a+1,o),p=Ti((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:c,outHeight:u,outWidth:p}}function zA(e,t,n,a,r,s,i,o,l,c,u){let p,d,h,m;if(typeof e=="number"){p={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=WA([t,n,a,1],o,1,r,e,u);d=f[0],h=f[1],m=f[2]}else if(e==="same"){d=Math.ceil(t/r),h=Math.ceil(n/s),m=Math.ceil(a/i);let f=(d-1)*r+o-t,g=(h-1)*s+l-n,y=(m-1)*i+c-a,b=Math.floor(f/2),x=f-b,v=Math.floor(g/2),N=g-v,T=Math.floor(y/2),S=y-T;p={top:v,bottom:N,left:T,right:S,front:b,back:x,type:"SAME"}}else if(e==="valid")p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},d=Math.ceil((t-o+1)/r),h=Math.ceil((n-l+1)/s),m=Math.ceil((a-c+1)/i);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:p,outDepth:d,outHeight:h,outWidth:m}}function Ti(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function Jr(e){let[t,n,a]=eh(e);return t===1&&n===1&&a===1}function Ga(e,t){return Jr(e)||Jr(t)}function Z0(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function VA(e,t){let n={x:E(e,"x","reshape","string_or_numeric")},a={shape:t};return M.runKernel(cl,n,a)}var U=P({reshape_:VA});function UA(e,t,n,a,r){let s=E(e,"x","avgPool","float32"),i=1;F(Ga(n,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`);let o=s,l=!1;s.rank===3&&(l=!0,o=U(s,[1,s.shape[0],s.shape[1],s.shape[2]])),F(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),r!=null&&F(Gt(a),()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r},p=M.runKernel(Ss,c,u);return p=ue(p,s.dtype),l?U(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Qn=P({avgPool_:UA});function GA(e,t,n,a,r,s="NDHWC"){let i=E(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=U(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),F(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),F(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),r!=null&&F(Gt(a),()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},p=M.runKernel(Yu,c,u);return p=ue(p,o.dtype),l?U(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Fy=P({avgPool3d_:GA});function HA(e,t=0){F(e.length>=1,()=>"Pass at least one tensor to concat");let n=vc(e,"tensors","concat","string_or_numeric");if(n[0].dtype==="complex64"&&n.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor - with dtype ${s.dtype}. `)}),n.length===1)return Xr(n[0]);let a=n,r={axis:t};return M.runKernel(Ro,a,r)}var Je=P({concat_:HA});function jA(e){let t={x:E(e,"x","sigmoid")};return M.runKernel(li,t)}var ca=P({sigmoid_:jA});function qA(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 M.runKernel(ml,r,s)}var We=P({slice_:qA});function KA(e){let t={x:E(e,"x","tanh")};return M.runKernel(mi,t)}var Dl=P({tanh_:KA});function XA(e,t,n,a,r,s){let i=E(e,"forgetBias","basicLSTMCell"),o=E(t,"lstmKernel","basicLSTMCell"),l=E(n,"lstmBias","basicLSTMCell"),c=E(a,"data","basicLSTMCell"),u=E(r,"c","basicLSTMCell"),p=E(s,"h","basicLSTMCell"),d=Je([c,p],1),h=ze(d,o),m=J(h,l),f=m.shape[0],g=m.shape[1]/4,y=[f,g],b=We(m,[0,0],y),x=We(m,[0,g],y),v=We(m,[0,g*2],y),N=We(m,[0,g*3],y),T=J(L(ca(b),Dl(x)),L(u,ca(J(i,v)))),S=L(Dl(T),ca(N));return[T,S]}var YA=P({basicLSTMCell_:XA});function JA(e,t,n){let a=E(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);F(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),F(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),F(a.shape[0]%r==0,()=>`input tensor batch is ${a.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${r}`);let s={x:a},i={blockShape:t,crops:n};return M.runKernel(Ju,s,i)}var Nc=P({batchToSpaceND_:JA});function QA(e){let t;return e.rank===0||e.rank===1?t=U(e,[1,1,1,e.size]):e.rank===2?t=U(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=U(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function ZA(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"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;a!=null&&(u=E(a,"offset","batchNorm")),F(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),F(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),F(c==null||o.rank===c.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let p={x:QA(i),scale:c,offset:u,mean:o,variance:l},d={varianceEpsilon:s},h=M.runKernel(zs,p,d);return U(h,i.shape)}var fr=P({batchNorm_:ZA});function e$(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;return a!=null&&(u=E(a,"offset","batchNorm")),F(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),F(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`),F(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),c!=null&&F(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${c.rank}.`),u!=null&&F(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${u.rank}.`),fr(i,o,l,u,c,s)}var nk=P({batchNorm2d_:e$});function t$(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;return a!=null&&(u=E(a,"offset","batchNorm")),F(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),F(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`),F(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),c!=null&&F(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${c.rank}.`),u!=null&&F(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${u.rank}.`),fr(i,o,l,u,c,s)}var ak=P({batchNorm3d_:t$});function n$(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;return a!=null&&(u=E(a,"offset","batchNorm")),F(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),F(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`),F(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),c!=null&&F(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${c.rank}.`),u!=null&&F(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${u.rank}.`),fr(i,o,l,u,c,s)}var rk=P({batchNorm4d_:n$});function a$(e,t,n){let a=E(e,"x","bincount"),r=E(t,"weights","bincount");F(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),F(n>=0,()=>`size must be non-negative, but got ${n}.`),F(r.size===a.size||r.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${a.shape}, weights shape: ${r.shape}.`);let s={x:a,weights:r},i={size:n};return M.runKernel(dd,s,i)}var sk=P({bincount_:a$});function r$(e,t){let n=E(e,"broadcastTo","x"),a=n.shape;if(t.some(l=>!(l>0)||l%1!=0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthn.rank){let l=n.shape.slice();for(;l.length=0;l--)if(r[l]===t[l])s[l]=1;else if(n.shape[l]!==1)throw new Error(`broadcastTo(): [${a}] cannot be broadcast to [${t}].`);if(s.map((l,c)=>l>1?c:-1).filter(l=>l>=0).length===0)return Xr(n);let i={x:n},o={reps:s};return M.runKernel(Ur,i,o)}var Sc=P({broadcastTo_:r$});function s$(e){let t={x:E(e,"x","ceil")};return M.runKernel(Es,t)}var Ay=P({ceil_:s$});function i$(e,t,n){let a=E(e,"x","clipByValue");F(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`);let r={x:a},s={clipValueMin:t,clipValueMax:n};return M.runKernel(Vr,r,s)}var qt=P({clipByValue_:i$});function o$(e){return Je(e,0)}var ik=P({concat1d_:o$});function l$(e,t){return Je(e,t)}var ok=P({concat2d_:l$});function u$(e,t){return Je(e,t)}var lk=P({concat3d_:u$});function c$(e,t){return Je(e,t)}var uk=P({concat4d_:c$});function p$(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","conv2d"),l=E(t,"filter","conv2d"),c=o,u=!1;o.rank===3&&(u=!0,c=U(o,[1,o.shape[0],o.shape[1],o.shape[2]])),F(c.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${c.rank}.`),F(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),i!=null&&F(Gt(a),()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`);let p=r==="NHWC"?c.shape[3]:c.shape[1];F(p===l.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${l.shape[2]}.`),F(Ga(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let d={x:c,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=M.runKernel(Fs,d,h);return u?U(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Ft=P({conv2d_:p$});function d$(e,t,n,a,r="NWC",s=1,i){let o=E(e,"x","conv1d"),l=E(t,"filter","conv1d"),c=o,u=!1;o.rank===2&&(u=!0,c=U(o,[1,o.shape[0],o.shape[1]])),F(c.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${c.rank}.`),F(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),i!=null&&F(Gt(a),()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`),F(c.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${c.shape[2]}) must match input depth for filter ${l.shape[1]}.`),F(Ga(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),F(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let p=U(l,[1,l.shape[0],l.shape[1],l.shape[2]]),d=U(c,[c.shape[0],1,c.shape[1],c.shape[2]]),h=Ft(d,p,[1,n],a,"NHWC",[1,s],i);return u?U(h,[h.shape[2],h.shape[3]]):U(h,[h.shape[0],h.shape[2],h.shape[3]])}var th=P({conv1d_:d$});function h$(e,t,n,a,r,s="NHWC",i){F(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let o=e,l=t,c=!1;t.rank===3&&(c=!0,l=U(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),F(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),F(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),F(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);let u=s==="NHWC"?o[3]:o[1],p=s==="NHWC"?l.shape[3]:l.shape[1];F(u===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${u}) must match input depth for filter ${n.shape[2]}.`),F(p===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${n.shape[3]}.`),i!=null&&F(Gt(r),()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`);let d={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=M.runKernel(As,d,h);return c?U(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var $y=P({conv2DBackpropInput_:h$});function m$(e,t,n,a,r,s){let i=E(e,"x","conv2dTranspose"),o=E(t,"filter","conv2dTranspose");return $y(n,i,o,a,r,"NHWC",s)}var nh=P({conv2dTranspose_:m$});function f$(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=E(e,"x","conv3d"),o=E(t,"filter","conv3d"),l=i,c=!1;i.rank===4&&(c=!0,l=U(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),F(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),F(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),F(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),F(Ga(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),F(r==="NDHWC",()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`);let u={x:l,filter:o},p={strides:n,pad:a,dataFormat:r,dilations:s},d=M.runKernel(Zu,u,p);return c?U(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Dy=P({conv3d_:f$});function g$(e,t,n,a,r){F(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let s=e,i=t,o=!1;t.rank===4&&(o=!0,i=U(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,e[0],e[1],e[2],e[3]]);let l=s[4],c=i.shape[4];F(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),F(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),F(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),F(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),F(c===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${c}) must match output depth for filter ${n.shape[4]}.`);let u={dy:i,filter:n},p={pad:r,strides:a,inputShape:s},d=M.runKernel(gd,u,p);return o?U(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var ck=P({conv3DBackpropInput_:g$});function y$(e,t,n,a,r){let s=E(e,"x","conv3dTranspose"),i=E(t,"filter","conv3dTranspose");return ck(n,s,i,a,r)}var b$=P({conv3dTranspose_:y$});function x$(e){let t={x:E(e,"x","cos")};return M.runKernel($s,t)}var Cc=P({cos_:x$});function v$(e){let t={x:E(e,"x","cosh")};return M.runKernel(Mo,t)}var ah=P({cosh_:v$});function w$(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return M.runKernel(Ds,r,s)}var rh=P({cumsum_:w$});function k$(e,t,n,a=!1){let r=E(e,"x","denseBincount"),s=E(t,"weights","denseBincount");F(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),F(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),F(n>=0,()=>`size must be non-negative, but got ${n}.`),F(s.size===r.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${r.shape}, weights shape: ${s.shape}.`);let i={x:r,weights:s},o={size:n,binaryOutput:a};return M.runKernel(yd,i,o)}var pk=P({denseBincount_:k$});function I$(e,t,n="NHWC"){let a=E(e,"x","depthToSpace"),r=n==="NHWC"?a.shape[1]:a.shape[2],s=n==="NHWC"?a.shape[2]:a.shape[3],i=n==="NHWC"?a.shape[3]:a.shape[1];F(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying +Expected: ${s}.`)}}function NE(e,t){e().then(()=>t.fail(),()=>t())}function TE(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return zr(e)||zr(e[0])||zr(t)||zr(t[0])?by(e,n,(a,r)=>a==r):by(e,t,(a,r)=>xy(a,r,0))}function SE(e,t,n){if(n==null&&(n=yy()),!xy(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`)}function xy(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function CE(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function AE(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}function J0(e){for(let t=0;tt.dispose())}function qt(e){return P.keep(e)}function RE(e){return P.time(e)}function PE(e){return P.setBackend(e)}function OE(){return P.ready()}function LE(){return P.backendName}function zE(e){P.removeBackend(e)}function WE(e){return P.findBackend(e)}function BE(e){return P.findBackendFactory(e)}function Qd(e,t,n=1){return P.registerBackend(e,t,n)}function Z0(){return P.backend}function VE(e,t){Z().setPlatform(e,t)}function UE(e,t){let n=_(e,"a","add"),a=_(t,"b","add");[n,a]=Tt(n,a);let r={a:n,b:a};return P.runKernel(Br,r)}var J=O({add_:UE});function GE(e,t){let n=_(e,"a","floorDiv"),a=_(t,"b","floorDiv");[n,a]=Tt(n,a);let r={a:n,b:a};return P.runKernel(Ls,r)}var Zd=O({floorDiv_:GE});function HE(e,t){let n=_(e,"a","div"),a=_(t,"b","div");if([n,a]=Tt(n,a),n.dtype==="int32"&&a.dtype==="int32")return Zd(n,a);let r={a:n,b:a},s={};return P.runKernel(Rs,r,s)}var xe=O({div_:HE});function jE(e,t){let n=_(e,"a","mul"),a=_(t,"b","mul");[n,a]=Tt(n,a);let r={a:n,b:a};return P.runKernel(Ys,r)}var B=O({mul_:jE});function qE(e){let t=_(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return P.runKernel(Qu,n)}else{let n={x:t};return P.runKernel(So,n)}}var zt=O({abs_:qE});function XE(e){let t={x:_(e,"x","acos")};return P.runKernel(Co,t)}var wy=O({acos_:XE});function KE(e){let t={x:_(e,"x","acosh")};return P.runKernel(Ao,t)}var ky=O({acosh_:KE});function YE(e){$(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),$(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((r,s)=>_(r,`tensors${s}`,"addN")),n=t[0];t.forEach(r=>{if(r.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(r=>{if(!hr(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return P.runKernel(Ns,a)}var e1=O({addN_:YE});function JE(e,t=null,n=!1){let a={x:_(e,"x","all","bool")},r={axis:t,keepDims:n};return P.runKernel(ud,a,r)}var eh=O({all_:JE});function QE(e,t=null,n=!1){let a={x:_(e,"x","any","bool")},r={axis:t,keepDims:n};return P.runKernel(cd,a,r)}var Ic=O({any_:QE});function ZE(e,t=0){let n={x:_(e,"x","argMax")},a={axis:t};return P.runKernel(Ts,n,a)}var Nc=O({argMax_:ZE});function e$(e,t=0){let n={x:_(e,"x","argMin")},a={axis:t};return P.runKernel(Ku,n,a)}var Iy=O({argMin_:e$});function t$(e){let t={x:_(e,"x","asin")};return P.runKernel(Fo,t)}var Ny=O({asin_:t$});function n$(e){let t={x:_(e,"x","asinh")};return P.runKernel(_o,t)}var Ty=O({asinh_:n$});function a$(e){let t={x:_(e,"x","atan")};return P.runKernel(Eo,t)}var Sy=O({atan_:a$});function r$(e,t){let n=_(e,"a","atan2"),a=_(t,"b","atan2");[n,a]=Tt(n,a);let r={a:n,b:a};return P.runKernel(Do,r)}var Cy=O({atan2_:r$});function s$(e){let t={x:_(e,"x","atanh")};return P.runKernel($o,t)}var Ay=O({atanh_:s$});function i$(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=t1(r);return Tc(e,o,n,s,a,null,null,l)}function n1(e,t,n,a,r,s,i="channelsLast"){let[o,l]=th(t),u;if(i==="channelsLast")u=[o,l,e[3],e[3]];else if(i==="channelsFirst")u=[o,l,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return Tc(e,u,n,a,r,s,!1,i)}function o$(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=Fy(t),c,p;if(i==="NDHWC")p="channelsLast",c=[o,l,u,e[4],e[4]];else if(i==="NCDHW")p="channelsFirst",c=[o,l,u,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return a1(e,c,n,a,r,!1,p,s)}function Tc(e,t,n,a,r,s,i=!1,o="channelsLast"){let[l,u,c,p]=[-1,-1,-1,-1];if(o==="channelsLast")[l,u,c,p]=e;else if(o==="channelsFirst")[l,p,u,c]=e;else throw new Error(`Unknown dataFormat ${o}`);let[d,h,,m]=t,[f,g]=th(n),[y,b]=th(a),x=$l(d,y),v=$l(h,b),{padInfo:k,outHeight:w,outWidth:S}=l$(r,u,c,f,g,x,v,s,o),A=i?m*p:m,F;return o==="channelsFirst"?F=[l,A,w,S]:o==="channelsLast"&&(F=[l,w,S,A]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:c,inChannels:p,outHeight:w,outWidth:S,outChannels:A,padInfo:k,strideHeight:f,strideWidth:g,filterHeight:d,filterWidth:h,effectiveFilterHeight:x,effectiveFilterWidth:v,dilationHeight:y,dilationWidth:b,inShape:e,outShape:F,filterShape:t}}function a1(e,t,n,a,r,s=!1,i="channelsLast",o){let[l,u,c,p,d]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,u,c,p,d]=e;else if(i==="channelsFirst")[l,d,u,c,p]=e;else throw new Error(`Unknown dataFormat ${i}`);let[h,m,f,,g]=t,[y,b,x]=Fy(n),[v,k,w]=Fy(a),S=$l(h,v),A=$l(m,k),F=$l(f,w),{padInfo:D,outDepth:R,outHeight:L,outWidth:W}=u$(r,u,c,p,y,b,x,S,A,F,o),U=s?g*d:g,G;return i==="channelsFirst"?G=[l,U,R,L,W]:i==="channelsLast"&&(G=[l,R,L,W,U]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:c,inWidth:p,inChannels:d,outDepth:R,outHeight:L,outWidth:W,outChannels:U,padInfo:D,strideDepth:y,strideHeight:b,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:S,effectiveFilterHeight:A,effectiveFilterWidth:F,dilationDepth:v,dilationHeight:k,dilationWidth:w,inShape:e,outShape:G,filterShape:t}}function c$(e,t,n,a,r){a==null&&(a=_y(e,t,n));let s=e[0],i=e[1],o=Ni((s-t+2*a)/n+1,r),l=Ni((i-t+2*a)/n+1,r);return[o,l]}function p$(e,t,n,a,r,s){r==null&&(r=_y(e,t,a));let i=e[0],o=e[1],l=e[2],u=Ni((i-t+2*r)/a+1,s),c=Ni((o-t+2*r)/a+1,s),p=Ni((l-t+2*r)/a+1,s);return[u,c,p,n]}function _y(e,t,n,a=1){let r=$l(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function th(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function Fy(e){return typeof e=="number"?[e,e,e]:e}function $l(e,t){return t<=1?e:e+(e-1)*(t-1)}function l$(e,t,n,a,r,s,i,o,l){let u,c,p;if(typeof e=="number"){u={top:e,bottom:e,left:e,right:e,type:e===0?"VALID":"NUMBER"};let d=c$([t,n],s,a,e,o);c=d[0],p=d[1]}else if(e==="same"){c=Math.ceil(t/a),p=Math.ceil(n/r);let d=Math.max(0,(c-1)*a+s-t),h=Math.max(0,(p-1)*r+i-n),m=Math.floor(d/2),f=d-m,g=Math.floor(h/2),y=h-g;u={top:m,bottom:f,left:g,right:y,type:"SAME"}}else if(e==="valid")u={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((t-s+1)/a),p=Math.ceil((n-i+1)/r);else if(typeof e=="object"){let d=l==="channelsLast"?e[1][0]:e[2][0],h=l==="channelsLast"?e[1][1]:e[2][1],m=l==="channelsLast"?e[2][0]:e[3][0],f=l==="channelsLast"?e[2][1]:e[3][1];u={top:d,bottom:h,left:m,right:f,type:d===0&&h===0&&m===0&&f===0?"VALID":"EXPLICIT"},c=Ni((t-s+d+h)/a+1,o),p=Ni((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:c,outWidth:p}}function u$(e,t,n,a,r,s,i,o,l,u,c){let p,d,h,m;if(typeof e=="number"){p={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=p$([t,n,a,1],o,1,r,e,c);d=f[0],h=f[1],m=f[2]}else if(e==="same"){d=Math.ceil(t/r),h=Math.ceil(n/s),m=Math.ceil(a/i);let f=(d-1)*r+o-t,g=(h-1)*s+l-n,y=(m-1)*i+u-a,b=Math.floor(f/2),x=f-b,v=Math.floor(g/2),k=g-v,w=Math.floor(y/2),S=y-w;p={top:v,bottom:k,left:w,right:S,front:b,back:x,type:"SAME"}}else if(e==="valid")p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},d=Math.ceil((t-o+1)/r),h=Math.ceil((n-l+1)/s),m=Math.ceil((a-u+1)/i);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:p,outDepth:d,outHeight:h,outWidth:m}}function Ni(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function Jr(e){let[t,n,a]=th(e);return t===1&&n===1&&a===1}function Ga(e,t){return Jr(e)||Jr(t)}function t1(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function d$(e,t){let n={x:_(e,"x","reshape","string_or_numeric")},a={shape:t};return P.runKernel(cl,n,a)}var H=O({reshape_:d$});function h$(e,t,n,a,r){let s=_(e,"x","avgPool","float32"),i=1;$(Ga(n,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`);let o=s,l=!1;s.rank===3&&(l=!0,o=H(s,[1,s.shape[0],s.shape[1],s.shape[2]])),$(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),r!=null&&$(Ht(a),()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let u={x:o},c={filterSize:t,strides:n,pad:a,dimRoundingMode:r},p=P.runKernel(Ss,u,c);return p=ue(p,s.dtype),l?H(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Qn=O({avgPool_:h$});function m$(e,t,n,a,r,s="NDHWC"){let i=_(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=H(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),$(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),$(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),r!=null&&$(Ht(a),()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let u={x:o},c={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},p=P.runKernel(Yu,u,c);return p=ue(p,o.dtype),l?H(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Ey=O({avgPool3d_:m$});function f$(e,t=0){$(e.length>=1,()=>"Pass at least one tensor to concat");let n=wc(e,"tensors","concat","string_or_numeric");if(n[0].dtype==="complex64"&&n.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor + with dtype ${s.dtype}. `)}),n.length===1)return Kr(n[0]);let a=n,r={axis:t};return P.runKernel(Mo,a,r)}var Je=O({concat_:f$});function g$(e){let t={x:_(e,"x","sigmoid")};return P.runKernel(li,t)}var ca=O({sigmoid_:g$});function y$(e,t,n){let a=_(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(ml,r,s)}var Be=O({slice_:y$});function b$(e){let t={x:_(e,"x","tanh")};return P.runKernel(mi,t)}var Dl=O({tanh_:b$});function x$(e,t,n,a,r,s){let i=_(e,"forgetBias","basicLSTMCell"),o=_(t,"lstmKernel","basicLSTMCell"),l=_(n,"lstmBias","basicLSTMCell"),u=_(a,"data","basicLSTMCell"),c=_(r,"c","basicLSTMCell"),p=_(s,"h","basicLSTMCell"),d=Je([u,p],1),h=ze(d,o),m=J(h,l),f=m.shape[0],g=m.shape[1]/4,y=[f,g],b=Be(m,[0,0],y),x=Be(m,[0,g],y),v=Be(m,[0,g*2],y),k=Be(m,[0,g*3],y),w=J(B(ca(b),Dl(x)),B(c,ca(J(i,v)))),S=B(Dl(w),ca(k));return[w,S]}var v$=O({basicLSTMCell_:x$});function w$(e,t,n){let a=_(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);$(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),$(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),$(a.shape[0]%r==0,()=>`input tensor batch is ${a.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${r}`);let s={x:a},i={blockShape:t,crops:n};return P.runKernel(Ju,s,i)}var Sc=O({batchToSpaceND_:w$});function k$(e){let t;return e.rank===0||e.rank===1?t=H(e,[1,1,1,e.size]):e.rank===2?t=H(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=H(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function I$(e,t,n,a,r,s){s==null&&(s=.001);let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let c;a!=null&&(c=_(a,"offset","batchNorm")),$(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),$(c==null||o.rank===c.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),$(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let p={x:k$(i),scale:u,offset:c,mean:o,variance:l},d={varianceEpsilon:s},h=P.runKernel(zs,p,d);return H(h,i.shape)}var fr=O({batchNorm_:I$});function N$(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let c;return a!=null&&(c=_(a,"offset","batchNorm")),$(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),$(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`),$(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),u!=null&&$(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`),c!=null&&$(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`),fr(i,o,l,c,u,s)}var r1=O({batchNorm2d_:N$});function T$(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let c;return a!=null&&(c=_(a,"offset","batchNorm")),$(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),$(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`),$(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),u!=null&&$(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`),c!=null&&$(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`),fr(i,o,l,c,u,s)}var s1=O({batchNorm3d_:T$});function S$(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let c;return a!=null&&(c=_(a,"offset","batchNorm")),$(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),$(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`),$(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),u!=null&&$(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`),c!=null&&$(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`),fr(i,o,l,c,u,s)}var i1=O({batchNorm4d_:S$});function C$(e,t,n){let a=_(e,"x","bincount"),r=_(t,"weights","bincount");$(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),$(n>=0,()=>`size must be non-negative, but got ${n}.`),$(r.size===a.size||r.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${a.shape}, weights shape: ${r.shape}.`);let s={x:a,weights:r},i={size:n};return P.runKernel(hd,s,i)}var o1=O({bincount_:C$});function A$(e,t){let n=_(e,"broadcastTo","x"),a=n.shape;if(t.some(l=>!(l>0)||l%1!=0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthn.rank){let l=n.shape.slice();for(;l.length=0;l--)if(r[l]===t[l])s[l]=1;else if(n.shape[l]!==1)throw new Error(`broadcastTo(): [${a}] cannot be broadcast to [${t}].`);if(s.map((l,u)=>l>1?u:-1).filter(l=>l>=0).length===0)return Kr(n);let i={x:n},o={reps:s};return P.runKernel(Ur,i,o)}var Cc=O({broadcastTo_:A$});function F$(e){let t={x:_(e,"x","ceil")};return P.runKernel(Fs,t)}var $y=O({ceil_:F$});function _$(e,t,n){let a=_(e,"x","clipByValue");$(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`);let r={x:a},s={clipValueMin:t,clipValueMax:n};return P.runKernel(Vr,r,s)}var Xt=O({clipByValue_:_$});function E$(e){return Je(e,0)}var l1=O({concat1d_:E$});function $$(e,t){return Je(e,t)}var u1=O({concat2d_:$$});function D$(e,t){return Je(e,t)}var c1=O({concat3d_:D$});function M$(e,t){return Je(e,t)}var p1=O({concat4d_:M$});function R$(e,t,n,a,r="NHWC",s=[1,1],i){let o=_(e,"x","conv2d"),l=_(t,"filter","conv2d"),u=o,c=!1;o.rank===3&&(c=!0,u=H(o,[1,o.shape[0],o.shape[1],o.shape[2]])),$(u.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`),$(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),i!=null&&$(Ht(a),()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`);let p=r==="NHWC"?u.shape[3]:u.shape[1];$(p===l.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${l.shape[2]}.`),$(Ga(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let d={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=P.runKernel(_s,d,h);return c?H(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Et=O({conv2d_:R$});function P$(e,t,n,a,r="NWC",s=1,i){let o=_(e,"x","conv1d"),l=_(t,"filter","conv1d"),u=o,c=!1;o.rank===2&&(c=!0,u=H(o,[1,o.shape[0],o.shape[1]])),$(u.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`),$(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),i!=null&&$(Ht(a),()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`),$(u.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`),$(Ga(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),$(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let p=H(l,[1,l.shape[0],l.shape[1],l.shape[2]]),d=H(u,[u.shape[0],1,u.shape[1],u.shape[2]]),h=Et(d,p,[1,n],a,"NHWC",[1,s],i);return c?H(h,[h.shape[2],h.shape[3]]):H(h,[h.shape[0],h.shape[2],h.shape[3]])}var nh=O({conv1d_:P$});function O$(e,t,n,a,r,s="NHWC",i){$(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let o=e,l=t,u=!1;t.rank===3&&(u=!0,l=H(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),$(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),$(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),$(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);let c=s==="NHWC"?o[3]:o[1],p=s==="NHWC"?l.shape[3]:l.shape[1];$(c===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${n.shape[2]}.`),$(p===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${n.shape[3]}.`),i!=null&&$(Ht(r),()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`);let d={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=P.runKernel(Es,d,h);return u?H(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Dy=O({conv2DBackpropInput_:O$});function L$(e,t,n,a,r,s){let i=_(e,"x","conv2dTranspose"),o=_(t,"filter","conv2dTranspose");return Dy(n,i,o,a,r,"NHWC",s)}var ah=O({conv2dTranspose_:L$});function z$(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=_(e,"x","conv3d"),o=_(t,"filter","conv3d"),l=i,u=!1;i.rank===4&&(u=!0,l=H(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),$(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),$(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),$(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),$(Ga(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),$(r==="NDHWC",()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`);let c={x:l,filter:o},p={strides:n,pad:a,dataFormat:r,dilations:s},d=P.runKernel(Zu,c,p);return u?H(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var My=O({conv3d_:z$});function W$(e,t,n,a,r){$(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let s=e,i=t,o=!1;t.rank===4&&(o=!0,i=H(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,e[0],e[1],e[2],e[3]]);let l=s[4],u=i.shape[4];$(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),$(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),$(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),$(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),$(u===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${n.shape[4]}.`);let c={dy:i,filter:n},p={pad:r,strides:a,inputShape:s},d=P.runKernel(yd,c,p);return o?H(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var d1=O({conv3DBackpropInput_:W$});function B$(e,t,n,a,r){let s=_(e,"x","conv3dTranspose"),i=_(t,"filter","conv3dTranspose");return d1(n,s,i,a,r)}var V$=O({conv3dTranspose_:B$});function U$(e){let t={x:_(e,"x","cos")};return P.runKernel($s,t)}var Ac=O({cos_:U$});function G$(e){let t={x:_(e,"x","cosh")};return P.runKernel(Ro,t)}var rh=O({cosh_:G$});function H$(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return P.runKernel(Ds,r,s)}var sh=O({cumsum_:H$});function j$(e,t,n,a=!1){let r=_(e,"x","denseBincount"),s=_(t,"weights","denseBincount");$(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),$(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),$(n>=0,()=>`size must be non-negative, but got ${n}.`),$(s.size===r.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${r.shape}, weights shape: ${s.shape}.`);let i={x:r,weights:s},o={size:n,binaryOutput:a};return P.runKernel(bd,i,o)}var h1=O({denseBincount_:j$});function q$(e,t,n="NHWC"){let a=_(e,"x","depthToSpace"),r=n==="NHWC"?a.shape[1]:a.shape[2],s=n==="NHWC"?a.shape[2]:a.shape[3],i=n==="NHWC"?a.shape[3]:a.shape[1];$(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${r} and ${t} for depthToSpace with input shape - ${a.shape}`),F(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying + ${a.shape}`),$(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${t} for depthToSpace with input shape - ${a.shape}`),F(i%(t*t)==0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${a.shape}`);let o={x:a},l={blockSize:t,dataFormat:n};return M.runKernel(Oo,o,l)}var Ry=P({depthToSpace_:I$});function T$(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","depthwiseConv2d"),l=E(t,"filter","depthwiseConv2d"),c=o,u=!1;o.rank===3&&(u=!0,c=U(o,[1,o.shape[0],o.shape[1],o.shape[2]])),F(c.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${c.rank}.`),F(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`),F(c.shape[3]===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${c.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),i!=null&&F(Gt(a),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`);let p={x:c,filter:l},d={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},h=M.runKernel(Rs,p,d);return u?U(h,[h.shape[1],h.shape[2],h.shape[3]]):h}var Qr=P({depthwiseConv2d_:T$});function N$(e){let t={x:E(e,"x","diag")};return M.runKernel(vd,t)}var S$=P({diag_:N$});function C$(e,t,n,a,r=[1,1],s="NHWC"){let i=E(e,"x","dilation2d"),o=E(t,"filter","dilation2d");F(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),F(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),F(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,c=!1;i.rank===3&&(l=U(i,[1,i.shape[0],i.shape[1],i.shape[2]]),c=!0);let u={x:l,filter:o},p={strides:n,pad:a,dilations:r},d=M.runKernel(ec,u,p);return c?U(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var My=P({dilation2d_:C$});function _$(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function zt(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function bt(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;r"The first dimension of `a` must match the size of `condition`."),s.rank!==1&&on(s.shape,l.shape,"Error in where: ");let c={condition:s,t:o,e:l};return M.runKernel(dl,c)}var Nn=P({where_:F$});function A$(e){let t={x:E(e,"x","zerosLike")};return M.runKernel(Il,t)}var Ge=P({zerosLike_:A$});function $$(e,t){let n=E(e,"a","div"),a=E(t,"b","div");[n,a]=Tt(n,a);let r=xe(n,a),s=Ge(r),i=Zr(a,s);return Nn(i,s,r)}var Py=P({divNoNan_:$$});function D$(e,t){let n=E(e,"t1","dot"),a=E(t,"t2","dot");F((n.rank===1||n.rank===2)&&(a.rank===1||a.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${a.rank}.`);let r=n.rank===1?n.size:n.shape[1],s=a.rank===1?a.size:a.shape[0];if(F(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=U(n,[1,-1]),o=U(a,[-1,1]),l=ze(i,o);return U(l,[])}else if(n.rank===1&&a.rank===2){let i=U(n,[1,-1]),o=U(a,[a.shape[0],a.shape[1]]),l=ze(i,o);return U(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=U(a,[-1,1]),o=ze(n,i);return U(o,[o.size])}else{let i=U(a,[a.shape[0],a.shape[1]]);return ze(n,i)}}var dk=P({dot_:D$});function R$(e){let t={x:E(e,"x","elu")};return M.runKernel(Lo,t)}var Rl=P({elu_:R$});function M$(e){let t=E(e,"x","erf");F(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=ue(t,"float32"));let n={x:t};return M.runKernel(zo,n)}var Oy=P({erf_:M$});function P$(e){let t={x:E(e,"x","exp")};return M.runKernel(Ps,t)}var dn=P({exp_:P$});function O$(e,t=0){let n=E(e,"x","expandDims","string_or_numeric");F(t<=n.rank,()=>"Axis must be <= rank of the tensor");let a={input:n},r={dim:t};return M.runKernel(Wo,a,r)}var Mn=P({expandDims_:O$});function L$(e){let t={x:E(e,"x","expm1")};return M.runKernel(Vo,t)}var Ly=P({expm1_:L$});function z$(e,t){let n=E(e,"x","tile","string_or_numeric");F(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`);let a={x:n},r={reps:t};return M.runKernel(Ur,a,r)}var Ha=P({tile_:z$});function B$(e,t,n,a="float32"){t==null&&(t=e);let r=Le([e,t],a),s=e<=t?e:t;for(let o=0;o`Error in localResponseNormalization: x must be rank 3 or 4 but got - rank ${s.rank}.`),F(Gt(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=U(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},c={depthRadius:t,bias:n,alpha:a,beta:r},u=M.runKernel(rc,l,c);return o?U(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var By=P({localResponseNormalization_:Q$});function Z$(e){let t={x:E(e,"x","log")};return M.runKernel(Us,t)}var Pn=P({log_:Z$});function eD(e){let t={x:E(e,"x","log1p")};return M.runKernel(Qo,t)}var oh=P({log1p_:eD});function tD(e){return F(Br(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 M.tidy(()=>{let{value:s,grads:i}=M.gradients(()=>e(a),[a],r);return r!=null&&on(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),lh(i),i[0]})}}function nD(e){return F(Br(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{F(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=vc(t,"args","tf.grads","string_or_numeric"),r=n!=null?E(n,"dy","tf.grads"):null;return M.tidy(()=>{let{value:s,grads:i}=M.gradients(()=>e(...a),a,r);return r!=null&&on(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),lh(i),i})}}function aD(e){return F(Br(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{F(t instanceof Ee,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),F(n==null||n instanceof Ee,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=M.gradients(()=>e(t),[t],n);return lh(a),{grad:a[0],value:r}}}function rD(e){return F(Br(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{F(Array.isArray(t)&&t.every(r=>r instanceof Ee),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),F(n==null||n instanceof Ee,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=M.gradients(()=>e(...t),t,n);return n!=null&&on(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),lh(a.grads),a}}function yk(e,t){F(Br(e),()=>"The f passed in variableGrads(f) must be a function"),F(t==null||Array.isArray(t)&&t.every(c=>c instanceof Hr),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let c in M.registeredVariables)t.push(M.registeredVariables[c])}let a=n?t.filter(c=>!c.trainable):null,r=t.length;t=t.filter(c=>c.trainable),F(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${r} variables is trainable.`);let s=!0,{value:i,grads:o}=M.gradients(e,t,null,s);F(o.some(c=>c!=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()."),F(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let l={};return t.forEach((c,u)=>{o[u]!=null&&(l[c.name]=o[u])}),a!=null&&a.forEach(c=>l[c.name]=null),{value:i,grads:l}}function ja(e){return M.customGrad(e)}function lh(e){if(e.filter(t=>t==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that - the f you passed encloses all operations that lead from x to y.`)}function sD(e){let t={x:E(e,"x","neg")};return M.runKernel(tl,t)}var Nt=P({neg_:sD});function iD(e){let t={x:E(e,"x","softplus")};return M.runKernel(yl,t)}var Pl=P({softplus_:iD});function oD(e){let t=E(e,"x","logSigmoid");return ja(n=>({value:Nt(Pl(Nt(n))),gradFunc:a=>L(a,ca(Nt(n)))}))(t)}var bk=P({logSigmoid_:oD});function lD(e,t=null,n=!1){let a={x:E(e,"x","max")},r={reductionIndices:t,keepDims:n};return M.runKernel(Gs,a,r)}var Zn=P({max_:lD});function uD(e,t){let n=E(e,"a","sub"),a=E(t,"b","sub");[n,a]=Tt(n,a);let r={a:n,b:a};return M.runKernel(hi,r)}var me=P({sub_:uD});function cD(e,t=null,n=!1){let a=E(e,"x","sum");a.dtype==="bool"&&(a=ue(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return M.runKernel(ci,r,s)}var Se=P({sum_:cD});function pD(e,t=-1){let n=E(e,"logits","logSoftmax");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and axis was ${t}`);return ja((a,r)=>{let s=!0,i=Zn(a,t,!0),o=me(a,i),l=me(ue(o,"float32"),Pn(Se(dn(o),t,s)));return r([l]),{value:l,gradFunc:(c,u)=>{let[p]=u,d=!0,h=dn(p);return me(c,L(Se(c,t,d),h))}}})(n)}var uh=P({logSoftmax_:pD});function Wy(e,t){for(let n=0;ne[s]);return[n,r]}function Ci(e,t){let n=t.map(a=>1);return xk(e,n,t)}function dD(e,t,n){F(Wy(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function wk(e,t){if(Wy(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function Vy(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function hD(e,t){let n=[];for(let a=t-e;a`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),F(Ga(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),r!=null&&F(Gt(a),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r},p=M.runKernel(js,c,u);return l?U(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var At=P({maxPool_:xD});function vD(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=U(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),F(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),F(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),r!=null&&F(Gt(a),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},p=M.runKernel(sc,c,u);return l?U(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Gy=P({maxPool3d_:vD});function wD(e,t,n,a,r=!1){let s={x:E(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=M.runKernel(Ad,s,i);return{result:o[0],indexes:o[1]}}var Ik=P({maxPoolWithArgmax_:wD});function kD(e,t){let n=E(e,"a","maximum"),a=E(t,"b","maximum");[n,a]=Tt(n,a),n.dtype==="bool"&&(n=ue(n,"int32"),a=ue(a,"int32")),bt(n.shape,a.shape);let r={a:n,b:a};return M.runKernel(Hs,r)}var qa=P({maximum_:kD});function ID(e,t=null,n=!1){let a={x:E(e,"x","mean")},r={axis:t,keepDims:n};return M.runKernel(qs,a,r)}var St=P({mean_:ID});function TD(e,t=null,n=!1){let a={x:E(e,"x","min")},r={axis:t,keepDims:n};return M.runKernel(Ks,a,r)}var Ol=P({min_:TD});function ND(e,t){let n=E(e,"a","minimum"),a=E(t,"b","minimum");[n,a]=Tt(n,a),n.dtype==="bool"&&(n=ue(n,"int32"),a=ue(a,"int32")),bt(n.shape,a.shape);let r={a:n,b:a};return M.runKernel(Xs,r)}var Ll=P({minimum_:ND});function SD(e,t,n){F(n==="reflect"||n==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`);let a=E(e,"x","mirrorPad");if(a.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");F(t.length===a.rank,()=>`Padding doesn't match input. Must be ${a.rank}. Got ${t.length}.`);let r=n==="reflect"?1:0;for(let o=0;o"Invalid number of paddings. Must be length of 2 each."),F(t[o][0]>=0&&t[o][0]<=a.shape[o]-r&&t[o][1]>=0&&t[o][1]<=a.shape[o]-r,()=>`Padding in dimension ${o} cannot be greater than or equal to ${a.shape[o]-r} or less than 0 for input of shape ${a.shape}`);let s={paddings:t,mode:n},i={x:a};return M.runKernel(ic,i,s)}var Hy=P({mirrorPad_:SD});function CD(e,t){let n=E(e,"a","mod"),a=E(t,"b","mod");[n,a]=Tt(n,a);let r={a:n,b:a};return M.runKernel(el,r)}var jy=P({mod_:CD});function _D(e){let t=E(e,"x","square"),n={};return M.runKernel("Square",{x:t},n)}var ot=P({square_:_D});function ED(e,t=null,n=!1){e=E(e,"x","moments");let a=la(t,e.shape),r=St(e,a,n),s=r.shape;n||(s=Ci(r.shape,a));let i=ot(me(ue(e,"float32"),U(r,s))),o=St(i,a,n);return{mean:r,variance:o}}var ph=P({moments_:ED});function FD(e,t,n,a){let r=E(t,"data","multiRNNCell"),s=vc(n,"c","multiRNNCell"),i=vc(a,"h","multiRNNCell"),o=r,l=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();let o={logits:i===1?U(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},c=M.runKernel($d,o,l);return i===1?U(c,[c.size]):c}var Tk=P({multinomial_:$D});function DD(e,t){let n=E(e,"a","notEqual"),a=E(t,"b","notEqual");[n,a]=Tt(n,a),bt(n.shape,a.shape);let r={a:n,b:a};return M.runKernel(nl,r)}var _i=P({notEqual_:DD});function xt(e,t="float32"){if(t==="complex64"){let a=xt(e,"float32"),r=xt(e,"float32");return jr(a,r)}let n=od(Pt(e),t);return M.makeTensor(n,e,t)}function Ka(e,t="float32"){if(t==="complex64"){let a=Ka(e,"float32"),r=xt(e,"float32");return jr(a,r)}let n=zg(Pt(e),t);return M.makeTensor(n,e,t)}function RD(e){let t={x:E(e,"x","onesLike")};return M.runKernel(il,t)}var On=P({onesLike_:RD});function MD(e,t){let n=E(e,"v1","outerProduct"),a=E(t,"v2","outerProduct");F(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=U(n,[-1,1]),s=U(a,[1,-1]);return ze(r,s)}var PD=P({outerProduct_:MD});function OD(e,t,n=0){let a=E(e,"x","pad");if(a.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let r={paddings:t,constantValue:n},s={x:a};return M.runKernel(Qs,s,r)}var ea=P({pad_:OD});function LD(e,t,n=0){return F(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),ea(e,[t],n)}var zD=P({pad1d_:LD});function BD(e,t,n=0){return F(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ea(e,t,n)}var WD=P({pad2d_:BD});function VD(e,t,n=0){return F(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ea(e,t,n)}var UD=P({pad3d_:VD});function GD(e,t,n=0){return F(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ea(e,t,n)}var HD=P({pad4d_:GD});function jD(e,t,n){let a=E(e,"x","spaceToBatchND");F(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),F(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),F(a.shape.reduce((i,o,l)=>l>0&&l<=t.length?i&&(o+n[l-1][0]+n[l-1][1])%t[l-1]==0:i,!0),()=>`input spatial dimensions ${a.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`);let r={x:a},s={blockShape:t,paddings:n};return M.runKernel(uc,r,s)}var Fc=P({spaceToBatchND_:jD});function XD(e,t,n,a,r,s){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let i=E(e,"x","maxPool"),o=i,l=!1;i.rank===3&&(l=!0,o=U(i,[1,i.shape[0],i.shape[1],i.shape[2]])),F(Ga(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let c=ek(o.shape,t,s,r,a),u=[c.dilationHeight,c.dilationWidth],p;a==="same"?p=KD([c.filterHeight,c.filterWidth],u):p=[[0,0],[0,0]];let d=u[0]===1&&u[1]===1,[h,m]=qD([c.inHeight,c.inWidth],u,p),f=d?a:"valid",g=d?o:Fc(o,u,h),y=(n==="avg"?()=>Qn(g,t,s,f):()=>At(g,t,s,f))(),b=d?y:Nc(y,u,m);return l?U(b,[b.shape[1],b.shape[2],b.shape[3]]):b}function qD(e,t,n){let a=n.map(u=>u[0]),r=n.map(u=>u[1]),s=e.concat(a,r),i=t.map((u,p)=>(u-s[p]%u)%u),o=r.map((u,p)=>u+i[p]),l=t.map((u,p)=>[a[p],o[p]]),c=t.map((u,p)=>[0,i[p]]);return[l,c]}function KD(e,t){let n=e.map((s,i)=>s+(s-1)*(t[i]-1)).map(s=>s-1),a=n.map(s=>Math.floor(s/2)),r=n.map((s,i)=>s-a[i]);return n.map((s,i)=>[a[i],r[i]])}var Nk=P({pool_:XD});function YD(e,t){let n=E(e,"base","pow"),a=E(t,"exp","pow");[n,a]=Tt(n,a);let r={a:n,b:a};return M.runKernel(Zs,r)}var gr=P({pow_:YD});function JD(e,t){let n=E(e,"x","prelu"),a=E(t,"alpha","prelu"),r={x:n,alpha:a};return M.runKernel(ei,r)}var Ac=P({prelu_:JD});function QD(e,t=null,n=!1){let a=E(e,"x","prod");a.dtype==="bool"&&(a=ue(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return M.runKernel(ll,r,s)}var dh=P({prod_:QD});function ZD(e,t,n){let a=Pt(e),r=null;if(n==null||n==="float32")r=new Float32Array(a);else if(n==="int32")r=new Int32Array(a);else if(n==="bool")r=new Uint8Array(a);else throw new Error(`Unknown data type ${n}`);for(let s=0;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}},tR=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=qy.alea(r.toString()),this.randn=new Ky(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(),rthis.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(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=qy.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function aR(e,t,n=1,a="float32",r){if(n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new tR(t,n,a,r),i=Le(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),Ln(t,0)}var hR=P({reverse1d_:dR});function mR(e,t){let n=E(e,"x","reverse");return F(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),Ln(n,t)}var fR=P({reverse2d_:mR});function gR(e,t){let n=E(e,"x","reverse");return F(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),Ln(n,t)}var yR=P({reverse3d_:gR});function bR(e,t){let n=E(e,"x","reverse");return F(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),Ln(n,t)}var xR=P({reverse4d_:bR});function vR(e){let t={x:E(e,"x","round")};return M.runKernel(si,t)}var Yy=P({round_:vR});function wR(e){let t={x:E(e,"x","rsqrt")};return M.runKernel(ii,t)}var fh=P({rsqrt_:wR});function pe(e,t){if((ln(e)&&t!=="string"||Array.isArray(e))&&t!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(t==="string"&&ln(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return qr(e,[],[],t)}function kR(e){let t={x:E(e,"x","selu")};return M.runKernel(hl,t)}var gh=P({selu_:kR});function IR(e,t,n,a,r,s=[1,1],i="NHWC"){let o=E(e,"x","separableConv2d"),l=E(t,"depthwiseFilter","separableConv2d"),c=E(n,"pointwiseFilter","separableConv2d"),u=o,p=!1;if(o.rank===3&&(p=!0,u=U(o,[1,o.shape[0],o.shape[1],o.shape[2]])),i==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");F(u.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${u.rank}.`),F(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),F(c.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),F(c.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${c.shape[0]}.`),F(c.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${c.shape[1]}.`);let d=l.shape[2],h=l.shape[3];F(c.shape[2]===d*h,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${d*h}, but got ${c.shape[2]}.`);let m=Qr(u,l,a,r,i,s),f=Ft(m,c,1,"valid",i);return p?U(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Ei=P({separableConv2d_:IR});async function TR(e,t){let n=E(e,"x","setdiff1d"),a=E(t,"y","setdiff1d");F(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),F(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),F(a.rank===1,()=>`y should be 1D tensor, but got y (${a.shape}).`);let r=await n.data(),s=await a.data(),i=new Set(s),o=0;for(let u=0;u`slice1d expects a rank-1 tensor, but got a rank-${a.rank} tensor`),We(a,[t],[n])}var xh=P({slice1d_:_R});function ER(e,t,n){let a=E(e,"x","slice2d");return F(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),We(a,t,n)}var Qy=P({slice2d_:ER});function FR(e,t,n){let a=E(e,"x","slice3d");return F(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),We(a,t,n)}var Bl=P({slice3d_:FR});function AR(e,t,n){let a=E(e,"x","slice4d");return F(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),We(a,t,n)}var Dc=P({slice4d_:AR});function $R(e,t=-1){let n=E(e,"logits","softmax","float32");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and dim was ${t}`);let a={logits:n},r={dim:t};return M.runKernel(pi,a,r)}var Ta=P({softmax_:$R});function DR(e){F(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return M.runKernel(Td,t)}var Rc=P({fft_:DR});function RR(e){F(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return M.runKernel(Nd,t)}var Wl=P({ifft_:RR});function MR(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=U(e,[n,t]);a=Wl(r)}else{let r=[n,2*(t-1)],s=U($c(e),[n,t]),i=U(sh(e),[n,t]),o=Ln(We(s,[0,1],[n,t-2]),1),l=L(Ln(We(i,[0,1],[n,t-2]),1),pe(-1)),c=Je([s,o],1),u=Je([i,l],1),p=U(jr(c,u),[r[0],r[1]]);a=Wl(p)}if(a=$c(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=U(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var vh=P({irfft_:MR});function PR(e,t,n=0){let a={x:E(e,"x","split")},r={numOrSizeSplits:t,axis:n};return M.runKernel(bl,a,r)}var zn=P({split_:PR});function OR(e,t){F(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1],a=e.size/n,r;if(t!=null&&t0),f=e.shape.map(g=>g);f[e.shape.length-1]=t,r=We(e,m,f),n=t}else if(t!=null&&t>n){let m=e.shape.map(f=>f);m[e.shape.length-1]=t-n,r=Je([e,xt(m)],e.shape.length-1),n=t}else r=e;let s=Ge(r),i=U(jr(r,s),[a,n]),o=Rc(i),l=Math.floor(n/2)+1,c=$c(o),u=sh(o),p=zn(c,[l,n-l],c.shape.length-1),d=zn(u,[l,n-l],u.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,U(jr(p[0],d[0]),h)}var Mc=P({rfft_:OR});function LR(e){let t={x:E(e,"x","sqrt")};return M.runKernel(ui,t)}var nn=P({sqrt_:LR});function zR(e,t){let n=E(e,"a","squaredDifference"),a=E(t,"b","squaredDifference");[n,a]=Tt(n,a),bt(n.shape,a.shape);let r={a:n,b:a},s={};return M.runKernel(di,r,s)}var wh=P({squaredDifference_:zR});function BR(e,t){let n=E(e,"x","squeeze");return U(n,jw(n.shape,t).newShape)}var ts=P({squeeze_:BR});function WR(e,t=0){let n=vc(e,"tensors","stack","string_or_numeric");F(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&F(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return M.runKernel(ol,a,r)}var $t=P({stack_:WR});function VR(e,t=0){let n={x:E(e,"x","step")},a={alpha:t};return M.runKernel(Gr,n,a)}var Vl=P({step_:VR});function UR(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let c={x:E(e,"x","stridedSlice")},u={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return M.runKernel(xl,c,u)}var Zy=P({stridedSlice_:UR});function GR(e){let t={x:E(e,"x","tan")};return M.runKernel(vl,t)}var eb=P({tan_:GR});function Qe(e,t){ks(e);let n=Va(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return qr(e,null,n,t)}function Na(e,t,n){if(ks(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=Va(e,n);if(a.length!==2&&a.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return qr(e,t,a,n)}function Sa(e,t,n){if(ks(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=Va(e,n);if(a.length!==4&&a.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return qr(e,t,a,n)}function HR(e,t,n){if(ks(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=Va(e,n);if(a.length!==5&&a.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return qr(e,t,a,n)}function jR(e,t,n){if(ks(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=Va(e,n);if(a.length!==6&&a.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||a,qr(e,t,a,n)}function qR(e,t=1,n=!0){let a=E(e,"x","topk");if(a.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let r=a.shape[a.shape.length-1];if(t>r)throw new Error(`'k' passed to topk() must be <= the last dimension (${r}) but got ${t}`);let s={x:a},i={k:t,sorted:n},[o,l]=M.runKernel(wl,s,i);return{values:o,indices:l}}var tb=P({topk_:qR});function KR(e,t=0,n=1,a,r){if(a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Ky(t,n,a,!0,r),i=Le(e,a);for(let o=0;o0,()=>"The input tensor must be at least 1D");let a={x:n},r={axis:t},[s,i]=M.runKernel(Od,a,r);return{values:s,indices:i}}var Ih=P({unique_:XR});function YR(e,t,n){let a=E(e,"x","unsortedSegmentSum"),r=E(t,"segmentIds","unsortedSegmentSum","int32");F(Gt(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return M.runKernel(pc,s,i)}var nb=P({unsortedSegmentSum_:YR});function JR(e,t=0){let n=E(e,"x","unstack","string_or_numeric");F(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`);let a={value:n},r={axis:t};return M.runKernel(kl,a,r)}var ut=P({unstack_:JR});function _k(e,t=!0,n,a){return M.makeVariable(e,t,n,a)}function Ek(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),on(o.slice(s,s+i),r.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let f=s;f"Shape mismatch in v and x");let l=pe(1),c=me(l,o),u=L(me(i,s),c);if(r){F(a!=null,()=>"When using zeroDebias: true, step is required.");let p=E(a,"step","movingAverage");u=xe(u,me(l,gr(o,p)))}return J(s,u)}var aM=P({movingAverage_:nM});function rM(e,t,n){let a=E(e,"indices","scatterND","int32"),r=E(t,"updates","scatterND");fy(r,a,n);let s={indices:a,updates:r},i={shape:n};return M.runKernel(pl,s,i)}var Ak=P({scatterND_:rM});function sM(e,t,n,a){if(e.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);let r=e.rank>0?e.shape[0]:1,s=e.rank>1?e.shape[1]:1;if(n.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${n.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===r))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${r}]`);if(t.dtype!==a.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function iM(e,t,n,a=0){let r=E(e,"sparseIndices","sparseToDense","int32"),s=E(t,"sparseValues","sparseToDense"),i=E(a,"defaultValue","sparseToDense",s.dtype);sM(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return M.runKernel(Pd,o,l)}var rb=P({sparseToDense_:iM});function oM(e,t){let n=E(t,"indices","gatherND","int32"),a={params:E(e,"x","gatherND"),indices:n};return M.runKernel(Ho,a)}var $k=P({gatherND_:oM});function lM(e,t){if(t==null)return e.shape.slice();if(hr(e.shape,t))return t;if(e.shape.length===t.length){let n=[];for(let a=0;a`x has to be a floating point tensor since it's going to be scaled, but got a ${r.dtype} tensor instead.`),F(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof Ee?r.clone():r;let s=lM(r,n),i=1-t,o=xe(Ml(J(zl(s,0,1,"float32",a),i)),i);return L(r,o)}var Dk=P({dropout_:uM});function Rk(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function sb(e,t,n){let a=1-e%2,r=new Float32Array(e);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${a.rank}`),F(a.rank-1===r.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${a.rank} and targets rank ${r.rank}`),on(a.shape.slice(0,a.shape.length-1),r.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=a.shape[a.shape.length-1];F(n>0&&n<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${n}`);let i=await a.data(),o=await r.data(),[l,c]=[i.length/s,s],u=qw("bool",l);for(let p=0;pg.value-f.value),u[p]=0;for(let f=0;fdM,depthwiseConv2d:()=>hM,matMul:()=>mM});function fM(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=U(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=U(t,[1,t.shape[0],t.shape[1],t.shape[2]])),F(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),F(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),F(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);let c=s==="NHWC"?o.shape[3]:o.shape[1],u=s==="NHWC"?l.shape[3]:l.shape[1];F(c===n[2],()=>`Error in conv2dDerFilter: depth of input ${c}) must match input depth in filter (${n[2]}.`),F(u===n[3],()=>`Error in conv2dDerFilter: depth of dy (${u}) must match output depth for filter (${n[3]}).`),i!=null&&F(Gt(r),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`);let p={x:o,dy:l},d={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return M.runKernel(md,p,d)}var ib=P({conv2DBackpropFilter_:fM});function Nh(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return L(e,Vl(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function Sh(e,t){let n=t,a=zt(e.shape,t.shape);return a.length>0&&(n=Se(n,a)),U(n,e.shape)}function Ch(e,t,n,a){if(t==="linear")return e;if(t==="relu")return qe(e);if(t==="elu")return Rl(e);if(t==="relu6")return mh(e);if(t==="prelu")return Ac(e,n);if(t==="leakyrelu")return _c(e,a);throw new Error(`Unknown fused activation ${t}.`)}var _h=(e,t)=>!(e>0)||t==="linear";function gM({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:c,leakyreluAlpha:u}){if(l=l||"linear",_h(M.state.gradientDepth,l)===!1){let N=Ft(e,t,n,a,r,s,i);return o!=null&&(N=J(N,o)),Ch(N,l,c,u)}let p=E(e,"x","conv2d"),d=E(t,"filter","conv2d"),h=p,m=!1;p.rank===3&&(m=!0,h=U(p,[1,p.shape[0],p.shape[1],p.shape[2]])),F(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),F(d.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${d.rank}.`),i!=null&&F(Gt(a),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`),F(h.shape[3]===d.shape[2],()=>`Error in conv2d: depth of input (${h.shape[3]}) must match input depth for filter ${d.shape[2]}.`),F(Ga(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),F(r==="NHWC",()=>`Error in conv2d: got dataFormat of ${r} but only NHWC is currently supported.`);let f=Tc(h.shape,d.shape,n,s,a,i),g;o!=null&&(g=E(o,"bias","fused conv2d"),[g]=Tt(g,p),bt(f.outShape,g.shape));let y;c!=null&&(y=E(c,"prelu weights","fused conv2d"));let b=(N,T)=>{let[S,A,$,R]=T,B=Nh(N,$,l);F(Jr(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let V=$y(A.shape,B,S,n,a),W=ib(A,B,S.shape,n,a),G=[V,W];if(R!=null){let H=Sh(R,B);G.push(H)}return G},x={x:h,filter:d,bias:g,preluActivationWeights:y},v={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:u};return o==null?ja((N,T,S)=>{let A=M.runKernel(yi,x,v);return S([T,N,A]),m&&(A=U(A,[A.shape[1],A.shape[2],A.shape[3]])),{value:A,gradFunc:b}})(h,d):ja((N,T,S,A)=>{let $=M.runKernel(yi,x,v);return A([T,N,$,S]),m&&($=U($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:b}})(h,d,g)}var dM=P({fusedConv2d_:gM});function yM(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=U(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=U(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let c={x:o,dy:l},u={strides:a,pad:r,dimRoundingMode:i,dilations:s,filterShape:n};return M.runKernel(bd,c,u)}var Mk=P({depthwiseConv2dNativeBackpropFilter_:yM});function bM(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=U(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let c={dy:o,filter:n},u={strides:a,pad:r,dimRoundingMode:i,dilations:s,inputShape:e},p=M.runKernel(xd,c,u);return l?U(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Pk=P({depthwiseConv2dNativeBackpropInput_:bM});function xM({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:c,leakyreluAlpha:u}){if(_h(M.state.gradientDepth,l)===!1){let N=Qr(e,t,n,a,r,s,i);return o!=null&&(N=J(N,o)),Ch(N,l,c,u)}let p=E(e,"x","depthwiseConv2d"),d=E(t,"filter","depthwiseConv2d"),h=p,m=!1;p.rank===3&&(m=!0,h=U(p,[1,p.shape[0],p.shape[1],p.shape[2]])),F(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),F(d.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${d.rank}.`),F(h.shape[3]===d.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${d.shape[2]}.`),s==null&&(s=[1,1]),F(Ga(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),i!=null&&F(Gt(a),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${i} but got pad ${a}.`);let f=Tc(h.shape,d.shape,n,s,a,i,!0),g;o!=null&&(g=E(o,"bias","fused conv2d"),[g]=Tt(g,p),bt(f.outShape,g.shape));let y;c!=null&&(y=E(c,"prelu weights","fused depthwiseConv2d"));let b=(N,T)=>{F(Jr(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[S,A,$,R]=T,B=Nh(N,$,l),V=Pk(A.shape,B,S,n,a,s,i),W=Mk(A,B,S.shape,n,a,s,i);if(R!=null){let G=Sh(g,B);return[V,W,G]}return[V,W]},x={x:h,filter:d,bias:g,preluActivationWeights:y},v={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:u};return o==null?ja((N,T,S)=>{let A=M.runKernel(bi,x,v);return S([T,N,A]),m&&(A=U(A,[A.shape[1],A.shape[2],A.shape[3]])),{value:A,gradFunc:b}})(h,d):ja((N,T,S,A)=>{let $=M.runKernel(bi,x,v);return A([T,N,$,S]),m&&($=U($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:b}})(h,d,g)}var hM=P({fusedDepthwiseConv2d_:xM});function vM({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o}){if(_h(M.state.gradientDepth,s)===!1){let R=ze(e,t,n,a);return r!=null&&(R=J(R,r)),Ch(R,s,i,o)}let l=E(e,"a","fused matMul"),c=E(t,"b","fused matMul");[l,c]=Tt(l,c);let u=n?l.shape[l.rank-2]:l.shape[l.rank-1],p=a?c.shape[c.rank-1]:c.shape[c.rank-2],d=n?l.shape[l.rank-1]:l.shape[l.rank-2],h=a?c.shape[c.rank-2]:c.shape[c.rank-1],m=l.shape.slice(0,-2),f=c.shape.slice(0,-2),g=Pt(m),y=Pt(f);F(l.rank>=2&&c.rank>=2&&l.rank===c.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${l.rank} and ${c.rank}.`),F(hr(m,f),()=>`Error in fused matMul: outer dimensions (${m}) and (${f}) of Tensors with shapes ${l.shape} and ${c.shape} must match.`),F(u===p,()=>`Error in fused matMul: inner shapes (${u}) and (${p}) of Tensors with shapes ${l.shape} and ${c.shape} and transposeA=${n} and transposeB=${a} must match.`);let b=l.shape.slice(0,-2).concat([d,h]),x=n?U(l,[g,u,d]):U(l,[g,d,u]),v=a?U(c,[y,h,p]):U(c,[y,p,h]),N;r!=null&&(N=E(r,"bias","fused matMul"),[N]=Tt(N,l),bt(b,N.shape));let T;i!=null&&(T=E(i,"prelu weights","fused matMul"));let S=(R,B)=>{let[V,W,G,H]=B,X=Nh(U(R,G.shape),G,s),q,te;if(!n&&!a?(q=ze(X,W,!1,!0),te=ze(V,X,!0,!1)):!n&&a?(q=ze(X,W,!1,!1),te=ze(X,V,!0,!1)):n&&!a?(q=ze(W,X,!1,!0),te=ze(V,X,!1,!1)):(q=ze(W,X,!0,!0),te=ze(X,V,!0,!0)),r!=null){let Q=Sh(H,X);return[q,te,Q]}else return[q,te]},A={a:x,b:v,bias:N,preluActivationWeights:T},$={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?ja((R,B,V)=>{let W=M.runKernel(gi,A,$);return V([R,B,W]),{value:U(W,b),gradFunc:S}})(x,v):ja((R,B,V,W)=>{let G=M.runKernel(gi,A,$);return W([R,B,G,V]),{value:U(G,b),gradFunc:S}})(x,v,N)}var mM=P({fusedMatMul_:vM});function wM(e){return sb(e,.54,.46)}var kM=P({hammingWindow_:wM});function IM(e){return sb(e,.5,.5)}var Ok=P({hannWindow_:IM});function TM(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(We(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),F(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${c},4] but had shape ${o.shape}.`),F(l.rank===1&&l.shape[0]===c,()=>`Error in cropAndResize: boxInd must be have size [${c}] but had shape ${o.shape}.`),F(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),F(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),F(r==="bilinear"||r==="nearest",()=>`method must be bilinear or nearest, but was ${r}`);let u={image:i,boxes:o,boxInd:l},p={method:r,extrapolationValue:s,cropSize:a};return M.runKernel(Po,u,p)}var _M=P({cropAndResize_:CM});function EM(e){let t=E(e,"image","flipLeftRight","float32");F(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return M.runKernel(Uo,n,{})}var FM=P({flipLeftRight_:EM});function AM(e,t,n=0,a=.5){let r=E(e,"image","rotateWithOffset","float32");F(r.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${r.rank}.`);let s={image:r},i={radians:t,fillValue:n,center:a};return M.runKernel(Tl,s,i)}var $M=P({rotateWithOffset_:AM});function Ul(e,t,n,a,r,s){a==null&&(a=.5),r==null&&(r=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=e.shape[0];return n=Math.min(n,i),F(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),F(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),F(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),F(t.rank===1,()=>"scores must be a 1D tensor"),F(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),F(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function DM(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppression"),i=E(t,"scores","nonMaxSuppression"),o=Ul(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l={maxOutputSize:n,iouThreshold:a,scoreThreshold:r};return M.runKernel(al,{boxes:s,scores:i},l)}var RM=P({nonMaxSuppression_:DM});function PM(e,t,n){let a=MM(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function MM(e,t,n){return LM(e,t,n||OM)}function OM(e,t){return e>t?1:e>>1);let o=n(t,e[s]);o>0?a=s+1:(r=s,i=!o)}return i?a:-a-1}function zk(e,t,n,a,r){return ob(e,t,n,a,r,0)}function Bk(e,t,n,a,r,s){return ob(e,t,n,a,r,0,!1,s,!0)}function Wk(e,t,n,a,r,s){return ob(e,t,n,a,r,s,!0)}function ob(e,t,n,a,r,s,i=!1,o=!1,l=!1){let c=[];for(let g=0;gr&&c.push({score:t[g],boxIndex:g,suppressBeginIndex:0});c.sort(Vk);let u=s>0?-.5/s:0,p=[],d=[];for(;p.length0;){let g=c.pop(),{score:y,boxIndex:b,suppressBeginIndex:x}=g;if(y=x;--N){let T=zM(e,b,p[N]);if(T>=a){v=!0;break}if(g.score=g.score*BM(a,u,T),g.score<=r)break}g.suppressBeginIndex=p.length,v||(g.score===y?(p.push(b),d.push(g.score)):g.score>r&&PM(c,g,Vk))}let h=p.length,m=n-h;o&&m>0&&(p.push(...new Array(m).fill(0)),d.push(...new Array(m).fill(0)));let f={selectedIndices:p};return i&&(f.selectedScores=d),l&&(f.validOutputs=h),f}function zM(e,t,n){let a=e.subarray(t*4,t*4+4),r=e.subarray(n*4,n*4+4),s=Math.min(a[0],a[2]),i=Math.min(a[1],a[3]),o=Math.max(a[0],a[2]),l=Math.max(a[1],a[3]),c=Math.min(r[0],r[2]),u=Math.min(r[1],r[3]),p=Math.max(r[0],r[2]),d=Math.max(r[1],r[3]),h=(o-s)*(l-i),m=(p-c)*(d-u);if(h<=0||m<=0)return 0;let f=Math.max(s,c),g=Math.max(i,u),y=Math.min(o,p),b=Math.min(l,d),x=Math.max(y-f,0)*Math.max(b-g,0);return x/(h+m-x)}function BM(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function Vk(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function WM(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppressionAsync"),i=E(t,"scores","nonMaxSuppressionAsync"),o=Ul(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l=await Promise.all([s.data(),i.data()]),c=l[0],u=l[1],{selectedIndices:p}=zk(c,u,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),Qe(p,"int32")}var VM=WM;function UM(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=Ul(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let c={boxes:i,scores:o},u={maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s},p=M.runKernel(sl,c,u);return{selectedIndices:p[0],selectedScores:p[1]}}var GM=P({nonMaxSuppressionWithScore_:UM});async function HM(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=Ul(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let c=await Promise.all([i.data(),o.data()]),u=c[0],p=c[1],{selectedIndices:d,selectedScores:h}=Wk(u,p,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Qe(d,"int32"),selectedScores:Qe(h)}}var jM=HM;function qM(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=Ul(i,o,n,a,r,null),c=l.maxOutputSize,u=l.iouThreshold,p=l.scoreThreshold,d={boxes:i,scores:o},h={maxOutputSize:c,iouThreshold:u,scoreThreshold:p,padToMaxOutputSize:s},m=M.runKernel(rl,d,h);return{selectedIndices:m[0],validOutputs:m[1]}}var KM=P({nonMaxSuppressionPadded_:qM});async function XM(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=Ul(i,o,n,a,r,null),c=l.maxOutputSize,u=l.iouThreshold,p=l.scoreThreshold,[d,h]=await Promise.all([i.data(),o.data()]),{selectedIndices:m,validOutputs:f}=Bk(d,h,c,u,p,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Qe(m,"int32"),validOutputs:pe(f,"int32")}}var YM=XM;function JM(e,t,n=!1,a=!1){let r=E(e,"images","resizeBilinear");F(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),F(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),F(a===!1||n===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=U(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},c=M.runKernel(ni,o,l);return i?U(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Uk=P({resizeBilinear_:JM});function QM(e,t,n=!1,a=!1){let r=E(e,"images","resizeNearestNeighbor");F(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),F(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),F(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),F(a===!1||n===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=U(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},c=M.runKernel(lc,o,l);return i?U(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Gk=P({resizeNearestNeighbor_:QM});function ZM(e,t,n){F(t%1==0,()=>`bandPart(): numLower must be an integer, got ${t}.`),F(n%1==0,()=>`bandPart(): numUpper must be an integer, got ${n}.`);let a=E(e,"a","bandPart");F(a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${a.rank}.`);let r=a.shape,[s,i]=a.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(n<=i))throw new Error(`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),n<0&&(n=i);let o=U(hh(0,s,1,"int32"),[-1,1]),l=hh(0,i,1,"int32"),c=me(o,l),u=da(Si(c,pe(+t,"int32")),es(c,pe(-n,"int32"))),p=xt([s,i],a.dtype);return U($t(ut(U(a,[-1,s,i])).map(d=>Nn(u,d,p))),r)}var eP=P({bandPart_:ZM});function tP(e){let t;if(Array.isArray(e)){t=!1,F(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let r=e[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[s].shape[0]} vs. ${r})`)}else t=!0,e=zn(e,e.shape[0],0).map(r=>ts(r,[0]));F(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);let n=[],a=e;for(let r=0;r{let s=a[r];if(r>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return Hk(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,c)=>l*c),a=ut(U(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[c,u]=Hk(l,t);r.push(c),s.push(u)});let i=U($t(r,0),e.shape),o=U($t(s,0),e.shape);return[i,o]}}function Hk(e,t=!1){return M.tidy(()=>{F(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);let n=e.shape[0],a=e.shape[1],r=zy(n),s=Xr(e),i=Na([[1]],[1,1]),o=Xr(i),l=n>=a?a:n;for(let c=0;c{let h=We(s,[c,c],[n-c,1]),m=Th(h),f=We(s,[c,c],[1,1]),g=Nn(pa(f,0),Na([[-1]]),Na([[1]])),y=me(f,L(g,m)),b=xe(h,y);b.shape[0]===1?o=Xr(i):o=Je([i,We(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let x=Nt(xe(ze(g,y),m)),v=We(s,[c,0],[n-c,a]),N=L(x,o),T=Ve(o);if(c===0)s=me(v,ze(N,ze(T,v)));else{let $=me(v,ze(N,ze(T,v)));s=Je([We(s,[0,0],[c,a]),$],0)}let S=Ve(N),A=We(r,[0,c],[n,r.shape[1]-c]);if(c===0)r=me(A,ze(ze(A,o),S));else{let $=me(A,ze(ze(A,o),S));r=Je([We(r,[0,0],[n,c]),$],1)}return[o,s,r]}),Ae([u,p,d])}return!t&&n>a&&(r=We(r,[0,0],[n,a]),s=We(s,[0,0],[a,a])),[r,s]})}var rP=P({qr_:aP}),hn;(function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(hn||(hn={}));function sP(e,t,n=hn.SUM_BY_NONZERO_WEIGHTS){let a=E(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=E(t,"weights","computeWeightedLoss"));let s=r==null?a:L(a,r);if(n===hn.NONE)return s;if(n===hn.SUM)return Se(s);if(n===hn.MEAN){if(r==null)return St(s);{let i=a.size/r.size,o=xe(Se(s),Se(r));return i>1?xe(o,pe(i)):o}}if(n===hn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return xe(Se(s),pe(a.size));{let i=L(r,Ka(a.shape)),o=ue(Se(_i(i,pe(0))),"float32");return xe(Se(s),o)}}throw Error(`Unknown reduction: ${n}`)}var yr=P({computeWeightedLoss_:sP});function iP(e,t,n,a=hn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","absoluteDifference"),s=E(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=E(n,"weights","absoluteDifference")),on(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(me(r,s));return yr(o,i,a)}var oP=P({absoluteDifference_:iP});function lP(e,t,n,a,r=hn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","cosineDistance"),i=E(t,"predictions","cosineDistance"),o=null;a!=null&&(o=E(a,"weights","cosineDistance")),on(s.shape,i.shape,"Error in cosineDistance: ");let l=pe(1),c=me(l,Se(L(s,i),n,!0));return yr(c,o,r)}var uP=P({cosineDistance_:lP});function cP(e,t,n,a=hn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","hingeLoss"),s=E(t,"predictions","hingeLoss"),i=null;n!=null&&(i=E(n,"weights","hingeLoss")),on(r.shape,s.shape,"Error in hingeLoss: ");let o=pe(1);r=me(L(pe(2),r),o);let l=qe(me(o,L(r,s)));return yr(l,i,a)}var pP=P({hingeLoss_:cP});function dP(e,t,n,a=1,r=hn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","huberLoss"),i=E(t,"predictions","huberLoss"),o=null;n!=null&&(o=E(n,"weights","huberLoss")),on(s.shape,i.shape,"Error in huberLoss: ");let l=pe(a),c=Lt(me(i,s)),u=Ll(c,l),p=me(c,u),d=J(L(pe(.5),ot(u)),L(l,p));return yr(d,o,r)}var hP=P({huberLoss_:dP});function mP(e,t,n,a=1e-7,r=hn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","logLoss"),i=E(t,"predictions","logLoss"),o=null;n!=null&&(o=E(n,"weights","logLoss")),on(s.shape,i.shape,"Error in logLoss: ");let l=pe(1),c=pe(a),u=Nt(L(s,Pn(J(i,c)))),p=L(me(l,s),Pn(J(me(l,i),c))),d=me(u,p);return yr(d,o,r)}var fP=P({logLoss_:mP});function gP(e,t,n,a=hn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","meanSquaredError"),s=E(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=E(n,"weights","meanSquaredError")),on(r.shape,s.shape,"Error in meanSquaredError: ");let o=wh(r,s);return yr(o,i,a)}var yP=P({meanSquaredError_:gP});function bP(e,t){let n=E(e,"labels","sigmoidCrossEntropyWithLogits"),a=E(t,"logits","sigmoidCrossEntropyWithLogits");on(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=qe(a),s=L(a,n),i=oh(dn(Nt(Lt(a))));return J(me(r,s),i)}function xP(e,t,n,a=0,r=hn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"multiClassLabels","sigmoidCrossEntropy"),i=E(t,"logits","sigmoidCrossEntropy"),o=null;if(n!=null&&(o=E(n,"weights","sigmoidCrossEntropy")),on(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let c=pe(a),u=pe(1),p=pe(.5);s=J(L(s,me(u,c)),L(p,c))}let l=bP(s,i);return yr(l,o,r)}var vP=P({sigmoidCrossEntropy_:xP});function wP(e,t,n=-1){if(n===-1&&(n=t.rank-1),n!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${n}`);return ja((a,r,s)=>{let i=Uy(r,[n],!0),o=me(ue(r,"float32"),i);s([a,o]);let l=Nt(L(o,a));return{value:Se(l,[n]),gradFunc:(c,u)=>{let[p,d]=u,h=Ci(c.shape,[n]);return[L(U(c,h),me(ue(p,"float32"),dn(d))),L(U(c,h),me(dn(d),ue(p,"float32")))]}}})(e,t)}function kP(e,t,n,a=0,r=hn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"onehotLabels","softmaxCrossEntropy"),i=E(t,"logits","softmaxCrossEntropy"),o=null;if(n!=null&&(o=E(n,"weights","softmaxCrossEntropy")),on(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let c=pe(a),u=pe(1),p=pe(s.shape[1]);s=J(L(s,me(u,c)),xe(c,p))}let l=wP(s,i);return yr(l,o,r)}var IP=P({softmaxCrossEntropy_:kP}),TP={fft:Rc,ifft:Wl,rfft:Mc,irfft:vh},NP={hammingWindow:kM,hannWindow:Ok,frame:Lk,stft:SM},Xa={flipLeftRight:FM,resizeNearestNeighbor:Gk,resizeBilinear:Uk,rotateWithOffset:$M,cropAndResize:_M,nonMaxSuppression:RM,nonMaxSuppressionAsync:VM,nonMaxSuppressionWithScore:GM,nonMaxSuppressionWithScoreAsync:jM,nonMaxSuppressionPadded:KM,nonMaxSuppressionPaddedAsync:YM},jk={bandPart:eP,gramSchmidt:nP,qr:rP},SP={absoluteDifference:oP,computeWeightedLoss:yr,cosineDistance:uP,hingeLoss:pP,huberLoss:hP,logLoss:fP,meanSquaredError:yP,sigmoidCrossEntropy:vP,softmaxCrossEntropy:IP},br=class extends j0{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 Ae(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 yk(e,t)}dispose(){this.iterations_!=null&&Ae(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:pe(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}};Object.defineProperty(br,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var Eh=class extends br{constructor(e,t,n=null){super();this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=M.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:D(()=>Ge(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:D(()=>Ge(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedGrads[n].variable,o=this.accumulatedUpdates[n].variable;D(()=>{let l=J(L(i,this.rho),L(ot(s),1-this.rho)),c=L(xe(nn(J(o,this.epsilon)),nn(J(i,this.epsilon))),s),u=J(L(o,this.rho),L(ot(c),1-this.rho));i.assign(l),o.assign(u);let p=J(L(c,-this.learningRate),a);a.assign(p)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Ae(this.accumulatedGrads.map(e=>e.variable)),Ae(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=e.length/2,n=!1;this.accumulatedGrads=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedUpdates=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}};Eh.className="Adadelta";Yr(Eh);var Fh=class extends br{constructor(e,t=.1){super();this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t];if(this.accumulatedGrads[n]==null){let i=!1;this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:D(()=>Sn(a.shape,this.initialAccumulatorValue).variable(i))}}let r=Array.isArray(e)?e[n].tensor:e[t];if(r==null)return;let s=this.accumulatedGrads[n].variable;D(()=>{let i=J(s,ot(r));s.assign(i);let o=J(L(xe(r,nn(J(i,M.backend.epsilon()))),-this.learningRate),a);a.assign(o)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Ae(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulatedGrads=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}};Fh.className="Adagrad";Yr(Fh);var Ah=class extends br{constructor(e,t,n,a=null){super();this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],D(()=>{this.accBeta1=pe(t).variable(),this.accBeta2=pe(n).variable()}),a==null&&(this.epsilon=M.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);D(()=>{let n=me(1,this.accBeta1),a=me(1,this.accBeta2);t.forEach((r,s)=>{let i=M.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:D(()=>Ge(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:D(()=>Ge(i).variable(o))});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let c=this.accumulatedFirstMoment[s].variable,u=this.accumulatedSecondMoment[s].variable,p=J(L(c,this.beta1),L(l,1-this.beta1)),d=J(L(u,this.beta2),L(ot(l),1-this.beta2)),h=xe(p,n),m=xe(d,a);c.assign(p),u.assign(d);let f=J(L(xe(h,J(nn(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(L(this.accBeta1,this.beta1)),this.accBeta2.assign(L(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Ae(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&Ae(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),D(()=>{this.accBeta1.assign(gr(this.beta1,this.iterations_+1)),this.accBeta2.assign(gr(this.beta2,this.iterations_+1))});let t=e.length/2,n=!1;this.accumulatedFirstMoment=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}};Ah.className="Adam";Yr(Ah);var $h=class extends br{constructor(e,t,n,a=null,r=0){super();this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.decay=r,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],D(()=>{this.iteration=pe(0).variable(),this.accBeta1=pe(t).variable()}),a==null&&(this.epsilon=M.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);D(()=>{let n=me(1,this.accBeta1),a=xe(-this.learningRate,J(L(this.iteration,this.decay),1));t.forEach((r,s)=>{let i=M.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:Ge(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:Ge(i).variable(o)});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let c=this.accumulatedFirstMoment[s].variable,u=this.accumulatedWeightedInfNorm[s].variable,p=J(L(c,this.beta1),L(l,1-this.beta1)),d=L(u,this.beta2),h=Lt(l),m=qa(d,h);c.assign(p),u.assign(m);let f=J(L(xe(a,n),xe(p,J(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(J(this.iteration,1)),this.accBeta1.assign(L(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Ae(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&Ae(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}};$h.className="Adamax";Yr($h);var Pc=class extends br{constructor(e){super();this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=Array.isArray(e)?e[n].tensor:e[t];if(a==null)return;let r=M.registeredVariables[t];D(()=>{let s=J(L(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=jt(pe(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}};Pc.className="SGD";Yr(Pc);var Dh=class extends Pc{constructor(e,t,n=!1){super(e);this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=pe(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t];if(this.accumulations[n]==null){let i=!1;this.accumulations[n]={originalName:`${t}/momentum`,variable:D(()=>Ge(a).variable(i))}}let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&D(()=>{let i,o=J(L(this.m,r),s);this.useNesterov?i=J(L(this.c,J(s,L(o,this.m))),a):i=J(L(this.c,o),a),r.assign(o),a.assign(i)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Ae(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulations=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}};Dh.className="Momentum";Yr(Dh);var Rh=class extends br{constructor(e,t=.9,n=0,a=null,r=!1){super();if(this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=a,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=r,a==null&&(this.epsilon=M.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:D(()=>Ge(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:D(()=>Ge(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:D(()=>Ge(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;D(()=>{let l=J(L(i,this.decay),L(ot(s),1-this.decay));if(this.centered){let c=this.accumulatedMeanGrads[n].variable,u=J(L(c,this.decay),L(s,1-this.decay)),p=xe(L(s,this.learningRate),nn(me(l,J(ot(u),this.epsilon)))),d=J(L(o,this.momentum),p);i.assign(l),c.assign(u),o.assign(d);let h=me(a,d);a.assign(h)}else{let c=J(L(i,this.decay),L(ot(s),1-this.decay)),u=J(L(o,this.momentum),xe(L(s,this.learningRate),nn(J(c,this.epsilon))));i.assign(c),o.assign(u);let p=me(a,u);a.assign(p)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Ae(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Ae(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&Ae(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedMoments=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}};Rh.className="RMSProp";Yr(Rh);var Fi=class{static sgd(e){return new Pc(e)}static momentum(e,t,n=!1){return new Dh(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new Rh(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new Ah(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new Eh(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new $h(e,t,n,a,r)}static adagrad(e,t=.1){return new Fh(e,t)}},Ai={sgd:Fi.sgd,momentum:Fi.momentum,adadelta:Fi.adadelta,adagrad:Fi.adagrad,rmsprop:Fi.rmsprop,adamax:Fi.adamax,adam:Fi.adam},CP=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function Mh(){return new Promise(e=>CP(()=>e()))}var _={};Oe(_,{ERF_A1:()=>LP,ERF_A2:()=>zP,ERF_A3:()=>BP,ERF_A4:()=>WP,ERF_A5:()=>VP,ERF_P:()=>OP,PARALLELIZE_THRESHOLD:()=>lb,SELU_SCALE:()=>Kk,SELU_SCALEALPHA:()=>qk,applyActivation:()=>Ch,assertAndGetBroadcastShape:()=>bt,assertAxesAreInnerMostDims:()=>dD,assertParamsConsistent:()=>_P,assignToTypedArray:()=>YP,axesAreInnerMostDims:()=>Wy,calculateShapes:()=>R0,combineLocations:()=>xk,complexWithEvenIndex:()=>qP,complexWithOddIndex:()=>KP,computeConv2DInfo:()=>Tc,computeConv3DInfo:()=>tk,computeDefaultPad:()=>Ey,computeDilation2DInfo:()=>PA,computeOptimalWindowSize:()=>FP,computeOutAndReduceShapes:()=>vk,computeOutShape:()=>EP,computePool2DInfo:()=>ek,computePool3DInfo:()=>OA,convertConv2DDataFormat:()=>Z0,eitherStridesOrDilationsAreOne:()=>Ga,expandShapeToKeepDim:()=>Ci,exponent:()=>QP,exponents:()=>JP,fromStringArrayToUint8:()=>tO,fromUint8ToStringArray:()=>eO,getAxesPermutation:()=>wk,getBroadcastDims:()=>_$,getComplexWithIndex:()=>XP,getFusedBiasGradient:()=>Sh,getFusedDyActivation:()=>Nh,getImageCenter:()=>AP,getInnerMostAxes:()=>hD,getPermuted:()=>DP,getReductionAxes:()=>zt,getReshaped:()=>$P,getReshapedPermuted:()=>RP,getSliceBeginCoords:()=>MP,getSliceSize:()=>PP,getUndoAxesPermutation:()=>Vy,log:()=>GP,mergeRealAndImagArrays:()=>HP,prepareAndValidate:()=>D0,prepareSplitSize:()=>ZP,segment_util:()=>Xk,shouldFuse:()=>_h,slice_util:()=>pn,splitRealAndImagArrays:()=>jP,tupleValuesAreOne:()=>Jr,upcastType:()=>ua,validateInput:()=>fy,validateUpdateShape:()=>my,warn:()=>UP});function _P(e,t){let n=e[0].length;e.forEach((r,s)=>{F(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),F(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`);let a=e[0];e.forEach((r,s)=>{for(let i=0;i`Error in concat${n}D: Shape of tensors[${s}] (${r}) does not match the shape of the rest (${a}) along the non-concatenated axis ${s}.`)})}function EP(e,t){let n=e[0].slice();for(let a=1;a=t*2+1||i%2==1?s.push(i):r.push(i);a.push(...r),a.push(0),a.push(...s)}return a}function RP(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s"Number of splits must evenly divide the axis."),a=new Array(t).fill(e.shape[n]/t);else{let r=t.reduce((i,o)=>(o===-1&&(i+=1),i),0);F(r<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((o,l)=>l>0?o+l:o);t[s]=e.shape[n]-i}F(e.shape[n]===t.reduce((i,o)=>i+o),()=>"The sum of sizes must match the size of the axis dimension."),a=t}return a}var Xk={};Oe(Xk,{collectGatherOpShapeInfo:()=>rO,computeOutShape:()=>aO,segOpComputeOptimalWindowSize:()=>nO});function nO(e,t){let n=!1,a;for(e<=lb?(a=e,n=!0):a=id(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=id(e,a+1);return a}function aO(e,t,n){let a=[],r=e.length;for(let s=0;sr))throw new Error(`Expect batchDims in the range of [-${r}, ${r}], but got ${a}`);if(a<0&&(a+=r),a>s)throw new Error(`batchDims (${a}) must be less than rank(x) ( - ${s}).`);if(nVd(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function tO(e){return e.map(t=>fc(t))}var Ya={};Oe(Ya,{nonMaxSuppressionV3Impl:()=>zk,nonMaxSuppressionV4Impl:()=>Bk,nonMaxSuppressionV5Impl:()=>Wk,whereImpl:()=>Ek});var Yk={kernelName:So,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,Vl(ue(n,"float32"),-1))}}},sO={kernelName:Co,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ot(ue(n,"float32")),r=nn(me(pe(1),a));return Nt(xe(e,r))}}}},iO={kernelName:_o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=nn(me(ot(ue(n,"float32")),1));return xe(e,a)}}}},oO={kernelName:Wr,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=bt(n.shape,a.shape);return{a:()=>{let s=e,i=zt(n.shape,r);return i.length>0&&(s=Se(s,i)),U(s,n.shape)},b:()=>{let s=e,i=zt(a.shape,r);return i.length>0&&(s=Se(s,i)),U(s,a.shape)}}}},lO={kernelName:Ts,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},uO={kernelName:Ns,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Ge(n)}}},cO={kernelName:Xu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Ge(n)}}},pO={kernelName:Eo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,nn(me(pe(1),ot(ue(n,"float32")))))}}},dO={kernelName:Fo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=nn(J(pe(1),ot(ue(n,"float32"))));return xe(e,a)}}}},hO={kernelName:Do,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=bt(n.shape,a.shape);return{a:()=>{let s=J(ot(n),ot(a)),i=L(e,xe(a,s)),o=zt(n.shape,r);return o.length>0&&(i=Se(i,o)),U(i,n.shape)},b:()=>{let s=J(ot(n),ot(a)),i=Nt(L(e,xe(n,s))),o=zt(a.shape,r);return o.length>0&&(i=Se(i,o)),U(i,a.shape)}}}},mO={kernelName:Ao,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,J(ot(ue(n,"float32")),1))}}},fO={kernelName:$o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,me(pe(1),ot(ue(n,"float32"))))}}};function gO(e,t,n,a,r,s){let i=E(e,"dy","avgPool3dGrad"),o=E(t,"input","avgPool3dGrad"),l=i,c=o,u=!1;o.rank===4&&(u=!0,l=U(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),c=U(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),F(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),F(c.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${c.rank}.`),s!=null&&F(Gt(r),()=>`Error in avgPool3dGrad: pad must be an integer when using, dimRoundingMode ${s} but got pad ${r}.`);let p={dy:l,input:c},d={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=M.runKernel(pd,p,d);return u?U(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var yO=P({avgPool3dGrad_:gO}),bO={kernelName:Yu,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>yO(e,a,r,s,i,o)}}};function xO(e,t,n,a,r){let s=E(e,"dy","avgPoolGrad"),i=E(t,"input","avgPoolGrad");F(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let o=i,l=s,c=!1;i.rank===3&&(c=!0,o=U(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=U(s,[1,s.shape[0],s.shape[1],s.shape[2]])),F(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),F(o.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`);let u={dy:l,input:o},p={filterSize:n,strides:a,pad:r},d=M.runKernel(cd,u,p);return c?U(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var vO=P({avgPoolGrad_:xO}),wO={kernelName:Ss,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>vO(e,a,r,s,i)}}},kO={kernelName:Cs,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>ze(e,r,!1,!0),b:()=>ze(a,e,!0,!1)}:!s&&i?{a:()=>ze(e,r,!1,!1),b:()=>ze(e,a,!0,!1)}:s&&!i?{a:()=>ze(r,e,!1,!0),b:()=>ze(a,e,!1,!1)}:{a:()=>ze(r,e,!0,!0),b:()=>ze(e,a,!0,!0)}}},IO={kernelName:Ju,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>Fc(e,a,r)}}},TO={kernelName:r0,gradFunc:(e,t,n)=>{let a=n,r=a.inputShape,s=a.shape,i=Array.from(s);for(let l=r.length-1;l>=0;l--)if(r[l]===s[l])i[l]=1;else if(r[l]!==1)throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${s}].`);let o=[];for(let l=0;l1&&o.push(l);return{x:()=>Se(e,o,!0)}}},NO={kernelName:_s,gradFunc:e=>({x:()=>e.clone()})},SO={kernelName:Es,gradFunc:e=>({x:()=>Ge(e)})},CO={kernelName:Vr,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>Nn(da(es(a,r),Si(a,s)),e,Ge(e))}}},_O={kernelName:Qu,inputsToSave:["x"],gradFunc:Yk.gradFunc},EO={kernelName:Ro,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=la(r,t[0].shape)[0],i=a.map(o=>o[s]);return zn(e,i,s).map(o=>()=>o)}},FO={kernelName:Fs,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return F(Jr(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>$y(a.shape,e,r,i,o,l),filter:()=>ib(a,e,r.shape,i,o,l)}}},AO={kernelName:As,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>Ft(e,r,s,i,o,1,l),filter:()=>ib(e,a,r.shape,s,i,o,l)}}};function $O(e,t,n,a,r){let s=e;e.rank===4&&(s=U(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=U(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),F(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),F(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),F(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),F(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),F(i.shape[4]===n[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${n[4]}).`);let o={x:s,dy:i},l={strides:a,pad:r,filterShape:n};return M.runKernel(fd,o,l)}var DO=P({conv3DBackpropFilter_:$O}),RO={kernelName:Zu,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;F(Jr(a),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${a}'`);let[i,o]=t;return{x:()=>ck(i.shape,e,o,r,s),filter:()=>DO(i,e,o.shape,r,s)}}},MO={kernelName:$s,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(Nt(yh(ue(n,"float32"))),e)}}},PO={kernelName:Mo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(bh(ue(n,"float32")),e)}}},OO={kernelName:Ds,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=wk([r],a.rank),l=rh(e,r,s,!i);return o!=null&&(l=Ve(l,o)),l}}}},LO={kernelName:Rs,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;F(Jr(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,c]=t;return F(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),F(c.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${c.rank}.`),F(l.shape[3]===c.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),F(Ga(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),i!=null&&F(Gt(s),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`),{x:()=>Pk(l.shape,e,c,r,s,a,i),filter:()=>Mk(l,e,c.shape,r,s,a,i)}}},zO={kernelName:ec,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,s={x:a,filter:r,dy:e},i={x:a,filter:r,dy:e};return{x:()=>M.runKernel(wd,s,n),filter:()=>M.runKernel(kd,i,n)}}},BO={kernelName:Lo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>M.runKernel(Id,a)}}},WO={kernelName:zo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=L(dn(Nt(ot(n))),2/Math.sqrt(Math.PI));return{x:()=>L(e,a)}}},VO={kernelName:Ps,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,n)}}},UO={kernelName:Wo,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>U(e,n.shape)}}},GO={kernelName:Vo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,dn(n))}}},HO={kernelName:Os,gradFunc:e=>({x:()=>Ge(e)})},jO={kernelName:Ls,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=bt(n.shape,a.shape);return{a:()=>{let s=xe(e,ue(a,"float32")),i=zt(n.shape,r);return i.length>0?U(Se(s,i),n.shape):s},b:()=>{let s=L(e,ue(n,"float32")),i=zt(a.shape,r);i.length>0&&(s=U(Se(s,i),a.shape));let o=ot(a);return Nt(xe(s,ue(o,"float32")))}}}},qO={kernelName:zs,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?pe(1):o,c=zt(s.shape,r.shape),u=[];if(s.rank===1){for(let f=0;fs.rank===1?U(L(L(e,Ha(U(h,[1,1,1,s.shape[0]]),u)),l),r.shape):U(L(L(e,h),l),r.shape),mean:()=>{let f=L(L(h,pe(-1)),d);return s.rank===1&&(f=Se(f,c)),U(f,s.shape)},variance:()=>{let f=L(L(m,p),d);return s.rank===1&&(f=Se(f,c)),U(f,s.shape)},scale:()=>{let f=L(p,h),g=L(e,f);return s.rank===1&&(g=Se(g,c)),U(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=Se(f,c)),U(f,s.shape)}}}},KO={kernelName:Go,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s}=n,i=la(s,a.shape)[0];return{x:()=>{let o=a.shape,l=r.size,c=o.slice(0,i),u=c.length,p=o.slice(s,o.length).slice(1),d=p.length,h=Jk(0,u),m=Jk(u+1,u+1+d),f=Qk([c,[l],p]),g=U(e,f),y=U(r,[l]),b=Qk([[u],h,m]),x=Ve(g,b),v=nb(x,y,a.shape[i]),N=Vy(b);return v=Ve(v,N),v},indices:()=>r}}};function Jk(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>Ge(n),b:()=>Ge(a)}}},YO={kernelName:Ws,gradFunc:e=>({x:()=>ue(e,"float32")})},JO={kernelName:qo,gradFunc:e=>({x:()=>Ge(e)})},QO={kernelName:Ko,gradFunc:e=>({x:()=>Ge(e)})},ZO={kernelName:Xo,gradFunc:e=>({x:()=>Ge(e)})},eL={kernelName:Vs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=pa(a,0);return{x:()=>Nn(s,e,L(e,r))}}},tL={kernelName:Qo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,J(n,1))}}},nL={kernelName:Us,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,ue(n,"float32"))}}},aL={kernelName:s0,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=!0,i=dn(a);return me(e,L(Se(e,r,s),i))}}}};function rL(e,t,n,a=5,r=1,s=1,i=.5){let o={x:e,y:t,dy:n},l={depthRadius:a,bias:r,alpha:s,beta:i};return M.runKernel(_d,o,l)}var sL=P({localResponseNormalizationBackprop_:rL}),iL={kernelName:rc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>sL(a,r,e,s,i,o,l)}}};function Zk(e,t,n,a){return t.rankL(e,ue(Zr(n,t),e.dtype))}}var e1={kernelName:Gs,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=la(r,s.shape),l=Zk(e,i,s,o);return{x:()=>l.x()}}},oL={kernelName:Hs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>L(e,ue(es(n,a),"float32")),b:()=>L(e,ue(ih(n,a),"float32"))}}};function lL(e,t,n,a,r,s,i){let o=E(e,"dy","maxPool3dGrad"),l=E(t,"input","maxPool3dGrad"),c=E(n,"output","maxPool3dGrad"),u=o,p=l,d=c,h=!1;l.rank===4&&(h=!0,u=U(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),p=U(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),d=U(c,[1,c.shape[0],c.shape[1],c.shape[2],c.shape[3]])),F(u.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`),F(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),F(d.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${d.rank}.`),i!=null&&F(Gt(s),()=>`Error in maxPool3dGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`);let m={dy:u,input:p,output:d},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=M.runKernel(Fd,m,f);return h?U(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var uL=P({maxPool3dGrad_:lL}),cL={kernelName:sc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>uL(e,a,r,s,i,o,l)}}};function pL(e,t,n,a,r,s,i){let o=E(e,"dy","maxPoolGrad"),l=E(t,"input","maxPoolGrad"),c=E(n,"output","maxPoolGrad");F(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),F(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),F(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),i!=null&&F(Gt(s),()=>`Error in maxPoolGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`);let u={dy:o,input:l,output:c},p={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return M.runKernel(Ed,u,p)}var dL=P({maxPoolGrad_:pL}),hL={kernelName:js,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>dL(e,a,r,s,i,o)}}},mL={kernelName:qs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=la(r,a.shape),i=vk(a.shape,s)[1],o=Pt(i);return{x:()=>{let l=a.shape.slice();s.forEach(u=>{l[u]=1});let c=U(e,l);return xe(L(c,Ka(a.shape,"float32")),o)}}}},fL={kernelName:Ks,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=la(r,s.shape),l=Zk(e,i,s,o);return{x:()=>l.x()}}},gL={kernelName:Xs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>L(e,ue(Si(n,a),"float32")),b:()=>L(e,ue(pa(n,a),"float32"))}}},yL={kernelName:ic,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>We(e,s,a.shape)}}},bL={kernelName:el,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=bt(n.shape,a.shape);return{a:()=>{let s=zt(n.shape,r);return s.length>0?U(Se(e,s),n.shape):e},b:()=>{let s=L(e,Nt(Ml(xe(n,a)))),i=zt(a.shape,r);return i.length>0?U(Se(s,i),a.shape):s}}}},xL={kernelName:Ys,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=bt(n.shape,a.shape);return{a:()=>{let s=L(e,ue(a,"float32")),i=zt(n.shape,r);return i.length>0?U(Se(s,i),n.shape):s},b:()=>{let s=L(e,ue(n,"float32")),i=zt(a.shape,r);return i.length>0?U(Se(s,i),a.shape):s}}}},vL={kernelName:tl,gradFunc:e=>({x:()=>Nt(e)})},wL={kernelName:Js,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>xt(n.shape,"float32")}}},kL={kernelName:il,gradFunc:e=>({x:()=>Ge(e)})},IL={kernelName:ol,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return ut(e,a).map(r=>()=>r)}},t1={kernelName:Qs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>We(e,s,a.shape)}}},TL={kernelName:Zs,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=bt(s.shape,i.shape);return{a:()=>{let l=ue(i,"float32"),c=L(e,L(l,gr(s,me(l,pe(1))))),u=zt(s.shape,o);return u.length>0&&(c=Se(c,u)),U(c,s.shape)},b:()=>{let l=pa(s,0),c=Nn(l,Pn(s),Ge(s)),u=L(e,L(r,c)),p=zt(i.shape,o);return p.length>0&&(u=Se(u,p)),U(u,i.shape)}}}},NL={kernelName:ei,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=pa(n,0);return{x:()=>Nn(r,e,L(e,a)),alpha:()=>{let s=Nn(r,Ge(e),L(e,n)),i=zt(a.shape,e.shape);return i.length>0&&(s=Se(s,i)),U(s,a.shape)}}}},SL={kernelName:Ms,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=bt(n.shape,a.shape);return{a:()=>{let s=xe(e,ue(a,"float32")),i=zt(n.shape,r);return i.length>0?U(Se(s,i),n.shape):s},b:()=>{let s=L(e,ue(n,"float32")),i=zt(a.shape,r);i.length>0&&(s=U(Se(s,i),a.shape));let o=ot(a);return Nt(xe(s,ue(o,"float32")))}}}},CL={kernelName:ul,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,Nt(ot(n)))}}},_L={kernelName:ai,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=L(Si(n,6),Vl(n));return{x:()=>L(e,ue(a,"float32"))}}},EL={kernelName:ti,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,ue(Vl(n),"float32"))}}},FL={kernelName:cl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>U(e,n.shape)}}},AL={kernelName:ni,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>M.runKernel(Md,r,n)}}},$L={kernelName:lc,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>M.runKernel(Rd,r,n)}}},DL={kernelName:ri,gradFunc:(e,t,n)=>{let{dims:a}=n,r=la(a,e.shape);return{x:()=>Ln(e,r)}}},RL={kernelName:si,gradFunc:e=>({x:()=>Ge(e)})},ML={kernelName:ii,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Nt(xe(e,L(gr(n,1.5),2)))}}},PL={kernelName:dl,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>ue(Ge(n),"float32"),t:()=>L(e,ue(n,e.dtype)),e:()=>L(e,ue(Ec(n),e.dtype))}}},OL={kernelName:hl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=pa(n,pe(0)),r=pe(qk),s=pe(Kk),i=L(e,s),o=L(L(e,r),dn(ue(n,"float32")));return Nn(a,i,o)}}}},LL={kernelName:li,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,L(n,me(pe(1),n)))}}},zL={kernelName:gl,gradFunc:e=>({x:()=>Ge(e)})},BL={kernelName:oi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(Cc(ue(n,"float32")),e)}}},WL={kernelName:fl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(ah(ue(n,"float32")),e)}}},VL={kernelName:ml,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=U0(a,r,s),c=[];for(let u=0;uea(e,c)}}},UL={kernelName:pi,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=L(e,a);return{logits:()=>me(i,L(Se(i,[r],s),a))}}},GL={kernelName:yl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,ca(n))}}},n1={kernelName:uc,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>Nc(e,a,r)}}},a1={kernelName:bl,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Je(e,a)}}},HL={kernelName:ui,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,L(nn(ue(n,"float32")),2))}}},jL={kernelName:cc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,L(ue(n,"float32"),2))}}},qL={kernelName:di,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pe(2);return{a:()=>L(e,L(r,me(n,a))),b:()=>L(e,L(r,me(a,n)))}}},KL={kernelName:Gr,gradFunc:e=>({x:()=>Ge(e)})},XL={kernelName:hi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=bt(n.shape,a.shape);return{a:()=>{let s=e,i=zt(n.shape,r);return i.length>0&&(s=Se(s,i)),U(s,n.shape)},b:()=>{let s=e,i=zt(a.shape,r);return i.length>0&&(s=Se(s,i)),U(Nt(s),a.shape)}}}},YL={kernelName:ci,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;la(s,a.shape).forEach(l=>{r[l]=1});let i=U(e,r),o=L(i,Ka(a.shape,"float32"));return{x:()=>o}}},JL={kernelName:vl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,ot(Cc(n)))}}},QL={kernelName:mi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(me(pe(1),ot(n)),e)}}},ZL={kernelName:Ur,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=Ge(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=Vy(r);return{x:()=>Ve(e,s)}}},t3={kernelName:kl,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>$t(e,r)}}},a3={kernelName:pc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>n3(e,n)}}};function n3(e,t){let n=qa(t,Ge(t)),a=Ni(e,n),r=es(t,pe(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>Ge(e)})},s3=[Yk,sO,iO,oO,lO,uO,cO,pO,dO,hO,mO,fO,bO,wO,kO,IO,TO,NO,SO,CO,_O,EO,AO,FO,RO,MO,PO,OO,LO,zO,SL,BO,WO,VO,UO,GO,jO,HO,qO,KO,XO,YO,JO,QO,ZO,eL,tL,nL,aL,iL,e1,e1,oL,cL,hL,mL,fL,gL,yL,bL,xL,vL,wL,kL,IL,t1,t1,TL,NL,CL,_L,EL,FL,AL,$L,DL,RL,ML,PL,OL,LL,zL,BL,WL,VL,UL,GL,n1,n1,a1,a1,HL,qL,jL,KL,XL,YL,JL,QL,ZL,e3,t3,a3,r3];for(let e of s3)i0(e);Y().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};Y().prototype.acos=function(){return this.throwIfDisposed(),vy(this)};Y().prototype.acosh=function(){return this.throwIfDisposed(),wy(this)};Y().prototype.add=function(e){return this.throwIfDisposed(),J(this,e)};Y().prototype.all=function(e,t){return this.throwIfDisposed(),Zd(this,e,t)};Y().prototype.any=function(e,t){return this.throwIfDisposed(),kc(this,e,t)};Y().prototype.argMax=function(e){return this.throwIfDisposed(),Ic(this,e)};Y().prototype.argMin=function(e){return this.throwIfDisposed(),ky(this,e)};Y().prototype.asScalar=function(){return this.throwIfDisposed(),F(this.size===1,()=>"The array must have only 1 element."),U(this,[])};Y().prototype.asType=function(e){return this.throwIfDisposed(),ue(this,e)};Y().prototype.as1D=function(){return this.throwIfDisposed(),U(this,[this.size])};Y().prototype.as2D=function(e,t){return this.throwIfDisposed(),U(this,[e,t])};Y().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),U(this,[e,t,n])};Y().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),U(this,[e,t,n,a])};Y().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),U(this,[e,t,n,a,r])};Y().prototype.asin=function(){return this.throwIfDisposed(),Iy(this)};Y().prototype.asinh=function(){return this.throwIfDisposed(),Ty(this)};Y().prototype.atan=function(){return this.throwIfDisposed(),Ny(this)};Y().prototype.atan2=function(e){return this.throwIfDisposed(),Sy(this,e)};Y().prototype.atanh=function(){return this.throwIfDisposed(),Cy(this)};Y().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),Qn(this,e,t,n,a)};Y().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Nc(this,e,t)};Y().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),fr(this,e,t,n,a,r)};Y().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Sc(this,e)};Y().prototype.cast=function(e){return this.throwIfDisposed(),ue(this,e)};Y().prototype.ceil=function(){return this.throwIfDisposed(),Ay(this)};Y().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),qt(this,e,t)};Y().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Ee&&(e=[e]),Je([this,...e],t)};Y().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),th(this,e,t,n,a,r,s)};Y().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),nh(this,e,t,n,a,r)};Y().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Ft(this,e,t,n,a,r,s)};Y().prototype.cos=function(){return this.throwIfDisposed(),Cc(this)};Y().prototype.cosh=function(){return this.throwIfDisposed(),ah(this)};Y().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),rh(this,e,t,n)};Y().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),Ry(this,e,t)};Y().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Qr(this,e,t,n,a,r,s)};Y().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),My(this,e,t,n,a,r)};Y().prototype.divNoNan=function(e){return this.throwIfDisposed(),Py(this,e)};Y().prototype.div=function(e){return this.throwIfDisposed(),xe(this,e)};Y().prototype.dot=function(e){return this.throwIfDisposed(),dk(this,e)};Y().prototype.elu=function(){return this.throwIfDisposed(),Rl(this)};Y().prototype.equal=function(e){return this.throwIfDisposed(),Zr(this,e)};Y().prototype.erf=function(){return this.throwIfDisposed(),Oy(this)};Y().prototype.exp=function(){return this.throwIfDisposed(),dn(this)};Y().prototype.expandDims=function(e){return this.throwIfDisposed(),Mn(this,e)};Y().prototype.expm1=function(){return this.throwIfDisposed(),Ly(this)};Y().prototype.fft=function(){return this.throwIfDisposed(),Rc(this)};Y().prototype.flatten=function(){return this.throwIfDisposed(),U(this,[this.size])};Y().prototype.floor=function(){return this.throwIfDisposed(),Ml(this)};Y().prototype.floorDiv=function(e){return this.throwIfDisposed(),Qd(this,e)};Y().prototype.gather=function(e,t){return this.throwIfDisposed(),Ni(this,e,t)};Y().prototype.greaterEqual=function(e){return this.throwIfDisposed(),es(this,e)};Y().prototype.greater=function(e){return this.throwIfDisposed(),pa(this,e)};Y().prototype.ifft=function(){return this.throwIfDisposed(),Wl(this)};Y().prototype.irfft=function(){return this.throwIfDisposed(),vh(this)};Y().prototype.isFinite=function(){return this.throwIfDisposed(),hk(this)};Y().prototype.isInf=function(){return this.throwIfDisposed(),mk(this)};Y().prototype.isNaN=function(){return this.throwIfDisposed(),fk(this)};Y().prototype.leakyRelu=function(e){return this.throwIfDisposed(),_c(this,e)};Y().prototype.lessEqual=function(e){return this.throwIfDisposed(),Si(this,e)};Y().prototype.less=function(e){return this.throwIfDisposed(),ih(this,e)};Y().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),By(this,e,t,n,a)};Y().prototype.logSigmoid=function(){return this.throwIfDisposed(),bk(this)};Y().prototype.logSoftmax=function(e){return this.throwIfDisposed(),uh(this,e)};Y().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),Uy(this,e,t)};Y().prototype.log=function(){return this.throwIfDisposed(),Pn(this)};Y().prototype.log1p=function(){return this.throwIfDisposed(),oh(this)};Y().prototype.logicalAnd=function(e){return this.throwIfDisposed(),da(this,e)};Y().prototype.logicalNot=function(){return this.throwIfDisposed(),Ec(this)};Y().prototype.logicalOr=function(e){return this.throwIfDisposed(),ch(this,e)};Y().prototype.logicalXor=function(e){return this.throwIfDisposed(),kk(this,e)};Y().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),ze(this,e,t,n)};Y().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),At(this,e,t,n,a)};Y().prototype.max=function(e,t){return this.throwIfDisposed(),Zn(this,e,t)};Y().prototype.maximum=function(e){return this.throwIfDisposed(),qa(this,e)};Y().prototype.mean=function(e,t){return this.throwIfDisposed(),St(this,e,t)};Y().prototype.min=function(e,t){return this.throwIfDisposed(),Ol(this,e,t)};Y().prototype.minimum=function(e){return this.throwIfDisposed(),Ll(this,e)};Y().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),Hy(this,e,t)};Y().prototype.mod=function(e){return this.throwIfDisposed(),jy(this,e)};Y().prototype.mul=function(e){return this.throwIfDisposed(),L(this,e)};Y().prototype.neg=function(){return this.throwIfDisposed(),Nt(this)};Y().prototype.norm=function(e,t,n){return this.throwIfDisposed(),Th(this,e,t,n)};Y().prototype.notEqual=function(e){return this.throwIfDisposed(),_i(this,e)};Y().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),Fl(this,e,t,n)};Y().prototype.onesLike=function(){return this.throwIfDisposed(),On(this)};Y().prototype.pad=function(e,t){return this.throwIfDisposed(),ea(this,e,t)};Y().prototype.pool=function(e,t,n,a,r){return this.throwIfDisposed(),Nk(this,e,t,n,a,r)};Y().prototype.pow=function(e){return this.throwIfDisposed(),gr(this,e)};Y().prototype.prelu=function(e){return this.throwIfDisposed(),Ac(this,e)};Y().prototype.prod=function(e,t){return this.throwIfDisposed(),dh(this,e,t)};Y().prototype.reciprocal=function(){return this.throwIfDisposed(),Xy(this)};Y().prototype.relu=function(){return this.throwIfDisposed(),qe(this)};Y().prototype.relu6=function(){return this.throwIfDisposed(),mh(this)};Y().prototype.reshapeAs=function(e){return this.throwIfDisposed(),U(this,e.shape)};Y().prototype.reshape=function(e){return this.throwIfDisposed(),U(this,e)};Y().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),Uk(this,e,t,n)};Y().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),Gk(this,e,t,n)};Y().prototype.reverse=function(e){return this.throwIfDisposed(),Ln(this,e)};Y().prototype.rfft=function(){return this.throwIfDisposed(),Mc(this)};Y().prototype.round=function(){return this.throwIfDisposed(),Yy(this)};Y().prototype.rsqrt=function(){return this.throwIfDisposed(),fh(this)};Y().prototype.selu=function(){return this.throwIfDisposed(),gh(this)};Y().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Ei(this,e,t,n,a,r,s)};Y().prototype.sigmoid=function(){return this.throwIfDisposed(),ca(this)};Y().prototype.sign=function(){return this.throwIfDisposed(),Jy(this)};Y().prototype.sin=function(){return this.throwIfDisposed(),yh(this)};Y().prototype.sinh=function(){return this.throwIfDisposed(),bh(this)};Y().prototype.slice=function(e,t){return this.throwIfDisposed(),We(this,e,t)};Y().prototype.softmax=function(e){return this.throwIfDisposed(),Ta(this,e)};Y().prototype.softplus=function(){return this.throwIfDisposed(),Pl(this)};Y().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Fc(this,e,t)};Y().prototype.split=function(e,t){return this.throwIfDisposed(),zn(this,e,t)};Y().prototype.sqrt=function(){return this.throwIfDisposed(),nn(this)};Y().prototype.square=function(){return this.throwIfDisposed(),ot(this)};Y().prototype.squaredDifference=function(e){return this.throwIfDisposed(),wh(this,e)};Y().prototype.squeeze=function(e){return this.throwIfDisposed(),ts(this,e)};Y().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Ee?[this,e]:[this,...e];return $t(n,t)};Y().prototype.step=function(e){return this.throwIfDisposed(),Vl(this,e)};Y().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),Zy(this,e,t,n,a,r,s,i,o)};Y().prototype.sub=function(e){return this.throwIfDisposed(),me(this,e)};Y().prototype.sum=function(e,t){return this.throwIfDisposed(),Se(this,e,t)};Y().prototype.tan=function(){return this.throwIfDisposed(),eb(this)};Y().prototype.tanh=function(){return this.throwIfDisposed(),Dl(this)};Y().prototype.tile=function(e){return this.throwIfDisposed(),Ha(this,e)};Y().prototype.toBool=function(){return this.throwIfDisposed(),ue(this,"bool")};Y().prototype.toFloat=function(){return this.throwIfDisposed(),ue(this,"float32")};Y().prototype.toInt=function(){return this.throwIfDisposed(),ue(this,"int32")};Y().prototype.topk=function(e,t){return this.throwIfDisposed(),tb(this,e,t)};Y().prototype.transpose=function(e){return this.throwIfDisposed(),Ve(this,e)};Y().prototype.unique=function(e){return this.throwIfDisposed(),Ih(this,e)};Y().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),nb(this,e,t)};Y().prototype.unstack=function(e){return this.throwIfDisposed(),ut(this,e)};Y().prototype.where=function(e,t){return this.throwIfDisposed(),Nn(e,this,t)};Y().prototype.zerosLike=function(){return this.throwIfDisposed(),Ge(this)};var r1={};Oe(r1,{maxNorm:()=>i3,minMaxNorm:()=>u3,nonNeg:()=>l3,unitNorm:()=>o3});var ub;function Bt(){return ub==null&&(ub=J0().epsilon()),ub}function Ca(){return"channelsLast"}var xr=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,xr.prototype)}},_a=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,_a.prototype)}},z=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,z.prototype)}},$e=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,$e.prototype)}},s1=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,s1.prototype)}};function $i(e,t){if(Array.isArray(e)){let n=[];for(let a=0;an.toUpperCase())}var ha={};function cb(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function pb(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>pb(t));else{let t=Object.keys(e);for(let n of t){let a=e[n];a!=null&&typeof a=="object"&&(!Array.isArray(a)&&a.type==="ndarray"&&typeof a.value=="number"?e[n]=a.value:pb(a))}}}function Oc(e,t={},n={},a="object",r=!1){if(typeof e=="string"){let s=e,i;if(s in n)i=n[s];else if(s in ha)i=ha[s];else if(i=t[s],i==null)throw new z(`Unknown ${a}: ${e}. This may be due to one of the following reasons: + ${a.shape}`),$(i%(t*t)==0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${a.shape}`);let o={x:a},l={blockSize:t,dataFormat:n};return P.runKernel(Oo,o,l)}var Ry=O({depthToSpace_:q$});function X$(e,t,n,a,r="NHWC",s=[1,1],i){let o=_(e,"x","depthwiseConv2d"),l=_(t,"filter","depthwiseConv2d"),u=o,c=!1;o.rank===3&&(c=!0,u=H(o,[1,o.shape[0],o.shape[1],o.shape[2]])),$(u.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`),$(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`),$(u.shape[3]===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),i!=null&&$(Ht(a),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`);let p={x:u,filter:l},d={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},h=P.runKernel(Ms,p,d);return c?H(h,[h.shape[1],h.shape[2],h.shape[3]]):h}var Qr=O({depthwiseConv2d_:X$});function K$(e){let t={x:_(e,"x","diag")};return P.runKernel(wd,t)}var Y$=O({diag_:K$});function J$(e,t,n,a,r=[1,1],s="NHWC"){let i=_(e,"x","dilation2d"),o=_(t,"filter","dilation2d");$(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),$(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),$(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,u=!1;i.rank===3&&(l=H(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=!0);let c={x:l,filter:o},p={strides:n,pad:a,dilations:r},d=P.runKernel(ec,c,p);return u?H(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Py=O({dilation2d_:J$});function Q$(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function Wt(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function xt(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;r"The first dimension of `a` must match the size of `condition`."),s.rank!==1&&ln(s.shape,l.shape,"Error in where: ");let u={condition:s,t:o,e:l};return P.runKernel(dl,u)}var Tn=O({where_:eD});function tD(e){let t={x:_(e,"x","zerosLike")};return P.runKernel(Il,t)}var Ge=O({zerosLike_:tD});function nD(e,t){let n=_(e,"a","div"),a=_(t,"b","div");[n,a]=Tt(n,a);let r=xe(n,a),s=Ge(r),i=Zr(a,s);return Tn(i,s,r)}var Oy=O({divNoNan_:nD});function aD(e,t){let n=_(e,"t1","dot"),a=_(t,"t2","dot");$((n.rank===1||n.rank===2)&&(a.rank===1||a.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${a.rank}.`);let r=n.rank===1?n.size:n.shape[1],s=a.rank===1?a.size:a.shape[0];if($(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=H(n,[1,-1]),o=H(a,[-1,1]),l=ze(i,o);return H(l,[])}else if(n.rank===1&&a.rank===2){let i=H(n,[1,-1]),o=H(a,[a.shape[0],a.shape[1]]),l=ze(i,o);return H(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=H(a,[-1,1]),o=ze(n,i);return H(o,[o.size])}else{let i=H(a,[a.shape[0],a.shape[1]]);return ze(n,i)}}var m1=O({dot_:aD});function rD(e){let t={x:_(e,"x","elu")};return P.runKernel(Lo,t)}var Ml=O({elu_:rD});function sD(e){let t=_(e,"x","erf");$(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=ue(t,"float32"));let n={x:t};return P.runKernel(zo,n)}var Ly=O({erf_:sD});function iD(e){let t={x:_(e,"x","exp")};return P.runKernel(Ps,t)}var dn=O({exp_:iD});function oD(e,t=0){let n=_(e,"x","expandDims","string_or_numeric");$(t<=n.rank,()=>"Axis must be <= rank of the tensor");let a={input:n},r={dim:t};return P.runKernel(Bo,a,r)}var Rn=O({expandDims_:oD});function lD(e){let t={x:_(e,"x","expm1")};return P.runKernel(Vo,t)}var zy=O({expm1_:lD});function uD(e,t){let n=_(e,"x","tile","string_or_numeric");$(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`);let a={x:n},r={reps:t};return P.runKernel(Ur,a,r)}var Ha=O({tile_:uD});function cD(e,t,n,a="float32"){t==null&&(t=e);let r=Le([e,t],a),s=e<=t?e:t;for(let o=0;o`Error in localResponseNormalization: x must be rank 3 or 4 but got + rank ${s.rank}.`),$(Ht(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=H(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},u={depthRadius:t,bias:n,alpha:a,beta:r},c=P.runKernel(rc,l,u);return o?H(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var By=O({localResponseNormalization_:kD});function ID(e){let t={x:_(e,"x","log")};return P.runKernel(Us,t)}var Pn=O({log_:ID});function ND(e){let t={x:_(e,"x","log1p")};return P.runKernel(Qo,t)}var lh=O({log1p_:ND});function TD(e){return $(Wr(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=_(t,"x","tf.grad","string_or_numeric"),r=n!=null?_(n,"dy","tf.grad"):null;return P.tidy(()=>{let{value:s,grads:i}=P.gradients(()=>e(a),[a],r);return r!=null&&ln(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),uh(i),i[0]})}}function SD(e){return $(Wr(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{$(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=wc(t,"args","tf.grads","string_or_numeric"),r=n!=null?_(n,"dy","tf.grads"):null;return P.tidy(()=>{let{value:s,grads:i}=P.gradients(()=>e(...a),a,r);return r!=null&&ln(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),uh(i),i})}}function CD(e){return $(Wr(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{$(t instanceof Fe,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),$(n==null||n instanceof Fe,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=P.gradients(()=>e(t),[t],n);return uh(a),{grad:a[0],value:r}}}function AD(e){return $(Wr(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{$(Array.isArray(t)&&t.every(r=>r instanceof Fe),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),$(n==null||n instanceof Fe,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=P.gradients(()=>e(...t),t,n);return n!=null&&ln(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),uh(a.grads),a}}function x1(e,t){$(Wr(e),()=>"The f passed in variableGrads(f) must be a function"),$(t==null||Array.isArray(t)&&t.every(u=>u instanceof Hr),()=>"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),$(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${r} variables is trainable.`);let s=!0,{value:i,grads:o}=P.gradients(e,t,null,s);$(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()."),$(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let l={};return t.forEach((u,c)=>{o[c]!=null&&(l[u.name]=o[c])}),a!=null&&a.forEach(u=>l[u.name]=null),{value:i,grads:l}}function ja(e){return P.customGrad(e)}function uh(e){if(e.filter(t=>t==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that + the f you passed encloses all operations that lead from x to y.`)}function FD(e){let t={x:_(e,"x","neg")};return P.runKernel(tl,t)}var St=O({neg_:FD});function _D(e){let t={x:_(e,"x","softplus")};return P.runKernel(yl,t)}var Pl=O({softplus_:_D});function ED(e){let t=_(e,"x","logSigmoid");return ja(n=>({value:St(Pl(St(n))),gradFunc:a=>B(a,ca(St(n)))}))(t)}var v1=O({logSigmoid_:ED});function $D(e,t=null,n=!1){let a={x:_(e,"x","max")},r={reductionIndices:t,keepDims:n};return P.runKernel(Gs,a,r)}var Zn=O({max_:$D});function DD(e,t){let n=_(e,"a","sub"),a=_(t,"b","sub");[n,a]=Tt(n,a);let r={a:n,b:a};return P.runKernel(hi,r)}var me=O({sub_:DD});function MD(e,t=null,n=!1){let a=_(e,"x","sum");a.dtype==="bool"&&(a=ue(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return P.runKernel(ci,r,s)}var Se=O({sum_:MD});function RD(e,t=-1){let n=_(e,"logits","logSoftmax");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and axis was ${t}`);return ja((a,r)=>{let s=!0,i=Zn(a,t,!0),o=me(a,i),l=me(ue(o,"float32"),Pn(Se(dn(o),t,s)));return r([l]),{value:l,gradFunc:(u,c)=>{let[p]=c,d=!0,h=dn(p);return me(u,B(Se(u,t,d),h))}}})(n)}var ch=O({logSoftmax_:RD});function Vy(e,t){for(let n=0;ne[s]);return[n,r]}function Ci(e,t){let n=t.map(a=>1);return w1(e,n,t)}function PD(e,t,n){$(Vy(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function I1(e,t){if(Vy(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function Uy(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function OD(e,t){let n=[];for(let a=t-e;a`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),$(Ga(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),r!=null&&$(Ht(a),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let u={x:o},c={filterSize:t,strides:n,pad:a,dimRoundingMode:r},p=P.runKernel(js,u,c);return l?H(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var $t=O({maxPool_:UD});function GD(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=_(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=H(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),$(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),$(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),r!=null&&$(Ht(a),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let u={x:o},c={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},p=P.runKernel(sc,u,c);return l?H(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Hy=O({maxPool3d_:GD});function HD(e,t,n,a,r=!1){let s={x:_(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=P.runKernel($d,s,i);return{result:o[0],indexes:o[1]}}var T1=O({maxPoolWithArgmax_:HD});function jD(e,t){let n=_(e,"a","maximum"),a=_(t,"b","maximum");[n,a]=Tt(n,a),n.dtype==="bool"&&(n=ue(n,"int32"),a=ue(a,"int32")),xt(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(Hs,r)}var qa=O({maximum_:jD});function qD(e,t=null,n=!1){let a={x:_(e,"x","mean")},r={axis:t,keepDims:n};return P.runKernel(qs,a,r)}var Ct=O({mean_:qD});function XD(e,t=null,n=!1){let a={x:_(e,"x","min")},r={axis:t,keepDims:n};return P.runKernel(Xs,a,r)}var Ol=O({min_:XD});function KD(e,t){let n=_(e,"a","minimum"),a=_(t,"b","minimum");[n,a]=Tt(n,a),n.dtype==="bool"&&(n=ue(n,"int32"),a=ue(a,"int32")),xt(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(Ks,r)}var Ll=O({minimum_:KD});function YD(e,t,n){$(n==="reflect"||n==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`);let a=_(e,"x","mirrorPad");if(a.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");$(t.length===a.rank,()=>`Padding doesn't match input. Must be ${a.rank}. Got ${t.length}.`);let r=n==="reflect"?1:0;for(let o=0;o"Invalid number of paddings. Must be length of 2 each."),$(t[o][0]>=0&&t[o][0]<=a.shape[o]-r&&t[o][1]>=0&&t[o][1]<=a.shape[o]-r,()=>`Padding in dimension ${o} cannot be greater than or equal to ${a.shape[o]-r} or less than 0 for input of shape ${a.shape}`);let s={paddings:t,mode:n},i={x:a};return P.runKernel(ic,i,s)}var jy=O({mirrorPad_:YD});function JD(e,t){let n=_(e,"a","mod"),a=_(t,"b","mod");[n,a]=Tt(n,a);let r={a:n,b:a};return P.runKernel(el,r)}var qy=O({mod_:JD});function QD(e){let t=_(e,"x","square"),n={};return P.runKernel("Square",{x:t},n)}var lt=O({square_:QD});function ZD(e,t=null,n=!1){e=_(e,"x","moments");let a=la(t,e.shape),r=Ct(e,a,n),s=r.shape;n||(s=Ci(r.shape,a));let i=lt(me(ue(e,"float32"),H(r,s))),o=Ct(i,a,n);return{mean:r,variance:o}}var dh=O({moments_:ZD});function eM(e,t,n,a){let r=_(t,"data","multiRNNCell"),s=wc(n,"c","multiRNNCell"),i=wc(a,"h","multiRNNCell"),o=r,l=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();let o={logits:i===1?H(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},u=P.runKernel(Dd,o,l);return i===1?H(u,[u.size]):u}var S1=O({multinomial_:nM});function aM(e,t){let n=_(e,"a","notEqual"),a=_(t,"b","notEqual");[n,a]=Tt(n,a),xt(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(nl,r)}var Ai=O({notEqual_:aM});function vt(e,t="float32"){if(t==="complex64"){let a=vt(e,"float32"),r=vt(e,"float32");return jr(a,r)}let n=ld(Ot(e),t);return P.makeTensor(n,e,t)}function Xa(e,t="float32"){if(t==="complex64"){let a=Xa(e,"float32"),r=vt(e,"float32");return jr(a,r)}let n=Wg(Ot(e),t);return P.makeTensor(n,e,t)}function rM(e){let t={x:_(e,"x","onesLike")};return P.runKernel(il,t)}var On=O({onesLike_:rM});function sM(e,t){let n=_(e,"v1","outerProduct"),a=_(t,"v2","outerProduct");$(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=H(n,[-1,1]),s=H(a,[1,-1]);return ze(r,s)}var iM=O({outerProduct_:sM});function oM(e,t,n=0){let a=_(e,"x","pad");if(a.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let r={paddings:t,constantValue:n},s={x:a};return P.runKernel(Qs,s,r)}var ea=O({pad_:oM});function lM(e,t,n=0){return $(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),ea(e,[t],n)}var uM=O({pad1d_:lM});function cM(e,t,n=0){return $(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ea(e,t,n)}var pM=O({pad2d_:cM});function dM(e,t,n=0){return $(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ea(e,t,n)}var hM=O({pad3d_:dM});function mM(e,t,n=0){return $(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ea(e,t,n)}var fM=O({pad4d_:mM});function gM(e,t,n){let a=_(e,"x","spaceToBatchND");$(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),$(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),$(a.shape.reduce((i,o,l)=>l>0&&l<=t.length?i&&(o+n[l-1][0]+n[l-1][1])%t[l-1]==0:i,!0),()=>`input spatial dimensions ${a.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`);let r={x:a},s={blockShape:t,paddings:n};return P.runKernel(uc,r,s)}var Ec=O({spaceToBatchND_:gM});function xM(e,t,n,a,r,s){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let i=_(e,"x","maxPool"),o=i,l=!1;i.rank===3&&(l=!0,o=H(i,[1,i.shape[0],i.shape[1],i.shape[2]])),$(Ga(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let u=n1(o.shape,t,s,r,a),c=[u.dilationHeight,u.dilationWidth],p;a==="same"?p=bM([u.filterHeight,u.filterWidth],c):p=[[0,0],[0,0]];let d=c[0]===1&&c[1]===1,[h,m]=yM([u.inHeight,u.inWidth],c,p),f=d?a:"valid",g=d?o:Ec(o,c,h),y=(n==="avg"?()=>Qn(g,t,s,f):()=>$t(g,t,s,f))(),b=d?y:Sc(y,c,m);return l?H(b,[b.shape[1],b.shape[2],b.shape[3]]):b}function yM(e,t,n){let a=n.map(c=>c[0]),r=n.map(c=>c[1]),s=e.concat(a,r),i=t.map((c,p)=>(c-s[p]%c)%c),o=r.map((c,p)=>c+i[p]),l=t.map((c,p)=>[a[p],o[p]]),u=t.map((c,p)=>[0,i[p]]);return[l,u]}function bM(e,t){let n=e.map((s,i)=>s+(s-1)*(t[i]-1)).map(s=>s-1),a=n.map(s=>Math.floor(s/2)),r=n.map((s,i)=>s-a[i]);return n.map((s,i)=>[a[i],r[i]])}var C1=O({pool_:xM});function vM(e,t){let n=_(e,"base","pow"),a=_(t,"exp","pow");[n,a]=Tt(n,a);let r={a:n,b:a};return P.runKernel(Zs,r)}var gr=O({pow_:vM});function wM(e,t){let n=_(e,"x","prelu"),a=_(t,"alpha","prelu"),r={x:n,alpha:a};return P.runKernel(ei,r)}var $c=O({prelu_:wM});function kM(e,t=null,n=!1){let a=_(e,"x","prod");a.dtype==="bool"&&(a=ue(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return P.runKernel(ll,r,s)}var hh=O({prod_:kM});function IM(e,t,n){let a=Ot(e),r=null;if(n==null||n==="float32")r=new Float32Array(a);else if(n==="int32")r=new Int32Array(a);else if(n==="bool")r=new Uint8Array(a);else throw new Error(`Unknown data type ${n}`);for(let s=0;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}},TM=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=Xy.alea(r.toString()),this.randn=new Ky(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(),rthis.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(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=Xy.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function CM(e,t,n=1,a="float32",r){if(n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new TM(t,n,a,r),i=Le(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),Ln(t,0)}var OM=O({reverse1d_:PM});function LM(e,t){let n=_(e,"x","reverse");return $(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),Ln(n,t)}var zM=O({reverse2d_:LM});function WM(e,t){let n=_(e,"x","reverse");return $(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),Ln(n,t)}var BM=O({reverse3d_:WM});function VM(e,t){let n=_(e,"x","reverse");return $(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),Ln(n,t)}var UM=O({reverse4d_:VM});function GM(e){let t={x:_(e,"x","round")};return P.runKernel(si,t)}var Jy=O({round_:GM});function HM(e){let t={x:_(e,"x","rsqrt")};return P.runKernel(ii,t)}var gh=O({rsqrt_:HM});function ce(e,t){if((un(e)&&t!=="string"||Array.isArray(e))&&t!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(t==="string"&&un(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return qr(e,[],[],t)}function jM(e){let t={x:_(e,"x","selu")};return P.runKernel(hl,t)}var yh=O({selu_:jM});function qM(e,t,n,a,r,s=[1,1],i="NHWC"){let o=_(e,"x","separableConv2d"),l=_(t,"depthwiseFilter","separableConv2d"),u=_(n,"pointwiseFilter","separableConv2d"),c=o,p=!1;if(o.rank===3&&(p=!0,c=H(o,[1,o.shape[0],o.shape[1],o.shape[2]])),i==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");$(c.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`),$(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),$(u.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),$(u.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`),$(u.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`);let d=l.shape[2],h=l.shape[3];$(u.shape[2]===d*h,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${d*h}, but got ${u.shape[2]}.`);let m=Qr(c,l,a,r,i,s),f=Et(m,u,1,"valid",i);return p?H(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Fi=O({separableConv2d_:qM});async function XM(e,t){let n=_(e,"x","setdiff1d"),a=_(t,"y","setdiff1d");$(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),$(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),$(a.rank===1,()=>`y should be 1D tensor, but got y (${a.shape}).`);let r=await n.data(),s=await a.data(),i=new Set(s),o=0;for(let c=0;c`slice1d expects a rank-1 tensor, but got a rank-${a.rank} tensor`),Be(a,[t],[n])}var vh=O({slice1d_:QM});function ZM(e,t,n){let a=_(e,"x","slice2d");return $(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var Zy=O({slice2d_:ZM});function eR(e,t,n){let a=_(e,"x","slice3d");return $(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var Wl=O({slice3d_:eR});function tR(e,t,n){let a=_(e,"x","slice4d");return $(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var Mc=O({slice4d_:tR});function nR(e,t=-1){let n=_(e,"logits","softmax","float32");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and dim was ${t}`);let a={logits:n},r={dim:t};return P.runKernel(pi,a,r)}var Ta=O({softmax_:nR});function aR(e){$(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return P.runKernel(Td,t)}var Rc=O({fft_:aR});function rR(e){$(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return P.runKernel(Sd,t)}var Bl=O({ifft_:rR});function sR(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=H(e,[n,t]);a=Bl(r)}else{let r=[n,2*(t-1)],s=H(Dc(e),[n,t]),i=H(ih(e),[n,t]),o=Ln(Be(s,[0,1],[n,t-2]),1),l=B(Ln(Be(i,[0,1],[n,t-2]),1),ce(-1)),u=Je([s,o],1),c=Je([i,l],1),p=H(jr(u,c),[r[0],r[1]]);a=Bl(p)}if(a=Dc(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=H(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var wh=O({irfft_:sR});function iR(e,t,n=0){let a={x:_(e,"x","split")},r={numOrSizeSplits:t,axis:n};return P.runKernel(bl,a,r)}var zn=O({split_:iR});function oR(e,t){$(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1],a=e.size/n,r;if(t!=null&&t0),f=e.shape.map(g=>g);f[e.shape.length-1]=t,r=Be(e,m,f),n=t}else if(t!=null&&t>n){let m=e.shape.map(f=>f);m[e.shape.length-1]=t-n,r=Je([e,vt(m)],e.shape.length-1),n=t}else r=e;let s=Ge(r),i=H(jr(r,s),[a,n]),o=Rc(i),l=Math.floor(n/2)+1,u=Dc(o),c=ih(o),p=zn(u,[l,n-l],u.shape.length-1),d=zn(c,[l,n-l],c.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,H(jr(p[0],d[0]),h)}var Pc=O({rfft_:oR});function lR(e){let t={x:_(e,"x","sqrt")};return P.runKernel(ui,t)}var an=O({sqrt_:lR});function uR(e,t){let n=_(e,"a","squaredDifference"),a=_(t,"b","squaredDifference");[n,a]=Tt(n,a),xt(n.shape,a.shape);let r={a:n,b:a},s={};return P.runKernel(di,r,s)}var kh=O({squaredDifference_:uR});function cR(e,t){let n=_(e,"x","squeeze");return H(n,qw(n.shape,t).newShape)}var ts=O({squeeze_:cR});function pR(e,t=0){let n=wc(e,"tensors","stack","string_or_numeric");$(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&$(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return P.runKernel(ol,a,r)}var Dt=O({stack_:pR});function dR(e,t=0){let n={x:_(e,"x","step")},a={alpha:t};return P.runKernel(Gr,n,a)}var Vl=O({step_:dR});function hR(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let u={x:_(e,"x","stridedSlice")},c={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return P.runKernel(xl,u,c)}var eb=O({stridedSlice_:hR});function mR(e){let t={x:_(e,"x","tan")};return P.runKernel(vl,t)}var tb=O({tan_:mR});function Qe(e,t){ks(e);let n=Va(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return qr(e,null,n,t)}function Sa(e,t,n){if(ks(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=Va(e,n);if(a.length!==2&&a.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return qr(e,t,a,n)}function Ca(e,t,n){if(ks(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=Va(e,n);if(a.length!==4&&a.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return qr(e,t,a,n)}function fR(e,t,n){if(ks(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=Va(e,n);if(a.length!==5&&a.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return qr(e,t,a,n)}function gR(e,t,n){if(ks(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=Va(e,n);if(a.length!==6&&a.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||a,qr(e,t,a,n)}function yR(e,t=1,n=!0){let a=_(e,"x","topk");if(a.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let r=a.shape[a.shape.length-1];if(t>r)throw new Error(`'k' passed to topk() must be <= the last dimension (${r}) but got ${t}`);let s={x:a},i={k:t,sorted:n},[o,l]=P.runKernel(wl,s,i);return{values:o,indices:l}}var nb=O({topk_:yR});function bR(e,t=0,n=1,a,r){if(a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Ky(t,n,a,!0,r),i=Le(e,a);for(let o=0;o0,()=>"The input tensor must be at least 1D");let a={x:n},r={axis:t},[s,i]=P.runKernel(zd,a,r);return{values:s,indices:i}}var Nh=O({unique_:xR});function vR(e,t,n){let a=_(e,"x","unsortedSegmentSum"),r=_(t,"segmentIds","unsortedSegmentSum","int32");$(Ht(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return P.runKernel(pc,s,i)}var ab=O({unsortedSegmentSum_:vR});function wR(e,t=0){let n=_(e,"x","unstack","string_or_numeric");$(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`);let a={value:n},r={axis:t};return P.runKernel(kl,a,r)}var ct=O({unstack_:wR});function _1(e,t=!0,n,a){return P.makeVariable(e,t,n,a)}function E1(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),ln(o.slice(s,s+i),r.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let f=s;f"Shape mismatch in v and x");let l=ce(1),u=me(l,o),c=B(me(i,s),u);if(r){$(a!=null,()=>"When using zeroDebias: true, step is required.");let p=_(a,"step","movingAverage");c=xe(c,me(l,gr(o,p)))}return J(s,c)}var CR=O({movingAverage_:SR});function AR(e,t,n){let a=_(e,"indices","scatterND","int32"),r=_(t,"updates","scatterND");gy(r,a,n);let s={indices:a,updates:r},i={shape:n};return P.runKernel(pl,s,i)}var D1=O({scatterND_:AR});function FR(e,t,n,a){if(e.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);let r=e.rank>0?e.shape[0]:1,s=e.rank>1?e.shape[1]:1;if(n.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${n.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===r))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${r}]`);if(t.dtype!==a.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function _R(e,t,n,a=0){let r=_(e,"sparseIndices","sparseToDense","int32"),s=_(t,"sparseValues","sparseToDense"),i=_(a,"defaultValue","sparseToDense",s.dtype);FR(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return P.runKernel(Od,o,l)}var sb=O({sparseToDense_:_R});function ER(e,t){let n=_(t,"indices","gatherND","int32"),a={params:_(e,"x","gatherND"),indices:n};return P.runKernel(Ho,a)}var M1=O({gatherND_:ER});function $R(e,t){if(t==null)return e.shape.slice();if(hr(e.shape,t))return t;if(e.shape.length===t.length){let n=[];for(let a=0;a`x has to be a floating point tensor since it's going to be scaled, but got a ${r.dtype} tensor instead.`),$(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof Fe?r.clone():r;let s=$R(r,n),i=1-t,o=xe(Rl(J(zl(s,0,1,"float32",a),i)),i);return B(r,o)}var R1=O({dropout_:DR});function P1(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function ib(e,t,n){let a=1-e%2,r=new Float32Array(e);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${a.rank}`),$(a.rank-1===r.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${a.rank} and targets rank ${r.rank}`),ln(a.shape.slice(0,a.shape.length-1),r.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=a.shape[a.shape.length-1];$(n>0&&n<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${n}`);let i=await a.data(),o=await r.data(),[l,u]=[i.length/s,s],c=Xw("bool",l);for(let p=0;pg.value-f.value),c[p]=0;for(let f=0;fPR,depthwiseConv2d:()=>OR,matMul:()=>LR});function zR(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=H(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=H(t,[1,t.shape[0],t.shape[1],t.shape[2]])),$(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),$(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),$(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);let u=s==="NHWC"?o.shape[3]:o.shape[1],c=s==="NHWC"?l.shape[3]:l.shape[1];$(u===n[2],()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`),$(c===n[3],()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${n[3]}).`),i!=null&&$(Ht(r),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`);let p={x:o,dy:l},d={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return P.runKernel(fd,p,d)}var ob=O({conv2DBackpropFilter_:zR});function Sh(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return B(e,Vl(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function Ch(e,t){let n=t,a=Wt(e.shape,t.shape);return a.length>0&&(n=Se(n,a)),H(n,e.shape)}function Ah(e,t,n,a){if(t==="linear")return e;if(t==="relu")return qe(e);if(t==="elu")return Ml(e);if(t==="relu6")return fh(e);if(t==="prelu")return $c(e,n);if(t==="leakyrelu")return Fc(e,a);throw new Error(`Unknown fused activation ${t}.`)}var Fh=(e,t)=>!(e>0)||t==="linear";function WR({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(l=l||"linear",Fh(P.state.gradientDepth,l)===!1){let k=Et(e,t,n,a,r,s,i);return o!=null&&(k=J(k,o)),Ah(k,l,u,c)}let p=_(e,"x","conv2d"),d=_(t,"filter","conv2d"),h=p,m=!1;p.rank===3&&(m=!0,h=H(p,[1,p.shape[0],p.shape[1],p.shape[2]])),$(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),$(d.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${d.rank}.`),i!=null&&$(Ht(a),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`),$(h.shape[3]===d.shape[2],()=>`Error in conv2d: depth of input (${h.shape[3]}) must match input depth for filter ${d.shape[2]}.`),$(Ga(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),$(r==="NHWC",()=>`Error in conv2d: got dataFormat of ${r} but only NHWC is currently supported.`);let f=Tc(h.shape,d.shape,n,s,a,i),g;o!=null&&(g=_(o,"bias","fused conv2d"),[g]=Tt(g,p),xt(f.outShape,g.shape));let y;u!=null&&(y=_(u,"prelu weights","fused conv2d"));let b=(k,w)=>{let[S,A,F,D]=w,R=Sh(k,F,l);$(Jr(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let L=Dy(A.shape,R,S,n,a),W=ob(A,R,S.shape,n,a),U=[L,W];if(D!=null){let G=Ch(D,R);U.push(G)}return U},x={x:h,filter:d,bias:g,preluActivationWeights:y},v={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:c};return o==null?ja((k,w,S)=>{let A=P.runKernel(yi,x,v);return S([w,k,A]),m&&(A=H(A,[A.shape[1],A.shape[2],A.shape[3]])),{value:A,gradFunc:b}})(h,d):ja((k,w,S,A)=>{let F=P.runKernel(yi,x,v);return A([w,k,F,S]),m&&(F=H(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(h,d,g)}var PR=O({fusedConv2d_:WR});function BR(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=H(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=H(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={x:o,dy:l},c={strides:a,pad:r,dimRoundingMode:i,dilations:s,filterShape:n};return P.runKernel(xd,u,c)}var O1=O({depthwiseConv2dNativeBackpropFilter_:BR});function VR(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=H(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={dy:o,filter:n},c={strides:a,pad:r,dimRoundingMode:i,dilations:s,inputShape:e},p=P.runKernel(vd,u,c);return l?H(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var L1=O({depthwiseConv2dNativeBackpropInput_:VR});function UR({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(Fh(P.state.gradientDepth,l)===!1){let k=Qr(e,t,n,a,r,s,i);return o!=null&&(k=J(k,o)),Ah(k,l,u,c)}let p=_(e,"x","depthwiseConv2d"),d=_(t,"filter","depthwiseConv2d"),h=p,m=!1;p.rank===3&&(m=!0,h=H(p,[1,p.shape[0],p.shape[1],p.shape[2]])),$(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),$(d.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${d.rank}.`),$(h.shape[3]===d.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${d.shape[2]}.`),s==null&&(s=[1,1]),$(Ga(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),i!=null&&$(Ht(a),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${i} but got pad ${a}.`);let f=Tc(h.shape,d.shape,n,s,a,i,!0),g;o!=null&&(g=_(o,"bias","fused conv2d"),[g]=Tt(g,p),xt(f.outShape,g.shape));let y;u!=null&&(y=_(u,"prelu weights","fused depthwiseConv2d"));let b=(k,w)=>{$(Jr(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[S,A,F,D]=w,R=Sh(k,F,l),L=L1(A.shape,R,S,n,a,s,i),W=O1(A,R,S.shape,n,a,s,i);if(D!=null){let U=Ch(g,R);return[L,W,U]}return[L,W]},x={x:h,filter:d,bias:g,preluActivationWeights:y},v={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:c};return o==null?ja((k,w,S)=>{let A=P.runKernel(bi,x,v);return S([w,k,A]),m&&(A=H(A,[A.shape[1],A.shape[2],A.shape[3]])),{value:A,gradFunc:b}})(h,d):ja((k,w,S,A)=>{let F=P.runKernel(bi,x,v);return A([w,k,F,S]),m&&(F=H(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(h,d,g)}var OR=O({fusedDepthwiseConv2d_:UR});function GR({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o}){if(Fh(P.state.gradientDepth,s)===!1){let D=ze(e,t,n,a);return r!=null&&(D=J(D,r)),Ah(D,s,i,o)}let l=_(e,"a","fused matMul"),u=_(t,"b","fused matMul");[l,u]=Tt(l,u);let c=n?l.shape[l.rank-2]:l.shape[l.rank-1],p=a?u.shape[u.rank-1]:u.shape[u.rank-2],d=n?l.shape[l.rank-1]:l.shape[l.rank-2],h=a?u.shape[u.rank-2]:u.shape[u.rank-1],m=l.shape.slice(0,-2),f=u.shape.slice(0,-2),g=Ot(m),y=Ot(f);$(l.rank>=2&&u.rank>=2&&l.rank===u.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${l.rank} and ${u.rank}.`),$(hr(m,f),()=>`Error in fused matMul: outer dimensions (${m}) and (${f}) of Tensors with shapes ${l.shape} and ${u.shape} must match.`),$(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${n} and transposeB=${a} must match.`);let b=l.shape.slice(0,-2).concat([d,h]),x=n?H(l,[g,c,d]):H(l,[g,d,c]),v=a?H(u,[y,h,p]):H(u,[y,p,h]),k;r!=null&&(k=_(r,"bias","fused matMul"),[k]=Tt(k,l),xt(b,k.shape));let w;i!=null&&(w=_(i,"prelu weights","fused matMul"));let S=(D,R)=>{let[L,W,U,G]=R,X=Sh(H(D,U.shape),U,s),j,te;if(!n&&!a?(j=ze(X,W,!1,!0),te=ze(L,X,!0,!1)):!n&&a?(j=ze(X,W,!1,!1),te=ze(X,L,!0,!1)):n&&!a?(j=ze(W,X,!1,!0),te=ze(L,X,!1,!1)):(j=ze(W,X,!0,!0),te=ze(X,L,!0,!0)),r!=null){let Q=Ch(G,X);return[j,te,Q]}else return[j,te]},A={a:x,b:v,bias:k,preluActivationWeights:w},F={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?ja((D,R,L)=>{let W=P.runKernel(gi,A,F);return L([D,R,W]),{value:H(W,b),gradFunc:S}})(x,v):ja((D,R,L,W)=>{let U=P.runKernel(gi,A,F);return W([D,R,U,L]),{value:H(U,b),gradFunc:S}})(x,v,k)}var LR=O({fusedMatMul_:GR});function HR(e){return ib(e,.54,.46)}var jR=O({hammingWindow_:HR});function qR(e){return ib(e,.5,.5)}var z1=O({hannWindow_:qR});function XR(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(Be(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),$(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`),$(l.rank===1&&l.shape[0]===u,()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`),$(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),$(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),$(r==="bilinear"||r==="nearest",()=>`method must be bilinear or nearest, but was ${r}`);let c={image:i,boxes:o,boxInd:l},p={method:r,extrapolationValue:s,cropSize:a};return P.runKernel(Po,c,p)}var QR=O({cropAndResize_:JR});function ZR(e){let t=_(e,"image","flipLeftRight","float32");$(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return P.runKernel(Uo,n,{})}var eP=O({flipLeftRight_:ZR});function tP(e,t,n=0,a=.5){let r=_(e,"image","rotateWithOffset","float32");$(r.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${r.rank}.`);let s={image:r},i={radians:t,fillValue:n,center:a};return P.runKernel(Nl,s,i)}var nP=O({rotateWithOffset_:tP});function Ul(e,t,n,a,r,s){a==null&&(a=.5),r==null&&(r=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=e.shape[0];return n=Math.min(n,i),$(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),$(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),$(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),$(t.rank===1,()=>"scores must be a 1D tensor"),$(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),$(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function aP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppression"),i=_(t,"scores","nonMaxSuppression"),o=Ul(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l={maxOutputSize:n,iouThreshold:a,scoreThreshold:r};return P.runKernel(al,{boxes:s,scores:i},l)}var rP=O({nonMaxSuppression_:aP});function iP(e,t,n){let a=sP(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function sP(e,t,n){return lP(e,t,n||oP)}function oP(e,t){return e>t?1:e>>1);let o=n(t,e[s]);o>0?a=s+1:(r=s,i=!o)}return i?a:-a-1}function B1(e,t,n,a,r){return lb(e,t,n,a,r,0)}function V1(e,t,n,a,r,s){return lb(e,t,n,a,r,0,!1,s,!0)}function U1(e,t,n,a,r,s){return lb(e,t,n,a,r,s,!0)}function lb(e,t,n,a,r,s,i=!1,o=!1,l=!1){let u=[];for(let g=0;gr&&u.push({score:t[g],boxIndex:g,suppressBeginIndex:0});u.sort(G1);let c=s>0?-.5/s:0,p=[],d=[];for(;p.length0;){let g=u.pop(),{score:y,boxIndex:b,suppressBeginIndex:x}=g;if(y=x;--k){let w=uP(e,b,p[k]);if(w>=a){v=!0;break}if(g.score=g.score*cP(a,c,w),g.score<=r)break}g.suppressBeginIndex=p.length,v||(g.score===y?(p.push(b),d.push(g.score)):g.score>r&&iP(u,g,G1))}let h=p.length,m=n-h;o&&m>0&&(p.push(...new Array(m).fill(0)),d.push(...new Array(m).fill(0)));let f={selectedIndices:p};return i&&(f.selectedScores=d),l&&(f.validOutputs=h),f}function uP(e,t,n){let a=e.subarray(t*4,t*4+4),r=e.subarray(n*4,n*4+4),s=Math.min(a[0],a[2]),i=Math.min(a[1],a[3]),o=Math.max(a[0],a[2]),l=Math.max(a[1],a[3]),u=Math.min(r[0],r[2]),c=Math.min(r[1],r[3]),p=Math.max(r[0],r[2]),d=Math.max(r[1],r[3]),h=(o-s)*(l-i),m=(p-u)*(d-c);if(h<=0||m<=0)return 0;let f=Math.max(s,u),g=Math.max(i,c),y=Math.min(o,p),b=Math.min(l,d),x=Math.max(y-f,0)*Math.max(b-g,0);return x/(h+m-x)}function cP(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function G1(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function pP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppressionAsync"),i=_(t,"scores","nonMaxSuppressionAsync"),o=Ul(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l=await Promise.all([s.data(),i.data()]),u=l[0],c=l[1],{selectedIndices:p}=B1(u,c,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),Qe(p,"int32")}var dP=pP;function hP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=Ul(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u={boxes:i,scores:o},c={maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s},p=P.runKernel(sl,u,c);return{selectedIndices:p[0],selectedScores:p[1]}}var mP=O({nonMaxSuppressionWithScore_:hP});async function fP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=Ul(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u=await Promise.all([i.data(),o.data()]),c=u[0],p=u[1],{selectedIndices:d,selectedScores:h}=U1(c,p,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Qe(d,"int32"),selectedScores:Qe(h)}}var gP=fP;function yP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=Ul(i,o,n,a,r,null),u=l.maxOutputSize,c=l.iouThreshold,p=l.scoreThreshold,d={boxes:i,scores:o},h={maxOutputSize:u,iouThreshold:c,scoreThreshold:p,padToMaxOutputSize:s},m=P.runKernel(rl,d,h);return{selectedIndices:m[0],validOutputs:m[1]}}var bP=O({nonMaxSuppressionPadded_:yP});async function xP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=Ul(i,o,n,a,r,null),u=l.maxOutputSize,c=l.iouThreshold,p=l.scoreThreshold,[d,h]=await Promise.all([i.data(),o.data()]),{selectedIndices:m,validOutputs:f}=V1(d,h,u,c,p,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Qe(m,"int32"),validOutputs:ce(f,"int32")}}var vP=xP;function wP(e,t,n=!1,a=!1){let r=_(e,"images","resizeBilinear");$(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),$(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),$(a===!1||n===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=H(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=P.runKernel(ni,o,l);return i?H(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var H1=O({resizeBilinear_:wP});function kP(e,t,n=!1,a=!1){let r=_(e,"images","resizeNearestNeighbor");$(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),$(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),$(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),$(a===!1||n===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=H(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=P.runKernel(lc,o,l);return i?H(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var j1=O({resizeNearestNeighbor_:kP});function IP(e,t,n="nearest",a="constant",r=0,s){let i=_(e,"image","transform","float32"),o=_(t,"transforms","transform","float32");$(i.rank===4,()=>`Error in transform: image must be rank 4,but got rank ${i.rank}.`),$(o.rank===2&&(o.shape[0]===i.shape[0]||o.shape[0]===1)&&o.shape[1]===8,()=>"Error in transform: Input transform should be batch x 8 or 1 x 8"),$(s==null||s.length===2,()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`);let l={image:i,transforms:o},u={interpolation:n,fillMode:a,fillValue:r,outputShape:s};return P.runKernel(Ld,l,u)}var NP=O({transform_:IP});function TP(e,t,n){$(t%1==0,()=>`bandPart(): numLower must be an integer, got ${t}.`),$(n%1==0,()=>`bandPart(): numUpper must be an integer, got ${n}.`);let a=_(e,"a","bandPart");$(a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${a.rank}.`);let r=a.shape,[s,i]=a.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(n<=i))throw new Error(`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),n<0&&(n=i);let o=H(mh(0,s,1,"int32"),[-1,1]),l=mh(0,i,1,"int32"),u=me(o,l),c=da(Si(u,ce(+t,"int32")),es(u,ce(-n,"int32"))),p=vt([s,i],a.dtype);return H(Dt(ct(H(a,[-1,s,i])).map(d=>Tn(c,d,p))),r)}var SP=O({bandPart_:TP});function CP(e){let t;if(Array.isArray(e)){t=!1,$(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let r=e[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[s].shape[0]} vs. ${r})`)}else t=!0,e=zn(e,e.shape[0],0).map(r=>ts(r,[0]));$(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);let n=[],a=e;for(let r=0;r{let s=a[r];if(r>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return q1(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,u)=>l*u),a=ct(H(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[u,c]=q1(l,t);r.push(u),s.push(c)});let i=H(Dt(r,0),e.shape),o=H(Dt(s,0),e.shape);return[i,o]}}function q1(e,t=!1){return P.tidy(()=>{$(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);let n=e.shape[0],a=e.shape[1],r=Wy(n),s=Kr(e),i=Sa([[1]],[1,1]),o=Kr(i),l=n>=a?a:n;for(let u=0;u{let h=Be(s,[u,u],[n-u,1]),m=Th(h),f=Be(s,[u,u],[1,1]),g=Tn(pa(f,0),Sa([[-1]]),Sa([[1]])),y=me(f,B(g,m)),b=xe(h,y);b.shape[0]===1?o=Kr(i):o=Je([i,Be(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let x=St(xe(ze(g,y),m)),v=Be(s,[u,0],[n-u,a]),k=B(x,o),w=Ve(o);if(u===0)s=me(v,ze(k,ze(w,v)));else{let F=me(v,ze(k,ze(w,v)));s=Je([Be(s,[0,0],[u,a]),F],0)}let S=Ve(k),A=Be(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=me(A,ze(ze(A,o),S));else{let F=me(A,ze(ze(A,o),S));r=Je([Be(r,[0,0],[n,u]),F],1)}return[o,s,r]}),Ee([c,p,d])}return!t&&n>a&&(r=Be(r,[0,0],[n,a]),s=Be(s,[0,0],[a,a])),[r,s]})}var _P=O({qr_:FP}),hn;(function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(hn||(hn={}));function EP(e,t,n=hn.SUM_BY_NONZERO_WEIGHTS){let a=_(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=_(t,"weights","computeWeightedLoss"));let s=r==null?a:B(a,r);if(n===hn.NONE)return s;if(n===hn.SUM)return Se(s);if(n===hn.MEAN){if(r==null)return Ct(s);{let i=a.size/r.size,o=xe(Se(s),Se(r));return i>1?xe(o,ce(i)):o}}if(n===hn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return xe(Se(s),ce(a.size));{let i=B(r,Xa(a.shape)),o=ue(Se(Ai(i,ce(0))),"float32");return xe(Se(s),o)}}throw Error(`Unknown reduction: ${n}`)}var yr=O({computeWeightedLoss_:EP});function $P(e,t,n,a=hn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","absoluteDifference"),s=_(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=_(n,"weights","absoluteDifference")),ln(r.shape,s.shape,"Error in absoluteDifference: ");let o=zt(me(r,s));return yr(o,i,a)}var DP=O({absoluteDifference_:$P});function MP(e,t,n,a,r=hn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","cosineDistance"),i=_(t,"predictions","cosineDistance"),o=null;a!=null&&(o=_(a,"weights","cosineDistance")),ln(s.shape,i.shape,"Error in cosineDistance: ");let l=ce(1),u=me(l,Se(B(s,i),n,!0));return yr(u,o,r)}var RP=O({cosineDistance_:MP});function PP(e,t,n,a=hn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","hingeLoss"),s=_(t,"predictions","hingeLoss"),i=null;n!=null&&(i=_(n,"weights","hingeLoss")),ln(r.shape,s.shape,"Error in hingeLoss: ");let o=ce(1);r=me(B(ce(2),r),o);let l=qe(me(o,B(r,s)));return yr(l,i,a)}var OP=O({hingeLoss_:PP});function LP(e,t,n,a=1,r=hn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","huberLoss"),i=_(t,"predictions","huberLoss"),o=null;n!=null&&(o=_(n,"weights","huberLoss")),ln(s.shape,i.shape,"Error in huberLoss: ");let l=ce(a),u=zt(me(i,s)),c=Ll(u,l),p=me(u,c),d=J(B(ce(.5),lt(c)),B(l,p));return yr(d,o,r)}var zP=O({huberLoss_:LP});function WP(e,t,n,a=1e-7,r=hn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","logLoss"),i=_(t,"predictions","logLoss"),o=null;n!=null&&(o=_(n,"weights","logLoss")),ln(s.shape,i.shape,"Error in logLoss: ");let l=ce(1),u=ce(a),c=St(B(s,Pn(J(i,u)))),p=B(me(l,s),Pn(J(me(l,i),u))),d=me(c,p);return yr(d,o,r)}var BP=O({logLoss_:WP});function VP(e,t,n,a=hn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","meanSquaredError"),s=_(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=_(n,"weights","meanSquaredError")),ln(r.shape,s.shape,"Error in meanSquaredError: ");let o=kh(r,s);return yr(o,i,a)}var UP=O({meanSquaredError_:VP});function GP(e,t){let n=_(e,"labels","sigmoidCrossEntropyWithLogits"),a=_(t,"logits","sigmoidCrossEntropyWithLogits");ln(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=qe(a),s=B(a,n),i=lh(dn(St(zt(a))));return J(me(r,s),i)}function HP(e,t,n,a=0,r=hn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"multiClassLabels","sigmoidCrossEntropy"),i=_(t,"logits","sigmoidCrossEntropy"),o=null;if(n!=null&&(o=_(n,"weights","sigmoidCrossEntropy")),ln(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let u=ce(a),c=ce(1),p=ce(.5);s=J(B(s,me(c,u)),B(p,u))}let l=GP(s,i);return yr(l,o,r)}var jP=O({sigmoidCrossEntropy_:HP});function qP(e,t,n=-1){if(n===-1&&(n=t.rank-1),n!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${n}`);return ja((a,r,s)=>{let i=Gy(r,[n],!0),o=me(ue(r,"float32"),i);s([a,o]);let l=St(B(o,a));return{value:Se(l,[n]),gradFunc:(u,c)=>{let[p,d]=c,h=Ci(u.shape,[n]);return[B(H(u,h),me(ue(p,"float32"),dn(d))),B(H(u,h),me(dn(d),ue(p,"float32")))]}}})(e,t)}function XP(e,t,n,a=0,r=hn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"onehotLabels","softmaxCrossEntropy"),i=_(t,"logits","softmaxCrossEntropy"),o=null;if(n!=null&&(o=_(n,"weights","softmaxCrossEntropy")),ln(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let u=ce(a),c=ce(1),p=ce(s.shape[1]);s=J(B(s,me(c,u)),xe(u,p))}let l=qP(s,i);return yr(l,o,r)}var KP=O({softmaxCrossEntropy_:XP}),YP={fft:Rc,ifft:Bl,rfft:Pc,irfft:wh},JP={hammingWindow:jR,hannWindow:z1,frame:W1,stft:YR},Ka={flipLeftRight:eP,resizeNearestNeighbor:j1,resizeBilinear:H1,rotateWithOffset:nP,cropAndResize:QR,nonMaxSuppression:rP,nonMaxSuppressionAsync:dP,nonMaxSuppressionWithScore:mP,nonMaxSuppressionWithScoreAsync:gP,nonMaxSuppressionPadded:bP,nonMaxSuppressionPaddedAsync:vP,transform:NP},X1={bandPart:SP,gramSchmidt:AP,qr:_P},QP={absoluteDifference:DP,computeWeightedLoss:yr,cosineDistance:RP,hingeLoss:OP,huberLoss:zP,logLoss:BP,meanSquaredError:UP,sigmoidCrossEntropy:jP,softmaxCrossEntropy:KP},br=class extends X0{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 x1(e,t)}dispose(){this.iterations_!=null&&Ee(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:ce(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}};Object.defineProperty(br,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var _h=class extends br{constructor(e,t,n=null){super();this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=P.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=P.registeredVariables[t],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:M(()=>Ge(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:M(()=>Ge(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedGrads[n].variable,o=this.accumulatedUpdates[n].variable;M(()=>{let l=J(B(i,this.rho),B(lt(s),1-this.rho)),u=B(xe(an(J(o,this.epsilon)),an(J(i,this.epsilon))),s),c=J(B(o,this.rho),B(lt(u),1-this.rho));i.assign(l),o.assign(c);let p=J(B(u,-this.learningRate),a);a.assign(p)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Ee(this.accumulatedGrads.map(e=>e.variable)),Ee(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=e.length/2,n=!1;this.accumulatedGrads=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedUpdates=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}};_h.className="Adadelta";Yr(_h);var Eh=class extends br{constructor(e,t=.1){super();this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=P.registeredVariables[t];if(this.accumulatedGrads[n]==null){let i=!1;this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:M(()=>Sn(a.shape,this.initialAccumulatorValue).variable(i))}}let r=Array.isArray(e)?e[n].tensor:e[t];if(r==null)return;let s=this.accumulatedGrads[n].variable;M(()=>{let i=J(s,lt(r));s.assign(i);let o=J(B(xe(r,an(J(i,P.backend.epsilon()))),-this.learningRate),a);a.assign(o)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Ee(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulatedGrads=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}};Eh.className="Adagrad";Yr(Eh);var $h=class extends br{constructor(e,t,n,a=null){super();this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],M(()=>{this.accBeta1=ce(t).variable(),this.accBeta2=ce(n).variable()}),a==null&&(this.epsilon=P.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);M(()=>{let n=me(1,this.accBeta1),a=me(1,this.accBeta2);t.forEach((r,s)=>{let i=P.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:M(()=>Ge(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:M(()=>Ge(i).variable(o))});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,c=this.accumulatedSecondMoment[s].variable,p=J(B(u,this.beta1),B(l,1-this.beta1)),d=J(B(c,this.beta2),B(lt(l),1-this.beta2)),h=xe(p,n),m=xe(d,a);u.assign(p),c.assign(d);let f=J(B(xe(h,J(an(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(B(this.accBeta1,this.beta1)),this.accBeta2.assign(B(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Ee(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&Ee(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),M(()=>{this.accBeta1.assign(gr(this.beta1,this.iterations_+1)),this.accBeta2.assign(gr(this.beta2,this.iterations_+1))});let t=e.length/2,n=!1;this.accumulatedFirstMoment=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}};$h.className="Adam";Yr($h);var Dh=class extends br{constructor(e,t,n,a=null,r=0){super();this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.decay=r,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],M(()=>{this.iteration=ce(0).variable(),this.accBeta1=ce(t).variable()}),a==null&&(this.epsilon=P.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);M(()=>{let n=me(1,this.accBeta1),a=xe(-this.learningRate,J(B(this.iteration,this.decay),1));t.forEach((r,s)=>{let i=P.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:Ge(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:Ge(i).variable(o)});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,c=this.accumulatedWeightedInfNorm[s].variable,p=J(B(u,this.beta1),B(l,1-this.beta1)),d=B(c,this.beta2),h=zt(l),m=qa(d,h);u.assign(p),c.assign(m);let f=J(B(xe(a,n),xe(p,J(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(J(this.iteration,1)),this.accBeta1.assign(B(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Ee(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&Ee(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}};Dh.className="Adamax";Yr(Dh);var Oc=class extends br{constructor(e){super();this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=Array.isArray(e)?e[n].tensor:e[t];if(a==null)return;let r=P.registeredVariables[t];M(()=>{let s=J(B(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=qt(ce(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}};Oc.className="SGD";Yr(Oc);var Mh=class extends Oc{constructor(e,t,n=!1){super(e);this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=ce(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=P.registeredVariables[t];if(this.accumulations[n]==null){let i=!1;this.accumulations[n]={originalName:`${t}/momentum`,variable:M(()=>Ge(a).variable(i))}}let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&M(()=>{let i,o=J(B(this.m,r),s);this.useNesterov?i=J(B(this.c,J(s,B(o,this.m))),a):i=J(B(this.c,o),a),r.assign(o),a.assign(i)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Ee(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulations=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}};Mh.className="Momentum";Yr(Mh);var Rh=class extends br{constructor(e,t=.9,n=0,a=null,r=!1){super();if(this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=a,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=r,a==null&&(this.epsilon=P.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=P.registeredVariables[t],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:M(()=>Ge(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:M(()=>Ge(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:M(()=>Ge(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;M(()=>{let l=J(B(i,this.decay),B(lt(s),1-this.decay));if(this.centered){let u=this.accumulatedMeanGrads[n].variable,c=J(B(u,this.decay),B(s,1-this.decay)),p=xe(B(s,this.learningRate),an(me(l,J(lt(c),this.epsilon)))),d=J(B(o,this.momentum),p);i.assign(l),u.assign(c),o.assign(d);let h=me(a,d);a.assign(h)}else{let u=J(B(i,this.decay),B(lt(s),1-this.decay)),c=J(B(o,this.momentum),xe(B(s,this.learningRate),an(J(u,this.epsilon))));i.assign(u),o.assign(c);let p=me(a,c);a.assign(p)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Ee(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Ee(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&Ee(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedMoments=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}};Rh.className="RMSProp";Yr(Rh);var _i=class{static sgd(e){return new Oc(e)}static momentum(e,t,n=!1){return new Mh(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new Rh(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new $h(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new _h(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new Dh(e,t,n,a,r)}static adagrad(e,t=.1){return new Eh(e,t)}},Ei={sgd:_i.sgd,momentum:_i.momentum,adadelta:_i.adadelta,adagrad:_i.adagrad,rmsprop:_i.rmsprop,adamax:_i.adamax,adam:_i.adam},ZP=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function Ph(){return new Promise(e=>ZP(()=>e()))}var E={};Oe(E,{ERF_A1:()=>cO,ERF_A2:()=>pO,ERF_A3:()=>dO,ERF_A4:()=>hO,ERF_A5:()=>mO,ERF_P:()=>uO,PARALLELIZE_THRESHOLD:()=>ub,SELU_SCALE:()=>Y1,SELU_SCALEALPHA:()=>K1,applyActivation:()=>Ah,assertAndGetBroadcastShape:()=>xt,assertAxesAreInnerMostDims:()=>PD,assertParamsConsistent:()=>eO,assignToTypedArray:()=>kO,axesAreInnerMostDims:()=>Vy,calculateShapes:()=>P0,combineLocations:()=>w1,complexWithEvenIndex:()=>xO,complexWithOddIndex:()=>vO,computeConv2DInfo:()=>Tc,computeConv3DInfo:()=>a1,computeDefaultPad:()=>_y,computeDilation2DInfo:()=>i$,computeOptimalWindowSize:()=>nO,computeOutAndReduceShapes:()=>k1,computeOutShape:()=>tO,computePool2DInfo:()=>n1,computePool3DInfo:()=>o$,convertConv2DDataFormat:()=>t1,eitherStridesOrDilationsAreOne:()=>Ga,expandShapeToKeepDim:()=>Ci,exponent:()=>NO,exponents:()=>IO,fromStringArrayToUint8:()=>CO,fromUint8ToStringArray:()=>SO,getAxesPermutation:()=>I1,getBroadcastDims:()=>Q$,getComplexWithIndex:()=>wO,getFusedBiasGradient:()=>Ch,getFusedDyActivation:()=>Sh,getImageCenter:()=>aO,getInnerMostAxes:()=>OD,getPermuted:()=>sO,getReductionAxes:()=>Wt,getReshaped:()=>rO,getReshapedPermuted:()=>iO,getSliceBeginCoords:()=>oO,getSliceSize:()=>lO,getUndoAxesPermutation:()=>Uy,log:()=>gO,mergeRealAndImagArrays:()=>yO,prepareAndValidate:()=>R0,prepareSplitSize:()=>TO,segment_util:()=>J1,shouldFuse:()=>Fh,slice_util:()=>pn,splitRealAndImagArrays:()=>bO,tupleValuesAreOne:()=>Jr,upcastType:()=>ua,validateInput:()=>gy,validateUpdateShape:()=>fy,warn:()=>fO});function eO(e,t){let n=e[0].length;e.forEach((r,s)=>{$(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),$(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`);let a=e[0];e.forEach((r,s)=>{for(let i=0;i`Error in concat${n}D: Shape of tensors[${s}] (${r}) does not match the shape of the rest (${a}) along the non-concatenated axis ${s}.`)})}function tO(e,t){let n=e[0].slice();for(let a=1;a=t*2+1||i%2==1?s.push(i):r.push(i);a.push(...r),a.push(0),a.push(...s)}return a}function iO(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s"Number of splits must evenly divide the axis."),a=new Array(t).fill(e.shape[n]/t);else{let r=t.reduce((i,o)=>(o===-1&&(i+=1),i),0);$(r<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((o,l)=>l>0?o+l:o);t[s]=e.shape[n]-i}$(e.shape[n]===t.reduce((i,o)=>i+o),()=>"The sum of sizes must match the size of the axis dimension."),a=t}return a}var J1={};Oe(J1,{collectGatherOpShapeInfo:()=>_O,computeOutShape:()=>FO,segOpComputeOptimalWindowSize:()=>AO});function AO(e,t){let n=!1,a;for(e<=ub?(a=e,n=!0):a=od(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=od(e,a+1);return a}function FO(e,t,n){let a=[],r=e.length;for(let s=0;sr))throw new Error(`Expect batchDims in the range of [-${r}, ${r}], but got ${a}`);if(a<0&&(a+=r),a>s)throw new Error(`batchDims (${a}) must be less than rank(x) ( + ${s}).`);if(nGd(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function CO(e){return e.map(t=>fc(t))}var Ya={};Oe(Ya,{nonMaxSuppressionV3Impl:()=>B1,nonMaxSuppressionV4Impl:()=>V1,nonMaxSuppressionV5Impl:()=>U1,whereImpl:()=>E1});var Q1={kernelName:So,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(e,Vl(ue(n,"float32"),-1))}}},EO={kernelName:Co,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=lt(ue(n,"float32")),r=an(me(ce(1),a));return St(xe(e,r))}}}},$O={kernelName:Ao,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=an(me(lt(ue(n,"float32")),1));return xe(e,a)}}}},DO={kernelName:Br,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=Se(s,i)),H(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=Se(s,i)),H(s,a.shape)}}}},MO={kernelName:Ns,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},RO={kernelName:Ts,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Ge(n)}}},PO={kernelName:Ku,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Ge(n)}}},OO={kernelName:Fo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,an(me(ce(1),lt(ue(n,"float32")))))}}},LO={kernelName:_o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=an(J(ce(1),lt(ue(n,"float32"))));return xe(e,a)}}}},zO={kernelName:Do,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=J(lt(n),lt(a)),i=B(e,xe(a,s)),o=Wt(n.shape,r);return o.length>0&&(i=Se(i,o)),H(i,n.shape)},b:()=>{let s=J(lt(n),lt(a)),i=St(B(e,xe(n,s))),o=Wt(a.shape,r);return o.length>0&&(i=Se(i,o)),H(i,a.shape)}}}},WO={kernelName:Eo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,J(lt(ue(n,"float32")),1))}}},BO={kernelName:$o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,me(ce(1),lt(ue(n,"float32"))))}}};function VO(e,t,n,a,r,s){let i=_(e,"dy","avgPool3dGrad"),o=_(t,"input","avgPool3dGrad"),l=i,u=o,c=!1;o.rank===4&&(c=!0,l=H(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=H(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),$(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),$(u.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${u.rank}.`),s!=null&&$(Ht(r),()=>`Error in avgPool3dGrad: pad must be an integer when using, dimRoundingMode ${s} but got pad ${r}.`);let p={dy:l,input:u},d={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=P.runKernel(dd,p,d);return c?H(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var UO=O({avgPool3dGrad_:VO}),GO={kernelName:Yu,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>UO(e,a,r,s,i,o)}}};function HO(e,t,n,a,r){let s=_(e,"dy","avgPoolGrad"),i=_(t,"input","avgPoolGrad");$(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let o=i,l=s,u=!1;i.rank===3&&(u=!0,o=H(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=H(s,[1,s.shape[0],s.shape[1],s.shape[2]])),$(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),$(o.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`);let c={dy:l,input:o},p={filterSize:n,strides:a,pad:r},d=P.runKernel(pd,c,p);return u?H(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var jO=O({avgPoolGrad_:HO}),qO={kernelName:Ss,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>jO(e,a,r,s,i)}}},XO={kernelName:Cs,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>ze(e,r,!1,!0),b:()=>ze(a,e,!0,!1)}:!s&&i?{a:()=>ze(e,r,!1,!1),b:()=>ze(e,a,!0,!1)}:s&&!i?{a:()=>ze(r,e,!1,!0),b:()=>ze(a,e,!1,!1)}:{a:()=>ze(r,e,!0,!0),b:()=>ze(e,a,!0,!0)}}},KO={kernelName:Ju,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>Ec(e,a,r)}}},YO={kernelName:s0,gradFunc:(e,t,n)=>{let a=n,r=a.inputShape,s=a.shape,i=Array.from(s);for(let l=r.length-1;l>=0;l--)if(r[l]===s[l])i[l]=1;else if(r[l]!==1)throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${s}].`);let o=[];for(let l=0;l1&&o.push(l);return{x:()=>Se(e,o,!0)}}},JO={kernelName:As,gradFunc:e=>({x:()=>e.clone()})},QO={kernelName:Fs,gradFunc:e=>({x:()=>Ge(e)})},ZO={kernelName:Vr,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>Tn(da(es(a,r),Si(a,s)),e,Ge(e))}}},eL={kernelName:Qu,inputsToSave:["x"],gradFunc:Q1.gradFunc},tL={kernelName:Mo,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=la(r,t[0].shape)[0],i=a.map(o=>o[s]);return zn(e,i,s).map(o=>()=>o)}},nL={kernelName:_s,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return $(Jr(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>Dy(a.shape,e,r,i,o,l),filter:()=>ob(a,e,r.shape,i,o,l)}}},aL={kernelName:Es,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>Et(e,r,s,i,o,1,l),filter:()=>ob(e,a,r.shape,s,i,o,l)}}};function rL(e,t,n,a,r){let s=e;e.rank===4&&(s=H(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=H(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),$(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),$(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),$(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),$(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),$(i.shape[4]===n[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${n[4]}).`);let o={x:s,dy:i},l={strides:a,pad:r,filterShape:n};return P.runKernel(gd,o,l)}var sL=O({conv3DBackpropFilter_:rL}),iL={kernelName:Zu,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;$(Jr(a),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${a}'`);let[i,o]=t;return{x:()=>d1(i.shape,e,o,r,s),filter:()=>sL(i,e,o.shape,r,s)}}},oL={kernelName:$s,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(St(bh(ue(n,"float32"))),e)}}},lL={kernelName:Ro,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(xh(ue(n,"float32")),e)}}},uL={kernelName:Ds,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=I1([r],a.rank),l=sh(e,r,s,!i);return o!=null&&(l=Ve(l,o)),l}}}},cL={kernelName:Ms,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;$(Jr(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,u]=t;return $(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),$(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`),$(l.shape[3]===u.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${u.shape[2]}.`),$(Ga(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),i!=null&&$(Ht(s),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`),{x:()=>L1(l.shape,e,u,r,s,a,i),filter:()=>O1(l,e,u.shape,r,s,a,i)}}},pL={kernelName:ec,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,s={x:a,filter:r,dy:e},i={x:a,filter:r,dy:e};return{x:()=>P.runKernel(kd,s,n),filter:()=>P.runKernel(Id,i,n)}}},dL={kernelName:Lo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>P.runKernel(Nd,a)}}},hL={kernelName:zo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=B(dn(St(lt(n))),2/Math.sqrt(Math.PI));return{x:()=>B(e,a)}}},mL={kernelName:Ps,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(e,n)}}},fL={kernelName:Bo,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>H(e,n.shape)}}},gL={kernelName:Vo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(e,dn(n))}}},yL={kernelName:Os,gradFunc:e=>({x:()=>Ge(e)})},bL={kernelName:Ls,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=xe(e,ue(a,"float32")),i=Wt(n.shape,r);return i.length>0?H(Se(s,i),n.shape):s},b:()=>{let s=B(e,ue(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=H(Se(s,i),a.shape));let o=lt(a);return St(xe(s,ue(o,"float32")))}}}},xL={kernelName:zs,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?ce(1):o,u=Wt(s.shape,r.shape),c=[];if(s.rank===1){for(let f=0;fs.rank===1?H(B(B(e,Ha(H(h,[1,1,1,s.shape[0]]),c)),l),r.shape):H(B(B(e,h),l),r.shape),mean:()=>{let f=B(B(h,ce(-1)),d);return s.rank===1&&(f=Se(f,u)),H(f,s.shape)},variance:()=>{let f=B(B(m,p),d);return s.rank===1&&(f=Se(f,u)),H(f,s.shape)},scale:()=>{let f=B(p,h),g=B(e,f);return s.rank===1&&(g=Se(g,u)),H(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=Se(f,u)),H(f,s.shape)}}}},vL={kernelName:Go,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s}=n,i=la(s,a.shape)[0];return{x:()=>{let o=a.shape,l=r.size,u=o.slice(0,i),c=u.length,p=o.slice(s,o.length).slice(1),d=p.length,h=Z1(0,c),m=Z1(c+1,c+1+d),f=ek([u,[l],p]),g=H(e,f),y=H(r,[l]),b=ek([[c],h,m]),x=Ve(g,b),v=ab(x,y,a.shape[i]),k=Uy(b);return v=Ve(v,k),v},indices:()=>r}}};function Z1(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>Ge(n),b:()=>Ge(a)}}},kL={kernelName:Bs,gradFunc:e=>({x:()=>ue(e,"float32")})},IL={kernelName:qo,gradFunc:e=>({x:()=>Ge(e)})},NL={kernelName:Xo,gradFunc:e=>({x:()=>Ge(e)})},TL={kernelName:Ko,gradFunc:e=>({x:()=>Ge(e)})},SL={kernelName:Vs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=pa(a,0);return{x:()=>Tn(s,e,B(e,r))}}},CL={kernelName:Qo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,J(n,1))}}},AL={kernelName:Us,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,ue(n,"float32"))}}},FL={kernelName:i0,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=!0,i=dn(a);return me(e,B(Se(e,r,s),i))}}}};function _L(e,t,n,a=5,r=1,s=1,i=.5){let o={x:e,y:t,dy:n},l={depthRadius:a,bias:r,alpha:s,beta:i};return P.runKernel(Fd,o,l)}var EL=O({localResponseNormalizationBackprop_:_L}),$L={kernelName:rc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>EL(a,r,e,s,i,o,l)}}};function tk(e,t,n,a){return t.rankB(e,ue(Zr(n,t),e.dtype))}}var nk={kernelName:Gs,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=la(r,s.shape),l=tk(e,i,s,o);return{x:()=>l.x()}}},DL={kernelName:Hs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>B(e,ue(es(n,a),"float32")),b:()=>B(e,ue(oh(n,a),"float32"))}}};function ML(e,t,n,a,r,s,i){let o=_(e,"dy","maxPool3dGrad"),l=_(t,"input","maxPool3dGrad"),u=_(n,"output","maxPool3dGrad"),c=o,p=l,d=u,h=!1;l.rank===4&&(h=!0,c=H(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),p=H(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),d=H(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),$(c.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${c.rank}.`),$(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),$(d.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${d.rank}.`),i!=null&&$(Ht(s),()=>`Error in maxPool3dGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`);let m={dy:c,input:p,output:d},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=P.runKernel(Ed,m,f);return h?H(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var RL=O({maxPool3dGrad_:ML}),PL={kernelName:sc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>RL(e,a,r,s,i,o,l)}}};function OL(e,t,n,a,r,s,i){let o=_(e,"dy","maxPoolGrad"),l=_(t,"input","maxPoolGrad"),u=_(n,"output","maxPoolGrad");$(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),$(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),$(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),i!=null&&$(Ht(s),()=>`Error in maxPoolGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`);let c={dy:o,input:l,output:u},p={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return P.runKernel(_d,c,p)}var LL=O({maxPoolGrad_:OL}),zL={kernelName:js,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>LL(e,a,r,s,i,o)}}},WL={kernelName:qs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=la(r,a.shape),i=k1(a.shape,s)[1],o=Ot(i);return{x:()=>{let l=a.shape.slice();s.forEach(c=>{l[c]=1});let u=H(e,l);return xe(B(u,Xa(a.shape,"float32")),o)}}}},BL={kernelName:Xs,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=la(r,s.shape),l=tk(e,i,s,o);return{x:()=>l.x()}}},VL={kernelName:Ks,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>B(e,ue(Si(n,a),"float32")),b:()=>B(e,ue(pa(n,a),"float32"))}}},UL={kernelName:ic,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Be(e,s,a.shape)}}},GL={kernelName:el,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=Wt(n.shape,r);return s.length>0?H(Se(e,s),n.shape):e},b:()=>{let s=B(e,St(Rl(xe(n,a)))),i=Wt(a.shape,r);return i.length>0?H(Se(s,i),a.shape):s}}}},HL={kernelName:Ys,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=B(e,ue(a,"float32")),i=Wt(n.shape,r);return i.length>0?H(Se(s,i),n.shape):s},b:()=>{let s=B(e,ue(n,"float32")),i=Wt(a.shape,r);return i.length>0?H(Se(s,i),a.shape):s}}}},jL={kernelName:tl,gradFunc:e=>({x:()=>St(e)})},qL={kernelName:Js,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>vt(n.shape,"float32")}}},XL={kernelName:il,gradFunc:e=>({x:()=>Ge(e)})},KL={kernelName:ol,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return ct(e,a).map(r=>()=>r)}},ak={kernelName:Qs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Be(e,s,a.shape)}}},YL={kernelName:Zs,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=xt(s.shape,i.shape);return{a:()=>{let l=ue(i,"float32"),u=B(e,B(l,gr(s,me(l,ce(1))))),c=Wt(s.shape,o);return c.length>0&&(u=Se(u,c)),H(u,s.shape)},b:()=>{let l=pa(s,0),u=Tn(l,Pn(s),Ge(s)),c=B(e,B(r,u)),p=Wt(i.shape,o);return p.length>0&&(c=Se(c,p)),H(c,i.shape)}}}},JL={kernelName:ei,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=pa(n,0);return{x:()=>Tn(r,e,B(e,a)),alpha:()=>{let s=Tn(r,Ge(e),B(e,n)),i=Wt(a.shape,e.shape);return i.length>0&&(s=Se(s,i)),H(s,a.shape)}}}},QL={kernelName:Rs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=xe(e,ue(a,"float32")),i=Wt(n.shape,r);return i.length>0?H(Se(s,i),n.shape):s},b:()=>{let s=B(e,ue(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=H(Se(s,i),a.shape));let o=lt(a);return St(xe(s,ue(o,"float32")))}}}},ZL={kernelName:ul,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,St(lt(n)))}}},e3={kernelName:ai,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=B(Si(n,6),Vl(n));return{x:()=>B(e,ue(a,"float32"))}}},t3={kernelName:ti,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(e,ue(Vl(n),"float32"))}}},n3={kernelName:cl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>H(e,n.shape)}}},a3={kernelName:ni,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>P.runKernel(Pd,r,n)}}},r3={kernelName:lc,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>P.runKernel(Rd,r,n)}}},s3={kernelName:ri,gradFunc:(e,t,n)=>{let{dims:a}=n,r=la(a,e.shape);return{x:()=>Ln(e,r)}}},i3={kernelName:si,gradFunc:e=>({x:()=>Ge(e)})},o3={kernelName:ii,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>St(xe(e,B(gr(n,1.5),2)))}}},l3={kernelName:dl,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>ue(Ge(n),"float32"),t:()=>B(e,ue(n,e.dtype)),e:()=>B(e,ue(_c(n),e.dtype))}}},u3={kernelName:hl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=pa(n,ce(0)),r=ce(K1),s=ce(Y1),i=B(e,s),o=B(B(e,r),dn(ue(n,"float32")));return Tn(a,i,o)}}}},c3={kernelName:li,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(e,B(n,me(ce(1),n)))}}},p3={kernelName:gl,gradFunc:e=>({x:()=>Ge(e)})},d3={kernelName:oi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(Ac(ue(n,"float32")),e)}}},h3={kernelName:fl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(rh(ue(n,"float32")),e)}}},m3={kernelName:ml,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=H0(a,r,s),u=[];for(let c=0;cea(e,u)}}},f3={kernelName:pi,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=B(e,a);return{logits:()=>me(i,B(Se(i,[r],s),a))}}},g3={kernelName:yl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(e,ca(n))}}},rk={kernelName:uc,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>Sc(e,a,r)}}},sk={kernelName:bl,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Je(e,a)}}},y3={kernelName:ui,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,B(an(ue(n,"float32")),2))}}},b3={kernelName:cc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(e,B(ue(n,"float32"),2))}}},x3={kernelName:di,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ce(2);return{a:()=>B(e,B(r,me(n,a))),b:()=>B(e,B(r,me(a,n)))}}},v3={kernelName:Gr,gradFunc:e=>({x:()=>Ge(e)})},w3={kernelName:hi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=Se(s,i)),H(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=Se(s,i)),H(St(s),a.shape)}}}},k3={kernelName:ci,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;la(s,a.shape).forEach(l=>{r[l]=1});let i=H(e,r),o=B(i,Xa(a.shape,"float32"));return{x:()=>o}}},I3={kernelName:vl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,lt(Ac(n)))}}},N3={kernelName:mi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(me(ce(1),lt(n)),e)}}},T3={kernelName:Ur,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=Ge(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=Uy(r);return{x:()=>Ve(e,s)}}},C3={kernelName:kl,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>Dt(e,r)}}},F3={kernelName:pc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>A3(e,n)}}};function A3(e,t){let n=qa(t,Ge(t)),a=Ti(e,n),r=es(t,ce(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>Ge(e)})},E3=[Q1,EO,$O,DO,MO,RO,PO,OO,LO,zO,WO,BO,GO,qO,XO,KO,YO,JO,QO,ZO,eL,tL,aL,nL,iL,oL,lL,uL,cL,pL,QL,dL,hL,mL,fL,gL,bL,yL,xL,vL,wL,kL,IL,NL,TL,SL,CL,AL,FL,$L,nk,nk,DL,PL,zL,WL,BL,VL,UL,GL,HL,jL,qL,XL,KL,ak,ak,YL,JL,ZL,e3,t3,n3,a3,r3,s3,i3,o3,l3,u3,c3,p3,d3,h3,m3,f3,g3,rk,rk,sk,sk,y3,x3,b3,v3,w3,k3,I3,N3,T3,S3,C3,F3,_3];for(let e of E3)o0(e);Y().prototype.abs=function(){return this.throwIfDisposed(),zt(this)};Y().prototype.acos=function(){return this.throwIfDisposed(),wy(this)};Y().prototype.acosh=function(){return this.throwIfDisposed(),ky(this)};Y().prototype.add=function(e){return this.throwIfDisposed(),J(this,e)};Y().prototype.all=function(e,t){return this.throwIfDisposed(),eh(this,e,t)};Y().prototype.any=function(e,t){return this.throwIfDisposed(),Ic(this,e,t)};Y().prototype.argMax=function(e){return this.throwIfDisposed(),Nc(this,e)};Y().prototype.argMin=function(e){return this.throwIfDisposed(),Iy(this,e)};Y().prototype.asScalar=function(){return this.throwIfDisposed(),$(this.size===1,()=>"The array must have only 1 element."),H(this,[])};Y().prototype.asType=function(e){return this.throwIfDisposed(),ue(this,e)};Y().prototype.as1D=function(){return this.throwIfDisposed(),H(this,[this.size])};Y().prototype.as2D=function(e,t){return this.throwIfDisposed(),H(this,[e,t])};Y().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),H(this,[e,t,n])};Y().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),H(this,[e,t,n,a])};Y().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),H(this,[e,t,n,a,r])};Y().prototype.asin=function(){return this.throwIfDisposed(),Ny(this)};Y().prototype.asinh=function(){return this.throwIfDisposed(),Ty(this)};Y().prototype.atan=function(){return this.throwIfDisposed(),Sy(this)};Y().prototype.atan2=function(e){return this.throwIfDisposed(),Cy(this,e)};Y().prototype.atanh=function(){return this.throwIfDisposed(),Ay(this)};Y().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),Qn(this,e,t,n,a)};Y().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Sc(this,e,t)};Y().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),fr(this,e,t,n,a,r)};Y().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Cc(this,e)};Y().prototype.cast=function(e){return this.throwIfDisposed(),ue(this,e)};Y().prototype.ceil=function(){return this.throwIfDisposed(),$y(this)};Y().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),Xt(this,e,t)};Y().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Fe&&(e=[e]),Je([this,...e],t)};Y().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),nh(this,e,t,n,a,r,s)};Y().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),ah(this,e,t,n,a,r)};Y().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Et(this,e,t,n,a,r,s)};Y().prototype.cos=function(){return this.throwIfDisposed(),Ac(this)};Y().prototype.cosh=function(){return this.throwIfDisposed(),rh(this)};Y().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),sh(this,e,t,n)};Y().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),Ry(this,e,t)};Y().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Qr(this,e,t,n,a,r,s)};Y().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),Py(this,e,t,n,a,r)};Y().prototype.divNoNan=function(e){return this.throwIfDisposed(),Oy(this,e)};Y().prototype.div=function(e){return this.throwIfDisposed(),xe(this,e)};Y().prototype.dot=function(e){return this.throwIfDisposed(),m1(this,e)};Y().prototype.elu=function(){return this.throwIfDisposed(),Ml(this)};Y().prototype.equal=function(e){return this.throwIfDisposed(),Zr(this,e)};Y().prototype.erf=function(){return this.throwIfDisposed(),Ly(this)};Y().prototype.exp=function(){return this.throwIfDisposed(),dn(this)};Y().prototype.expandDims=function(e){return this.throwIfDisposed(),Rn(this,e)};Y().prototype.expm1=function(){return this.throwIfDisposed(),zy(this)};Y().prototype.fft=function(){return this.throwIfDisposed(),Rc(this)};Y().prototype.flatten=function(){return this.throwIfDisposed(),H(this,[this.size])};Y().prototype.floor=function(){return this.throwIfDisposed(),Rl(this)};Y().prototype.floorDiv=function(e){return this.throwIfDisposed(),Zd(this,e)};Y().prototype.gather=function(e,t){return this.throwIfDisposed(),Ti(this,e,t)};Y().prototype.greaterEqual=function(e){return this.throwIfDisposed(),es(this,e)};Y().prototype.greater=function(e){return this.throwIfDisposed(),pa(this,e)};Y().prototype.ifft=function(){return this.throwIfDisposed(),Bl(this)};Y().prototype.irfft=function(){return this.throwIfDisposed(),wh(this)};Y().prototype.isFinite=function(){return this.throwIfDisposed(),f1(this)};Y().prototype.isInf=function(){return this.throwIfDisposed(),g1(this)};Y().prototype.isNaN=function(){return this.throwIfDisposed(),y1(this)};Y().prototype.leakyRelu=function(e){return this.throwIfDisposed(),Fc(this,e)};Y().prototype.lessEqual=function(e){return this.throwIfDisposed(),Si(this,e)};Y().prototype.less=function(e){return this.throwIfDisposed(),oh(this,e)};Y().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),By(this,e,t,n,a)};Y().prototype.logSigmoid=function(){return this.throwIfDisposed(),v1(this)};Y().prototype.logSoftmax=function(e){return this.throwIfDisposed(),ch(this,e)};Y().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),Gy(this,e,t)};Y().prototype.log=function(){return this.throwIfDisposed(),Pn(this)};Y().prototype.log1p=function(){return this.throwIfDisposed(),lh(this)};Y().prototype.logicalAnd=function(e){return this.throwIfDisposed(),da(this,e)};Y().prototype.logicalNot=function(){return this.throwIfDisposed(),_c(this)};Y().prototype.logicalOr=function(e){return this.throwIfDisposed(),ph(this,e)};Y().prototype.logicalXor=function(e){return this.throwIfDisposed(),N1(this,e)};Y().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),ze(this,e,t,n)};Y().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),$t(this,e,t,n,a)};Y().prototype.max=function(e,t){return this.throwIfDisposed(),Zn(this,e,t)};Y().prototype.maximum=function(e){return this.throwIfDisposed(),qa(this,e)};Y().prototype.mean=function(e,t){return this.throwIfDisposed(),Ct(this,e,t)};Y().prototype.min=function(e,t){return this.throwIfDisposed(),Ol(this,e,t)};Y().prototype.minimum=function(e){return this.throwIfDisposed(),Ll(this,e)};Y().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),jy(this,e,t)};Y().prototype.mod=function(e){return this.throwIfDisposed(),qy(this,e)};Y().prototype.mul=function(e){return this.throwIfDisposed(),B(this,e)};Y().prototype.neg=function(){return this.throwIfDisposed(),St(this)};Y().prototype.norm=function(e,t,n){return this.throwIfDisposed(),Th(this,e,t,n)};Y().prototype.notEqual=function(e){return this.throwIfDisposed(),Ai(this,e)};Y().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),_l(this,e,t,n)};Y().prototype.onesLike=function(){return this.throwIfDisposed(),On(this)};Y().prototype.pad=function(e,t){return this.throwIfDisposed(),ea(this,e,t)};Y().prototype.pool=function(e,t,n,a,r){return this.throwIfDisposed(),C1(this,e,t,n,a,r)};Y().prototype.pow=function(e){return this.throwIfDisposed(),gr(this,e)};Y().prototype.prelu=function(e){return this.throwIfDisposed(),$c(this,e)};Y().prototype.prod=function(e,t){return this.throwIfDisposed(),hh(this,e,t)};Y().prototype.reciprocal=function(){return this.throwIfDisposed(),Yy(this)};Y().prototype.relu=function(){return this.throwIfDisposed(),qe(this)};Y().prototype.relu6=function(){return this.throwIfDisposed(),fh(this)};Y().prototype.reshapeAs=function(e){return this.throwIfDisposed(),H(this,e.shape)};Y().prototype.reshape=function(e){return this.throwIfDisposed(),H(this,e)};Y().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),H1(this,e,t,n)};Y().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),j1(this,e,t,n)};Y().prototype.reverse=function(e){return this.throwIfDisposed(),Ln(this,e)};Y().prototype.rfft=function(){return this.throwIfDisposed(),Pc(this)};Y().prototype.round=function(){return this.throwIfDisposed(),Jy(this)};Y().prototype.rsqrt=function(){return this.throwIfDisposed(),gh(this)};Y().prototype.selu=function(){return this.throwIfDisposed(),yh(this)};Y().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Fi(this,e,t,n,a,r,s)};Y().prototype.sigmoid=function(){return this.throwIfDisposed(),ca(this)};Y().prototype.sign=function(){return this.throwIfDisposed(),Qy(this)};Y().prototype.sin=function(){return this.throwIfDisposed(),bh(this)};Y().prototype.sinh=function(){return this.throwIfDisposed(),xh(this)};Y().prototype.slice=function(e,t){return this.throwIfDisposed(),Be(this,e,t)};Y().prototype.softmax=function(e){return this.throwIfDisposed(),Ta(this,e)};Y().prototype.softplus=function(){return this.throwIfDisposed(),Pl(this)};Y().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Ec(this,e,t)};Y().prototype.split=function(e,t){return this.throwIfDisposed(),zn(this,e,t)};Y().prototype.sqrt=function(){return this.throwIfDisposed(),an(this)};Y().prototype.square=function(){return this.throwIfDisposed(),lt(this)};Y().prototype.squaredDifference=function(e){return this.throwIfDisposed(),kh(this,e)};Y().prototype.squeeze=function(e){return this.throwIfDisposed(),ts(this,e)};Y().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Fe?[this,e]:[this,...e];return Dt(n,t)};Y().prototype.step=function(e){return this.throwIfDisposed(),Vl(this,e)};Y().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),eb(this,e,t,n,a,r,s,i,o)};Y().prototype.sub=function(e){return this.throwIfDisposed(),me(this,e)};Y().prototype.sum=function(e,t){return this.throwIfDisposed(),Se(this,e,t)};Y().prototype.tan=function(){return this.throwIfDisposed(),tb(this)};Y().prototype.tanh=function(){return this.throwIfDisposed(),Dl(this)};Y().prototype.tile=function(e){return this.throwIfDisposed(),Ha(this,e)};Y().prototype.toBool=function(){return this.throwIfDisposed(),ue(this,"bool")};Y().prototype.toFloat=function(){return this.throwIfDisposed(),ue(this,"float32")};Y().prototype.toInt=function(){return this.throwIfDisposed(),ue(this,"int32")};Y().prototype.topk=function(e,t){return this.throwIfDisposed(),nb(this,e,t)};Y().prototype.transpose=function(e){return this.throwIfDisposed(),Ve(this,e)};Y().prototype.unique=function(e){return this.throwIfDisposed(),Nh(this,e)};Y().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),ab(this,e,t)};Y().prototype.unstack=function(e){return this.throwIfDisposed(),ct(this,e)};Y().prototype.where=function(e,t){return this.throwIfDisposed(),Tn(e,this,t)};Y().prototype.zerosLike=function(){return this.throwIfDisposed(),Ge(this)};var ik={};Oe(ik,{maxNorm:()=>$3,minMaxNorm:()=>R3,nonNeg:()=>M3,unitNorm:()=>D3});var cb;function Bt(){return cb==null&&(cb=Z0().epsilon()),cb}function Aa(){return"channelsLast"}var xr=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,xr.prototype)}},Fa=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Fa.prototype)}},V=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,V.prototype)}},$e=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,$e.prototype)}},ok=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,ok.prototype)}};function $i(e,t){if(Array.isArray(e)){let n=[];for(let a=0;an.toUpperCase())}var ha={};function pb(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function db(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>db(t));else{let t=Object.keys(e);for(let n of t){let a=e[n];a!=null&&typeof a=="object"&&(!Array.isArray(a)&&a.type==="ndarray"&&typeof a.value=="number"?e[n]=a.value:db(a))}}}function Lc(e,t={},n={},a="object",r=!1){if(typeof e=="string"){let s=e,i;if(s in n)i=n[s];else if(s in ha)i=ha[s];else if(i=t[s],i==null)throw new V(`Unknown ${a}: ${e}. This may be due to one of the following reasons: 1. The ${a} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{let s=e;if(s.className==null||s.config==null)throw new z(`${a}: Improper config format: ${JSON.stringify(s)}. -'className' and 'config' must set.`);let i=s.className,o,l;if(i in n?[o,l]=n[i]:i in ha?[o,l]=ha.className:i in t&&([o,l]=t[i]),o==null)throw new z(`Unknown ${a}: ${i}. This may be due to one of the following reasons: +2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{let s=e;if(s.className==null||s.config==null)throw new V(`${a}: Improper config format: ${JSON.stringify(s)}. +'className' and 'config' must set.`);let i=s.className,o,l;if(i in n?[o,l]=n[i]:i in ha?[o,l]=ha.className:i in t&&([o,l]=t[i]),o==null)throw new V(`Unknown ${a}: ${i}. This may be due to one of the following reasons: 1. The ${a} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){let c={};for(let h of Object.keys(ha))c[h]=ha[h];for(let h of Object.keys(n))c[h]=n[h];let u=s.config;u.customObjects=c;let p=Object.assign({},ha);for(let h of Object.keys(n))ha[h]=n[h];pb(s.config);let d=l(o,s.config,n,r);return ha=Object.assign({},p),d}else{let c=Object.assign({},ha);for(let p of Object.keys(n))ha[p]=n[p];let u=new o(s.config);return ha=Object.assign({},c),u}}}function c3(e,t){return et?1:0}function Ph(e,t){return-1*c3(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 p3(e){if(e==null)throw new z(`Invalid value in obj: ${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function Ri(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new z(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function db(e,t,n=0,a=Infinity){return Ja(n>=0),Ja(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function Kt(e,t){Array.isArray(e)?(w.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>Kt(n,`element ${a+1} of ${t}`))):w.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${o1(e)}.`)}function o1(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>o1(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function d3(e,t){let n=w.now(),a;return(...r)=>{let s=w.now();return s-nnn(Se(L(e,e),t,!0)))}var Lc=class extends re.Serializable{getConfig(){return{}}},mb=class extends Lc{constructor(e){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return D(()=>{let t=hb(e,this.axis),n=qt(t,0,this.maxValue);return L(e,xe(n,J(Bt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};mb.className="MaxNorm";re.registerClass(mb);var fb=class extends Lc{constructor(e){super();this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return D(()=>xe(e,J(Bt(),hb(e,this.axis))))}getConfig(){return{axis:this.axis}}};fb.className="UnitNorm";re.registerClass(fb);var gb=class extends Lc{apply(e){return qe(e)}};gb.className="NonNeg";re.registerClass(gb);var yb=class extends Lc{constructor(e){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return D(()=>{let t=hb(e,this.axis),n=J(L(this.rate,qt(t,this.minValue,this.maxValue)),L(1-this.rate,t));return L(e,xe(n,J(Bt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};yb.className="MinMaxNorm";re.registerClass(yb);var u1={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Wt(e){return cb(e)}function c1(e,t={}){return Oc(e,re.SerializationMap.getMap().classNameMap,t,"constraint")}function Vt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in u1?u1[e]:e,config:{}};return c1(t)}else return e instanceof Lc?e:c1(e)}function i3(e){return new mb(e)}function o3(e){return new fb(e)}function l3(){return new gb}function u3(e){return new yb(e)}var p1={};Oe(p1,{constant:()=>f3,glorotNormal:()=>k3,glorotUniform:()=>w3,heNormal:()=>I3,heUniform:()=>T3,identity:()=>x3,leCunNormal:()=>N3,leCunUniform:()=>S3,ones:()=>m3,orthogonal:()=>C3,randomNormal:()=>y3,randomUniform:()=>g3,truncatedNormal:()=>b3,varianceScaling:()=>v3,zeros:()=>h3});var _3=["channelsFirst","channelsLast"],E3=["nearest","bilinear"],F3=["valid","same","causal"],A3=["max","avg"],$3=["sum","mul","concat","ave"],Gl=new Map;function Dt(e){Ri(_3,"DataFormat",e)}function D3(e){Ri(E3,"InterpolationFormat",e)}function ta(e){Ri(F3,"PaddingMode",e)}function d1(e){Ri(A3,"PoolMode",e)}var zc=[],h1="/";function Mi(e,t){zc.push(e);try{let n=t();return zc.pop(),n}catch(n){throw zc.pop(),n}}function R3(){return zc.length===0?"":zc.join(h1)+h1}function f1(e){if(!m1(e))throw new Error("Not a valid tensor name: '"+e+"'");return R3()+e}function g1(e){if(!m1(e))throw new Error("Not a valid tensor name: '"+e+"'");Gl.has(e)||Gl.set(e,0);let t=Gl.get(e);if(Gl.set(e,Gl.get(e)+1),t>0){let n=`${e}_${t}`;return Gl.set(n,1),n}else return e}var M3=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function m1(e){return!!e.match(M3)}function P3(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{if(e.shape.length!==2)throw new z(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=Wc(e,1);return bb(n,[1,t,1])})}function L3(e){let t=[rs(e.shape)];return e.reshape(t)}function z3(e){if(e.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],rs(e.shape,1)];return e.reshape(t)}function Pi(e,t,n){return D(()=>{switch(e.rank){case 1:return xh(e,t,n);case 2:return Qy(e,[t,0],[n,e.shape[1]]);case 3:return Bl(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Dc(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return We(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return We(e,[t,0,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new z(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function xb(e,t,n){return D(()=>{switch(e.rank){case 1:return xh(e,t,n);case 2:return Qy(e,[0,t],[e.shape[0],n]);case 3:return Bl(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return Dc(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Oh(e,t,n,a){return D(()=>{switch(e.rank){case 1:return xh(e,t,n);case 2:switch(a){case 1:return Pi(e,t,n);case 2:return xb(e,t,n);default:throw new z(`The axis is not within the rank of the tensor ${a}`)}case 3:switch(a){case 1:return Pi(e,t,n);case 2:return Bl(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return xb(e,t,n);default:throw new z(`The axis is not within the rank of the tensor ${a}`)}case 4:switch(a){case 1:return Pi(e,t,n);case 2:return Dc(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return Dc(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return xb(e,t,n);default:throw new z(`The axis is not within the rank of the tensor ${a}`)}default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function vb(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),Je(e,t)}function b1(e,t){switch(e.rank){case 1:return ik([e,t]);case 2:return ok([e,t],0);case 3:return lk([e,t],0);case 4:return uk([e,t],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function bb(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new z(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return Ha(e,t)}function Lh(e,t=0,n=1,a,r){return Sk(e,t,n,a,r)}function Qa(e,t,n,a){if(e.rank<2||t.rank<2)throw new $e(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){let r=e.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(r!==s)throw new $e(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`)}if(e.rank===2&&t.rank===2){let r=!1,s=!1;return ns.matMul({a:e,b:t,transposeA:r,transposeB:s,bias:a?wb(e.rank,a,Ca()):null,activation:n})}else{let r=e.shape.slice(),s=r.pop();e=e.reshape([-1,s]);let i=t.shape.slice(),o=i.pop(),l=i.pop(),c=[...i,o],u=Array.from({length:t.rank},(m,f)=>f===0?t.rank-2:f<=t.rank-2?f-1:f);t=t.transpose(u).reshape([l,-1]);let p=[...r,...c],d=!1,h=!1;return ns.matMul({a:e,b:t,transposeA:d,transposeB:h,bias:a?wb(e.rank,a,Ca()):null,activation:n}).reshape(p)}}function x1(e,t,n){return D(()=>(Array.isArray(t)?t=Qe(t,"int32"):t=t.toInt(),Ni(e,t,n)))}function Vc(e){return L(e,e)}function wb(e,t,n){let a=t.shape;if(t.rank!==1&&t.rank!==e)throw new z(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1,1,1]):t.reshape([1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,1,1,a[0]]):t.reshape([1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1,1]):t.reshape([1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,1,a[0]]):t.reshape([1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1]):t.reshape([1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,a[0]]):t.reshape([1].concat(a))}else if(e<3)return t;throw new z(`Unsupported input rank by biasAdd: ${t.rank}`)}function Za(e,t,n){return D(()=>(n==null&&(n=Ca()),Dt(n),e.add(wb(e.rank,t,n))))}function B3(e,t=1){if(t!==1)throw new $e(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Rl(e)}function W3(e){return D(()=>xe(e,Lt(e).add(1)))}function v1(e,t,n,a){return D(()=>Dk(e,t,n,a))}function V3(e){return D(()=>{let t=J(.5,L(.2,e));return qt(t,0,1)})}function Uc(e,t,n=!1){return n?e():t()}var U3=["fanIn","fanOut","fanAvg"],G3=["normal","uniform","truncatedNormal"];function H3(e){Ri(U3,"FanMode",e)}function j3(e){Ri(G3,"Distribution",e)}var ma=class extends re.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},kb=class extends ma{apply(e,t){return xt(e,t)}};kb.className="Zeros";re.registerClass(kb);var zh=class extends ma{apply(e,t){return Ka(e,t)}};zh.className="Ones";re.registerClass(zh);var Ib=class extends ma{constructor(e){super();if(typeof e!="object")throw new z(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new z(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return D(()=>L(pe(this.value),Ka(e,t)))}getConfig(){return{value:this.value}}};Ib.className="Constant";re.registerClass(Ib);var Tb=class extends ma{constructor(e){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return zl(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Tb.className="RandomUniform";re.registerClass(Tb);var Nb=class extends ma{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`randomNormal does not support dType ${t}.`);return Lh(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Nb.className="RandomNormal";re.registerClass(Nb);var Sb=class extends ma{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`truncatedNormal does not support dType ${t}.`);return kh(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Sb.className="TruncatedNormal";re.registerClass(Sb);var Cb=class extends ma{constructor(e){super();this.gain=e.gain!=null?e.gain:1}apply(e,t){return D(()=>{if(e.length!==2||e[0]!==e[1])throw new z("Identity matrix initializer can only be used for 2D square matrices.");return L(this.gain,zy(e[0]))})}getConfig(){return{gain:this.gain}}};Cb.className="Identity";re.registerClass(Cb);function q3(e,t="channelsLast"){let n,a;if(Dt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=rs(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=rs(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=rs(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var _n=class extends ma{constructor(e){super();if(e.scale<0)throw new z(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,H3(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,j3(this.distribution),this.seed=e.seed}apply(e,t){let n=q3(e),a=n[0],r=n[1],s=this.scale;if(this.mode==="fanIn"?s/=Math.max(1,a):this.mode==="fanOut"?s/=Math.max(1,r):s/=Math.max(1,(a+r)/2),this.distribution==="normal"){let i=Math.sqrt(s);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`${this.getClassName()} does not support dType ${t}.`);return kh(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return zl(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};_n.className="VarianceScaling";re.registerClass(_n);var Bh=class extends _n{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return _n.className}};Bh.className="GlorotUniform";re.registerClass(Bh);var Wh=class extends _n{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return _n.className}};Wh.className="GlorotNormal";re.registerClass(Wh);var Vh=class extends _n{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return _n.className}};Vh.className="HeNormal";re.registerClass(Vh);var Uh=class extends _n{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return _n.className}};Uh.className="HeUniform";re.registerClass(Uh);var Gh=class extends _n{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return _n.className}};Gh.className="LeCunNormal";re.registerClass(Gh);var Hh=class extends _n{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return _n.className}};Hh.className="LeCunNormal";re.registerClass(Hh);var _b=class extends ma{constructor(e){super();if(this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new $e("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return D(()=>{if(e.length<2)throw new $e("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);let n=e[0]>e[1]?[e[1],e[0]]:e,a=Lh(n,0,1,"float32"),r=jk.gramSchmidt(a);return e[0]>e[1]&&(r=r.transpose()),L(this.gain,r)})}getConfig(){return{gain:this.gain,seed:this.seed}}};_b.className="Orthogonal";re.registerClass(_b);var w1={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function k1(e,t={}){return Oc(e,re.SerializationMap.getMap().classNameMap,t,"initializer")}function Ct(e){return cb(e)}function vt(e){if(typeof e=="string"){let t=e in w1?w1[e]:e;if(t==="GlorotNormal")return new Wh;if(t==="GlorotUniform")return new Bh;if(t==="HeNormal")return new Vh;if(t==="HeUniform")return new Uh;if(t==="LeCunNormal")return new Gh;if(t==="LeCunUniform")return new Hh;{let n={};return n.className=t,n.config={},k1(n)}}else return e instanceof ma?e:k1(e)}function h3(){return new kb}function m3(){return new zh}function f3(e){return new Ib(e)}function g3(e){return new Tb(e)}function y3(e){return new Nb(e)}function b3(e){return new Sb(e)}function x3(e){return new Cb(e)}function v3(e){return new _n(e)}function w3(e){return new Bh(e)}function k3(e){return new Wh(e)}function I3(e){return new Vh(e)}function T3(e){return new Uh(e)}function N3(e){return new Gh(e)}function S3(e){return new Hh(e)}function C3(e){return new _b(e)}var I1={};Oe(I1,{Layer:()=>je,RNN:()=>er,RNNCell:()=>Gc,activation:()=>uz,add:()=>bz,alphaDropout:()=>tB,average:()=>xz,averagePooling1d:()=>Eb,averagePooling2d:()=>Fb,averagePooling3d:()=>Ab,avgPool1d:()=>_z,avgPool2d:()=>Fz,avgPool3d:()=>$z,avgPooling1d:()=>Ez,avgPooling2d:()=>Az,avgPooling3d:()=>Dz,batchNormalization:()=>Nz,bidirectional:()=>qz,concatenate:()=>vz,conv1d:()=>tz,conv2d:()=>nz,conv2dTranspose:()=>az,conv3d:()=>rz,convLstm2d:()=>Uz,convLstm2dCell:()=>Gz,cropping2D:()=>iz,dense:()=>cz,depthwiseConv2d:()=>lz,dot:()=>Tz,dropout:()=>pz,elu:()=>X3,embedding:()=>yz,flatten:()=>hz,gaussianDropout:()=>eB,gaussianNoise:()=>Zz,globalAveragePooling1d:()=>Rz,globalAveragePooling2d:()=>Mz,globalMaxPool1d:()=>Xz,globalMaxPool2d:()=>Yz,globalMaxPooling1d:()=>N1,globalMaxPooling2d:()=>S1,gru:()=>Oz,gruCell:()=>Lz,input:()=>T1,inputLayer:()=>K3,layerNormalization:()=>Sz,leakyReLU:()=>J3,lstm:()=>zz,lstmCell:()=>Bz,masking:()=>nB,maxPool1d:()=>Jz,maxPool2d:()=>Qz,maxPooling1d:()=>C1,maxPooling2d:()=>_1,maxPooling3d:()=>Pz,maximum:()=>wz,minimum:()=>kz,multiply:()=>Iz,permute:()=>gz,prelu:()=>Q3,reLU:()=>Y3,repeatVector:()=>mz,reshape:()=>fz,rnn:()=>Hz,separableConv2d:()=>sz,simpleRNN:()=>Wz,simpleRNNCell:()=>Vz,softmax:()=>Z3,spatialDropout1d:()=>dz,stackedRNNCells:()=>jz,thresholdedReLU:()=>ez,timeDistributed:()=>Kz,upSampling2d:()=>oz,zeroPadding2d:()=>Cz});var aB=0;function E1(){return aB++}var jh={};function qh(e=""){return e in jh||(jh[e]=0),jh[e]+=1,e+jh[e].toString()}function $b(e){return Array.isArray(e)&&Array.isArray(e[0])}function Kh(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function Me(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new z(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function ct(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new z(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function Xh(e){let t=0;for(let n of e)n.shape.length===0?t+=1:t+=n.shape.reduce((a,r)=>a*r);return t}var F1="Variable",A1=class{constructor(e,t="float32",n=F1,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=E1(),n=n==null?F1:n,this.originalName=f1(n),this.name=g1(this.originalName),this.trainable_=a,this.constraint=r,this.val=_k(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),rB(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}};function rB(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function Db(e){return e.map(t=>t.read())}function Rb(e){e.forEach(t=>{t[0].write(t[1])})}var Xt=class{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}},Fa=class{constructor(e,t,n,a,r,s,i){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=a,this.callArgs=r,this.outputTensorIndex=i,this.id=E1(),s!=null&&(this.originalName=f1(s),this.name=g1(this.originalName)),this.rank=t.length}},sB=0,Yh=class{constructor(e,t){this.callArgs=t,this.id=sB++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(let n of e.inboundLayers)n!=null&&n.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){let e=[];for(let t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},iB=0,je=class extends re.Serializable{constructor(e={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=iB++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){let n=this.getClassName();t=vr(n)+"_"+qh(n)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let n;if(e.batchInputShape!=null)n=e.batchInputShape;else if(e.inputShape!=null){let r=null;e.batchSize!=null&&(r=e.batchSize),n=[r].concat(e.inputShape)}this.batchInputShape=n;let a=e.dtype;a==null&&(a=e.inputDType),a==null&&(a="float32"),this.dtype=a}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new _a(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new z(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return Cn(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return Cn(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new xr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new xr(`Layer ${this.name} is not connected, no input to return.`);return Cn(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new xr(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new xr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return Cn(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=ft(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=ft(this.inputSpec);if(e.length!==t.length)throw new z(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let n=0;nr.maxNDim)throw new z(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${r.maxNDim}, found ndim=${s}`);if(r.minNDim!=null&&s=0?i[l]:i[i.length+l];if(c!=null&&[c,null].indexOf(u)===-1)throw new z(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${c} but got shape ${i}.`)}}if(r.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(e);let s=[];for(let i of ft(e))s.push(i.shape);this.build(Cn(s)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&r&&(this._refCount=1)}if(this.assertInputCompatibility(e),r){let s=this.call(e,t),i=ft(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=Cn(o),this.activityRegularizer!=null)throw new $e("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=oB(e),i=this.computeOutputShape(s),o,l=lB(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?s[0]:s),i!=null&&i.length>0&&Array.isArray(i[0])?o=i.map((c,u)=>new Fa(l,c,this,ft(e),t,this.name,u)):o=new Fa(l,i,this,ft(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new $e("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return o}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((n,a)=>{n!=null&&e[a]!=null&&e[a]!==n&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new xr(`The layer ${this.name} has never been called and thus has no defined output shape.`);let e=[];for(let t of this.inboundNodes){let n=JSON.stringify(t.outputShapes);e.indexOf(n)===-1&&e.push(n)}if(e.length===1){let t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new xr(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new _a(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Xh(this.weights)}build(e){this.built=!0}getWeights(e=!1){return Db(e?this.trainableWeights:this.weights)}setWeights(e){D(()=>{let t=this.weights;if(t.length!==e.length)throw new z(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;let n=[],a=Db(t);for(let r=0;rr.apply(l.read())),s==null&&(s=!0),s?this._trainableWeights.push(l):this._nonTrainableWeights.push(l),l}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=ft(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,n,a,r,s,i=null){let o=ft(e);t=ft(t),n=ft(n),a=ft(a),r=Kh(r),s=Kh(s);let l=[],c=[],u=[];for(let p of o)l.push(p.sourceLayer),c.push(p.nodeIndex),u.push(p.tensorIndex);new Yh({outboundLayer:this,inboundLayers:l,nodeIndices:c,tensorIndices:u,inputTensors:o,outputTensors:t,inputMasks:n,outputMasks:a,inputShapes:r,outputShapes:s},i);for(let p=0;pe.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount==0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}};function oB(e){e=ft(e);let t=[];for(let n of e)t.push(n.shape);return Cn(t)}function lB(e){return"float32"}function $1(e,t,n){if((t==null||n!=null&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),t.inboundNodes.length===0)return[e];{let a=t.inboundNodes[n];if(a.inboundLayers.length===0)return a.inputTensors;{let r=[];for(let s=0;s0){let r=await Promise.all(t);for(let s=0;sJ(this.totals[a],L(r,n)));this.totals[a]=i,s!=null&&s.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?t[n]=this.totals[n]/this.seen:D(()=>{let a=L(xe(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),jt(t[n])}))}},O1=class extends ql{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(let n in t)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(t[n])}async syncData(){let e=[],t=[],n=[];for(let r in this.history){let s=this.history[r];for(let i=0;inew L1(n,t))}var fa=class{constructor(){}static registerCallbackConstructor(e,t){w.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),fa.checkForDuplicate(t),fa.constructors[e]==null&&(fa.constructors[e]=[]),fa.constructors[e].push(t)}static checkForDuplicate(e){for(let t in fa.constructors)fa.constructors[+t].forEach(n=>{if(n===e)throw new z("Duplicate callback constructor.")})}static clear(){fa.constructors={}}static createCallbacks(e){let t=[];for(let n in fa.constructors){let a=+n;e>=a&&t.push(...fa.constructors[a])}return t.map(n=>new n)}};fa.constructors={};function B1(e,t,n,a,r,s,i,o,l){let c=new O1,u=[new cB,...fa.createCallbacks(t)];e!=null&&u.push(...e),u.push(c);let p=new P1(u);return p.setParams({epochs:n,initialEpoch:a,samples:r,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:p,history:c}}function Aa(e,t={},n=!1){return Oc(e,re.SerializationMap.getMap().classNameMap,t,"layer",n)}function Jh(e,t){return D(()=>{e.dtype!=="float32"&&(e=e.asType("float32"));let n=Se(Vc(e),t,!0),a=Sn(n.shape,Bt()),r=nn(qa(n,a));return xe(e,r)})}function Oi(e,t){return D(()=>St(Vc(me(t,e)),-1))}function Qh(e,t){return D(()=>St(Lt(me(t,e)),-1))}function Kl(e,t){return D(()=>{let n=me(e,t),a=qt(Lt(e),Bt(),Number.MAX_VALUE),r=Lt(xe(n,a));return L(100,St(r,-1))})}function pB(e,t){return D(()=>{let n=qt(t,Bt(),Number.MAX_VALUE),a=Pn(J(1,n)),r=qt(e,Bt(),Number.MAX_VALUE),s=Pn(J(1,r));return St(Vc(me(a,s)),-1)})}function dB(e,t){return D(()=>{let n=qa(0,me(1,L(e,t)));return St(Vc(n),-1)})}function hB(e,t){return D(()=>{let n=qa(0,me(1,L(e,t)));return St(n,-1)})}function mB(e,t){return D(()=>{let n=Se(L(e,t),-1),a=Zn(L(me(1,e),t),-1);return qa(0,J(1,me(a,n)))})}function fB(e,t){return D(()=>{let n=Math.log(2),a=me(t,e),r=me(J(a,Pl(L(-2,a))),n);return St(r,-1)})}function Hc(e,t,n=!1){return D(()=>{if(n)t=Ta(t);else{let a=Se(t,t.shape.length-1,!0);t=xe(t,a)}return t=qt(t,Bt(),1-Bt()),Nt(Se(L(e.toFloat(),Pn(t)),t.shape.length-1))})}function Zh(e,t,n=!1){return D(()=>{let a=Ml(L3(e)).toInt();t=qt(t,Bt(),1-Bt());let r=t.shape,s=Fl(a,r[r.length-1]).reshape(r);return Hc(s,t,n)})}function gB(e,t){if(!w.arraysEqual(e.shape,t.shape))throw new z(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return D(()=>{let n=t.relu(),a=t.abs().neg();return n.sub(t.mul(e)).add(a.exp().log1p())})}function em(e,t){return D(()=>{let n;return n=qt(t,Bt(),1-Bt()),n=Pn(xe(n,me(1,n))),St(gB(e,n),-1)})}function yB(e,t){return D(()=>{let n=qt(e,Bt(),1),a=qt(t,Bt(),1);return Se(L(e,Pn(xe(n,a))),-1)})}function bB(e,t){return D(()=>{let n=Pn(J(Bt(),t));return St(me(t,L(e,n)),-1)})}function Mb(e,t){return D(()=>{let n=Jh(e,-1),a=Jh(t,-1),r=L(n,a);return Nt(Se(r,-1))})}var tm={meanSquaredError:Oi,meanAbsoluteError:Qh,meanAbsolutePercentageError:Kl,meanSquaredLogarithmicError:pB,squaredHinge:dB,hinge:hB,categoricalHinge:mB,logcosh:fB,categoricalCrossentropy:Hc,sparseCategoricalCrossentropy:Zh,binaryCrossentropy:em,kullbackLeiblerDivergence:yB,poisson:bB,cosineProximity:Mb};function Pb(e){if(typeof e=="string"){if(e in tm)return tm[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new z(t)}else return e}function Ob(e,t){return D(()=>{let n=L(.5,On(t)),a=Bc(pa(t,n),e.dtype);return St(Zr(e,a),-1)})}function Lb(e,t){return D(()=>Bc(Zr(Ic(e,-1),Ic(t,-1)),"float32"))}function W1(e,t){return D(()=>da(e.equal(1),t.equal(1)).sum().cast("float32"))}function xB(e,t){return D(()=>da(e.equal(1),t.equal(0)).sum().cast("float32"))}function vB(e,t){return D(()=>da(e.equal(0),t.equal(1)).sum().cast("float32"))}function V1(e,t){return D(()=>{let n=W1(e,t),a=vB(e,t),r=n.add(a);return Nn(pa(r,0),n.div(r),0).cast("float32")})}function wB(e,t){return D(()=>{let n=W1(e,t),a=xB(e,t),r=n.add(a);return Nn(pa(r,0),n.div(r),0).cast("float32")})}function U1(e,t){return em(e,t)}function G1(e,t){return e.rank===t.rank&&(e=e.squeeze([e.rank-1])),t=t.argMax(-1),t.dtype!==e.dtype&&(t=t.asType(e.dtype)),Zr(e,t).asType("float32")}var kB=Oi,IB=Oi,TB=Qh,NB=Qh,SB=Kl,CB=Kl,zb=Hc,_B=Mb,H1=Zh,nm={binaryAccuracy:Ob,categoricalAccuracy:Lb,precision:V1,categoricalCrossentropy:zb,sparseCategoricalCrossentropy:H1,mse:kB,MSE:IB,mae:TB,MAE:NB,mape:SB,MAPE:CB,cosine:_B};function EB(e){if(typeof e=="string"&&e in nm)return nm[e];if(typeof e!="string"&&e!=null)return e;throw new z(`Unknown metric ${e}`)}function am(e){if(Ja(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(tm))if(tm[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(nm))if(nm[n]===e){t=n;break}return t!==void 0?t:e.name}}function FB(e){let t={Adagrad:()=>Ai.adagrad(.01),Adadelta:()=>Ai.adadelta(1,.95,Bt()),Adam:()=>Ai.adam(.001,.9,.999,Bt()),Adamax:()=>Ai.adamax(.002,.9,.999,Bt(),0),RMSProp:()=>Ai.rmsprop(.001,.9,0,Bt()),SGD:()=>Ai.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new z(`Unknown Optimizer ${e}`)}var j1=1*1024*1024;function q1(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!Bb(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){let a=JSON.stringify(e);a.length>j1&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${a.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${j1}.`)}}function Bb(e){if(e===null)return!0;if(typeof e=="object")if(Object.getPrototypeOf(e)===Object.prototype){let t=Object.keys(e);for(let n of t)if(typeof n!="string"||!Bb(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!Bb(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function MB(e,t,n,a=console.log){let r=$B(e),s=["Layer (type)","Output shape","Param #"];r?(t=t||65,n=n||[.45,.85,1]):(t=t||98,n=n||[.33,.55,.67,1]),n[n.length-1]<=1&&(n=n.map(u=>Math.floor(t*u)));let i;if(!r){s.push("Receives inputs"),i=[];for(let u in e.nodesByDepth)i.push(...e.nodesByDepth[u])}a("_".repeat(t)),rm(s,n,a),a("=".repeat(t));let o=e.layers;for(let u=0;u1||r.length===1&&r[0].inboundLayers.length>1){t=!1;break}a.push(...r)}if(t)for(let r of e.layers){let s=!1;for(let i of r.inboundNodes)if(a.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function rm(e,t,n=console.log){let a="";for(let r=0;r0&&(a=a.slice(0,a.length-1)+" "),a+=e[r],a=a.slice(0,t[r]),a+=" ".repeat(t[r]-a.length);n(a)}function DB(e,t,n){let a;try{a=JSON.stringify(e.outputShape)}catch(o){a="multiple"}let r=e.name,s=e.getClassName(),i=[`${r} (${s})`,a,e.countParams().toString()];rm(i,t,n)}function RB(e,t,n,a){let r;try{r=JSON.stringify(e.outputShape)}catch(u){r="multiple"}let s=[];for(let u of e.inboundNodes)if(!(n!=null&&n.length>0&&n.indexOf(u)===-1))for(let p=0;pm.name),l=[],c=t.names();for(let m of o)c.indexOf(m)!==-1?l.push(t.getValue(m)):l.push(null);a!=null&&(a.maxNumTensors=-Infinity,a.minNumTensors=Infinity);let u=o.join(",")+"|"+t.names().join(","),p,d;if(Vb[u]==null){let m=OB(i,t);p=m.sorted,d=m.recipientCounts,Vb[u]=p,X1[u]=d}p=Vb[u],d={},r||Object.assign(d,X1[u]);let h=new Li(t);for(let m=0;ma.maxNumTensors&&(a.maxNumTensors=$),$0,()=>"Expected at least one fetch, got none");let n=[],a={};if(e.length===1){let r=Y1(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=Y1(s,t);for(let l of i)r.has(l.name)||(n.push(l),r.add(l.name));for(let l in o)a[l]==null&&(a[l]=new Set),o[l].forEach(c=>a[l].add(c))}}return{sorted:n,recipientCounts:zB(a)}}function zB(e){let t={};for(let n in e)t[n]=e[n].size;return t}function Y1(e,t){let n=new Set,a=[],r={};for(let o of t.names())n.add(o);let s=[],i=[];for(s.push(e);s.length>0;){let o=s[s.length-1];if(n.has(o.name)){s.pop();continue}let l=i[i.length-1]===s.length-1;if(o.inputs.length===0||l)s.pop(),a.push(o),n.add(o.name),l&&i.pop();else{i.push(s.length-1);for(let c of o.inputs)r[c.name]==null&&(r[c.name]=new Set),r[c.name].add(o.name),!n.has(c.name)&&s.push(c)}}return{sorted:a,recipientMap:r}}function LB(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;ay.name)}`);as(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(y=>y.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let y of this.outputs){let b=y.sourceLayer,x=y.nodeIndex,v=y.tensorIndex;this.outputLayers.push(b),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(v)}for(let y of this.inputs){let b=y.sourceLayer,x=y.nodeIndex,v=y.tensorIndex;Ja(x===0,"input layer has >1 nodes"),Ja(v===0,"input layer has >1 tensors"),this.inputLayers.push(b),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(v)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let y=0;yy.shape),this.internalOutputShapes=this.outputs.map(y=>y.shape);let t={},n={},a={},r={},s={},i=[],o=(y,b,x,v,N,T)=>{(v==null||N==null||T==null)&&(v=y.sourceLayer,N=y.nodeIndex,T=y.tensorIndex);let S=v.inboundNodes[N];if(x.indexOf(S)!==-1)throw new _a(`The tensor ${y.name} at layer "${v.name}" is part of a cycle.`);if(b.indexOf(S)!==-1)return;this.containerNodes.add(tr.nodeKey(v,N)),v.id in s||(s[v.id]=Object.keys(s).length),x.indexOf(S)===-1&&x.push(S);let A=S.inboundLayers.length;for(let $=0;$=0;)x.splice(x.indexOf(S),1);i.push(S)},l=[],c=[];for(let y of this.outputs)o(y,l,c);let u=i.slice().reverse();for(let y of u){n[y.id]=y,y.id in t||(t[y.id]=0);let b=t[y.id],x=a[y.outboundLayer.id]==null?0:a[y.outboundLayer.id];b=Math.max(b,x),a[y.outboundLayer.id]=b,r[y.outboundLayer.id]=y.outboundLayer,t[y.id]=b;for(let v=0;vparseInt(y,10)).sort(Ph);this.layers=[];for(let y of h){let b=d[y];b.sort((x,v)=>{let N=s[x.id],T=s[v.id];return NT?1:0});for(let x of b)x instanceof tr&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=d,h=Object.keys(p).map(y=>parseInt(y,10)).sort(Ph);let m=this.inputs.slice(),f=[];for(let y of h)for(let b of p[y]){let x=b.outboundLayer;if(x!=null){for(let v of b.inputTensors)if(m.indexOf(v)===-1)throw new _a(`Graph disconnected: cannot obtain value for tensor ${v} at layer "${x.name}". The following previous layers were accessed without issue: ${f}`);for(let v of b.outputTensors)m.push(v);f.push(x.name)}}this.nodesByDepth=p;let g=this.layers.map(y=>y.name);for(let y of g){let b=g.filter(x=>x===y).length;if(b!==1)throw new _a(`The name "${y}" is used ${b} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new Yh({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(y=>null),outputMasks:this.outputs.map(y=>null),inputShapes:this.inputs.map(y=>y.shape),outputShapes:this.outputs.map(y=>y.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount==0){for(let t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(let t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(n=>n.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new z("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(let t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.layers)t.push(...n.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){let n={},a=0;for(let s of this.layers)for(let i of s.weights){if(n[i.originalName]!=null)throw new z(`Duplicate weight name: ${i.originalName}`);n[i.originalName]=i,a++}let r=[];for(let s in e){let i=s;if(n[s]==null){let o=s.split("/");i=o.slice(0,-2).concat([o[o.length-1]]).join("/")}if(n[i]!=null)r.push([n[i],e[s]]);else if(t)throw new z(`Provided weight data has no target variable: ${s}`);delete n[i]}if(t){let s=[];for(let i in n)s.push(i);if(s.length>0)throw new z(`${s.length} of ${a} weights are not set: ${s}`)}Rb(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${sm}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=Wb(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return D(()=>{e=ft(e);let n=new Li;for(let a=0;a{e=ft(e);let n;return t==null?n=$i(null,e.length):n=ft(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=Kh(e);if(t.length!==this.inputLayers.length)throw new z(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let i=0;iparseInt(i,10)).sort(Ph);if(a.length>1)for(let i of a){let o=this.nodesByDepth[i];for(let l of o){let c=l.outboundLayer;if(this.inputLayers.map(m=>m.id).indexOf(c.id)!==-1)continue;let u=[];for(let m=0;mparseInt(o,10)).sort(Ph);for(let o of a){let l=this.nodesByDepth[o];for(let c of l){let u=c.outboundLayer,p=c.inputTensors,d=c.outputTensors,h=new Array;for(let m of p)m.id in n&&h.push(n[m.id]);if(h.length===p.length){let m={},f,g,y,b;if(c.callArgs!=null&&(m=c.callArgs),h.length===1){let[x,v]=h[0];m.mask==null&&(m.mask=v),y=ft(u.call(x,m)),b=ft(u.computeMask(x,v)),f=[x],g=[v]}else f=h.map(x=>x[0]),g=h.map(x=>x[1]),m.mask==null&&(m.mask=g),y=ft(u.call(f,m)),b=ft(u.computeMask(f,g));if(u.activityRegularizer)throw new $e("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let x=0;x{let e=[];for(let t of this.layers)for(let n=0;n0){let m=[];for(let f=0;f0&&f.apply(Cn(y),b)}function l(f){let g=f.name,y=Aa(f,t.customObjects!=null?t.customObjects:{});y.setFastWeightInitDuringBuild(a),r[g]=y,f.inboundNodes.forEach(b=>{if(!(b instanceof Array))throw new z(`Corrupted configuration, expected array for nodeData: ${b}`);i(y,b)})}let c=t.name,u=t.layers;for(let f of u)l(f);for(;!p3(s);)for(let f of u){let g=r[f.name];if(g.name in s){let y=s[g.name];delete s[g.name];for(let b of y)o(g,b)}}let p=[],d=[],h=t.inputLayers;for(let f of h){let g=f[0],y=f[1],b=f[2];Ja(g in r);let x=r[g].inboundNodes[y].outputTensors;p.push(x[b])}let m=t.outputLayers;for(let f of m){let g=f[0],y=f[1],b=f[2];Ja(g in r);let x=r[g].inboundNodes[y].outputTensors;d.push(x[b])}return new e({inputs:p,outputs:d,name:c})}get stateful(){if(this._stateful)throw new z("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let e of this.layers)if(e.stateful)return!0;return!1}resetStates(){D(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function BB(e,t,n){let a=t.length;if(e==null||Array.isArray(e)&&e.length===0)return t.map(r=>null);if(a===1)return Array.isArray(e)&&e.length===1?e:typeof e=="object"&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==a)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${a} outputs. Make sure a set of weights is provided for each model output.`);return e}else if(typeof e=="object"&&Object.keys(e).length>0&&typeof e[Object.keys(e)[0]]=="object"){let r=[];return t.forEach(s=>{s in e?r.push(e[s]):r.push(null)}),r}else throw new Error(`The model has multiple (${a}) outputs, so ${n} must be either an array with ${a} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}function J1(e,t){return BB(e,t,"classWeight")}async function Q1(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=D(()=>{if(e.shape.length===1)return e.clone();if(e.shape.length===2)if(e.shape[1]>1){let o=1;return e.argMax(o)}else{if(e.shape[1]===1)return e.reshape([e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await r.data());Ae(r);let i=[];return s.forEach(o=>{if(n[o]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${o} exists in the data but not in classWeight`);i.push(n[o])}),Qe(i,"float32")}else return null}function WB(e,t){return L(e,t)}var VB=32;function eI(e,t){let n,a,r=t;n=r.xs,a=r.ys,w.assert(n!=null&&a!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`);let s=Z1("input",e.inputNames,n),i=Z1("output",e.outputNames,a),o=s[0].shape[0];w.assert(s.length===e.inputs.length,()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`),w.assert(i.length===e.outputs.length,()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${e.inputNames[l]} has ${s[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${e.outputNames[l]} has ${i[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);return{xs:s,ys:i}}function Z1(e,t,n){if(n instanceof Ee)return[n];if(Array.isArray(n))return w.assert(n.length===t.length,()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`),n;{let a=[];for(let r of t){if(n[r]==null)throw new z(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function UB(e){if(e.length===3)throw new $e("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function HB(e,t,n){let a=n.batchesPerEpoch!=null;if(w.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),w.assert(n!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),w.assert(n.epochs!=null&&n.epochs>0&&Number.isInteger(n.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`),w.assert(!a||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`),w.assert(n.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{let r=n.validationData!=null,s,i;if(r)if(tI(n.validationData))w.assert(n.validationBatches==null||n.validationBatches>0&&Number.isInteger(n.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${n.validationBatches}`);else{let g=UB(n.validationData);s=g.xs,i=g.ys}let o=e.makeTrainFunction(),l=e.getDedupedMetricsNames(),c;r?c=l.slice().concat(l.map(g=>"val_"+g)):c=l.slice();let u=z1(n.callbacks,n.yieldEvery),p=n.verbose==null?1:n.verbose,{callbackList:d,history:h}=B1(u,p,n.epochs,null,null,GB(t,n),null,r,c);d.setModel(e),e.history=h,await d.onTrainBegin(),e.stopTraining_=!1;let m=n.initialEpoch==null?0:n.initialEpoch,f=await t.iterator();for(;m=n.batchesPerEpoch:x.done){if(r){let v;tI(n.validationData)?v=ft(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):v=ft(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?VB:n.validationBatchSize,verbose:0}));for(let N=0;N0)throw new $e("Verbose mode is not implemented yet.");w.assert(!a||n.batches>0&&Number.isInteger(n.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`);let i=jB(t)?t:await t.iterator(),o=0,l=0;for(;a?l{if(c.value){let{xs:u,ys:p}=eI(e,c.value),d=u.concat(p),h=D(()=>r(d));if(Ae(d),l===0)for(let f=0;fJ(s[f],L(m,g))),l>0&&Ae(y)}Ae(h),o+=m,++l}return s}),c.done){a&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${n.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let c=0;c0&&Number.isInteger(e),()=>`batchSize is required to be a positive integer, but got ${e}`)}function Kc(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>Pi(a,t,n-t)):Pi(e,t,n-t)}function Gb(e,t){return D(()=>e==null?null:Array.isArray(e)?e.map(n=>Gb(n,t)):x1(e,t.dtype==="int32"?t:t.toInt()))}function Hb(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}async function KB(e,t,n,a,r,s,i,o,l,c,u,p,d,h,m){r==null&&(r=32),s==null&&(s=1),u==null&&(u=!0),d==null&&(d=0);let f=!1;if(l!=null&&c!=null&&(f=!0),m!=null&&(f=!0,h==null))throw new z("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=e.checkNumSamples(n,r,h,"steps_per_epoch"),y;g!=null&&(y=Ea(0,g)),i==null&&(i=1);let{callbackList:b,history:x}=B1(o,i,s,d,g,h,r,f,p);b.setModel(e),e.history=x,await b.onTrainBegin(),e.stopTraining_=!1;for(let v=d;v{let R=S[A][0],B=S[A][1],V=Pi(T,R,B-R);$.batch=A,$.size=B-R;let W=Gb(n,V),G=t(W);for(let H=0;H0){if(m=!0,a.validationData.length===2)i=a.validationData[0],o=a.validationData[1];else throw a.validationData.length===3?new $e("validationData including sample weights is not supported yet."):new z(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${a.validationData} is invalid.`);let T=!0,S=await e.standardizeUserData(i,o,null,null,T,p);l=S[0],c=S[1],f=l.concat(c)}else if(a.validationSplit!=null&&a.validationSplit>0&&a.validationSplit<1){m=!0;let T=Math.floor(r[0].shape[0]*(1-a.validationSplit)),S=r[0].shape[0];l=Kc(r,T,S),r=Kc(r,0,T),c=Kc(s,T,S),s=Kc(s,0,T),f=l.concat(c)}else a.validationSteps!=null&&(m=!0);let g=r.concat(s).concat(u);e.checkTrainableWeightsConsistency();let y=e.makeTrainFunction(),b=e.getDedupedMetricsNames(),x,v;m?(e.makeTestFunction(),x=e.testFunction,v=b.slice().concat(b.map(T=>"val_"+T))):(x=null,f=[],v=b.slice());let N=z1(a.callbacks,a.yieldEvery);return await KB(e,y,g,b,p,a.epochs,a.verbose,N,x,f,a.shuffle,v,a.initialEpoch,null,null)}finally{e.isTraining=!1,zi(r,t),zi(s,n),zi(l,i),zi(c,o),u!=null&&Ae(u)}}function nI(e){let t=[];e instanceof Ee&&(e=[e]);for(let n=0;nn.push(r.id));else if(t!=null)for(let r in t){let s=t[r];n.push(s.id)}let a=[];if(e instanceof Ee)n.indexOf(e.id)===-1&&a.push(e);else if(Array.isArray(e))e.forEach(r=>{n.indexOf(r.id)===-1&&a.push(r)});else if(e!=null)for(let r in e){let s=e[r];n.indexOf(s.id)===-1&&a.push(s)}a.forEach(r=>{r.isDisposed||r.dispose()})}function YB(e){return e instanceof Ee}function jb(e){return Array.isArray(e)}function aI(e){return!YB(e)&&!jb(e)}function rI(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(jb(e)&&e.length>0)i=!0;else if(aI(e)){for(let o in e)if(e.hasOwnProperty(o)){i=!0;break}}else i=!0;if(i)throw new z(`Error when checking model ${r} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(i=>null);let s;if(aI(e)){e=e,s=[];for(let i of t){if(e[i]==null)throw new z(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(e[i])}}else if(jb(e)){if(e=e,e.length!==t.length)throw new z(`Error when checking model ${r}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);s=e}else{if(e=e,t.length>1)throw new z(`The model ${r} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=nI(s),n!=null)for(let i=0;i=0&&c!==u)throw new z(`Error when checking ${r}: expected ${t[i]} to have shape [${n[i]}], but got array with shape [${o.shape}].`)}}return s}function JB(e,t,n){let a=as(e.map(s=>s.shape[0]));a.sort();let r=as(t.map(s=>s.shape[0]));if(r.sort(),a.length>1)throw new z(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(s=>s.shape))}`);if(r.length>1)throw new z(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(a.length>0&&r.length>0&&!w.arraysEqual(a,r))throw new z(`Input Tensors should have the same number of samples as target Tensors. Found ${a[0]} input sample(s) and ${r[0]} target sample(s).`)}function QB(e,t,n){let a=[Oi,em,Hc];for(let r=0;r1)throw new z(`The model expects ${t.length} ${r} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);s=[e]}if(n!=null)for(let i=0;i[]);let n;if(typeof e=="string"||typeof e=="function")n=[e];else if(Array.isArray(e)||typeof e=="object")n=e;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);if(Array.isArray(n))return t.map(a=>n);{let a=[];for(let r of t){let s=n.hasOwnProperty(r)?n[r]:[];Array.isArray(s)||(s=[s]),a.push(s)}return a}}var eW="layers-model",wr=class extends tr{constructor(e){super(e);this.isTraining=!1}summary(e,t,n=console.log){if(!this.built)throw new z("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");MB(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=FB(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof br))throw new z("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(let s in e.loss)if(this.outputNames.indexOf(s)===-1)throw new z(`Unknown entry in loss dictionary: "${s}". Only expected the following keys: ${this.outputNames}`);for(let s of this.outputNames)e.loss[s]==null&&console.warn(`Output "${s}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${s} during training`),t.push(Pb(e.loss[s]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new z(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);t=e.loss.map(s=>Pb(s))}else{let s=Pb(e.loss);this.outputs.forEach(i=>{t.push(s)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let s=0;s{for(let s=0;s1&&(this.metricsTensors.push([i,s]),this.metricsNames.push(this.outputNames[s]+"_loss"))}});let a=ZB(e.metrics,this.outputNames),r=(s,i,o)=>{this.outputNames.length>1&&(i=this.outputNames[s]+"_"+i),this.metricsNames.push(i),this.metricsTensors.push([o,s])};Mi("metric",()=>{for(let s=0;s{let l="",c,u,p;for(let d of o){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){let m=this.internalOutputShapes[s];m[m.length-1]===1||this.lossFunctions[s]===em?["accuracy","acc"].indexOf(d)!==-1?u=Ob:["crossentropy","ce"].indexOf(d)!==-1&&(u=U1):this.lossFunctions[s]===Zh?["accuracy","acc"].indexOf(d)!==-1?u=G1:["crossentropy","ce"].indexOf(d)!==-1&&(u=H1):["accuracy","acc"].indexOf(d)!==-1?u=Lb:["crossentropy","ce"].indexOf(d)!==-1&&(u=zb);let f;["accuracy","acc"].indexOf(d)!==-1?f="acc":["crossentropy","ce"].indexOf(d)!==-1&&(f="ce"),p=u,c=l+f}else p=EB(d),c=l+am(d);let h;Mi(c,()=>{h=p}),r(s,c,h)}})(i)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,n={}){let a=n.batchSize==null?32:n.batchSize;Ub(a);let r=!0,s=this.standardizeUserDataXY(e,t,r,a);try{let i=s[0].concat(s[1]);this.makeTestFunction();let o=this.testFunction,l=this.testLoop(o,i,a,n.verbose,n.steps);return Cn(l)}finally{zi(s[0],e),zi(s[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),qB(this,e,t)}checkNumSamples(e,t,n,a="steps"){let r;if(n!=null){if(r=null,t!=null)throw new z(`If ${a} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?r=e[0].shape[0]:r=e.shape[0];else throw new z(`Either the input data should have a defined shape, or ${a} shoud be specified.`);return r}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new z("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(t),a=n?t:[t],r=this.retrieveSymbolicTensors(a),s=new Li;if(e instanceof Ee&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new z(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let o=0;oi.name);for(let i=0;i0){let a=[];throw t.forEach((r,s)=>{r==null&&a.push(e[s])}),new z(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(a)}`)}return t}predictLoop(e,t=32,n=!1){return D(()=>{let a=this.checkNumSamples(e);if(n)throw new $e("Verbose predictLoop() is not implemented yet.");let r=Hb(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],c=Kc(e,o,l),u=[];if(Array.isArray(c))for(let d=0;ds[l].push(o));return Cn(s.map(i=>Je(i,0)))})}predict(e,t={}){let n=nI(e);sI(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return Ub(a),this.predictLoop(n,a)}finally{zi(n,e)}}predictOnBatch(e){sI(e,this.inputNames,this.feedInputShapes,!0);let t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,a){if(this.optimizer_==null)throw new _a("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let r=[];for(let s=0;s0&&e[0].shape[0]%a!=0)throw new z(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${a}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,a,r=!0,s){let[i,o]=this.standardizeUserDataXY(e,t,r,s);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(a!=null){let c=J1(a,this.outputNames);l=[];for(let u=0;u{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new $e("Verbose mode is not implemented yet.");if(r!=null)throw new $e("steps mode in testLoop() is not implemented yet");{let o=Hb(s,n),l=Qe(Ea(0,s));for(let c=0;c1&&(r+=`_${i1(e.slice(0,n),a)}`),t.push(r)}return t}makeTrainFunction(){return e=>{let t=[],n=e.slice(0,this.inputs.length),a=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),s=[],i=()=>{let c=[];for(let h=0;h1&&h{d=J(d,h)}),d},o=this.collectedTrainableWeights.map(c=>c.read()),l=!0;return[this.optimizer_.minimize(i,l,o)].concat(s)}}makeTestFunction(){this.testFunction=e=>D(()=>{let t=[],n,a=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=[];for(let l=0;lvr(t))}else{let t=Object.keys(this.loss);e={};let n=this.loss;for(let a of t)if(typeof n[a]=="string")e[a]=vr(n[a]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[vr(am(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>vr(am(e)));{let e={};for(let t in this.metrics)e[t]=vr(am(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let t=jc(e.optimizer_config),n=Aa(t),a;if(typeof e.loss=="string")a=Di(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Di(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Di(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Di(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Di(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=Ht.getSaveHandlers(e);if(i.length===0)throw new z(`Cannot find any save handlers for URL '${e}'`);if(i.length>1)throw new z(`Found more than one (${i.length}) save handlers for URL '${e}'`);e=i[0]}if(e.save==null)throw new z("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await Ht.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:eW,generatedBy:`TensorFlow.js tfjs-layers v${sm}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await Ht.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=Ht.concatenateArrayBuffers([n.data,o])}if(this.userDefinedMetadata!=null){let i=!0;q1(this.userDefinedMetadata,this.name,i),s.userDefinedMetadata=this.userDefinedMetadata}return s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){q1(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};wr.className="Model";re.registerClass(wr);var iI=class extends wr{};iI.className="Functional";re.registerClass(iI);async function tW(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=jc(n),r=Aa(a,t);if(e.weightsManifest!=null){let s=await Ht.loadWeights(e.weightsManifest,e.pathPrefix,r.weights.map(o=>o.originalName)),i={};for(let o of r.weights)i[o.originalName]=s[o.originalName];r.loadWeights(i),Ae(s)}return r}async function aW(e,t){if(t==null&&(t={}),typeof e=="string"){let n=Ht.getLoadHandlers(e,t);if(n.length===0)n.push(Ht.browserHTTPRequest(e,t));else if(n.length>1)throw new z(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return nW(e,void 0,t)}async function nW(e,t,n){if(n==null&&(n={}),e.load==null)throw new z("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let a=await e.load(),r=a.modelTopology;r.model_config!=null&&(r=r.model_config);let s=n.strict==null?!0:n.strict,i=a.weightData!=null&&a.weightSpecs!=null&&s,o=Aa(jc(r),t,i),l=a.trainingConfig;if(l!=null&&o.loadTrainingConfig(l),a.userDefinedMetadata!=null&&o.setUserDefinedMetadata(a.userDefinedMetadata),a.weightData!=null){if(a.weightSpecs==null)throw new z("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:c,optimizerWeights:u}=rW(a.weightData,a.weightSpecs);o.loadWeights(c,s),o.optimizer!=null&&u.length>0&&await o.optimizer.setWeights(u),Ae(c),Ae(u.map(p=>p.tensor))}return o}function rW(e,t){let n=Ht.decodeWeights(e,t),a={},r=[];return t.forEach(s=>{s.group==="optimizer"?r.push({name:s.name,tensor:n[s.name]}):a[s.name]=n[s.name]}),{modelWeights:a,optimizerWeights:r}}var Xl=class extends wr{constructor(e){super({inputs:[],outputs:[]});if(e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:qh("sequential_"),e.layers!=null)for(let t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(t=>t<0))throw new z(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof Xl||e instanceof wr,n;if(t){if(n=e,n.outputs.length!==1)throw new z("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(n.inputs.length!==1)throw new z("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new z("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let a=D1({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(a)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(e.inboundNodes.length!==1)throw new z(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new z("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=$1(this.outputs[0])}this.inboundNodes=[],new Yh({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:$i(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(a=>a.shape),outputShapes:this.outputs[0].shape})}else{let a=e.apply(this.outputs[0]);if(Array.isArray(a))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[a],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(ct(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new wr({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,n=console.log){this.built||this.build(),super.summary(e,t,n)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new _a("The model needs to be compiled before being used.");return this.model.evaluate(e,t,n)}async evaluateDataset(e,t){if(!this.built)throw new _a("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new _a("The model needs to be compiled before being used.");return this.model.fit(e,t,n)}async fitDataset(e,t){if(!this.built)throw new _a("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,n={},a=!1){let r,s={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new z("Legacy serialization format not supported yet.");r=t}else w.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),r=t.layers,delete t.layers,s=t;let i=new e(s);if(!(i instanceof Xl))throw new $e(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let o of r){let l=Aa(o,void 0,a);a&&l.setFastWeightInitDuringBuild(!0),i.add(l)}return i}set stopTraining(e){if(this.model==null)throw new z("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new z("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let e=[];for(let t of this.layers){let n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}};Xl.className="Sequential";re.registerClass(Xl);function sW(e){return new wr(e)}function iW(e){return new Xl(e)}function oW(e,t){return t==null&&(t={}),aW(e,t)}function T1(e){return D1(e)}function lW(e,t){fa.registerCallbackConstructor(e,t)}var Bn=class extends re.Serializable{getConfig(){return{}}},oI=class extends Bn{apply(e,t=1){return B3(e,t)}};oI.className="elu";re.registerClass(oI);var lI=class extends Bn{apply(e){return gh(e)}};lI.className="selu";re.registerClass(lI);var uI=class extends Bn{apply(e){return qe(e)}};uI.className="relu";re.registerClass(uI);var cI=class extends Bn{apply(e){return D(()=>Ll(6,qe(e)))}};cI.className="relu6";re.registerClass(cI);var pI=class extends Bn{apply(e){return e}};pI.className="linear";re.registerClass(pI);var dI=class extends Bn{apply(e){return ca(e)}};dI.className="sigmoid";re.registerClass(dI);var hI=class extends Bn{apply(e){return V3(e)}};hI.className="hardSigmoid";re.registerClass(hI);var mI=class extends Bn{apply(e){return Pl(e)}};mI.className="softplus";re.registerClass(mI);var fI=class extends Bn{apply(e){return W3(e)}};fI.className="softsign";re.registerClass(fI);var gI=class extends Bn{apply(e){return Dl(e)}};gI.className="tanh";re.registerClass(gI);var qb=class extends Bn{apply(e,t=-1){return Ta(e,t)}};qb.className="softmax";re.registerClass(qb);var yI=class extends Bn{apply(e,t=-1){return uh(e,t)}};yI.className="logSoftmax";re.registerClass(yI);var bI=class extends Bn{apply(e,t=1){return D(()=>ca(e.mul(t)).mul(e))}};bI.className="swish";re.registerClass(bI);function os(e){return e.getClassName()}function Kb(e,t={}){return Oc(e,re.SerializationMap.getMap().classNameMap,t,"activation")}function ls(e){if(e==null){let t={};return t.className="linear",t.config={},Kb(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},Kb(t)}else return e instanceof Bn?e:Kb(e)}function Xb(e){if(e!=null&&typeof e!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}var xI=class extends re.Serializable{},Xc=class extends xI{constructor(e){super();Xb(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return D(()=>{let t=xt([1]);return this.hasL1&&(t=J(t,Se(L(this.l1,Lt(e))))),this.hasL2&&(t=J(t,Se(L(this.l2,Vc(e))))),t.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};Xc.className="L1L2";re.registerClass(Xc);function uW(e){return Xb(e),new Xc({l1:e!=null?e.l1:null,l2:0})}function cW(e){return Xb(e),new Xc({l2:e!=null?e.l2:null,l1:0})}var vI={l1l2:"L1L2"};function pt(e){return cb(e)}function wI(e,t={}){return Oc(e,re.SerializationMap.getMap().classNameMap,t,"regularizer")}function wt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in vI?vI[e]:e,config:{}};return wI(t)}else return e instanceof xI?e:wI(e)}var Yb=class extends je{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Me(e);let n=qe(e);return this.maxValue!=null&&(n=qt(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};Yb.className="ReLU";re.registerClass(Yb);var Jb=class extends je{constructor(e){super(e==null?{}:e);this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){let n=Me(e);return _c(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};Jb.className="LeakyReLU";re.registerClass(Jb);var Qb=class extends je{constructor(e){super(e==null?{}:e);if(this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=vt(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=wt(e.alphaRegularizer),this.alphaConstraint=Vt(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new z(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=ct(e);let t=e.slice(1);if(this.sharedAxes!=null)for(let a of this.sharedAxes)t[a-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let a=1;a(Dt(t),t==="channelsFirst"?Ve(e,[0,2,3,1]):e))}function kI(e,t){return D(()=>(Dt(t),t==="channelsFirst"?Ve(e,[0,2,3,4,1]):e))}function pW(e,t,n,a=1,r="valid",s,i=1){return D(()=>{if(s==null&&(s=Ca()),Dt(s),e.shape.length!==3)throw new z(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new z(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(n!=null&&n.shape.length!==1)throw new z(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(e=Ve(e,[0,2,1])),r==="causal")throw new $e("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=th(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=Za(o,n)),o})}function II(e,t,n,a=[1,1],r="valid",s,i,o=null){return D(()=>{if(s==null&&(s=Ca()),Dt(s),e.rank!==3&&e.rank!==4)throw new z(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new z(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=nx(e,s);if(r==="causal")throw new $e("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=ns.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=Ve(l,[0,3,1,2])),l})}function dW(e,t,n,a=[1,1,1],r="valid",s,i){return D(()=>{if(s==null&&(s=Ca()),Dt(s),e.rank!==4&&e.rank!==5)throw new z(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new z(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=kI(e,s);if(r==="causal")throw new $e("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=Dy(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=Za(o,n)),s==="channelsFirst"&&(o=Ve(o,[0,4,1,2,3])),o})}var ax=class extends je{constructor(e,t){super(t);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",ax.verifyArgs(t),this.rank=e,Kt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new $e(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Yl(t.kernelSize,e,"kernelSize"),this.strides=Yl(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,ta(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Dt(this.dataFormat),this.activation=ls(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=vt(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Vt(t.biasConstraint),this.biasRegularizer=wt(t.biasRegularizer),this.activityRegularizer=wt(t.activityRegularizer),this.dilationRate=Yl(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new z(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new z(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new z(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(Ja("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!db(e.kernelSize,"number",1,3))throw new z(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){let e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:os(this.activation),useBias:this.useBias,biasInitializer:Ct(this.biasInitializer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),biasConstraint:Wt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},Yc=class extends ax{constructor(e,t){super(e,t);this.kernel=null,Yc.verifyArgs(t),this.filters=t.filters,Kt(this.filters,"filters"),this.kernelInitializer=vt(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Vt(t.kernelConstraint),this.kernelRegularizer=wt(t.kernelRegularizer)}build(e){e=ct(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new z(`The channel dimension of the input should be defined. Found ${e[t]}`);let n=e[t],a=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:n}}],this.built=!0}call(e,t){return D(()=>{e=Me(e);let n,a=this.bias==null?null:this.bias.read(),r=l1(this.activation.getClassName());if(r!=null&&this.rank===2)n=II(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=pW(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=II(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=dW(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new $e("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=ct(e);let t=[],n=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let r=0;r 0 but got ${JSON.stringify(e.filters)}`)}},Jc=class extends Yc{constructor(e){super(2,e);Jc.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!db(e.kernelSize,"number",1,2))throw new z(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};Jc.className="Conv2D";re.registerClass(Jc);var om=class extends Yc{constructor(e){super(3,e);om.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};om.className="Conv3D";re.registerClass(om);var rx=class extends Jc{constructor(e){super(e);if(this.inputSpec=[new Xt({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new z(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=ct(e),e.length!==4)throw new z("Input should have rank 4; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new z("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new Xt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return D(()=>{let n=Me(e);if(n.shape.length!==4)throw new z(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i;this.dataFormat==="channelsFirst"?(s=2,i=3):(s=1,i=2);let o=a[s],l=a[i],c=this.kernelSize[0],u=this.kernelSize[1],p=this.strides[0],d=this.strides[1],h=im(o,p,c,this.padding),m=im(l,d,u,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=Ve(n,[0,2,3,1]));let g=nh(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=Ve(g,[0,3,1,2])),this.bias!=null&&(g=Za(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=ct(e);let t=e.slice(),n,a,r;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3):(n=3,a=1,r=2);let s=this.kernelSize[0],i=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[a]=im(t[a],o,s,this.padding),t[r]=im(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};rx.className="Conv2DTranspose";re.registerClass(rx);var TI=class extends Yc{constructor(e,t){super(e,t);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new z("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new z("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new z(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=vt(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=wt(t.depthwiseRegularizer),this.depthwiseConstraint=Vt(t.depthwiseConstraint),this.pointwiseInitializer=vt(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=wt(t.pointwiseRegularizer),this.pointwiseConstraint=Vt(t.pointwiseConstraint)}build(e){if(e=ct(e),e.length{e=Me(e);let n;if(this.rank===1)throw new $e("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=Ve(e,[0,2,3,1])),n=Ei(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=Za(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ve(n,[0,3,1,2])),n})}getConfig(){let e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.pointwiseInitializer=Ct(this.pointwiseInitializer),e.depthwiseRegularizer=pt(this.depthwiseRegularizer),e.pointwiseRegularizer=pt(this.pointwiseRegularizer),e.depthwiseConstraint=Wt(this.depthwiseConstraint),e.pointwiseConstraint=Wt(this.pointwiseConstraint),e}};TI.className="SeparableConv";var sx=class extends TI{constructor(e){super(2,e)}};sx.className="SeparableConv2D";re.registerClass(sx);var lm=class extends Yc{constructor(e){super(1,e);lm.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){let e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!db(e.kernelSize,"number",1,1))throw new z(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};lm.className="Conv1D";re.registerClass(lm);var ix=class extends je{constructor(e){super(e);typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return D(()=>{if(e=Me(e),this.dataFormat==="channelsLast"){let n=Oh(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Oh(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Oh(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Oh(n,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};ix.className="Cropping2D";re.registerClass(ix);var ox=class extends je{constructor(e){super(e);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,D3(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){let t=e[2]==null?null:this.size[0]*e[2],n=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,n]}else{let t=e[1]==null?null:this.size[0]*e[1],n=e[2]==null?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return D(()=>{let n=Me(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=Ve(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?n.resizeNearestNeighbor([r,s]):n.resizeBilinear([r,s]);return Ve(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?n.resizeNearestNeighbor([r,s]):n.resizeBilinear([r,s])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};ox.className="UpSampling2D";re.registerClass(ox);function hW(e,t,n=[1,1],a="valid",r,s){return D(()=>{r==null&&(r=Ca()),Dt(r);let i=nx(e,r);if(e.rank!==4)throw new z(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new z(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Qr(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=Ve(i,[0,3,1,2])),i})}var lx=class extends ax{constructor(e){super(2,e);this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=vt(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Vt(e.depthwiseConstraint),this.depthwiseRegularizer=wt(e.depthwiseRegularizer)}build(e){if(e=ct(e),e.length<4)throw new z(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);let t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new z(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);let n=e[t],a=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",a,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return D(()=>{e=Me(e);let n=hW(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=Za(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=ct(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,r=$a(t,this.kernelSize[0],this.padding,this.strides[0]),s=$a(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],a,r,s]:[e[0],r,s,a]}getConfig(){let e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.depthwiseRegularizer=pt(this.depthwiseRegularizer),e.depthwiseConstraint=Wt(this.depthwiseRegularizer),e}};lx.className="DepthwiseConv2D";re.registerClass(lx);function NI(e,t,n,a){if(Array.isArray(e)){if(t!=null||n!=null)throw new z("When inputs is an array, neither initialState or constants should be provided");a!=null&&(n=e.slice(e.length-a,e.length),e=e.slice(0,e.length-a)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function r(s){return s==null||Array.isArray(s)?s:[s]}return t=r(t),n=r(n),{inputs:e,initialState:t,constants:n}}function SI(e,t,n,a=!1,r,s,i=!1,o=!1){return D(()=>{let l=t.shape.length;if(l<3)throw new z(`Input should be at least 3D, but is ${l}D.`);let c=[1,0].concat(Ea(2,l));if(t=Ve(t,c),s!=null)throw new $e("The rnn() functoin of the deeplearn.js backend does not support constants yet.");i&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),r!=null&&(r=r.asType("bool").asType("float32"),r.rank===l-1&&(r=Mn(r,-1)),r=Ve(r,c)),a&&(t=Ln(t,0),r!=null&&(r=Ln(r,0)));let u=[],p,d=n,h=t.shape[0],m=ut(t),f;r!=null&&(f=ut(r));for(let y=0;ye(b,d));if(r==null)p=x[0],d=x[1];else{let v=D(()=>{let N=f[y],T=On(N).sub(N),S=x[0].mul(N).add(d[0].mul(T)),A=d.map(($,R)=>x[1][R].mul(N).add($.mul(T)));return{output:S,newStates:A}});p=v.output,d=v.newStates}o&&u.push(p)}let g;return o&&(g=$t(u,1)),[p,g,d]})}var er=class extends je{constructor(e){super(e);let t;if(e.cell==null)throw new z("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new um({cells:e.cell}):t=e.cell,t.stateSize==null)throw new z("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new Xt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Ea(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){$b(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);let n=t[0],a;if(this.returnSequences?a=[e[0],e[1],n]:a=[e[0],n],this.returnState){let r=[];for(let s of t)r.push([e[0],s]);return[a].concat(r)}else return a}computeMask(e,t){return D(()=>{Array.isArray(t)&&(t=t[0]);let n=this.returnSequences?t:null;if(this.returnState){let a=this.states.map(r=>null);return[n].concat(a)}else return n})}get states(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ni.shape[i.shape.length-1]),s))throw new z(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=s.map(i=>new Xt({shape:[null,i]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){D(()=>{if(!this.stateful)throw new xr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new z("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>xt([n,a])):this.states_=[xt([n,this.cell.stateSize])];else if(e==null)Ae(this.states_),this.keptStates!=null&&(Ae(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>xt([n,a])):this.states_[0]=xt([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):Ae(this.states_);for(let a=0;ajt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=NI(e,n,a,this.numConstants);e=r.inputs,n=r.initialState,a=r.constants;let s=[],i=[];if(n!=null){t.initialState=n,s=s.concat(n),this.stateSpec=[];for(let o of n)this.stateSpec.push(new Xt({shape:o.shape}));i=i.concat(this.stateSpec)}if(a!=null&&(t.constants=a,s=s.concat(a),this.numConstants=a.length),s[0]instanceof Fa){let o=[e].concat(s),l=this.inputSpec.concat(i),c=this.inputSpec;this.inputSpec=l;let u=super.apply(o,t);return this.inputSpec=c,u}else return super.apply(e,t)}call(e,t){return D(()=>{let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;e=Me(e),r==null&&(this.stateful?r=this.states_:r=this.getInitialState(e));let s=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(r.length!==s)throw new z(`RNN Layer has ${s} state(s) but was passed ${r.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let i={training:a},o=SI((d,h)=>{let m=this.cell.call([d].concat(h),i);return[m[0],m.slice(1)]},e,r,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],c=o[1],u=o[2];this.stateful&&this.resetStates(u,a);let p=this.returnSequences?c:l;return this.returnState?[p].concat(u):p})}getInitialState(e){return D(()=>{let t=xt(e.shape);return t=Se(t,[1,2]),t=Wc(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?bb(t,[1,n]):t):this.cell.stateSize>1?[bb(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){let e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===er.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,e,t)}static fromConfig(e,t,n={}){let a=t.cell,r=Aa(a,n);return new e(Object.assign(t,{cell:r}))}};er.className="RNN";re.registerClass(er);var Gc=class extends je{},cm=class extends Gc{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Kt(this.units,"units"),this.activation=ls(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=vt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=vt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=vt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=wt(e.kernelRegularizer),this.recurrentRegularizer=wt(e.recurrentRegularizer),this.biasRegularizer=wt(e.biasRegularizer),this.kernelConstraint=Vt(e.kernelConstraint),this.recurrentConstraint=Vt(e.recurrentConstraint),this.biasConstraint=Vt(e.biasConstraint),this.dropout=Hl([1,ss([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Hl([1,ss([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=ct(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return D(()=>{if(e=e,e.length!==2)throw new z(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];let a=t.training==null?!1:t.training;0On(e),rate:this.dropout,training:a})),0On(n),rate:this.recurrentDropout,training:a}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=Qa(L(e,s),this.kernel.read()):r=Qa(e,this.kernel.read()),this.bias!=null&&(r=Za(r,this.bias.read())),i!=null&&(n=L(n,i));let o=J(r,Qa(n,this.recurrentKernel.read()));return this.activation!=null&&(o=this.activation.apply(o)),[o,o]})}getConfig(){let e=super.getConfig(),t={units:this.units,activation:os(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),recurrentInitializer:Ct(this.recurrentInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:pt(this.kernelRegularizer),recurrentRegularizer:pt(this.recurrentRegularizer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),kernelConstraint:Wt(this.kernelConstraint),recurrentConstraint:Wt(this.recurrentConstraint),biasConstraint:Wt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}};cm.className="SimpleRNNCell";re.registerClass(cm);var ux=class extends er{constructor(e){e.cell=new cm(e),super(e)}call(e,t){return D(()=>{this.cell.dropoutMask!=null&&(Ae(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ae(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return new e(t)}};ux.className="SimpleRNN";re.registerClass(ux);var pm=class extends Gc{constructor(e){super(e);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new z("GRUCell does not support reset_after parameter set to true.");this.units=e.units,Kt(this.units,"units"),this.activation=ls(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ls(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=vt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=vt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=vt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=wt(e.kernelRegularizer),this.recurrentRegularizer=wt(e.recurrentRegularizer),this.biasRegularizer=wt(e.biasRegularizer),this.kernelConstraint=Vt(e.kernelConstraint),this.recurrentConstraint=Vt(e.recurrentConstraint),this.biasConstraint=Vt(e.biasConstraint),this.dropout=Hl([1,ss([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Hl([1,ss([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=ct(e);let t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return D(()=>{if(e=e,e.length!==2)throw new z(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training==null?!1:t.training,a=e[1];e=e[0],0On(e),rate:this.dropout,training:n,count:3})),0On(a),rate:this.recurrentDropout,training:n,count:3}));let r=this.dropoutMask,s=this.recurrentDropoutMask,i,o,l;0{this.cell.dropoutMask!=null&&(Ae(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ae(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};cx.className="GRU";re.registerClass(cx);var Qc=class extends Gc{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Kt(this.units,"units"),this.activation=ls(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ls(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=vt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=vt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=vt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=wt(e.kernelRegularizer),this.recurrentRegularizer=wt(e.recurrentRegularizer),this.biasRegularizer=wt(e.biasRegularizer),this.kernelConstraint=Vt(e.kernelConstraint),this.recurrentConstraint=Vt(e.recurrentConstraint),this.biasConstraint=Vt(e.biasConstraint),this.dropout=Hl([1,ss([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Hl([1,ss([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=ct(e);let n=e[e.length-1];this.kernel=this.addWeight("kernel",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let a;if(this.useBias){if(this.unitForgetBias){let r=this.biasInitializer,s=this.units;a=new(t=class extends ma{apply(i,o){let l=r.apply([s]),c=new zh().apply([s]),u=r.apply([s*2]);return b1(b1(l,c),u)}},t.className="CustomInit",t)}else a=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,a,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return D(()=>{let n=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new z(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let a=e[1],r=e[2];e=e[0],0On(e),rate:this.dropout,training:n,count:4})),0On(a),rate:this.recurrentDropout,training:n,count:4}));let s=this.dropoutMask,i=this.recurrentDropoutMask,o,l,c,u;0{this.cell.dropoutMask!=null&&(Ae(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ae(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};px.className="LSTM";re.registerClass(px);var um=class extends Gc{constructor(e){super(e);this.cells=e.cells}get stateSize(){let e=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return D(()=>{e=e;let n=e.slice(1),a=[];for(let i of this.cells.slice().reverse())Array.isArray(i.stateSize)?a.push(n.splice(0,i.stateSize.length)):a.push(n.splice(0,1));a.reverse();let r=[],s;for(let i=0;i{Mi(`RNNCell_${a}`,()=>{n.build(e),Array.isArray(n.stateSize)?t=n.stateSize[0]:t=n.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){let e=super.getConfig(),t=a=>({className:a.getClassName(),config:a.getConfig()}),n={cells:this.cells.map(t)};return Object.assign({},e,n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push(Aa(r,n));return new e({cells:a})}get trainableWeights(){if(!this.trainable)return[];let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.cells)t.push(...n.trainableWeights);return t.concat(e)}return e}getWeights(){let e=[];for(let t of this.cells)e.push(...t.weights);return Db(e)}setWeights(e){let t=[];for(let n of this.cells){let a=n.weights.length,r=e.splice(a);for(let s=0;sv1(t(),n),i=()=>Uc(s,t,a);return!r||r<=1?jt(i().clone()):Array(r).fill(void 0).map(i).map(o=>jt(o.clone()))}var mW=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,a=Object.getOwnPropertySymbols(e);r{if(this.cell.dropoutMask!=null&&(Ae(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ae(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new z("ConvRNN2D cell does not support constants");let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return D(()=>{let{stateSize:t}=this.cell,n=e.shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)],s=xt(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){D(()=>{if(!this.stateful)throw new xr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)];if(n[0]==null)throw new z("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>xt(r)):this.states_=[xt(r)];else if(e==null)Ae(this.states_),this.keptStates!=null&&(Ae(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>xt(r)):this.states_[0]=xt(r);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):Ae(this.states_);for(let s=0;sjt(s.clone()))})}computeSingleOutputShape(e){let{dataFormat:t,filters:n,kernelSize:a,padding:r,strides:s,dilationRate:i}=this.cell,o=t==="channelsFirst",l=e[o?3:2],c=e[o?4:3],u=$a(l,a[0],r,s[0],i[0]),p=$a(c,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,u,p]:[u,p,n]]}};CI.className="ConvRNN2D";var dm=class extends Qc{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign({},e,{units:t}));this.filters=t,Kt(this.filters,"filters"),this.kernelSize=Yl(n,2,"kernelSize"),this.kernelSize.forEach(o=>Kt(o,"kernelSize")),this.strides=Yl(a||1,2,"strides"),this.strides.forEach(o=>Kt(o,"strides")),this.padding=r||"valid",ta(this.padding),this.dataFormat=s||"channelsLast",Dt(this.dataFormat),this.dilationRate=Yl(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>Kt(o,"dilationRate"))}build(e){var t;e=ct(e);let n=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[n]==null)throw new z(`The channel dimension of the input should be defined. Found ${e[n]}`);let a=e[n],r=4,s=this.kernelSize.concat([a,this.filters*r]);this.kernel=this.addWeight("kernel",s,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let i=this.kernelSize.concat([this.filters,this.filters*r]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let o;if(this.unitForgetBias){let l=this.biasInitializer,c=this.filters;o=new(t=class extends ma{apply(u,p){let d=l.apply([c]),h=Ka([c]),m=l.apply([c*2]);return vb([d,h,m])}},t.className="CustomInit",t)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*r],null,o,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return D(()=>{if(e.length!==3)throw new z(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training||!1,a=e[0],r=e[1],s=e[2],i=4;0On(a),rate:this.dropout,training:n,count:i}));let o=this.dropoutMask,l=(Q,se,ne)=>!se||!se[ne]?Q:L(se[ne],Q),c=l(a,o,0),u=l(a,o,1),p=l(a,o,2),d=l(a,o,3);0On(r),rate:this.recurrentDropout,training:n,count:i}));let h=this.recurrentDropoutMask,m=l(r,h,0),f=l(r,h,1),g=l(r,h,2),y=l(r,h,3),b=3,[x,v,N,T]=zn(this.kernel.read(),i,b),[S,A,$,R]=this.useBias?zn(this.bias.read(),i):[null,null,null,null];c=this.inputConv(c,x,S,this.padding),u=this.inputConv(u,v,A,this.padding),p=this.inputConv(p,N,$,this.padding),d=this.inputConv(d,T,R,this.padding);let[B,V,W,G]=zn(this.recurrentKernel.read(),i,b);m=this.recurrentConv(m,B),f=this.recurrentConv(f,V),g=this.recurrentConv(g,W),y=this.recurrentConv(y,G);let H=this.recurrentActivation.apply(J(c,m)),X=this.recurrentActivation.apply(J(u,f)),q=J(L(X,s),L(H,this.activation.apply(J(p,g)))),te=L(this.recurrentActivation.apply(J(d,y)),this.activation.apply(q));return[te,te,q]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=mW(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},n,a)}inputConv(e,t,n,a){let r=Ft(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?Za(r,n,this.dataFormat):r}recurrentConv(e,t){return Ft(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};dm.className="ConvLSTM2DCell";re.registerClass(dm);var dx=class extends CI{constructor(e){let t=new dm(e);super(Object.assign({},e,{cell:t}))}static fromConfig(e,t){return new e(t)}};dx.className="ConvLSTM2D";re.registerClass(dx);var hm=class extends je{constructor(e){super(e);this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;let t=e.shape,n=[];for(let a=0;a{this.invokeCallHook(e,t);let n=Me(e);if(0v1(n,this.rate,r,this.seed),()=>n,a)}return e})}getConfig(){let e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}};hm.className="Dropout";re.registerClass(hm);var hx=class extends hm{constructor(e){super(e);this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};hx.className="SpatialDropout1D";re.registerClass(hx);var mx=class extends je{constructor(e){super(e);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,Kt(this.units,"units"),this.activation=ls(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=vt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=vt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Vt(e.kernelConstraint),this.biasConstraint=Vt(e.biasConstraint),this.kernelRegularizer=wt(e.kernelRegularizer),this.biasRegularizer=wt(e.biasRegularizer),this.activityRegularizer=wt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=ct(e);let t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=ct(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e),a=l1(this.activation.getClassName()),r;return a!=null?r=Qa(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=Qa(n,this.kernel.read()),this.bias!=null&&(r=Za(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:os(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:pt(this.kernelRegularizer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),kernelConstraint:Wt(this.kernelConstraint),biasConstraint:Wt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};mx.className="Dense";re.registerClass(mx);var fx=class extends je{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=ct(e);for(let t of e.slice(1))if(t==null)throw new z(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],rs(e,1)]}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Me(e);return this.activation.apply(n)})}getConfig(){let e={activation:os(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};gx.className="Activation";re.registerClass(gx);var yx=class extends je{constructor(e){super(e);this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return D(()=>(e=Me(e),O3(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};yx.className="RepeatVector";re.registerClass(yx);var bx=class extends je{constructor(e){super(e);this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Me(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return n.reshape(r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};bx.className="Reshape";re.registerClass(bx);var xx=class extends je{constructor(e){super(e);if(e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);let t=Ea(1,e.dims.length+1);if(!w.arraysEqual(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new Xt({ndim:this.dims.length+1})]}computeOutputShape(e){e=ct(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return Ve(Me(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};xx.className="Permute";re.registerClass(xx);var vx=class extends je{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){let n=Me(e),a=-1;return kc(_i(n,this.maskValue),a)}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e),a=-1,r=!0,s=kc(_i(n,this.maskValue),a,r);return n.mul(s.asType(n.dtype))})}};vx.className="Masking";re.registerClass(vx);var wx=class extends je{constructor(e){super(e);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(ft(e.inputLength))}this.inputDim=e.inputDim,Kt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Kt(this.outputDim,"outputDim"),this.embeddingsInitializer=vt(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=wt(e.embeddingsRegularizer),this.activityRegularizer=wt(e.activityRegularizer),this.embeddingsConstraint=Vt(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return D(()=>this.maskZero?(e=Me(e),_i(e,Ge(e))):null)}computeOutputShape(e){if(e=ct(e),this.inputLength==null)return[...e,this.outputDim];let t=ft(this.inputLength);if(t.length!==e.length-1)throw new z(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let a=0;a{this.invokeCallHook(e,t);let n=Me(e);return n.dtype!=="int32"&&(n=Bc(n,"int32")),x1(this.embeddings.read(),n.as1D()).reshape(ct(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Ct(this.embeddingsInitializer),embeddingsRegularizer:pt(this.embeddingsRegularizer),activityRegularizer:pt(this.activityRegularizer),embeddingsConstraint:Wt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};wx.className="Embedding";re.registerClass(wx);var Bi=class extends je{constructor(e){super(e||{});this.supportsMasking=!0}mergeFunction(e){throw new $e}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new z(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=e[0]==null?null:e[0].slice(1);for(let r=1;rr.length);e.indexOf(null)===-1&&as(a).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return D(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=ss(a);for(let s of e){let i=s.rank;for(let o=0;o1){let c=Ea(1,l).concat([0]);n.push(Ve(o,c)),r=!0}else n.push(o)}let s=this.mergeFunction(n),i=s.rank;if(r){if(i==null){let o=s.shape,l=o.length,c=o[l-1],u=[c].concat(o.slice(0,o.length-1));s=Ve(s.reshape([-1,c]),[1,0]).reshape(u)}else if(i>1){let o=[i-1].concat(Ea(0,i-1));s=Ve(s,o)}}return s}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let a=1;a{if(t==null)return null;if(!Array.isArray(t))throw new z("`mask` should be an Array");if(!Array.isArray(e))throw new z("`inputs` should be an Array");if(t.length!==e.length)throw new z(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(a=>a==null))return null;t=t.map(a=>a==null?a:Mn(a,0));let n=t[0];for(let a=1;a{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0];for(let n=1;n{let t=e[0];for(let n=1;n1)throw new z("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return D(()=>vb(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new z("A `Concatenate` layer should be called on a list of inputs.");let t=e,n=t[0].slice(),a=this.axis<0?n.length+this.axis:this.axis;for(let r of t.slice(1)){if(n[a]==null||r[a]==null){n[a]=null;break}n[a]+=r[a]}return n}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new z("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new z("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new z(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return D(()=>{let n=!0;if(t.forEach(s=>{if(s!=null){n=!1;return}}),n)return null;let a=[];for(let s=0;s3||t.shape.length>3)throw new $e("batchDot is not implemented for tensors of 4D or higher rank yet");if(w.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),w.assert(e.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof n=="number"&&(n=[n,n]),e.dtype==="complex64"||t.dtype==="complex64")throw new $e("batchDot is not implemented for complex64-type Tensors yet.");let a=e.shape.length,r=t.shape.length;n==null&&(n=[a-1,r-2]);let s=n;return D(()=>{let i;if(a>r){i=a-r;let l=[];for(let c=0;ca){i=r-a;let l=[];for(let c=0;c0){let l;a>r?l=a+r-3:l=a-1;let c=[];for(let u=l;u"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0],n=e[1];if(t.length>3||n.length>3)throw new $e("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);if(t[a[0]]!==n[a[1]])throw new z(`Dimension incompatibility: ${t[a[0]]} !== ${n[a[1]]}`)}mergeFunction(e){if(e.length!==2)throw new z(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],n=e[1],a;return Array.isArray(this.axes)?a=this.axes.map((r,s)=>Zc(r,e[s].shape.length)):a=[Zc(this.axes,t.shape.length),Zc(this.axes,n.shape.length)],this.normalize&&(t=Jh(t,a[0]),n=Jh(n,a[1])),fW(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[Zc(this.axes,e.length),Zc(this.axes,t.length)],n}computeOutputShape(e){w.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new $e("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);t.splice(a[0],1),n.splice(a[1],1),n.splice(0,1);let r=t.concat(n);return r.length===1&&r.push(1),r}computeMask(e,t){return null}getConfig(){let e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}};_x.className="Dot";re.registerClass(_x);var Ex=class extends je{constructor(e){super(e);this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e);return Uc(()=>Lh(n.shape,0,this.stddev).add(n),()=>n,t.training||!1)})}};Ex.className="GaussianNoise";re.registerClass(Ex);var Fx=class extends je{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e);return this.rate>0&&this.rate<1?Uc(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return n.mul(Lh(n.shape,1,a))},()=>n,t.training||!1):n})}};Fx.className="GaussianDropout";re.registerClass(Fx);var Ax=class extends je{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Me(e).shape}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return D(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return Uc(()=>{let a=Me(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=es(zl(n),this.rate);o=Bc(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,c=-l*i*this.rate;return a.mul(o).add(o.add(-1).mul(i)).mul(l).add(c)},()=>Me(e),t.training||!1)}return e})}};Ax.className="AlphaDropout";re.registerClass(Ax);function ep(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=nk(e,t,n,a,r,s);else if(e.rank===3)i=ak(e,t,n,a,r,s);else if(e.rank===4)i=rk(e,t,n,a,r,s);else throw new $e(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function gW(e,t,n,a,r=.001){return D(()=>{let s=ph(e,a),i=s.mean,o=s.variance;return[ep(e,i,o,n,t,r),i,o]})}function yW(e,t,n,a,r=.001){return D(()=>{let s=ph(e,a),i=s.mean,o=s.variance,l=[];for(let h of Ea(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let c=i.reshape(l),u=o.reshape(l),p=t==null?null:t.reshape(l),d=n==null?null:n.reshape(l);return[ep(e,c,u,d,p,r),i,o]})}function bW(e,t,n,a,r=.001){return w.arraysEqual(a.slice().sort(),Ea(0,e.rank-1))?gW(e,t,n,a,r):yW(e,t,n,a,r)}var $x=class extends je{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=vt(e.betaInitializer||"zeros"),this.gammaInitializer=vt(e.gammaInitializer||"ones"),this.movingMeanInitializer=vt(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=vt(e.movingVarianceInitializer||"ones"),this.betaConstraint=Vt(e.betaConstraint),this.gammaConstraint=Vt(e.gammaConstraint),this.betaRegularizer=wt(e.betaRegularizer),this.gammaRegularizer=wt(e.gammaRegularizer)}build(e){e=ct(e);let t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(n==null)throw new z(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new Xt({ndim:e.length,axes:{[t]:n}})];let a=[n];this.scale&&(this.gamma=this.addWeight("gamma",a,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",a,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",a,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",a,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return D(()=>{let n=t.training==null?!1:t.training,a=Me(e),r=a.shape,s=r.length,i=Ea(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=$i(1,s);l[o]=r[o];let c=i.slice();c.sort();let u=!w.arraysEqual(c,Ea(0,s).slice(0,s-1)),p=()=>{if(u){let g=this.movingMean.read().reshape(l),y=this.movingVariance.read().reshape(l),b=this.center?this.beta.read().reshape(l):null,x=this.scale?this.gamma.read().reshape(l):null;return ep(a,g,y,b,x,this.epsilon)}else return ep(a,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return p();let[d,h,m]=bW(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,y,b)=>{D(()=>{let x=1-b,v=g.read(),N=v.sub(y).mul(x);g.write(v.sub(N))})};return(()=>{f(this.movingMean,h,this.momentum),f(this.movingVariance,m,this.momentum)})(),d})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Ct(this.betaInitializer),gammaInitializer:Ct(this.gammaInitializer),movingMeanInitializer:Ct(this.movingMeanInitializer),movingVarianceInitializer:Ct(this.movingVarianceInitializer),betaRegularizer:pt(this.betaRegularizer),gammaRegularizer:pt(this.gammaRegularizer),betaConstraint:Wt(this.betaConstraint),gammaConstraint:Wt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};$x.className="BatchNormalization";re.registerClass($x);var Dx=class extends je{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=vt(e.betaInitializer||"zeros"),this.gammaInitializer=vt(e.gammaInitializer||"ones"),this.betaRegularizer=wt(e.betaRegularizer),this.gammaRegularizer=wt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=ct(e);let t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let r=0;r=t)throw new Error(`Invalid axis: ${r}`);if(this.axis.length!==as(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(r=>e[r]),a=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,a):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,a):this.beta=null,this.built=!0}call(e,t){let n=Me(e),a=n.shape,r=a.length;return D(()=>{let s=!0,{mean:i,variance:o}=ph(n,this.axis,s),l=$i(1,r);for(let m of this.axis)l[m]=a[m];let c=m=>m!=null&&m.shape.length!==r&&this.axis!==[r-1]?m.reshape(l):m,u=c(this.gamma.read()),p=c(this.beta.read()),d=[],h=[];for(let m=0;m{if(e.rank!==4)throw new z(`temporalPadding expects input tensor to be 4-D, but received a ${e.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new z("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(n==null&&(n=Ca()),n!=="channelsLast"&&n!=="channelsFirst")throw new z(`Unknown data format: ${n}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let a;return n==="channelsFirst"?a=[[0,0],[0,0],t[0],t[1]]:a=[[0,0],t[0],t[1],[0,0]],ea(e,a)})}var Rx=class extends je{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?Ca():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new z(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,n;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],n=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new z(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new z(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);n=e.padding[1]}this.padding=[t,n]}this.inputSpec=[new Xt({ndim:4})]}computeOutputShape(e){e=ct(e);let t,n;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?n=e[3]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],e[1],t,n]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?n=e[2]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],t,n,e[3]])}call(e,t){return D(()=>xW(Me(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Rx.className="ZeroPadding2D";re.registerClass(Rx);function mm(e,t,n,a,r,s){return D(()=>{Dt(r),d1(s),ta(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=Ca()),s==null&&(s="max"),e=nx(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=At(e,t,n,o):i=Qn(e,t,n,o),r==="channelsFirst"&&(i=Ve(i,[0,3,1,2])),i})}function _I(e,t,n,a,r,s){return D(()=>{Dt(r),d1(s),ta(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=Ca()),s==null&&(s="max"),e=kI(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Gy(e,t,n,o):i=Fy(e,t,n,o),r==="channelsFirst"&&(i=Ve(i,[0,4,1,2,3])),i})}var EI=class extends je{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new z(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(Kt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new z(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,ta(this.padding),this.inputSpec=[new Xt({ndim:3})]}computeOutputShape(e){e=ct(e);let t=$a(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return D(()=>{this.invokeCallHook(e,t),e=Wc(Me(e),2);let n=this.poolingFunction(Me(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return ts(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},Mx=class extends EI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),ta(a),mm(e,t,n,a,r,"max")}};Mx.className="MaxPooling1D";re.registerClass(Mx);var Px=class extends EI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),ta(a),mm(e,t,n,a,r,"avg")}};Px.className="AveragePooling1D";re.registerClass(Px);var FI=class extends je{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new z(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];Kt(this.poolSize,"poolSize"),Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),ta(this.padding),this.inputSpec=[new Xt({ndim:4})]}computeOutputShape(e){e=ct(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=$a(t,this.poolSize[0],this.padding,this.strides[0]),n=$a(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return D(()=>(this.invokeCallHook(e,t),this.poolingFunction(Me(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},Ox=class extends FI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),ta(a),mm(e,t,n,a,r,"max")}};Ox.className="MaxPooling2D";re.registerClass(Ox);var Lx=class extends FI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),ta(a),mm(e,t,n,a,r,"avg")}};Lx.className="AveragePooling2D";re.registerClass(Lx);var AI=class extends je{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new z(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];Kt(this.poolSize,"poolSize"),Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),ta(this.padding),this.inputSpec=[new Xt({ndim:5})]}computeOutputShape(e){e=ct(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=$a(t,this.poolSize[0],this.padding,this.strides[0]),n=$a(n,this.poolSize[1],this.padding,this.strides[1]),a=$a(a,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n,a]:[e[0],t,n,a,e[4]]}call(e,t){return D(()=>(this.invokeCallHook(e,t),this.poolingFunction(Me(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},zx=class extends AI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),ta(a),_I(e,t,n,a,r,"max")}};zx.className="MaxPooling3D";re.registerClass(zx);var Bx=class extends AI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),ta(a),_I(e,t,n,a,r,"avg")}};Bx.className="AveragePooling3D";re.registerClass(Bx);var $I=class extends je{constructor(e){super(e);this.inputSpec=[new Xt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new $e}},Wx=class extends $I{constructor(e){super(e||{})}call(e,t){return D(()=>{let n=Me(e);return St(n,1)})}};Wx.className="GlobalAveragePooling1D";re.registerClass(Wx);var Vx=class extends $I{constructor(e){super(e||{})}call(e,t){return D(()=>{let n=Me(e);return Zn(n,1)})}};Vx.className="GlobalMaxPooling1D";re.registerClass(Vx);var DI=class extends je{constructor(e){super(e);this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),this.inputSpec=[new Xt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new $e}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},Ux=class extends DI{call(e,t){return D(()=>{let n=Me(e);return this.dataFormat==="channelsLast"?St(n,[1,2]):St(n,[2,3])})}};Ux.className="GlobalAveragePooling2D";re.registerClass(Ux);var Gx=class extends DI{call(e,t){return D(()=>{let n=Me(e);return this.dataFormat==="channelsLast"?Zn(n,[1,2]):Zn(n,[2,3])})}};Gx.className="GlobalMaxPooling2D";re.registerClass(Gx);var RI=class extends je{constructor(e){super(e);this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){let e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){let a=t.layer,r=Aa(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},Hx=class extends RI{constructor(e){super(e);this.supportsMasking=!0}build(e){if(e=ct(e),e.length<3)throw new z(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];let t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=ct(e);let t=[e[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),a=e[1];return[n[0],a].concat(n.slice(1))}call(e,t){return D(()=>(e=Me(e),SI((n,a)=>[Me(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};Hx.className="TimeDistributed";re.registerClass(Hx);function vW(e){Ri($3,"BidirectionalMergeMode",e)}var wW="concat",jx=class extends RI{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Aa(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=Aa(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?wW:e.mergeMode,vW(this.mergeMode),e.weights)throw new $e("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){let t=e.length,n=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,n)),this.backwardLayer.setWeights(e.slice(n))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let n,a,r;return this.returnState&&(r=t.slice(1)),n=t[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,a=[n]):this.mergeMode==null?a=[n,n.slice()]:a=[n],this.returnState?this.mergeMode==null?a.concat(r).concat(r.slice()):[n].concat(r).concat(r.slice()):Cn(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=NI(e,n,a,this.numConstants);if(e=r.inputs,n=r.initialState,a=r.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(n==null||n.length===0)&&a==null)return super.apply(e,t);let s=[],i=[];if(n!=null){let l=n.length;if(l%2>0)throw new z("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=n,s.push(...n);let c=n.map(u=>new Xt({shape:u.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),i.push(...c)}if(a!=null)throw new $e("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof Fa;for(let l of s)if(l instanceof Fa!==o)throw new z("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){let l=[e].concat(s),c=this.inputSpec.concat(i),u=this.inputSpec;this.inputSpec=c;let p=super.apply(l,t);return this.inputSpec=u,p}else return super.apply(e,t)}call(e,t){return D(()=>{let n=t.initialState,a,r;if(n==null)a=this.forwardLayer.call(e,t),r=this.backwardLayer.call(e,t);else{let o=n.slice(0,n.length/2),l=n.slice(n.length/2);a=this.forwardLayer.call(e,Object.assign(t,{initialState:o})),r=this.backwardLayer.call(e,Object.assign(t,{initialState:l}))}let s;this.returnState&&(Array.isArray(a)&&(s=a.slice(1).concat(r.slice(1))),a=a[0],r=r[0]),this.returnSequences&&(r=Ln(r,1));let i;return this.mergeMode==="concat"?i=vb([a,r]):this.mergeMode==="sum"?i=J(a,r):this.mergeMode==="ave"?i=L(.5,J(a,r)):this.mergeMode==="mul"?i=L(a,r):this.mergeMode==null&&(i=[a,r]),this.returnState?this.mergeMode==null?i.concat(s):[i].concat(s):i})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Mi(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Mi(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[t,t]:n=t:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let a=this.forwardLayer.states.map(r=>null);return Array.isArray(n)?n.concat(a).concat(a):[n].concat(a).concat(a)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){let e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){let n=Aa(t.layer);if(delete t.layer,t.numConstants!=null)throw new $e("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};jx.className="Bidirectional";re.registerClass(jx);function K3(e){return new jl(e)}function X3(e){return new Zb(e)}function Y3(e){return new Yb(e)}function J3(e){return new Jb(e)}function Q3(e){return new Qb(e)}function Z3(e){return new tx(e)}function ez(e){return new ex(e)}function tz(e){return new lm(e)}function nz(e){return new Jc(e)}function az(e){return new rx(e)}function rz(e){return new om(e)}function sz(e){return new sx(e)}function iz(e){return new ix(e)}function oz(e){return new ox(e)}function lz(e){return new lx(e)}function uz(e){return new gx(e)}function cz(e){return new mx(e)}function pz(e){return new hm(e)}function dz(e){return new hx(e)}function hz(e){return new fx(e)}function mz(e){return new yx(e)}function fz(e){return new bx(e)}function gz(e){return new xx(e)}function yz(e){return new wx(e)}function bz(e){return new kx(e)}function xz(e){return new Tx(e)}function vz(e){return new Cx(e)}function wz(e){return new Nx(e)}function kz(e){return new Sx(e)}function Iz(e){return new Ix(e)}function Tz(e){return new _x(e)}function Nz(e){return new $x(e)}function Sz(e){return new Dx(e)}function Cz(e){return new Rx(e)}function Eb(e){return new Px(e)}function _z(e){return Eb(e)}function Ez(e){return Eb(e)}function Fb(e){return new Lx(e)}function Fz(e){return Fb(e)}function Az(e){return Fb(e)}function Ab(e){return new Bx(e)}function $z(e){return Ab(e)}function Dz(e){return Ab(e)}function Rz(e){return new Wx(e)}function Mz(e){return new Ux(e)}function N1(e){return new Vx(e)}function S1(e){return new Gx(e)}function C1(e){return new Mx(e)}function _1(e){return new Ox(e)}function Pz(e){return new zx(e)}function Oz(e){return new cx(e)}function Lz(e){return new pm(e)}function zz(e){return new px(e)}function Bz(e){return new Qc(e)}function Wz(e){return new ux(e)}function Vz(e){return new cm(e)}function Uz(e){return new dx(e)}function Gz(e){return new dm(e)}function Hz(e){return new er(e)}function jz(e){return new um(e)}function qz(e){return new jx(e)}function Kz(e){return new Hx(e)}var Xz=N1,Yz=S1,Jz=C1,Qz=_1;function Zz(e){return new Ex(e)}function eB(e){return new Fx(e)}function tB(e){return new Ax(e)}function nB(e){return new vx(e)}var MI={};Oe(MI,{MAPE:()=>$W,MSE:()=>MW,binaryAccuracy:()=>kW,binaryCrossentropy:()=>IW,categoricalAccuracy:()=>NW,categoricalCrossentropy:()=>SW,cosineProximity:()=>EW,mape:()=>DW,meanAbsoluteError:()=>FW,meanAbsolutePercentageError:()=>AW,meanSquaredError:()=>RW,mse:()=>PW,precision:()=>CW,recall:()=>_W,sparseCategoricalAccuracy:()=>TW});function kW(e,t){return Ob(e,t)}function IW(e,t){return U1(e,t)}function TW(e,t){return G1(e,t)}function NW(e,t){return Lb(e,t)}function SW(e,t){return zb(e,t)}function CW(e,t){return V1(e,t)}function _W(e,t){return wB(e,t)}function EW(e,t){return Mb(e,t)}function FW(e,t){return Qh(e,t)}function AW(e,t){return Kl(e,t)}function $W(e,t){return Kl(e,t)}function DW(e,t){return Kl(e,t)}function RW(e,t){return Oi(e,t)}function MW(e,t){return Oi(e,t)}function PW(e,t){return Oi(e,t)}var PI={};Oe(PI,{modelFromJSON:()=>tW});var OI={};Oe(OI,{l1:()=>LW,l1l2:()=>OW,l2:()=>zW});function OW(e){return new Xc(e)}function LW(e){return uW(e)}function zW(e){return cW(e)}var LI=class extends ql{constructor(){super(...arguments);this.model=null}setModel(e){if(!(e instanceof wr))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function fm(e,t){return et}var BI=class extends LI{constructor(e){super();if(e==null&&(e={}),e.restoreBestWeights)throw new $e("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(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=fm:this.mode==="max"?this.monitorFunc=zI:this.monitor.indexOf("acc")!==-1?this.monitorFunc=zI:this.monitorFunc=fm,this.monitorFunc===fm&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===fm?Infinity:-Infinity}async onEpochEnd(e,t){await is(t);let n=this.getMonitorValue(t);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0)))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){e==null&&(e={});let t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}};function BW(e){return new BI(e)}var WW={earlyStopping:BW},Da;(function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(Da||(Da={}));var WI;(function(e){let t;(function(n){n[n.LEGACY=0]="LEGACY",n[n.V1=1]="V1",n[n.V2=2]="V2"})(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))})(WI||(WI={}));var qx={};function VW(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};qx[e]=n}function VI(e){return qx[e]}function UW(e){delete qx[e]}function k(e,t,n,a,r){let s=t.inputParams[e];if(s&&s.inputIndexStart!==void 0){let o=s.inputIndexStart,l=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?o+1:s.inputIndexEnd;if(s.type==="tensor")return En(t.inputNames[s.inputIndexStart],n,a,r);if(s.type==="tensors")return t.inputNames.slice(o,l).map(p=>En(p,n,a,r));let c=En(t.inputNames.slice(o)[0],n,a,r),u=c.dataSync();return s.type==="number"?u[0]:w.toNestedArray(c.shape,u)}let i=t.attrParams[e];return i&&i.value}function En(e,t,n,a){let[r,s]=Wn(e);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[gm(r,o)]);return i!==void 0?t[gm(r,i)][s]:void 0}function GW(e,t,n){return t[gm(e,n.currentContextId)]}function kr(e,t){let[n,a]=Wn(e);return[gm(n,t&&t.currentContextId),a]}function gm(e,t){return t?`${e}-${t}`:e}function Wn(e){let t=e.split(":");return t.length===1?[e,0]:[t[0],Number(t[t.length-1])]}function ym(e,t,n){let a=k("pad",e,t,n);if(a==="explicit"){a=k("explicitPaddings",e,t,n);let r=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)r[s][0]=a[s*2],r[s][1]=a[s*2+1];return r}return a}function Ir(e){return e.kept?e:Xr(e)}var UI={};Oe(UI,{json:()=>HW});var HW=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],GI={};Oe(GI,{json:()=>jW});var jW=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],HI={};Oe(HI,{json:()=>qW});var qW=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}],jI={};Oe(jI,{json:()=>KW});var KW=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],qI={};Oe(qI,{json:()=>XW});var XW=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],KI={};Oe(KI,{json:()=>YW});var YW=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],XI={};Oe(XI,{json:()=>JW});var JW=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],YI={};Oe(YI,{json:()=>QW});var QW=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],JI={};Oe(JI,{json:()=>ZW});var ZW=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]}],QI={};Oe(QI,{json:()=>e4});var e4=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}],ZI={};Oe(ZI,{json:()=>t4});var t4=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],eT={};Oe(eT,{json:()=>n4});var n4=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],tT={};Oe(tT,{json:()=>a4});var a4=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],nT={};Oe(nT,{json:()=>r4});var r4=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],aT={};Oe(aT,{json:()=>s4});var s4=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],rT={};Oe(rT,{json:()=>i4});var i4=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],sT={};Oe(sT,{json:()=>o4});var o4=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}],oT=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[UI,GI,HI,jI,qI,KI,XI,ZI,QI,YI,eT,tT,nT,aT,rT,sT,JI],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}transformGraph(e,t={}){let n=e.node,a=[],r=[],s=[],i=n.reduce((m,f)=>(m[f.name]=this.mapNode(f),f.op.startsWith("Placeholder")?a.push(m[f.name]):f.op==="Const"?r.push(m[f.name]):(f.input==null||f.input.length===0)&&s.push(m[f.name]),m),{}),o=[],l=[],c={},u={};t!=null&&(c=this.mapSignatureEntries(t.inputs),u=this.mapSignatureEntries(t.outputs));let p=Object.keys(i);p.forEach(m=>{let f=i[m];f.inputNames.forEach(g=>{let[y]=kr(g);f.inputs.push(i[y]),i[y].children.push(f)})}),Object.keys(u).length===0?p.forEach(m=>{let f=i[m];f.children.length===0&&l.push(f)}):Object.keys(u).forEach(m=>{let[f]=kr(m),g=i[f];g!=null&&(g.signatureKey=u[m],l.push(g))}),Object.keys(c).length>0?Object.keys(c).forEach(m=>{let[f]=kr(m),g=i[f];g&&(g.signatureKey=c[m],o.push(g))}):o=a;let d={};e.library!=null&&e.library.function!=null&&(d=e.library.function.reduce((m,f)=>(m[f.signature.name]=this.mapFunction(f),m),{}));let h={nodes:i,inputs:o,outputs:l,weights:r,placeholders:a,signature:t,functions:d};return s.length>0&&(h.initNodes=s),h}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,n)=>(t[e[n].name]=n,t),{})}mapNode(e){let t=VI(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});let n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(a=>a.startsWith("^")?a.substr(1):a),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return t.inputs!=null&&(n.inputParams=t.inputs.reduce((a,r)=>(a[r.name]={type:r.type,inputIndexStart:r.start,inputIndexEnd:r.end},a),{})),t.attrs!=null&&(n.attrParams=t.attrs.reduce((a,r)=>{let s=r.type,i;switch(r.type){case"string":i=Kx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Kx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=nv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=nv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=Yx(e.attr,r.tfName,r.defaultValue||0),i===void 0&&!!r.tfDeprecatedName&&(i=Yx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=tv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=tv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=Xx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Xx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=rv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=rv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=ev(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ev(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=av(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=av(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=Qx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Qx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=Zx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Zx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=iT(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=iT(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${r.type} for op: ${e.op}`)}return a[r.name]={value:i,type:s},a},{})),n}mapFunction(e){let t=e.nodeDef,n=[],a=[],r={};t!=null&&(r=t.reduce((c,u)=>(c[u.name]=this.mapNode(u),u.op==="Const"&&a.push(c[u.name]),c),{}));let s=[],i=[];e.signature.inputArg.forEach(c=>{let[u]=kr(c.name),p={name:u,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:Jx(c.type),type:"dtype"}},children:[]};p.signatureKey=c.name,s.push(p),r[u]=p}),Object.keys(r).forEach(c=>{let u=r[c];u.inputNames.forEach(p=>{let[d]=kr(p);u.inputs.push(r[d]),r[d].children.push(u)})});let o=e.ret;e.signature.outputArg.forEach(c=>{let[u,p]=kr(o[c.name]),d=r[u];d!=null&&(d.defaultOutput=p,i.push(d))});let l=this.mapArgsToSignature(e);return{nodes:r,inputs:s,outputs:i,weights:a,placeholders:n,signature:l}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n),t),{}),outputs:e.signature.outputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t),{})}}mapArgToTensorInfo(e,t){let n=e.name;return t!=null&&(n=t[n]),{name:n,dtype:e.type}}};function l4(e){let t=ee().global;if(typeof t.atob!="undefined")return t.atob(e);if(typeof Buffer!="undefined")return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function lT(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):l4(e);return t?n:n.toLowerCase()}function Kx(e,t,n,a=!1){let r=e[t];return r!=null?lT(r.s,a):n}function Xx(e,t,n){let a=e[t];return a?a.b:n}function Yx(e,t,n){let a=e[t]||{},r=a.i!=null?a.i:a.f!=null?a.f:n;return typeof r=="number"?r:parseInt(r,10)}function Jx(e){switch(typeof e=="string"&&(e=Da[e]),e){case Da.DT_FLOAT:return"float32";case Da.DT_INT32:case Da.DT_INT64:case Da.DT_INT8:case Da.DT_UINT8:return"int32";case Da.DT_BOOL:return"bool";case Da.DT_DOUBLE:return"float32";case Da.DT_STRING:return"string";default:return null}}function iT(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function Qx(e,t,n){let a=e[t];return a&&a.type?Jx(a.type):n}function Zx(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>Jx(r)):n}function uT(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function ev(e,t,n){let a=e[t];return a&&a.shape?uT(a.shape):n}function tv(e,t,n){let a=e[t];return a?((a.list.f&&a.list.f.length?a.list.f:a.list.i)||[]).map(r=>typeof r=="number"?r:parseInt(r,10)):n}function nv(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>lT(s,a)):n}function av(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>uT(r)):n}function rv(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var u4=class{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(a=>this.getInput(a)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((a,r)=>(a[r]=this.getAttr(r),a),{}))}getInput(e){return En(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return En(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Yx(this.node.rawAttrs,e,t);if(n.s!=null)return Kx(this.node.rawAttrs,e,t);if(n.b!=null)return Xx(this.node.rawAttrs,e,t);if(n.shape!=null)return ev(this.node.rawAttrs,e,t);if(n.type!=null)return Qx(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return tv(this.node.rawAttrs,e,t);if(n.list.s!=null)return nv(this.node.rawAttrs,e,t);if(n.list.shape!=null)return av(this.node.rawAttrs,e,t);if(n.list.b!=null)return rv(this.node.rawAttrs,e,t);if(n.list.type!=null)return Zx(this.node.rawAttrs,e,t)}return t}},c4=(e,t,n)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[J(k("a",e,t,n),k("b",e,t,n))];case"AddN":return[Q0(k("tensors",e,t,n))];case"FloorMod":case"Mod":return[jy(k("a",e,t,n),k("b",e,t,n))];case"Mul":return[L(k("a",e,t,n),k("b",e,t,n))];case"RealDiv":case"Div":return[xe(k("a",e,t,n),k("b",e,t,n))];case"DivNoNan":return[Py(k("a",e,t,n),k("b",e,t,n))];case"FloorDiv":return[Qd(k("a",e,t,n),k("b",e,t,n))];case"Sub":return[me(k("a",e,t,n),k("b",e,t,n))];case"Minimum":return[Ll(k("a",e,t,n),k("b",e,t,n))];case"Maximum":return[qa(k("a",e,t,n),k("b",e,t,n))];case"Pow":return[gr(k("a",e,t,n),k("b",e,t,n))];case"SquaredDifference":return[wh(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},p4=(e,t,n)=>{switch(e.op){case"Abs":case"ComplexAbs":return[Lt(k("x",e,t,n))];case"Acos":return[vy(k("x",e,t,n))];case"Acosh":return[wy(k("x",e,t,n))];case"Asin":return[Iy(k("x",e,t,n))];case"Asinh":return[Ty(k("x",e,t,n))];case"Atan":return[Ny(k("x",e,t,n))];case"Atan2":return[Sy(k("x",e,t,n),k("y",e,t,n))];case"Atanh":return[Cy(k("x",e,t,n))];case"Ceil":return[Ay(k("x",e,t,n))];case"Complex":return[jr(k("real",e,t,n),k("imag",e,t,n))];case"Cos":return[Cc(k("x",e,t,n))];case"Cosh":return[ah(k("x",e,t,n))];case"Elu":return[Rl(k("x",e,t,n))];case"Erf":return[Oy(k("x",e,t,n))];case"Exp":return[dn(k("x",e,t,n))];case"Expm1":return[Ly(k("x",e,t,n))];case"Floor":return[Ml(k("x",e,t,n))];case"Log":return[Pn(k("x",e,t,n))];case"Log1p":return[oh(k("x",e,t,n))];case"Imag":return[sh(k("x",e,t,n))];case"Neg":return[Nt(k("x",e,t,n))];case"Reciprocal":return[Xy(k("x",e,t,n))];case"Real":return[$c(k("x",e,t,n))];case"Relu":return[qe(k("x",e,t,n))];case"Round":return[Yy(k("x",e,t,n))];case"Selu":return[gh(k("x",e,t,n))];case"Sigmoid":return[ca(k("x",e,t,n))];case"Sin":return[yh(k("x",e,t,n))];case"Sign":return[Jy(k("x",e,t,n))];case"Sinh":return[bh(k("x",e,t,n))];case"Softplus":return[Pl(k("x",e,t,n))];case"Sqrt":return[nn(k("x",e,t,n))];case"Square":return[ot(k("x",e,t,n))];case"Tanh":return[Dl(k("x",e,t,n))];case"Tan":return[eb(k("x",e,t,n))];case"ClipByValue":return[qt(k("x",e,t,n),k("clipValueMin",e,t,n),k("clipValueMax",e,t,n))];case"Relu6":return[mh(k("x",e,t,n))];case"Rsqrt":return[fh(En(e.inputNames[0],t,n))];case"Prod":return[dh(k("x",e,t,n),k("axes",e,t,n))];case"LeakyRelu":return[_c(k("x",e,t,n),k("alpha",e,t,n))];case"Prelu":return[Ac(k("x",e,t,n),k("alpha",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function ga(e,t,n=""){if(!(typeof e=="number"||typeof t=="number")){w.assert(e.length===t.length,()=>n+` Shapes ${e} and ${t} must match`);for(let a=0;an+` Shapes ${e} and ${t} must match`)}}}function cT(e){return!(typeof e=="number"||e.some(t=>t<0))}function tp(e,t,n){let a=sv(e,n),r=!cT(a);if(r&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${a}`);if(r&&t.forEach(s=>{a=sv(s.shape,a)}),!cT(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function sv(e,t){if(typeof e=="number")return t;if(typeof t=="number")return e;if(e.length!==t.length)throw new Error(`Incompatible ranks during merge: ${e} vs. ${t}`);let n=[];for(let a=0;a=0&&s>=0&&r!==s)throw new Error(`Incompatible shape during merge: ${e} vs. ${t}`);n[a]=r>=0?r:s}return n}var d4=class{constructor(e,t,n,a,r,s,i){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=a,this.identicalElementShapes=r,this.dynamicSize=s,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=pe(0),jt(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.tensor.id))&&t.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);let t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(t=>this.read(t))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, - because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),ga(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);n.tensor=t,jt(t),n.written=!0,this.tensors[e]=n}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach((n,a)=>this.write(n,t[a]))}gather(e,t){if(!!t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let a=0;a=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(e,ut(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let n=0,a=e.map(o=>(n+=o,n));if(n!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to +2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){let u={};for(let h of Object.keys(ha))u[h]=ha[h];for(let h of Object.keys(n))u[h]=n[h];let c=s.config;c.customObjects=u;let p=Object.assign({},ha);for(let h of Object.keys(n))ha[h]=n[h];db(s.config);let d=l(o,s.config,n,r);return ha=Object.assign({},p),d}else{let u=Object.assign({},ha);for(let p of Object.keys(n))ha[p]=n[p];let c=new o(s.config);return ha=Object.assign({},u),c}}}function P3(e,t){return et?1:0}function Oh(e,t){return-1*P3(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 O3(e){if(e==null)throw new V(`Invalid value in obj: ${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function Mi(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new V(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function hb(e,t,n=0,a=Infinity){return Ja(n>=0),Ja(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function Kt(e,t){Array.isArray(e)?(I.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>Kt(n,`element ${a+1} of ${t}`))):I.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${uk(e)}.`)}function uk(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>uk(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function L3(e,t){let n=I.now(),a;return(...r)=>{let s=I.now();return s-nan(Se(B(e,e),t,!0)))}var zc=class extends re.Serializable{getConfig(){return{}}},fb=class extends zc{constructor(e){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return M(()=>{let t=mb(e,this.axis),n=Xt(t,0,this.maxValue);return B(e,xe(n,J(Bt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};fb.className="MaxNorm";re.registerClass(fb);var gb=class extends zc{constructor(e){super();this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return M(()=>xe(e,J(Bt(),mb(e,this.axis))))}getConfig(){return{axis:this.axis}}};gb.className="UnitNorm";re.registerClass(gb);var yb=class extends zc{apply(e){return qe(e)}};yb.className="NonNeg";re.registerClass(yb);var bb=class extends zc{constructor(e){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return M(()=>{let t=mb(e,this.axis),n=J(B(this.rate,Xt(t,this.minValue,this.maxValue)),B(1-this.rate,t));return B(e,xe(n,J(Bt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};bb.className="MinMaxNorm";re.registerClass(bb);var pk={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Vt(e){return pb(e)}function dk(e,t={}){return Lc(e,re.SerializationMap.getMap().classNameMap,t,"constraint")}function Ut(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in pk?pk[e]:e,config:{}};return dk(t)}else return e instanceof zc?e:dk(e)}function $3(e){return new fb(e)}function D3(e){return new gb(e)}function M3(){return new yb}function R3(e){return new bb(e)}var hk={};Oe(hk,{constant:()=>B3,glorotNormal:()=>X3,glorotUniform:()=>q3,heNormal:()=>K3,heUniform:()=>Y3,identity:()=>H3,leCunNormal:()=>J3,leCunUniform:()=>Q3,ones:()=>W3,orthogonal:()=>Z3,randomNormal:()=>U3,randomUniform:()=>V3,truncatedNormal:()=>G3,varianceScaling:()=>j3,zeros:()=>z3});var ez=["channelsFirst","channelsLast"],tz=["nearest","bilinear"],nz=["valid","same","causal"],az=["max","avg"],rz=["sum","mul","concat","ave"],Gl=new Map;function Mt(e){Mi(ez,"DataFormat",e)}function sz(e){Mi(tz,"InterpolationFormat",e)}function ta(e){Mi(nz,"PaddingMode",e)}function mk(e){Mi(az,"PoolMode",e)}var Wc=[],fk="/";function Ri(e,t){Wc.push(e);try{let n=t();return Wc.pop(),n}catch(n){throw Wc.pop(),n}}function iz(){return Wc.length===0?"":Wc.join(fk)+fk}function yk(e){if(!gk(e))throw new Error("Not a valid tensor name: '"+e+"'");return iz()+e}function bk(e){if(!gk(e))throw new Error("Not a valid tensor name: '"+e+"'");Gl.has(e)||Gl.set(e,0);let t=Gl.get(e);if(Gl.set(e,Gl.get(e)+1),t>0){let n=`${e}_${t}`;return Gl.set(n,1),n}else return e}var oz=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function gk(e){return!!e.match(oz)}function lz(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{if(e.shape.length!==2)throw new V(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=Vc(e,1);return xb(n,[1,t,1])})}function cz(e){let t=[rs(e.shape)];return e.reshape(t)}function pz(e){if(e.rank<=1)throw new V(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],rs(e.shape,1)];return e.reshape(t)}function Pi(e,t,n){return M(()=>{switch(e.rank){case 1:return vh(e,t,n);case 2:return Zy(e,[t,0],[n,e.shape[1]]);case 3:return Wl(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Mc(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Be(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Be(e,[t,0,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new V(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function vb(e,t,n){return M(()=>{switch(e.rank){case 1:return vh(e,t,n);case 2:return Zy(e,[0,t],[e.shape[0],n]);case 3:return Wl(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return Mc(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new V(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Lh(e,t,n,a){return M(()=>{switch(e.rank){case 1:return vh(e,t,n);case 2:switch(a){case 1:return Pi(e,t,n);case 2:return vb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}case 3:switch(a){case 1:return Pi(e,t,n);case 2:return Wl(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return vb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}case 4:switch(a){case 1:return Pi(e,t,n);case 2:return Mc(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return Mc(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return vb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}default:throw new V(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function wb(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),Je(e,t)}function vk(e,t){switch(e.rank){case 1:return l1([e,t]);case 2:return u1([e,t],0);case 3:return c1([e,t],0);case 4:return p1([e,t],0);default:throw new V(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function xb(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new V(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return Ha(e,t)}function zh(e,t=0,n=1,a,r){return A1(e,t,n,a,r)}function Qa(e,t,n,a){if(e.rank<2||t.rank<2)throw new $e(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){let r=e.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(r!==s)throw new $e(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`)}if(e.rank===2&&t.rank===2){let r=!1,s=!1;return ns.matMul({a:e,b:t,transposeA:r,transposeB:s,bias:a?kb(e.rank,a,Aa()):null,activation:n})}else{let r=e.shape.slice(),s=r.pop();e=e.reshape([-1,s]);let i=t.shape.slice(),o=i.pop(),l=i.pop(),u=[...i,o],c=Array.from({length:t.rank},(m,f)=>f===0?t.rank-2:f<=t.rank-2?f-1:f);t=t.transpose(c).reshape([l,-1]);let p=[...r,...u],d=!1,h=!1;return ns.matMul({a:e,b:t,transposeA:d,transposeB:h,bias:a?kb(e.rank,a,Aa()):null,activation:n}).reshape(p)}}function wk(e,t,n){return M(()=>(Array.isArray(t)?t=Qe(t,"int32"):t=t.toInt(),Ti(e,t,n)))}function Uc(e){return B(e,e)}function kb(e,t,n){let a=t.shape;if(t.rank!==1&&t.rank!==e)throw new V(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1,1,1]):t.reshape([1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,1,1,a[0]]):t.reshape([1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1,1]):t.reshape([1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,1,a[0]]):t.reshape([1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1]):t.reshape([1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,a[0]]):t.reshape([1].concat(a))}else if(e<3)return t;throw new V(`Unsupported input rank by biasAdd: ${t.rank}`)}function Za(e,t,n){return M(()=>(n==null&&(n=Aa()),Mt(n),e.add(kb(e.rank,t,n))))}function dz(e,t=1){if(t!==1)throw new $e(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Ml(e)}function hz(e){return M(()=>xe(e,zt(e).add(1)))}function kk(e,t,n,a){return M(()=>R1(e,t,n,a))}function mz(e){return M(()=>{let t=J(.5,B(.2,e));return Xt(t,0,1)})}function Gc(e,t,n=!1){return n?e():t()}var fz=["fanIn","fanOut","fanAvg"],gz=["normal","uniform","truncatedNormal"];function yz(e){Mi(fz,"FanMode",e)}function bz(e){Mi(gz,"Distribution",e)}var ma=class extends re.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Ib=class extends ma{apply(e,t){return vt(e,t)}};Ib.className="Zeros";re.registerClass(Ib);var Wh=class extends ma{apply(e,t){return Xa(e,t)}};Wh.className="Ones";re.registerClass(Wh);var Nb=class extends ma{constructor(e){super();if(typeof e!="object")throw new V(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new V(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return M(()=>B(ce(this.value),Xa(e,t)))}getConfig(){return{value:this.value}}};Nb.className="Constant";re.registerClass(Nb);var Tb=class extends ma{constructor(e){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return zl(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Tb.className="RandomUniform";re.registerClass(Tb);var Sb=class extends ma{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`randomNormal does not support dType ${t}.`);return zh(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Sb.className="RandomNormal";re.registerClass(Sb);var Cb=class extends ma{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`truncatedNormal does not support dType ${t}.`);return Ih(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Cb.className="TruncatedNormal";re.registerClass(Cb);var Ab=class extends ma{constructor(e){super();this.gain=e.gain!=null?e.gain:1}apply(e,t){return M(()=>{if(e.length!==2||e[0]!==e[1])throw new V("Identity matrix initializer can only be used for 2D square matrices.");return B(this.gain,Wy(e[0]))})}getConfig(){return{gain:this.gain}}};Ab.className="Identity";re.registerClass(Ab);function xz(e,t="channelsLast"){let n,a;if(Mt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=rs(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=rs(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=rs(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var An=class extends ma{constructor(e){super();if(e.scale<0)throw new V(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,yz(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,bz(this.distribution),this.seed=e.seed}apply(e,t){let n=xz(e),a=n[0],r=n[1],s=this.scale;if(this.mode==="fanIn"?s/=Math.max(1,a):this.mode==="fanOut"?s/=Math.max(1,r):s/=Math.max(1,(a+r)/2),this.distribution==="normal"){let i=Math.sqrt(s);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`${this.getClassName()} does not support dType ${t}.`);return Ih(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return zl(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};An.className="VarianceScaling";re.registerClass(An);var Bh=class extends An{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return An.className}};Bh.className="GlorotUniform";re.registerClass(Bh);var Vh=class extends An{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return An.className}};Vh.className="GlorotNormal";re.registerClass(Vh);var Uh=class extends An{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return An.className}};Uh.className="HeNormal";re.registerClass(Uh);var Gh=class extends An{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return An.className}};Gh.className="HeUniform";re.registerClass(Gh);var Hh=class extends An{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return An.className}};Hh.className="LeCunNormal";re.registerClass(Hh);var jh=class extends An{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return An.className}};jh.className="LeCunNormal";re.registerClass(jh);var Fb=class extends ma{constructor(e){super();if(this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new $e("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return M(()=>{if(e.length<2)throw new $e("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);let n=e[0]>e[1]?[e[1],e[0]]:e,a=zh(n,0,1,"float32"),r=X1.gramSchmidt(a);return e[0]>e[1]&&(r=r.transpose()),B(this.gain,r)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Fb.className="Orthogonal";re.registerClass(Fb);var Ik={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function Nk(e,t={}){return Lc(e,re.SerializationMap.getMap().classNameMap,t,"initializer")}function At(e){return pb(e)}function wt(e){if(typeof e=="string"){let t=e in Ik?Ik[e]:e;if(t==="GlorotNormal")return new Vh;if(t==="GlorotUniform")return new Bh;if(t==="HeNormal")return new Uh;if(t==="HeUniform")return new Gh;if(t==="LeCunNormal")return new Hh;if(t==="LeCunUniform")return new jh;{let n={};return n.className=t,n.config={},Nk(n)}}else return e instanceof ma?e:Nk(e)}function z3(){return new Ib}function W3(){return new Wh}function B3(e){return new Nb(e)}function V3(e){return new Tb(e)}function U3(e){return new Sb(e)}function G3(e){return new Cb(e)}function H3(e){return new Ab(e)}function j3(e){return new An(e)}function q3(e){return new Bh(e)}function X3(e){return new Vh(e)}function K3(e){return new Uh(e)}function Y3(e){return new Gh(e)}function J3(e){return new Hh(e)}function Q3(e){return new jh(e)}function Z3(e){return new Fb(e)}var Tk={};Oe(Tk,{Layer:()=>je,RNN:()=>er,RNNCell:()=>Hc,activation:()=>Rz,add:()=>Gz,alphaDropout:()=>CW,average:()=>Hz,averagePooling1d:()=>_b,averagePooling2d:()=>Eb,averagePooling3d:()=>$b,avgPool1d:()=>eW,avgPool2d:()=>nW,avgPool3d:()=>rW,avgPooling1d:()=>tW,avgPooling2d:()=>aW,avgPooling3d:()=>sW,batchNormalization:()=>Jz,bidirectional:()=>xW,concatenate:()=>jz,conv1d:()=>Cz,conv2d:()=>Az,conv2dTranspose:()=>Fz,conv3d:()=>_z,convLstm2d:()=>fW,convLstm2dCell:()=>gW,cropping2D:()=>$z,dense:()=>Pz,depthwiseConv2d:()=>Mz,dot:()=>Yz,dropout:()=>Oz,elu:()=>wz,embedding:()=>Uz,flatten:()=>zz,gaussianDropout:()=>SW,gaussianNoise:()=>TW,globalAveragePooling1d:()=>iW,globalAveragePooling2d:()=>oW,globalMaxPool1d:()=>wW,globalMaxPool2d:()=>kW,globalMaxPooling1d:()=>Ck,globalMaxPooling2d:()=>Ak,gru:()=>uW,gruCell:()=>cW,input:()=>Sk,inputLayer:()=>vz,layerNormalization:()=>Qz,leakyReLU:()=>Iz,lstm:()=>pW,lstmCell:()=>dW,masking:()=>AW,maxPool1d:()=>IW,maxPool2d:()=>NW,maxPooling1d:()=>Fk,maxPooling2d:()=>_k,maxPooling3d:()=>lW,maximum:()=>qz,minimum:()=>Xz,multiply:()=>Kz,permute:()=>Vz,prelu:()=>Nz,reLU:()=>kz,repeatVector:()=>Wz,reshape:()=>Bz,rnn:()=>yW,separableConv2d:()=>Ez,simpleRNN:()=>hW,simpleRNNCell:()=>mW,softmax:()=>Tz,spatialDropout1d:()=>Lz,stackedRNNCells:()=>bW,thresholdedReLU:()=>Sz,timeDistributed:()=>vW,upSampling2d:()=>Dz,zeroPadding2d:()=>Zz});var FW=0;function Ek(){return FW++}var qh={};function Xh(e=""){return e in qh||(qh[e]=0),qh[e]+=1,e+qh[e].toString()}function Db(e){return Array.isArray(e)&&Array.isArray(e[0])}function Kh(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function Re(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new V(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function pt(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new V(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function Yh(e){let t=0;for(let n of e)n.shape.length===0?t+=1:t+=n.shape.reduce((a,r)=>a*r);return t}var $k="Variable",Dk=class{constructor(e,t="float32",n=$k,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=Ek(),n=n==null?$k:n,this.originalName=yk(n),this.name=bk(this.originalName),this.trainable_=a,this.constraint=r,this.val=_1(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),_W(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}};function _W(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function Mb(e){return e.map(t=>t.read())}function Rb(e){e.forEach(t=>{t[0].write(t[1])})}var Yt=class{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}},Ea=class{constructor(e,t,n,a,r,s,i){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=a,this.callArgs=r,this.outputTensorIndex=i,this.id=Ek(),s!=null&&(this.originalName=yk(s),this.name=bk(this.originalName)),this.rank=t.length}},EW=0,Jh=class{constructor(e,t){this.callArgs=t,this.id=EW++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(let n of e.inboundLayers)n!=null&&n.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){let e=[];for(let t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},$W=0,je=class extends re.Serializable{constructor(e={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=$W++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){let n=this.getClassName();t=vr(n)+"_"+Xh(n)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let n;if(e.batchInputShape!=null)n=e.batchInputShape;else if(e.inputShape!=null){let r=null;e.batchSize!=null&&(r=e.batchSize),n=[r].concat(e.inputShape)}this.batchInputShape=n;let a=e.dtype;a==null&&(a=e.inputDType),a==null&&(a="float32"),this.dtype=a}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new Fa(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new V(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return Cn(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return Cn(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new xr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new xr(`Layer ${this.name} is not connected, no input to return.`);return Cn(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new xr(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new xr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return Cn(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=gt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=gt(this.inputSpec);if(e.length!==t.length)throw new V(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let n=0;nr.maxNDim)throw new V(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${r.maxNDim}, found ndim=${s}`);if(r.minNDim!=null&&s=0?i[l]:i[i.length+l];if(u!=null&&[u,null].indexOf(c)===-1)throw new V(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${u} but got shape ${i}.`)}}if(r.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(e);let s=[];for(let i of gt(e))s.push(i.shape);this.build(Cn(s)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&r&&(this._refCount=1)}if(this.assertInputCompatibility(e),r){let s=this.call(e,t),i=gt(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=Cn(o),this.activityRegularizer!=null)throw new $e("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=DW(e),i=this.computeOutputShape(s),o,l=MW(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?s[0]:s),i!=null&&i.length>0&&Array.isArray(i[0])?o=i.map((u,c)=>new Ea(l,u,this,gt(e),t,this.name,c)):o=new Ea(l,i,this,gt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new $e("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return o}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((n,a)=>{n!=null&&e[a]!=null&&e[a]!==n&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new xr(`The layer ${this.name} has never been called and thus has no defined output shape.`);let e=[];for(let t of this.inboundNodes){let n=JSON.stringify(t.outputShapes);e.indexOf(n)===-1&&e.push(n)}if(e.length===1){let t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new xr(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Fa(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Yh(this.weights)}build(e){this.built=!0}getWeights(e=!1){return Mb(e?this.trainableWeights:this.weights)}setWeights(e){M(()=>{let t=this.weights;if(t.length!==e.length)throw new V(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;let n=[],a=Mb(t);for(let r=0;rr.apply(l.read())),s==null&&(s=!0),s?this._trainableWeights.push(l):this._nonTrainableWeights.push(l),l}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=gt(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,n,a,r,s,i=null){let o=gt(e);t=gt(t),n=gt(n),a=gt(a),r=Kh(r),s=Kh(s);let l=[],u=[],c=[];for(let p of o)l.push(p.sourceLayer),u.push(p.nodeIndex),c.push(p.tensorIndex);new Jh({outboundLayer:this,inboundLayers:l,nodeIndices:u,tensorIndices:c,inputTensors:o,outputTensors:t,inputMasks:n,outputMasks:a,inputShapes:r,outputShapes:s},i);for(let p=0;pe.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount==0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}};function DW(e){e=gt(e);let t=[];for(let n of e)t.push(n.shape);return Cn(t)}function MW(e){return"float32"}function Mk(e,t,n){if((t==null||n!=null&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),t.inboundNodes.length===0)return[e];{let a=t.inboundNodes[n];if(a.inboundLayers.length===0)return a.inputTensors;{let r=[];for(let s=0;s0){let r=await Promise.all(t);for(let s=0;sJ(this.totals[a],B(r,n)));this.totals[a]=i,s!=null&&s.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?t[n]=this.totals[n]/this.seen:M(()=>{let a=B(xe(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),qt(t[n])}))}},zk=class extends ql{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(let n in t)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(t[n])}async syncData(){let e=[],t=[],n=[];for(let r in this.history){let s=this.history[r];for(let i=0;inew Wk(n,t))}var fa=class{constructor(){}static registerCallbackConstructor(e,t){I.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),fa.checkForDuplicate(t),fa.constructors[e]==null&&(fa.constructors[e]=[]),fa.constructors[e].push(t)}static checkForDuplicate(e){for(let t in fa.constructors)fa.constructors[+t].forEach(n=>{if(n===e)throw new V("Duplicate callback constructor.")})}static clear(){fa.constructors={}}static createCallbacks(e){let t=[];for(let n in fa.constructors){let a=+n;e>=a&&t.push(...fa.constructors[a])}return t.map(n=>new n)}};fa.constructors={};function Vk(e,t,n,a,r,s,i,o,l){let u=new zk,c=[new PW,...fa.createCallbacks(t)];e!=null&&c.push(...e),c.push(u);let p=new Lk(c);return p.setParams({epochs:n,initialEpoch:a,samples:r,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:p,history:u}}function $a(e,t={},n=!1){return Lc(e,re.SerializationMap.getMap().classNameMap,t,"layer",n)}function Qh(e,t){return M(()=>{e.dtype!=="float32"&&(e=e.asType("float32"));let n=Se(Uc(e),t,!0),a=Sn(n.shape,Bt()),r=an(qa(n,a));return xe(e,r)})}function Oi(e,t){return M(()=>Ct(Uc(me(t,e)),-1))}function Zh(e,t){return M(()=>Ct(zt(me(t,e)),-1))}function Xl(e,t){return M(()=>{let n=me(e,t),a=Xt(zt(e),Bt(),Number.MAX_VALUE),r=zt(xe(n,a));return B(100,Ct(r,-1))})}function OW(e,t){return M(()=>{let n=Xt(t,Bt(),Number.MAX_VALUE),a=Pn(J(1,n)),r=Xt(e,Bt(),Number.MAX_VALUE),s=Pn(J(1,r));return Ct(Uc(me(a,s)),-1)})}function LW(e,t){return M(()=>{let n=qa(0,me(1,B(e,t)));return Ct(Uc(n),-1)})}function zW(e,t){return M(()=>{let n=qa(0,me(1,B(e,t)));return Ct(n,-1)})}function WW(e,t){return M(()=>{let n=Se(B(e,t),-1),a=Zn(B(me(1,e),t),-1);return qa(0,J(1,me(a,n)))})}function BW(e,t){return M(()=>{let n=Math.log(2),a=me(t,e),r=me(J(a,Pl(B(-2,a))),n);return Ct(r,-1)})}function jc(e,t,n=!1){return M(()=>{if(n)t=Ta(t);else{let a=Se(t,t.shape.length-1,!0);t=xe(t,a)}return t=Xt(t,Bt(),1-Bt()),St(Se(B(e.toFloat(),Pn(t)),t.shape.length-1))})}function em(e,t,n=!1){return M(()=>{let a=Rl(cz(e)).toInt();t=Xt(t,Bt(),1-Bt());let r=t.shape,s=_l(a,r[r.length-1]).reshape(r);return jc(s,t,n)})}function VW(e,t){if(!I.arraysEqual(e.shape,t.shape))throw new V(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return M(()=>{let n=t.relu(),a=t.abs().neg();return n.sub(t.mul(e)).add(a.exp().log1p())})}function tm(e,t){return M(()=>{let n;return n=Xt(t,Bt(),1-Bt()),n=Pn(xe(n,me(1,n))),Ct(VW(e,n),-1)})}function UW(e,t){return M(()=>{let n=Xt(e,Bt(),1),a=Xt(t,Bt(),1);return Se(B(e,Pn(xe(n,a))),-1)})}function GW(e,t){return M(()=>{let n=Pn(J(Bt(),t));return Ct(me(t,B(e,n)),-1)})}function Pb(e,t){return M(()=>{let n=Qh(e,-1),a=Qh(t,-1),r=B(n,a);return St(Se(r,-1))})}var nm={meanSquaredError:Oi,meanAbsoluteError:Zh,meanAbsolutePercentageError:Xl,meanSquaredLogarithmicError:OW,squaredHinge:LW,hinge:zW,categoricalHinge:WW,logcosh:BW,categoricalCrossentropy:jc,sparseCategoricalCrossentropy:em,binaryCrossentropy:tm,kullbackLeiblerDivergence:UW,poisson:GW,cosineProximity:Pb};function Ob(e){if(typeof e=="string"){if(e in nm)return nm[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new V(t)}else return e}function Lb(e,t){return M(()=>{let n=B(.5,On(t)),a=Bc(pa(t,n),e.dtype);return Ct(Zr(e,a),-1)})}function zb(e,t){return M(()=>Bc(Zr(Nc(e,-1),Nc(t,-1)),"float32"))}function Uk(e,t){return M(()=>da(e.equal(1),t.equal(1)).sum().cast("float32"))}function HW(e,t){return M(()=>da(e.equal(1),t.equal(0)).sum().cast("float32"))}function jW(e,t){return M(()=>da(e.equal(0),t.equal(1)).sum().cast("float32"))}function Gk(e,t){return M(()=>{let n=Uk(e,t),a=jW(e,t),r=n.add(a);return Tn(pa(r,0),n.div(r),0).cast("float32")})}function qW(e,t){return M(()=>{let n=Uk(e,t),a=HW(e,t),r=n.add(a);return Tn(pa(r,0),n.div(r),0).cast("float32")})}function Hk(e,t){return tm(e,t)}function jk(e,t){return e.rank===t.rank&&(e=e.squeeze([e.rank-1])),t=t.argMax(-1),t.dtype!==e.dtype&&(t=t.asType(e.dtype)),Zr(e,t).asType("float32")}var XW=Oi,KW=Oi,YW=Zh,JW=Zh,QW=Xl,ZW=Xl,Wb=jc,eB=Pb,qk=em,am={binaryAccuracy:Lb,categoricalAccuracy:zb,precision:Gk,categoricalCrossentropy:Wb,sparseCategoricalCrossentropy:qk,mse:XW,MSE:KW,mae:YW,MAE:JW,mape:QW,MAPE:ZW,cosine:eB};function tB(e){if(typeof e=="string"&&e in am)return am[e];if(typeof e!="string"&&e!=null)return e;throw new V(`Unknown metric ${e}`)}function rm(e){if(Ja(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(nm))if(nm[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(am))if(am[n]===e){t=n;break}return t!==void 0?t:e.name}}function nB(e){let t={Adagrad:()=>Ei.adagrad(.01),Adadelta:()=>Ei.adadelta(1,.95,Bt()),Adam:()=>Ei.adam(.001,.9,.999,Bt()),Adamax:()=>Ei.adamax(.002,.9,.999,Bt(),0),RMSProp:()=>Ei.rmsprop(.001,.9,0,Bt()),SGD:()=>Ei.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new V(`Unknown Optimizer ${e}`)}var Xk=1*1024*1024;function Kk(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!Bb(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){let a=JSON.stringify(e);a.length>Xk&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${a.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${Xk}.`)}}function Bb(e){if(e===null)return!0;if(typeof e=="object")if(Object.getPrototypeOf(e)===Object.prototype){let t=Object.keys(e);for(let n of t)if(typeof n!="string"||!Bb(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!Bb(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function oB(e,t,n,a=console.log){let r=rB(e),s=["Layer (type)","Output shape","Param #"];r?(t=t||65,n=n||[.45,.85,1]):(t=t||98,n=n||[.33,.55,.67,1]),n[n.length-1]<=1&&(n=n.map(c=>Math.floor(t*c)));let i;if(!r){s.push("Receives inputs"),i=[];for(let c in e.nodesByDepth)i.push(...e.nodesByDepth[c])}a("_".repeat(t)),sm(s,n,a),a("=".repeat(t));let o=e.layers;for(let c=0;c1||r.length===1&&r[0].inboundLayers.length>1){t=!1;break}a.push(...r)}if(t)for(let r of e.layers){let s=!1;for(let i of r.inboundNodes)if(a.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function sm(e,t,n=console.log){let a="";for(let r=0;r0&&(a=a.slice(0,a.length-1)+" "),a+=e[r],a=a.slice(0,t[r]),a+=" ".repeat(t[r]-a.length);n(a)}function sB(e,t,n){let a;try{a=JSON.stringify(e.outputShape)}catch(o){a="multiple"}let r=e.name,s=e.getClassName(),i=[`${r} (${s})`,a,e.countParams().toString()];sm(i,t,n)}function iB(e,t,n,a){let r;try{r=JSON.stringify(e.outputShape)}catch(c){r="multiple"}let s=[];for(let c of e.inboundNodes)if(!(n!=null&&n.length>0&&n.indexOf(c)===-1))for(let p=0;pm.name),l=[],u=t.names();for(let m of o)u.indexOf(m)!==-1?l.push(t.getValue(m)):l.push(null);a!=null&&(a.maxNumTensors=-Infinity,a.minNumTensors=Infinity);let c=o.join(",")+"|"+t.names().join(","),p,d;if(Ub[c]==null){let m=uB(i,t);p=m.sorted,d=m.recipientCounts,Ub[c]=p,Jk[c]=d}p=Ub[c],d={},r||Object.assign(d,Jk[c]);let h=new Li(t);for(let m=0;ma.maxNumTensors&&(a.maxNumTensors=F),F0,()=>"Expected at least one fetch, got none");let n=[],a={};if(e.length===1){let r=Qk(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=Qk(s,t);for(let l of i)r.has(l.name)||(n.push(l),r.add(l.name));for(let l in o)a[l]==null&&(a[l]=new Set),o[l].forEach(u=>a[l].add(u))}}return{sorted:n,recipientCounts:pB(a)}}function pB(e){let t={};for(let n in e)t[n]=e[n].size;return t}function Qk(e,t){let n=new Set,a=[],r={};for(let o of t.names())n.add(o);let s=[],i=[];for(s.push(e);s.length>0;){let o=s[s.length-1];if(n.has(o.name)){s.pop();continue}let l=i[i.length-1]===s.length-1;if(o.inputs.length===0||l)s.pop(),a.push(o),n.add(o.name),l&&i.pop();else{i.push(s.length-1);for(let u of o.inputs)r[u.name]==null&&(r[u.name]=new Set),r[u.name].add(o.name),!n.has(u.name)&&s.push(u)}}return{sorted:a,recipientMap:r}}function cB(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;ay.name)}`);as(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(y=>y.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let y of this.outputs){let b=y.sourceLayer,x=y.nodeIndex,v=y.tensorIndex;this.outputLayers.push(b),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(v)}for(let y of this.inputs){let b=y.sourceLayer,x=y.nodeIndex,v=y.tensorIndex;Ja(x===0,"input layer has >1 nodes"),Ja(v===0,"input layer has >1 tensors"),this.inputLayers.push(b),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(v)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let y=0;yy.shape),this.internalOutputShapes=this.outputs.map(y=>y.shape);let t={},n={},a={},r={},s={},i=[],o=(y,b,x,v,k,w)=>{(v==null||k==null||w==null)&&(v=y.sourceLayer,k=y.nodeIndex,w=y.tensorIndex);let S=v.inboundNodes[k];if(x.indexOf(S)!==-1)throw new Fa(`The tensor ${y.name} at layer "${v.name}" is part of a cycle.`);if(b.indexOf(S)!==-1)return;this.containerNodes.add(tr.nodeKey(v,k)),v.id in s||(s[v.id]=Object.keys(s).length),x.indexOf(S)===-1&&x.push(S);let A=S.inboundLayers.length;for(let F=0;F=0;)x.splice(x.indexOf(S),1);i.push(S)},l=[],u=[];for(let y of this.outputs)o(y,l,u);let c=i.slice().reverse();for(let y of c){n[y.id]=y,y.id in t||(t[y.id]=0);let b=t[y.id],x=a[y.outboundLayer.id]==null?0:a[y.outboundLayer.id];b=Math.max(b,x),a[y.outboundLayer.id]=b,r[y.outboundLayer.id]=y.outboundLayer,t[y.id]=b;for(let v=0;vparseInt(y,10)).sort(Oh);this.layers=[];for(let y of h){let b=d[y];b.sort((x,v)=>{let k=s[x.id],w=s[v.id];return kw?1:0});for(let x of b)x instanceof tr&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=d,h=Object.keys(p).map(y=>parseInt(y,10)).sort(Oh);let m=this.inputs.slice(),f=[];for(let y of h)for(let b of p[y]){let x=b.outboundLayer;if(x!=null){for(let v of b.inputTensors)if(m.indexOf(v)===-1)throw new Fa(`Graph disconnected: cannot obtain value for tensor ${v} at layer "${x.name}". The following previous layers were accessed without issue: ${f}`);for(let v of b.outputTensors)m.push(v);f.push(x.name)}}this.nodesByDepth=p;let g=this.layers.map(y=>y.name);for(let y of g){let b=g.filter(x=>x===y).length;if(b!==1)throw new Fa(`The name "${y}" is used ${b} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new Jh({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(y=>null),outputMasks:this.outputs.map(y=>null),inputShapes:this.inputs.map(y=>y.shape),outputShapes:this.outputs.map(y=>y.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount==0){for(let t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(let t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(n=>n.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new V("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(let t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.layers)t.push(...n.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){let n={},a=0;for(let s of this.layers)for(let i of s.weights){if(n[i.originalName]!=null)throw new V(`Duplicate weight name: ${i.originalName}`);n[i.originalName]=i,a++}let r=[];for(let s in e){let i=s;if(n[s]==null){let o=s.split("/");i=o.slice(0,-2).concat([o[o.length-1]]).join("/")}if(n[i]!=null)r.push([n[i],e[s]]);else if(t)throw new V(`Provided weight data has no target variable: ${s}`);delete n[i]}if(t){let s=[];for(let i in n)s.push(i);if(s.length>0)throw new V(`${s.length} of ${a} weights are not set: ${s}`)}Rb(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${im}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=Vb(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return M(()=>{e=gt(e);let n=new Li;for(let a=0;a{e=gt(e);let n;return t==null?n=$i(null,e.length):n=gt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=Kh(e);if(t.length!==this.inputLayers.length)throw new V(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let i=0;iparseInt(i,10)).sort(Oh);if(a.length>1)for(let i of a){let o=this.nodesByDepth[i];for(let l of o){let u=l.outboundLayer;if(this.inputLayers.map(m=>m.id).indexOf(u.id)!==-1)continue;let c=[];for(let m=0;mparseInt(o,10)).sort(Oh);for(let o of a){let l=this.nodesByDepth[o];for(let u of l){let c=u.outboundLayer,p=u.inputTensors,d=u.outputTensors,h=new Array;for(let m of p)m.id in n&&h.push(n[m.id]);if(h.length===p.length){let m={},f,g,y,b;if(u.callArgs!=null&&(m=u.callArgs),h.length===1){let[x,v]=h[0];m.mask==null&&(m.mask=v),y=gt(c.call(x,m)),b=gt(c.computeMask(x,v)),f=[x],g=[v]}else f=h.map(x=>x[0]),g=h.map(x=>x[1]),m.mask==null&&(m.mask=g),y=gt(c.call(f,m)),b=gt(c.computeMask(f,g));if(c.activityRegularizer)throw new $e("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let x=0;x{let e=[];for(let t of this.layers)for(let n=0;n0){let m=[];for(let f=0;f0&&f.apply(Cn(y),b)}function l(f){let g=f.name,y=$a(f,t.customObjects!=null?t.customObjects:{});y.setFastWeightInitDuringBuild(a),r[g]=y,f.inboundNodes.forEach(b=>{if(!(b instanceof Array))throw new V(`Corrupted configuration, expected array for nodeData: ${b}`);i(y,b)})}let u=t.name,c=t.layers;for(let f of c)l(f);for(;!O3(s);)for(let f of c){let g=r[f.name];if(g.name in s){let y=s[g.name];delete s[g.name];for(let b of y)o(g,b)}}let p=[],d=[],h=t.inputLayers;for(let f of h){let g=f[0],y=f[1],b=f[2];Ja(g in r);let x=r[g].inboundNodes[y].outputTensors;p.push(x[b])}let m=t.outputLayers;for(let f of m){let g=f[0],y=f[1],b=f[2];Ja(g in r);let x=r[g].inboundNodes[y].outputTensors;d.push(x[b])}return new e({inputs:p,outputs:d,name:u})}get stateful(){if(this._stateful)throw new V("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let e of this.layers)if(e.stateful)return!0;return!1}resetStates(){M(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function dB(e,t,n){let a=t.length;if(e==null||Array.isArray(e)&&e.length===0)return t.map(r=>null);if(a===1)return Array.isArray(e)&&e.length===1?e:typeof e=="object"&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==a)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${a} outputs. Make sure a set of weights is provided for each model output.`);return e}else if(typeof e=="object"&&Object.keys(e).length>0&&typeof e[Object.keys(e)[0]]=="object"){let r=[];return t.forEach(s=>{s in e?r.push(e[s]):r.push(null)}),r}else throw new Error(`The model has multiple (${a}) outputs, so ${n} must be either an array with ${a} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}function Zk(e,t){return dB(e,t,"classWeight")}async function eI(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=M(()=>{if(e.shape.length===1)return e.clone();if(e.shape.length===2)if(e.shape[1]>1){let o=1;return e.argMax(o)}else{if(e.shape[1]===1)return e.reshape([e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await r.data());Ee(r);let i=[];return s.forEach(o=>{if(n[o]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${o} exists in the data but not in classWeight`);i.push(n[o])}),Qe(i,"float32")}else return null}function hB(e,t){return B(e,t)}var mB=32;function nI(e,t){let n,a,r=t;n=r.xs,a=r.ys,I.assert(n!=null&&a!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`);let s=tI("input",e.inputNames,n),i=tI("output",e.outputNames,a),o=s[0].shape[0];I.assert(s.length===e.inputs.length,()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`),I.assert(i.length===e.outputs.length,()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${e.inputNames[l]} has ${s[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${e.outputNames[l]} has ${i[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);return{xs:s,ys:i}}function tI(e,t,n){if(n instanceof Fe)return[n];if(Array.isArray(n))return I.assert(n.length===t.length,()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`),n;{let a=[];for(let r of t){if(n[r]==null)throw new V(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function fB(e){if(e.length===3)throw new $e("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function yB(e,t,n){let a=n.batchesPerEpoch!=null;if(I.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),I.assert(n!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),I.assert(n.epochs!=null&&n.epochs>0&&Number.isInteger(n.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`),I.assert(!a||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`),I.assert(n.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{let r=n.validationData!=null,s,i;if(r)if(aI(n.validationData))I.assert(n.validationBatches==null||n.validationBatches>0&&Number.isInteger(n.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${n.validationBatches}`);else{let g=fB(n.validationData);s=g.xs,i=g.ys}let o=e.makeTrainFunction(),l=e.getDedupedMetricsNames(),u;r?u=l.slice().concat(l.map(g=>"val_"+g)):u=l.slice();let c=Bk(n.callbacks,n.yieldEvery),p=n.verbose==null?1:n.verbose,{callbackList:d,history:h}=Vk(c,p,n.epochs,null,null,gB(t,n),null,r,u);d.setModel(e),e.history=h,await d.onTrainBegin(),e.stopTraining_=!1;let m=n.initialEpoch==null?0:n.initialEpoch,f=await t.iterator();for(;m=n.batchesPerEpoch:x.done){if(r){let v;aI(n.validationData)?v=gt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):v=gt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?mB:n.validationBatchSize,verbose:0}));for(let k=0;k0)throw new $e("Verbose mode is not implemented yet.");I.assert(!a||n.batches>0&&Number.isInteger(n.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`);let i=bB(t)?t:await t.iterator(),o=0,l=0;for(;a?l{if(u.value){let{xs:c,ys:p}=nI(e,u.value),d=c.concat(p),h=M(()=>r(d));if(Ee(d),l===0)for(let f=0;fJ(s[f],B(m,g))),l>0&&Ee(y)}Ee(h),o+=m,++l}return s}),u.done){a&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${n.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let u=0;u0&&Number.isInteger(e),()=>`batchSize is required to be a positive integer, but got ${e}`)}function Kc(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>Pi(a,t,n-t)):Pi(e,t,n-t)}function Hb(e,t){return M(()=>e==null?null:Array.isArray(e)?e.map(n=>Hb(n,t)):wk(e,t.dtype==="int32"?t:t.toInt()))}function jb(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}async function vB(e,t,n,a,r,s,i,o,l,u,c,p,d,h,m){r==null&&(r=32),s==null&&(s=1),c==null&&(c=!0),d==null&&(d=0);let f=!1;if(l!=null&&u!=null&&(f=!0),m!=null&&(f=!0,h==null))throw new V("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=e.checkNumSamples(n,r,h,"steps_per_epoch"),y;g!=null&&(y=_a(0,g)),i==null&&(i=1);let{callbackList:b,history:x}=Vk(o,i,s,d,g,h,r,f,p);b.setModel(e),e.history=x,await b.onTrainBegin(),e.stopTraining_=!1;for(let v=d;v{let D=S[A][0],R=S[A][1],L=Pi(w,D,R-D);F.batch=A,F.size=R-D;let W=Hb(n,L),U=t(W);for(let G=0;G0){if(m=!0,a.validationData.length===2)i=a.validationData[0],o=a.validationData[1];else throw a.validationData.length===3?new $e("validationData including sample weights is not supported yet."):new V(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${a.validationData} is invalid.`);let w=!0,S=await e.standardizeUserData(i,o,null,null,w,p);l=S[0],u=S[1],f=l.concat(u)}else if(a.validationSplit!=null&&a.validationSplit>0&&a.validationSplit<1){m=!0;let w=Math.floor(r[0].shape[0]*(1-a.validationSplit)),S=r[0].shape[0];l=Kc(r,w,S),r=Kc(r,0,w),u=Kc(s,w,S),s=Kc(s,0,w),f=l.concat(u)}else a.validationSteps!=null&&(m=!0);let g=r.concat(s).concat(c);e.checkTrainableWeightsConsistency();let y=e.makeTrainFunction(),b=e.getDedupedMetricsNames(),x,v;m?(e.makeTestFunction(),x=e.testFunction,v=b.slice().concat(b.map(w=>"val_"+w))):(x=null,f=[],v=b.slice());let k=Bk(a.callbacks,a.yieldEvery);return await vB(e,y,g,b,p,a.epochs,a.verbose,k,x,f,a.shuffle,v,a.initialEpoch,null,null)}finally{e.isTraining=!1,zi(r,t),zi(s,n),zi(l,i),zi(u,o),c!=null&&Ee(c)}}function rI(e){let t=[];e instanceof Fe&&(e=[e]);for(let n=0;nn.push(r.id));else if(t!=null)for(let r in t){let s=t[r];n.push(s.id)}let a=[];if(e instanceof Fe)n.indexOf(e.id)===-1&&a.push(e);else if(Array.isArray(e))e.forEach(r=>{n.indexOf(r.id)===-1&&a.push(r)});else if(e!=null)for(let r in e){let s=e[r];n.indexOf(s.id)===-1&&a.push(s)}a.forEach(r=>{r.isDisposed||r.dispose()})}function kB(e){return e instanceof Fe}function qb(e){return Array.isArray(e)}function sI(e){return!kB(e)&&!qb(e)}function iI(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(qb(e)&&e.length>0)i=!0;else if(sI(e)){for(let o in e)if(e.hasOwnProperty(o)){i=!0;break}}else i=!0;if(i)throw new V(`Error when checking model ${r} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(i=>null);let s;if(sI(e)){e=e,s=[];for(let i of t){if(e[i]==null)throw new V(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(e[i])}}else if(qb(e)){if(e=e,e.length!==t.length)throw new V(`Error when checking model ${r}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);s=e}else{if(e=e,t.length>1)throw new V(`The model ${r} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=rI(s),n!=null)for(let i=0;i=0&&u!==c)throw new V(`Error when checking ${r}: expected ${t[i]} to have shape [${n[i]}], but got array with shape [${o.shape}].`)}}return s}function IB(e,t,n){let a=as(e.map(s=>s.shape[0]));a.sort();let r=as(t.map(s=>s.shape[0]));if(r.sort(),a.length>1)throw new V(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(s=>s.shape))}`);if(r.length>1)throw new V(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(a.length>0&&r.length>0&&!I.arraysEqual(a,r))throw new V(`Input Tensors should have the same number of samples as target Tensors. Found ${a[0]} input sample(s) and ${r[0]} target sample(s).`)}function NB(e,t,n){let a=[Oi,tm,jc];for(let r=0;r1)throw new V(`The model expects ${t.length} ${r} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);s=[e]}if(n!=null)for(let i=0;i[]);let n;if(typeof e=="string"||typeof e=="function")n=[e];else if(Array.isArray(e)||typeof e=="object")n=e;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);if(Array.isArray(n))return t.map(a=>n);{let a=[];for(let r of t){let s=n.hasOwnProperty(r)?n[r]:[];Array.isArray(s)||(s=[s]),a.push(s)}return a}}var SB="layers-model",wr=class extends tr{constructor(e){super(e);this.isTraining=!1}summary(e,t,n=console.log){if(!this.built)throw new V("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");oB(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=nB(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof br))throw new V("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(let s in e.loss)if(this.outputNames.indexOf(s)===-1)throw new V(`Unknown entry in loss dictionary: "${s}". Only expected the following keys: ${this.outputNames}`);for(let s of this.outputNames)e.loss[s]==null&&console.warn(`Output "${s}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${s} during training`),t.push(Ob(e.loss[s]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new V(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);t=e.loss.map(s=>Ob(s))}else{let s=Ob(e.loss);this.outputs.forEach(i=>{t.push(s)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let s=0;s{for(let s=0;s1&&(this.metricsTensors.push([i,s]),this.metricsNames.push(this.outputNames[s]+"_loss"))}});let a=TB(e.metrics,this.outputNames),r=(s,i,o)=>{this.outputNames.length>1&&(i=this.outputNames[s]+"_"+i),this.metricsNames.push(i),this.metricsTensors.push([o,s])};Ri("metric",()=>{for(let s=0;s{let l="",u,c,p;for(let d of o){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){let m=this.internalOutputShapes[s];m[m.length-1]===1||this.lossFunctions[s]===tm?["accuracy","acc"].indexOf(d)!==-1?c=Lb:["crossentropy","ce"].indexOf(d)!==-1&&(c=Hk):this.lossFunctions[s]===em?["accuracy","acc"].indexOf(d)!==-1?c=jk:["crossentropy","ce"].indexOf(d)!==-1&&(c=qk):["accuracy","acc"].indexOf(d)!==-1?c=zb:["crossentropy","ce"].indexOf(d)!==-1&&(c=Wb);let f;["accuracy","acc"].indexOf(d)!==-1?f="acc":["crossentropy","ce"].indexOf(d)!==-1&&(f="ce"),p=c,u=l+f}else p=tB(d),u=l+rm(d);let h;Ri(u,()=>{h=p}),r(s,u,h)}})(i)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,n={}){let a=n.batchSize==null?32:n.batchSize;Gb(a);let r=!0,s=this.standardizeUserDataXY(e,t,r,a);try{let i=s[0].concat(s[1]);this.makeTestFunction();let o=this.testFunction,l=this.testLoop(o,i,a,n.verbose,n.steps);return Cn(l)}finally{zi(s[0],e),zi(s[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),xB(this,e,t)}checkNumSamples(e,t,n,a="steps"){let r;if(n!=null){if(r=null,t!=null)throw new V(`If ${a} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?r=e[0].shape[0]:r=e.shape[0];else throw new V(`Either the input data should have a defined shape, or ${a} shoud be specified.`);return r}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new V("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(t),a=n?t:[t],r=this.retrieveSymbolicTensors(a),s=new Li;if(e instanceof Fe&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new V(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let o=0;oi.name);for(let i=0;i0){let a=[];throw t.forEach((r,s)=>{r==null&&a.push(e[s])}),new V(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(a)}`)}return t}predictLoop(e,t=32,n=!1){return M(()=>{let a=this.checkNumSamples(e);if(n)throw new $e("Verbose predictLoop() is not implemented yet.");let r=jb(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=Kc(e,o,l),c=[];if(Array.isArray(u))for(let d=0;ds[l].push(o));return Cn(s.map(i=>Je(i,0)))})}predict(e,t={}){let n=rI(e);oI(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return Gb(a),this.predictLoop(n,a)}finally{zi(n,e)}}predictOnBatch(e){oI(e,this.inputNames,this.feedInputShapes,!0);let t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,a){if(this.optimizer_==null)throw new Fa("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let r=[];for(let s=0;s0&&e[0].shape[0]%a!=0)throw new V(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${a}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,a,r=!0,s){let[i,o]=this.standardizeUserDataXY(e,t,r,s);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(a!=null){let u=Zk(a,this.outputNames);l=[];for(let c=0;c{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new $e("Verbose mode is not implemented yet.");if(r!=null)throw new $e("steps mode in testLoop() is not implemented yet");{let o=jb(s,n),l=Qe(_a(0,s));for(let u=0;u1&&(r+=`_${lk(e.slice(0,n),a)}`),t.push(r)}return t}makeTrainFunction(){return e=>{let t=[],n=e.slice(0,this.inputs.length),a=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),s=[],i=()=>{let u=[];for(let h=0;h1&&h{d=J(d,h)}),d},o=this.collectedTrainableWeights.map(u=>u.read()),l=!0;return[this.optimizer_.minimize(i,l,o)].concat(s)}}makeTestFunction(){this.testFunction=e=>M(()=>{let t=[],n,a=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=[];for(let l=0;lvr(t))}else{let t=Object.keys(this.loss);e={};let n=this.loss;for(let a of t)if(typeof n[a]=="string")e[a]=vr(n[a]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[vr(rm(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>vr(rm(e)));{let e={};for(let t in this.metrics)e[t]=vr(rm(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let t=qc(e.optimizer_config),n=$a(t),a;if(typeof e.loss=="string")a=Di(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Di(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Di(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Di(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Di(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=jt.getSaveHandlers(e);if(i.length===0)throw new V(`Cannot find any save handlers for URL '${e}'`);if(i.length>1)throw new V(`Found more than one (${i.length}) save handlers for URL '${e}'`);e=i[0]}if(e.save==null)throw new V("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await jt.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:SB,generatedBy:`TensorFlow.js tfjs-layers v${im}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await jt.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=jt.concatenateArrayBuffers([n.data,o])}if(this.userDefinedMetadata!=null){let i=!0;Kk(this.userDefinedMetadata,this.name,i),s.userDefinedMetadata=this.userDefinedMetadata}return s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){Kk(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};wr.className="Model";re.registerClass(wr);var lI=class extends wr{};lI.className="Functional";re.registerClass(lI);async function CB(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=qc(n),r=$a(a,t);if(e.weightsManifest!=null){let s=await jt.loadWeights(e.weightsManifest,e.pathPrefix,r.weights.map(o=>o.originalName)),i={};for(let o of r.weights)i[o.originalName]=s[o.originalName];r.loadWeights(i),Ee(s)}return r}async function FB(e,t){if(t==null&&(t={}),typeof e=="string"){let n=jt.getLoadHandlers(e,t);if(n.length===0)n.push(jt.browserHTTPRequest(e,t));else if(n.length>1)throw new V(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return AB(e,void 0,t)}async function AB(e,t,n){if(n==null&&(n={}),e.load==null)throw new V("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let a=await e.load(),r=a.modelTopology;r.model_config!=null&&(r=r.model_config);let s=n.strict==null?!0:n.strict,i=a.weightData!=null&&a.weightSpecs!=null&&s,o=$a(qc(r),t,i),l=a.trainingConfig;if(l!=null&&o.loadTrainingConfig(l),a.userDefinedMetadata!=null&&o.setUserDefinedMetadata(a.userDefinedMetadata),a.weightData!=null){if(a.weightSpecs==null)throw new V("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:u,optimizerWeights:c}=_B(a.weightData,a.weightSpecs);o.loadWeights(u,s),o.optimizer!=null&&c.length>0&&await o.optimizer.setWeights(c),Ee(u),Ee(c.map(p=>p.tensor))}return o}function _B(e,t){let n=jt.decodeWeights(e,t),a={},r=[];return t.forEach(s=>{s.group==="optimizer"?r.push({name:s.name,tensor:n[s.name]}):a[s.name]=n[s.name]}),{modelWeights:a,optimizerWeights:r}}var Kl=class extends wr{constructor(e){super({inputs:[],outputs:[]});if(e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:Xh("sequential_"),e.layers!=null)for(let t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(t=>t<0))throw new V(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof Kl||e instanceof wr,n;if(t){if(n=e,n.outputs.length!==1)throw new V("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(n.inputs.length!==1)throw new V("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new V("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let a=Rk({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(a)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(e.inboundNodes.length!==1)throw new V(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new V("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=Mk(this.outputs[0])}this.inboundNodes=[],new Jh({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:$i(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(a=>a.shape),outputShapes:this.outputs[0].shape})}else{let a=e.apply(this.outputs[0]);if(Array.isArray(a))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[a],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(pt(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new wr({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,n=console.log){this.built||this.build(),super.summary(e,t,n)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new Fa("The model needs to be compiled before being used.");return this.model.evaluate(e,t,n)}async evaluateDataset(e,t){if(!this.built)throw new Fa("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new Fa("The model needs to be compiled before being used.");return this.model.fit(e,t,n)}async fitDataset(e,t){if(!this.built)throw new Fa("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,n={},a=!1){let r,s={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new V("Legacy serialization format not supported yet.");r=t}else I.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),r=t.layers,delete t.layers,s=t;let i=new e(s);if(!(i instanceof Kl))throw new $e(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let o of r){let l=$a(o,void 0,a);a&&l.setFastWeightInitDuringBuild(!0),i.add(l)}return i}set stopTraining(e){if(this.model==null)throw new V("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new V("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let e=[];for(let t of this.layers){let n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}};Kl.className="Sequential";re.registerClass(Kl);function EB(e){return new wr(e)}function $B(e){return new Kl(e)}function DB(e,t){return t==null&&(t={}),FB(e,t)}function Sk(e){return Rk(e)}function MB(e,t){fa.registerCallbackConstructor(e,t)}var Wn=class extends re.Serializable{getConfig(){return{}}},uI=class extends Wn{apply(e,t=1){return dz(e,t)}};uI.className="elu";re.registerClass(uI);var cI=class extends Wn{apply(e){return yh(e)}};cI.className="selu";re.registerClass(cI);var pI=class extends Wn{apply(e){return qe(e)}};pI.className="relu";re.registerClass(pI);var dI=class extends Wn{apply(e){return M(()=>Ll(6,qe(e)))}};dI.className="relu6";re.registerClass(dI);var hI=class extends Wn{apply(e){return e}};hI.className="linear";re.registerClass(hI);var mI=class extends Wn{apply(e){return ca(e)}};mI.className="sigmoid";re.registerClass(mI);var fI=class extends Wn{apply(e){return mz(e)}};fI.className="hardSigmoid";re.registerClass(fI);var gI=class extends Wn{apply(e){return Pl(e)}};gI.className="softplus";re.registerClass(gI);var yI=class extends Wn{apply(e){return hz(e)}};yI.className="softsign";re.registerClass(yI);var bI=class extends Wn{apply(e){return Dl(e)}};bI.className="tanh";re.registerClass(bI);var Xb=class extends Wn{apply(e,t=-1){return Ta(e,t)}};Xb.className="softmax";re.registerClass(Xb);var xI=class extends Wn{apply(e,t=-1){return ch(e,t)}};xI.className="logSoftmax";re.registerClass(xI);var vI=class extends Wn{apply(e,t=1){return M(()=>ca(e.mul(t)).mul(e))}};vI.className="swish";re.registerClass(vI);function os(e){return e.getClassName()}function Kb(e,t={}){return Lc(e,re.SerializationMap.getMap().classNameMap,t,"activation")}function ls(e){if(e==null){let t={};return t.className="linear",t.config={},Kb(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},Kb(t)}else return e instanceof Wn?e:Kb(e)}function Yb(e){if(e!=null&&typeof e!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}var wI=class extends re.Serializable{},Yc=class extends wI{constructor(e){super();Yb(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return M(()=>{let t=vt([1]);return this.hasL1&&(t=J(t,Se(B(this.l1,zt(e))))),this.hasL2&&(t=J(t,Se(B(this.l2,Uc(e))))),t.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};Yc.className="L1L2";re.registerClass(Yc);function RB(e){return Yb(e),new Yc({l1:e!=null?e.l1:null,l2:0})}function PB(e){return Yb(e),new Yc({l2:e!=null?e.l2:null,l1:0})}var kI={l1l2:"L1L2"};function dt(e){return pb(e)}function II(e,t={}){return Lc(e,re.SerializationMap.getMap().classNameMap,t,"regularizer")}function kt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in kI?kI[e]:e,config:{}};return II(t)}else return e instanceof wI?e:II(e)}var Jb=class extends je{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Re(e);let n=qe(e);return this.maxValue!=null&&(n=Xt(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};Jb.className="ReLU";re.registerClass(Jb);var Qb=class extends je{constructor(e){super(e==null?{}:e);this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){let n=Re(e);return Fc(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};Qb.className="LeakyReLU";re.registerClass(Qb);var Zb=class extends je{constructor(e){super(e==null?{}:e);if(this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=wt(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=kt(e.alphaRegularizer),this.alphaConstraint=Ut(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new V(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=pt(e);let t=e.slice(1);if(this.sharedAxes!=null)for(let a of this.sharedAxes)t[a-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let a=1;a(Mt(t),t==="channelsFirst"?Ve(e,[0,2,3,1]):e))}function NI(e,t){return M(()=>(Mt(t),t==="channelsFirst"?Ve(e,[0,2,3,4,1]):e))}function OB(e,t,n,a=1,r="valid",s,i=1){return M(()=>{if(s==null&&(s=Aa()),Mt(s),e.shape.length!==3)throw new V(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new V(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(n!=null&&n.shape.length!==1)throw new V(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(e=Ve(e,[0,2,1])),r==="causal")throw new $e("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=nh(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=Za(o,n)),o})}function TI(e,t,n,a=[1,1],r="valid",s,i,o=null){return M(()=>{if(s==null&&(s=Aa()),Mt(s),e.rank!==3&&e.rank!==4)throw new V(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new V(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=ax(e,s);if(r==="causal")throw new $e("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=ns.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=Ve(l,[0,3,1,2])),l})}function LB(e,t,n,a=[1,1,1],r="valid",s,i){return M(()=>{if(s==null&&(s=Aa()),Mt(s),e.rank!==4&&e.rank!==5)throw new V(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new V(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=NI(e,s);if(r==="causal")throw new $e("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=My(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=Za(o,n)),s==="channelsFirst"&&(o=Ve(o,[0,4,1,2,3])),o})}var rx=class extends je{constructor(e,t){super(t);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",rx.verifyArgs(t),this.rank=e,Kt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new $e(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Yl(t.kernelSize,e,"kernelSize"),this.strides=Yl(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,ta(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Mt(this.dataFormat),this.activation=ls(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=wt(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Ut(t.biasConstraint),this.biasRegularizer=kt(t.biasRegularizer),this.activityRegularizer=kt(t.activityRegularizer),this.dilationRate=Yl(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new V(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new V(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new V(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(Ja("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!hb(e.kernelSize,"number",1,3))throw new V(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){let e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:os(this.activation),useBias:this.useBias,biasInitializer:At(this.biasInitializer),biasRegularizer:dt(this.biasRegularizer),activityRegularizer:dt(this.activityRegularizer),biasConstraint:Vt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},Jc=class extends rx{constructor(e,t){super(e,t);this.kernel=null,Jc.verifyArgs(t),this.filters=t.filters,Kt(this.filters,"filters"),this.kernelInitializer=wt(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Ut(t.kernelConstraint),this.kernelRegularizer=kt(t.kernelRegularizer)}build(e){e=pt(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V(`The channel dimension of the input should be defined. Found ${e[t]}`);let n=e[t],a=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:n}}],this.built=!0}call(e,t){return M(()=>{e=Re(e);let n,a=this.bias==null?null:this.bias.read(),r=ck(this.activation.getClassName());if(r!=null&&this.rank===2)n=TI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=OB(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=TI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=LB(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new $e("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=pt(e);let t=[],n=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let r=0;r 0 but got ${JSON.stringify(e.filters)}`)}},Qc=class extends Jc{constructor(e){super(2,e);Qc.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!hb(e.kernelSize,"number",1,2))throw new V(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};Qc.className="Conv2D";re.registerClass(Qc);var lm=class extends Jc{constructor(e){super(3,e);lm.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new V(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};lm.className="Conv3D";re.registerClass(lm);var sx=class extends Qc{constructor(e){super(e);if(this.inputSpec=[new Yt({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=pt(e),e.length!==4)throw new V("Input should have rank 4; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new Yt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return M(()=>{let n=Re(e);if(n.shape.length!==4)throw new V(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i;this.dataFormat==="channelsFirst"?(s=2,i=3):(s=1,i=2);let o=a[s],l=a[i],u=this.kernelSize[0],c=this.kernelSize[1],p=this.strides[0],d=this.strides[1],h=om(o,p,u,this.padding),m=om(l,d,c,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=Ve(n,[0,2,3,1]));let g=ah(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=Ve(g,[0,3,1,2])),this.bias!=null&&(g=Za(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=pt(e);let t=e.slice(),n,a,r;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3):(n=3,a=1,r=2);let s=this.kernelSize[0],i=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[a]=om(t[a],o,s,this.padding),t[r]=om(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};sx.className="Conv2DTranspose";re.registerClass(sx);var SI=class extends Jc{constructor(e,t){super(e,t);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new V("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new V("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new V(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=wt(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=kt(t.depthwiseRegularizer),this.depthwiseConstraint=Ut(t.depthwiseConstraint),this.pointwiseInitializer=wt(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=kt(t.pointwiseRegularizer),this.pointwiseConstraint=Ut(t.pointwiseConstraint)}build(e){if(e=pt(e),e.length{e=Re(e);let n;if(this.rank===1)throw new $e("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=Ve(e,[0,2,3,1])),n=Fi(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=Za(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ve(n,[0,3,1,2])),n})}getConfig(){let e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=At(this.depthwiseInitializer),e.pointwiseInitializer=At(this.pointwiseInitializer),e.depthwiseRegularizer=dt(this.depthwiseRegularizer),e.pointwiseRegularizer=dt(this.pointwiseRegularizer),e.depthwiseConstraint=Vt(this.depthwiseConstraint),e.pointwiseConstraint=Vt(this.pointwiseConstraint),e}};SI.className="SeparableConv";var ix=class extends SI{constructor(e){super(2,e)}};ix.className="SeparableConv2D";re.registerClass(ix);var um=class extends Jc{constructor(e){super(1,e);um.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){let e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!hb(e.kernelSize,"number",1,1))throw new V(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};um.className="Conv1D";re.registerClass(um);var ox=class extends je{constructor(e){super(e);typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return M(()=>{if(e=Re(e),this.dataFormat==="channelsLast"){let n=Lh(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Lh(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Lh(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Lh(n,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};ox.className="Cropping2D";re.registerClass(ox);var lx=class extends je{constructor(e){super(e);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Mt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,sz(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){let t=e[2]==null?null:this.size[0]*e[2],n=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,n]}else{let t=e[1]==null?null:this.size[0]*e[1],n=e[2]==null?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return M(()=>{let n=Re(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=Ve(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?n.resizeNearestNeighbor([r,s]):n.resizeBilinear([r,s]);return Ve(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?n.resizeNearestNeighbor([r,s]):n.resizeBilinear([r,s])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};lx.className="UpSampling2D";re.registerClass(lx);function zB(e,t,n=[1,1],a="valid",r,s){return M(()=>{r==null&&(r=Aa()),Mt(r);let i=ax(e,r);if(e.rank!==4)throw new V(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new V(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Qr(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=Ve(i,[0,3,1,2])),i})}var ux=class extends rx{constructor(e){super(2,e);this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=wt(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Ut(e.depthwiseConstraint),this.depthwiseRegularizer=kt(e.depthwiseRegularizer)}build(e){if(e=pt(e),e.length<4)throw new V(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);let t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new V(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);let n=e[t],a=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",a,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return M(()=>{e=Re(e);let n=zB(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=Za(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=pt(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,r=Da(t,this.kernelSize[0],this.padding,this.strides[0]),s=Da(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],a,r,s]:[e[0],r,s,a]}getConfig(){let e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=At(this.depthwiseInitializer),e.depthwiseRegularizer=dt(this.depthwiseRegularizer),e.depthwiseConstraint=Vt(this.depthwiseRegularizer),e}};ux.className="DepthwiseConv2D";re.registerClass(ux);function CI(e,t,n,a){if(Array.isArray(e)){if(t!=null||n!=null)throw new V("When inputs is an array, neither initialState or constants should be provided");a!=null&&(n=e.slice(e.length-a,e.length),e=e.slice(0,e.length-a)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function r(s){return s==null||Array.isArray(s)?s:[s]}return t=r(t),n=r(n),{inputs:e,initialState:t,constants:n}}function AI(e,t,n,a=!1,r,s,i=!1,o=!1){return M(()=>{let l=t.shape.length;if(l<3)throw new V(`Input should be at least 3D, but is ${l}D.`);let u=[1,0].concat(_a(2,l));if(t=Ve(t,u),s!=null)throw new $e("The rnn() functoin of the deeplearn.js backend does not support constants yet.");i&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),r!=null&&(r=r.asType("bool").asType("float32"),r.rank===l-1&&(r=Rn(r,-1)),r=Ve(r,u)),a&&(t=Ln(t,0),r!=null&&(r=Ln(r,0)));let c=[],p,d=n,h=t.shape[0],m=ct(t),f;r!=null&&(f=ct(r));for(let y=0;ye(b,d));if(r==null)p=x[0],d=x[1];else{let v=M(()=>{let k=f[y],w=On(k).sub(k),S=x[0].mul(k).add(d[0].mul(w)),A=d.map((F,D)=>x[1][D].mul(k).add(F.mul(w)));return{output:S,newStates:A}});p=v.output,d=v.newStates}o&&c.push(p)}let g;return o&&(g=Dt(c,1)),[p,g,d]})}var er=class extends je{constructor(e){super(e);let t;if(e.cell==null)throw new V("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new cm({cells:e.cell}):t=e.cell,t.stateSize==null)throw new V("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new Yt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return _a(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Db(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);let n=t[0],a;if(this.returnSequences?a=[e[0],e[1],n]:a=[e[0],n],this.returnState){let r=[];for(let s of t)r.push([e[0],s]);return[a].concat(r)}else return a}computeMask(e,t){return M(()=>{Array.isArray(t)&&(t=t[0]);let n=this.returnSequences?t:null;if(this.returnState){let a=this.states.map(r=>null);return[n].concat(a)}else return n})}get states(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ni.shape[i.shape.length-1]),s))throw new V(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=s.map(i=>new Yt({shape:[null,i]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){M(()=>{if(!this.stateful)throw new xr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new V("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>vt([n,a])):this.states_=[vt([n,this.cell.stateSize])];else if(e==null)Ee(this.states_),this.keptStates!=null&&(Ee(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>vt([n,a])):this.states_[0]=vt([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new V(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):Ee(this.states_);for(let a=0;aqt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=CI(e,n,a,this.numConstants);e=r.inputs,n=r.initialState,a=r.constants;let s=[],i=[];if(n!=null){t.initialState=n,s=s.concat(n),this.stateSpec=[];for(let o of n)this.stateSpec.push(new Yt({shape:o.shape}));i=i.concat(this.stateSpec)}if(a!=null&&(t.constants=a,s=s.concat(a),this.numConstants=a.length),s[0]instanceof Ea){let o=[e].concat(s),l=this.inputSpec.concat(i),u=this.inputSpec;this.inputSpec=l;let c=super.apply(o,t);return this.inputSpec=u,c}else return super.apply(e,t)}call(e,t){return M(()=>{let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;e=Re(e),r==null&&(this.stateful?r=this.states_:r=this.getInitialState(e));let s=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(r.length!==s)throw new V(`RNN Layer has ${s} state(s) but was passed ${r.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let i={training:a},o=AI((d,h)=>{let m=this.cell.call([d].concat(h),i);return[m[0],m.slice(1)]},e,r,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],u=o[1],c=o[2];this.stateful&&this.resetStates(c,a);let p=this.returnSequences?u:l;return this.returnState?[p].concat(c):p})}getInitialState(e){return M(()=>{let t=vt(e.shape);return t=Se(t,[1,2]),t=Vc(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?xb(t,[1,n]):t):this.cell.stateSize>1?[xb(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){let e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===er.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,e,t)}static fromConfig(e,t,n={}){let a=t.cell,r=$a(a,n);return new e(Object.assign(t,{cell:r}))}};er.className="RNN";re.registerClass(er);var Hc=class extends je{},pm=class extends Hc{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Kt(this.units,"units"),this.activation=ls(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=wt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=kt(e.kernelRegularizer),this.recurrentRegularizer=kt(e.recurrentRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.kernelConstraint=Ut(e.kernelConstraint),this.recurrentConstraint=Ut(e.recurrentConstraint),this.biasConstraint=Ut(e.biasConstraint),this.dropout=Hl([1,ss([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Hl([1,ss([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=pt(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return M(()=>{if(e=e,e.length!==2)throw new V(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];let a=t.training==null?!1:t.training;0On(e),rate:this.dropout,training:a})),0On(n),rate:this.recurrentDropout,training:a}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=Qa(B(e,s),this.kernel.read()):r=Qa(e,this.kernel.read()),this.bias!=null&&(r=Za(r,this.bias.read())),i!=null&&(n=B(n,i));let o=J(r,Qa(n,this.recurrentKernel.read()));return this.activation!=null&&(o=this.activation.apply(o)),[o,o]})}getConfig(){let e=super.getConfig(),t={units:this.units,activation:os(this.activation),useBias:this.useBias,kernelInitializer:At(this.kernelInitializer),recurrentInitializer:At(this.recurrentInitializer),biasInitializer:At(this.biasInitializer),kernelRegularizer:dt(this.kernelRegularizer),recurrentRegularizer:dt(this.recurrentRegularizer),biasRegularizer:dt(this.biasRegularizer),activityRegularizer:dt(this.activityRegularizer),kernelConstraint:Vt(this.kernelConstraint),recurrentConstraint:Vt(this.recurrentConstraint),biasConstraint:Vt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}};pm.className="SimpleRNNCell";re.registerClass(pm);var cx=class extends er{constructor(e){e.cell=new pm(e),super(e)}call(e,t){return M(()=>{this.cell.dropoutMask!=null&&(Ee(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ee(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return new e(t)}};cx.className="SimpleRNN";re.registerClass(cx);var dm=class extends Hc{constructor(e){super(e);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new V("GRUCell does not support reset_after parameter set to true.");this.units=e.units,Kt(this.units,"units"),this.activation=ls(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ls(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=wt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=kt(e.kernelRegularizer),this.recurrentRegularizer=kt(e.recurrentRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.kernelConstraint=Ut(e.kernelConstraint),this.recurrentConstraint=Ut(e.recurrentConstraint),this.biasConstraint=Ut(e.biasConstraint),this.dropout=Hl([1,ss([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Hl([1,ss([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=pt(e);let t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return M(()=>{if(e=e,e.length!==2)throw new V(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training==null?!1:t.training,a=e[1];e=e[0],0On(e),rate:this.dropout,training:n,count:3})),0On(a),rate:this.recurrentDropout,training:n,count:3}));let r=this.dropoutMask,s=this.recurrentDropoutMask,i,o,l;0{this.cell.dropoutMask!=null&&(Ee(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ee(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};px.className="GRU";re.registerClass(px);var Zc=class extends Hc{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Kt(this.units,"units"),this.activation=ls(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ls(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=wt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=kt(e.kernelRegularizer),this.recurrentRegularizer=kt(e.recurrentRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.kernelConstraint=Ut(e.kernelConstraint),this.recurrentConstraint=Ut(e.recurrentConstraint),this.biasConstraint=Ut(e.biasConstraint),this.dropout=Hl([1,ss([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Hl([1,ss([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=pt(e);let n=e[e.length-1];this.kernel=this.addWeight("kernel",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let a;if(this.useBias){if(this.unitForgetBias){let r=this.biasInitializer,s=this.units;a=new(t=class extends ma{apply(i,o){let l=r.apply([s]),u=new Wh().apply([s]),c=r.apply([s*2]);return vk(vk(l,u),c)}},t.className="CustomInit",t)}else a=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,a,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return M(()=>{let n=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new V(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let a=e[1],r=e[2];e=e[0],0On(e),rate:this.dropout,training:n,count:4})),0On(a),rate:this.recurrentDropout,training:n,count:4}));let s=this.dropoutMask,i=this.recurrentDropoutMask,o,l,u,c;0{this.cell.dropoutMask!=null&&(Ee(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ee(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};dx.className="LSTM";re.registerClass(dx);var cm=class extends Hc{constructor(e){super(e);this.cells=e.cells}get stateSize(){let e=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return M(()=>{e=e;let n=e.slice(1),a=[];for(let i of this.cells.slice().reverse())Array.isArray(i.stateSize)?a.push(n.splice(0,i.stateSize.length)):a.push(n.splice(0,1));a.reverse();let r=[],s;for(let i=0;i{Ri(`RNNCell_${a}`,()=>{n.build(e),Array.isArray(n.stateSize)?t=n.stateSize[0]:t=n.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){let e=super.getConfig(),t=a=>({className:a.getClassName(),config:a.getConfig()}),n={cells:this.cells.map(t)};return Object.assign({},e,n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push($a(r,n));return new e({cells:a})}get trainableWeights(){if(!this.trainable)return[];let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.cells)t.push(...n.trainableWeights);return t.concat(e)}return e}getWeights(){let e=[];for(let t of this.cells)e.push(...t.weights);return Mb(e)}setWeights(e){let t=[];for(let n of this.cells){let a=n.weights.length,r=e.splice(a);for(let s=0;skk(t(),n),i=()=>Gc(s,t,a);return!r||r<=1?qt(i().clone()):Array(r).fill(void 0).map(i).map(o=>qt(o.clone()))}var WB=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,a=Object.getOwnPropertySymbols(e);r{if(this.cell.dropoutMask!=null&&(Ee(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ee(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new V("ConvRNN2D cell does not support constants");let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return M(()=>{let{stateSize:t}=this.cell,n=e.shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)],s=vt(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){M(()=>{if(!this.stateful)throw new xr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)];if(n[0]==null)throw new V("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>vt(r)):this.states_=[vt(r)];else if(e==null)Ee(this.states_),this.keptStates!=null&&(Ee(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>vt(r)):this.states_[0]=vt(r);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new V(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):Ee(this.states_);for(let s=0;sqt(s.clone()))})}computeSingleOutputShape(e){let{dataFormat:t,filters:n,kernelSize:a,padding:r,strides:s,dilationRate:i}=this.cell,o=t==="channelsFirst",l=e[o?3:2],u=e[o?4:3],c=Da(l,a[0],r,s[0],i[0]),p=Da(u,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,c,p]:[c,p,n]]}};FI.className="ConvRNN2D";var hm=class extends Zc{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign({},e,{units:t}));this.filters=t,Kt(this.filters,"filters"),this.kernelSize=Yl(n,2,"kernelSize"),this.kernelSize.forEach(o=>Kt(o,"kernelSize")),this.strides=Yl(a||1,2,"strides"),this.strides.forEach(o=>Kt(o,"strides")),this.padding=r||"valid",ta(this.padding),this.dataFormat=s||"channelsLast",Mt(this.dataFormat),this.dilationRate=Yl(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>Kt(o,"dilationRate"))}build(e){var t;e=pt(e);let n=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[n]==null)throw new V(`The channel dimension of the input should be defined. Found ${e[n]}`);let a=e[n],r=4,s=this.kernelSize.concat([a,this.filters*r]);this.kernel=this.addWeight("kernel",s,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let i=this.kernelSize.concat([this.filters,this.filters*r]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let o;if(this.unitForgetBias){let l=this.biasInitializer,u=this.filters;o=new(t=class extends ma{apply(c,p){let d=l.apply([u]),h=Xa([u]),m=l.apply([u*2]);return wb([d,h,m])}},t.className="CustomInit",t)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*r],null,o,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return M(()=>{if(e.length!==3)throw new V(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training||!1,a=e[0],r=e[1],s=e[2],i=4;0On(a),rate:this.dropout,training:n,count:i}));let o=this.dropoutMask,l=(Q,se,ne)=>!se||!se[ne]?Q:B(se[ne],Q),u=l(a,o,0),c=l(a,o,1),p=l(a,o,2),d=l(a,o,3);0On(r),rate:this.recurrentDropout,training:n,count:i}));let h=this.recurrentDropoutMask,m=l(r,h,0),f=l(r,h,1),g=l(r,h,2),y=l(r,h,3),b=3,[x,v,k,w]=zn(this.kernel.read(),i,b),[S,A,F,D]=this.useBias?zn(this.bias.read(),i):[null,null,null,null];u=this.inputConv(u,x,S,this.padding),c=this.inputConv(c,v,A,this.padding),p=this.inputConv(p,k,F,this.padding),d=this.inputConv(d,w,D,this.padding);let[R,L,W,U]=zn(this.recurrentKernel.read(),i,b);m=this.recurrentConv(m,R),f=this.recurrentConv(f,L),g=this.recurrentConv(g,W),y=this.recurrentConv(y,U);let G=this.recurrentActivation.apply(J(u,m)),X=this.recurrentActivation.apply(J(c,f)),j=J(B(X,s),B(G,this.activation.apply(J(p,g)))),te=B(this.recurrentActivation.apply(J(d,y)),this.activation.apply(j));return[te,te,j]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=WB(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},n,a)}inputConv(e,t,n,a){let r=Et(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?Za(r,n,this.dataFormat):r}recurrentConv(e,t){return Et(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};hm.className="ConvLSTM2DCell";re.registerClass(hm);var hx=class extends FI{constructor(e){let t=new hm(e);super(Object.assign({},e,{cell:t}))}static fromConfig(e,t){return new e(t)}};hx.className="ConvLSTM2D";re.registerClass(hx);var mm=class extends je{constructor(e){super(e);this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;let t=e.shape,n=[];for(let a=0;a{this.invokeCallHook(e,t);let n=Re(e);if(0kk(n,this.rate,r,this.seed),()=>n,a)}return e})}getConfig(){let e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}};mm.className="Dropout";re.registerClass(mm);var mx=class extends mm{constructor(e){super(e);this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};mx.className="SpatialDropout1D";re.registerClass(mx);var fx=class extends je{constructor(e){super(e);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,Kt(this.units,"units"),this.activation=ls(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Ut(e.kernelConstraint),this.biasConstraint=Ut(e.biasConstraint),this.kernelRegularizer=kt(e.kernelRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.activityRegularizer=kt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=pt(e);let t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=pt(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return M(()=>{this.invokeCallHook(e,t);let n=Re(e),a=ck(this.activation.getClassName()),r;return a!=null?r=Qa(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=Qa(n,this.kernel.read()),this.bias!=null&&(r=Za(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:os(this.activation),useBias:this.useBias,kernelInitializer:At(this.kernelInitializer),biasInitializer:At(this.biasInitializer),kernelRegularizer:dt(this.kernelRegularizer),biasRegularizer:dt(this.biasRegularizer),activityRegularizer:dt(this.activityRegularizer),kernelConstraint:Vt(this.kernelConstraint),biasConstraint:Vt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};fx.className="Dense";re.registerClass(fx);var gx=class extends je{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=pt(e);for(let t of e.slice(1))if(t==null)throw new V(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],rs(e,1)]}call(e,t){return M(()=>{this.invokeCallHook(e,t);let n=Re(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Re(e);return this.activation.apply(n)})}getConfig(){let e={activation:os(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};yx.className="Activation";re.registerClass(yx);var bx=class extends je{constructor(e){super(e);this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return M(()=>(e=Re(e),uz(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};bx.className="RepeatVector";re.registerClass(bx);var xx=class extends je{constructor(e){super(e);this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Re(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return n.reshape(r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};xx.className="Reshape";re.registerClass(xx);var vx=class extends je{constructor(e){super(e);if(e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);let t=_a(1,e.dims.length+1);if(!I.arraysEqual(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new Yt({ndim:this.dims.length+1})]}computeOutputShape(e){e=pt(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return Ve(Re(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};vx.className="Permute";re.registerClass(vx);var wx=class extends je{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){let n=Re(e),a=-1;return Ic(Ai(n,this.maskValue),a)}call(e,t){return M(()=>{this.invokeCallHook(e,t);let n=Re(e),a=-1,r=!0,s=Ic(Ai(n,this.maskValue),a,r);return n.mul(s.asType(n.dtype))})}};wx.className="Masking";re.registerClass(wx);var kx=class extends je{constructor(e){super(e);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(gt(e.inputLength))}this.inputDim=e.inputDim,Kt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Kt(this.outputDim,"outputDim"),this.embeddingsInitializer=wt(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=kt(e.embeddingsRegularizer),this.activityRegularizer=kt(e.activityRegularizer),this.embeddingsConstraint=Ut(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return M(()=>this.maskZero?(e=Re(e),Ai(e,Ge(e))):null)}computeOutputShape(e){if(e=pt(e),this.inputLength==null)return[...e,this.outputDim];let t=gt(this.inputLength);if(t.length!==e.length-1)throw new V(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let a=0;a{this.invokeCallHook(e,t);let n=Re(e);return n.dtype!=="int32"&&(n=Bc(n,"int32")),wk(this.embeddings.read(),n.as1D()).reshape(pt(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:At(this.embeddingsInitializer),embeddingsRegularizer:dt(this.embeddingsRegularizer),activityRegularizer:dt(this.activityRegularizer),embeddingsConstraint:Vt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};kx.className="Embedding";re.registerClass(kx);var Wi=class extends je{constructor(e){super(e||{});this.supportsMasking=!0}mergeFunction(e){throw new $e}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new V(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=e[0]==null?null:e[0].slice(1);for(let r=1;rr.length);e.indexOf(null)===-1&&as(a).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return M(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=ss(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=_a(1,l).concat([0]);n.push(Ve(o,u)),r=!0}else n.push(o)}let s=this.mergeFunction(n),i=s.rank;if(r){if(i==null){let o=s.shape,l=o.length,u=o[l-1],c=[u].concat(o.slice(0,o.length-1));s=Ve(s.reshape([-1,u]),[1,0]).reshape(c)}else if(i>1){let o=[i-1].concat(_a(0,i-1));s=Ve(s,o)}}return s}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let a=1;a{if(t==null)return null;if(!Array.isArray(t))throw new V("`mask` should be an Array");if(!Array.isArray(e))throw new V("`inputs` should be an Array");if(t.length!==e.length)throw new V(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(a=>a==null))return null;t=t.map(a=>a==null?a:Rn(a,0));let n=t[0];for(let a=1;a{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0];for(let n=1;n{let t=e[0];for(let n=1;n1)throw new V("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return M(()=>wb(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new V("A `Concatenate` layer should be called on a list of inputs.");let t=e,n=t[0].slice(),a=this.axis<0?n.length+this.axis:this.axis;for(let r of t.slice(1)){if(n[a]==null||r[a]==null){n[a]=null;break}n[a]+=r[a]}return n}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new V("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new V("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new V(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return M(()=>{let n=!0;if(t.forEach(s=>{if(s!=null){n=!1;return}}),n)return null;let a=[];for(let s=0;s3||t.shape.length>3)throw new $e("batchDot is not implemented for tensors of 4D or higher rank yet");if(I.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),I.assert(e.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof n=="number"&&(n=[n,n]),e.dtype==="complex64"||t.dtype==="complex64")throw new $e("batchDot is not implemented for complex64-type Tensors yet.");let a=e.shape.length,r=t.shape.length;n==null&&(n=[a-1,r-2]);let s=n;return M(()=>{let i;if(a>r){i=a-r;let l=[];for(let u=0;ua){i=r-a;let l=[];for(let u=0;u0){let l;a>r?l=a+r-3:l=a-1;let u=[];for(let c=l;c"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0],n=e[1];if(t.length>3||n.length>3)throw new $e("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);if(t[a[0]]!==n[a[1]])throw new V(`Dimension incompatibility: ${t[a[0]]} !== ${n[a[1]]}`)}mergeFunction(e){if(e.length!==2)throw new V(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],n=e[1],a;return Array.isArray(this.axes)?a=this.axes.map((r,s)=>ep(r,e[s].shape.length)):a=[ep(this.axes,t.shape.length),ep(this.axes,n.shape.length)],this.normalize&&(t=Qh(t,a[0]),n=Qh(n,a[1])),BB(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[ep(this.axes,e.length),ep(this.axes,t.length)],n}computeOutputShape(e){I.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new $e("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);t.splice(a[0],1),n.splice(a[1],1),n.splice(0,1);let r=t.concat(n);return r.length===1&&r.push(1),r}computeMask(e,t){return null}getConfig(){let e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}};Fx.className="Dot";re.registerClass(Fx);var _x=class extends je{constructor(e){super(e);this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return M(()=>{this.invokeCallHook(e,t);let n=Re(e);return Gc(()=>zh(n.shape,0,this.stddev).add(n),()=>n,t.training||!1)})}};_x.className="GaussianNoise";re.registerClass(_x);var Ex=class extends je{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return M(()=>{this.invokeCallHook(e,t);let n=Re(e);return this.rate>0&&this.rate<1?Gc(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return n.mul(zh(n.shape,1,a))},()=>n,t.training||!1):n})}};Ex.className="GaussianDropout";re.registerClass(Ex);var $x=class extends je{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Re(e).shape}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return M(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return Gc(()=>{let a=Re(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=es(zl(n),this.rate);o=Bc(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,u=-l*i*this.rate;return a.mul(o).add(o.add(-1).mul(i)).mul(l).add(u)},()=>Re(e),t.training||!1)}return e})}};$x.className="AlphaDropout";re.registerClass($x);function tp(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=r1(e,t,n,a,r,s);else if(e.rank===3)i=s1(e,t,n,a,r,s);else if(e.rank===4)i=i1(e,t,n,a,r,s);else throw new $e(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function VB(e,t,n,a,r=.001){return M(()=>{let s=dh(e,a),i=s.mean,o=s.variance;return[tp(e,i,o,n,t,r),i,o]})}function UB(e,t,n,a,r=.001){return M(()=>{let s=dh(e,a),i=s.mean,o=s.variance,l=[];for(let h of _a(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let u=i.reshape(l),c=o.reshape(l),p=t==null?null:t.reshape(l),d=n==null?null:n.reshape(l);return[tp(e,u,c,d,p,r),i,o]})}function GB(e,t,n,a,r=.001){return I.arraysEqual(a.slice().sort(),_a(0,e.rank-1))?VB(e,t,n,a,r):UB(e,t,n,a,r)}var Dx=class extends je{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=wt(e.betaInitializer||"zeros"),this.gammaInitializer=wt(e.gammaInitializer||"ones"),this.movingMeanInitializer=wt(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=wt(e.movingVarianceInitializer||"ones"),this.betaConstraint=Ut(e.betaConstraint),this.gammaConstraint=Ut(e.gammaConstraint),this.betaRegularizer=kt(e.betaRegularizer),this.gammaRegularizer=kt(e.gammaRegularizer)}build(e){e=pt(e);let t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(n==null)throw new V(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new Yt({ndim:e.length,axes:{[t]:n}})];let a=[n];this.scale&&(this.gamma=this.addWeight("gamma",a,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",a,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",a,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",a,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return M(()=>{let n=t.training==null?!1:t.training,a=Re(e),r=a.shape,s=r.length,i=_a(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=$i(1,s);l[o]=r[o];let u=i.slice();u.sort();let c=!I.arraysEqual(u,_a(0,s).slice(0,s-1)),p=()=>{if(c){let g=this.movingMean.read().reshape(l),y=this.movingVariance.read().reshape(l),b=this.center?this.beta.read().reshape(l):null,x=this.scale?this.gamma.read().reshape(l):null;return tp(a,g,y,b,x,this.epsilon)}else return tp(a,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return p();let[d,h,m]=GB(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,y,b)=>{M(()=>{let x=1-b,v=g.read(),k=v.sub(y).mul(x);g.write(v.sub(k))})};return(()=>{f(this.movingMean,h,this.momentum),f(this.movingVariance,m,this.momentum)})(),d})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:At(this.betaInitializer),gammaInitializer:At(this.gammaInitializer),movingMeanInitializer:At(this.movingMeanInitializer),movingVarianceInitializer:At(this.movingVarianceInitializer),betaRegularizer:dt(this.betaRegularizer),gammaRegularizer:dt(this.gammaRegularizer),betaConstraint:Vt(this.betaConstraint),gammaConstraint:Vt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Dx.className="BatchNormalization";re.registerClass(Dx);var Mx=class extends je{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=wt(e.betaInitializer||"zeros"),this.gammaInitializer=wt(e.gammaInitializer||"ones"),this.betaRegularizer=kt(e.betaRegularizer),this.gammaRegularizer=kt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=pt(e);let t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let r=0;r=t)throw new Error(`Invalid axis: ${r}`);if(this.axis.length!==as(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(r=>e[r]),a=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,a):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,a):this.beta=null,this.built=!0}call(e,t){let n=Re(e),a=n.shape,r=a.length;return M(()=>{let s=!0,{mean:i,variance:o}=dh(n,this.axis,s),l=$i(1,r);for(let m of this.axis)l[m]=a[m];let u=m=>m!=null&&m.shape.length!==r&&this.axis!==[r-1]?m.reshape(l):m,c=u(this.gamma.read()),p=u(this.beta.read()),d=[],h=[];for(let m=0;m{if(e.rank!==4)throw new V(`temporalPadding expects input tensor to be 4-D, but received a ${e.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new V("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(n==null&&(n=Aa()),n!=="channelsLast"&&n!=="channelsFirst")throw new V(`Unknown data format: ${n}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let a;return n==="channelsFirst"?a=[[0,0],[0,0],t[0],t[1]]:a=[[0,0],t[0],t[1],[0,0]],ea(e,a)})}var Rx=class extends je{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?Aa():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new V(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,n;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],n=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new V(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new V(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);n=e.padding[1]}this.padding=[t,n]}this.inputSpec=[new Yt({ndim:4})]}computeOutputShape(e){e=pt(e);let t,n;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?n=e[3]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],e[1],t,n]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?n=e[2]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],t,n,e[3]])}call(e,t){return M(()=>HB(Re(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Rx.className="ZeroPadding2D";re.registerClass(Rx);function fm(e,t,n,a,r,s){return M(()=>{Mt(r),mk(s),ta(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=Aa()),s==null&&(s="max"),e=ax(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=$t(e,t,n,o):i=Qn(e,t,n,o),r==="channelsFirst"&&(i=Ve(i,[0,3,1,2])),i})}function _I(e,t,n,a,r,s){return M(()=>{Mt(r),mk(s),ta(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=Aa()),s==null&&(s="max"),e=NI(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Hy(e,t,n,o):i=Ey(e,t,n,o),r==="channelsFirst"&&(i=Ve(i,[0,4,1,2,3])),i})}var EI=class extends je{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new V(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(Kt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new V(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,ta(this.padding),this.inputSpec=[new Yt({ndim:3})]}computeOutputShape(e){e=pt(e);let t=Da(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return M(()=>{this.invokeCallHook(e,t),e=Vc(Re(e),2);let n=this.poolingFunction(Re(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return ts(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},Px=class extends EI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Mt(r),ta(a),fm(e,t,n,a,r,"max")}};Px.className="MaxPooling1D";re.registerClass(Px);var Ox=class extends EI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Mt(r),ta(a),fm(e,t,n,a,r,"avg")}};Ox.className="AveragePooling1D";re.registerClass(Ox);var $I=class extends je{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new V(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];Kt(this.poolSize,"poolSize"),Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Mt(this.dataFormat),ta(this.padding),this.inputSpec=[new Yt({ndim:4})]}computeOutputShape(e){e=pt(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Da(t,this.poolSize[0],this.padding,this.strides[0]),n=Da(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return M(()=>(this.invokeCallHook(e,t),this.poolingFunction(Re(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},Lx=class extends $I{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Mt(r),ta(a),fm(e,t,n,a,r,"max")}};Lx.className="MaxPooling2D";re.registerClass(Lx);var zx=class extends $I{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Mt(r),ta(a),fm(e,t,n,a,r,"avg")}};zx.className="AveragePooling2D";re.registerClass(zx);var DI=class extends je{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new V(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];Kt(this.poolSize,"poolSize"),Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Mt(this.dataFormat),ta(this.padding),this.inputSpec=[new Yt({ndim:5})]}computeOutputShape(e){e=pt(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=Da(t,this.poolSize[0],this.padding,this.strides[0]),n=Da(n,this.poolSize[1],this.padding,this.strides[1]),a=Da(a,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n,a]:[e[0],t,n,a,e[4]]}call(e,t){return M(()=>(this.invokeCallHook(e,t),this.poolingFunction(Re(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},Wx=class extends DI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Mt(r),ta(a),_I(e,t,n,a,r,"max")}};Wx.className="MaxPooling3D";re.registerClass(Wx);var Bx=class extends DI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Mt(r),ta(a),_I(e,t,n,a,r,"avg")}};Bx.className="AveragePooling3D";re.registerClass(Bx);var MI=class extends je{constructor(e){super(e);this.inputSpec=[new Yt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new $e}},Vx=class extends MI{constructor(e){super(e||{})}call(e,t){return M(()=>{let n=Re(e);return Ct(n,1)})}};Vx.className="GlobalAveragePooling1D";re.registerClass(Vx);var Ux=class extends MI{constructor(e){super(e||{})}call(e,t){return M(()=>{let n=Re(e);return Zn(n,1)})}};Ux.className="GlobalMaxPooling1D";re.registerClass(Ux);var RI=class extends je{constructor(e){super(e);this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Mt(this.dataFormat),this.inputSpec=[new Yt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new $e}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},Gx=class extends RI{call(e,t){return M(()=>{let n=Re(e);return this.dataFormat==="channelsLast"?Ct(n,[1,2]):Ct(n,[2,3])})}};Gx.className="GlobalAveragePooling2D";re.registerClass(Gx);var Hx=class extends RI{call(e,t){return M(()=>{let n=Re(e);return this.dataFormat==="channelsLast"?Zn(n,[1,2]):Zn(n,[2,3])})}};Hx.className="GlobalMaxPooling2D";re.registerClass(Hx);var PI=class extends je{constructor(e){super(e);this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){let e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){let a=t.layer,r=$a(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},jx=class extends PI{constructor(e){super(e);this.supportsMasking=!0}build(e){if(e=pt(e),e.length<3)throw new V(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];let t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=pt(e);let t=[e[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),a=e[1];return[n[0],a].concat(n.slice(1))}call(e,t){return M(()=>(e=Re(e),AI((n,a)=>[Re(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};jx.className="TimeDistributed";re.registerClass(jx);function jB(e){Mi(rz,"BidirectionalMergeMode",e)}var qB="concat",qx=class extends PI{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=$a(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=$a(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?qB:e.mergeMode,jB(this.mergeMode),e.weights)throw new $e("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){let t=e.length,n=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,n)),this.backwardLayer.setWeights(e.slice(n))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let n,a,r;return this.returnState&&(r=t.slice(1)),n=t[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,a=[n]):this.mergeMode==null?a=[n,n.slice()]:a=[n],this.returnState?this.mergeMode==null?a.concat(r).concat(r.slice()):[n].concat(r).concat(r.slice()):Cn(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=CI(e,n,a,this.numConstants);if(e=r.inputs,n=r.initialState,a=r.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(n==null||n.length===0)&&a==null)return super.apply(e,t);let s=[],i=[];if(n!=null){let l=n.length;if(l%2>0)throw new V("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=n,s.push(...n);let u=n.map(c=>new Yt({shape:c.shape}));this.forwardLayer.stateSpec=u.slice(0,l/2),this.backwardLayer.stateSpec=u.slice(l/2),i.push(...u)}if(a!=null)throw new $e("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof Ea;for(let l of s)if(l instanceof Ea!==o)throw new V("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){let l=[e].concat(s),u=this.inputSpec.concat(i),c=this.inputSpec;this.inputSpec=u;let p=super.apply(l,t);return this.inputSpec=c,p}else return super.apply(e,t)}call(e,t){return M(()=>{let n=t.initialState,a,r;if(n==null)a=this.forwardLayer.call(e,t),r=this.backwardLayer.call(e,t);else{let o=n.slice(0,n.length/2),l=n.slice(n.length/2);a=this.forwardLayer.call(e,Object.assign(t,{initialState:o})),r=this.backwardLayer.call(e,Object.assign(t,{initialState:l}))}let s;this.returnState&&(Array.isArray(a)&&(s=a.slice(1).concat(r.slice(1))),a=a[0],r=r[0]),this.returnSequences&&(r=Ln(r,1));let i;return this.mergeMode==="concat"?i=wb([a,r]):this.mergeMode==="sum"?i=J(a,r):this.mergeMode==="ave"?i=B(.5,J(a,r)):this.mergeMode==="mul"?i=B(a,r):this.mergeMode==null&&(i=[a,r]),this.returnState?this.mergeMode==null?i.concat(s):[i].concat(s):i})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Ri(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Ri(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[t,t]:n=t:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let a=this.forwardLayer.states.map(r=>null);return Array.isArray(n)?n.concat(a).concat(a):[n].concat(a).concat(a)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){let e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){let n=$a(t.layer);if(delete t.layer,t.numConstants!=null)throw new $e("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};qx.className="Bidirectional";re.registerClass(qx);function vz(e){return new jl(e)}function wz(e){return new ex(e)}function kz(e){return new Jb(e)}function Iz(e){return new Qb(e)}function Nz(e){return new Zb(e)}function Tz(e){return new nx(e)}function Sz(e){return new tx(e)}function Cz(e){return new um(e)}function Az(e){return new Qc(e)}function Fz(e){return new sx(e)}function _z(e){return new lm(e)}function Ez(e){return new ix(e)}function $z(e){return new ox(e)}function Dz(e){return new lx(e)}function Mz(e){return new ux(e)}function Rz(e){return new yx(e)}function Pz(e){return new fx(e)}function Oz(e){return new mm(e)}function Lz(e){return new mx(e)}function zz(e){return new gx(e)}function Wz(e){return new bx(e)}function Bz(e){return new xx(e)}function Vz(e){return new vx(e)}function Uz(e){return new kx(e)}function Gz(e){return new Ix(e)}function Hz(e){return new Tx(e)}function jz(e){return new Ax(e)}function qz(e){return new Sx(e)}function Xz(e){return new Cx(e)}function Kz(e){return new Nx(e)}function Yz(e){return new Fx(e)}function Jz(e){return new Dx(e)}function Qz(e){return new Mx(e)}function Zz(e){return new Rx(e)}function _b(e){return new Ox(e)}function eW(e){return _b(e)}function tW(e){return _b(e)}function Eb(e){return new zx(e)}function nW(e){return Eb(e)}function aW(e){return Eb(e)}function $b(e){return new Bx(e)}function rW(e){return $b(e)}function sW(e){return $b(e)}function iW(e){return new Vx(e)}function oW(e){return new Gx(e)}function Ck(e){return new Ux(e)}function Ak(e){return new Hx(e)}function Fk(e){return new Px(e)}function _k(e){return new Lx(e)}function lW(e){return new Wx(e)}function uW(e){return new px(e)}function cW(e){return new dm(e)}function pW(e){return new dx(e)}function dW(e){return new Zc(e)}function hW(e){return new cx(e)}function mW(e){return new pm(e)}function fW(e){return new hx(e)}function gW(e){return new hm(e)}function yW(e){return new er(e)}function bW(e){return new cm(e)}function xW(e){return new qx(e)}function vW(e){return new jx(e)}var wW=Ck,kW=Ak,IW=Fk,NW=_k;function TW(e){return new _x(e)}function SW(e){return new Ex(e)}function CW(e){return new $x(e)}function AW(e){return new wx(e)}var OI={};Oe(OI,{MAPE:()=>r4,MSE:()=>o4,binaryAccuracy:()=>XB,binaryCrossentropy:()=>KB,categoricalAccuracy:()=>JB,categoricalCrossentropy:()=>QB,cosineProximity:()=>t4,mape:()=>s4,meanAbsoluteError:()=>n4,meanAbsolutePercentageError:()=>a4,meanSquaredError:()=>i4,mse:()=>l4,precision:()=>ZB,recall:()=>e4,sparseCategoricalAccuracy:()=>YB});function XB(e,t){return Lb(e,t)}function KB(e,t){return Hk(e,t)}function YB(e,t){return jk(e,t)}function JB(e,t){return zb(e,t)}function QB(e,t){return Wb(e,t)}function ZB(e,t){return Gk(e,t)}function e4(e,t){return qW(e,t)}function t4(e,t){return Pb(e,t)}function n4(e,t){return Zh(e,t)}function a4(e,t){return Xl(e,t)}function r4(e,t){return Xl(e,t)}function s4(e,t){return Xl(e,t)}function i4(e,t){return Oi(e,t)}function o4(e,t){return Oi(e,t)}function l4(e,t){return Oi(e,t)}var LI={};Oe(LI,{modelFromJSON:()=>CB});var zI={};Oe(zI,{l1:()=>c4,l1l2:()=>u4,l2:()=>p4});function u4(e){return new Yc(e)}function c4(e){return RB(e)}function p4(e){return PB(e)}var WI=class extends ql{constructor(){super(...arguments);this.model=null}setModel(e){if(!(e instanceof wr))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function gm(e,t){return et}var VI=class extends WI{constructor(e){super();if(e==null&&(e={}),e.restoreBestWeights)throw new $e("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(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=gm:this.mode==="max"?this.monitorFunc=BI:this.monitor.indexOf("acc")!==-1?this.monitorFunc=BI:this.monitorFunc=gm,this.monitorFunc===gm&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===gm?Infinity:-Infinity}async onEpochEnd(e,t){await is(t);let n=this.getMonitorValue(t);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0)))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){e==null&&(e={});let t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}};function d4(e){return new VI(e)}var h4={earlyStopping:d4},Ma;(function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(Ma||(Ma={}));var UI;(function(e){let t;(function(n){n[n.LEGACY=0]="LEGACY",n[n.V1=1]="V1",n[n.V2=2]="V2"})(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))})(UI||(UI={}));var Xx={};function m4(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};Xx[e]=n}function GI(e){return Xx[e]}function f4(e){delete Xx[e]}function N(e,t,n,a,r){let s=t.inputParams[e];if(s&&s.inputIndexStart!==void 0){let o=s.inputIndexStart,l=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?o+1:s.inputIndexEnd;if(s.type==="tensor")return Fn(t.inputNames[s.inputIndexStart],n,a,r);if(s.type==="tensors")return t.inputNames.slice(o,l).map(p=>Fn(p,n,a,r));let u=Fn(t.inputNames.slice(o)[0],n,a,r),c=u.dataSync();return s.type==="number"?c[0]:I.toNestedArray(u.shape,c)}let i=t.attrParams[e];return i&&i.value}function Fn(e,t,n,a){let[r,s]=Bn(e);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[ym(r,o)]);return i!==void 0?t[ym(r,i)][s]:void 0}function g4(e,t,n){return t[ym(e,n.currentContextId)]}function kr(e,t){let[n,a]=Bn(e);return[ym(n,t&&t.currentContextId),a]}function ym(e,t){return t?`${e}-${t}`:e}function Bn(e){let t=e.split(":");return t.length===1?[e,0]:[t[0],Number(t[t.length-1])]}function bm(e,t,n){let a=N("pad",e,t,n);if(a==="explicit"){a=N("explicitPaddings",e,t,n);let r=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)r[s][0]=a[s*2],r[s][1]=a[s*2+1];return r}return a}function Ir(e){return e.kept?e:Kr(e)}var HI={};Oe(HI,{json:()=>y4});var y4=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],jI={};Oe(jI,{json:()=>b4});var b4=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],qI={};Oe(qI,{json:()=>x4});var x4=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}],XI={};Oe(XI,{json:()=>v4});var v4=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],KI={};Oe(KI,{json:()=>w4});var w4=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],YI={};Oe(YI,{json:()=>k4});var k4=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],JI={};Oe(JI,{json:()=>I4});var I4=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],QI={};Oe(QI,{json:()=>N4});var N4=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],ZI={};Oe(ZI,{json:()=>T4});var T4=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableSize",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"LookupTableSizeV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]}],eN={};Oe(eN,{json:()=>S4});var S4=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}],tN={};Oe(tN,{json:()=>C4});var C4=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],nN={};Oe(nN,{json:()=>A4});var A4=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],aN={};Oe(aN,{json:()=>F4});var F4=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],rN={};Oe(rN,{json:()=>_4});var _4=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],sN={};Oe(sN,{json:()=>E4});var E4=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],iN={};Oe(iN,{json:()=>$4});var $4=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],oN={};Oe(oN,{json:()=>D4});var D4=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}],uN=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[HI,jI,qI,XI,KI,YI,JI,tN,eN,QI,nN,aN,rN,sN,iN,oN,ZI],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}transformGraph(e,t={}){let n=e.node,a=[],r=[],s=[],i=n.reduce((m,f)=>(m[f.name]=this.mapNode(f),f.op.startsWith("Placeholder")?a.push(m[f.name]):f.op==="Const"?r.push(m[f.name]):(f.input==null||f.input.length===0)&&s.push(m[f.name]),m),{}),o=[],l=[],u={},c={};t!=null&&(u=this.mapSignatureEntries(t.inputs),c=this.mapSignatureEntries(t.outputs));let p=Object.keys(i);p.forEach(m=>{let f=i[m];f.inputNames.forEach(g=>{let[y]=kr(g);f.inputs.push(i[y]),i[y].children.push(f)})}),Object.keys(c).length===0?p.forEach(m=>{let f=i[m];f.children.length===0&&l.push(f)}):Object.keys(c).forEach(m=>{let[f]=kr(m),g=i[f];g!=null&&(g.signatureKey=c[m],l.push(g))}),Object.keys(u).length>0?Object.keys(u).forEach(m=>{let[f]=kr(m),g=i[f];g&&(g.signatureKey=u[m],o.push(g))}):o=a;let d={};e.library!=null&&e.library.function!=null&&(d=e.library.function.reduce((m,f)=>(m[f.signature.name]=this.mapFunction(f),m),{}));let h={nodes:i,inputs:o,outputs:l,weights:r,placeholders:a,signature:t,functions:d};return s.length>0&&(h.initNodes=s),h}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,n)=>(t[e[n].name]=n,t),{})}mapNode(e){let t=GI(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});let n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(a=>a.startsWith("^")?a.substr(1):a),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return t.inputs!=null&&(n.inputParams=t.inputs.reduce((a,r)=>(a[r.name]={type:r.type,inputIndexStart:r.start,inputIndexEnd:r.end},a),{})),t.attrs!=null&&(n.attrParams=t.attrs.reduce((a,r)=>{let s=r.type,i;switch(r.type){case"string":i=Kx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Kx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=av(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=av(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=Jx(e.attr,r.tfName,r.defaultValue||0),i===void 0&&!!r.tfDeprecatedName&&(i=Jx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=nv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=nv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=Yx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Yx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=sv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=sv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=tv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=tv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=rv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=rv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=Zx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Zx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=ev(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ev(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=lN(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=lN(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${r.type} for op: ${e.op}`)}return a[r.name]={value:i,type:s},a},{})),n}mapFunction(e){let t=e.nodeDef,n=[],a=[],r={};t!=null&&(r=t.reduce((u,c)=>(u[c.name]=this.mapNode(c),c.op==="Const"&&a.push(u[c.name]),u),{}));let s=[],i=[];e.signature.inputArg.forEach(u=>{let[c]=kr(u.name),p={name:c,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:Qx(u.type),type:"dtype"}},children:[]};p.signatureKey=u.name,s.push(p),r[c]=p}),Object.keys(r).forEach(u=>{let c=r[u];c.inputNames.forEach(p=>{let[d]=kr(p);c.inputs.push(r[d]),r[d].children.push(c)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[c,p]=kr(o[u.name]),d=r[c];d!=null&&(d.defaultOutput=p,i.push(d))});let l=this.mapArgsToSignature(e);return{nodes:r,inputs:s,outputs:i,weights:a,placeholders:n,signature:l}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n),t),{}),outputs:e.signature.outputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t),{})}}mapArgToTensorInfo(e,t){let n=e.name;return t!=null&&(n=t[n]),{name:n,dtype:e.type}}};function M4(e){let t=Z().global;if(typeof t.atob!="undefined")return t.atob(e);if(typeof Buffer!="undefined")return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function cN(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):M4(e);return t?n:n.toLowerCase()}function Kx(e,t,n,a=!1){let r=e[t];return r!=null?cN(r.s,a):n}function Yx(e,t,n){let a=e[t];return a?a.b:n}function Jx(e,t,n){let a=e[t]||{},r=a.i!=null?a.i:a.f!=null?a.f:n;return typeof r=="number"?r:parseInt(r,10)}function Qx(e){switch(typeof e=="string"&&(e=Ma[e]),e){case Ma.DT_FLOAT:return"float32";case Ma.DT_INT32:case Ma.DT_INT64:case Ma.DT_INT8:case Ma.DT_UINT8:return"int32";case Ma.DT_BOOL:return"bool";case Ma.DT_DOUBLE:return"float32";case Ma.DT_STRING:return"string";default:return null}}function lN(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function Zx(e,t,n){let a=e[t];return a&&a.type?Qx(a.type):n}function ev(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>Qx(r)):n}function pN(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function tv(e,t,n){let a=e[t];return a&&a.shape?pN(a.shape):n}function nv(e,t,n){let a=e[t];return a?((a.list.f&&a.list.f.length?a.list.f:a.list.i)||[]).map(r=>typeof r=="number"?r:parseInt(r,10)):n}function av(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>cN(s,a)):n}function rv(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>pN(r)):n}function sv(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var R4=class{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(a=>this.getInput(a)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((a,r)=>(a[r]=this.getAttr(r),a),{}))}getInput(e){return Fn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return Fn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Jx(this.node.rawAttrs,e,t);if(n.s!=null)return Kx(this.node.rawAttrs,e,t);if(n.b!=null)return Yx(this.node.rawAttrs,e,t);if(n.shape!=null)return tv(this.node.rawAttrs,e,t);if(n.type!=null)return Zx(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return nv(this.node.rawAttrs,e,t);if(n.list.s!=null)return av(this.node.rawAttrs,e,t);if(n.list.shape!=null)return rv(this.node.rawAttrs,e,t);if(n.list.b!=null)return sv(this.node.rawAttrs,e,t);if(n.list.type!=null)return ev(this.node.rawAttrs,e,t)}return t}},P4=(e,t,n)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[J(N("a",e,t,n),N("b",e,t,n))];case"AddN":return[e1(N("tensors",e,t,n))];case"FloorMod":case"Mod":return[qy(N("a",e,t,n),N("b",e,t,n))];case"Mul":return[B(N("a",e,t,n),N("b",e,t,n))];case"RealDiv":case"Div":return[xe(N("a",e,t,n),N("b",e,t,n))];case"DivNoNan":return[Oy(N("a",e,t,n),N("b",e,t,n))];case"FloorDiv":return[Zd(N("a",e,t,n),N("b",e,t,n))];case"Sub":return[me(N("a",e,t,n),N("b",e,t,n))];case"Minimum":return[Ll(N("a",e,t,n),N("b",e,t,n))];case"Maximum":return[qa(N("a",e,t,n),N("b",e,t,n))];case"Pow":return[gr(N("a",e,t,n),N("b",e,t,n))];case"SquaredDifference":return[kh(N("a",e,t,n),N("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},O4=(e,t,n)=>{switch(e.op){case"Abs":case"ComplexAbs":return[zt(N("x",e,t,n))];case"Acos":return[wy(N("x",e,t,n))];case"Acosh":return[ky(N("x",e,t,n))];case"Asin":return[Ny(N("x",e,t,n))];case"Asinh":return[Ty(N("x",e,t,n))];case"Atan":return[Sy(N("x",e,t,n))];case"Atan2":return[Cy(N("x",e,t,n),N("y",e,t,n))];case"Atanh":return[Ay(N("x",e,t,n))];case"Ceil":return[$y(N("x",e,t,n))];case"Complex":return[jr(N("real",e,t,n),N("imag",e,t,n))];case"Cos":return[Ac(N("x",e,t,n))];case"Cosh":return[rh(N("x",e,t,n))];case"Elu":return[Ml(N("x",e,t,n))];case"Erf":return[Ly(N("x",e,t,n))];case"Exp":return[dn(N("x",e,t,n))];case"Expm1":return[zy(N("x",e,t,n))];case"Floor":return[Rl(N("x",e,t,n))];case"Log":return[Pn(N("x",e,t,n))];case"Log1p":return[lh(N("x",e,t,n))];case"Imag":return[ih(N("x",e,t,n))];case"Neg":return[St(N("x",e,t,n))];case"Reciprocal":return[Yy(N("x",e,t,n))];case"Real":return[Dc(N("x",e,t,n))];case"Relu":return[qe(N("x",e,t,n))];case"Round":return[Jy(N("x",e,t,n))];case"Selu":return[yh(N("x",e,t,n))];case"Sigmoid":return[ca(N("x",e,t,n))];case"Sin":return[bh(N("x",e,t,n))];case"Sign":return[Qy(N("x",e,t,n))];case"Sinh":return[xh(N("x",e,t,n))];case"Softplus":return[Pl(N("x",e,t,n))];case"Sqrt":return[an(N("x",e,t,n))];case"Square":return[lt(N("x",e,t,n))];case"Tanh":return[Dl(N("x",e,t,n))];case"Tan":return[tb(N("x",e,t,n))];case"ClipByValue":return[Xt(N("x",e,t,n),N("clipValueMin",e,t,n),N("clipValueMax",e,t,n))];case"Relu6":return[fh(N("x",e,t,n))];case"Rsqrt":return[gh(Fn(e.inputNames[0],t,n))];case"Prod":return[hh(N("x",e,t,n),N("axes",e,t,n))];case"LeakyRelu":return[Fc(N("x",e,t,n),N("alpha",e,t,n))];case"Prelu":return[$c(N("x",e,t,n),N("alpha",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function ga(e,t,n=""){if(!(typeof e=="number"||typeof t=="number")){I.assert(e.length===t.length,()=>n+` Shapes ${e} and ${t} must match`);for(let a=0;an+` Shapes ${e} and ${t} must match`)}}}function dN(e){return!(typeof e=="number"||e.some(t=>t<0))}function np(e,t,n){let a=iv(e,n),r=!dN(a);if(r&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${a}`);if(r&&t.forEach(s=>{a=iv(s.shape,a)}),!dN(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function iv(e,t){if(typeof e=="number")return t;if(typeof t=="number")return e;if(e.length!==t.length)throw new Error(`Incompatible ranks during merge: ${e} vs. ${t}`);let n=[];for(let a=0;a=0&&s>=0&&r!==s)throw new Error(`Incompatible shape during merge: ${e} vs. ${t}`);n[a]=r>=0?r:s}return n}var L4=class{constructor(e,t,n,a,r,s,i){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=a,this.identicalElementShapes=r,this.dynamicSize=s,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=ce(0),qt(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.tensor.id))&&t.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);let t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(t=>this.read(t))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, + because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),ga(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);n.tensor=t,qt(t),n.written=!0,this.tensors[e]=n}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach((n,a)=>this.write(n,t[a]))}gather(e,t){if(!!t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let a=0;a=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(e,ct(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let n=0,a=e.map(o=>(n+=o,n));if(n!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${n}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);let r=n===0?0:t.size/n,s=[];D(()=>{t=U(t,[1,n,r]);for(let o=0;o{if(n!==r.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${r.dtype}`);ga(t,r.shape,"TensorList shape mismatch: "),jt(r)}),this.idTensor=pe(0),this.maxNumElements=a,jt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new np([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.id))&&t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,n=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);ga(e,this.elementShape,"TensorList shape mismatch: ");let a=tp(this.elementShape,this.tensors,e);return D(()=>{let r=this.tensors.map(s=>U(s,a));return $t(r,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=tp(this.elementShape,this.tensors,e),a=this.tensors.pop();return ga(a.shape,e,"TensorList shape mismatch: "),U(a,n)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(ga(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");jt(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,n){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);ga(this.tensors[e].shape,t,"TensorList shape mismatch: ");let a=tp(this.elementShape,this.tensors,t);return U(this.tensors[e],a)}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);ga(this.elementShape,t.shape,"TensorList shape mismatch: "),jt(t),this.tensors[e]=t}gather(e,t,n){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);ga(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());let a=tp(this.elementShape,this.tensors,n);return e.length===0?Yn([],[0].concat(a)):D(()=>{let r=e.map(s=>U(this.tensors[s],a));return $t(r,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);ga(this.elementShape,t,"TensorList shape mismatch: ");let n=tp(this.elementShape,this.tensors,t);return this.size()===0?Yn([],[0].concat(n)):D(()=>{let a=this.tensors.map(r=>U(r,n));return Je(a,0)})}};function h4(e,t,n){let a=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==n)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${n}`);let r=e.shape.slice(1);ga(r,t,"TensorList shape mismatch: ");let s=ut(e);return new np(s,t,a)}function m4(e,t,n){return new np([],e,t,n)}function f4(e,t,n,a){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);let r=Math.max(...t);if(a!=null&&a!==-1&&r>=a)throw new Error(`Max index must be < array size (${r} vs. ${a})`);let s=new np([],n,e.dtype,a),i=ut(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function g4(e,t,n){let a=0,r=t.map(u=>(a+=u,a));if(a!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to + ${n}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);let r=n===0?0:t.size/n,s=[];M(()=>{t=H(t,[1,n,r]);for(let o=0;o{if(n!==r.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${r.dtype}`);ga(t,r.shape,"TensorList shape mismatch: "),qt(r)}),this.idTensor=ce(0),this.maxNumElements=a,qt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new ap([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.id))&&t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,n=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);ga(e,this.elementShape,"TensorList shape mismatch: ");let a=np(this.elementShape,this.tensors,e);return M(()=>{let r=this.tensors.map(s=>H(s,a));return Dt(r,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=np(this.elementShape,this.tensors,e),a=this.tensors.pop();return ga(a.shape,e,"TensorList shape mismatch: "),H(a,n)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(ga(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");qt(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,n){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);ga(this.tensors[e].shape,t,"TensorList shape mismatch: ");let a=np(this.elementShape,this.tensors,t);return H(this.tensors[e],a)}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);ga(this.elementShape,t.shape,"TensorList shape mismatch: "),qt(t),this.tensors[e]=t}gather(e,t,n){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);ga(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());let a=np(this.elementShape,this.tensors,n);return e.length===0?Yn([],[0].concat(a)):M(()=>{let r=e.map(s=>H(this.tensors[s],a));return Dt(r,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);ga(this.elementShape,t,"TensorList shape mismatch: ");let n=np(this.elementShape,this.tensors,t);return this.size()===0?Yn([],[0].concat(n)):M(()=>{let a=this.tensors.map(r=>H(r,n));return Je(a,0)})}};function z4(e,t,n){let a=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==n)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${n}`);let r=e.shape.slice(1);ga(r,t,"TensorList shape mismatch: ");let s=ct(e);return new ap(s,t,a)}function W4(e,t,n){return new ap([],e,t,n)}function B4(e,t,n,a){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);let r=Math.max(...t);if(a!=null&&a!==-1&&r>=a)throw new Error(`Max index must be < array size (${r} vs. ${a})`);let s=new ap([],n,e.dtype,a),i=ct(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function V4(e,t,n){let a=0,r=t.map(c=>(a+=c,a));if(a!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${a}, and tensor's shape is: ${e.shape}`);let s=e.shape.slice(1),i=sv(s,n),o=a===0?0:e.size/a,l=D(()=>{let u=[];e=U(e,[1,a,o]);for(let p=0;p{switch(e.op){case"If":case"StatelessIf":{let a=k("thenBranch",e,t,n),r=k("elseBranch",e,t,n),s=k("cond",e,t,n),i=k("args",e,t,n);return(await s.data())[0]?n.functionMap[a].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap):n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{let a=k("body",e,t,n),r=k("cond",e,t,n),s=k("args",e,t,n),i=await n.functionMap[r].executeFunctionAsync(s,n.tensorArrayMap,n.tensorListMap),o=s.map(u=>u.id),l=await i[0].data();i.forEach(u=>{!u.kept&&o.indexOf(u.id)===-1&&u.dispose()});let c=s;for(;l[0];){let u=c;c=await n.functionMap[a].executeFunctionAsync(c,n.tensorArrayMap,n.tensorListMap);let p=c.map(h=>h.id);u.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&p.indexOf(h.id)===-1&&h.dispose()});let d=await n.functionMap[r].executeFunctionAsync(c,n.tensorArrayMap,n.tensorListMap);l=await d[0].data(),d.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&p.indexOf(h.id)===-1&&h.dispose()})}return c}case"LoopCond":{let a=k("pred",e,t,n);return[Ir(a)]}case"Switch":{let a=k("pred",e,t,n),r=k("data",e,t,n);return r.kept||(r=Ir(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>En(r,t,n)!==void 0);if(a){let r=En(a,t,n);return[Ir(r)]}return}case"Enter":{let a=k("frameName",e,t,n),r=k("tensor",e,t,n);return n.enterFrame(a),[Ir(r)]}case"Exit":{let a=k("tensor",e,t,n);return n.exitFrame(),[Ir(a)]}case"NextIteration":{let a=k("tensor",e,t,n);return n.nextIteration(),[Ir(a)]}case"TensorArrayV3":{let a=k("size",e,t,n),r=k("dtype",e,t,n),s=k("elementShape",e,t,n),i=k("dynamicSize",e,t,n),o=k("clearAfterRead",e,t,n),l=k("identicalElementShapes",e,t,n),c=k("name",e,t,n),u=new d4(c,r,a,s,l,i,o);return n.addTensorArray(u),[u.idTensor,pe(1)]}case"TensorArrayWriteV3":{let a=k("tensorArrayId",e,t,n),r=k("index",e,t,n),s=k("tensor",e,t,n),i=n.getTensorArray(a.id);return i.write(r,s),[i.idTensor]}case"TensorArrayReadV3":{let a=k("tensorArrayId",e,t,n),r=k("index",e,t,n);return[n.getTensorArray(a.id).read(r)]}case"TensorArrayGatherV3":{let a=k("tensorArrayId",e,t,n),r=k("indices",e,t,n),s=k("dtype",e,t,n);return[n.getTensorArray(a.id).gather(r,s)]}case"TensorArrayScatterV3":{let a=k("tensorArrayId",e,t,n),r=k("indices",e,t,n),s=k("tensor",e,t,n),i=n.getTensorArray(a.id);return i.scatter(r,s),[i.idTensor]}case"TensorArrayConcatV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id),s=k("dtype",e,t,n);return[r.concat(s)]}case"TensorArraySplitV3":{let a=k("tensorArrayId",e,t,n),r=k("tensor",e,t,n),s=k("lengths",e,t,n),i=n.getTensorArray(a.id);return i.split(s,r),[i.idTensor]}case"TensorArraySizeV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return[pe(r.size(),"int32")]}case"TensorArrayCloseV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return r.clearAndClose(),[r.idTensor]}case"TensorListSetItem":{let a=k("tensorListId",e,t,n),r=k("index",e,t,n),s=k("tensor",e,t,n),i=n.getTensorList(a.id);return i.setItem(r,s),[i.idTensor]}case"TensorListGetItem":{let a=k("tensorListId",e,t,n),r=k("index",e,t,n),s=k("elementShape",e,t,n),i=k("elementDType",e,t,n);return[n.getTensorList(a.id).getItem(r,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let a=k("indices",e,t,n),r=k("tensor",e,t,n),s=k("elementShape",e,t,n),i=k("numElements",e,t,n),o=f4(r,a,s,i);return n.addTensorList(o),[o.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let a=k("elementShape",e,t,n),r=k("elementDType",e,t,n),s;e.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=k(s,e,t,n),o=m4(a,r,i);return n.addTensorList(o),[o.idTensor]}case"TensorListGather":{let a=k("tensorListId",e,t,n),r=k("indices",e,t,n),s=k("elementShape",e,t,n),i=k("elementDType",e,t,n);return[n.getTensorList(a.id).gather(r,i,s)]}case"TensorListStack":{let a=k("tensorListId",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n),i=k("numElements",e,t,n);return[n.getTensorList(a.id).stack(r,s,i)]}case"TensorListFromTensor":{let a=k("tensor",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n),i=h4(a,r,s);return n.addTensorList(i),[i.idTensor]}case"TensorListConcat":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id),s=k("dtype",e,t,n),i=k("elementShape",e,t,n);return[r.concat(s,i)]}case"TensorListPushBack":{let a=k("tensorListId",e,t,n),r=k("tensor",e,t,n),s=n.getTensorList(a.id);return s.pushBack(r),[s.idTensor]}case"TensorListPopBack":{let a=k("tensorListId",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n);return[n.getTensorList(a.id).popBack(r,s)]}case"TensorListSplit":{let a=k("tensor",e,t,n),r=k("elementShape",e,t,n),s=k("lengths",e,t,n),i=g4(a,s,r);return n.addTensorList(i),[i.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function pT(e,t,n){let[a,r]=k("fusedOps",e,t,n),s=a==="biasadd",i=r==="prelu",o=a==="fusedbatchnorm",l=k("numArgs",e,t,n);if(s){if(i&&l!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(o)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");let c=k("strides",e,t,n),u=ym(e,t,n),p=k("dataFormat",e,t,n).toUpperCase(),d=k("dilations",e,t,n),[h,m]=k("args",e,t,n),f=k("leakyreluAlpha",e,t,n);return{stride:c,pad:u,dataFormat:p,dilations:d,biasArg:h,preluArg:m,activationFunc:r,leakyreluAlpha:f}}var b4=(e,t,n)=>{switch(e.op){case"Conv1D":{let a=k("stride",e,t,n),r=k("pad",e,t,n),s=k("dataFormat",e,t,n).toUpperCase(),i=k("dilation",e,t,n);return[th(k("x",e,t,n),k("filter",e,t,n),a,r,s,i)]}case"Conv2D":{let a=k("strides",e,t,n),r=ym(e,t,n),s=k("dataFormat",e,t,n).toUpperCase(),i=k("dilations",e,t,n);return[Ft(k("x",e,t,n),k("filter",e,t,n),[a[1],a[2]],r,s,[i[1],i[2]])]}case"_FusedConv2D":{let{stride:a,pad:r,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:c,leakyreluAlpha:u}=pT(e,t,n);return[ns.conv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[a[1],a[2]],pad:r,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:c,preluActivationWeights:l,leakyreluAlpha:u})]}case"FusedDepthwiseConv2dNative":{let{stride:a,pad:r,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:c,leakyreluAlpha:u}=pT(e,t,n);return[ns.depthwiseConv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[a[1],a[2]],pad:r,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:c,preluActivationWeights:l,leakyreluAlpha:u})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let a=k("outputShape",e,t,n),r=k("strides",e,t,n),s=ym(e,t,n);return[nh(k("x",e,t,n),k("filter",e,t,n),a,[r[1],r[2]],s)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let a=k("strides",e,t,n),r=ym(e,t,n),s=k("dilations",e,t,n),i=k("dataFormat",e,t,n).toUpperCase();return[Qr(k("input",e,t,n),k("filter",e,t,n),[a[1],a[2]],r,i,[s[1],s[2]])]}case"Conv3D":{let a=k("strides",e,t,n),r=k("pad",e,t,n),s=k("dataFormat",e,t,n).toUpperCase(),i=k("dilations",e,t,n);return[Dy(k("x",e,t,n),k("filter",e,t,n),[a[1],a[2],a[3]],r,s,[i[1],i[2],i[3]])]}case"AvgPool":{let a=k("strides",e,t,n),r=k("pad",e,t,n),s=k("kernelSize",e,t,n);return[Qn(k("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r)]}case"MaxPool":{let a=k("strides",e,t,n),r=k("pad",e,t,n),s=k("kernelSize",e,t,n);return[At(k("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r)]}case"MaxPoolWithArgmax":{let a=k("strides",e,t,n),r=k("pad",e,t,n),s=k("kernelSize",e,t,n),i=k("includeBatchInIndex",e,t,n),{result:o,indexes:l}=Ik(k("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r,i);return[o,l]}case"AvgPool3D":{let a=k("strides",e,t,n),r=k("pad",e,t,n),s=k("kernelSize",e,t,n);return[Fy(k("x",e,t,n),[s[1],s[2],s[3]],[a[1],a[2],a[3]],r)]}case"MaxPool3D":{let a=k("strides",e,t,n),r=k("pad",e,t,n),s=k("kernelSize",e,t,n);return[Gy(k("x",e,t,n),[s[1],s[2],s[3]],[a[1],a[2],a[3]],r)]}case"Dilation2D":{let a=k("strides",e,t,n),r=k("pad",e,t,n),s=k("dilations",e,t,n),i=a[1],o=a[2],l=s[1],c=s[2];return[My(k("x",e,t,n),k("filter",e,t,n),[i,o],r,[l,c],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},x4=(e,t,n)=>{switch(e.op){case"Fill":{let a=k("shape",e,t,n),r=k("dtype",e,t,n),s=k("value",e,t,n);return[Sn(a,s,r)]}case"LinSpace":{let a=k("start",e,t,n),r=k("stop",e,t,n),s=k("num",e,t,n);return[gk(a,r,s)]}case"Multinomial":{let a=k("logits",e,t,n),r=k("numSamples",e,t,n),s=k("seed",e,t,n);return[Tk(a,r,s)]}case"OneHot":{let a=k("indices",e,t,n),r=k("depth",e,t,n),s=k("onValue",e,t,n),i=k("offValue",e,t,n);return[Fl(a,r,s,i)]}case"Ones":return[Ka(k("shape",e,t,n),k("dtype",e,t,n))];case"OnesLike":return[On(k("x",e,t,n))];case"RandomUniform":return[zl(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("dtype",e,t,n))];case"Range":{let a=k("start",e,t,n),r=k("stop",e,t,n),s=k("step",e,t,n);return[hh(a,r,s,k("dtype",e,t,n))]}case"TruncatedNormal":{let a=k("shape",e,t,n),r=k("mean",e,t,n),s=k("stdDev",e,t,n),i=k("seed",e,t,n);return[kh(a,r,s,k("dtype",e,t,n),i)]}case"Zeros":return[xt(k("shape",e,t,n),k("dtype",e,t,n))];case"ZerosLike":return[Ge(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function iv(e,t,n){let a=k("boxes",e,t,n),r=k("scores",e,t,n),s=k("maxOutputSize",e,t,n),i=k("iouThreshold",e,t,n),o=k("scoreThreshold",e,t,n),l=k("softNmsSigma",e,t,n);return{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}}var v4=async(e,t,n)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}=iv(e,t,n),c=await Xa.nonMaxSuppressionWithScoreAsync(a,r,s,i,o,l);return[c.selectedIndices,c.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=iv(e,t,n),l=k("padToMaxOutputSize",e,t,n),c=await Xa.nonMaxSuppressionPaddedAsync(a,r,s,i,o,l);return[c.selectedIndices,c.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=iv(e,t,n);return[await Xa.nonMaxSuppressionAsync(a,r,s,i,o)]}case"Where":{let a=ue(k("condition",e,t,n),"bool"),r=[await ab(a)];return a.dispose(),r}case"ListDiff":return Ck(k("x",e,t,n),k("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}},w4=(e,t,n)=>{switch(e.op){case"TopKV2":{let a=k("x",e,t,n),r=k("k",e,t,n),s=k("sorted",e,t,n),i=tb(a,r,s);return[i.values,i.indices]}case"Unique":{let a=k("x",e,t,n),r=Ih(a);return[r.values,r.indices]}case"UniqueV2":{let a=k("x",e,t,n),r=k("axis",e,t,n),s=Ih(a,r);return[s.values,s.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},k4=(e,t,n)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let a=k("default",e,t,n);return[En(e.name,t,n)||a];case"Placeholder":return[En(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let c=k("x",e,t,n);return[Ir(c)]}case"IdentityN":return k("x",e,t,n).map(c=>Ir(c));case"Snapshot":let r=k("x",e,t,n);return[Ir(r)];case"Shape":return[Qe(k("x",e,t,n).shape,"int32")];case"ShapeN":return k("x",e,t,n).map(c=>Qe(c.shape));case"Size":return[pe(k("x",e,t,n).size,"int32")];case"Rank":return[pe(k("x",e,t,n).rank,"int32")];case"NoOp":return[pe(1)];case"Print":let s=k("x",e,t,n),i=k("data",e,t,n),o=k("message",e,t,n),l=k("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(o);for(let c=0;ce.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}async import(e,t){this.checkKeyAndValueTensor(e,t);let n=await e.data();return this.tensorMap.forEach(a=>a.dispose()),this.tensorMap.clear(),D(()=>{let a=ut(t),r=n.length,s=a.length;w.assert(r===s,()=>`The number of elements doesn't match, keys has ${r} elements, the values has ${s} elements.`);for(let i=0;i{let a=[];for(let r=0;r{switch(e.op){case"HashTable":case"HashTableV2":{let r=k("keyDType",e,t,n),s=k("valueDType",e,t,n),i=new I4(r,s);return a.addHashTable(e.name,i),[i.handle]}case"LookupTableImport":case"LookupTableImportV2":{let r=k("tableHandle",e,t,n,a),s=k("keys",e,t,n),i=k("values",e,t,n);return[await a.getHashTableById(r.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let r=k("tableHandle",e,t,n,a),s=k("keys",e,t,n),i=k("defaultValue",e,t,n);return[await a.getHashTableById(r.id).find(s,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},N4=(e,t,n)=>{switch(e.op){case"ResizeBilinear":{let a=k("images",e,t,n),r=k("size",e,t,n),s=k("alignCorners",e,t,n),i=k("halfPixelCenters",e,t,n);return[Xa.resizeBilinear(a,[r[0],r[1]],s,i)]}case"ResizeNearestNeighbor":{let a=k("images",e,t,n),r=k("size",e,t,n),s=k("alignCorners",e,t,n),i=k("halfPixelCenters",e,t,n);return[Xa.resizeNearestNeighbor(a,[r[0],r[1]],s,i)]}case"CropAndResize":{let a=k("image",e,t,n),r=k("boxes",e,t,n),s=k("boxInd",e,t,n),i=k("cropSize",e,t,n),o=k("method",e,t,n),l=k("extrapolationValue",e,t,n);return[Xa.cropAndResize(a,r,s,i,o,l)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},S4=(e,t,n)=>{switch(e.op){case"Equal":return[Zr(k("a",e,t,n),k("b",e,t,n))];case"NotEqual":return[_i(k("a",e,t,n),k("b",e,t,n))];case"Greater":return[pa(k("a",e,t,n),k("b",e,t,n))];case"GreaterEqual":return[es(k("a",e,t,n),k("b",e,t,n))];case"Less":return[ih(k("a",e,t,n),k("b",e,t,n))];case"LessEqual":return[Si(k("a",e,t,n),k("b",e,t,n))];case"LogicalAnd":return[da(k("a",e,t,n),k("b",e,t,n))];case"LogicalNot":return[Ec(k("a",e,t,n))];case"LogicalOr":return[ch(k("a",e,t,n),k("b",e,t,n))];case"Select":case"SelectV2":return[Nn(k("condition",e,t,n),k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},C4=(e,t,n)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[ze(k("a",e,t,n),k("b",e,t,n),k("transposeA",e,t,n),k("transposeB",e,t,n))];case"Transpose":return[Ve(k("x",e,t,n),k("perm",e,t,n))];case"_FusedMatMul":let[a,r]=k("fusedOps",e,t,n),s=a==="biasadd",i=r==="prelu",o=k("numArgs",e,t,n),l=k("leakyreluAlpha",e,t,n);if(s){if(i&&o!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&o!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[c,u]=k("args",e,t,n);return[ns.matMul({a:k("a",e,t,n),b:k("b",e,t,n),transposeA:k("transposeA",e,t,n),transposeB:k("transposeB",e,t,n),bias:c,activation:r,preluActivationWeights:u,leakyreluAlpha:l})];default:throw TypeError(`Node type ${e.op} is not implemented`)}},_4=(e,t,n)=>{switch(e.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[fr(k("x",e,t,n),k("mean",e,t,n),k("variance",e,t,n),k("offset",e,t,n),k("scale",e,t,n),k("epsilon",e,t,n))];case"FusedBatchNormV3":return[fr(k("x",e,t,n),k("mean",e,t,n),k("variance",e,t,n),k("offset",e,t,n),k("scale",e,t,n),k("epsilon",e,t,n))];case"LRN":return[By(k("x",e,t,n),k("radius",e,t,n),k("bias",e,t,n),k("alpha",e,t,n),k("beta",e,t,n))];case"Softmax":return[Ta(k("x",e,t,n))];case"LogSoftmax":return[uh(k("x",e,t,n))];case"SparseToDense":return[rb(k("sparseIndices",e,t,n),k("outputShape",e,t,n),k("sparseValues",e,t,n),k("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},E4=(e,t,n)=>{switch(e.op){case"Max":{let i=k("axis",e,t,n),o=k("keepDims",e,t,n);return[Zn(k("x",e,t,n),i,o)]}case"Mean":{let i=k("axis",e,t,n),o=k("keepDims",e,t,n);return[St(k("x",e,t,n),i,o)]}case"Min":{let i=k("axis",e,t,n),o=k("keepDims",e,t,n);return[Ol(k("x",e,t,n),i,o)]}case"Sum":{let i=k("axis",e,t,n),o=k("keepDims",e,t,n);return[Se(k("x",e,t,n),i,o)]}case"All":{let i=k("axis",e,t,n),o=k("keepDims",e,t,n);return[Zd(k("x",e,t,n),i,o)]}case"Any":{let i=k("axis",e,t,n),o=k("keepDims",e,t,n);return[kc(k("x",e,t,n),i,o)]}case"ArgMax":{let i=k("axis",e,t,n);return[Ic(k("x",e,t,n),i)]}case"ArgMin":{let i=k("axis",e,t,n);return[ky(k("x",e,t,n),i)]}case"Prod":{let i=k("axis",e,t,n),o=k("keepDims",e,t,n);return[dh(k("x",e,t,n),i,o)]}case"Cumsum":{let i=k("axis",e,t,n),o=k("exclusive",e,t,n),l=k("reverse",e,t,n);return[rh(k("x",e,t,n),i,o,l)]}case"Bincount":let a=k("x",e,t,n),r=k("weights",e,t,n),s=k("size",e,t,n);return[sk(a,r,s)];case"DenseBincount":{let i=k("x",e,t,n),o=k("weights",e,t,n),l=k("size",e,t,n),c=k("binaryOutput",e,t,n);return[pk(i,o,l,c)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},F4=(e,t,n)=>{switch(e.op){case"ConcatV2":case"Concat":{let a=k("n",e,t,n),r=k("axis",e,t,n),s=k("tensors",e,t,n);return s=s.slice(0,a),[Je(s,r)]}case"Gather":{let a=k("x",e,t,n),r=k("indices",e,t,n);return[Ni(a,ue(r,"int32"),0)]}case"GatherV2":{let a=k("axis",e,t,n),r=k("batchDims",e,t,n),s=k("x",e,t,n),i=k("indices",e,t,n);return[Ni(s,ue(i,"int32"),a,r)]}case"Reverse":{let a=k("dims",e,t,n),r=[];for(let i=0;i{let a=k("axis",e,t,n),r=k("tensors",e,t,n),s=r[0].shape,i=ts(r[0]).shape,o=r.map(l=>{let c=w.arraysEqual(l.shape,s);if(!c&&!w.arraysEqual(ts(l).shape,i))throw new Error("the input tensors shape does not match");return c?l:U(l,s)});return[$t(o,a)]});case"Unpack":{let a=k("axis",e,t,n),r=k("tensor",e,t,n);return ut(r,a)}case"Tile":{let a=k("reps",e,t,n);return[Ha(k("x",e,t,n),a)]}case"Split":case"SplitV":{let a=k("axis",e,t,n),r=k("numOrSizeSplits",e,t,n),s=k("x",e,t,n);return zn(s,r,a)}case"ScatterNd":{let a=k("indices",e,t,n),r=k("values",e,t,n),s=k("shape",e,t,n);return[Ak(a,r,s)]}case"GatherNd":{let a=k("x",e,t,n),r=k("indices",e,t,n);return[$k(a,r)]}case"SparseToDense":{let a=k("sparseIndices",e,t,n),r=k("outputShape",e,t,n),s=k("sparseValues",e,t,n),i=k("defaultValue",e,t,n);return[rb(a,s,r,s.dtype===i.dtype?i:ue(i,s.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},A4=(e,t,n)=>{switch(e.op){case"FFT":return[Rc(k("x",e,t,n))];case"IFFT":return[Wl(k("x",e,t,n))];case"RFFT":return[Mc(k("x",e,t,n))];case"IRFFT":return[vh(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},$4=(e,t,n)=>{switch(e.op){case"Cast":return[ue(k("x",e,t,n),k("dtype",e,t,n))];case"ExpandDims":{let a=k("axis",e,t,n);return[Mn(k("x",e,t,n),a)]}case"Squeeze":{let a=k("axis",e,t,n);return[ts(k("x",e,t,n),a)]}case"Reshape":return[U(k("x",e,t,n),k("shape",e,t,n))];case"MirrorPad":return[Hy(k("x",e,t,n),k("padding",e,t,n),k("mode",e,t,n))];case"PadV2":case"Pad":return[ea(k("x",e,t,n),k("padding",e,t,n),k("constantValue",e,t,n))];case"SpaceToBatchND":{let a=k("blockShape",e,t,n),r=k("paddings",e,t,n);return[Fc(k("x",e,t,n),a,r)]}case"BatchToSpaceND":{let a=k("blockShape",e,t,n),r=k("crops",e,t,n);return[Nc(k("x",e,t,n),a,r)]}case"DepthToSpace":{let a=k("blockSize",e,t,n),r=k("dataFormat",e,t,n).toUpperCase();return[Ry(k("x",e,t,n),a,r)]}case"BroadcastTo":return[Sc(k("x",e,t,n),k("shape",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function dT(e,t,n,a){let r=((s,i,o)=>{switch(s.category){case"arithmetic":return D(()=>c4(s,i,o));case"basic_math":return D(()=>p4(s,i,o));case"control":return y4(s,i,o);case"convolution":return D(()=>b4(s,i,o));case"creation":return D(()=>x4(s,i,o));case"dynamic":return v4(s,i,o);case"evaluation":return D(()=>w4(s,i,o));case"image":return D(()=>N4(s,i,o));case"graph":return D(()=>k4(s,i,o));case"logical":return D(()=>S4(s,i,o));case"matrices":return D(()=>C4(s,i,o));case"normalization":return D(()=>_4(s,i,o));case"reduction":return D(()=>E4(s,i,o));case"slice_join":return D(()=>F4(s,i,o));case"spectral":return D(()=>A4(s,i,o));case"transformation":return D(()=>$4(s,i,o));case"hash_table":return T4(s,i,o,a);case"custom":let l=VI(s.op);if(l&&l.customExecutor)return l.customExecutor(new u4(s,i,o));throw TypeError(`Custom op ${s.op} is not registered.`);default:throw TypeError(`Unknown op '${s.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,n);return w.isPromise(r)?r.then(s=>[].concat(s)):[].concat(r)}var hT=class{constructor(e={},t={},n={},a={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(let t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(let t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}};function fT(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,c=Object.keys(e).map(d=>Wn(d)[0]),u=[];a!=null&&(u=a.map(d=>Wn(d.name)[0]));let p=[...t];for(;p.length>0;){let d=p.pop();if((mT(d)||D4(d)||R4(d))&&i==null&&(i=d,o=i.children.map(h=>h.name).filter(h=>r.has(h))),r.add(d.name),n[d.name]==null&&c.indexOf(d.name)===-1&&u.indexOf(d.name)===-1){if(d.inputs.length===0){s.push(d.name);continue}d.inputs.forEach(h=>{l.has(h.name)||(l.add(h.name),p.push(h))})}}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:i,syncInputs:o}}function M4(e,t,n){let{usedNodes:a,inputs:r}=n,s=[],i=Object.keys(r).map(u=>Wn(u)[0]).map(u=>e.nodes[u]),o=e.initNodes;i.forEach(u=>{a.has(u.name)&&s.push(u)}),e.weights.forEach(u=>{a.has(u.name)&&s.push(u)}),o!=null&&o.forEach(u=>{a.has(u.name)&&s.push(u)});let l=new Set,c=[];for(;s.length>0;){let u=s.pop();l.add(u.name),t[u.name]||c.push(u),u.children.forEach(p=>{!l.has(p.name)&&a.has(p.name)&&p.inputs.every(d=>l.has(d.name))&&s.push(p)})}return c}var P4=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],O4=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],L4=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2"];function mT(e){return P4.indexOf(e.op)>=0}function D4(e){return O4.indexOf(e.op)>=0}function R4(e){return L4.indexOf(e.op)>=0}var ov=class{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(n=>{this._functionExecutorMap[n]=new ov(e.functions[n],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){let t=Object.keys(e).map(n=>e[n].map(a=>a.id));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{let t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t})}get functions(){return Object.keys(this._functions).reduce((e,t)=>(e[t]=this._functions[t].signature,e),{})}getCompilationKey(e,t){let n=e.map(r=>r.name).sort(),a=t.map(r=>r.name).sort();return n.join(this.SEPERATOR)+"--"+a.join(this.SEPERATOR)}compile(e,t){let n=fT(e,t,this.weightMap,this._initNodes),{missingInputs:a,dynamicNode:r,syncInputs:s}=n;if(r!=null)throw new Error(`This execution contains the node '${r.name}', which has the dynamic op '${r.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(a.length>0){let i=t.map(l=>l.name),o=Object.keys(e);throw new Error(`Cannot compute the outputs [${i}] from the provided inputs [${o}]. Missing the following inputs: [${a}]`)}return M4(this.graph,this.weightMap,n)}execute(e,t){e=this.mapInputs(e);let n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let a=n.map(u=>this.graph.nodes[Wn(u)[0]]),r=t.map(u=>Wn(u)[0]),s=r.map(u=>this.graph.nodes[u]);s.length===0&&(s=this._outputs);let i=this.getCompilationKey(a,s),o=this.compiledMap.get(i);o==null&&(o=this.compile(e,s),this.compiledMap.set(i,o));let l={},c={};return D(()=>{let u=new hT(this.weightMap,l,c,this.functionExecutorMap),p=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{let[f,g]=Wn(m),y=[];y[g]=e[m],p[f]=y});let d=this.getFrozenTensorIds(p),h={};for(let m=0;mEn(m,p,u))})}getFrozenTensorIds(e){let t=[].concat.apply([],Object.keys(e).map(n=>e[n]).map(n=>n.map(a=>a.id)));return new Set(t)}checkTensorForDisposal(e,t,n,a,r,s,i){t.category==="control"||s.indexOf(e)!==-1||(n[e].forEach(o=>{o!=null&&(i[o.id]=(i[o.id]||0)+t.children.length)}),t.inputs.forEach(o=>{if(o.category!=="control"){let l=GW(o.name,n,a);l!=null&&l.forEach(c=>{if(c&&!r.has(c.id)){let u=i[c.id];u===1?(c.dispose(),delete i[c.id]):u!=null&&i[c.id]--}})}}))}async executeAsync(e,t){return this._executeAsync(e,t)}async _executeAsync(e,t,n=!1,a={},r={}){n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));let s=new hT(this.weightMap,a,r,this.functionExecutorMap),i=await this.executeWithControlFlow(e,s,t,n),o=t.map(p=>En(p,i,s)),l=o.map(p=>p.id),c=Object.keys(e).map(p=>e[p].id),u=new Set([...l,...c,...this.weightIds]);return Object.keys(i).forEach(p=>{i[p].forEach(d=>{d&&!d.isDisposed&&!u.has(d.id)&&d.dispose()})}),this.parent==null&&s.dispose(u),o}async executeFunctionAsync(e,t,n){let a=e.reduce((r,s,i)=>(r[this.inputs[i].name]=s,r),{});return this._executeAsync(a,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,a){let r=Object.keys(e),s=r.map(b=>this.graph.nodes[Wn(b)[0]]),i=n.map(b=>Wn(b)[0]),o=i.map(b=>this.graph.nodes[b]);o.length===0&&(o=this._outputs);let{usedNodes:l,missingInputs:c,dynamicNode:u,syncInputs:p}=fT(e,o,this.weightMap,this._initNodes),d=[...s,...this.graph.weights,...this._initNodes||[]].map(b=>({node:b,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(b=>{let[x,v]=Wn(b),N=[];N[v]=e[b],h[x]=N});let m={},f=this.getFrozenTensorIds(h),g={};for(;d.length>0;){let b=this.processStack(s,d,t,h,g,f,i,m,l);await Promise.all(b)}u==null&&!a&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let y=o.filter(b=>!mT(b)&&!En(b.name,h,t)).map(b=>b.name);if(y.length>0){let b="";throw u!=null&&(b=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${p}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${c}]. ${b}`)}return h}processStack(e,t,n,a,r,s,i,o,l){let c=[];for(;t.length>0;){let u=t.pop();n.currentContext=u.contexts;let p="";if(u.node.op==="Enter"&&k("isConstant",u.node,a,n)&&([p]=kr(u.node.name,n)),a[u.node.name]==null){let d=dT(u.node,a,n,this._resourceManager);p||([p]=kr(u.node.name,n));let h=n.currentContext;w.isPromise(d)?c.push(d.then(m=>(a[p]=m,n.currentContext=h,this.checkTensorForDisposal(p,u.node,a,n,s,i,o),this.processChildNodes(u.node,t,n,a,r,l),m))):(a[p]=d,this.checkTensorForDisposal(p,u.node,a,n,s,i,o),this.processChildNodes(u.node,t,n,a,r,l))}else this.processChildNodes(u.node,t,n,a,r,l)}return c}processChildNodes(e,t,n,a,r,s){e.children.forEach(i=>{let[o]=kr(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!En(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!En(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let n=e[t],[a]=Wn(t),r=this.graph.nodes[a];if(r.attrParams.shape&&r.attrParams.shape.value){let s=r.attrParams.shape.value,i=s.length===n.shape.length&&n.shape.every((o,l)=>s[l]===-1||s[l]===o);w.assert(i,()=>`The shape of dict['${r.name}'] provided in model.execute(dict) must be [${s}], but was [${n.shape}]`)}r.attrParams.dtype&&r.attrParams.dtype.value&&w.assert(n.dtype===r.attrParams.dtype.value,()=>`The dtype of dict['${r.name}'] provided in model.execute(dict) must be ${r.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(e){let t={};for(let n in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[n]!=null){let a=this._signature.inputs[n];t[a.name]=e[n]}else t[n]=e[n];return t}checkInputs(e){let t=Object.keys(e).filter(n=>{let[a]=Wn(n);return this.graph.nodes[a]==null});if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(t=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null?this._signature.outputs[t].name:t,{})}checkOutputs(e){e.forEach(t=>{let[n]=Wn(t);if(!this.graph.nodes[n])throw new Error(`The output '${t}' is not found in the graph`)})}},z4=class{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(let e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(let e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}},B4="?tfjs-format=file",W4="model.json",gT=class{constructor(e,t={}){this.modelUrl=e,this.loadOptions=t,this.version="n/a",t==null&&(this.loadOptions={}),this.resourceManager=new z4}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=Ht.browserHTTPRequest(e,this.loadOptions);else{let t=Ht.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(Ht.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=await this.handler.load();return this.loadSync(e)}loadSync(e){this.artifacts=e;let t=this.artifacts.modelTopology,n;this.artifacts.userDefinedMetadata!=null&&this.artifacts.userDefinedMetadata.signature!=null?n=this.artifacts.userDefinedMetadata.signature:n=this.artifacts.signature,this.signature=n,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;let a=Ht.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new ov(oT.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(a),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let r=oT.Instance.transformGraph(e.modelInitializer);this.initializer=new ov(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(e,t){if(typeof e=="string"){let n=Ht.getSaveHandlers(e);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${e}'`);e=n[0]}if(e.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){return this.execute(e,this.outputNodes)}normalizeInputs(e){if(!(e instanceof Ee)&&!Array.isArray(e))return e;if(e=Array.isArray(e)?e:[e],e.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce((t,n,a)=>(t[n]=e[a],t),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=this.executor.execute(e,t);return n.length>1?n:n[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,n)=>(t[n]=[e[n]],t),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}};async function V4(e,t={}){if(e==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&e.load==null&&(e.endsWith("/")||(e=e+"/"),e=`${e}${W4}${B4}`);let n=new gT(e,t);return await n.load(),n}var yT="3.2.0",bT={};Oe(bT,{CSVDataset:()=>vT,Dataset:()=>Jl,FileDataSource:()=>wT,TextLineDataset:()=>xT,URLDataSource:()=>kT,array:()=>U4,csv:()=>H4,func:()=>j4,generator:()=>q4,microphone:()=>X4,version_data:()=>IT,webcam:()=>K4,zip:()=>G4});var Y4=Io(ad()),J4=Io(ad());function Q4(e,t){return bm(e,t)}function bm(e,t,n=new Map,a=new Set){if(e==null)return null;if(a.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(r.recurse)if(Ql(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=bm(o,t,n,a);s[i]=l}return a.delete(e),s}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return n.set(e,r.value),r.value}function Z4(e,t=NT){return TT(e,t)}function TT(e,t,n=new Set){let a=e[0];if(n.has(a))throw new Error("Circular references are not supported.");let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(r.recurse)if(Ql(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(c=>c[i]),l=TT(o,t,n);s[i]=l}return n.delete(a),s}else throw new Error(`Can't recurse into non-iterable type: ${a}`);else return r.value}function NT(e){return e===null?null:Ql(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function ST(e,t){let n=new Map;bm(e,t,n);for(let a of Array.from(n.keys())){let r=n.get(a);if(w.isPromise(r)){let s=await r;n.set(a,s)}}return bm(e,t,n)}function Ql(e){return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Ee))}function tV(e){return e==null||eV(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Ee||w.isTypedArray(e)}function eV(e){return e===null||typeof e!="object"&&typeof e!="function"}function aV(e){return Q4(e,nV)}function nV(e){return e instanceof Ee?{value:e.clone(),recurse:!1}:Ql(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var CT=class{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(let t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}},lv=class extends CT{constructor(){super(lv.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){let e=this.capacity*2,t=new Array(e),n=this.length();for(let a=0;at===!0)}rowMajorBatch(e,t=!0){return new dV(this,e,t)}columnMajorBatch(e,t=!0,n=NT){return this.rowMajorBatch(e,t).map(a=>Z4(a,n))}concatenate(e,t){return new ET(_T([this,e]),t)}take(e){return e<0||e==null?this:new pV(this,e)}skip(e){return e<0||e==null?this:new cV(this,e)}prefetch(e){return new AT(this,e)}shuffle(e,t){return new yV(this,e,t)}serial(){return new uV(this)}},rV=class extends Yt{constructor(e){super();this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let e=this.items[this.trav];return this.trav++,{value:aV(e),done:!1}}},sV=class extends Yt{constructor(e){super();this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},uV=class extends Yt{constructor(e){super();this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},cV=class extends Yt{constructor(e,t){super();this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},dV=class extends Yt{constructor(e,t,n=!0){super();this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}},hV=class extends Yt{constructor(e,t){super();this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;Ae(e.value)}}},mV=class extends Yt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Ia.getTensorsInContainer(e.value),n=this.transform(e.value),a=Ia.getTensorsInContainer(n);for(let r of t)Ia.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},fV=class extends Yt{constructor(e,t){super();this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},FT=class extends Yt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Ia.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Ia.getTensorsInContainer(n);for(let r of t)Ia.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},cv=class extends Yt{constructor(){super();this.outputQueue=new lv,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},gV=class extends cv{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let e=await this.upstream.next();if(e.done)return!1;let t=Ia.getTensorsInContainer(e.value),n=this.transform(e.value),a=Ia.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Ia.isTensorInList(r,a)||r.dispose();return!0}},ET=class extends Yt{constructor(e,t){super();this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}},cs;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(cs||(cs={}));var oV=class extends Yt{constructor(e,t=cs.FAIL){super();this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(e){await e;let t=0,n=0;function a(s){return s instanceof Yt?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await ST(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case cs.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case cs.SHORTEST:return{value:null,done:!0};case cs.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},AT=class extends Yt{constructor(e,t){super();this.upstream=e,this.bufferSize=t,this.buffer=new CT(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}},yV=class extends AT{constructor(e,t,n){super(e,t);this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=J4.alea(n||w.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}},Jl=class{constructor(){this.size=null}batch(e,t=!0){let n=this;w.assert(e>0,()=>`batchSize needs to be positive, but it is - ${e}`);let a;return this.size===Infinity||this.size==null?a=this.size:t?a=Math.ceil(this.size/e):a=Math.floor(this.size/e),Vn(async()=>(await n.iterator()).columnMajorBatch(e,t,bV),a)}concatenate(e){let t=this,n;return this.size===Infinity||e.size===Infinity?n=Infinity:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,Vn(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===Infinity?n=Infinity:n=null,Vn(async()=>(await t.iterator()).filter(a=>D(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return Vn(async()=>(await t.iterator()).map(n=>D(()=>e(n))),this.size)}mapAsync(e){let t=this;return Vn(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 Vn(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=Infinity:n=null,Vn(async()=>{let a=uv(async()=>({value:await t.iterator(),done:!1}));return iV(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(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)`);let a=this,r=Y4.alea(t||w.now().toString());return Vn(async()=>{let s=r.int32();return n&&(s+=r.int32()),(await a.iterator()).shuffle(e,s.toString())},this.size)}take(e){let t=this,n;return this.size!=null&&this.size>e?n=e:this.size!=null&&this.size<=e?n=this.size:n=null,Vn(async()=>(await t.iterator()).take(e),n)}async toArray(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};Jl.MAX_BUFFER_SIZE=1e4;function Vn(e,t=null){return new class extends Jl{constructor(){super(...arguments);this.size=t}async iterator(){return e()}}}function U4(e){return Vn(async()=>_T(e),e.length)}function G4(e){if(!Ql(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let n=0;n{let n=await ST(e,a=>{if(a instanceof Jl)return{value:a.iterator(),recurse:!1};if(Ql(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return lV(n,cs.SHORTEST)},t)}function bV(e){if(e===null)return null;let t=e[0];return tV(t)?{value:xV(e),recurse:!1}:{value:null,recurse:!0}}function xV(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Ee?$t(e):Yn(e)}var xT=class extends Jl{constructor(e){super();this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` -`).map(e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e))}},xm='"',ap=Symbol("out"),$T=Symbol("field"),vm=Symbol("quote"),pv=Symbol("quoteafterquote"),DT=Symbol("quoteinquote"),vT=class extends Jl{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 xT(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 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}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;r14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=e.includeSpectrogram!==!1,this.includeWaveform=e.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(ee().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");let t=new RT(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let e,t,n=await this.getAudioData();if(this.includeSpectrogram){let a=this.flattenQueue(n.freqDataQueue);e=this.getTensorFromAudioDataArray(a,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let a=this.flattenQueue(n.timeDataQueue);t=this.getTensorFromAudioDataArray(a,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let e=[],t=[],n=0;return new Promise(a=>{let r=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&a({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(r),a({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){let t=e[0].length,n=new Float32Array(e.length*t);return e.forEach((a,r)=>n.set(a,r*t)),n}getTensorFromAudioDataArray(e,t){let n=new Float32Array(w.sizeFromShape(t));return n.set(e,n.length-e.length),Yn(n,t)}},MT=class extends Yt{constructor(e,t){super();if(this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Qe([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,a=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,r=(1-n)/2,s=(1-a)/2,i=r+n,o=a+s;this.cropBox=Na([s,r,o,i],[1,4])}else this.cropBox=Na([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(ee().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}let n=new MT(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&w.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}})}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=ki.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return D(()=>{let t=Mn(ue(e,"float32"),0),n;n=Xa.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let a=n.shape;return U(n,a.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(e=>e.stop());try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}},PT=class{},OT=class extends Yt{split(e){return new vV(this,e)}},vV=class extends OT{constructor(e,t){super();this.upstream=e,this.impl=new wV(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},wV=class extends cv{constructor(e,t){super();this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(let n of t.slice(0,-1))this.outputQueue.push(n);return this.carryover=t[t.length-1],!0}},IV=class extends Yt{decodeUTF8(){return new kV(this)}},kV=class extends OT{constructor(e){super();this.upstream=e,this.impl=new TV(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},TV=class extends cv{constructor(e){super();if(this.upstream=e,ee().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=K_();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let e=await this.upstream.next(),t;if(e.done)return!1;t=e.value;let n;return ee().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},LT=class extends IV{constructor(e,t={}){super();this.file=e,this.options=t,w.assert(e instanceof Uint8Array||(ee().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,t)=>{let n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,n)));else{let a=new FileReader;a.onload=s=>{let i=a.result;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),!(i instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(i)},a.onabort=s=>t(new Error("Aborted")),a.onerror=s=>t(new Error(s.type));let r=this.file.slice(this.offset,n);a.readAsArrayBuffer(r)}this.offset=n}),done:!1}}};async function SV(e,t={}){let n,a;typeof e=="string"?n=e:(n=e.url,a=NV(e));let r=await w.fetch(n,a);if(r.ok){let s=new Uint8Array(await r.arrayBuffer());return new LT(s,t)}else throw new Error(r.statusText)}var NV=e=>({method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity});function zT(e){return typeof e=="string"&&e.substr(0,7)==="file://"}var wT=class extends PT{constructor(e,t={}){super();this.input=e,this.options=t}async iterator(){if(zT(this.input)&&ee().get("IS_NODE")){let e=require("fs");this.input=e.readFileSync(this.input.substr(7))}return new LT(this.input,this.options)}},kT=class extends PT{constructor(e,t={}){super();this.url=e,this.fileOptions=t}async iterator(){return zT(this.url)?new wT(this.url,this.fileOptions).iterator():SV(this.url,this.fileOptions)}};function H4(e,t={}){return new vT(new kT(e),t)}function j4(e){let t=uv(e);return Vn(async()=>t)}function q4(e){return Vn(async()=>{let t=await e();return uv(()=>t.next())})}async function K4(e,t){return MT.create(e,t)}async function X4(e){return RT.create(e)}var IT="3.2.0";function ve(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&w.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var CV=Ya.whereImpl,dv=class extends ju{constructor(){super();this.blockSize=48,this.firstUse=!0,this.data=new rd(this,Ua())}nextDataId(){return dv.nextDataId++}write(e,t,n){this.firstUse&&(this.firstUse=!1,ee().get("IS_NODE")&&_.warn(` + ${a}, and tensor's shape is: ${e.shape}`);let s=e.shape.slice(1),i=iv(s,n),o=a===0?0:e.size/a,l=M(()=>{let c=[];e=H(e,[1,a,o]);for(let p=0;p{switch(e.op){case"If":case"StatelessIf":{let a=N("thenBranch",e,t,n),r=N("elseBranch",e,t,n),s=N("cond",e,t,n),i=N("args",e,t,n);return(await s.data())[0]?n.functionMap[a].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap):n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{let a=N("body",e,t,n),r=N("cond",e,t,n),s=N("args",e,t,n),i=await n.functionMap[r].executeFunctionAsync(s,n.tensorArrayMap,n.tensorListMap),o=s.map(c=>c.id),l=await i[0].data();i.forEach(c=>{!c.kept&&o.indexOf(c.id)===-1&&c.dispose()});let u=s;for(;l[0];){let c=u;u=await n.functionMap[a].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);let p=u.map(h=>h.id);c.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&p.indexOf(h.id)===-1&&h.dispose()});let d=await n.functionMap[r].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);l=await d[0].data(),d.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&p.indexOf(h.id)===-1&&h.dispose()})}return u}case"LoopCond":{let a=N("pred",e,t,n);return[Ir(a)]}case"Switch":{let a=N("pred",e,t,n),r=N("data",e,t,n);return r.kept||(r=Ir(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>Fn(r,t,n)!==void 0);if(a){let r=Fn(a,t,n);return[Ir(r)]}return}case"Enter":{let a=N("frameName",e,t,n),r=N("tensor",e,t,n);return n.enterFrame(a),[Ir(r)]}case"Exit":{let a=N("tensor",e,t,n);return n.exitFrame(),[Ir(a)]}case"NextIteration":{let a=N("tensor",e,t,n);return n.nextIteration(),[Ir(a)]}case"TensorArrayV3":{let a=N("size",e,t,n),r=N("dtype",e,t,n),s=N("elementShape",e,t,n),i=N("dynamicSize",e,t,n),o=N("clearAfterRead",e,t,n),l=N("identicalElementShapes",e,t,n),u=N("name",e,t,n),c=new L4(u,r,a,s,l,i,o);return n.addTensorArray(c),[c.idTensor,ce(1)]}case"TensorArrayWriteV3":{let a=N("tensorArrayId",e,t,n),r=N("index",e,t,n),s=N("tensor",e,t,n),i=n.getTensorArray(a.id);return i.write(r,s),[i.idTensor]}case"TensorArrayReadV3":{let a=N("tensorArrayId",e,t,n),r=N("index",e,t,n);return[n.getTensorArray(a.id).read(r)]}case"TensorArrayGatherV3":{let a=N("tensorArrayId",e,t,n),r=N("indices",e,t,n),s=N("dtype",e,t,n);return[n.getTensorArray(a.id).gather(r,s)]}case"TensorArrayScatterV3":{let a=N("tensorArrayId",e,t,n),r=N("indices",e,t,n),s=N("tensor",e,t,n),i=n.getTensorArray(a.id);return i.scatter(r,s),[i.idTensor]}case"TensorArrayConcatV3":{let a=N("tensorArrayId",e,t,n),r=n.getTensorArray(a.id),s=N("dtype",e,t,n);return[r.concat(s)]}case"TensorArraySplitV3":{let a=N("tensorArrayId",e,t,n),r=N("tensor",e,t,n),s=N("lengths",e,t,n),i=n.getTensorArray(a.id);return i.split(s,r),[i.idTensor]}case"TensorArraySizeV3":{let a=N("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return[ce(r.size(),"int32")]}case"TensorArrayCloseV3":{let a=N("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return r.clearAndClose(),[r.idTensor]}case"TensorListSetItem":{let a=N("tensorListId",e,t,n),r=N("index",e,t,n),s=N("tensor",e,t,n),i=n.getTensorList(a.id);return i.setItem(r,s),[i.idTensor]}case"TensorListGetItem":{let a=N("tensorListId",e,t,n),r=N("index",e,t,n),s=N("elementShape",e,t,n),i=N("elementDType",e,t,n);return[n.getTensorList(a.id).getItem(r,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let a=N("indices",e,t,n),r=N("tensor",e,t,n),s=N("elementShape",e,t,n),i=N("numElements",e,t,n),o=B4(r,a,s,i);return n.addTensorList(o),[o.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let a=N("elementShape",e,t,n),r=N("elementDType",e,t,n),s;e.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=N(s,e,t,n),o=W4(a,r,i);return n.addTensorList(o),[o.idTensor]}case"TensorListGather":{let a=N("tensorListId",e,t,n),r=N("indices",e,t,n),s=N("elementShape",e,t,n),i=N("elementDType",e,t,n);return[n.getTensorList(a.id).gather(r,i,s)]}case"TensorListStack":{let a=N("tensorListId",e,t,n),r=N("elementShape",e,t,n),s=N("elementDType",e,t,n),i=N("numElements",e,t,n);return[n.getTensorList(a.id).stack(r,s,i)]}case"TensorListFromTensor":{let a=N("tensor",e,t,n),r=N("elementShape",e,t,n),s=N("elementDType",e,t,n),i=z4(a,r,s);return n.addTensorList(i),[i.idTensor]}case"TensorListConcat":{let a=N("tensorListId",e,t,n),r=n.getTensorList(a.id),s=N("dtype",e,t,n),i=N("elementShape",e,t,n);return[r.concat(s,i)]}case"TensorListPushBack":{let a=N("tensorListId",e,t,n),r=N("tensor",e,t,n),s=n.getTensorList(a.id);return s.pushBack(r),[s.idTensor]}case"TensorListPopBack":{let a=N("tensorListId",e,t,n),r=N("elementShape",e,t,n),s=N("elementDType",e,t,n);return[n.getTensorList(a.id).popBack(r,s)]}case"TensorListSplit":{let a=N("tensor",e,t,n),r=N("elementShape",e,t,n),s=N("lengths",e,t,n),i=V4(a,s,r);return n.addTensorList(i),[i.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function hN(e,t,n){let[a,r]=N("fusedOps",e,t,n),s=a==="biasadd",i=r==="prelu",o=a==="fusedbatchnorm",l=N("numArgs",e,t,n);if(s){if(i&&l!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(o)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");let u=N("strides",e,t,n),c=bm(e,t,n),p=N("dataFormat",e,t,n).toUpperCase(),d=N("dilations",e,t,n),[h,m]=N("args",e,t,n),f=N("leakyreluAlpha",e,t,n);return{stride:u,pad:c,dataFormat:p,dilations:d,biasArg:h,preluArg:m,activationFunc:r,leakyreluAlpha:f}}var G4=(e,t,n)=>{switch(e.op){case"Conv1D":{let a=N("stride",e,t,n),r=N("pad",e,t,n),s=N("dataFormat",e,t,n).toUpperCase(),i=N("dilation",e,t,n);return[nh(N("x",e,t,n),N("filter",e,t,n),a,r,s,i)]}case"Conv2D":{let a=N("strides",e,t,n),r=bm(e,t,n),s=N("dataFormat",e,t,n).toUpperCase(),i=N("dilations",e,t,n);return[Et(N("x",e,t,n),N("filter",e,t,n),[a[1],a[2]],r,s,[i[1],i[2]])]}case"_FusedConv2D":{let{stride:a,pad:r,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:u,leakyreluAlpha:c}=hN(e,t,n);return[ns.conv2d({x:N("x",e,t,n),filter:N("filter",e,t,n),strides:[a[1],a[2]],pad:r,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:u,preluActivationWeights:l,leakyreluAlpha:c})]}case"FusedDepthwiseConv2dNative":{let{stride:a,pad:r,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:u,leakyreluAlpha:c}=hN(e,t,n);return[ns.depthwiseConv2d({x:N("x",e,t,n),filter:N("filter",e,t,n),strides:[a[1],a[2]],pad:r,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:u,preluActivationWeights:l,leakyreluAlpha:c})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let a=N("outputShape",e,t,n),r=N("strides",e,t,n),s=bm(e,t,n);return[ah(N("x",e,t,n),N("filter",e,t,n),a,[r[1],r[2]],s)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let a=N("strides",e,t,n),r=bm(e,t,n),s=N("dilations",e,t,n),i=N("dataFormat",e,t,n).toUpperCase();return[Qr(N("input",e,t,n),N("filter",e,t,n),[a[1],a[2]],r,i,[s[1],s[2]])]}case"Conv3D":{let a=N("strides",e,t,n),r=N("pad",e,t,n),s=N("dataFormat",e,t,n).toUpperCase(),i=N("dilations",e,t,n);return[My(N("x",e,t,n),N("filter",e,t,n),[a[1],a[2],a[3]],r,s,[i[1],i[2],i[3]])]}case"AvgPool":{let a=N("strides",e,t,n),r=N("pad",e,t,n),s=N("kernelSize",e,t,n);return[Qn(N("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r)]}case"MaxPool":{let a=N("strides",e,t,n),r=N("pad",e,t,n),s=N("kernelSize",e,t,n);return[$t(N("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r)]}case"MaxPoolWithArgmax":{let a=N("strides",e,t,n),r=N("pad",e,t,n),s=N("kernelSize",e,t,n),i=N("includeBatchInIndex",e,t,n),{result:o,indexes:l}=T1(N("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r,i);return[o,l]}case"AvgPool3D":{let a=N("strides",e,t,n),r=N("pad",e,t,n),s=N("kernelSize",e,t,n);return[Ey(N("x",e,t,n),[s[1],s[2],s[3]],[a[1],a[2],a[3]],r)]}case"MaxPool3D":{let a=N("strides",e,t,n),r=N("pad",e,t,n),s=N("kernelSize",e,t,n);return[Hy(N("x",e,t,n),[s[1],s[2],s[3]],[a[1],a[2],a[3]],r)]}case"Dilation2D":{let a=N("strides",e,t,n),r=N("pad",e,t,n),s=N("dilations",e,t,n),i=a[1],o=a[2],l=s[1],u=s[2];return[Py(N("x",e,t,n),N("filter",e,t,n),[i,o],r,[l,u],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},H4=(e,t,n)=>{switch(e.op){case"Fill":{let a=N("shape",e,t,n),r=N("dtype",e,t,n),s=N("value",e,t,n);return[Sn(a,s,r)]}case"LinSpace":{let a=N("start",e,t,n),r=N("stop",e,t,n),s=N("num",e,t,n);return[b1(a,r,s)]}case"Multinomial":{let a=N("logits",e,t,n),r=N("numSamples",e,t,n),s=N("seed",e,t,n);return[S1(a,r,s)]}case"OneHot":{let a=N("indices",e,t,n),r=N("depth",e,t,n),s=N("onValue",e,t,n),i=N("offValue",e,t,n);return[_l(a,r,s,i)]}case"Ones":return[Xa(N("shape",e,t,n),N("dtype",e,t,n))];case"OnesLike":return[On(N("x",e,t,n))];case"RandomUniform":return[zl(N("shape",e,t,n),N("minval",e,t,n),N("maxval",e,t,n),N("dtype",e,t,n))];case"Range":{let a=N("start",e,t,n),r=N("stop",e,t,n),s=N("step",e,t,n);return[mh(a,r,s,N("dtype",e,t,n))]}case"TruncatedNormal":{let a=N("shape",e,t,n),r=N("mean",e,t,n),s=N("stdDev",e,t,n),i=N("seed",e,t,n);return[Ih(a,r,s,N("dtype",e,t,n),i)]}case"Zeros":return[vt(N("shape",e,t,n),N("dtype",e,t,n))];case"ZerosLike":return[Ge(N("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function ov(e,t,n){let a=N("boxes",e,t,n),r=N("scores",e,t,n),s=N("maxOutputSize",e,t,n),i=N("iouThreshold",e,t,n),o=N("scoreThreshold",e,t,n),l=N("softNmsSigma",e,t,n);return{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}}var j4=async(e,t,n)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}=ov(e,t,n),u=await Ka.nonMaxSuppressionWithScoreAsync(a,r,s,i,o,l);return[u.selectedIndices,u.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=ov(e,t,n),l=N("padToMaxOutputSize",e,t,n),u=await Ka.nonMaxSuppressionPaddedAsync(a,r,s,i,o,l);return[u.selectedIndices,u.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=ov(e,t,n);return[await Ka.nonMaxSuppressionAsync(a,r,s,i,o)]}case"Where":{let a=ue(N("condition",e,t,n),"bool"),r=[await rb(a)];return a.dispose(),r}case"ListDiff":return F1(N("x",e,t,n),N("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}},q4=(e,t,n)=>{switch(e.op){case"TopKV2":{let a=N("x",e,t,n),r=N("k",e,t,n),s=N("sorted",e,t,n),i=nb(a,r,s);return[i.values,i.indices]}case"Unique":{let a=N("x",e,t,n),r=Nh(a);return[r.values,r.indices]}case"UniqueV2":{let a=N("x",e,t,n),r=N("axis",e,t,n),s=Nh(a,r);return[s.values,s.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},X4=(e,t,n)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let a=N("default",e,t,n);return[Fn(e.name,t,n)||a];case"Placeholder":return[Fn(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let u=N("x",e,t,n);return[Ir(u)]}case"IdentityN":return N("x",e,t,n).map(u=>Ir(u));case"Snapshot":let r=N("x",e,t,n);return[Ir(r)];case"Shape":return[Qe(N("x",e,t,n).shape,"int32")];case"ShapeN":return N("x",e,t,n).map(u=>Qe(u.shape));case"Size":return[ce(N("x",e,t,n).size,"int32")];case"Rank":return[ce(N("x",e,t,n).rank,"int32")];case"NoOp":return[ce(1)];case"Print":let s=N("x",e,t,n),i=N("data",e,t,n),o=N("message",e,t,n),l=N("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(o);for(let u=0;ue.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return ce(this.size(),"int32")}async import(e,t){this.checkKeyAndValueTensor(e,t);let n=await e.data();return this.tensorMap.forEach(a=>a.dispose()),this.tensorMap.clear(),M(()=>{let a=ct(t),r=n.length,s=a.length;I.assert(r===s,()=>`The number of elements doesn't match, keys has ${r} elements, the values has ${s} elements.`);for(let i=0;i{let a=[];for(let r=0;r{switch(e.op){case"HashTable":case"HashTableV2":{let r=N("keyDType",e,t,n),s=N("valueDType",e,t,n),i=new K4(r,s);return a.addHashTable(e.name,i),[i.handle]}case"LookupTableImport":case"LookupTableImportV2":{let r=N("tableHandle",e,t,n,a),s=N("keys",e,t,n),i=N("values",e,t,n);return[await a.getHashTableById(r.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let r=N("tableHandle",e,t,n,a),s=N("keys",e,t,n),i=N("defaultValue",e,t,n);return[await a.getHashTableById(r.id).find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{let r=N("tableHandle",e,t,n,a);return[a.getHashTableById(r.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},J4=(e,t,n)=>{switch(e.op){case"ResizeBilinear":{let a=N("images",e,t,n),r=N("size",e,t,n),s=N("alignCorners",e,t,n),i=N("halfPixelCenters",e,t,n);return[Ka.resizeBilinear(a,[r[0],r[1]],s,i)]}case"ResizeNearestNeighbor":{let a=N("images",e,t,n),r=N("size",e,t,n),s=N("alignCorners",e,t,n),i=N("halfPixelCenters",e,t,n);return[Ka.resizeNearestNeighbor(a,[r[0],r[1]],s,i)]}case"CropAndResize":{let a=N("image",e,t,n),r=N("boxes",e,t,n),s=N("boxInd",e,t,n),i=N("cropSize",e,t,n),o=N("method",e,t,n),l=N("extrapolationValue",e,t,n);return[Ka.cropAndResize(a,r,s,i,o,l)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},Q4=(e,t,n)=>{switch(e.op){case"Equal":return[Zr(N("a",e,t,n),N("b",e,t,n))];case"NotEqual":return[Ai(N("a",e,t,n),N("b",e,t,n))];case"Greater":return[pa(N("a",e,t,n),N("b",e,t,n))];case"GreaterEqual":return[es(N("a",e,t,n),N("b",e,t,n))];case"Less":return[oh(N("a",e,t,n),N("b",e,t,n))];case"LessEqual":return[Si(N("a",e,t,n),N("b",e,t,n))];case"LogicalAnd":return[da(N("a",e,t,n),N("b",e,t,n))];case"LogicalNot":return[_c(N("a",e,t,n))];case"LogicalOr":return[ph(N("a",e,t,n),N("b",e,t,n))];case"Select":case"SelectV2":return[Tn(N("condition",e,t,n),N("a",e,t,n),N("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},Z4=(e,t,n)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[ze(N("a",e,t,n),N("b",e,t,n),N("transposeA",e,t,n),N("transposeB",e,t,n))];case"Transpose":return[Ve(N("x",e,t,n),N("perm",e,t,n))];case"_FusedMatMul":let[a,r]=N("fusedOps",e,t,n),s=a==="biasadd",i=r==="prelu",o=N("numArgs",e,t,n),l=N("leakyreluAlpha",e,t,n);if(s){if(i&&o!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&o!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[u,c]=N("args",e,t,n);return[ns.matMul({a:N("a",e,t,n),b:N("b",e,t,n),transposeA:N("transposeA",e,t,n),transposeB:N("transposeB",e,t,n),bias:u,activation:r,preluActivationWeights:c,leakyreluAlpha:l})];default:throw TypeError(`Node type ${e.op} is not implemented`)}},eV=(e,t,n)=>{switch(e.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[fr(N("x",e,t,n),N("mean",e,t,n),N("variance",e,t,n),N("offset",e,t,n),N("scale",e,t,n),N("epsilon",e,t,n))];case"FusedBatchNormV3":return[fr(N("x",e,t,n),N("mean",e,t,n),N("variance",e,t,n),N("offset",e,t,n),N("scale",e,t,n),N("epsilon",e,t,n))];case"LRN":return[By(N("x",e,t,n),N("radius",e,t,n),N("bias",e,t,n),N("alpha",e,t,n),N("beta",e,t,n))];case"Softmax":return[Ta(N("x",e,t,n))];case"LogSoftmax":return[ch(N("x",e,t,n))];case"SparseToDense":return[sb(N("sparseIndices",e,t,n),N("outputShape",e,t,n),N("sparseValues",e,t,n),N("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},tV=(e,t,n)=>{switch(e.op){case"Max":{let i=N("axis",e,t,n),o=N("keepDims",e,t,n);return[Zn(N("x",e,t,n),i,o)]}case"Mean":{let i=N("axis",e,t,n),o=N("keepDims",e,t,n);return[Ct(N("x",e,t,n),i,o)]}case"Min":{let i=N("axis",e,t,n),o=N("keepDims",e,t,n);return[Ol(N("x",e,t,n),i,o)]}case"Sum":{let i=N("axis",e,t,n),o=N("keepDims",e,t,n);return[Se(N("x",e,t,n),i,o)]}case"All":{let i=N("axis",e,t,n),o=N("keepDims",e,t,n);return[eh(N("x",e,t,n),i,o)]}case"Any":{let i=N("axis",e,t,n),o=N("keepDims",e,t,n);return[Ic(N("x",e,t,n),i,o)]}case"ArgMax":{let i=N("axis",e,t,n);return[Nc(N("x",e,t,n),i)]}case"ArgMin":{let i=N("axis",e,t,n);return[Iy(N("x",e,t,n),i)]}case"Prod":{let i=N("axis",e,t,n),o=N("keepDims",e,t,n);return[hh(N("x",e,t,n),i,o)]}case"Cumsum":{let i=N("axis",e,t,n),o=N("exclusive",e,t,n),l=N("reverse",e,t,n);return[sh(N("x",e,t,n),i,o,l)]}case"Bincount":let a=N("x",e,t,n),r=N("weights",e,t,n),s=N("size",e,t,n);return[o1(a,r,s)];case"DenseBincount":{let i=N("x",e,t,n),o=N("weights",e,t,n),l=N("size",e,t,n),u=N("binaryOutput",e,t,n);return[h1(i,o,l,u)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},nV=(e,t,n)=>{switch(e.op){case"ConcatV2":case"Concat":{let a=N("n",e,t,n),r=N("axis",e,t,n),s=N("tensors",e,t,n);return s=s.slice(0,a),[Je(s,r)]}case"Gather":{let a=N("x",e,t,n),r=N("indices",e,t,n);return[Ti(a,ue(r,"int32"),0)]}case"GatherV2":{let a=N("axis",e,t,n),r=N("batchDims",e,t,n),s=N("x",e,t,n),i=N("indices",e,t,n);return[Ti(s,ue(i,"int32"),a,r)]}case"Reverse":{let a=N("dims",e,t,n),r=[];for(let i=0;i{let a=N("axis",e,t,n),r=N("tensors",e,t,n),s=r[0].shape,i=ts(r[0]).shape,o=r.map(l=>{let u=I.arraysEqual(l.shape,s);if(!u&&!I.arraysEqual(ts(l).shape,i))throw new Error("the input tensors shape does not match");return u?l:H(l,s)});return[Dt(o,a)]});case"Unpack":{let a=N("axis",e,t,n),r=N("tensor",e,t,n);return ct(r,a)}case"Tile":{let a=N("reps",e,t,n);return[Ha(N("x",e,t,n),a)]}case"Split":case"SplitV":{let a=N("axis",e,t,n),r=N("numOrSizeSplits",e,t,n),s=N("x",e,t,n);return zn(s,r,a)}case"ScatterNd":{let a=N("indices",e,t,n),r=N("values",e,t,n),s=N("shape",e,t,n);return[D1(a,r,s)]}case"GatherNd":{let a=N("x",e,t,n),r=N("indices",e,t,n);return[M1(a,r)]}case"SparseToDense":{let a=N("sparseIndices",e,t,n),r=N("outputShape",e,t,n),s=N("sparseValues",e,t,n),i=N("defaultValue",e,t,n);return[sb(a,s,r,s.dtype===i.dtype?i:ue(i,s.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},aV=(e,t,n)=>{switch(e.op){case"FFT":return[Rc(N("x",e,t,n))];case"IFFT":return[Bl(N("x",e,t,n))];case"RFFT":return[Pc(N("x",e,t,n))];case"IRFFT":return[wh(N("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},rV=(e,t,n)=>{switch(e.op){case"Cast":return[ue(N("x",e,t,n),N("dtype",e,t,n))];case"ExpandDims":{let a=N("axis",e,t,n);return[Rn(N("x",e,t,n),a)]}case"Squeeze":{let a=N("axis",e,t,n);return[ts(N("x",e,t,n),a)]}case"Reshape":return[H(N("x",e,t,n),N("shape",e,t,n))];case"MirrorPad":return[jy(N("x",e,t,n),N("padding",e,t,n),N("mode",e,t,n))];case"PadV2":case"Pad":return[ea(N("x",e,t,n),N("padding",e,t,n),N("constantValue",e,t,n))];case"SpaceToBatchND":{let a=N("blockShape",e,t,n),r=N("paddings",e,t,n);return[Ec(N("x",e,t,n),a,r)]}case"BatchToSpaceND":{let a=N("blockShape",e,t,n),r=N("crops",e,t,n);return[Sc(N("x",e,t,n),a,r)]}case"DepthToSpace":{let a=N("blockSize",e,t,n),r=N("dataFormat",e,t,n).toUpperCase();return[Ry(N("x",e,t,n),a,r)]}case"BroadcastTo":return[Cc(N("x",e,t,n),N("shape",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function mN(e,t,n,a){let r=((s,i,o)=>{switch(s.category){case"arithmetic":return M(()=>P4(s,i,o));case"basic_math":return M(()=>O4(s,i,o));case"control":return U4(s,i,o);case"convolution":return M(()=>G4(s,i,o));case"creation":return M(()=>H4(s,i,o));case"dynamic":return j4(s,i,o);case"evaluation":return M(()=>q4(s,i,o));case"image":return M(()=>J4(s,i,o));case"graph":return M(()=>X4(s,i,o));case"logical":return M(()=>Q4(s,i,o));case"matrices":return M(()=>Z4(s,i,o));case"normalization":return M(()=>eV(s,i,o));case"reduction":return M(()=>tV(s,i,o));case"slice_join":return M(()=>nV(s,i,o));case"spectral":return M(()=>aV(s,i,o));case"transformation":return M(()=>rV(s,i,o));case"hash_table":return Y4(s,i,o,a);case"custom":let l=GI(s.op);if(l&&l.customExecutor)return l.customExecutor(new R4(s,i,o));throw TypeError(`Custom op ${s.op} is not registered.`);default:throw TypeError(`Unknown op '${s.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,n);return I.isPromise(r)?r.then(s=>[].concat(s)):[].concat(r)}var fN=class{constructor(e={},t={},n={},a={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(let t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(let t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}};function yN(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,u=Object.keys(e).map(d=>Bn(d)[0]),c=[];a!=null&&(c=a.map(d=>Bn(d.name)[0]));let p=[...t];for(;p.length>0;){let d=p.pop();if((gN(d)||sV(d)||iV(d))&&i==null&&(i=d,o=i.children.map(h=>h.name).filter(h=>r.has(h))),r.add(d.name),n[d.name]==null&&u.indexOf(d.name)===-1&&c.indexOf(d.name)===-1){if(d.inputs.length===0){s.push(d.name);continue}d.inputs.forEach(h=>{l.has(h.name)||(l.add(h.name),p.push(h))})}}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:i,syncInputs:o}}function oV(e,t,n){let{usedNodes:a,inputs:r}=n,s=[],i=Object.keys(r).map(c=>Bn(c)[0]).map(c=>e.nodes[c]),o=e.initNodes;i.forEach(c=>{a.has(c.name)&&s.push(c)}),e.weights.forEach(c=>{a.has(c.name)&&s.push(c)}),o!=null&&o.forEach(c=>{a.has(c.name)&&s.push(c)});let l=new Set,u=[];for(;s.length>0;){let c=s.pop();l.add(c.name),t[c.name]||u.push(c),c.children.forEach(p=>{!l.has(p.name)&&a.has(p.name)&&p.inputs.every(d=>l.has(d.name))&&s.push(p)})}return u}var lV=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],uV=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],cV=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function gN(e){return lV.indexOf(e.op)>=0}function sV(e){return uV.indexOf(e.op)>=0}function iV(e){return cV.indexOf(e.op)>=0}var lv=class{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(n=>{this._functionExecutorMap[n]=new lv(e.functions[n],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){let t=Object.keys(e).map(n=>e[n].map(a=>a.id));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{let t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t})}get functions(){return Object.keys(this._functions).reduce((e,t)=>(e[t]=this._functions[t].signature,e),{})}getCompilationKey(e,t){let n=e.map(r=>r.name).sort(),a=t.map(r=>r.name).sort();return n.join(this.SEPERATOR)+"--"+a.join(this.SEPERATOR)}compile(e,t){let n=yN(e,t,this.weightMap,this._initNodes),{missingInputs:a,dynamicNode:r,syncInputs:s}=n;if(r!=null)throw new Error(`This execution contains the node '${r.name}', which has the dynamic op '${r.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(a.length>0){let i=t.map(l=>l.name),o=Object.keys(e);throw new Error(`Cannot compute the outputs [${i}] from the provided inputs [${o}]. Missing the following inputs: [${a}]`)}return oV(this.graph,this.weightMap,n)}execute(e,t){e=this.mapInputs(e);let n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let a=n.map(c=>this.graph.nodes[Bn(c)[0]]),r=t.map(c=>Bn(c)[0]),s=r.map(c=>this.graph.nodes[c]);s.length===0&&(s=this._outputs);let i=this.getCompilationKey(a,s),o=this.compiledMap.get(i);o==null&&(o=this.compile(e,s),this.compiledMap.set(i,o));let l={},u={};return M(()=>{let c=new fN(this.weightMap,l,u,this.functionExecutorMap),p=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{let[f,g]=Bn(m),y=[];y[g]=e[m],p[f]=y});let d=this.getFrozenTensorIds(p),h={};for(let m=0;mFn(m,p,c))})}getFrozenTensorIds(e){let t=[].concat.apply([],Object.keys(e).map(n=>e[n]).map(n=>n.map(a=>a.id)));return new Set(t)}checkTensorForDisposal(e,t,n,a,r,s,i){t.category==="control"||s.indexOf(e)!==-1||(n[e].forEach(o=>{o!=null&&(i[o.id]=(i[o.id]||0)+t.children.length)}),t.inputs.forEach(o=>{if(o.category!=="control"){let l=g4(o.name,n,a);l!=null&&l.forEach(u=>{if(u&&!r.has(u.id)){let c=i[u.id];c===1?(u.dispose(),delete i[u.id]):c!=null&&i[u.id]--}})}}))}async executeAsync(e,t){return this._executeAsync(e,t)}async _executeAsync(e,t,n=!1,a={},r={}){n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));let s=new fN(this.weightMap,a,r,this.functionExecutorMap),i=await this.executeWithControlFlow(e,s,t,n),o=t.map(p=>Fn(p,i,s)),l=o.map(p=>p.id),u=Object.keys(e).map(p=>e[p].id),c=new Set([...l,...u,...this.weightIds]);return Object.keys(i).forEach(p=>{i[p].forEach(d=>{d&&!d.isDisposed&&!c.has(d.id)&&d.dispose()})}),this.parent==null&&s.dispose(c),o}async executeFunctionAsync(e,t,n){let a=e.reduce((r,s,i)=>(r[this.inputs[i].name]=s,r),{});return this._executeAsync(a,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,a){let r=Object.keys(e),s=r.map(b=>this.graph.nodes[Bn(b)[0]]),i=n.map(b=>Bn(b)[0]),o=i.map(b=>this.graph.nodes[b]);o.length===0&&(o=this._outputs);let{usedNodes:l,missingInputs:u,dynamicNode:c,syncInputs:p}=yN(e,o,this.weightMap,this._initNodes),d=[...s,...this.graph.weights,...this._initNodes||[]].map(b=>({node:b,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(b=>{let[x,v]=Bn(b),k=[];k[v]=e[b],h[x]=k});let m={},f=this.getFrozenTensorIds(h),g={};for(;d.length>0;){let b=this.processStack(s,d,t,h,g,f,i,m,l);await Promise.all(b)}c==null&&!a&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let y=o.filter(b=>!gN(b)&&!Fn(b.name,h,t)).map(b=>b.name);if(y.length>0){let b="";throw c!=null&&(b=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${p}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${u}]. ${b}`)}return h}processStack(e,t,n,a,r,s,i,o,l){let u=[];for(;t.length>0;){let c=t.pop();n.currentContext=c.contexts;let p="";if(c.node.op==="Enter"&&N("isConstant",c.node,a,n)&&([p]=kr(c.node.name,n)),a[c.node.name]==null){let d=mN(c.node,a,n,this._resourceManager);p||([p]=kr(c.node.name,n));let h=n.currentContext;I.isPromise(d)?u.push(d.then(m=>(a[p]=m,n.currentContext=h,this.checkTensorForDisposal(p,c.node,a,n,s,i,o),this.processChildNodes(c.node,t,n,a,r,l),m))):(a[p]=d,this.checkTensorForDisposal(p,c.node,a,n,s,i,o),this.processChildNodes(c.node,t,n,a,r,l))}else this.processChildNodes(c.node,t,n,a,r,l)}return u}processChildNodes(e,t,n,a,r,s){e.children.forEach(i=>{let[o]=kr(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!Fn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!Fn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let n=e[t],[a]=Bn(t),r=this.graph.nodes[a];if(r.attrParams.shape&&r.attrParams.shape.value){let s=r.attrParams.shape.value,i=s.length===n.shape.length&&n.shape.every((o,l)=>s[l]===-1||s[l]===o);I.assert(i,()=>`The shape of dict['${r.name}'] provided in model.execute(dict) must be [${s}], but was [${n.shape}]`)}r.attrParams.dtype&&r.attrParams.dtype.value&&I.assert(n.dtype===r.attrParams.dtype.value,()=>`The dtype of dict['${r.name}'] provided in model.execute(dict) must be ${r.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(e){let t={};for(let n in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[n]!=null){let a=this._signature.inputs[n];t[a.name]=e[n]}else t[n]=e[n];return t}checkInputs(e){let t=Object.keys(e).filter(n=>{let[a]=Bn(n);return this.graph.nodes[a]==null});if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(t=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null?this._signature.outputs[t].name:t,{})}checkOutputs(e){e.forEach(t=>{let[n]=Bn(t);if(!this.graph.nodes[n])throw new Error(`The output '${t}' is not found in the graph`)})}},pV=class{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(let e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(let e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}},dV="?tfjs-format=file",hV="model.json",bN=class{constructor(e,t={}){this.modelUrl=e,this.loadOptions=t,this.version="n/a",t==null&&(this.loadOptions={}),this.resourceManager=new pV}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=jt.browserHTTPRequest(e,this.loadOptions);else{let t=jt.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(jt.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=await this.handler.load();return this.loadSync(e)}loadSync(e){this.artifacts=e;let t=this.artifacts.modelTopology,n;this.artifacts.userDefinedMetadata!=null&&this.artifacts.userDefinedMetadata.signature!=null?n=this.artifacts.userDefinedMetadata.signature:n=this.artifacts.signature,this.signature=n,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;let a=jt.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new lv(uN.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(a),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let r=uN.Instance.transformGraph(e.modelInitializer);this.initializer=new lv(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(e,t){if(typeof e=="string"){let n=jt.getSaveHandlers(e);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${e}'`);e=n[0]}if(e.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){return this.execute(e,this.outputNodes)}normalizeInputs(e){if(!(e instanceof Fe)&&!Array.isArray(e))return e;if(e=Array.isArray(e)?e:[e],e.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce((t,n,a)=>(t[n]=e[a],t),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=this.executor.execute(e,t);return n.length>1?n:n[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,n)=>(t[n]=[e[n]],t),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}};async function mV(e,t={}){if(e==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&e.load==null&&(e.endsWith("/")||(e=e+"/"),e=`${e}${hV}${dV}`);let n=new bN(e,t);return await n.load(),n}var xN="3.3.0",vN={};Oe(vN,{CSVDataset:()=>kN,Dataset:()=>Jl,FileDataSource:()=>IN,TextLineDataset:()=>wN,URLDataSource:()=>NN,array:()=>fV,csv:()=>yV,func:()=>bV,generator:()=>xV,microphone:()=>wV,version_data:()=>TN,webcam:()=>vV,zip:()=>gV});var kV=Io(Hw()),IV=Io(Hw());function NV(e,t){return xm(e,t)}function xm(e,t,n=new Map,a=new Set){if(e==null)return null;if(a.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(r.recurse)if(Ql(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=xm(o,t,n,a);s[i]=l}return a.delete(e),s}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return n.set(e,r.value),r.value}function TV(e,t=CN){return SN(e,t)}function SN(e,t,n=new Set){let a=e[0];if(n.has(a))throw new Error("Circular references are not supported.");let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(r.recurse)if(Ql(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=SN(o,t,n);s[i]=l}return n.delete(a),s}else throw new Error(`Can't recurse into non-iterable type: ${a}`);else return r.value}function CN(e){return e===null?null:Ql(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function AN(e,t){let n=new Map;xm(e,t,n);for(let a of Array.from(n.keys())){let r=n.get(a);if(I.isPromise(r)){let s=await r;n.set(a,s)}}return xm(e,t,n)}function Ql(e){return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Fe))}function CV(e){return e==null||SV(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Fe||I.isTypedArray(e)}function SV(e){return e===null||typeof e!="object"&&typeof e!="function"}function FV(e){return NV(e,AV)}function AV(e){return e instanceof Fe?{value:e.clone(),recurse:!1}:Ql(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var FN=class{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(let t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}},uv=class extends FN{constructor(){super(uv.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){let e=this.capacity*2,t=new Array(e),n=this.length();for(let a=0;at===!0)}rowMajorBatch(e,t=!0){return new LV(this,e,t)}columnMajorBatch(e,t=!0,n=CN){return this.rowMajorBatch(e,t).map(a=>TV(a,n))}concatenate(e,t){return new EN(_N([this,e]),t)}take(e){return e<0||e==null?this:new OV(this,e)}skip(e){return e<0||e==null?this:new PV(this,e)}prefetch(e){return new DN(this,e)}shuffle(e,t){return new UV(this,e,t)}serial(){return new RV(this)}},_V=class extends Jt{constructor(e){super();this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let e=this.items[this.trav];return this.trav++,{value:FV(e),done:!1}}},EV=class extends Jt{constructor(e){super();this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},RV=class extends Jt{constructor(e){super();this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},PV=class extends Jt{constructor(e,t){super();this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},LV=class extends Jt{constructor(e,t,n=!0){super();this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}},zV=class extends Jt{constructor(e,t){super();this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;Ee(e.value)}}},WV=class extends Jt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Ia.getTensorsInContainer(e.value),n=this.transform(e.value),a=Ia.getTensorsInContainer(n);for(let r of t)Ia.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},BV=class extends Jt{constructor(e,t){super();this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},$N=class extends Jt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Ia.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Ia.getTensorsInContainer(n);for(let r of t)Ia.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},pv=class extends Jt{constructor(){super();this.outputQueue=new uv,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},VV=class extends pv{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let e=await this.upstream.next();if(e.done)return!1;let t=Ia.getTensorsInContainer(e.value),n=this.transform(e.value),a=Ia.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Ia.isTensorInList(r,a)||r.dispose();return!0}},EN=class extends Jt{constructor(e,t){super();this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}},cs;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(cs||(cs={}));var DV=class extends Jt{constructor(e,t=cs.FAIL){super();this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(e){await e;let t=0,n=0;function a(s){return s instanceof Jt?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await AN(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case cs.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case cs.SHORTEST:return{value:null,done:!0};case cs.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},DN=class extends Jt{constructor(e,t){super();this.upstream=e,this.bufferSize=t,this.buffer=new FN(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}},UV=class extends DN{constructor(e,t,n){super(e,t);this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=IV.alea(n||I.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}},Jl=class{constructor(){this.size=null}batch(e,t=!0){let n=this;I.assert(e>0,()=>`batchSize needs to be positive, but it is + ${e}`);let a;return this.size===Infinity||this.size==null?a=this.size:t?a=Math.ceil(this.size/e):a=Math.floor(this.size/e),Vn(async()=>(await n.iterator()).columnMajorBatch(e,t,GV),a)}concatenate(e){let t=this,n;return this.size===Infinity||e.size===Infinity?n=Infinity:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,Vn(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===Infinity?n=Infinity:n=null,Vn(async()=>(await t.iterator()).filter(a=>M(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return Vn(async()=>(await t.iterator()).map(n=>M(()=>e(n))),this.size)}mapAsync(e){let t=this;return Vn(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 Vn(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=Infinity:n=null,Vn(async()=>{let a=cv(async()=>({value:await t.iterator(),done:!1}));return $V(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(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)`);let a=this,r=kV.alea(t||I.now().toString());return Vn(async()=>{let s=r.int32();return n&&(s+=r.int32()),(await a.iterator()).shuffle(e,s.toString())},this.size)}take(e){let t=this,n;return this.size!=null&&this.size>e?n=e:this.size!=null&&this.size<=e?n=this.size:n=null,Vn(async()=>(await t.iterator()).take(e),n)}async toArray(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};Jl.MAX_BUFFER_SIZE=1e4;function Vn(e,t=null){return new class extends Jl{constructor(){super(...arguments);this.size=t}async iterator(){return e()}}}function fV(e){return Vn(async()=>_N(e),e.length)}function gV(e){if(!Ql(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let n=0;n{let n=await AN(e,a=>{if(a instanceof Jl)return{value:a.iterator(),recurse:!1};if(Ql(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return MV(n,cs.SHORTEST)},t)}function GV(e){if(e===null)return null;let t=e[0];return CV(t)?{value:HV(e),recurse:!1}:{value:null,recurse:!0}}function HV(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Fe?Dt(e):Yn(e)}var wN=class extends Jl{constructor(e){super();this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` +`).map(e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e))}},vm='"',rp=Symbol("out"),MN=Symbol("field"),wm=Symbol("quote"),dv=Symbol("quoteafterquote"),RN=Symbol("quoteinquote"),kN=class extends Jl{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 wN(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(I.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 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&&I.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(I.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}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;r14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=e.includeSpectrogram!==!1,this.includeWaveform=e.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(Z().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");let t=new PN(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let e,t,n=await this.getAudioData();if(this.includeSpectrogram){let a=this.flattenQueue(n.freqDataQueue);e=this.getTensorFromAudioDataArray(a,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let a=this.flattenQueue(n.timeDataQueue);t=this.getTensorFromAudioDataArray(a,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let e=[],t=[],n=0;return new Promise(a=>{let r=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&a({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(r),a({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){let t=e[0].length,n=new Float32Array(e.length*t);return e.forEach((a,r)=>n.set(a,r*t)),n}getTensorFromAudioDataArray(e,t){let n=new Float32Array(I.sizeFromShape(t));return n.set(e,n.length-e.length),Yn(n,t)}},ON=class extends Jt{constructor(e,t){super();if(this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Qe([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,a=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,r=(1-n)/2,s=(1-a)/2,i=r+n,o=a+s;this.cropBox=Sa([s,r,o,i],[1,4])}else this.cropBox=Sa([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(Z().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}let n=new ON(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&I.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}})}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=ki.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return M(()=>{let t=Rn(ue(e,"float32"),0),n;n=Ka.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let a=n.shape;return H(n,a.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(e=>e.stop());try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}},LN=class{},zN=class extends Jt{split(e){return new jV(this,e)}},jV=class extends zN{constructor(e,t){super();this.upstream=e,this.impl=new qV(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},qV=class extends pv{constructor(e,t){super();this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(let n of t.slice(0,-1))this.outputQueue.push(n);return this.carryover=t[t.length-1],!0}},KV=class extends Jt{decodeUTF8(){return new XV(this)}},XV=class extends zN{constructor(e){super();this.upstream=e,this.impl=new YV(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},YV=class extends pv{constructor(e){super();if(this.upstream=e,Z().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=iF();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let e=await this.upstream.next(),t;if(e.done)return!1;t=e.value;let n;return Z().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},WN=class extends KV{constructor(e,t={}){super();this.file=e,this.options=t,I.assert(e instanceof Uint8Array||(Z().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,t)=>{let n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,n)));else{let a=new FileReader;a.onload=s=>{let i=a.result;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),!(i instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(i)},a.onabort=s=>t(new Error("Aborted")),a.onerror=s=>t(new Error(s.type));let r=this.file.slice(this.offset,n);a.readAsArrayBuffer(r)}this.offset=n}),done:!1}}};async function QV(e,t={}){let n,a;typeof e=="string"?n=e:(n=e.url,a=JV(e));let r=await I.fetch(n,a);if(r.ok){let s=new Uint8Array(await r.arrayBuffer());return new WN(s,t)}else throw new Error(r.statusText)}var JV=e=>({method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity});function BN(e){return typeof e=="string"&&e.substr(0,7)==="file://"}var IN=class extends LN{constructor(e,t={}){super();this.input=e,this.options=t}async iterator(){if(BN(this.input)&&Z().get("IS_NODE")){let e=require("fs");this.input=e.readFileSync(this.input.substr(7))}return new WN(this.input,this.options)}},NN=class extends LN{constructor(e,t={}){super();this.url=e,this.fileOptions=t}async iterator(){return BN(this.url)?new IN(this.url,this.fileOptions).iterator():QV(this.url,this.fileOptions)}};function yV(e,t={}){return new kN(new NN(e),t)}function bV(e){let t=cv(e);return Vn(async()=>t)}function xV(e){return Vn(async()=>{let t=await e();return cv(()=>t.next())})}async function vV(e,t){return ON.create(e,t)}async function wV(e){return PN.create(e)}var TN="3.3.0";function ve(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&I.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var ZV=Ya.whereImpl,hv=class extends ju{constructor(){super();this.blockSize=48,this.firstUse=!0,this.data=new sd(this,Ua())}nextDataId(){return hv.nextDataId++}write(e,t,n){this.firstUse&&(this.firstUse=!1,Z().get("IS_NODE")&&E.warn(` ============================ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details. -============================`));let a={id:this.nextDataId()};return this.data.set(a,{values:e,dtype:n,refCount:1}),a}makeTensorInfo(e,t,n){let a;if(t==="string"&&n!=null&&n.length>0&&w.isString(n[0])){let r=n.map(s=>w.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return{dataId:a,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,n,a,r){this.data.set(e,{values:t,dtype:a,refCount:r})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:n}=this.data.get(e);if(t==="complex64"){let a=this.readSync(n.real.dataId),r=this.readSync(n.imag.dataId);return _.mergeRealAndImagArrays(a,r)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId),n=t;if(e.dtype==="string")try{n=t.map(a=>w.decodeString(a))}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(e.shape,e.dtype,n)}makeOutput(e,t,n){let a=this.write(e,t,n);return Ua().makeTensorFromDataId(a,t,n,this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(e);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){let t=w.now();return e(),{kernelMs:w.now()-t}}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(e){ve([e],"where");let t=this.readSync(e.dataId);return CV(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};dv.nextDataId=0;var BT={};Oe(BT,{addImpl:()=>VT,bincountImpl:()=>hv,bincountReduceImpl:()=>UT,ceilImpl:()=>GT,concatImpl:()=>mv,expImpl:()=>HT,expm1Impl:()=>jT,floorImpl:()=>qT,gatherV2Impl:()=>KT,greaterImpl:()=>XT,lessImpl:()=>YT,linSpaceImpl:()=>JT,logImpl:()=>QT,maxImpl:()=>ZT,maximumImpl:()=>eN,minimumImpl:()=>tN,multiplyImpl:()=>fv,negImpl:()=>nN,notEqualImpl:()=>aN,prodImpl:()=>rN,rangeImpl:()=>yv,rsqrtImpl:()=>sN,simpleAbsImpl:()=>WT,sliceImpl:()=>wm,squaredDifferenceImpl:()=>iN,stridedSliceImpl:()=>oN,subImpl:()=>lN,tileImpl:()=>uN,topKImpl:()=>cN,transposeImpl:()=>gv,uniqueImpl:()=>pN});function WT(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;ve(t,"abs");let a=new Float32Array(w.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=WT(r),n.makeOutput(a,t.shape,"float32")},EV={kernelName:So,backendName:"cpu",kernelFunc:_V};function Rt(e){return(t,n,a,r,s)=>{let i=_.assertAndGetBroadcastShape(t,n),o=i.length,l=w.computeStrides(i),c=w.sizeFromShape(i),u=w.getTypedArrayFromDType(s,c),p=t.length,d=n.length,h=w.computeStrides(t),m=w.computeStrides(n),f=_.getBroadcastDims(t,i),g=_.getBroadcastDims(n,i);if(f.length+g.length===0)for(let y=0;yx[S]=0);let v=w.locToIndex(x,p,h),N=b.slice(-d);g.forEach(S=>N[S]=0);let T=w.locToIndex(N,d,m);u[y]=e(a[v],r[T])}return[u,i]}}function Un(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.complexTensorInfos={real:n.makeTensorInfo(a.shape,"float32",s),imag:n.makeTensorInfo(r.shape,"float32",i)},o}var FV={kernelName:hd,backendName:"cpu",kernelFunc:Un};function km(e,t,n="float32"){if(n==="complex64"){let r=km(e,t,"float32"),s=km(e,t,"float32");return Un({inputs:{real:r,imag:s},backend:e})}let a=w.makeZerosTypedArray(w.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function nr(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var AV={kernelName:Ws,backendName:"cpu",kernelFunc:nr};function Wi(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.data.get(a.dataId).complexTensorInfos.real,s=n.data.get(r.dataId).values;return n.makeTensorInfo(r.shape,r.dtype,s)}var $V={kernelName:Dd,backendName:"cpu",kernelFunc:Wi};function ps(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return nr({inputs:{x:r},backend:n});let i=km(n,r.shape,r.dtype),o=ps({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=Un({inputs:{real:o,imag:i},backend:n});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=Wi({inputs:{input:r},backend:n}),o=ps({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!w.hasEncodingLoss(r.dtype,s)){let i=nr({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(s==="int32"){let i=n.data.get(r.dataId).values,o=Int32Array.from(i);return n.makeTensorInfo(r.shape,"int32",o)}if(s==="bool"){let i=n.data.get(r.dataId).values,o=w.toTypedArray([0],r.dtype),[l,c]=Rt((u,p)=>u!==p?1:0)(r.shape,[],i,o,"bool");return n.makeTensorInfo(c,"bool",l)}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var DV={kernelName:_s,backendName:"cpu",kernelFunc:ps};function Jt(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;ve([i,o],e);let c=l.data.get(i.dataId).values,u=l.data.get(o.dataId).values,p=a||i.dtype,[d,h]=t(i.shape,o.shape,c,u,p);return l.makeTensorInfo(h,p,d)}:({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;if(i.dtype==="complex64"||o.dtype==="complex64"){let c=ps({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),u=l.data.get(c.dataId),p=u.complexTensorInfos.real,d=u.complexTensorInfos.imag,h=l.data.get(p.dataId).values,m=l.data.get(d.dataId).values,f=ps({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),y=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,x=l.data.get(y.dataId).values,v=l.data.get(b.dataId).values,[N,T,S]=n(i.shape,o.shape,h,m,x,v),A=l.makeTensorInfo(S,"float32",N),$=l.makeTensorInfo(S,"float32",T),R=Un({inputs:{real:A,imag:$},backend:l});return l.disposeIntermediateTensorInfo(c),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(A),l.disposeIntermediateTensorInfo($),R}else{let c=l.data.get(i.dataId).values,u=l.data.get(o.dataId).values,p=a||i.dtype,[d,h]=t(i.shape,o.shape,c,u,p);return l.makeTensorInfo(h,p,d)}}}function bv(e){return(t,n,a,r,s,i)=>{let o=_.assertAndGetBroadcastShape(t,n),l=w.sizeFromShape(o),c=o.length,u=w.computeStrides(o),p=w.getTypedArrayFromDType("float32",l),d=w.getTypedArrayFromDType("float32",l),h=_.getBroadcastDims(t,o),m=_.getBroadcastDims(n,o),f=_.mergeRealAndImagArrays(a,r),g=_.mergeRealAndImagArrays(s,i),y=t.length,b=w.computeStrides(t),x=n.length,v=w.computeStrides(n);if(h.length+m.length===0)for(let N=0;NS[V]=0);let A=w.locToIndex(S,y,b),$=T.slice(-x);m.forEach(V=>$[V]=0);let R=w.locToIndex($,x,v),B=e(f[A*2],f[A*2+1],g[R*2],g[R*2+1]);p[N]=B.real,d[N]=B.imag}return[p,d,o]}}var VT=Rt((e,t)=>e+t),RV=bv((e,t,n,a)=>({real:e+n,imag:t+a})),rp=Jt(Wr,VT,RV),MV={kernelName:Wr,backendName:"cpu",kernelFunc:rp};function hv(e,t,n,a,r){let s=w.sizeFromShape(a),i=w.makeZerosTypedArray(r,n);for(let o=0;o=r||(s>0?i[l]+=t[o]:i[l]+=1)}return i}function UT(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Le([r,n],t.dtype);for(let o=0;o=n||(a?i.set(1,o,c):t.size>0?i.set(i.get(o,c)+t.get(o,l),o,c):i.set(i.get(o,c)+1,o,c))}return i}function Zl(e){return(t,n,a)=>{let r=w.getTypedArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;if(ve(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,c=w.sizeFromShape(i.shape),u=n||i.dtype,p=w.getArrayFromDType(u,c);for(let d=0;d{let{x:i}=a;if(ve(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,c=n||i.dtype,u=t(l,c,r);return o.makeTensorInfo(i.shape,c,u)}}var GT=Zl(e=>Math.ceil(e)),PV=eu(Es,GT),OV={kernelName:Es,backendName:"cpu",kernelFunc:PV};function mv(e,t,n,a){let r=w.getArrayFromDType(n,w.sizeFromShape(t));if(a&&n!=="string"){let s=0;e.forEach(i=>{let o=w.sizeFromShape(i.shape);r.set(i.vals,s),s+=o})}else{let s=0;e.forEach(i=>{let o=n==="string"?_.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let c=0;cMath.exp(e)),dN=eu(Ps,HT),LV={kernelName:Ps,backendName:"cpu",kernelFunc:dN},jT=Zl(e=>Math.expm1(e)),zV=eu(Vo,jT),BV={kernelName:Vo,backendName:"cpu",kernelFunc:zV},qT=Zl(e=>Math.floor(e)),WV=eu(Os,qT),VV={kernelName:Os,backendName:"cpu",kernelFunc:WV};function KT(e,t,n){let a=Le(n,e.dtype);for(let r=0;re>t?1:0),UV=Jt(jo,XT,null,"bool"),GV={kernelName:jo,backendName:"cpu",kernelFunc:UV},YT=Rt((e,t)=>eMath.log(e)),qV=eu(Us,QT),KV={kernelName:Us,backendName:"cpu",kernelFunc:qV};function ZT(e,t,n,a){let r=w.getTypedArrayFromDType(a,w.sizeFromShape(n));for(let s=0;so&&(o=c)}r[s]=o}return r}var eN=Rt((e,t)=>Math.max(e,t)),XV=Jt(Hs,eN),YV={kernelName:Hs,backendName:"cpu",kernelFunc:XV},tN=Rt((e,t)=>Math.min(e,t)),JV=Jt(Xs,tN),QV={kernelName:Xs,backendName:"cpu",kernelFunc:JV},fv=Rt((e,t)=>e*t),ZV=bv((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),xv=Jt(Ys,fv,ZV),eU={kernelName:Ys,backendName:"cpu",kernelFunc:xv};function nN(e,t,n){let a=w.createScalarValue(-1,n);return fv([],t,a,e,n)}function tU(e){let{inputs:t,backend:n}=e,{x:a}=t;ve(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=nN(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var nU={kernelName:tl,backendName:"cpu",kernelFunc:tU},aN=Rt((e,t)=>e!==t?1:0),aU=Jt(nl,aN,null,"bool"),rU={kernelName:nl,backendName:"cpu",kernelFunc:aU};function gv(e,t,n,a,r){let s=t.length,i=w.sizeFromShape(t),o=w.computeStrides(t),l=w.computeStrides(r),c=w.getTypedArrayFromDType(n,w.sizeFromShape(r));for(let u=0;un.disposeIntermediateTensorInfo(b)),n.makeTensorInfo(y,g,m)}var oU={kernelName:ll,backendName:"cpu",kernelFunc:iU};function yv(e,t,n,a){let r=e===t,s=e1;if(r||s||i)return w.makeZerosTypedArray(0,a);let o=Math.abs(Math.ceil((t-e)/n)),l=w.makeZerosTypedArray(o,a);t1/Math.sqrt(e)),lU=eu(ii,sN),uU={kernelName:ii,backendName:"cpu",kernelFunc:lU};function wm(e,t,n,a,r){let s=pn.isSliceContinous(a,t,n),i=w.sizeFromShape(n),o=w.computeStrides(a);if(s){let p=pn.computeFlatOffset(t,o);return r==="string"?e.slice(p,p+i):e.subarray(p,p+i)}let l=r==="string"?_.fromUint8ToStringArray(e):e,c=Le(a,r,l),u=Le(n,r);for(let p=0;pm+t[f]);u.set(c.get(...h),...d)}return r==="string"?_.fromStringArrayToUint8(u.values):u.values}function Vi(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;ve(r,"slice");let[o,l]=pn.parseSliceParams(r,s,i);pn.assertParamsValid(r,o,l);let c=n.data.get(r.dataId).values,u=wm(c,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,u)}var cU={kernelName:ml,backendName:"cpu",kernelFunc:Vi},iN=Rt((e,t)=>{let n=e-t;return n*n}),pU=Jt(di,iN),dU={kernelName:di,backendName:"cpu",kernelFunc:pU};function oN(e,t,n,a){let r=Le(e,t.dtype);for(let s=0;se-t),hU=bv((e,t,n,a)=>({real:e-n,imag:t-a})),vv=Jt(hi,lN,hU),mU={kernelName:hi,backendName:"cpu",kernelFunc:vv};function uN(e,t){let n=new Array(e.rank);for(let r=0;rx.value-b.value);let f=p*a,g=l.subarray(f,f+a),y=c.subarray(f,f+a);for(let b=0;b{for(let g=0;gnew dv,1);var hN=st(Lo,e=>e>=0?e:Math.exp(e)-1),gU={kernelName:Lo,backendName:"cpu",kernelFunc:hN};function mN(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;ve([r],"leakyRelu");let i=w.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=w.getTypedArrayFromDType("float32",i);for(let c=0;ce<0?t*e:e);function fN(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;ve([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=bU(a.shape,r.shape,s,i,a.dtype);return n.makeTensorInfo(l,a.dtype,o)}var xU={kernelName:ei,backendName:"cpu",kernelFunc:fN},gN=st(ti,e=>Math.max(0,e)),vU={kernelName:ti,backendName:"cpu",kernelFunc:gN},yN=st(ai,e=>Math.min(Math.max(0,e),6)),wU={kernelName:ai,backendName:"cpu",kernelFunc:yN};function wv(e,t,n,a,r){if(n==="linear")return nr({inputs:{x:t},backend:e});if(n==="relu")return gN({inputs:{x:t},backend:e});if(n==="elu")return hN({inputs:{x:t},backend:e});if(n==="relu6")return yN({inputs:{x:t},backend:e});if(n==="prelu")return fN({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return mN({inputs:{x:t},backend:e,attrs:{alpha:r}});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function kt(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=w.sizeFromShape(r.shape),o=w.inferFromImplicitShape(s,i),l=w.sizeFromShape(o);w.assert(i===l,()=>`The new shape (${o}) has ${l} elements and the old shape (${r.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),n.incRef(r.dataId);let c=n.data.get(r.dataId);if(c.complexTensorInfos!=null){let u=c.complexTensorInfos.real,p=c.complexTensorInfos.imag;u.shape=o,p.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}var kU={kernelName:cl,backendName:"cpu",kernelFunc:kt};function bN(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;ve([r,s],"matMul");let l=r.shape.length,c=s.shape.length,u=i?r.shape[l-2]:r.shape[l-1],p=o?s.shape[c-1]:s.shape[c-2],d=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[c-2]:s.shape[c-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=w.sizeFromShape(m),y=w.sizeFromShape(f),b=g===y||g===1||y===1;w.assert(l>=2&&c>=2&&b,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${m}) and (${f}).`);let x=(g>y?r.shape.slice(0,-2):s.shape.slice(0,-2)).concat([d,h]);w.assert(u===p,()=>`Error in matMul: inner shapes (${u}) and (${p}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let v=i?[g,u,d]:[g,d,u],N=o?[y,h,p]:[y,p,h],T=kt({inputs:{x:r},backend:n,attrs:{shape:v}}),S=kt({inputs:{x:s},backend:n,attrs:{shape:N}}),A=i?T.shape[1]:T.shape[2],$=i?T.shape[2]:T.shape[1],R=o?S.shape[1]:S.shape[2],B=Math.max(g,y),V=n.data.get(T.dataId).values,W=n.data.get(S.dataId).values,G=w.computeStrides(T.shape),H=w.computeStrides(S.shape),[X,q,te]=i?[G[0],1,G[1]]:[G[0],G[1],1],[Q,se,ne]=o?[1,H[1],H[0]]:[H[1],1,H[0]],ie=$*R,Z=Le([B,$,R],T.dtype),de=Z.values,oe=n.blockSize;for(let ge=0;geMath.acos(e)),CU={kernelName:Co,backendName:"cpu",kernelFunc:SU},_U=st(_o,e=>Math.acosh(e)),EU={kernelName:_o,backendName:"cpu",kernelFunc:_U};function FU(e){let{inputs:t,backend:n}=e,a=t;ve(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Le(a[0].shape,a[0].dtype),i=s.values;for(let o=0;ob&&(b=N,x=v)}h[g]=x}return c.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(u,"int32",h)}var OU={kernelName:Ns,backendName:"cpu",kernelFunc:PU};function LU(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;ve(r,"argMin");let i=w.parseAxisParam(s,r.shape),o=_.getAxesPermutation(i,r.shape.length),l=r,c=[];o!=null&&(l=ya({inputs:{x:r},backend:n,attrs:{perm:o}}),c.push(l),i=_.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],_.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[u,p]=_.computeOutAndReduceShapes(l.shape,i),d=w.sizeFromShape(u),h=w.makeZerosTypedArray(d,"int32"),m=w.sizeFromShape(p),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(u,"int32",h)}var zU={kernelName:Xu,backendName:"cpu",kernelFunc:LU},BU=st(Eo,e=>Math.asin(e)),WU={kernelName:Eo,backendName:"cpu",kernelFunc:BU},VU=st(Fo,e=>Math.asinh(e)),UU={kernelName:Fo,backendName:"cpu",kernelFunc:VU},GU=st(Ao,e=>Math.atan(e)),HU={kernelName:Ao,backendName:"cpu",kernelFunc:GU},jU=Rt((e,t)=>Math.atan2(e,t)),qU=Jt(Do,jU),KU={kernelName:Do,backendName:"cpu",kernelFunc:qU},XU=st($o,e=>Math.atanh(e)),YU={kernelName:$o,backendName:"cpu",kernelFunc:XU};function kv(e,t,n,a,r,s){let i=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,c=r.dilationWidth,u=r.effectiveFilterHeight,p=r.effectiveFilterWidth,d=r.padInfo.top,h=r.padInfo.left,m=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=Le(r.outShape,n),g=f.values,y=r.outShape[1]*r.outShape[2]*r.outShape[3],b=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let v=0;vq?q=oe:s==="avg"&&(te+=oe,Q++)}if(isNaN(q))break}let se=V+W*x+S;g[se]=s==="avg"?te/Q:q}}}return f}function xN(e,t,n,a,r=!1,s=!1){let i=Le(a.outShape,"int32"),o=a.strideHeight,l=a.strideWidth,c=a.dilationHeight,u=a.dilationWidth,p=a.effectiveFilterHeight,d=a.effectiveFilterWidth,h=a.padInfo.top,m=a.padInfo.left,f=Le(t,n,e);for(let g=0;gR&&(R=X,r?B=s?((g*a.inHeight+V)*a.inWidth+G)*a.inChannels+y:(V*a.inWidth+G)*a.inChannels+y:B=W*d+H)}}i.set(B,g,b,T,y)}}return i}function vN(e,t,n,a,r,s){let i=r.strideDepth,o=r.strideHeight,l=r.strideWidth,c=r.dilationDepth,u=r.dilationHeight,p=r.dilationWidth,d=r.effectiveFilterDepth,h=r.effectiveFilterHeight,m=r.effectiveFilterWidth,f=r.padInfo.front,g=r.padInfo.top,y=r.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=Le(r.outShape,n),v=x.values,N=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],T=r.outShape[2]*r.outShape[3]*r.outShape[4],S=r.outShape[3]*r.outShape[4],A=r.outShape[4];for(let $=0;$we?we=Be:s==="avg"&&(Te+=Be,_e++),isNaN(we))break}if(isNaN(we))break}if(isNaN(we))break}let Re=fe+V;v[Re]=s==="avg"?Te/_e:we}}}}return x}function JU(e,t){let n=Le(t.outShape,"int32"),a=t.strideDepth,r=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,c=t.effectiveFilterDepth,u=t.effectiveFilterHeight,p=t.effectiveFilterWidth,d=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let f=0;f=W&&(W=ne,G=X*u*p+te*u+se)}}}n.set(G,f,y,N,$,g)}}}return n}function QU(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;ve(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,c=1;w.assert(_.eitherStridesOrDilationsAreOne(i,c),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l),p;if(u.filterWidth===1&&u.filterHeight===1&&w.arraysEqual(u.inShape,u.outShape))p=nr({inputs:{x:r},backend:n});else{let d=n.data.get(r.dataId).values,h=w.computeStrides(r.shape),m=kv(d,r.shape,r.dtype,h,u,"avg");p=n.makeTensorInfo(u.outShape,r.dtype,m.values)}return p}var ZU={kernelName:Ss,backendName:"cpu",kernelFunc:QU};function eG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:c}=a;ve(r,"avgPool3d");let u=_.computePool3DInfo(r.shape,s,i,1,o,l,c),p=n.data.get(r.dataId).values,d=vN(p,r.shape,r.dtype,w.computeStrides(r.shape),u,"avg");return n.makeTensorInfo(d.shape,"float32",d.values)}var tG={kernelName:Yu,backendName:"cpu",kernelFunc:eG};function nG(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:c}=a;ve([r,s],"avgPool3DGrad");let u=_.computePool3DInfo(s.shape,i,o,1,l,c),p=u.strideDepth,d=u.strideHeight,h=u.strideWidth,m=u.filterDepth,f=u.filterHeight,g=u.filterWidth,y=u.dilationDepth,b=u.dilationHeight,x=u.dilationWidth,v=u.effectiveFilterDepth,N=u.effectiveFilterHeight,T=u.effectiveFilterWidth,S=v-1-u.padInfo.front,A=T-1-u.padInfo.left,$=N-1-u.padInfo.top,R=Le(s.shape,"float32"),B=1/(m*f*g),V=n.bufferSync(r);for(let W=0;W=u.outDepth||Math.floor(Z)!==Z))for(let de=0;de=u.outHeight||Math.floor(oe)!==oe))for(let ge=0;ge=u.outWidth||Math.floor(fe)!==fe||(ne+=V.get(W,Z,oe,fe,G))}}}R.set(ne*B,W,H,X,q,G)}return n.makeTensorInfo(R.shape,R.dtype,R.values)}var aG={kernelName:pd,backendName:"cpu",kernelFunc:nG};function rG(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;ve([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:c}=a,u=_.computePool2DInfo(i.shape,o,l,1,c),p=u.strideHeight,d=u.strideWidth,h=u.filterHeight,m=u.filterWidth,f=u.dilationHeight,g=u.dilationWidth,y=u.effectiveFilterHeight,b=u.effectiveFilterWidth,x=b-1-u.padInfo.left,v=y-1-u.padInfo.top,N=Le(i.shape,"float32"),T=1/(h*m),S=n.data.get(r.dataId).values,A=Le(r.shape,"float32",S);for(let $=0;$=u.outHeight||Math.floor(q)!==q))for(let te=0;te=u.outWidth||Math.floor(Q)!==Q||(H+=A.get($,q,Q,R))}}N.set(H*T,$,B,V,R)}return n.makeTensorInfo(N.shape,N.dtype,N.values)}var sG={kernelName:cd,backendName:"cpu",kernelFunc:rG};function iG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,scale:s,offset:i,mean:o,variance:l}=t;w.assert(o.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),w.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),w.assert(s==null||o.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),ve([r,o,l,s,i],"batchNorm");let{varianceEpsilon:c}=a;c==null&&(c=.001);let u=n.data.get(r.dataId).values,p=n.data.get(o.dataId).values,d=n.data.get(l.dataId).values,h=s?n.data.get(s.dataId).values:new Float32Array([1]),m=i?n.data.get(i.dataId).values:new Float32Array([0]),f=new Float32Array(u.length),g=m.length,y=h.length,b=d.length,x=p.length,v=0,N=0,T=0,S=0;for(let A=0;A=g&&(v=0),N>=x&&(N=0),T>=y&&(T=0),S>=b&&(S=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var oG={kernelName:zs,backendName:"cpu",kernelFunc:iG};function lG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ve([r],"batchToSpaceND");let o=s.reduce((y,b)=>y*b),l=_.getReshaped(r.shape,s,o),c=_.getPermuted(l.length,s.length),u=_.getReshapedPermuted(r.shape,s,o),p=_.getSliceBeginCoords(i,s.length),d=_.getSliceSize(u,i,s.length),h=kt({inputs:{x:r},backend:n,attrs:{shape:l}}),m=ya({inputs:{x:h},backend:n,attrs:{perm:c}}),f=kt({inputs:{x:m},backend:n,attrs:{shape:u}}),g=Vi({inputs:{x:f},backend:n,attrs:{begin:p,size:d}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var uG={kernelName:Ju,backendName:"cpu",kernelFunc:lG};function cG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,c=hv(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,c)}var pG={kernelName:dd,backendName:"cpu",kernelFunc:cG},dG=st(Vr,(e,t)=>{let n=t;return e>n.clipValueMax?n.clipValueMax:e{let{x:t}=e.inputs,n=e.backend,a=new Float32Array(w.sizeFromShape(t.shape)),r=n.data.get(t.dataId),s=r.complexTensorInfos.real,i=r.complexTensorInfos.imag,o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values;for(let c=0;cf.shape),s);if(w.sizeFromShape(i)===0)return n.makeTensorInfo(i,t[0].dtype,[]);let o=t.filter(f=>w.sizeFromShape(f.shape)>0);if(o.length===1)return nr({inputs:{x:o[0]},backend:n});let l=o.map(f=>f.shape);if(_.assertParamsConsistent(l,s),o[0].dtype==="complex64"){let f=o.map(v=>Wi({inputs:{input:v},backend:n})),g=o.map(v=>tu({inputs:{input:v},backend:n})),y=nu({inputs:f,backend:n,attrs:{axis:s}}),b=nu({inputs:g,backend:n,attrs:{axis:s}}),x=Un({inputs:{real:y,imag:b},backend:n});return f.forEach(v=>n.disposeIntermediateTensorInfo(v)),g.forEach(v=>n.disposeIntermediateTensorInfo(v)),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(b),x}let c=o.map(f=>{let g=w.sizeFromShape(f.shape.slice(s));return kt({inputs:{x:f},backend:n,attrs:{shape:[-1,g]}})}),u=c.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));i=_.computeOutShape(c.map(f=>f.shape),1);let p=c[0].shape[0]===1,d=mv(u,i,t[0].dtype,p),h=_.computeOutShape(o.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,d);return c.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var yG={kernelName:Ro,backendName:"cpu",kernelFunc:nu};function wN(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:c,dimRoundingMode:u}=a;ve([r,s],"conv2d");let p=_.convertConv2DDataFormat(l),d=_.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!1,p),h=d.filterHeight,m=d.filterWidth,f=d.dilationHeight,g=d.dilationWidth,y=d.padInfo.left,b=d.padInfo.top,x=d.dataFormat==="channelsLast",v=new Ot(d.outShape,r.dtype),N=w.computeStrides(r.shape),T=w.computeStrides(s.shape),S=N[0],A=x?N[1]:N[2],$=x?N[2]:1,R=x?1:N[1],B=v.strides[0],V=x?v.strides[1]:v.strides[2],W=x?v.strides[2]:1,G=x?1:v.strides[1],H=n.data.get(r.dataId).values,X=n.data.get(s.dataId).values,q=v.values;for(let te=0;te=d.inHeight)continue;let ge=de*T[0],fe=Q+oe*A;for(let we=0;we=d.inWidth)continue;let tt=ge+Re*T[1],nt=fe+Fe*$,it=tt;for(let Xe=0;Xe=c.inDepth)continue;let te=X*$[0],Q=B+q*A[1];for(let se=0;se=c.inHeight)continue;let oe=te+Z*$[1],ge=Q+de*A[2];for(let fe=0;fe=c.inWidth)continue;let Fe=oe+_e*$[2],tt=ge+Re*c.inChannels,nt=Fe;for(let it=0;itMath.cos(e)),FG={kernelName:$s,backendName:"cpu",kernelFunc:EG},AG=st(Mo,e=>Math.cosh(e)),$G={kernelName:Mo,backendName:"cpu",kernelFunc:AG};function DG(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:c}=a,[u,p,d,h]=r.shape,m=s.shape[0],[f,g]=o,y=Le([m,f,g,h],"float32"),b=n.data.get(s.dataId).values,x=n.data.get(i.dataId).values,v=n.data.get(r.dataId).values,N=w.computeStrides(r.shape),T=w.computeStrides(y.shape);for(let S=0;S=u)continue;let G=f>1?(B-$)*(p-1)/(f-1):0,H=g>1?(V-R)*(d-1)/(g-1):0;for(let X=0;X1?$*(p-1)+X*G:.5*($+B)*(p-1);if(q<0||q>p-1){for(let te=0;te1?R*(d-1)+ne*H:.5*(R+V)*(d-1);if(ie<0||ie>d-1){for(let ge=0;ge1?R*(d-1)+te*H:.5*(R+V)*(d-1);if(Q<0||Q>d-1){for(let ie=0;iey+m-b-1:(y,b)=>y+b;for(let y=0;y`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`),w.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=r.shape[1],c=r.shape[2],u=r.shape[3],p=l*s,d=c*s,h=u/(s*s),m=n.data.get(r.dataId).values,f=new Float32Array(o*p*d*h),g=0;for(let y=0;y`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${d}'`);let h=_.computeConv2DInfo(r.shape,s.shape,i,d,o,c,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:y,padInfo:b}=h,x=b.left,v=b.top,N=h.outChannels/h.inChannels,T=new Ot(h.outShape,r.dtype),S=n.data.get(r.dataId).values,A=n.data.get(s.dataId).values,$=T.values;for(let R=0;R=h.inHeight)continue;let te=X*p[0],Q=B+q*u[1];for(let se=0;se=h.inWidth)continue;let oe=te+Z*p[1],ge=Q+de*h.inChannels,fe=ne,we=oe;for(let Te=0;Te{let{x:a,filter:r}=e,{strides:s,pad:i,dilations:o}=n,l=t,c=l.data.get(a.dataId).values,u=a.shape.length,p=l.data.get(r.dataId).values,d=r.shape.length,{batchSize:h,inHeight:m,inWidth:f,inChannels:g,outHeight:y,outWidth:b,padInfo:x,strideHeight:v,strideWidth:N,filterHeight:T,filterWidth:S,dilationHeight:A,dilationWidth:$,outShape:R}=_.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),B=w.sizeFromShape(R),V=R.length,W=w.getArrayFromDType(a.dtype,B);for(let G=0;G=0&&Z=0&&oese&&(se=we)}}}let ne=w.locToIndex([G,H,q,Q],V,w.computeStrides(R));W[ne]=se}}}return{dataId:l.write(w.toTypedArray(W,a.dtype),R,a.dtype),shape:R,dtype:a.dtype}}},XG={kernelName:kd,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,c=t,u=w.toNestedArray(a.shape,c.data.get(a.dataId).values),p=w.toNestedArray(r.shape,c.data.get(r.dataId).values),{batchSize:d,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:v,filterHeight:N,filterWidth:T,dilationHeight:S,dilationWidth:A,outShape:$}=_.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);w.assert(s.rank===$.length,()=>`Error in ${kd}, dy must have the same rank as output ${$.length}, but got ${s.rank}`);let R=w.toNestedArray($,c.data.get(s.dataId).values),B=w.makeZerosNestedTypedArray(r.shape,r.dtype);for(let V=0;V=0&&ie=0&&dete&&(te=oe,Q=ne,se=Z)}}}B[Q][se][q]+=R[V][W][H][q]}}}return{dataId:c.write(w.toTypedArray(B,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},YG={kernelName:wd,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,c=t,u=w.toNestedArray(a.shape,c.data.get(a.dataId).values),p=w.toNestedArray(r.shape,c.data.get(r.dataId).values),{batchSize:d,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:v,filterHeight:N,filterWidth:T,dilationHeight:S,dilationWidth:A,outShape:$}=_.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);w.assert(s.rank===$.length,()=>`Error in ${wd}, dy must have the same rank as output ${$.length}, but got ${s.rank}`);let R=w.toNestedArray($,c.data.get(s.dataId).values),B=w.makeZerosNestedTypedArray(a.shape,a.dtype);for(let V=0;V=0&&ie=0&&dete&&(te=oe,Q=ie,se=de)}}}B[V][Q][se][q]+=R[V][W][H][q]}}}return{dataId:c.write(w.toTypedArray(B,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function JG(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;ve([a,r],"eluGrad");let s=new Float32Array(w.sizeFromShape(r.shape)),i=n.data.get(r.dataId).values,o=n.data.get(a.dataId).values;for(let l=0;l=1?s[l]=o[l]:s[l]=o[l]*(c+1)}return n.makeTensorInfo(r.shape,"float32",s)}var QG={kernelName:Id,backendName:"cpu",kernelFunc:JG},ZG=Rt((e,t)=>e===t?1:0),IN=Jt(Bo,ZG,null,"bool"),eH={kernelName:Bo,backendName:"cpu",kernelFunc:IN},tH=_.ERF_P,nH=_.ERF_A1,aH=_.ERF_A2,rH=_.ERF_A3,sH=_.ERF_A4,iH=_.ERF_A5,oH=st(zo,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+tH*n);return t*(1-((((iH*a+sH)*a+rH)*a+aH)*a+nH)*a*Math.exp(-n*n))}),lH={kernelName:zo,backendName:"cpu",kernelFunc:oH};function Im(e){let{inputs:t,backend:n,attrs:a}=e,{input:r}=t,{dim:s}=a,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(w.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),kt({inputs:{x:r},backend:n,attrs:{shape:o}})}var uH={kernelName:Wo,backendName:"cpu",kernelFunc:Im},cH=Rt((e,t)=>e/t),Iv=Jt(Ms,cH),Tv={kernelName:Ms,backendName:"cpu",kernelFunc:Iv};function TN(e,t,n){let a=e.shape,r=a[0],s=a[1],i=n.data.get(e.dataId),o=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,c=[r,s],u=w.sizeFromShape(c),p=w.getTypedArrayFromDType("float32",u),d=w.getTypedArrayFromDType("float32",u);for(let g=0;g{let{image:a}=e,r=n,s=w.getTypedArrayFromDType(a.dtype,w.sizeFromShape(a.shape)),[i,o,l,c]=a.shape,u=r.data.get(a.dataId).values;for(let p=0;p=0&&xMath.floor(e/t)),vH=Jt(Ls,xH,null,"int32"),wH={kernelName:Ls,backendName:"cpu",kernelFunc:vH};function kH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=wN({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d}});if(i){let g=f;f=rp({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=wv(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var IH={kernelName:yi,backendName:"cpu",kernelFunc:kH};function TH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=kN({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d}});if(i){let g=f;f=rp({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=wv(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var NH={kernelName:bi,backendName:"cpu",kernelFunc:TH};function SH(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=w.sizeFromShape(a.shape),i=r.shape,o=i[i.length-1],[l,c,u,p]=_.prepareAndValidate(a,r);if(c===0)return n.makeTensorInfo(l,a.dtype,[]);let d=Le([c,u],a.dtype),h=n.data.get(r.dataId).values,m=n.data.get(a.dataId).values;for(let f=0;f=s/u)throw new Error(`Invalid indices: ${g} does not index into ${a.shape}`);for(let b=0;be>=t?1:0),AH=Jt(Bs,FH,null,"bool"),$H={kernelName:Bs,backendName:"cpu",kernelFunc:AH};function DH(e){let{inputs:t,backend:n}=e,{input:a}=t,r=w.sizeFromShape(a.shape),s=a.shape[a.shape.length-1],i=r/s,o=kt({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=TN(o,!0,n),c=kt({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),c}var RH={kernelName:Nd,backendName:"cpu",kernelFunc:DH},MH=st(qo,e=>Number.isFinite(e)?1:0,"bool"),PH={kernelName:qo,backendName:"cpu",kernelFunc:MH},OH=st(Ko,e=>Math.abs(e)===Infinity?1:0,"bool"),LH={kernelName:Ko,backendName:"cpu",kernelFunc:OH},zH=st(Xo,e=>Number.isNaN(e)?1:0,"bool"),BH={kernelName:Xo,backendName:"cpu",kernelFunc:zH},WH=Rt((e,t)=>e<=t?1:0),VH=Jt(Jo,WH,null,"bool"),UH={kernelName:Jo,backendName:"cpu",kernelFunc:VH};function GH(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=JT(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var HH={kernelName:Cd,backendName:"cpu",kernelFunc:GH},jH=st(Qo,e=>Math.log1p(e)),qH={kernelName:Qo,backendName:"cpu",kernelFunc:jH},KH=Rt((e,t)=>e&&t),XH=Jt(Zo,KH,null,"bool"),YH={kernelName:Zo,backendName:"cpu",kernelFunc:XH},JH=st(nc,e=>e?0:1,"bool"),QH={kernelName:nc,backendName:"cpu",kernelFunc:JH},ZH=Rt((e,t)=>e||t),ej=Jt(ac,ZH,null,"bool"),tj={kernelName:ac,backendName:"cpu",kernelFunc:ej};function nj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;ve(r,"LRN");let c=r.shape[3],u=c-1,p=n.data.get(r.dataId).values,d=w.sizeFromShape(r.shape),h=new Float32Array(d);function m(f){let g=f%c,y=f-g+Math.max(0,g-s),b=f-g+Math.min(g+s,u),x=0;for(;y<=b;y++){let v=p[y];x+=v*v}return x}for(let f=0;f`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l),p;if(u.filterWidth===1&&u.filterHeight===1&&w.arraysEqual(u.inShape,u.outShape))p=nr({inputs:{x:r},backend:n});else{let d=n.data.get(r.dataId).values,h=w.computeStrides(r.shape),m=kv(d,r.shape,r.dtype,h,u,"max");p=n.makeTensorInfo(u.outShape,r.dtype,m.values)}return p}var lj={kernelName:js,backendName:"cpu",kernelFunc:oj};function uj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:c}=a;ve(r,"maxPool3d");let u=_.computePool3DInfo(r.shape,s,i,1,o,l,c),p=n.data.get(r.dataId).values,d=vN(p,r.shape,r.dtype,w.computeStrides(r.shape),u,"max");return n.makeTensorInfo(d.shape,"float32",d.values)}var cj={kernelName:sc,backendName:"cpu",kernelFunc:uj};function pj(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:c}=a;ve([r,s],"maxPool3DGrad");let u=_.computePool3DInfo(s.shape,i,o,1,l,c),p=n.bufferSync(s),d=JU(p,u),h=u.strideDepth,m=u.strideHeight,f=u.strideWidth,g=u.dilationDepth,y=u.dilationHeight,b=u.dilationWidth,x=u.effectiveFilterDepth,v=u.effectiveFilterHeight,N=u.effectiveFilterWidth,T=x-1-u.padInfo.front,S=N-1-u.padInfo.left,A=v-1-u.padInfo.top,$=Le(s.shape,"float32"),R=n.bufferSync(r);for(let B=0;B=u.outDepth||Math.floor(ne)!==ne))for(let ie=0;ie=u.outHeight||Math.floor(Z)!==Z))for(let de=0;de=u.outWidth||Math.floor(oe)!==oe)continue;let ge=x*v*N-1-d.get(B,ne,Z,oe,V),fe=se*v*N+ie*N+de,we=ge===fe?1:0;we!==0&&(Q+=R.get(B,ne,Z,oe,V)*we)}}}$.set(Q,B,W,G,H,V)}return n.makeTensorInfo($.shape,$.dtype,$.values)}var dj={kernelName:Fd,backendName:"cpu",kernelFunc:pj};function hj(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;ve([s,i],"maxPoolGrad");let{filterSize:l,strides:c,pad:u,dimRoundingMode:p}=a,d=_.computePool2DInfo(o.shape,l,c,1,u,p),h=n.data.get(o.dataId).values,m=Le(d.outShape,o.dtype,xN(h,o.shape,o.dtype,d).values),f=d.strideHeight,g=d.strideWidth,y=d.dilationHeight,b=d.dilationWidth,x=d.effectiveFilterHeight,v=d.effectiveFilterWidth,N=v-1-d.padInfo.left,T=x-1-d.padInfo.top,S=Le(o.shape,"float32"),A=n.data.get(r.dataId).values,$=Le(r.shape,"float32",A);for(let R=0;R=d.outHeight||Math.floor(te)!==te))for(let Q=0;Q=d.outWidth||Math.floor(se)!==se)continue;let ne=x*v-1-m.get(R,te,se,B),ie=q*v+Q,Z=ne===ie?1:0;Z!==0&&(X+=$.get(R,te,se,B)*Z)}}S.set(X,R,V,W,B)}return n.makeTensorInfo(S.shape,S.dtype,S.values)}var mj={kernelName:Ed,backendName:"cpu",kernelFunc:hj};function fj(e,t,n,a,r){let s=w.computeStrides(t),i=kv(e,t,n,s,r,"max"),o=xN(e,t,n,r,!0,a);return[i.values,o.values]}var gj={kernelName:Ad,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;ve(a,"MaxPoolWithArgmax");let c=l.data.get(a.dataId).values,u=_.computePool2DInfo(a.shape,r,s,[1,1],i),[p,d]=fj(c,a.shape,a.dtype,o,u),h=l.write(p,u.outShape,a.dtype),m=l.write(d,u.outShape,a.dtype);return[{dataId:h,shape:u.outShape,dtype:a.dtype},{dataId:m,shape:u.outShape,dtype:"int32"}]}};function Tm(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ve(r,"sum");let o;r.dtype==="bool"?o=ps({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=nr({inputs:{x:r},backend:n});let l=o.shape.length,c=w.parseAxisParam(s,o.shape),u=_.getAxesPermutation(c,l),p=c,d=o;u!=null&&(d=ya({inputs:{x:o},backend:n,attrs:{perm:u}}),p=_.getInnerMostAxes(p.length,l)),_.assertAxesAreInnerMostDims("sum",p,d.shape.length);let[h,m]=_.computeOutAndReduceShapes(d.shape,p),f=_.upcastType(d.dtype,"int32"),g=km(n,h,f),y=w.sizeFromShape(m),b=n.data.get(g.dataId).values,x=n.data.get(d.dataId).values;for(let v=0;vn.disposeIntermediateTensorInfo(f)),m}var xj={kernelName:qs,backendName:"cpu",kernelFunc:bj};function vj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ve(r,"min");let o=w.parseAxisParam(s,r.shape),l=o,c=_.getAxesPermutation(l,r.shape.length),u=r;c!=null&&(u=ya({inputs:{x:r},backend:n,attrs:{perm:c}}),l=_.getInnerMostAxes(l.length,r.shape.length)),_.assertAxesAreInnerMostDims("min",l,u.shape.length);let[p,d]=_.computeOutAndReduceShapes(u.shape,l),h=w.sizeFromShape(d),m=w.makeZerosTypedArray(w.sizeFromShape(p),u.dtype),f=n.data.get(u.dataId).values;for(let y=0;yb[0]+r.shape[x]+b[1]),l=s.map(b=>b[0]),c=s.map((b,x)=>b[0]+r.shape[x]),u=i==="reflect"?0:1,p=n.data.get(r.dataId).values,d=r.shape.length,h=w.computeStrides(r.shape),m=w.sizeFromShape(o),f=o.length,g=w.computeStrides(o),y=w.getTypedArrayFromDType(r.dtype,m);for(let b=0;b=c[N]&&(x[N]=(c[N]-1)*2-x[N]+u);x=x.map((N,T)=>N-l[T]);let v=w.locToIndex(x,d,h);y[b]=p[v]}return{dataId:n.write(y,o,r.dtype),shape:o,dtype:r.dtype}}var Ij={kernelName:ic,backendName:"cpu",kernelFunc:kj},Tj=Rt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),Nj=Jt(el,Tj),Sj={kernelName:el,backendName:"cpu",kernelFunc:Nj},Cj=Io(ad());function SN(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=r.shape.length,o=s;if(o===-1&&(o=i-1),o!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${o}`);let l=w.parseAxisParam([o],r.shape),c=NN({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),u=_.expandShapeToKeepDim(c.shape,l),p=kt({inputs:{x:c},backend:n,attrs:{shape:u}}),d=vv({inputs:{a:r,b:p},backend:n}),h=dN({inputs:{x:d},backend:n}),m=Tm({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=kt({inputs:{x:m},backend:n,attrs:{shape:u}}),g=Iv({inputs:{a:h,b:f},backend:n});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var _j={kernelName:pi,backendName:"cpu",kernelFunc:SN};function Ej(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;ve(r,"multinomial");let l=o?r:SN({inputs:{logits:r},backend:n,attrs:{dim:-1}}),c=l.shape[0],u=l.shape[1],p=n.data.get(l.dataId).values,d=[c,s],h=w.makeZerosTypedArray(w.sizeFromShape(d),"int32");for(let m=0;m=0&&u[p]{w.assertShapesMatch(s,u.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===u.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(u=>{let p=Im({inputs:{input:u},backend:n,attrs:{dim:r}});return o.push(p),p}),c=nu({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(u=>n.disposeIntermediateTensorInfo(u)),c}var Gj={kernelName:ol,backendName:"cpu",kernelFunc:_N};function Hj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ve(r,"pad");let o=s.map((y,b)=>y[0]+r.shape[b]+y[1]),l=s.map(y=>y[0]),c=n.data.get(r.dataId).values,u=w.sizeFromShape(r.shape),p=r.shape.length,d=w.computeStrides(r.shape),h=w.sizeFromShape(o),m=o.length,f=w.computeStrides(o),g=w.getTypedArrayFromDType(r.dtype,h);i!==0&&g.fill(i);for(let y=0;yv+l[N]),x=w.locToIndex(b,m,f);g[x]=c[y]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var EN={kernelName:Qs,backendName:"cpu",kernelFunc:Hj},jj=Rt((e,t)=>Math.pow(e,t)),qj=Jt(Zs,jj),Kj={kernelName:Zs,backendName:"cpu",kernelFunc:qj};function Xj(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=yv(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var Yj={kernelName:oc,backendName:"cpu",kernelFunc:Xj},Jj=st(ul,e=>1/e),Qj={kernelName:ul,backendName:"cpu",kernelFunc:Jj};function Zj(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;ve(r,"resizeBilinear");let l=w.computeStrides(r.shape),[c,u]=o,[p,d,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(w.sizeFromShape([p,c,u,m])),y=[s&&c>1?d-1:d,s&&u>1?h-1:h],b=[s&&c>1?c-1:c,s&&u>1?u-1:u],x=0,v=y[0]/b[0],N=y[1]/b[1];for(let T=0;T1?c-1:c,i&&h>1?u-1:u],g=[i&&d>1?d-1:d,i&&h>1?h-1:h],y=f[0]/g[0],b=f[1]/g[1],x=n.data.get(s.dataId).values,v=0;for(let N=0;N1?d-1:d,s&&u>1?h-1:h],b=[s&&c>1?c-1:c,s&&u>1?u-1:u],x=y[0]/b[0],v=y[1]/b[1],N=0;for(let T=0;T1?u-1:u,i&&m>1?p-1:p],b=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=y[0]/b[0],v=y[1]/b[1],N=1/x,T=1/v,S=Math.ceil(N)*2+2,A=Math.ceil(T)*2+2;for(let $=0;$=h)continue;let Z=R+ie*l[1],de=ie*x,oe=Math.min(u-1,i?Math.round(de):Math.floor(de));if(B===oe)for(let ge=0;ge=m)continue;let we=Z+fe*l[2],Te=fe*v,_e=Math.min(p-1,i?Math.round(Te):Math.floor(Te));H===_e&&(se+=g[we+Q])}}f[X+Q]=se}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var i6={kernelName:Rd,backendName:"cpu",kernelFunc:s6};function o6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;ve(r,"reverse");let i=r.shape.length,o=w.parseAxisParam(s,r.shape);if(i===0)return nr({inputs:{x:r},backend:n});let l=new Ot(r.shape,r.dtype),c=n.bufferSync(r);for(let u=0;ud[h]=r.shape[h]-1-d[h]),l.set(c.get(...d),...p)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}var l6={kernelName:ri,backendName:"cpu",kernelFunc:o6},u6={kernelName:Tl,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=w.getTypedArrayFromDType(a.dtype,w.sizeFromShape(a.shape)),[c,u,p,d]=a.shape,[h,m]=_.getImageCenter(i,u,p),f=255,g=Math.sin(r),y=Math.cos(r),b=o.data.get(a.dataId).values;for(let x=0;x=0&&W=0&&G{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1}),p6={kernelName:si,backendName:"cpu",kernelFunc:c6};function FN(e,t,n,a,r,s,i,o,l,c){let u=[a/r,r],p=e.values,d=t.values;if(a===0)return Le(n,t.dtype);let h=Le(u,t.dtype);h.values.fill(l);for(let m=0;m=a/r)throw new Error(`Invalid indices: ${f} does not index into ${n}`);for(let y=0;y1||r.shape.length===1?1:w.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?y6*e:g6*(Math.exp(e)-1)),x6={kernelName:hl,backendName:"cpu",kernelFunc:b6},v6=st(li,e=>1/(1+Math.exp(-e))),w6={kernelName:li,backendName:"cpu",kernelFunc:v6},k6=st(gl,e=>e<0?-1:e>0?1:0),I6={kernelName:gl,backendName:"cpu",kernelFunc:k6},T6=st(oi,e=>Math.sin(e)),N6={kernelName:oi,backendName:"cpu",kernelFunc:T6},S6=st(fl,e=>Math.sinh(e)),C6={kernelName:fl,backendName:"cpu",kernelFunc:S6},_6=11920928955078125e-23,AN=Math.log(_6)+2,E6=st(yl,e=>{let t=e>-AN,n=e{let d=[...u];d[o]=p;let h=Vi({inputs:{x:r},backend:n,attrs:{begin:c,size:d}});return c[o]+=p,h})}var P6={kernelName:bl,backendName:"cpu",kernelFunc:M6},O6=st(ui,e=>Math.sqrt(e)),L6={kernelName:ui,backendName:"cpu",kernelFunc:O6},z6={kernelName:cc,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;ve(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),W6={kernelName:Gr,backendName:"cpu",kernelFunc:B6};function V6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:c,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:d}=a;ve(r,"stridedSlice");let{nonStrided:h,$begin:m,$strides:f,size:g,newShape:y,outShape:b}=pn.sliceInfo(r.shape,s,i,o,l,c,u,p,d),x=kt({inputs:{x:r},backend:n,attrs:{shape:y}}),v;if(h){let T=Vi({inputs:{x},backend:n,attrs:{begin:m,size:g}});v=kt({inputs:{x:T},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(T)}else if(b.some(T=>T===0))v=n.makeTensorInfo(b,r.dtype,[]);else{let T=n.bufferSync(x),S=oN(b,T,f,m);v=n.makeTensorInfo(S.shape,S.dtype,S.values)}let N=kt({inputs:{x:v},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(x),n.disposeIntermediateTensorInfo(v),N}var U6={kernelName:xl,backendName:"cpu",kernelFunc:V6},G6=st(vl,e=>Math.tan(e)),H6={kernelName:vl,backendName:"cpu",kernelFunc:G6},j6=st(mi,e=>Math.tanh(e)),q6={kernelName:mi,backendName:"cpu",kernelFunc:j6};function K6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ve(r,"tile");let i=uN(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var X6={kernelName:Ur,backendName:"cpu",kernelFunc:K6};function Y6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;ve(r,"topk");let o=n.data.get(r.dataId).values,[l,c]=cN(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(c.shape,c.dtype,c.values)]}var J6={kernelName:wl,backendName:"cpu",kernelFunc:Y6};function Q6(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;ve(s,"unique");let i=a.data.get(s.dataId).values,{outputValues:o,outputShape:l,indices:c}=pN(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([c.length],"int32",c)]}var Z6={kernelName:Od,backendName:"cpu",kernelFunc:Q6};function e5(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape.length,o=r.shape[s],l=new Array(i-1),c=0;for(let h=0;hn.disposeIntermediateTensorInfo(m)),h}var a5={kernelName:pc,backendName:"cpu",kernelFunc:n5},r5=[NU,EV,CU,EU,MV,AU,DU,MU,OU,zU,WU,UU,HU,KU,YU,ZU,tG,aG,sG,IU,oG,uG,pG,DV,OV,hG,FV,fG,yG,vG,kG,bG,SG,_G,TG,FG,$G,RG,PG,LG,BG,WG,UG,HG,qG,KG,YG,XG,Tv,gU,QG,eH,lH,LV,uH,BV,fH,yH,bH,VV,wH,IH,NH,CH,EH,GV,$H,AV,RH,gG,PH,LH,BH,yU,jV,UH,HH,KV,qH,YH,QH,tj,aj,sj,YV,lj,cj,dj,mj,gj,ij,xj,wj,QV,Ij,Sj,Fj,eU,nU,Dj,Pj,zj,rU,Wj,Uj,Gj,EN,Kj,xU,oU,Yj,$V,Qj,vU,wU,kU,e6,n6,r6,i6,l6,u6,p6,uU,h6,f6,x6,w6,I6,N6,C6,cU,_j,F6,$6,R6,P6,L6,z6,dU,W6,U6,mU,yj,H6,q6,X6,J6,sU,Z6,t5,a5,Vj];for(let e of r5)hc(e);var Ui={},Cv={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function s5(e,t){Ui[e]=t}function ar(e){if(!(e in Ui)){let n=i5(e);if(n!==null)Ui[e]=n;else return console.log("Could not get context for WebGL version",e),null}let t=Ui[e];return t.isContextLost()?(delete Ui[e],ar(e)):(t.disable(t.DEPTH_TEST),t.disable(t.STENCIL_TEST),t.disable(t.BLEND),t.disable(t.DITHER),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SAMPLE_COVERAGE),t.enable(t.SCISSOR_TEST),t.enable(t.CULL_FACE),t.cullFace(t.BACK),Ui[e])}function o5(e){if(typeof OffscreenCanvas!="undefined"&&e===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function i5(e){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let t=o5(e);return t.addEventListener("webglcontextlost",n=>{n.preventDefault(),delete Ui[e]},!1),e===1?t.getContext("webgl",Cv)||t.getContext("experimental-webgl",Cv):t.getContext("webgl2",Cv)}var sp;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(sp||(sp={}));var na;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(na||(na={}));var an;(function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(an||(an={}));function ip(e,t){return[t,e]}function l5(e,t){return e*t}function op(e){let t=w.sizeFromShape(e),n=Math.ceil(t/4);return w.sizeToSquarishShape(n)}function au(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function u5(e,t){let[n,a]=au(e,t);return n*a*4}function _v(e,t){let n=e,a,r,s,i,o,l,c,u,p,d;return ee().getNumber("WEBGL_VERSION")===2?(a=n.R32F,r=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,c=4,u=1,p=n.HALF_FLOAT,d=n.FLOAT):(a=e.RGBA,r=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,c=4,u=4,p=t!=null?t.HALF_FLOAT_OES:null,d=e.FLOAT),l=e.RGBA,{internalFormatFloat:a,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:c,defaultNumChannels:u,textureTypeHalfFloat:p,textureTypeFloat:d}}function Ie(e,t){let n=t();return ee().getBool("DEBUG")&&c5(e),n}function c5(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+p5(e,t))}var d5=596e-10,h5=65504;function m5(e){return!!(ee().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||d5e.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function f5(e,t){let n=Tr(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(Ie(e,()=>e.shaderSource(n,t)),Ie(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}function y5(e,t){let n=Tr(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(Ie(e,()=>e.shaderSource(n,t)),Ie(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw g5(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var b5=/ERROR: [0-9]+:([0-9]+):/g;function g5(e,t){let n=b5.exec(t);if(n==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}let a=+n[1],r=e.split(` -`),s=r.length.toString().length+2,i=r.map((p,d)=>w.rightPad((d+1).toString(),s)+p),o=0;for(let p=0;p0&&I.isString(n[0])){let r=n.map(s=>I.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return{dataId:a,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,n,a,r){this.data.set(e,{values:t,dtype:a,refCount:r})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:n}=this.data.get(e);if(t==="complex64"){let a=this.readSync(n.real.dataId),r=this.readSync(n.imag.dataId);return E.mergeRealAndImagArrays(a,r)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId),n=t;if(e.dtype==="string")try{n=t.map(a=>I.decodeString(a))}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(e.shape,e.dtype,n)}makeOutput(e,t,n){let a=this.write(e,t,n);return Ua().makeTensorFromDataId(a,t,n,this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(e);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){let t=I.now();return e(),{kernelMs:I.now()-t}}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(e){ve([e],"where");let t=this.readSync(e.dataId);return ZV(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};hv.nextDataId=0;var VN={};Oe(VN,{addImpl:()=>GN,bincountImpl:()=>mv,bincountReduceImpl:()=>HN,ceilImpl:()=>jN,concatImpl:()=>fv,expImpl:()=>qN,expm1Impl:()=>XN,floorImpl:()=>KN,gatherV2Impl:()=>YN,greaterImpl:()=>JN,lessImpl:()=>QN,linSpaceImpl:()=>ZN,logImpl:()=>e2,maxImpl:()=>t2,maximumImpl:()=>n2,minimumImpl:()=>a2,multiplyImpl:()=>gv,negImpl:()=>r2,notEqualImpl:()=>s2,prodImpl:()=>i2,rangeImpl:()=>bv,rsqrtImpl:()=>o2,simpleAbsImpl:()=>UN,sliceImpl:()=>km,squaredDifferenceImpl:()=>l2,stridedSliceImpl:()=>u2,subImpl:()=>c2,tileImpl:()=>p2,topKImpl:()=>d2,transposeImpl:()=>yv,uniqueImpl:()=>h2});function UN(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;ve(t,"abs");let a=new Float32Array(I.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=UN(r),n.makeOutput(a,t.shape,"float32")},tU={kernelName:So,backendName:"cpu",kernelFunc:eU};function Rt(e){return(t,n,a,r,s)=>{let i=E.assertAndGetBroadcastShape(t,n),o=i.length,l=I.computeStrides(i),u=I.sizeFromShape(i),c=I.getTypedArrayFromDType(s,u),p=t.length,d=n.length,h=I.computeStrides(t),m=I.computeStrides(n),f=E.getBroadcastDims(t,i),g=E.getBroadcastDims(n,i);if(f.length+g.length===0)for(let y=0;yx[S]=0);let v=I.locToIndex(x,p,h),k=b.slice(-d);g.forEach(S=>k[S]=0);let w=I.locToIndex(k,d,m);c[y]=e(a[v],r[w])}return[c,i]}}function Un(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.complexTensorInfos={real:n.makeTensorInfo(a.shape,"float32",s),imag:n.makeTensorInfo(r.shape,"float32",i)},o}var nU={kernelName:md,backendName:"cpu",kernelFunc:Un};function Im(e,t,n="float32"){if(n==="complex64"){let r=Im(e,t,"float32"),s=Im(e,t,"float32");return Un({inputs:{real:r,imag:s},backend:e})}let a=I.makeZerosTypedArray(I.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function nr(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var aU={kernelName:Bs,backendName:"cpu",kernelFunc:nr};function Bi(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.data.get(a.dataId).complexTensorInfos.real,s=n.data.get(r.dataId).values;return n.makeTensorInfo(r.shape,r.dtype,s)}var rU={kernelName:Md,backendName:"cpu",kernelFunc:Bi};function ps(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return nr({inputs:{x:r},backend:n});let i=Im(n,r.shape,r.dtype),o=ps({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=Un({inputs:{real:o,imag:i},backend:n});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=Bi({inputs:{input:r},backend:n}),o=ps({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!I.hasEncodingLoss(r.dtype,s)){let i=nr({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(s==="int32"){let i=n.data.get(r.dataId).values,o=Int32Array.from(i);return n.makeTensorInfo(r.shape,"int32",o)}if(s==="bool"){let i=n.data.get(r.dataId).values,o=I.toTypedArray([0],r.dtype),[l,u]=Rt((c,p)=>c!==p?1:0)(r.shape,[],i,o,"bool");return n.makeTensorInfo(u,"bool",l)}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var sU={kernelName:As,backendName:"cpu",kernelFunc:ps};function Qt(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;ve([i,o],e);let u=l.data.get(i.dataId).values,c=l.data.get(o.dataId).values,p=a||i.dtype,[d,h]=t(i.shape,o.shape,u,c,p);return l.makeTensorInfo(h,p,d)}:({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;if(i.dtype==="complex64"||o.dtype==="complex64"){let u=ps({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),c=l.data.get(u.dataId),p=c.complexTensorInfos.real,d=c.complexTensorInfos.imag,h=l.data.get(p.dataId).values,m=l.data.get(d.dataId).values,f=ps({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),y=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,x=l.data.get(y.dataId).values,v=l.data.get(b.dataId).values,[k,w,S]=n(i.shape,o.shape,h,m,x,v),A=l.makeTensorInfo(S,"float32",k),F=l.makeTensorInfo(S,"float32",w),D=Un({inputs:{real:A,imag:F},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(A),l.disposeIntermediateTensorInfo(F),D}else{let u=l.data.get(i.dataId).values,c=l.data.get(o.dataId).values,p=a||i.dtype,[d,h]=t(i.shape,o.shape,u,c,p);return l.makeTensorInfo(h,p,d)}}}function xv(e){return(t,n,a,r,s,i)=>{let o=E.assertAndGetBroadcastShape(t,n),l=I.sizeFromShape(o),u=o.length,c=I.computeStrides(o),p=I.getTypedArrayFromDType("float32",l),d=I.getTypedArrayFromDType("float32",l),h=E.getBroadcastDims(t,o),m=E.getBroadcastDims(n,o),f=E.mergeRealAndImagArrays(a,r),g=E.mergeRealAndImagArrays(s,i),y=t.length,b=I.computeStrides(t),x=n.length,v=I.computeStrides(n);if(h.length+m.length===0)for(let k=0;kS[L]=0);let A=I.locToIndex(S,y,b),F=w.slice(-x);m.forEach(L=>F[L]=0);let D=I.locToIndex(F,x,v),R=e(f[A*2],f[A*2+1],g[D*2],g[D*2+1]);p[k]=R.real,d[k]=R.imag}return[p,d,o]}}var GN=Rt((e,t)=>e+t),iU=xv((e,t,n,a)=>({real:e+n,imag:t+a})),sp=Qt(Br,GN,iU),oU={kernelName:Br,backendName:"cpu",kernelFunc:sp};function mv(e,t,n,a,r){let s=I.sizeFromShape(a),i=I.makeZerosTypedArray(r,n);for(let o=0;o=r||(s>0?i[l]+=t[o]:i[l]+=1)}return i}function HN(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Le([r,n],t.dtype);for(let o=0;o=n||(a?i.set(1,o,u):t.size>0?i.set(i.get(o,u)+t.get(o,l),o,u):i.set(i.get(o,u)+1,o,u))}return i}function Zl(e){return(t,n,a)=>{let r=I.getTypedArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;if(ve(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,u=I.sizeFromShape(i.shape),c=n||i.dtype,p=I.getArrayFromDType(c,u);for(let d=0;d{let{x:i}=a;if(ve(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,u=n||i.dtype,c=t(l,u,r);return o.makeTensorInfo(i.shape,u,c)}}var jN=Zl(e=>Math.ceil(e)),lU=eu(Fs,jN),uU={kernelName:Fs,backendName:"cpu",kernelFunc:lU};function fv(e,t,n,a){let r=I.getArrayFromDType(n,I.sizeFromShape(t));if(a&&n!=="string"){let s=0;e.forEach(i=>{let o=I.sizeFromShape(i.shape);r.set(i.vals,s),s+=o})}else{let s=0;e.forEach(i=>{let o=n==="string"?E.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let u=0;uMath.exp(e)),m2=eu(Ps,qN),cU={kernelName:Ps,backendName:"cpu",kernelFunc:m2},XN=Zl(e=>Math.expm1(e)),pU=eu(Vo,XN),dU={kernelName:Vo,backendName:"cpu",kernelFunc:pU},KN=Zl(e=>Math.floor(e)),hU=eu(Os,KN),mU={kernelName:Os,backendName:"cpu",kernelFunc:hU};function YN(e,t,n){let a=Le(n,e.dtype);for(let r=0;re>t?1:0),fU=Qt(jo,JN,null,"bool"),gU={kernelName:jo,backendName:"cpu",kernelFunc:fU},QN=Rt((e,t)=>eMath.log(e)),xU=eu(Us,e2),vU={kernelName:Us,backendName:"cpu",kernelFunc:xU};function t2(e,t,n,a){let r=I.getTypedArrayFromDType(a,I.sizeFromShape(n));for(let s=0;so&&(o=u)}r[s]=o}return r}var n2=Rt((e,t)=>Math.max(e,t)),wU=Qt(Hs,n2),kU={kernelName:Hs,backendName:"cpu",kernelFunc:wU},a2=Rt((e,t)=>Math.min(e,t)),IU=Qt(Ks,a2),NU={kernelName:Ks,backendName:"cpu",kernelFunc:IU},gv=Rt((e,t)=>e*t),TU=xv((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),vv=Qt(Ys,gv,TU),SU={kernelName:Ys,backendName:"cpu",kernelFunc:vv};function r2(e,t,n){let a=I.createScalarValue(-1,n);return gv([],t,a,e,n)}function CU(e){let{inputs:t,backend:n}=e,{x:a}=t;ve(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=r2(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var AU={kernelName:tl,backendName:"cpu",kernelFunc:CU},s2=Rt((e,t)=>e!==t?1:0),FU=Qt(nl,s2,null,"bool"),_U={kernelName:nl,backendName:"cpu",kernelFunc:FU};function yv(e,t,n,a,r){let s=t.length,i=I.sizeFromShape(t),o=I.computeStrides(t),l=I.computeStrides(r),u=I.getTypedArrayFromDType(n,I.sizeFromShape(r));for(let c=0;cn.disposeIntermediateTensorInfo(b)),n.makeTensorInfo(y,g,m)}var DU={kernelName:ll,backendName:"cpu",kernelFunc:$U};function bv(e,t,n,a){let r=e===t,s=e1;if(r||s||i)return I.makeZerosTypedArray(0,a);let o=Math.abs(Math.ceil((t-e)/n)),l=I.makeZerosTypedArray(o,a);t1/Math.sqrt(e)),MU=eu(ii,o2),RU={kernelName:ii,backendName:"cpu",kernelFunc:MU};function km(e,t,n,a,r){let s=pn.isSliceContinous(a,t,n),i=I.sizeFromShape(n),o=I.computeStrides(a);if(s){let p=pn.computeFlatOffset(t,o);return r==="string"?e.slice(p,p+i):e.subarray(p,p+i)}let l=r==="string"?E.fromUint8ToStringArray(e):e,u=Le(a,r,l),c=Le(n,r);for(let p=0;pm+t[f]);c.set(u.get(...h),...d)}return r==="string"?E.fromStringArrayToUint8(c.values):c.values}function Vi(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;ve(r,"slice");let[o,l]=pn.parseSliceParams(r,s,i);pn.assertParamsValid(r,o,l);let u=n.data.get(r.dataId).values,c=km(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,c)}var PU={kernelName:ml,backendName:"cpu",kernelFunc:Vi},l2=Rt((e,t)=>{let n=e-t;return n*n}),OU=Qt(di,l2),LU={kernelName:di,backendName:"cpu",kernelFunc:OU};function u2(e,t,n,a){let r=Le(e,t.dtype);for(let s=0;se-t),zU=xv((e,t,n,a)=>({real:e-n,imag:t-a})),wv=Qt(hi,c2,zU),WU={kernelName:hi,backendName:"cpu",kernelFunc:wv};function p2(e,t){let n=new Array(e.rank);for(let r=0;rx.value-b.value);let f=p*a,g=l.subarray(f,f+a),y=u.subarray(f,f+a);for(let b=0;b{for(let g=0;gnew hv,1);var f2=it(Lo,e=>e>=0?e:Math.exp(e)-1),VU={kernelName:Lo,backendName:"cpu",kernelFunc:f2};function g2(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;ve([r],"leakyRelu");let i=I.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=I.getTypedArrayFromDType("float32",i);for(let u=0;ue<0?t*e:e);function y2(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;ve([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=GU(a.shape,r.shape,s,i,a.dtype);return n.makeTensorInfo(l,a.dtype,o)}var HU={kernelName:ei,backendName:"cpu",kernelFunc:y2},b2=it(ti,e=>Math.max(0,e)),jU={kernelName:ti,backendName:"cpu",kernelFunc:b2},x2=it(ai,e=>Math.min(Math.max(0,e),6)),qU={kernelName:ai,backendName:"cpu",kernelFunc:x2};function kv(e,t,n,a,r){if(n==="linear")return nr({inputs:{x:t},backend:e});if(n==="relu")return b2({inputs:{x:t},backend:e});if(n==="elu")return f2({inputs:{x:t},backend:e});if(n==="relu6")return x2({inputs:{x:t},backend:e});if(n==="prelu")return y2({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return g2({inputs:{x:t},backend:e,attrs:{alpha:r}});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function It(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=I.sizeFromShape(r.shape),o=I.inferFromImplicitShape(s,i),l=I.sizeFromShape(o);I.assert(i===l,()=>`The new shape (${o}) has ${l} elements and the old shape (${r.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),n.incRef(r.dataId);let u=n.data.get(r.dataId);if(u.complexTensorInfos!=null){let c=u.complexTensorInfos.real,p=u.complexTensorInfos.imag;c.shape=o,p.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}var XU={kernelName:cl,backendName:"cpu",kernelFunc:It};function v2(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;ve([r,s],"matMul");let l=r.shape.length,u=s.shape.length,c=i?r.shape[l-2]:r.shape[l-1],p=o?s.shape[u-1]:s.shape[u-2],d=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[u-2]:s.shape[u-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=I.sizeFromShape(m),y=I.sizeFromShape(f),b=g===y||g===1||y===1;I.assert(l>=2&&u>=2&&b,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${m}) and (${f}).`);let x=(g>y?r.shape.slice(0,-2):s.shape.slice(0,-2)).concat([d,h]);I.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let v=i?[g,c,d]:[g,d,c],k=o?[y,h,p]:[y,p,h],w=It({inputs:{x:r},backend:n,attrs:{shape:v}}),S=It({inputs:{x:s},backend:n,attrs:{shape:k}}),A=i?w.shape[1]:w.shape[2],F=i?w.shape[2]:w.shape[1],D=o?S.shape[1]:S.shape[2],R=Math.max(g,y),L=n.data.get(w.dataId).values,W=n.data.get(S.dataId).values,U=I.computeStrides(w.shape),G=I.computeStrides(S.shape),[X,j,te]=i?[U[0],1,U[1]]:[U[0],U[1],1],[Q,se,ne]=o?[1,G[1],G[0]]:[G[1],1,G[0]],ie=F*D,ee=Le([R,F,D],w.dtype),de=ee.values,oe=n.blockSize;for(let ge=0;geMath.acos(e)),ZU={kernelName:Co,backendName:"cpu",kernelFunc:QU},eG=it(Ao,e=>Math.acosh(e)),tG={kernelName:Ao,backendName:"cpu",kernelFunc:eG};function nG(e){let{inputs:t,backend:n}=e,a=t;ve(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Le(a[0].shape,a[0].dtype),i=s.values;for(let o=0;ob&&(b=k,x=v)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(c,"int32",h)}var uG={kernelName:Ts,backendName:"cpu",kernelFunc:lG};function cG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;ve(r,"argMin");let i=I.parseAxisParam(s,r.shape),o=E.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=ya({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=E.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],E.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[c,p]=E.computeOutAndReduceShapes(l.shape,i),d=I.sizeFromShape(c),h=I.makeZerosTypedArray(d,"int32"),m=I.sizeFromShape(p),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(c,"int32",h)}var pG={kernelName:Ku,backendName:"cpu",kernelFunc:cG},dG=it(Fo,e=>Math.asin(e)),hG={kernelName:Fo,backendName:"cpu",kernelFunc:dG},mG=it(_o,e=>Math.asinh(e)),fG={kernelName:_o,backendName:"cpu",kernelFunc:mG},gG=it(Eo,e=>Math.atan(e)),yG={kernelName:Eo,backendName:"cpu",kernelFunc:gG},bG=Rt((e,t)=>Math.atan2(e,t)),xG=Qt(Do,bG),vG={kernelName:Do,backendName:"cpu",kernelFunc:xG},wG=it($o,e=>Math.atanh(e)),kG={kernelName:$o,backendName:"cpu",kernelFunc:wG};function Iv(e,t,n,a,r,s){let i=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,u=r.dilationWidth,c=r.effectiveFilterHeight,p=r.effectiveFilterWidth,d=r.padInfo.top,h=r.padInfo.left,m=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=Le(r.outShape,n),g=f.values,y=r.outShape[1]*r.outShape[2]*r.outShape[3],b=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let v=0;vj?j=oe:s==="avg"&&(te+=oe,Q++)}if(isNaN(j))break}let se=L+W*x+S;g[se]=s==="avg"?te/Q:j}}}return f}function w2(e,t,n,a,r=!1,s=!1){let i=Le(a.outShape,"int32"),o=a.strideHeight,l=a.strideWidth,u=a.dilationHeight,c=a.dilationWidth,p=a.effectiveFilterHeight,d=a.effectiveFilterWidth,h=a.padInfo.top,m=a.padInfo.left,f=Le(t,n,e);for(let g=0;gD&&(D=X,r?R=s?((g*a.inHeight+L)*a.inWidth+U)*a.inChannels+y:(L*a.inWidth+U)*a.inChannels+y:R=W*d+G)}}i.set(R,g,b,w,y)}}return i}function k2(e,t,n,a,r,s){let i=r.strideDepth,o=r.strideHeight,l=r.strideWidth,u=r.dilationDepth,c=r.dilationHeight,p=r.dilationWidth,d=r.effectiveFilterDepth,h=r.effectiveFilterHeight,m=r.effectiveFilterWidth,f=r.padInfo.front,g=r.padInfo.top,y=r.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=Le(r.outShape,n),v=x.values,k=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],w=r.outShape[2]*r.outShape[3]*r.outShape[4],S=r.outShape[3]*r.outShape[4],A=r.outShape[4];for(let F=0;Fwe?we=We:s==="avg"&&(Ne+=We,Ae++),isNaN(we))break}if(isNaN(we))break}if(isNaN(we))break}let Me=fe+L;v[Me]=s==="avg"?Ne/Ae:we}}}}return x}function IG(e,t){let n=Le(t.outShape,"int32"),a=t.strideDepth,r=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,u=t.effectiveFilterDepth,c=t.effectiveFilterHeight,p=t.effectiveFilterWidth,d=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let f=0;f=W&&(W=ne,U=X*c*p+te*c+se)}}}n.set(U,f,y,k,F,g)}}}return n}function NG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;ve(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;I.assert(E.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let c=E.computePool2DInfo(r.shape,s,i,u,o,l),p;if(c.filterWidth===1&&c.filterHeight===1&&I.arraysEqual(c.inShape,c.outShape))p=nr({inputs:{x:r},backend:n});else{let d=n.data.get(r.dataId).values,h=I.computeStrides(r.shape),m=Iv(d,r.shape,r.dtype,h,c,"avg");p=n.makeTensorInfo(c.outShape,r.dtype,m.values)}return p}var TG={kernelName:Ss,backendName:"cpu",kernelFunc:NG};function SG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ve(r,"avgPool3d");let c=E.computePool3DInfo(r.shape,s,i,1,o,l,u),p=n.data.get(r.dataId).values,d=k2(p,r.shape,r.dtype,I.computeStrides(r.shape),c,"avg");return n.makeTensorInfo(d.shape,"float32",d.values)}var CG={kernelName:Yu,backendName:"cpu",kernelFunc:SG};function AG(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ve([r,s],"avgPool3DGrad");let c=E.computePool3DInfo(s.shape,i,o,1,l,u),p=c.strideDepth,d=c.strideHeight,h=c.strideWidth,m=c.filterDepth,f=c.filterHeight,g=c.filterWidth,y=c.dilationDepth,b=c.dilationHeight,x=c.dilationWidth,v=c.effectiveFilterDepth,k=c.effectiveFilterHeight,w=c.effectiveFilterWidth,S=v-1-c.padInfo.front,A=w-1-c.padInfo.left,F=k-1-c.padInfo.top,D=Le(s.shape,"float32"),R=1/(m*f*g),L=n.bufferSync(r);for(let W=0;W=c.outDepth||Math.floor(ee)!==ee))for(let de=0;de=c.outHeight||Math.floor(oe)!==oe))for(let ge=0;ge=c.outWidth||Math.floor(fe)!==fe||(ne+=L.get(W,ee,oe,fe,U))}}}D.set(ne*R,W,G,X,j,U)}return n.makeTensorInfo(D.shape,D.dtype,D.values)}var FG={kernelName:dd,backendName:"cpu",kernelFunc:AG};function _G(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;ve([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,c=E.computePool2DInfo(i.shape,o,l,1,u),p=c.strideHeight,d=c.strideWidth,h=c.filterHeight,m=c.filterWidth,f=c.dilationHeight,g=c.dilationWidth,y=c.effectiveFilterHeight,b=c.effectiveFilterWidth,x=b-1-c.padInfo.left,v=y-1-c.padInfo.top,k=Le(i.shape,"float32"),w=1/(h*m),S=n.data.get(r.dataId).values,A=Le(r.shape,"float32",S);for(let F=0;F=c.outHeight||Math.floor(j)!==j))for(let te=0;te=c.outWidth||Math.floor(Q)!==Q||(G+=A.get(F,j,Q,D))}}k.set(G*w,F,R,L,D)}return n.makeTensorInfo(k.shape,k.dtype,k.values)}var EG={kernelName:pd,backendName:"cpu",kernelFunc:_G};function $G(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,scale:s,offset:i,mean:o,variance:l}=t;I.assert(o.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),I.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),I.assert(s==null||o.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),ve([r,o,l,s,i],"batchNorm");let{varianceEpsilon:u}=a;u==null&&(u=.001);let c=n.data.get(r.dataId).values,p=n.data.get(o.dataId).values,d=n.data.get(l.dataId).values,h=s?n.data.get(s.dataId).values:new Float32Array([1]),m=i?n.data.get(i.dataId).values:new Float32Array([0]),f=new Float32Array(c.length),g=m.length,y=h.length,b=d.length,x=p.length,v=0,k=0,w=0,S=0;for(let A=0;A=g&&(v=0),k>=x&&(k=0),w>=y&&(w=0),S>=b&&(S=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var DG={kernelName:zs,backendName:"cpu",kernelFunc:$G};function MG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ve([r],"batchToSpaceND");let o=s.reduce((y,b)=>y*b),l=E.getReshaped(r.shape,s,o),u=E.getPermuted(l.length,s.length),c=E.getReshapedPermuted(r.shape,s,o),p=E.getSliceBeginCoords(i,s.length),d=E.getSliceSize(c,i,s.length),h=It({inputs:{x:r},backend:n,attrs:{shape:l}}),m=ya({inputs:{x:h},backend:n,attrs:{perm:u}}),f=It({inputs:{x:m},backend:n,attrs:{shape:c}}),g=Vi({inputs:{x:f},backend:n,attrs:{begin:p,size:d}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var RG={kernelName:Ju,backendName:"cpu",kernelFunc:MG};function PG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,u=mv(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var OG={kernelName:hd,backendName:"cpu",kernelFunc:PG},LG=it(Vr,(e,t)=>{let n=t;return e>n.clipValueMax?n.clipValueMax:e{let{x:t}=e.inputs,n=e.backend,a=new Float32Array(I.sizeFromShape(t.shape)),r=n.data.get(t.dataId),s=r.complexTensorInfos.real,i=r.complexTensorInfos.imag,o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values;for(let u=0;uf.shape),s);if(I.sizeFromShape(i)===0)return n.makeTensorInfo(i,t[0].dtype,[]);let o=t.filter(f=>I.sizeFromShape(f.shape)>0);if(o.length===1)return nr({inputs:{x:o[0]},backend:n});let l=o.map(f=>f.shape);if(E.assertParamsConsistent(l,s),o[0].dtype==="complex64"){let f=o.map(v=>Bi({inputs:{input:v},backend:n})),g=o.map(v=>tu({inputs:{input:v},backend:n})),y=nu({inputs:f,backend:n,attrs:{axis:s}}),b=nu({inputs:g,backend:n,attrs:{axis:s}}),x=Un({inputs:{real:y,imag:b},backend:n});return f.forEach(v=>n.disposeIntermediateTensorInfo(v)),g.forEach(v=>n.disposeIntermediateTensorInfo(v)),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(b),x}let u=o.map(f=>{let g=I.sizeFromShape(f.shape.slice(s));return It({inputs:{x:f},backend:n,attrs:{shape:[-1,g]}})}),c=u.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));i=E.computeOutShape(u.map(f=>f.shape),1);let p=u[0].shape[0]===1,d=fv(c,i,t[0].dtype,p),h=E.computeOutShape(o.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,d);return u.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var UG={kernelName:Mo,backendName:"cpu",kernelFunc:nu};function I2(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:c}=a;ve([r,s],"conv2d");let p=E.convertConv2DDataFormat(l),d=E.computeConv2DInfo(r.shape,s.shape,i,u,o,c,!1,p),h=d.filterHeight,m=d.filterWidth,f=d.dilationHeight,g=d.dilationWidth,y=d.padInfo.left,b=d.padInfo.top,x=d.dataFormat==="channelsLast",v=new Lt(d.outShape,r.dtype),k=I.computeStrides(r.shape),w=I.computeStrides(s.shape),S=k[0],A=x?k[1]:k[2],F=x?k[2]:1,D=x?1:k[1],R=v.strides[0],L=x?v.strides[1]:v.strides[2],W=x?v.strides[2]:1,U=x?1:v.strides[1],G=n.data.get(r.dataId).values,X=n.data.get(s.dataId).values,j=v.values;for(let te=0;te=d.inHeight)continue;let ge=de*w[0],fe=Q+oe*A;for(let we=0;we=d.inWidth)continue;let nt=ge+Me*w[1],at=fe+_e*F,ot=nt;for(let Ke=0;Ke=u.inDepth)continue;let te=X*F[0],Q=R+j*A[1];for(let se=0;se=u.inHeight)continue;let oe=te+ee*F[1],ge=Q+de*A[2];for(let fe=0;fe=u.inWidth)continue;let _e=oe+Ae*F[2],nt=ge+Me*u.inChannels,at=_e;for(let ot=0;otMath.cos(e)),nH={kernelName:$s,backendName:"cpu",kernelFunc:tH},aH=it(Ro,e=>Math.cosh(e)),rH={kernelName:Ro,backendName:"cpu",kernelFunc:aH};function sH(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,[c,p,d,h]=r.shape,m=s.shape[0],[f,g]=o,y=Le([m,f,g,h],"float32"),b=n.data.get(s.dataId).values,x=n.data.get(i.dataId).values,v=n.data.get(r.dataId).values,k=I.computeStrides(r.shape),w=I.computeStrides(y.shape);for(let S=0;S=c)continue;let U=f>1?(R-F)*(p-1)/(f-1):0,G=g>1?(L-D)*(d-1)/(g-1):0;for(let X=0;X1?F*(p-1)+X*U:.5*(F+R)*(p-1);if(j<0||j>p-1){for(let te=0;te1?D*(d-1)+ne*G:.5*(D+L)*(d-1);if(ie<0||ie>d-1){for(let ge=0;ge1?D*(d-1)+te*G:.5*(D+L)*(d-1);if(Q<0||Q>d-1){for(let ie=0;iey+m-b-1:(y,b)=>y+b;for(let y=0;y`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`),I.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=r.shape[1],u=r.shape[2],c=r.shape[3],p=l*s,d=u*s,h=c/(s*s),m=n.data.get(r.dataId).values,f=new Float32Array(o*p*d*h),g=0;for(let y=0;y`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${d}'`);let h=E.computeConv2DInfo(r.shape,s.shape,i,d,o,u,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:y,padInfo:b}=h,x=b.left,v=b.top,k=h.outChannels/h.inChannels,w=new Lt(h.outShape,r.dtype),S=n.data.get(r.dataId).values,A=n.data.get(s.dataId).values,F=w.values;for(let D=0;D=h.inHeight)continue;let te=X*p[0],Q=R+j*c[1];for(let se=0;se=h.inWidth)continue;let oe=te+ee*p[1],ge=Q+de*h.inChannels,fe=ne,we=oe;for(let Ne=0;Ne{let{x:a,filter:r}=e,{strides:s,pad:i,dilations:o}=n,l=t,u=l.data.get(a.dataId).values,c=a.shape.length,p=l.data.get(r.dataId).values,d=r.shape.length,{batchSize:h,inHeight:m,inWidth:f,inChannels:g,outHeight:y,outWidth:b,padInfo:x,strideHeight:v,strideWidth:k,filterHeight:w,filterWidth:S,dilationHeight:A,dilationWidth:F,outShape:D}=E.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),R=I.sizeFromShape(D),L=D.length,W=I.getArrayFromDType(a.dtype,R);for(let U=0;U=0&&ee=0&&oese&&(se=we)}}}let ne=I.locToIndex([U,G,j,Q],L,I.computeStrides(D));W[ne]=se}}}return{dataId:l.write(I.toTypedArray(W,a.dtype),D,a.dtype),shape:D,dtype:a.dtype}}},wH={kernelName:Id,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,c=I.toNestedArray(a.shape,u.data.get(a.dataId).values),p=I.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:d,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:v,filterHeight:k,filterWidth:w,dilationHeight:S,dilationWidth:A,outShape:F}=E.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);I.assert(s.rank===F.length,()=>`Error in ${Id}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let D=I.toNestedArray(F,u.data.get(s.dataId).values),R=I.makeZerosNestedTypedArray(r.shape,r.dtype);for(let L=0;L=0&&ie=0&&dete&&(te=oe,Q=ne,se=ee)}}}R[Q][se][j]+=D[L][W][G][j]}}}return{dataId:u.write(I.toTypedArray(R,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},kH={kernelName:kd,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,c=I.toNestedArray(a.shape,u.data.get(a.dataId).values),p=I.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:d,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:v,filterHeight:k,filterWidth:w,dilationHeight:S,dilationWidth:A,outShape:F}=E.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);I.assert(s.rank===F.length,()=>`Error in ${kd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let D=I.toNestedArray(F,u.data.get(s.dataId).values),R=I.makeZerosNestedTypedArray(a.shape,a.dtype);for(let L=0;L=0&&ie=0&&dete&&(te=oe,Q=ie,se=de)}}}R[L][Q][se][j]+=D[L][W][G][j]}}}return{dataId:u.write(I.toTypedArray(R,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function IH(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;ve([a,r],"eluGrad");let s=new Float32Array(I.sizeFromShape(r.shape)),i=n.data.get(r.dataId).values,o=n.data.get(a.dataId).values;for(let l=0;l=1?s[l]=o[l]:s[l]=o[l]*(u+1)}return n.makeTensorInfo(r.shape,"float32",s)}var NH={kernelName:Nd,backendName:"cpu",kernelFunc:IH},TH=Rt((e,t)=>e===t?1:0),T2=Qt(Wo,TH,null,"bool"),SH={kernelName:Wo,backendName:"cpu",kernelFunc:T2},CH=E.ERF_P,AH=E.ERF_A1,FH=E.ERF_A2,_H=E.ERF_A3,EH=E.ERF_A4,$H=E.ERF_A5,DH=it(zo,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+CH*n);return t*(1-(((($H*a+EH)*a+_H)*a+FH)*a+AH)*a*Math.exp(-n*n))}),MH={kernelName:zo,backendName:"cpu",kernelFunc:DH};function Nm(e){let{inputs:t,backend:n,attrs:a}=e,{input:r}=t,{dim:s}=a,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(I.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),It({inputs:{x:r},backend:n,attrs:{shape:o}})}var RH={kernelName:Bo,backendName:"cpu",kernelFunc:Nm},PH=Rt((e,t)=>e/t),Nv=Qt(Rs,PH),Tv={kernelName:Rs,backendName:"cpu",kernelFunc:Nv};function S2(e,t,n){let a=e.shape,r=a[0],s=a[1],i=n.data.get(e.dataId),o=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,u=[r,s],c=I.sizeFromShape(u),p=I.getTypedArrayFromDType("float32",c),d=I.getTypedArrayFromDType("float32",c);for(let g=0;g{let{image:a}=e,r=n,s=I.getTypedArrayFromDType(a.dtype,I.sizeFromShape(a.shape)),[i,o,l,u]=a.shape,c=r.data.get(a.dataId).values;for(let p=0;p=0&&xMath.floor(e/t)),jH=Qt(Ls,HH,null,"int32"),qH={kernelName:Ls,backendName:"cpu",kernelFunc:jH};function XH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=I2({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:d}});if(i){let g=f;f=sp({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=kv(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var KH={kernelName:yi,backendName:"cpu",kernelFunc:XH};function YH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=N2({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:d}});if(i){let g=f;f=sp({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=kv(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var JH={kernelName:bi,backendName:"cpu",kernelFunc:YH};function QH(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=I.sizeFromShape(a.shape),i=r.shape,o=i[i.length-1],[l,u,c,p]=E.prepareAndValidate(a,r);if(u===0)return n.makeTensorInfo(l,a.dtype,[]);let d=Le([u,c],a.dtype),h=n.data.get(r.dataId).values,m=n.data.get(a.dataId).values;for(let f=0;f=s/c)throw new Error(`Invalid indices: ${g} does not index into ${a.shape}`);for(let b=0;be>=t?1:0),a6=Qt(Ws,n6,null,"bool"),r6={kernelName:Ws,backendName:"cpu",kernelFunc:a6};function s6(e){let{inputs:t,backend:n}=e,{input:a}=t,r=I.sizeFromShape(a.shape),s=a.shape[a.shape.length-1],i=r/s,o=It({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=S2(o,!0,n),u=It({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var i6={kernelName:Sd,backendName:"cpu",kernelFunc:s6},o6=it(qo,e=>Number.isFinite(e)?1:0,"bool"),l6={kernelName:qo,backendName:"cpu",kernelFunc:o6},u6=it(Xo,e=>Math.abs(e)===Infinity?1:0,"bool"),c6={kernelName:Xo,backendName:"cpu",kernelFunc:u6},p6=it(Ko,e=>Number.isNaN(e)?1:0,"bool"),d6={kernelName:Ko,backendName:"cpu",kernelFunc:p6},h6=Rt((e,t)=>e<=t?1:0),m6=Qt(Jo,h6,null,"bool"),f6={kernelName:Jo,backendName:"cpu",kernelFunc:m6};function g6(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=ZN(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var y6={kernelName:Ad,backendName:"cpu",kernelFunc:g6},b6=it(Qo,e=>Math.log1p(e)),x6={kernelName:Qo,backendName:"cpu",kernelFunc:b6},v6=Rt((e,t)=>e&&t),w6=Qt(Zo,v6,null,"bool"),k6={kernelName:Zo,backendName:"cpu",kernelFunc:w6},I6=it(nc,e=>e?0:1,"bool"),N6={kernelName:nc,backendName:"cpu",kernelFunc:I6},T6=Rt((e,t)=>e||t),S6=Qt(ac,T6,null,"bool"),C6={kernelName:ac,backendName:"cpu",kernelFunc:S6};function A6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;ve(r,"LRN");let u=r.shape[3],c=u-1,p=n.data.get(r.dataId).values,d=I.sizeFromShape(r.shape),h=new Float32Array(d);function m(f){let g=f%u,y=f-g+Math.max(0,g-s),b=f-g+Math.min(g+s,c),x=0;for(;y<=b;y++){let v=p[y];x+=v*v}return x}for(let f=0;f`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let c=E.computePool2DInfo(r.shape,s,i,u,o,l),p;if(c.filterWidth===1&&c.filterHeight===1&&I.arraysEqual(c.inShape,c.outShape))p=nr({inputs:{x:r},backend:n});else{let d=n.data.get(r.dataId).values,h=I.computeStrides(r.shape),m=Iv(d,r.shape,r.dtype,h,c,"max");p=n.makeTensorInfo(c.outShape,r.dtype,m.values)}return p}var M6={kernelName:js,backendName:"cpu",kernelFunc:D6};function R6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ve(r,"maxPool3d");let c=E.computePool3DInfo(r.shape,s,i,1,o,l,u),p=n.data.get(r.dataId).values,d=k2(p,r.shape,r.dtype,I.computeStrides(r.shape),c,"max");return n.makeTensorInfo(d.shape,"float32",d.values)}var P6={kernelName:sc,backendName:"cpu",kernelFunc:R6};function O6(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ve([r,s],"maxPool3DGrad");let c=E.computePool3DInfo(s.shape,i,o,1,l,u),p=n.bufferSync(s),d=IG(p,c),h=c.strideDepth,m=c.strideHeight,f=c.strideWidth,g=c.dilationDepth,y=c.dilationHeight,b=c.dilationWidth,x=c.effectiveFilterDepth,v=c.effectiveFilterHeight,k=c.effectiveFilterWidth,w=x-1-c.padInfo.front,S=k-1-c.padInfo.left,A=v-1-c.padInfo.top,F=Le(s.shape,"float32"),D=n.bufferSync(r);for(let R=0;R=c.outDepth||Math.floor(ne)!==ne))for(let ie=0;ie=c.outHeight||Math.floor(ee)!==ee))for(let de=0;de=c.outWidth||Math.floor(oe)!==oe)continue;let ge=x*v*k-1-d.get(R,ne,ee,oe,L),fe=se*v*k+ie*k+de,we=ge===fe?1:0;we!==0&&(Q+=D.get(R,ne,ee,oe,L)*we)}}}F.set(Q,R,W,U,G,L)}return n.makeTensorInfo(F.shape,F.dtype,F.values)}var L6={kernelName:Ed,backendName:"cpu",kernelFunc:O6};function z6(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;ve([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:c,dimRoundingMode:p}=a,d=E.computePool2DInfo(o.shape,l,u,1,c,p),h=n.data.get(o.dataId).values,m=Le(d.outShape,o.dtype,w2(h,o.shape,o.dtype,d).values),f=d.strideHeight,g=d.strideWidth,y=d.dilationHeight,b=d.dilationWidth,x=d.effectiveFilterHeight,v=d.effectiveFilterWidth,k=v-1-d.padInfo.left,w=x-1-d.padInfo.top,S=Le(o.shape,"float32"),A=n.data.get(r.dataId).values,F=Le(r.shape,"float32",A);for(let D=0;D=d.outHeight||Math.floor(te)!==te))for(let Q=0;Q=d.outWidth||Math.floor(se)!==se)continue;let ne=x*v-1-m.get(D,te,se,R),ie=j*v+Q,ee=ne===ie?1:0;ee!==0&&(X+=F.get(D,te,se,R)*ee)}}S.set(X,D,L,W,R)}return n.makeTensorInfo(S.shape,S.dtype,S.values)}var W6={kernelName:_d,backendName:"cpu",kernelFunc:z6};function B6(e,t,n,a,r){let s=I.computeStrides(t),i=Iv(e,t,n,s,r,"max"),o=w2(e,t,n,r,!0,a);return[i.values,o.values]}var V6={kernelName:$d,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;ve(a,"MaxPoolWithArgmax");let u=l.data.get(a.dataId).values,c=E.computePool2DInfo(a.shape,r,s,[1,1],i),[p,d]=B6(u,a.shape,a.dtype,o,c),h=l.write(p,c.outShape,a.dtype),m=l.write(d,c.outShape,a.dtype);return[{dataId:h,shape:c.outShape,dtype:a.dtype},{dataId:m,shape:c.outShape,dtype:"int32"}]}};function Tm(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ve(r,"sum");let o;r.dtype==="bool"?o=ps({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=nr({inputs:{x:r},backend:n});let l=o.shape.length,u=I.parseAxisParam(s,o.shape),c=E.getAxesPermutation(u,l),p=u,d=o;c!=null&&(d=ya({inputs:{x:o},backend:n,attrs:{perm:c}}),p=E.getInnerMostAxes(p.length,l)),E.assertAxesAreInnerMostDims("sum",p,d.shape.length);let[h,m]=E.computeOutAndReduceShapes(d.shape,p),f=E.upcastType(d.dtype,"int32"),g=Im(n,h,f),y=I.sizeFromShape(m),b=n.data.get(g.dataId).values,x=n.data.get(d.dataId).values;for(let v=0;vn.disposeIntermediateTensorInfo(f)),m}var H6={kernelName:qs,backendName:"cpu",kernelFunc:G6};function j6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ve(r,"min");let o=I.parseAxisParam(s,r.shape),l=o,u=E.getAxesPermutation(l,r.shape.length),c=r;u!=null&&(c=ya({inputs:{x:r},backend:n,attrs:{perm:u}}),l=E.getInnerMostAxes(l.length,r.shape.length)),E.assertAxesAreInnerMostDims("min",l,c.shape.length);let[p,d]=E.computeOutAndReduceShapes(c.shape,l),h=I.sizeFromShape(d),m=I.makeZerosTypedArray(I.sizeFromShape(p),c.dtype),f=n.data.get(c.dataId).values;for(let y=0;yb[0]+r.shape[x]+b[1]),l=s.map(b=>b[0]),u=s.map((b,x)=>b[0]+r.shape[x]),c=i==="reflect"?0:1,p=n.data.get(r.dataId).values,d=r.shape.length,h=I.computeStrides(r.shape),m=I.sizeFromShape(o),f=o.length,g=I.computeStrides(o),y=I.getTypedArrayFromDType(r.dtype,m);for(let b=0;b=u[k]&&(x[k]=(u[k]-1)*2-x[k]+c);x=x.map((k,w)=>k-l[w]);let v=I.locToIndex(x,d,h);y[b]=p[v]}return{dataId:n.write(y,o,r.dtype),shape:o,dtype:r.dtype}}var K6={kernelName:ic,backendName:"cpu",kernelFunc:X6},Y6=Rt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),J6=Qt(el,Y6),Q6={kernelName:el,backendName:"cpu",kernelFunc:J6},Z6=Io(mF());function A2(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=r.shape.length,o=s;if(o===-1&&(o=i-1),o!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${o}`);let l=I.parseAxisParam([o],r.shape),u=C2({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),c=E.expandShapeToKeepDim(u.shape,l),p=It({inputs:{x:u},backend:n,attrs:{shape:c}}),d=wv({inputs:{a:r,b:p},backend:n}),h=m2({inputs:{x:d},backend:n}),m=Tm({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=It({inputs:{x:m},backend:n,attrs:{shape:c}}),g=Nv({inputs:{a:h,b:f},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var ej={kernelName:pi,backendName:"cpu",kernelFunc:A2};function tj(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;ve(r,"multinomial");let l=o?r:A2({inputs:{logits:r},backend:n,attrs:{dim:-1}}),u=l.shape[0],c=l.shape[1],p=n.data.get(l.dataId).values,d=[u,s],h=I.makeZerosTypedArray(I.sizeFromShape(d),"int32");for(let m=0;m=0&&c[p]{I.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),I.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(c=>{let p=Nm({inputs:{input:c},backend:n,attrs:{dim:r}});return o.push(p),p}),u=nu({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(c=>n.disposeIntermediateTensorInfo(c)),u}var gj={kernelName:ol,backendName:"cpu",kernelFunc:_2};function yj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ve(r,"pad");let o=s.map((y,b)=>y[0]+r.shape[b]+y[1]),l=s.map(y=>y[0]),u=n.data.get(r.dataId).values,c=I.sizeFromShape(r.shape),p=r.shape.length,d=I.computeStrides(r.shape),h=I.sizeFromShape(o),m=o.length,f=I.computeStrides(o),g=I.getTypedArrayFromDType(r.dtype,h);i!==0&&g.fill(i);for(let y=0;yv+l[k]),x=I.locToIndex(b,m,f);g[x]=u[y]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var E2={kernelName:Qs,backendName:"cpu",kernelFunc:yj},bj=Rt((e,t)=>Math.pow(e,t)),xj=Qt(Zs,bj),vj={kernelName:Zs,backendName:"cpu",kernelFunc:xj};function wj(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=bv(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var kj={kernelName:oc,backendName:"cpu",kernelFunc:wj},Ij=it(ul,e=>1/e),Nj={kernelName:ul,backendName:"cpu",kernelFunc:Ij};function Tj(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;ve(r,"resizeBilinear");let l=I.computeStrides(r.shape),[u,c]=o,[p,d,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(I.sizeFromShape([p,u,c,m])),y=[s&&u>1?d-1:d,s&&c>1?h-1:h],b=[s&&u>1?u-1:u,s&&c>1?c-1:c],x=0,v=y[0]/b[0],k=y[1]/b[1];for(let w=0;w1?u-1:u,i&&h>1?c-1:c],g=[i&&d>1?d-1:d,i&&h>1?h-1:h],y=f[0]/g[0],b=f[1]/g[1],x=n.data.get(s.dataId).values,v=0;for(let k=0;k1?d-1:d,s&&c>1?h-1:h],b=[s&&u>1?u-1:u,s&&c>1?c-1:c],x=y[0]/b[0],v=y[1]/b[1],k=0;for(let w=0;w1?c-1:c,i&&m>1?p-1:p],b=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=y[0]/b[0],v=y[1]/b[1],k=1/x,w=1/v,S=Math.ceil(k)*2+2,A=Math.ceil(w)*2+2;for(let F=0;F=h)continue;let ee=D+ie*l[1],de=ie*x,oe=Math.min(c-1,i?Math.round(de):Math.floor(de));if(R===oe)for(let ge=0;ge=m)continue;let we=ee+fe*l[2],Ne=fe*v,Ae=Math.min(p-1,i?Math.round(Ne):Math.floor(Ne));G===Ae&&(se+=g[we+Q])}}f[X+Q]=se}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var $j={kernelName:Rd,backendName:"cpu",kernelFunc:Ej};function Dj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;ve(r,"reverse");let i=r.shape.length,o=I.parseAxisParam(s,r.shape);if(i===0)return nr({inputs:{x:r},backend:n});let l=new Lt(r.shape,r.dtype),u=n.bufferSync(r);for(let c=0;cd[h]=r.shape[h]-1-d[h]),l.set(u.get(...d),...p)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}var Mj={kernelName:ri,backendName:"cpu",kernelFunc:Dj},Rj={kernelName:Nl,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=I.getTypedArrayFromDType(a.dtype,I.sizeFromShape(a.shape)),[u,c,p,d]=a.shape,[h,m]=E.getImageCenter(i,c,p),f=255,g=Math.sin(r),y=Math.cos(r),b=o.data.get(a.dataId).values;for(let x=0;x=0&&W=0&&U{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1}),Oj={kernelName:si,backendName:"cpu",kernelFunc:Pj};function $2(e,t,n,a,r,s,i,o,l,u){let c=[a/r,r],p=e.values,d=t.values;if(a===0)return Le(n,t.dtype);let h=Le(c,t.dtype);h.values.fill(l);for(let m=0;m=a/r)throw new Error(`Invalid indices: ${f} does not index into ${n}`);for(let y=0;y1||r.shape.length===1?1:I.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?Uj*e:Vj*(Math.exp(e)-1)),Hj={kernelName:hl,backendName:"cpu",kernelFunc:Gj},jj=it(li,e=>1/(1+Math.exp(-e))),qj={kernelName:li,backendName:"cpu",kernelFunc:jj},Xj=it(gl,e=>e<0?-1:e>0?1:0),Kj={kernelName:gl,backendName:"cpu",kernelFunc:Xj},Yj=it(oi,e=>Math.sin(e)),Jj={kernelName:oi,backendName:"cpu",kernelFunc:Yj},Qj=it(fl,e=>Math.sinh(e)),Zj={kernelName:fl,backendName:"cpu",kernelFunc:Qj},eq=11920928955078125e-23,D2=Math.log(eq)+2,tq=it(yl,e=>{let t=e>-D2,n=e{let d=[...c];d[o]=p;let h=Vi({inputs:{x:r},backend:n,attrs:{begin:u,size:d}});return u[o]+=p,h})}var lq={kernelName:bl,backendName:"cpu",kernelFunc:oq},uq=it(ui,e=>Math.sqrt(e)),cq={kernelName:ui,backendName:"cpu",kernelFunc:uq},pq={kernelName:cc,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;ve(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),hq={kernelName:Gr,backendName:"cpu",kernelFunc:dq};function mq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:d}=a;ve(r,"stridedSlice");let{nonStrided:h,$begin:m,$strides:f,size:g,newShape:y,outShape:b}=pn.sliceInfo(r.shape,s,i,o,l,u,c,p,d),x=It({inputs:{x:r},backend:n,attrs:{shape:y}}),v;if(h){let w=Vi({inputs:{x},backend:n,attrs:{begin:m,size:g}});v=It({inputs:{x:w},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(w)}else if(b.some(w=>w===0))v=n.makeTensorInfo(b,r.dtype,[]);else{let w=n.bufferSync(x),S=u2(b,w,f,m);v=n.makeTensorInfo(S.shape,S.dtype,S.values)}let k=It({inputs:{x:v},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(x),n.disposeIntermediateTensorInfo(v),k}var fq={kernelName:xl,backendName:"cpu",kernelFunc:mq},gq=it(vl,e=>Math.tan(e)),yq={kernelName:vl,backendName:"cpu",kernelFunc:gq},bq=it(mi,e=>Math.tanh(e)),xq={kernelName:mi,backendName:"cpu",kernelFunc:bq};function vq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ve(r,"tile");let i=p2(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var wq={kernelName:Ur,backendName:"cpu",kernelFunc:vq};function kq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;ve(r,"topk");let o=n.data.get(r.dataId).values,[l,u]=d2(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(u.shape,u.dtype,u.values)]}var Iq={kernelName:wl,backendName:"cpu",kernelFunc:kq};function Sq(e){let{inputs:t,attrs:n,backend:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=n,[c,p,d,h]=r.shape,[m,f]=u!=null?u:[p,d],g=[c,m,f,h],y=I.computeStrides(r.shape),b=y[0],x=y[1],v=y[2],k=I.getTypedArrayFromDType(r.dtype,I.sizeFromShape(g));k.fill(l);let w=a.data.get(r.dataId).values,S=a.data.get(s.dataId).values;for(let A=0;At-1)if(t<=1)n=0;else{let a=2*t;n-=a*Math.trunc(n/a),n>=t&&(n=a-n-1)}return I.clamp(0,n,t-1)}function Fq(e,t){let n=e;if(n<0)if(t<=1)n=0;else{let a=t-1;n+=t*(Math.trunc(-n/a)+1)}else if(n>t-1)if(t<=1)n=0;else{let a=t-1;n-=t*Math.trunc(n/a)}return I.clamp(0,n,t-1)}function _q(e,t){return e}function Eq(e,t){return I.clamp(0,e,t-1)}function ip(e,t,n,a,r,s,i,o,l,u,c){let p=i*a+o*r+l*s+u;return 0<=o&&on.disposeIntermediateTensorInfo(m)),h}var Oq={kernelName:pc,backendName:"cpu",kernelFunc:Pq},Lq=[JU,tU,ZU,tG,oU,aG,sG,oG,uG,pG,hG,fG,yG,vG,kG,TG,CG,FG,EG,KU,DG,RG,OG,sU,uU,zG,nU,BG,UG,jG,XG,GG,QG,eH,YG,nH,rH,iH,lH,cH,dH,hH,fH,yH,xH,vH,kH,wH,Tv,VU,NH,SH,MH,cU,RH,dU,BH,UH,GH,mU,qH,KH,JH,ZH,t6,gU,r6,aU,i6,VG,l6,c6,d6,UU,bU,f6,y6,vU,x6,k6,N6,C6,F6,E6,kU,M6,P6,L6,W6,V6,$6,H6,q6,NU,K6,Q6,nj,SU,AU,sj,lj,pj,_U,hj,fj,gj,E2,vj,HU,DU,kj,rU,Nj,jU,qU,XU,Sj,Aj,_j,$j,Mj,Rj,Oj,RU,zj,Bj,Hj,qj,Kj,Jj,Zj,PU,ej,nq,rq,iq,lq,cq,pq,LU,hq,fq,WU,U6,yq,xq,wq,Iq,EU,Cq,Dq,Rq,Oq,mj];for(let e of Lq)hc(e);var Ui={},Av={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function zq(e,t){Ui[e]=t}function ar(e){if(!(e in Ui)){let n=Wq(e);if(n!==null)Ui[e]=n;else return console.log("Could not get context for WebGL version",e),null}let t=Ui[e];return t.isContextLost()?(delete Ui[e],ar(e)):(t.disable(t.DEPTH_TEST),t.disable(t.STENCIL_TEST),t.disable(t.BLEND),t.disable(t.DITHER),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SAMPLE_COVERAGE),t.enable(t.SCISSOR_TEST),t.enable(t.CULL_FACE),t.cullFace(t.BACK),Ui[e])}function Bq(e){if(typeof OffscreenCanvas!="undefined"&&e===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function Wq(e){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let t=Bq(e);return t.addEventListener("webglcontextlost",n=>{n.preventDefault(),delete Ui[e]},!1),e===1?t.getContext("webgl",Av)||t.getContext("experimental-webgl",Av):t.getContext("webgl2",Av)}var op;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(op||(op={}));var na;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(na||(na={}));var rn;(function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(rn||(rn={}));function lp(e,t){return[t,e]}function Vq(e,t){return e*t}function up(e){let t=I.sizeFromShape(e),n=Math.ceil(t/4);return I.sizeToSquarishShape(n)}function au(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function Uq(e,t){let[n,a]=au(e,t);return n*a*4}function Fv(e,t){let n=e,a,r,s,i,o,l,u,c,p,d;return Z().getNumber("WEBGL_VERSION")===2?(a=n.R32F,r=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,u=4,c=1,p=n.HALF_FLOAT,d=n.FLOAT):(a=e.RGBA,r=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,u=4,c=4,p=t!=null?t.HALF_FLOAT_OES:null,d=e.FLOAT),l=e.RGBA,{internalFormatFloat:a,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:c,textureTypeHalfFloat:p,textureTypeFloat:d}}function Ie(e,t){let n=t();return Z().getBool("DEBUG")&&Gq(e),n}function Gq(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+Hq(e,t))}var jq=596e-10,qq=65504;function Xq(e){return!!(Z().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||jqe.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function Kq(e,t){let n=Nr(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(Ie(e,()=>e.shaderSource(n,t)),Ie(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}function Jq(e,t){let n=Nr(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(Ie(e,()=>e.shaderSource(n,t)),Ie(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw Yq(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var Qq=/ERROR: [0-9]+:([0-9]+):/g;function Yq(e,t){let n=Qq.exec(t);if(n==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}let a=+n[1],r=e.split(` +`),s=r.length.toString().length+2,i=r.map((p,d)=>I.rightPad((d+1).toString(),s)+p),o=0;for(let p=0;pe.createProgram(),"Unable to create WebGLProgram.")}function v5(e,t){if(Ie(e,()=>e.linkProgram(t)),e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function Ev(e,t){if(Ie(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function w5(e,t){let n=Tr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return Ie(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),Ie(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function k5(e,t){let n=Tr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return Ie(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),Ie(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function I5(e){return Tr(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function T5(e,t){let n=ee().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 N5(e){return Tr(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function $N(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(Ie(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),Ie(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),Ie(e,()=>e.enableVertexAttribArray(o)),!0)}function C5(e,t,n){S5(e,n),Ie(e,()=>e.activeTexture(e.TEXTURE0+n)),Ie(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function _5(e,t,n){return Tr(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function E5(e,t,n){return e.getUniformLocation(t,n)}function F5(e,t,n,a){Ie(e,()=>C5(e,t,a)),Ie(e,()=>e.uniform1i(n,a))}function Fv(e,t,n){Ie(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),Ie(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function DN(e,t){Ie(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),Ie(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function Cm(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+A5(e,t))}function A5(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`unknown error ${t}`}}function Tr(e,t,n){let a=Ie(e,()=>t());if(a==null)throw new Error(n);return a}function S5(e,t){let n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,a=t+e.TEXTURE0;if(an){let r=`[gl.TEXTURE0, gl.TEXTURE${n}]`;throw new Error(`textureUnit must be in ${r}.`)}}function ru(e,t=2){return w.sizeFromShape(e.slice(0,e.length-t))}function su(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 Av(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[ru(e),...su(e)]),t}function $5(e,t=!1){let n=ee().getNumber("WEBGL_MAX_TEXTURE_SIZE");t&&(n=n*2,e=e.map((r,s)=>s>=e.length-2?w.nearestLargerEven(e[s]):e[s]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=w.squeezeShape(e).newShape);let a=w.sizeFromShape(e);if(e.length<=1&&a<=n)return[1,a];if(e.length===2&&e[0]<=n&&e[1]<=n)return e;if(e.length===3&&e[0]*e[1]<=n&&e[2]<=n)return[e[0]*e[1],e[2]];if(e.length===3&&e[0]<=n&&e[1]*e[2]<=n)return[e[0],e[1]*e[2]];if(e.length===4&&e[0]*e[1]*e[2]<=n&&e[3]<=n)return[e[0]*e[1]*e[2],e[3]];if(e.length===4&&e[0]<=n&&e[1]*e[2]*e[3]<=n)return[e[0],e[1]*e[2]*e[3]];if(t){let r=ru(e),s=2,i=2;return e.length&&([s,i]=su(e)),a=r*(s/2)*(i/2),w.sizeToSquarishShape(a).map(o=>o*2)}return w.sizeToSquarishShape(a)}function _m(e){return e%2==0}function Em(e,t){if(e=e.slice(-2),t=t.slice(-2),w.arraysEqual(e,t)||!e.length||!t.length||e[0]===0||e[1]===0||t[0]===0||t[1]===0)return!0;if(e.length!==t.length){let n=e.slice(-1)[0],a=t.slice(-1)[0];if(n===a||_m(n)&&_m(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&_m(e[0])&&_m(t[0])}var $v,Dv;function D5(e){if($v==null){let t=ar(e);$v=t.getParameter(t.MAX_TEXTURE_SIZE)}return $v}function R5(e){if(Dv==null){let t=ar(e);Dv=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Dv)}function M5(e){if(e===0)return 0;let t,n=ar(e);return ba(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:ba(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function ba(e,t){return e.getExtension(t)!=null}function RN(e){try{if(ar(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function P5(e){if(e===0)return!1;let t=ar(e);if(e===1){if(!ba(t,"OES_texture_float"))return!1}else if(!ba(t,"EXT_color_buffer_float"))return!1;return Rv(t)}function L5(e){if(e===0)return!1;let t=ar(e);if(e===1){if(!ba(t,"OES_texture_float")||!ba(t,"WEBGL_color_buffer_float"))return!1}else{if(ba(t,"EXT_color_buffer_float"))return Rv(t);let n="EXT_color_buffer_half_float";if(ba(t,n)){let a=t.getExtension(n);return O5(t,a)}return!1}return Rv(t)}function Rv(e){let t=_v(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n);let a=1,r=1;e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,a,r,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);let i=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(s),i}function O5(e,t){let n=_v(e,t),a=e.createTexture();e.bindTexture(e.TEXTURE_2D,a);let r=1,s=1;e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,r,s,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);let i=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,a,0);let o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(a),e.deleteFramebuffer(i),o}function z5(e){return e!==2?!1:ar(e).fenceSync!=null}function lp(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&w.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var Ce=ee();Ce.registerFlag("HAS_WEBGL",()=>Ce.getNumber("WEBGL_VERSION")>0);Ce.registerFlag("WEBGL_VERSION",()=>RN(2)?2:RN(1)?1:0);Ce.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Ce.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Ce.get("WEBGL_VERSION")===2);Ce.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Ce.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Ce.registerFlag("WEBGL_PACK",()=>Ce.getBool("HAS_WEBGL"));Ce.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_CLIP",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>!1);Ce.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_REDUCE",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_LAZILY_UNPACK",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_CONV_IM2COL",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>D5(Ce.getNumber("WEBGL_VERSION")));Ce.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>R5(Ce.getNumber("WEBGL_VERSION")));Ce.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=Ce.getNumber("WEBGL_VERSION");return e===0?0:M5(e)});Ce.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Ce.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Hd.isMobile());Ce.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>P5(Ce.getNumber("WEBGL_VERSION")));Ce.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Ce.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Ce.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Ce.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>L5(Ce.getNumber("WEBGL_VERSION")));Ce.registerFlag("WEBGL_FENCE_API_ENABLED",()=>z5(Ce.getNumber("WEBGL_VERSION")));Ce.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Ce.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Ce.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)});Ce.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${e}.`)});function mn(){let e,t,n,a,r,s,i,o,l,c;return ee().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=` +`)[0]),console.log(`%c ${I.rightPad(u[0],o)}`,"border:1px solid red; background-color:#e3d2d2; color:#a61717"),console.log(c.join(` +`))}function Zq(e){return Nr(e,()=>e.createProgram(),"Unable to create WebGLProgram.")}function e5(e,t){if(Ie(e,()=>e.linkProgram(t)),e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function _v(e,t){if(Ie(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function t5(e,t){let n=Nr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return Ie(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),Ie(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function n5(e,t){let n=Nr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return Ie(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),Ie(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function a5(e){return Nr(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function r5(e,t){let n=Z().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 s5(e){return Nr(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function R2(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(Ie(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),Ie(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),Ie(e,()=>e.enableVertexAttribArray(o)),!0)}function o5(e,t,n){i5(e,n),Ie(e,()=>e.activeTexture(e.TEXTURE0+n)),Ie(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function l5(e,t,n){return Nr(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function u5(e,t,n){return e.getUniformLocation(t,n)}function c5(e,t,n,a){Ie(e,()=>o5(e,t,a)),Ie(e,()=>e.uniform1i(n,a))}function Ev(e,t,n){Ie(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),Ie(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function P2(e,t){Ie(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),Ie(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function Am(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+p5(e,t))}function p5(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`unknown error ${t}`}}function Nr(e,t,n){let a=Ie(e,()=>t());if(a==null)throw new Error(n);return a}function i5(e,t){let n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,a=t+e.TEXTURE0;if(an){let r=`[gl.TEXTURE0, gl.TEXTURE${n}]`;throw new Error(`textureUnit must be in ${r}.`)}}function ru(e,t=2){return I.sizeFromShape(e.slice(0,e.length-t))}function su(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 $v(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[ru(e),...su(e)]),t}function d5(e,t=!1){let n=Z().getNumber("WEBGL_MAX_TEXTURE_SIZE");t&&(n=n*2,e=e.map((r,s)=>s>=e.length-2?I.nearestLargerEven(e[s]):e[s]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=I.squeezeShape(e).newShape);let a=I.sizeFromShape(e);if(e.length<=1&&a<=n)return[1,a];if(e.length===2&&e[0]<=n&&e[1]<=n)return e;if(e.length===3&&e[0]*e[1]<=n&&e[2]<=n)return[e[0]*e[1],e[2]];if(e.length===3&&e[0]<=n&&e[1]*e[2]<=n)return[e[0],e[1]*e[2]];if(e.length===4&&e[0]*e[1]*e[2]<=n&&e[3]<=n)return[e[0]*e[1]*e[2],e[3]];if(e.length===4&&e[0]<=n&&e[1]*e[2]*e[3]<=n)return[e[0],e[1]*e[2]*e[3]];if(t){let r=ru(e),s=2,i=2;return e.length&&([s,i]=su(e)),a=r*(s/2)*(i/2),I.sizeToSquarishShape(a).map(o=>o*2)}return I.sizeToSquarishShape(a)}function Fm(e){return e%2==0}function _m(e,t){if(e=e.slice(-2),t=t.slice(-2),I.arraysEqual(e,t)||!e.length||!t.length||e[0]===0||e[1]===0||t[0]===0||t[1]===0)return!0;if(e.length!==t.length){let n=e.slice(-1)[0],a=t.slice(-1)[0];if(n===a||Fm(n)&&Fm(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&Fm(e[0])&&Fm(t[0])}var Dv,Mv;function h5(e){if(Dv==null){let t=ar(e);Dv=t.getParameter(t.MAX_TEXTURE_SIZE)}return Dv}function m5(e){if(Mv==null){let t=ar(e);Mv=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Mv)}function f5(e){if(e===0)return 0;let t,n=ar(e);return ba(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:ba(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function ba(e,t){return e.getExtension(t)!=null}function O2(e){try{if(ar(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function g5(e){if(e===0)return!1;let t=ar(e);if(e===1){if(!ba(t,"OES_texture_float"))return!1}else if(!ba(t,"EXT_color_buffer_float"))return!1;return Rv(t)}function b5(e){if(e===0)return!1;let t=ar(e);if(e===1){if(!ba(t,"OES_texture_float")||!ba(t,"WEBGL_color_buffer_float"))return!1}else{if(ba(t,"EXT_color_buffer_float"))return Rv(t);let n="EXT_color_buffer_half_float";if(ba(t,n)){let a=t.getExtension(n);return y5(t,a)}return!1}return Rv(t)}function Rv(e){let t=Fv(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n);let a=1,r=1;e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,a,r,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);let i=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(s),i}function y5(e,t){let n=Fv(e,t),a=e.createTexture();e.bindTexture(e.TEXTURE_2D,a);let r=1,s=1;e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,r,s,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);let i=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,a,0);let o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(a),e.deleteFramebuffer(i),o}function x5(e){return e!==2?!1:ar(e).fenceSync!=null}function cp(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&I.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var Ce=Z();Ce.registerFlag("HAS_WEBGL",()=>Ce.getNumber("WEBGL_VERSION")>0);Ce.registerFlag("WEBGL_VERSION",()=>O2(2)?2:O2(1)?1:0);Ce.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Ce.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Ce.get("WEBGL_VERSION")===2);Ce.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Ce.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Ce.registerFlag("WEBGL_PACK",()=>Ce.getBool("HAS_WEBGL"));Ce.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_CLIP",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>!1);Ce.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_REDUCE",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_LAZILY_UNPACK",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_CONV_IM2COL",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>h5(Ce.getNumber("WEBGL_VERSION")));Ce.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>m5(Ce.getNumber("WEBGL_VERSION")));Ce.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=Ce.getNumber("WEBGL_VERSION");return e===0?0:f5(e)});Ce.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Ce.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!vc.isMobile());Ce.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>g5(Ce.getNumber("WEBGL_VERSION")));Ce.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Ce.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Ce.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Ce.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>b5(Ce.getNumber("WEBGL_VERSION")));Ce.registerFlag("WEBGL_FENCE_API_ENABLED",()=>x5(Ce.getNumber("WEBGL_VERSION")));Ce.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Ce.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Ce.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)});Ce.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>vc.isMobile()&&Ce.getBool("IS_CHROME")?1:-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${e}.`)});function mn(){let e,t,n,a,r,s,i,o,l,u;return Z().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=` bool isnan_custom(float val) { return (val > 0.0 || val < 0.0) ? false : val != 0.0; } @@ -52,7 +52,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee } #define isnan(value) isnan_custom(value) - `,l="",c=` + `,l="",u=` #define round(value) newRound(value) int newRound(float value) { return int(floor(value + 0.5)); @@ -78,7 +78,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee bvec4 isinf(vec4 val) { return equal(abs(val), vec4(INFINITY)); } - `,c=` + `,u=` int round(float value) { return int(floor(value + 0.5)); } @@ -86,11 +86,11 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ivec4 round(vec4 value) { return ivec4(floor(value + vec4(0.5))); } - `),{version:e,attribute:t,varyingVs:n,varyingFs:a,texture2D:r,output:s,defineOutput:i,defineSpecialNaN:o,defineSpecialInf:l,defineRound:c}}function Gi(e,t,n="index"){let a=w.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / ${r}`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * ${r}`:`index -= ${e[s]} * ${r}`;return`${i}; ${o};`}).join("")}function Mv(e){let t=w.computeStrides(e).map(n=>n.toString());return` + `),{version:e,attribute:t,varyingVs:n,varyingFs:a,texture2D:r,output:s,defineOutput:i,defineSpecialNaN:o,defineSpecialInf:l,defineRound:u}}function Gi(e,t,n="index"){let a=I.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / ${r}`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * ${r}`:`index -= ${e[s]} * ${r}`;return`${i}; ${o};`}).join("")}function Pv(e){let t=I.computeStrides(e).map(n=>n.toString());return` int getFlatIndex(ivec3 coords) { return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; } -`}var MN=` +`}var L2=` const float FLOAT_MAX = 1.70141184e38; const float FLOAT_MIN = 1.17549435e-38; @@ -129,7 +129,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee return c / 255.0; } -`,B5=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=sp.DENSE;let t=op(e),n=mn();this.outputShape=e,this.userCode=` +`,v5=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=op.DENSE;let t=up(e),n=mn();this.outputShape=e,this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { ${Gi(["r","c","d"],e)} return ivec3(r, c, d); @@ -150,7 +150,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${n.output} = result; } - `}},W5=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=sp.DENSE;let t=op(e),n=mn();this.outputShape=e,this.userCode=` + `}},w5=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=op.DENSE;let t=up(e),n=mn();this.outputShape=e,this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { ${Gi(["r","c","d"],e)} return ivec3(r, c, d); @@ -171,23 +171,23 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${n.output} = result; } - `}},V5=class{constructor(e){this.variableNames=["A"],this.outTexUsage=na.DOWNLOAD;let t=mn();this.outputShape=e,this.userCode=` - ${MN} + `}},k5=class{constructor(e){this.variableNames=["A"],this.outTexUsage=na.DOWNLOAD;let t=mn();this.outputShape=e,this.userCode=` + ${L2} void main() { float x = getAAtOutCoords(); ${t.output} = encode_float(x); } - `}},U5=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=na.DOWNLOAD;let t=mn();this.outputShape=e,this.userCode=` - ${MN} + `}},I5=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=na.DOWNLOAD;let t=mn();this.outputShape=e,this.userCode=` + ${L2} void main() { ivec3 coords = getOutputCoords(); float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${t.output} = encode_float(x); } - `}},G5=class{constructor(e,t,n=!1){this.variableNames=["A"];let a=mn(),[r,s]=t;this.outputShape=e;let i="result";n&&(i="floor(result * 255. + 0.5)"),this.userCode=` - ${Mv(e)} + `}},N5=class{constructor(e,t,n=!1){this.variableNames=["A"];let a=mn(),[r,s]=t;this.outputShape=e;let i="result";n&&(i="floor(result * 255. + 0.5)"),this.userCode=` + ${Pv(e)} void main() { ivec3 coords = getOutputCoords(); @@ -216,10 +216,10 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${a.output} = vec4(${i}, 0., 0., 0.); } - `}},H5=class{constructor(e,t,n=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let a=mn(),[r,s]=t;this.outputShape=e;let i="",o="result";n&&(o="floor(result * 255. + 0.5)");for(let l=0;l<=1;l++)for(let c=0;c<=1;c++){let u=l*2+c;i+=` + `}},T5=class{constructor(e,t,n=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let a=mn(),[r,s]=t;this.outputShape=e;let i="",o="result";n&&(o="floor(result * 255. + 0.5)");for(let l=0;l<=1;l++)for(let u=0;u<=1;u++){let c=l*2+u;i+=` localCoords = coords; - if(localCoords[2] + ${c} < ${e[2]}) { - localCoords[2] += ${c}; + if(localCoords[2] + ${u} < ${e[2]}) { + localCoords[2] += ${u}; if(localCoords[1] + ${l} < ${e[1]}) { localCoords[1] += ${l}; @@ -234,18 +234,18 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee values = ${a.texture2D}(A, uv); if(offset == 0) { - result[${u}] = values[0]; + result[${c}] = values[0]; } else if(offset == 1) { - result[${u}] = values[1]; + result[${c}] = values[1]; } else if(offset == 2) { - result[${u}] = values[2]; + result[${c}] = values[2]; } else { - result[${u}] = values[3]; + result[${c}] = values[3]; } } } `}this.userCode=` - ${Mv(e)} + ${Pv(e)} void main() { ivec3 coords = getOutputCoords(); @@ -260,7 +260,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${a.output} = ${o}; } - `}};function j5(e){let t=mn(),n=`${t.version} + `}};function S5(e){let t=mn(),n=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; @@ -269,22 +269,22 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return f5(e,n)}function q5(e){let t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return w5(e,t)}function K5(e){let t=new Uint16Array([0,1,2,2,1,3]);return k5(e,t)}function up(e,t,n,a,r,s){T5(t,n);let i=I5(e),o=e.TEXTURE_2D;return Ie(e,()=>e.bindTexture(o,i)),Ie(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),Ie(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),Ie(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),Ie(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),Ie(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)),Ie(e,()=>e.bindTexture(e.TEXTURE_2D,null)),i}function PN(e){return e.internalFormatFloat}function X5(e,t,n,a){let[r,s]=ip(t,n);return up(e,r,s,PN(a),a.textureFormatFloat,e.FLOAT)}function ON(e){return e.internalFormatHalfFloat}function Y5(e,t,n,a){let[r,s]=ip(t,n);return up(e,r,s,ON(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function LN(e){return e.downloadTextureFormat}function J5(e,t,n,a){let[r,s]=ip(t,n);return up(e,r,s,LN(a),e.RGBA,e.UNSIGNED_BYTE)}function zN(e){return e.internalFormatPackedFloat}function Q5(e,t,n,a){let[r,s]=au(t,n);return up(e,r,s,zN(a),e.RGBA,e.FLOAT)}function BN(e){return e.internalFormatPackedHalfFloat}function Z5(e,t,n,a){let[r,s]=au(t,n);return up(e,r,s,BN(a),e.RGBA,a.textureTypeHalfFloat)}function eq(e,t,n){let a=0,r=3*4,s=3*4+2*4;return Ie(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),$N(e,t,"clipSpacePos",n,3,s,a)&&$N(e,t,"uv",n,2,s,r)}function tq(e,t,n,a,r,s){Ie(e,()=>e.bindTexture(e.TEXTURE_2D,t));let i,o,l;r instanceof Uint8Array?(i=new Uint8Array(n*a*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(i=new Float32Array(n*a*4),o=e.FLOAT,l=s.internalFormatPackedFloat),i.set(r),Ie(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),Ie(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function nq(e,t,n){Ie(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?Ie(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):Ie(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),Ie(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function aq(e,t,n,a){let r=e.createBuffer();Ie(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return Ie(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),Ie(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),Ie(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function rq(e,t,n){let a=e,r=new Float32Array(n);return a.bindBuffer(a.PIXEL_PACK_BUFFER,t),a.getBufferSubData(a.PIXEL_PACK_BUFFER,0,r),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),r}function sq(e,t,n,a){let[r,s]=ip(t,n),i=4,o=new Uint8Array(l5(t*n,i));return Ie(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function iq(e,t,n,a,r,s,i,o){let l=e,c=new Float32Array(u5(s,i));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,c),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),c}function oq(e,t,n){let a=new Float32Array(t*n*4);return Ie(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var uq=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let t=ee().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,s5(t,e)):this.gl=ar(t);let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(ee().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=Sm(this.gl,r),ba(this.gl,s))this.textureHalfFloatExtension=Sm(this.gl,s);else if(ee().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),ba(this.gl,a))this.colorBufferHalfFloatExtension=Sm(this.gl,a);else if(ee().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",ba(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(ba(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=q5(this.gl),this.indexBuffer=K5(this.gl),this.framebuffer=N5(this.gl),this.textureConfig=_v(this.gl,this.textureHalfFloatExtension)}get debug(){return ee().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let e=this.gl;Ie(e,()=>e.finish()),Ie(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),Ie(e,()=>e.deleteFramebuffer(this.framebuffer)),Ie(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),Ie(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),Ie(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),X5(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),Y5(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),J5(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),nq(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),tq(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),Z5(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),Q5(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(DN(this.gl,this.framebuffer),this.outputTexture=null),Ie(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>sq(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return iq(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return rq(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=aq(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),a}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(ee().getBool("WEBGL_FENCE_API_ENABLED")){let a=e,r=a.fenceSync(a.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{let s=a.clientWaitSync(r,0,0);return s===a.ALREADY_SIGNALED||s===a.CONDITION_SATISFIED},t=r}else ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>oq(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl,n=y5(t,e),a=j5(t),r=x5(t);return Ie(t,()=>t.attachShader(r,a)),Ie(t,()=>t.attachShader(r,n)),v5(t,r),this.debug&&Ev(t,r),this.vertexAttrsAreBound||(this.setProgram(r),this.vertexAttrsAreBound=eq(t,this.program,this.vertexBuffer)),r}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&Ie(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&Ev(this.gl,this.program),Ie(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?_5(this.gl,e,t):E5(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),Ie(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),F5(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=au(t,n);this.setOutputMatrixTextureDriver(e,a,r)}setOutputMatrixWriteRegion(e,t,n,a){this.setOutputMatrixWriteRegionDriver(n,e,a,t)}setOutputPackedMatrixWriteRegion(e,t,n,a){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&Ev(this.gl,this.program),Cm(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&this.debugValidate(),Ie(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),Ie(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Sm(this.gl,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.createQuery();return n.beginQuery(a.TIME_ELAPSED_EXT,r),r}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await w.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){let n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(e,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(a.GPU_DISJOINT_EXT)),r&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),a=n.getQueryObjectEXT(e,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),a&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=lq(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:n}=this.itemsToPoll[t];n()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),!(this.itemsToPoll.length>1)&&w.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),Fv(this.gl,e,this.framebuffer),this.debug&&Cm(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Fv(this.gl,this.outputTexture,this.framebuffer),this.debug&&Cm(this.gl)):DN(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();let a=this.gl;Fv(a,e,this.framebuffer),this.debug&&Cm(a),this.outputTexture=e,Ie(a,()=>a.viewport(0,0,t,n)),Ie(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),Ie(this.gl,()=>this.gl.scissor(e,t,n,a))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function lq(e){let t=0;for(;t{let m=w.sizeFromShape(h.shapeInfo.logicalShape);h.shapeInfo.isUniform?r.push(`uniform float ${h.name}${m>1?`[${m}]`:""};`):(r.push(`uniform sampler2D ${h.name};`),r.push(`uniform int offset${h.name};`))});let s=r.join(` -`),i=e.map(h=>cq(h,t,a)).join(` -`),o=t.texShape,l=mn(),c=hq(l),u,p,d=gq(l);return t.isPacked?(u=pq(t.logicalShape,o),p=fq(l)):(u=dq(t.logicalShape,o),p=mq(l)),a&&(d+=yq),[d,c,p,s,u,i,n].join(` -`)}function iu(e){let t=e.shapeInfo.logicalShape;switch(t.length){case 0:return xq(e);case 1:return vq(e);case 2:return wq(e);case 3:return kq(e);case 4:return Iq(e);case 5:return Tq(e);case 6:return Nq(e);default:throw new Error(`${t.length}-D input sampling is not yet supported`)}}function VN(e){switch(e.shapeInfo.logicalShape.length){case 0:return Sq(e);case 1:return Cq(e);case 2:return _q(e);case 3:return Eq(e);default:return Fq(e)}}function cq(e,t,n=!1){let a="";n?a+=VN(e):a+=iu(e);let r=e.shapeInfo.logicalShape,s=t.logicalShape;return r.length<=s.length&&(n?a+=Aq(e,t):a+=$q(e,t)),a}function pq(e,t){switch(e.length){case 0:return UN();case 1:return Dq(e,t);case 2:return Pq(e,t);case 3:return Rq(e,t);default:return Mq(e,t)}}function dq(e,t){switch(e.length){case 0:return UN();case 1:return Oq(e,t);case 2:return Vq(e,t);case 3:return Lq(e,t);case 4:return zq(e,t);case 5:return Bq(e,t);case 6:return Wq(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function hq(e){return` + }`;return Kq(e,n)}function C5(e){let t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return t5(e,t)}function A5(e){let t=new Uint16Array([0,1,2,2,1,3]);return n5(e,t)}function pp(e,t,n,a,r,s){r5(t,n);let i=a5(e),o=e.TEXTURE_2D;return Ie(e,()=>e.bindTexture(o,i)),Ie(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),Ie(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),Ie(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),Ie(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),Ie(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)),Ie(e,()=>e.bindTexture(e.TEXTURE_2D,null)),i}function z2(e){return e.internalFormatFloat}function F5(e,t,n,a){let[r,s]=lp(t,n);return pp(e,r,s,z2(a),a.textureFormatFloat,e.FLOAT)}function W2(e){return e.internalFormatHalfFloat}function _5(e,t,n,a){let[r,s]=lp(t,n);return pp(e,r,s,W2(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function B2(e){return e.downloadTextureFormat}function E5(e,t,n,a){let[r,s]=lp(t,n);return pp(e,r,s,B2(a),e.RGBA,e.UNSIGNED_BYTE)}function V2(e){return e.internalFormatPackedFloat}function $5(e,t,n,a){let[r,s]=au(t,n);return pp(e,r,s,V2(a),e.RGBA,e.FLOAT)}function U2(e){return e.internalFormatPackedHalfFloat}function D5(e,t,n,a){let[r,s]=au(t,n);return pp(e,r,s,U2(a),e.RGBA,a.textureTypeHalfFloat)}function M5(e,t,n){let a=0,r=3*4,s=3*4+2*4;return Ie(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),R2(e,t,"clipSpacePos",n,3,s,a)&&R2(e,t,"uv",n,2,s,r)}function R5(e,t,n,a,r,s){Ie(e,()=>e.bindTexture(e.TEXTURE_2D,t));let i,o,l;r instanceof Uint8Array?(i=new Uint8Array(n*a*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(i=new Float32Array(n*a*4),o=e.FLOAT,l=s.internalFormatPackedFloat),i.set(r),Ie(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),Ie(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function P5(e,t,n){Ie(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?Ie(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):Ie(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),Ie(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function O5(e,t,n,a){let r=e.createBuffer();Ie(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return Ie(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),Ie(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),Ie(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function L5(e,t,n){let a=e,r=new Float32Array(n);return a.bindBuffer(a.PIXEL_PACK_BUFFER,t),a.getBufferSubData(a.PIXEL_PACK_BUFFER,0,r),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),r}function z5(e,t,n,a){let[r,s]=lp(t,n),i=4,o=new Uint8Array(Vq(t*n,i));return Ie(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function W5(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(Uq(s,i));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,u),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),u}function B5(e,t,n){let a=new Float32Array(t*n*4);return Ie(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var U5=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let t=Z().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,zq(t,e)):this.gl=ar(t);let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(Z().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=Cm(this.gl,r),ba(this.gl,s))this.textureHalfFloatExtension=Cm(this.gl,s);else if(Z().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),ba(this.gl,a))this.colorBufferHalfFloatExtension=Cm(this.gl,a);else if(Z().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",ba(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(ba(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=C5(this.gl),this.indexBuffer=A5(this.gl),this.framebuffer=s5(this.gl),this.textureConfig=Fv(this.gl,this.textureHalfFloatExtension)}get debug(){return Z().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let e=this.gl;Ie(e,()=>e.finish()),Ie(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),Ie(e,()=>e.deleteFramebuffer(this.framebuffer)),Ie(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),Ie(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),Ie(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),F5(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),_5(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),E5(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),P5(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),R5(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),D5(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),$5(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(P2(this.gl,this.framebuffer),this.outputTexture=null),Ie(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>z5(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return W5(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return L5(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=O5(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),a}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(Z().getBool("WEBGL_FENCE_API_ENABLED")){let a=e,r=a.fenceSync(a.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{let s=a.clientWaitSync(r,0,0);return s===a.ALREADY_SIGNALED||s===a.CONDITION_SATISFIED},t=r}else Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>B5(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl,n=Jq(t,e),a=S5(t),r=Zq(t);return Ie(t,()=>t.attachShader(r,a)),Ie(t,()=>t.attachShader(r,n)),e5(t,r),this.debug&&_v(t,r),this.vertexAttrsAreBound||(this.setProgram(r),this.vertexAttrsAreBound=M5(t,this.program,this.vertexBuffer)),r}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&Ie(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&_v(this.gl,this.program),Ie(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?l5(this.gl,e,t):u5(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),Ie(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),c5(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=au(t,n);this.setOutputMatrixTextureDriver(e,a,r)}setOutputMatrixWriteRegion(e,t,n,a){this.setOutputMatrixWriteRegionDriver(n,e,a,t)}setOutputPackedMatrixWriteRegion(e,t,n,a){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&_v(this.gl,this.program),Am(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&this.debugValidate(),Ie(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),Ie(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Cm(this.gl,Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.createQuery();return n.beginQuery(a.TIME_ELAPSED_EXT,r),r}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await I.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){let n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(e,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(a.GPU_DISJOINT_EXT)),r&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),a=n.getQueryObjectEXT(e,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),a&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=V5(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:n}=this.itemsToPoll[t];n()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),!(this.itemsToPoll.length>1)&&I.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),Ev(this.gl,e,this.framebuffer),this.debug&&Am(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Ev(this.gl,this.outputTexture,this.framebuffer),this.debug&&Am(this.gl)):P2(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();let a=this.gl;Ev(a,e,this.framebuffer),this.debug&&Am(a),this.outputTexture=e,Ie(a,()=>a.viewport(0,0,t,n)),Ie(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),Ie(this.gl,()=>this.gl.scissor(e,t,n,a))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function V5(e){let t=0;for(;t{let m=I.sizeFromShape(h.shapeInfo.logicalShape);h.shapeInfo.isUniform?r.push(`uniform float ${h.name}${m>1?`[${m}]`:""};`):(r.push(`uniform sampler2D ${h.name};`),r.push(`uniform int offset${h.name};`))});let s=r.join(` +`),i=e.map(h=>G5(h,t,a)).join(` +`),o=t.texShape,l=mn(),u=q5(l),c,p,d=Y5(l);return t.isPacked?(c=H5(t.logicalShape,o),p=K5(l)):(c=j5(t.logicalShape,o),p=X5(l)),a&&(d+=J5),[d,u,p,s,c,i,n].join(` +`)}function iu(e){let t=e.shapeInfo.logicalShape;switch(t.length){case 0:return Z5(e);case 1:return e8(e);case 2:return t8(e);case 3:return n8(e);case 4:return a8(e);case 5:return r8(e);case 6:return s8(e);default:throw new Error(`${t.length}-D input sampling is not yet supported`)}}function H2(e){switch(e.shapeInfo.logicalShape.length){case 0:return i8(e);case 1:return o8(e);case 2:return l8(e);case 3:return u8(e);default:return c8(e)}}function G5(e,t,n=!1){let a="";n?a+=H2(e):a+=iu(e);let r=e.shapeInfo.logicalShape,s=t.logicalShape;return r.length<=s.length&&(n?a+=p8(e,t):a+=d8(e,t)),a}function H5(e,t){switch(e.length){case 0:return j2();case 1:return h8(e,t);case 2:return g8(e,t);case 3:return m8(e,t);default:return f8(e,t)}}function j5(e,t){switch(e.length){case 0:return j2();case 1:return y8(e,t);case 2:return k8(e,t);case 3:return b8(e,t);case 4:return x8(e,t);case 5:return v8(e,t);case 6:return w8(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function q5(e){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${e.texture2D}(textureSampler, uv).r; } - `}function mq(e){return` + `}function X5(e){return` void setOutput(float val) { ${e.output} = vec4(val, 0, 0, 0); } - `}function fq(e){return` + `}function K5(e){return` void setOutput(vec4 val) { ${e.output} = val; } - `}function gq(e){return`${e.version} + `}function Y5(e){return`${e.version} precision highp float; precision highp int; precision highp sampler2D; @@ -339,10 +339,10 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee return fract((p3.x + p3.y) * p3.z); } - ${Uq} - ${Gq} - ${Hq} - `}var Uq=` + ${I8} + ${N8} + ${T8} + `}var I8=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; @@ -354,7 +354,7 @@ vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,Gq=` +`,N8=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); @@ -362,7 +362,7 @@ vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,Hq=` +`,T8=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { @@ -371,7 +371,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,yq=` +`,J5=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? @@ -382,11 +382,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } -`;function UN(){return` +`;function j2(){return` int getOutputCoords() { return 0; } - `}function Dq(e,t){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?` + `}function h8(e,t){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?` int getOutputCoords() { return 2 * int(resultUV.x * ${n[1]}.0); } @@ -400,7 +400,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${n[0]}, ${n[1]})); return 2 * (resTexRC.x * ${n[1]} + resTexRC.y); } - `}function Oq(e,t){return t[0]===1?` + `}function y8(e,t){return t[0]===1?` int getOutputCoords() { return int(resultUV.x * ${t[1]}.0); } @@ -414,7 +414,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${t[0]}, ${t[1]})); return resTexRC.x * ${t[1]} + resTexRC.y; } - `}function Rq(e,t){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],a=Math.ceil(e[2]/2),r=a*Math.ceil(e[1]/2);return` + `}function m8(e,t){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],a=Math.ceil(e[2]/2),r=a*Math.ceil(e[1]/2);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${n[0]}, ${n[1]})); @@ -428,7 +428,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec3(b, r, c); } - `}function Lq(e,t){let n=Gi(["r","c","d"],e);return` + `}function b8(e,t){let n=Gi(["r","c","d"],e);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -436,7 +436,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${n} return ivec3(r, c, d); } - `}function Mq(e,t){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],a=Math.ceil(e[e.length-1]/2),r=a*Math.ceil(e[e.length-2]/2),s=r,i="",o="b, r, c";for(let l=2;l=1?u="coords = 0;":u=o.map(g=>`coords.${p[g+c]} = 0;`).join(` -`);let d="";i<2&&s>0?d="coords":d=e.shapeInfo.logicalShape.map((g,y)=>`coords.${p[y+c]}`).join(", ");let h="return outputValue;",m=w.sizeFromShape(e.shapeInfo.logicalShape)===1,f=w.sizeFromShape(t.logicalShape)===1;if(s===1&&!m&&!f)h=` + `}function p8(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=e.shapeInfo.logicalShape.length,i=t.logicalShape.length,o=G2(e.shapeInfo.logicalShape,t.logicalShape),l=ht(i),u=i-s,c,p=["x","y","z","w","u","v"];s===0?c="":i<2&&o.length>=1?c="coords = 0;":c=o.map(g=>`coords.${p[g+u]} = 0;`).join(` +`);let d="";i<2&&s>0?d="coords":d=e.shapeInfo.logicalShape.map((g,y)=>`coords.${p[y+u]}`).join(", ");let h="return outputValue;",m=I.sizeFromShape(e.shapeInfo.logicalShape)===1,f=I.sizeFromShape(t.logicalShape)===1;if(s===1&&!m&&!f)h=` return vec4(outputValue.xy, outputValue.xy); `;else if(m&&!f)i===1?h=` return vec4(outputValue.x, outputValue.x, 0., 0.); @@ -812,26 +812,26 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, `;else if(o.length){let g=s-2,y=s-1;o.indexOf(g)>-1&&o.indexOf(y)>-1?h="return vec4(outputValue.x);":o.indexOf(g)>-1?h="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":o.indexOf(y)>-1&&(h="return vec4(outputValue.xx, outputValue.zz);")}return` vec4 ${r}() { ${l} coords = getOutputCoords(); - ${u} + ${c} vec4 outputValue = get${a}(${d}); ${h} } - `}function $q(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=t.texShape,i=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&e.shapeInfo.flatOffset==null&&w.arraysEqual(i,s))return` + `}function d8(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=t.texShape,i=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&e.shapeInfo.flatOffset==null&&I.arraysEqual(i,s))return` float ${r}() { return sampleTexture(${n}, resultUV); } - `;let c=dt(l),u=WN(e.shapeInfo.logicalShape,t.logicalShape),p=l-o,d,h=["x","y","z","w","u","v"];o===0?d="":l<2&&u.length>=1?d="coords = 0;":d=u.map(f=>`coords.${h[f+p]} = 0;`).join(` + `;let u=ht(l),c=G2(e.shapeInfo.logicalShape,t.logicalShape),p=l-o,d,h=["x","y","z","w","u","v"];o===0?d="":l<2&&c.length>=1?d="coords = 0;":d=c.map(f=>`coords.${h[f+p]} = 0;`).join(` `);let m="";return l<2&&o>0?m="coords":m=e.shapeInfo.logicalShape.map((f,g)=>`coords.${h[g+p]}`).join(", "),` float ${r}() { - ${c} coords = getOutputCoords(); + ${u} coords = getOutputCoords(); ${d} return get${a}(${m}); } - `}function dt(e){if(e<=1)return"int";if(e===2)return"ivec2";if(e===3)return"ivec3";if(e===4)return"ivec4";if(e===5)return"ivec5";if(e===6)return"ivec6";throw Error(`GPU for rank ${e} is not yet supported`)}function lu(e,t){let n=JSON.parse(JSON.stringify(e));return n.shapeInfo.logicalShape=t,n}function uu(e,t){return t.map(n=>e[n]).join(", ")}function jq(e,t,n,a){let r=t.userCode,s=n.map((h,m)=>{let f={logicalShape:h.shape,texShape:h.isUniform?null:h.texData.texShape,isUniform:h.isUniform,isPacked:h.isUniform?!1:h.texData.isPacked,flatOffset:null};return h.texData!=null&&h.texData.slice!=null&&h.texData.slice.flatOffset>0&&(f.flatOffset=h.texData.slice.flatOffset),{name:t.variableNames[m],shapeInfo:f}}),i=s.map(h=>h.shapeInfo),o={logicalShape:a.shape,texShape:a.texData.texShape,isUniform:!1,isPacked:a.texData.isPacked,flatOffset:null},l=bq(s,o,r,t.packedInputs),c=e.createProgram(l),u=null,p=e.getUniformLocation(c,"NAN",!1);ee().getNumber("WEBGL_VERSION")===1&&(u=e.getUniformLocation(c,"INFINITY",!1));let d={};for(let h=0;h{let r=n.logicalShape,s=t[a],i=s.shape;if(!w.arraysEqual(r,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${r} and ${i} must match`);if(n.isUniform&&s.isUniform)return;let o=n.texShape,l=s.isUniform?null:s.texData.texShape;if(!w.arraysEqual(o,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${o} and ${l} must match`)})}function qq(e,t,n,a,r){GN(t.inShapeInfos,n),GN([t.outShapeInfo],[a]);let s=a.texData.texture,i=a.texData.texShape;a.texData.isPacked?e.setOutputPackedMatrixTexture(s,i[0],i[1]):e.setOutputMatrixTexture(s,i[0],i[1]),e.setProgram(t.webGLProgram),ee().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,Infinity),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN),n.forEach((o,l)=>{let c=t.program.variableNames[l],u=t.uniformLocations[c],p=t.uniformLocations[`offset${c}`];if(u!=null){if(o.isUniform){if(w.sizeFromShape(o.shape)<2)e.gl.uniform1f(u,o.uniformValues[0]);else{let d=o.uniformValues;d instanceof Float32Array||(d=new Float32Array(d)),e.gl.uniform1fv(u,d)}return}o.texData.slice!=null&&p!=null&&e.gl.uniform1i(p,o.texData.slice.flatOffset),e.setInputMatrixTexture(o.texData.texture,u,l)}}),r!=null&&r(e,t.webGLProgram),e.executeProgram()}function Kq(e,t,n){let a="";t.concat(n).forEach(i=>{let o=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0,l=i.isUniform?"uniform":i.texData.texShape;a+=`${i.shape}_${l}_${o}`});let r=e.userCode,s=e.constructor.name;return s+="_"+a+"_"+r,s}var{addImpl:Xq,bincountImpl:HN,bincountReduceImpl:Yq,ceilImpl:Jq,concatImpl:Qq,expImpl:Zq,expm1Impl:e8,floorImpl:t8,gatherV2Impl:n8,greaterImpl:a8,lessImpl:r8,linSpaceImpl:s8,logImpl:i8,maxImpl:o8,maximumImpl:l8,minimumImpl:u8,multiplyImpl:c8,negImpl:p8,prodImpl:d8,rangeImpl:h8,rsqrtImpl:m8,simpleAbsImpl:jN,sliceImpl:f8,stridedSliceImpl:g8,subImpl:y8,tileImpl:b8,topKImpl:x8,transposeImpl:Pv,uniqueImpl:v8}=BT;function qN(e,t){return["x","y","z","w","u","v"].slice(0,t).map(n=>`${e}.${n}`)}function fn(e,t){return t===1?[e]:qN(e,t)}function w8(e,t){if(e===1)return"rc";let n="";for(let a=0;ae[n]).join(", ")}function S8(e,t,n,a){let r=t.userCode,s=n.map((h,m)=>{let f={logicalShape:h.shape,texShape:h.isUniform?null:h.texData.texShape,isUniform:h.isUniform,isPacked:h.isUniform?!1:h.texData.isPacked,flatOffset:null};return h.texData!=null&&h.texData.slice!=null&&h.texData.slice.flatOffset>0&&(f.flatOffset=h.texData.slice.flatOffset),{name:t.variableNames[m],shapeInfo:f}}),i=s.map(h=>h.shapeInfo),o={logicalShape:a.shape,texShape:a.texData.texShape,isUniform:!1,isPacked:a.texData.isPacked,flatOffset:null},l=Q5(s,o,r,t.packedInputs),u=e.createProgram(l),c=null,p=e.getUniformLocation(u,"NAN",!1);Z().getNumber("WEBGL_VERSION")===1&&(c=e.getUniformLocation(u,"INFINITY",!1));let d={};for(let h=0;h{let r=n.logicalShape,s=t[a],i=s.shape;if(!I.arraysEqual(r,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${r} and ${i} must match`);if(n.isUniform&&s.isUniform)return;let o=n.texShape,l=s.isUniform?null:s.texData.texShape;if(!I.arraysEqual(o,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${o} and ${l} must match`)})}function C8(e,t,n,a,r){q2(t.inShapeInfos,n),q2([t.outShapeInfo],[a]);let s=a.texData.texture,i=a.texData.texShape;a.texData.isPacked?e.setOutputPackedMatrixTexture(s,i[0],i[1]):e.setOutputMatrixTexture(s,i[0],i[1]),e.setProgram(t.webGLProgram),Z().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,Infinity),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN),n.forEach((o,l)=>{let u=t.program.variableNames[l],c=t.uniformLocations[u],p=t.uniformLocations[`offset${u}`];if(c!=null){if(o.isUniform){if(I.sizeFromShape(o.shape)<2)e.gl.uniform1f(c,o.uniformValues[0]);else{let d=o.uniformValues;d instanceof Float32Array||(d=new Float32Array(d)),e.gl.uniform1fv(c,d)}return}o.texData.slice!=null&&p!=null&&e.gl.uniform1i(p,o.texData.slice.flatOffset),e.setInputMatrixTexture(o.texData.texture,c,l)}}),r!=null&&r(e,t.webGLProgram),e.executeProgram()}function A8(e,t,n){let a="";t.concat(n).forEach(i=>{let o=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0,l=i.isUniform?"uniform":i.texData.texShape;a+=`${i.shape}_${l}_${o}`});let r=e.userCode,s=e.constructor.name;return s+="_"+a+"_"+r,s}var{addImpl:F8,bincountImpl:X2,bincountReduceImpl:_8,ceilImpl:E8,concatImpl:$8,expImpl:D8,expm1Impl:M8,floorImpl:R8,gatherV2Impl:P8,greaterImpl:O8,lessImpl:L8,linSpaceImpl:z8,logImpl:W8,maxImpl:B8,maximumImpl:V8,minimumImpl:U8,multiplyImpl:G8,negImpl:H8,prodImpl:j8,rangeImpl:q8,rsqrtImpl:X8,simpleAbsImpl:K2,sliceImpl:K8,stridedSliceImpl:Y8,subImpl:J8,tileImpl:Q8,topKImpl:Z8,transposeImpl:Ov,uniqueImpl:eX}=VN;function Y2(e,t){return["x","y","z","w","u","v"].slice(0,t).map(n=>`${e}.${n}`)}function fn(e,t){return t===1?[e]:Y2(e,t)}function tX(e,t){if(e===1)return"rc";let n="";for(let a=0;a ${t[0]}`;let a="";for(let r=e-2;r= ${t[r]}`,r ${t[0]}`;let a="";for(let r=e-2;r= ${t[r]}`,r= ${t}; bool rEdge = rp1 >= ${n}; - `}function T8(e,t){let n=e.length,a=S8(n,t);return n===1?`getA(rc), + `}function rX(e,t){let n=e.length,a=iX(n,t);return n===1?`getA(rc), rc + 1 >= ${e[0]} ? 0. : getA(rc + 1), 0, 0`:`getA(${a[0]}), cEdge ? 0. : getA(${a[1]}), rEdge ? 0. : getA(${a[2]}), - rEdge || cEdge ? 0. : getA(${a[3]})`}var KN=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let n="";for(let a=0;a<4;a++){let r="thisRC = rc;";a%2==1&&(r+="thisRC.z += 1;"),a>1&&(r+="thisRC.y += 1;"),n+=` + rEdge || cEdge ? 0. : getA(${a[3]})`}var J2=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let n="";for(let a=0;a<4;a++){let r="thisRC = rc;";a%2==1&&(r+="thisRC.z += 1;"),a>1&&(r+="thisRC.y += 1;"),n+=` ${r} ${a>0?"if(thisRC.y < rows && thisRC.z < cols){":""} int flatIndex = getFlatIndex(thisRC); @@ -868,8 +868,8 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${a>0?"}":""} `}this.userCode=` - ${C8(t)} - ${Mv(e)} + ${oX(t)} + ${Pv(e)} void main() { ivec3 rc = getOutputCoords(); @@ -884,12 +884,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function C8(e){return` + `}};function oX(e){return` ivec3 inputCoordsFromReshapedOutCoords(int index) { ${Gi(["r","c","d"],e)} return ivec3(r, c, d); } - `}var _8=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){let a=YN(t,n),r=JN(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=XN(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].shift();return this.usedTextures[r].push(o),o}let i;return a===an.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===an.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===an.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===an.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===an.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=YN(n,a),s=JN(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=XN(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=ee().get("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],c=l.indexOf(e);if(c<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(c,1),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(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${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)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function E8(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;throw new Error(`Unknown internal format ${t}`)}function XN(e,t,n,a,r){let s=F8(t,a),i;if(r){let[l,c]=au(e[0],e[1]);i=l*c}else{let[l,c]=ip(e[0],e[1]);i=l*c}let o=E8(n,s);return i*o}function F8(e,t){switch(e){case an.PACKED_2X2_FLOAT32:return zN(t);case an.PACKED_2X2_FLOAT16:return BN(t);case an.UNPACKED_FLOAT32:return PN(t);case an.UNPACKED_FLOAT16:return ON(t);case an.PACKED_4X1_UNSIGNED_BYTE:return LN(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function A8(e){return ee().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?an.PACKED_2X2_FLOAT32:an.UNPACKED_FLOAT32:e?an.PACKED_2X2_FLOAT16:an.UNPACKED_FLOAT16}function YN(e,t){if(e===na.UPLOAD)return an.PACKED_2X2_FLOAT32;if(e===na.RENDER||e==null)return A8(t);if(e===na.DOWNLOAD||e===na.PIXELS)return an.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function JN(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var ds=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.userCode=` + `}var lX=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){let a=Z2(t,n),r=eT(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=Q2(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].shift();return this.usedTextures[r].push(o),o}let i;return a===rn.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===rn.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===rn.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===rn.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===rn.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=Z2(n,a),s=eT(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=Q2(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=Z().get("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],u=l.indexOf(e);if(u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(u,1),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(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${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)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function uX(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;throw new Error(`Unknown internal format ${t}`)}function Q2(e,t,n,a,r){let s=cX(t,a),i;if(r){let[l,u]=au(e[0],e[1]);i=l*u}else{let[l,u]=lp(e[0],e[1]);i=l*u}let o=uX(n,s);return i*o}function cX(e,t){switch(e){case rn.PACKED_2X2_FLOAT32:return V2(t);case rn.PACKED_2X2_FLOAT16:return U2(t);case rn.UNPACKED_FLOAT32:return z2(t);case rn.UNPACKED_FLOAT16:return W2(t);case rn.PACKED_4X1_UNSIGNED_BYTE:return B2(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function pX(e){return Z().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?rn.PACKED_2X2_FLOAT32:rn.UNPACKED_FLOAT32:e?rn.PACKED_2X2_FLOAT16:rn.UNPACKED_FLOAT16}function Z2(e,t){if(e===na.UPLOAD)return rn.PACKED_2X2_FLOAT32;if(e===na.RENDER||e==null)return pX(t);if(e===na.DOWNLOAD||e===na.PIXELS)return rn.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function eT(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var ds=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.userCode=` float unaryOperation(float x) { ${t} } @@ -900,11 +900,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},Ra="if (isnan(x)) return x;",$8="return x;",QN="return abs(x);",D8="return (x >= 0.0) ? x : (exp(x) - 1.0);",R8=Ra+` + `}},Ra="if (isnan(x)) return x;",dX="return x;",tT="return abs(x);",hX="return (x >= 0.0) ? x : (exp(x) - 1.0);",mX=Ra+` return (x < 0.0) ? 0.0 : x; -`,M8=Ra+` +`,fX=Ra+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,Fm="return x;",P8="return x;",O8=` +`,Em="return x;",gX="return x;",yX=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -913,7 +913,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,L8=` +`,bX=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -923,7 +923,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,z8=` +`,xX=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -944,17 +944,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},B8=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;let t=e.length,n=fn("rc",t),a=dt(t),r=w8(t,n),s=n.slice(-2),i=t<=1?"rc":`vec2(${s.join(",")})`;this.userCode=` + `}},vX=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;let t=e.length,n=fn("rc",t),a=ht(t),r=tX(t,n),s=n.slice(-2),i=t<=1?"rc":`vec2(${s.join(",")})`;this.userCode=` void main() { ${a} rc = getOutputCoords(); vec4 packedInput = getA(${r}); setOutput(getChannel(packedInput, ${i})); } - `}},W8=Ya.whereImpl,V8=1e-7,U8=1e-4,Ov={};function G8(e){return e in Ov||(Ov[e]={}),Ov[e]}var H8=128,j8=600;function q8(){return ee().global.screen==null?1024:ee().global.screen.height*ee().global.screen.width*window.devicePixelRatio*j8/1024/1024}var Lv=class extends ju{constructor(e){super();if(this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.warnedAboutCPUBackend=!1,this.pendingDeletes=0,this.disposed=!1,!ee().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(e==null){let t=ar(ee().getNumber("WEBGL_VERSION"));this.binaryCache=G8(ee().getNumber("WEBGL_VERSION")),this.gpgpu=new uq(t),this.canvas=t.canvas,this.gpgpuCreatedLocally=!0}else this.gpgpu=e,this.binaryCache={},this.gpgpuCreatedLocally=!1,this.canvas=e.gl.canvas;this.textureManager=new _8(this.gpgpu),this.numMBBeforeWarning=q8(),this.texData=new rd(this,Ua())}nextDataId(){return Lv.nextDataId++}numDataIds(){return this.texData.numDataIds()+(this.cpuBackend?this.cpuBackend.numDataIds():0)-this.pendingDeletes}write(e,t,n){if((ee().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||ee().getBool("DEBUG"))&&this.checkNumericalProblems(e),n==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let a={id:this.nextDataId()};return this.texData.set(a,{shape:t,dtype:n,values:e,usage:na.UPLOAD,refCount:1}),a}refCount(e){return this.texData.has(e)?this.texData.get(e).refCount:0}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}move(e,t,n,a,r){if(ee().getBool("DEBUG")&&this.checkNumericalProblems(t),a==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:n,dtype:a,values:t,usage:na.UPLOAD,refCount:r})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){let t=this.texData.get(e),{values:n,dtype:a,complexTensorInfos:r,slice:s,shape:i,isPacked:o}=t;if(s!=null){let p;o?p=new cu(i,Fm):p=new ds(i,Fm);let d=this.runWebGLProgram(p,[{dataId:e,shape:i,dtype:a}],a),h=this.readSync(d.dataId);return this.disposeIntermediateTensorInfo(d),h}if(n!=null)return this.convertAndCacheOnCPU(e);if(a==="string")return n;let l=this.activeTimers!=null,c;l&&(c=w.now());let u;if(a==="complex64"){let p=this.readSync(r.real.dataId),d=this.readSync(r.imag.dataId);u=_.mergeRealAndImagArrays(p,d)}else u=this.getValuesFromTexture(e);return l&&(this.downloadWaitMs+=w.now()-c),this.convertAndCacheOnCPU(e,u)}async read(e){if(this.pendingRead.has(e)){let h=this.pendingRead.get(e);return new Promise(m=>h.push(m))}let t=this.texData.get(e),{values:n,shape:a,slice:r,dtype:s,complexTensorInfos:i,isPacked:o}=t;if(r!=null){let h;o?h=new cu(a,Fm):h=new ds(a,Fm);let m=this.runWebGLProgram(h,[{dataId:e,shape:a,dtype:s}],s),f=this.read(m.dataId);return this.disposeIntermediateTensorInfo(m),f}if(n!=null)return this.convertAndCacheOnCPU(e);if(!ee().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&ee().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,c;if(s!=="complex64"&&ee().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(e);let h=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(h.texture,...op(a))}this.pendingRead.set(e,[]),s!=="complex64"&&await this.gpgpu.createAndWaitForFence();let u;if(s==="complex64"){let h=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),m=h[0],f=h[1];u=_.mergeRealAndImagArrays(m,f)}else if(l==null)u=this.getValuesFromTexture(e);else{let h=w.sizeFromShape(a);u=this.gpgpu.downloadFloat32MatrixFromBuffer(l,h)}c!=null&&this.disposeIntermediateTensorInfo(c);let p=this.convertAndCacheOnCPU(e,u),d=this.pendingRead.get(e);return this.pendingRead.delete(e),d.forEach(h=>h(p)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&Ua().removeDataId(e,this),this.pendingDeletes--),p}bufferSync(e){let t=this.readSync(e.dataId),n=t;if(e.dtype==="string")try{n=t.map(a=>w.decodeString(a))}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(e.shape,e.dtype,n)}checkNumericalProblems(e){if(e!=null)for(let t=0;t0}async time(e){let t=this.activeTimers,n=[],a=!1;this.programTimersStack==null?(this.programTimersStack=n,a=!0):this.activeTimers.push(n),this.activeTimers=n,e();let r=w.flatten(this.activeTimers.map(o=>o.query)).filter(o=>o!=null),s=w.flatten(this.activeTimers.map(o=>o.name)).filter(o=>o!=null);this.activeTimers=t,a&&(this.programTimersStack=null);let i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let o=await Promise.all(r);i.kernelMs=w.sum(o),i.getExtraProfileInfo=()=>o.map((l,c)=>({name:s[c],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(", ")}else i.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,i}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:w.now(),endMs:null}}endTimer(e){return ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=w.now(),e)}async getQueryTime(e){if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);let t=e;return t.endMs-t.startMs}disposeData(e,t=!1){if(this.pendingDisposal.has(e))return!1;if(!this.texData.has(e))return!0;if(t?this.texData.get(e).refCount=0:this.texData.get(e).refCount--,!t&&this.texData.get(e).refCount>0)return!1;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),this.pendingDeletes++,!1;this.releaseGPUData(e);let{complexTensorInfos:n}=this.texData.get(e);return n!=null&&(this.disposeData(n.real.dataId,t),this.disposeData(n.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:n,texShape:a,usage:r,isPacked:s,slice:i}=this.texData.get(e),o=i&&i.origDataId||e,l=this.dataRefCount.get(o);l>1?this.dataRefCount.set(o,l-1):(this.dataRefCount.delete(o),t!=null&&(this.numBytesInGPU-=this.computeBytes(a,n),this.textureManager.releaseTexture(t,a,r,s)));let c=this.texData.get(e);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture}getDataInfo(e){return this.texData.get(e)}getCPUBackend(){return ee().getBool("WEBGL_CPU_FORWARD")?(this.cpuBackend==null&&(this.cpuBackend=Ua().findBackend("cpu")),this.cpuBackend):null}shouldExecuteOnCPU(e,t=H8){let n=this.getCPUBackend();return!ee().getBool("IS_TEST")&&!this.warnedAboutCPUBackend&&n==null&&(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),n!=null&&e.every(a=>this.texData.get(a.dataId).texture==null&&w.sizeFromShape(a.shape)0&&w.isString(n[0])){let r=n.map(s=>w.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return this.texData.get(a).usage=null,{dataId:a,shape:e,dtype:t}}makeOutput(e,t,n){let{dataId:a}=this.makeTensorInfo(e,t,n);return Ua().makeTensorFromDataId(a,e,t,this)}unpackTensor(e){let t=new B8(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new N8(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[ru(e.shape),...su(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[ru(t),...su(t)],s=new KN(r,n),i=!0,o=this.runWebGLProgram(s,[a],e.dtype,null,i);return{dataId:o.dataId,shape:t,dtype:o.dtype}}decode(e){let t=this.texData.get(e),{isPacked:n,shape:a,dtype:r}=t,s=Av(a),i;n?i=new W5(s):i=new B5(s);let o=!0,l=this.runWebGLProgram(i,[{shape:s,dtype:r,dataId:e}],r,null,o);return{dtype:r,shape:a,dataId:l.dataId}}runWebGLProgram(e,t,n,a,r=!1){let s=this.makeTensorInfo(e.outputShape,n),i=this.texData.get(s.dataId);if(e.packedOutput&&(i.isPacked=!0),e.outPackingScheme===sp.DENSE){let f=op(e.outputShape);i.texShape=f.map(g=>g*2)}if(e.outTexUsage!=null&&(i.usage=e.outTexUsage),w.sizeFromShape(s.shape)===0)return i.values=w.getTypedArrayFromDType(s.dtype,0),s;let o=[],l=t.map(f=>{if(f.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let g=this.texData.get(f.dataId);if(g.texture==null){if(!e.packedInputs&&w.sizeFromShape(f.shape)<=ee().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:f.shape,texData:null,isUniform:!0,uniformValues:g.values};e.packedInputs&&(g.isPacked=!0,g.shape=f.shape)}else if(!!g.isPacked!=!!e.packedInputs)f=g.isPacked?this.unpackTensor(f):this.packTensor(f),o.push(f),g=this.texData.get(f.dataId);else if(g.isPacked&&!Em(g.shape,f.shape)){let y=f,b=f.shape;f.shape=g.shape,f=this.packedReshape(f,b),o.push(f),g=this.texData.get(f.dataId),y.shape=b}return this.uploadToGPU(f.dataId),{shape:f.shape,texData:g,isUniform:!1}});this.uploadToGPU(s.dataId);let c={shape:s.shape,texData:i,isUniform:!1},u=Kq(e,l,c),p=this.getAndSaveBinary(u,()=>jq(this.gpgpu,e,l,c)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),qq(this.gpgpu,p,l,c,a),o.forEach(f=>this.disposeIntermediateTensorInfo(f)),d&&(h=this.endTimer(h),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(h)}));let m=ee().get("WEBGL_FLUSH_THRESHOLD");if(m>0){let f=w.now();f-this.lastGlFlushTime>m&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=f)}if(!ee().getBool("WEBGL_LAZILY_UNPACK")&&i.isPacked&&r===!1){let f=this.unpackTensor(s);return this.disposeIntermediateTensorInfo(s),f}return s}compileAndRun(e,t,n,a,r=!1){return n=n||t[0].dtype,this.runWebGLProgram(e,t,n,a,r)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(ee().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=D(()=>{if(!ee().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=ee().getBool("DEBUG");ee().set("DEBUG",!1);let t=this.abs(pe(1e-8)).dataSync()[0];if(ee().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?V8:U8}uploadToGPU(e){let t=this.texData.get(e),{shape:n,dtype:a,values:r,texture:s,usage:i,isPacked:o}=t;if(s!=null)return;let l=this.activeTimers!=null,c;l&&(c=w.now());let u=t.texShape;if(u==null&&(u=$5(n,o),t.texShape=u),r!=null){let p=Av(n),d,h=u[1],m=u[0],f=r instanceof Uint8Array;o?([h,m]=au(u[0],u[1]),d=new H5(p,[m,h],f)):d=new G5(p,[m,h],f);let g=this.makeTensorInfo([m,h],a);f?this.texData.get(g.dataId).usage=na.PIXELS:this.texData.get(g.dataId).usage=na.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(g.dataId),h,m,r);let y=!0,b=this.runWebGLProgram(d,[g],a,null,y),x=this.texData.get(b.dataId);t.texture=x.texture,t.texShape=x.texShape,t.isPacked=x.isPacked,t.usage=x.usage,this.disposeIntermediateTensorInfo(g),this.texData.delete(b.dataId),t.values=null,l&&(this.uploadWaitMs+=w.now()-c)}else{let p=this.acquireTexture(u,i,a,o);t.texture=p}}convertAndCacheOnCPU(e,t){let n=this.texData.get(e),{dtype:a}=n;return this.releaseGPUData(e),t!=null&&(n.values=K8(t,a)),n.values}acquireTexture(e,t,n,a){if(this.numBytesInGPU+=this.computeBytes(e,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let r=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${r} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,a)}computeBytes(e,t){return e[0]*e[1]*w.bytesPerElement(t)}};Lv.nextDataId=0;function K8(e,t){if(t==="float32"||t==="complex64")return e;if(t==="int32"||t==="bool"){let n=t==="int32"?new Int32Array(e.length):new Uint8Array(e.length);for(let a=0;anew Lv,2);var ZN=` + `}},wX=Ya.whereImpl,kX=1e-7,IX=1e-4,Lv={};function NX(e){return e in Lv||(Lv[e]={}),Lv[e]}var TX=128,SX=600;function CX(){return Z().global.screen==null?1024:Z().global.screen.height*Z().global.screen.width*window.devicePixelRatio*SX/1024/1024}var zv=class extends ju{constructor(e){super();if(this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.warnedAboutCPUBackend=!1,this.pendingDeletes=0,this.disposed=!1,!Z().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(e==null){let t=ar(Z().getNumber("WEBGL_VERSION"));this.binaryCache=NX(Z().getNumber("WEBGL_VERSION")),this.gpgpu=new U5(t),this.canvas=t.canvas,this.gpgpuCreatedLocally=!0}else this.gpgpu=e,this.binaryCache={},this.gpgpuCreatedLocally=!1,this.canvas=e.gl.canvas;this.textureManager=new lX(this.gpgpu),this.numMBBeforeWarning=CX(),this.texData=new sd(this,Ua())}nextDataId(){return zv.nextDataId++}numDataIds(){return this.texData.numDataIds()+(this.cpuBackend?this.cpuBackend.numDataIds():0)-this.pendingDeletes}write(e,t,n){if((Z().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||Z().getBool("DEBUG"))&&this.checkNumericalProblems(e),n==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let a={id:this.nextDataId()};return this.texData.set(a,{shape:t,dtype:n,values:e,usage:na.UPLOAD,refCount:1}),a}refCount(e){return this.texData.has(e)?this.texData.get(e).refCount:0}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}move(e,t,n,a,r){if(Z().getBool("DEBUG")&&this.checkNumericalProblems(t),a==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:n,dtype:a,values:t,usage:na.UPLOAD,refCount:r})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){let t=this.texData.get(e),{values:n,dtype:a,complexTensorInfos:r,slice:s,shape:i,isPacked:o}=t;if(s!=null){let p;o?p=new cu(i,Em):p=new ds(i,Em);let d=this.runWebGLProgram(p,[{dataId:e,shape:i,dtype:a}],a),h=this.readSync(d.dataId);return this.disposeIntermediateTensorInfo(d),h}if(n!=null)return this.convertAndCacheOnCPU(e);if(a==="string")return n;let l=this.activeTimers!=null,u;l&&(u=I.now());let c;if(a==="complex64"){let p=this.readSync(r.real.dataId),d=this.readSync(r.imag.dataId);c=E.mergeRealAndImagArrays(p,d)}else c=this.getValuesFromTexture(e);return l&&(this.downloadWaitMs+=I.now()-u),this.convertAndCacheOnCPU(e,c)}async read(e){if(this.pendingRead.has(e)){let h=this.pendingRead.get(e);return new Promise(m=>h.push(m))}let t=this.texData.get(e),{values:n,shape:a,slice:r,dtype:s,complexTensorInfos:i,isPacked:o}=t;if(r!=null){let h;o?h=new cu(a,Em):h=new ds(a,Em);let m=this.runWebGLProgram(h,[{dataId:e,shape:a,dtype:s}],s),f=this.read(m.dataId);return this.disposeIntermediateTensorInfo(m),f}if(n!=null)return this.convertAndCacheOnCPU(e);if(!Z().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&Z().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,u;if(s!=="complex64"&&Z().get("WEBGL_BUFFER_SUPPORTED")){u=this.decode(e);let h=this.texData.get(u.dataId);l=this.gpgpu.createBufferFromTexture(h.texture,...up(a))}this.pendingRead.set(e,[]),s!=="complex64"&&await this.gpgpu.createAndWaitForFence();let c;if(s==="complex64"){let h=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),m=h[0],f=h[1];c=E.mergeRealAndImagArrays(m,f)}else if(l==null)c=this.getValuesFromTexture(e);else{let h=I.sizeFromShape(a);c=this.gpgpu.downloadFloat32MatrixFromBuffer(l,h)}u!=null&&this.disposeIntermediateTensorInfo(u);let p=this.convertAndCacheOnCPU(e,c),d=this.pendingRead.get(e);return this.pendingRead.delete(e),d.forEach(h=>h(p)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&Ua().removeDataId(e,this),this.pendingDeletes--),p}bufferSync(e){let t=this.readSync(e.dataId),n=t;if(e.dtype==="string")try{n=t.map(a=>I.decodeString(a))}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(e.shape,e.dtype,n)}checkNumericalProblems(e){if(e!=null)for(let t=0;t0}async time(e){let t=this.activeTimers,n=[],a=!1;this.programTimersStack==null?(this.programTimersStack=n,a=!0):this.activeTimers.push(n),this.activeTimers=n,e();let r=I.flatten(this.activeTimers.map(o=>o.query)).filter(o=>o!=null),s=I.flatten(this.activeTimers.map(o=>o.name)).filter(o=>o!=null);this.activeTimers=t,a&&(this.programTimersStack=null);let i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};if(Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let o=await Promise.all(r);i.kernelMs=I.sum(o),i.getExtraProfileInfo=()=>o.map((l,u)=>({name:s[u],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(", ")}else i.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,i}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:I.now(),endMs:null}}endTimer(e){return Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=I.now(),e)}async getQueryTime(e){if(Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);let t=e;return t.endMs-t.startMs}disposeData(e,t=!1){if(this.pendingDisposal.has(e))return!1;if(!this.texData.has(e))return!0;if(t?this.texData.get(e).refCount=0:this.texData.get(e).refCount--,!t&&this.texData.get(e).refCount>0)return!1;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),this.pendingDeletes++,!1;this.releaseGPUData(e);let{complexTensorInfos:n}=this.texData.get(e);return n!=null&&(this.disposeData(n.real.dataId,t),this.disposeData(n.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:n,texShape:a,usage:r,isPacked:s,slice:i}=this.texData.get(e),o=i&&i.origDataId||e,l=this.dataRefCount.get(o);l>1?this.dataRefCount.set(o,l-1):(this.dataRefCount.delete(o),t!=null&&(this.numBytesInGPU-=this.computeBytes(a,n),this.textureManager.releaseTexture(t,a,r,s)));let u=this.texData.get(e);u.texture=null,u.texShape=null,u.isPacked=!1,u.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture}getDataInfo(e){return this.texData.get(e)}getCPUBackend(){return Z().getBool("WEBGL_CPU_FORWARD")?(this.cpuBackend==null&&(this.cpuBackend=Ua().findBackend("cpu")),this.cpuBackend):null}shouldExecuteOnCPU(e,t=TX){let n=this.getCPUBackend();return!Z().getBool("IS_TEST")&&!this.warnedAboutCPUBackend&&n==null&&(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),n!=null&&e.every(a=>this.texData.get(a.dataId).texture==null&&I.sizeFromShape(a.shape)0&&I.isString(n[0])){let r=n.map(s=>I.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return this.texData.get(a).usage=null,{dataId:a,shape:e,dtype:t}}makeOutput(e,t,n){let{dataId:a}=this.makeTensorInfo(e,t,n);return Ua().makeTensorFromDataId(a,e,t,this)}unpackTensor(e){let t=new vX(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new sX(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[ru(e.shape),...su(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[ru(t),...su(t)],s=new J2(r,n),i=!0,o=this.runWebGLProgram(s,[a],e.dtype,null,i);return{dataId:o.dataId,shape:t,dtype:o.dtype}}decode(e){let t=this.texData.get(e),{isPacked:n,shape:a,dtype:r}=t,s=$v(a),i;n?i=new w5(s):i=new v5(s);let o=!0,l=this.runWebGLProgram(i,[{shape:s,dtype:r,dataId:e}],r,null,o);return{dtype:r,shape:a,dataId:l.dataId}}runWebGLProgram(e,t,n,a,r=!1){let s=this.makeTensorInfo(e.outputShape,n),i=this.texData.get(s.dataId);if(e.packedOutput&&(i.isPacked=!0),e.outPackingScheme===op.DENSE){let f=up(e.outputShape);i.texShape=f.map(g=>g*2)}if(e.outTexUsage!=null&&(i.usage=e.outTexUsage),I.sizeFromShape(s.shape)===0)return i.values=I.getTypedArrayFromDType(s.dtype,0),s;let o=[],l=t.map(f=>{if(f.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let g=this.texData.get(f.dataId);if(g.texture==null){if(!e.packedInputs&&I.sizeFromShape(f.shape)<=Z().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:f.shape,texData:null,isUniform:!0,uniformValues:g.values};e.packedInputs&&(g.isPacked=!0,g.shape=f.shape)}else if(!!g.isPacked!=!!e.packedInputs)f=g.isPacked?this.unpackTensor(f):this.packTensor(f),o.push(f),g=this.texData.get(f.dataId);else if(g.isPacked&&!_m(g.shape,f.shape)){let y=f,b=f.shape;f.shape=g.shape,f=this.packedReshape(f,b),o.push(f),g=this.texData.get(f.dataId),y.shape=b}return this.uploadToGPU(f.dataId),{shape:f.shape,texData:g,isUniform:!1}});this.uploadToGPU(s.dataId);let u={shape:s.shape,texData:i,isUniform:!1},c=A8(e,l,u),p=this.getAndSaveBinary(c,()=>S8(this.gpgpu,e,l,u)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),C8(this.gpgpu,p,l,u,a),o.forEach(f=>this.disposeIntermediateTensorInfo(f)),d&&(h=this.endTimer(h),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(h)}));let m=Z().get("WEBGL_FLUSH_THRESHOLD");if(m>0){let f=I.now();f-this.lastGlFlushTime>m&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=f)}if(!Z().getBool("WEBGL_LAZILY_UNPACK")&&i.isPacked&&r===!1){let f=this.unpackTensor(s);return this.disposeIntermediateTensorInfo(s),f}return s}compileAndRun(e,t,n,a,r=!1){return n=n||t[0].dtype,this.runWebGLProgram(e,t,n,a,r)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(Z().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=M(()=>{if(!Z().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=Z().getBool("DEBUG");Z().set("DEBUG",!1);let t=this.abs(ce(1e-8)).dataSync()[0];if(Z().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?kX:IX}uploadToGPU(e){let t=this.texData.get(e),{shape:n,dtype:a,values:r,texture:s,usage:i,isPacked:o}=t;if(s!=null)return;let l=this.activeTimers!=null,u;l&&(u=I.now());let c=t.texShape;if(c==null&&(c=d5(n,o),t.texShape=c),r!=null){let p=$v(n),d,h=c[1],m=c[0],f=r instanceof Uint8Array;o?([h,m]=au(c[0],c[1]),d=new T5(p,[m,h],f)):d=new N5(p,[m,h],f);let g=this.makeTensorInfo([m,h],a);f?this.texData.get(g.dataId).usage=na.PIXELS:this.texData.get(g.dataId).usage=na.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(g.dataId),h,m,r);let y=!0,b=this.runWebGLProgram(d,[g],a,null,y),x=this.texData.get(b.dataId);t.texture=x.texture,t.texShape=x.texShape,t.isPacked=x.isPacked,t.usage=x.usage,this.disposeIntermediateTensorInfo(g),this.texData.delete(b.dataId),t.values=null,l&&(this.uploadWaitMs+=I.now()-u)}else{let p=this.acquireTexture(c,i,a,o);t.texture=p}}convertAndCacheOnCPU(e,t){let n=this.texData.get(e),{dtype:a}=n;return this.releaseGPUData(e),t!=null&&(n.values=AX(t,a)),n.values}acquireTexture(e,t,n,a){if(this.numBytesInGPU+=this.computeBytes(e,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let r=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${r} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,a)}computeBytes(e,t){return e[0]*e[1]*I.bytesPerElement(t)}};zv.nextDataId=0;function AX(e,t){if(t==="float32"||t==="complex64")return e;if(t==="int32"||t==="bool"){let n=t==="int32"?new Int32Array(e.length):new Uint8Array(e.length);for(let a=0;anew zv,2);var nT=` if (isnan(a)) return a; if (isnan(b)) return b; -`,pu=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=_.assertAndGetBroadcastShape(t,n),this.userCode=` +`,pu=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=E.assertAndGetBroadcastShape(t,n),this.userCode=` float binaryOperation(float a, float b) { ${e} } @@ -964,17 +964,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float b = getBAtOutCoords(); setOutput(binaryOperation(a, b)); } - `}},Am=` + `}},$m=` result.r = isNaN.r > 0. ? NAN : result.r; result.g = isNaN.g > 0. ? NAN : result.g; result.b = isNaN.b > 0. ? NAN : result.b; result.a = isNaN.a > 0. ? NAN : result.a; -`,cp=class{constructor(e,t,n,a=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=_.assertAndGetBroadcastShape(t,n);let r=this.outputShape.length,s="";if(a)if(r===0||w.sizeFromShape(this.outputShape)===1)s=` +`,dp=class{constructor(e,t,n,a=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=E.assertAndGetBroadcastShape(t,n);let r=this.outputShape.length,s="";if(a)if(r===0||I.sizeFromShape(this.outputShape)===1)s=` result.y = 0.; result.z = 0.; result.w = 0.; `;else if(s=` - ${dt(r)} coords = getOutputCoords(); + ${ht(r)} coords = getOutputCoords(); `,r===1)s+=` result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y; result.z = 0.; @@ -1001,21 +1001,21 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function Gn(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var Y8={kernelName:Ws,backendName:"webgl",kernelFunc:Gn};function hs(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.makeTensorInfo(a.shape,"complex64"),i=n.texData.get(s.dataId),o=Gn({inputs:{x:a},backend:n}),l=Gn({inputs:{x:r},backend:n});return i.complexTensorInfos={real:o,imag:l},s}var J8={kernelName:hd,backendName:"webgl",kernelFunc:hs},eS="return (a < 0.) ? b * a : a;",tS=` + `}};function Gn(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var _X={kernelName:Bs,backendName:"webgl",kernelFunc:Gn};function hs(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.makeTensorInfo(a.shape,"complex64"),i=n.texData.get(s.dataId),o=Gn({inputs:{x:a},backend:n}),l=Gn({inputs:{x:r},backend:n});return i.complexTensorInfos={real:o,imag:l},s}var EX={kernelName:md,backendName:"webgl",kernelFunc:hs},aT="return (a < 0.) ? b * a : a;",rT=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function Q8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",w.createScalarValue(s,"float32")),o=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new cp(tS,r.shape,i.shape):new pu(eS,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],r.dtype);return n.disposeIntermediateTensorInfo(i),l}var Z8={kernelName:Vs,backendName:"webgl",kernelFunc:Q8},nS="return (a < 0.) ? b * a : a;",aS=` +`;function $X(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",I.createScalarValue(s,"float32")),o=Z().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new dp(rT,r.shape,i.shape):new pu(aT,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],r.dtype);return n.disposeIntermediateTensorInfo(i),l}var DX={kernelName:Vs,backendName:"webgl",kernelFunc:$X},sT="return (a < 0.) ? b * a : a;",iT=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function eK(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new cp(aS,a.shape,r.shape):new pu(nS,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)}var tK={kernelName:ei,backendName:"webgl",kernelFunc:eK},rS="if (isnan(x)) return x;",nK=` +`;function MX(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=Z().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new dp(iT,a.shape,r.shape):new pu(sT,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)}var RX={kernelName:ei,backendName:"webgl",kernelFunc:MX},oT="if (isnan(x)) return x;",PX=` if (isnan(a)) return a; if (isnan(b)) return b; -`,aK=` +`,OX=` result.r = isNaN.r > 0. ? NAN : result.r; result.g = isNaN.g > 0. ? NAN : result.g; result.b = isNaN.b > 0. ? NAN : result.b; result.a = isNaN.a > 0. ? NAN : result.a; -`;function Ke({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:n,dtype:a}){return({inputs:r,backend:s})=>{let{x:i}=r,o=s,l=a||i.dtype;if(o.shouldExecuteOnCPU([i])&&n!=null){let p=o.texData.get(i.dataId),d=n(p.values,l);return o.makeTensorInfo(i.shape,l,d)}let c=ee().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,u;return c?u=new cu(i.shape,t):u=new ds(i.shape,e),o.runWebGLProgram(u,[i],l)}}function rn({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:n=!1,supportsComplex:a=!1,cpuKernelImpl:r,dtype:s}){return({inputs:i,backend:o})=>{let{a:l,b:c}=i,u=o;if(a&&l.dtype==="complex64"){let m=u.texData.get(l.dataId),f=u.texData.get(c.dataId),[g,y]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(x=>{let[v,N]=x,T={dataId:v.dataId,dtype:v.dtype,shape:l.shape},S={dataId:N.dataId,dtype:N.dtype,shape:c.shape},A=new pu(e,l.shape,c.shape);return u.runWebGLProgram(A,[T,S],ua(v.dtype,N.dtype))}),b=hs({inputs:{real:g,imag:y},backend:u});return u.disposeIntermediateTensorInfo(g),u.disposeIntermediateTensorInfo(y),b}let p=s||ua(l.dtype,c.dtype);if(u.shouldExecuteOnCPU([l,c])&&r!=null){let m=u.texData.get(l.dataId),f=u.texData.get(c.dataId),[g,y]=r(l.shape,c.shape,m.values,f.values,p),b=u.makeTensorInfo(y,p),x=u.texData.get(b.dataId);return x.values=g,b}let d=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return d?h=new cp(t,l.shape,c.shape,n):h=new pu(e,l.shape,c.shape),u.runWebGLProgram(h,[l,c],p)}}function $m(e,t=!1){if(e==="linear")return t?P8:$8;if(e==="relu")return t?L8:R8;if(e==="elu")return t?O8:D8;if(e==="relu6")return t?z8:M8;if(e==="prelu")return t?aS:nS;if(e==="leakyrelu")return t?tS:eS;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var sS=class{constructor(e,t,n,a=!1,r=!1,s=!1,i=null,o=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n;let c=a?e[1]:e[2],u=Math.ceil(c/2),p=a?"i * 2, rc.y":"rc.y, i * 2",d=r?"rc.z, i * 2":"i * 2, rc.z",h=a?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],m=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],f="",g="";i&&(o?f=`vec4 activation(vec4 a) { +`;function Xe({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:n,dtype:a}){return({inputs:r,backend:s})=>{let{x:i}=r,o=s,l=a||i.dtype;if(o.shouldExecuteOnCPU([i])&&n!=null){let p=o.texData.get(i.dataId),d=n(p.values,l);return o.makeTensorInfo(i.shape,l,d)}let u=Z().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,c;return u?c=new cu(i.shape,t):c=new ds(i.shape,e),o.runWebGLProgram(c,[i],l)}}function sn({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:n=!1,supportsComplex:a=!1,cpuKernelImpl:r,dtype:s}){return({inputs:i,backend:o})=>{let{a:l,b:u}=i,c=o;if(a&&l.dtype==="complex64"){let m=c.texData.get(l.dataId),f=c.texData.get(u.dataId),[g,y]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(x=>{let[v,k]=x,w={dataId:v.dataId,dtype:v.dtype,shape:l.shape},S={dataId:k.dataId,dtype:k.dtype,shape:u.shape},A=new pu(e,l.shape,u.shape);return c.runWebGLProgram(A,[w,S],ua(v.dtype,k.dtype))}),b=hs({inputs:{real:g,imag:y},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(y),b}let p=s||ua(l.dtype,u.dtype);if(c.shouldExecuteOnCPU([l,u])&&r!=null){let m=c.texData.get(l.dataId),f=c.texData.get(u.dataId),[g,y]=r(l.shape,u.shape,m.values,f.values,p),b=c.makeTensorInfo(y,p),x=c.texData.get(b.dataId);return x.values=g,b}let d=Z().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return d?h=new dp(t,l.shape,u.shape,n):h=new pu(e,l.shape,u.shape),c.runWebGLProgram(h,[l,u],p)}}function Dm(e,t=!1){if(e==="linear")return t?gX:dX;if(e==="relu")return t?bX:mX;if(e==="elu")return t?yX:hX;if(e==="relu6")return t?xX:fX;if(e==="prelu")return t?iT:sT;if(e==="leakyrelu")return t?rT:aT;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var lT=class{constructor(e,t,n,a=!1,r=!1,s=!1,i=null,o=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n;let u=a?e[1]:e[2],c=Math.ceil(u/2),p=a?"i * 2, rc.y":"rc.y, i * 2",d=r?"rc.z, i * 2":"i * 2, rc.z",h=a?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],m=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],f="",g="";i&&(o?f=`vec4 activation(vec4 a) { vec4 b = getPreluActivationWeightsAtOutCoords(); ${i} }`:l?f=`vec4 activation(vec4 a) { @@ -1026,11 +1026,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, }`,g="result = activation(result);");let y=s?"result += getBiasAtOutCoords();":"";s&&this.variableNames.push("bias"),o&&this.variableNames.push("preluActivationWeights"),l&&this.variableNames.push("leakyreluAlpha");let b="rc.x",x="rc.x";e[0]`The new shape (${l}) has ${c} elements and the old shape (${r.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`);let u=i.texData.get(r.dataId);return u.isPacked&&!Em(r.shape,l)&&!(u.texture!==null&&Em(u.shape,l))?sK(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var iK={kernelName:cl,backendName:"webgl",kernelFunc:ye},cS=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i=Math.floor(n/4)*4,o=n%4,l="sumValue += dot(values, ones);";if(t!=null){let u=1/t;l=`sumValue += dot(values * ${w.isInt(u)?u.toPrecision(2):u}, ones);`}let c="";r%n>0&&(c=` + `}},pT="return a * b;";function dT(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=E.upcastType(a.dtype,r.dtype);if(a.dtype==="complex64"){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),u=new cT(uT.REAL,a.shape,r.shape),c=new cT(uT.IMAG,a.shape,r.shape),p=[{dataId:o.complexTensorInfos.real.dataId,dtype:o.complexTensorInfos.real.dtype,shape:a.shape},{dataId:o.complexTensorInfos.imag.dataId,dtype:o.complexTensorInfos.imag.dtype,shape:a.shape},{dataId:l.complexTensorInfos.real.dataId,dtype:l.complexTensorInfos.real.dtype,shape:r.shape},{dataId:l.complexTensorInfos.imag.dataId,dtype:l.complexTensorInfos.imag.dtype,shape:r.shape}],d=n.runWebGLProgram(u,p,"float32"),h=n.runWebGLProgram(c,p,"float32"),m=hs({inputs:{real:d,imag:h},backend:n});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),m}if(n.shouldExecuteOnCPU([a,r])){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),[u,c]=G8(a.shape,r.shape,o.values,l.values,s),p=n.makeTensorInfo(c,s),d=n.texData.get(p.dataId);return d.values=u,p}let i;return Z().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new dp(pT,a.shape,r.shape):i=new pu(pT,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var LX={kernelName:Ys,backendName:"webgl",kernelFunc:dT};function zX(e,t,n){let a=[ru(e.shape),...su(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[ru(t),...su(t)],i=new J2(s,a),o=!0,l=n.runWebGLProgram(i,[r],e.dtype,null,o);return{dataId:l.dataId,shape:t,dtype:l.dtype}}function ye(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=n,o=I.sizeFromShape(r.shape),l=I.inferFromImplicitShape(s,o),u=I.sizeFromShape(l);I.assert(o===u,()=>`The new shape (${l}) has ${u} elements and the old shape (${r.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`);let c=i.texData.get(r.dataId);return c.isPacked&&!_m(r.shape,l)&&!(c.texture!==null&&_m(c.shape,l))?zX(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var WX={kernelName:cl,backendName:"webgl",kernelFunc:ye},hT=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i=Math.floor(n/4)*4,o=n%4,l="sumValue += dot(values, ones);";if(t!=null){let c=1/t;l=`sumValue += dot(values * ${I.isInt(c)?c.toPrecision(2):c}, ones);`}let u="";r%n>0&&(u=` if (inIdx < 0 || inIdx >= ${r}) { return 0.0; } @@ -1075,7 +1075,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); float getValue(int batch, int inIdx) { - ${c} + ${u} return getX(batch, inIdx); } @@ -1120,7 +1120,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(sumValue); } - `}},oK=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i="0.0",o="";t==="prod"?i="1.0":t==="min"?(i="1.0 / 1e-20",o="min"):t==="max"&&(i="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?l="sumValue":t==="prod"?l="prodValue":t==="all"?l="allValue":t==="any"&&(l="anyValue");let c=Math.floor(n/4)*4,u=n%4,p=` + `}},BX=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i="0.0",o="";t==="prod"?i="1.0":t==="min"?(i="1.0 / 1e-20",o="min"):t==="max"&&(i="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?l="sumValue":t==="prod"?l="prodValue":t==="all"?l="allValue":t==="any"&&(l="anyValue");let u=Math.floor(n/4)*4,c=n%4,p=` if (${t==="sum"}) { sumValue += dot(values, ones); } else if (${t==="prod"}) { @@ -1162,7 +1162,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float allValue = 1.0; float anyValue = 0.0; - for (int i = 0; i < ${c}; i += 4) { + for (int i = 0; i < ${u}; i += 4) { int inIdx = inOffset + i; ${d} values = ${d}( getValue(batch, inIdx), @@ -1174,8 +1174,8 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${p} } - int inIdx = inOffset + ${c}; - if (${u===1}) { + int inIdx = inOffset + ${u}; + if (${c===1}) { ${d} values = ${d}( getValue(batch, inIdx), initializationValue, @@ -1184,7 +1184,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ); ${p} - } else if (${u===2}) { + } else if (${c===2}) { ${d} values = ${d}( getValue(batch, inIdx), getValue(batch, inIdx + 1), @@ -1193,7 +1193,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ); ${p} - } else if (${u===3}) { + } else if (${c===3}) { ${d} values = ${d}( getValue(batch, inIdx), getValue(batch, inIdx + 1), @@ -1205,12 +1205,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(${l}); } - `}};function lK(e){let t=[];for(;t.length===0||t[t.length-1].outSize!==1;){let n=t.length?t[t.length-1].outSize:e[1],a=_.computeOptimalWindowSize(n);t.push({inSize:n,windowSize:a,outSize:Math.ceil(n/a)})}return t}function ji(e,t,n,a){let r=lK(e.shape),s=e;for(let i=0;i6)throw Error(`Transpose for rank ${t} is not yet supported`);let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],a=new Array(t);for(let r=0;r6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let a=dt(this.rank),r=qN("rc",this.rank),s=new Array(this.rank);for(let c=0;c6)throw Error(`Transpose for rank ${t} is not yet supported`);let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],a=new Array(t);for(let r=0;r6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let a=ht(this.rank),r=Y2("rc",this.rank),s=new Array(this.rank);for(let u=0;u=2&&u>=2&&x,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${f}) and (${g}).`);let v=(y>b?e.shape.slice(0,-2):t.shape.slice(0,-2)).concat([h,m]);w.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${a} must match.`);let N=n?[y,p,h]:[y,h,p],T=a?[b,m,d]:[b,d,m],S=ye({inputs:{x:e},backend:r,attrs:{shape:N}}),A=ye({inputs:{x:t},backend:r,attrs:{shape:T}}),$=[S,A],R=Math.max(y,b),B=n?S.shape[1]:S.shape[2],V=s!=null,W=i!=null,G=l==="leakyrelu",H=l!=null?$m(l,!0):null,X=V||W||G||H!=null,q;if((h===1||m===1)&&B>pS&&X===!1){let Q=S,se=A;n&&(Q=Fn({inputs:{x:S},backend:r,attrs:{perm:[0,2,1]}}),$.push(Q)),a&&(se=Fn({inputs:{x:A},backend:r,attrs:{perm:[0,2,1]}}),$.push(se));let ne=m!==1,ie=m===1,Z=Q;ne&&(Z=ye({inputs:{x:Q},backend:r,attrs:{shape:[R,B,1]}}),$.push(Z));let de=m===1?2:1,oe=se;ie&&(oe=ye({inputs:{x:se},backend:r,attrs:{shape:[R,1,B]}}),$.push(oe));let ge=uS({inputs:{a:Z,b:oe},backend:r});q=zv({inputs:{x:ge},backend:r,attrs:{axis:de,keepDims:!0}}),$.push(ge)}else{let Q=ua(e.dtype,t.dtype),se=new sS(N,T,[R,h,m],n,a,V,H,W,G),ne=[S,A];if(s!=null&&ne.push(s),W&&ne.push(i),G){let ie=r.makeTensorInfo([],"float32",w.createScalarValue(o,"float32"));ne.push(ie),$.push(ie)}q=r.runWebGLProgram(se,ne,Q)}let te=ye({inputs:{x:q},backend:r,attrs:{shape:v}});$.push(q);for(let Q of $)r.disposeIntermediateTensorInfo(Q);return te}function fK(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:c,activation:u,leakyreluAlpha:p}=a;return Rm({a:r,b:s,transposeA:l,transposeB:c,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:p,activation:u})}var gK={kernelName:gi,backendName:"webgl",kernelFunc:fK},dS="return abs(x);";function yK(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])&&a.dtype!=="complex64"){let s=n.texData.get(a.dataId),i=jN(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return ee().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new cu(a.shape,dS):r=new ds(a.shape,dS),n.runWebGLProgram(r,[a],a.dtype)}var bK={kernelName:So,backendName:"webgl",kernelFunc:yK},xK=Ra+` + `}};function Mm(e,t,n){let a=Z().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new HX(e.shape,t):new GX(e.shape,t);return n.runWebGLProgram(a,[e],e.dtype)}function jX(e,t,n,a){let r=t,s=e.shape.length,i=I.parseAxisParam(r,e.shape),o=i,l=E.getAxesPermutation(o,s),u=l!=null,c=e;u&&(c=Mm(e,l,a),o=E.getInnerMostAxes(o.length,s)),E.assertAxesAreInnerMostDims("sum",o,s);let[p,d]=E.computeOutAndReduceShapes(c.shape,o),h=p;n&&(h=E.expandShapeToKeepDim(p,i));let m=I.sizeFromShape(d),f=I.sizeFromShape(e.shape)/m,g=ye({inputs:{x:c},attrs:{shape:[f,m]},backend:a}),y=jd(e.dtype),b=ji(g,y,"sum",a),x=ye({inputs:{x:b},attrs:{shape:h},backend:a});return a.disposeIntermediateTensorInfo(g),a.disposeIntermediateTensorInfo(b),u&&a.disposeIntermediateTensorInfo(c),x}function Wv(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;return jX(r,s,i,n)}var qX={kernelName:ci,backendName:"webgl",kernelFunc:Wv};function _n(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{perm:s}=a,i=n,o=r.shape.length,l=new Array(o);for(let c=0;c=2&&c>=2&&x,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${f}) and (${g}).`);let v=(y>b?e.shape.slice(0,-2):t.shape.slice(0,-2)).concat([h,m]);I.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${a} must match.`);let k=n?[y,p,h]:[y,h,p],w=a?[b,m,d]:[b,d,m],S=ye({inputs:{x:e},backend:r,attrs:{shape:k}}),A=ye({inputs:{x:t},backend:r,attrs:{shape:w}}),F=[S,A],D=Math.max(y,b),R=n?S.shape[1]:S.shape[2],L=s!=null,W=i!=null,U=l==="leakyrelu",G=l!=null?Dm(l,!0):null,X=L||W||U||G!=null,j;if((h===1||m===1)&&R>mT&&X===!1){let Q=S,se=A;n&&(Q=_n({inputs:{x:S},backend:r,attrs:{perm:[0,2,1]}}),F.push(Q)),a&&(se=_n({inputs:{x:A},backend:r,attrs:{perm:[0,2,1]}}),F.push(se));let ne=m!==1,ie=m===1,ee=Q;ne&&(ee=ye({inputs:{x:Q},backend:r,attrs:{shape:[D,R,1]}}),F.push(ee));let de=m===1?2:1,oe=se;ie&&(oe=ye({inputs:{x:se},backend:r,attrs:{shape:[D,1,R]}}),F.push(oe));let ge=dT({inputs:{a:ee,b:oe},backend:r});j=Wv({inputs:{x:ge},backend:r,attrs:{axis:de,keepDims:!0}}),F.push(ge)}else{let Q=ua(e.dtype,t.dtype),se=new lT(k,w,[D,h,m],n,a,L,G,W,U),ne=[S,A];if(s!=null&&ne.push(s),W&&ne.push(i),U){let ie=r.makeTensorInfo([],"float32",I.createScalarValue(o,"float32"));ne.push(ie),F.push(ie)}j=r.runWebGLProgram(se,ne,Q)}let te=ye({inputs:{x:j},backend:r,attrs:{shape:v}});F.push(j);for(let Q of F)r.disposeIntermediateTensorInfo(Q);return te}function KX(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:u,activation:c,leakyreluAlpha:p}=a;return Rm({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:p,activation:c})}var YX={kernelName:gi,backendName:"webgl",kernelFunc:KX},fT="return abs(x);";function JX(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])&&a.dtype!=="complex64"){let s=n.texData.get(a.dataId),i=K2(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return Z().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new cu(a.shape,fT):r=new ds(a.shape,fT),n.runWebGLProgram(r,[a],a.dtype)}var QX={kernelName:So,backendName:"webgl",kernelFunc:JX},ZX=Ra+` if (abs(x) > 1.) { return NAN; } return acos(x); -`,vK=Ke({opSnippet:xK}),wK={kernelName:Co,backendName:"webgl",kernelFunc:vK},kK=Ra+` +`,eK=Xe({opSnippet:ZX}),tK={kernelName:Co,backendName:"webgl",kernelFunc:eK},nK=Ra+` if (x < 1.0) return NAN; -return log(x + sqrt(x * x - 1.0));`,IK=Ke({opSnippet:kK}),TK={kernelName:_o,backendName:"webgl",kernelFunc:IK},hS="return a + b;",NK=rn({opSnippet:hS,packedOpSnippet:hS,supportsComplex:!0,cpuKernelImpl:Xq}),SK={kernelName:Wr,backendName:"webgl",kernelFunc:NK},CK=class{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`float v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` +return log(x + sqrt(x * x - 1.0));`,aK=Xe({opSnippet:nK}),rK={kernelName:Ao,backendName:"webgl",kernelFunc:aK},gT="return a + b;",sK=sn({opSnippet:gT,packedOpSnippet:gT,supportsComplex:!0,cpuKernelImpl:F8}),iK={kernelName:Br,backendName:"webgl",kernelFunc:sK},oK=class{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`float v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` void main() { ${n.join(` `)} @@ -1242,7 +1242,7 @@ return log(x + sqrt(x * x - 1.0));`,IK=Ke({opSnippet:kK}),TK={kernelName:_o,back float result = ${a}; setOutput(result); } - `}},_K=class{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`vec4 v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` + `}},lK=class{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`vec4 v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` void main() { ${n.join(` `)} @@ -1250,7 +1250,7 @@ return log(x + sqrt(x * x - 1.0));`,IK=Ke({opSnippet:kK}),TK={kernelName:_o,back vec4 result = ${a}; setOutput(result); } - `}};function Mm(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return Gn({inputs:{x:a[0]},backend:n});if(a.length>ee().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=Mm({inputs:a.slice(0,o),backend:n}),c=Mm({inputs:a.slice(o),backend:n});return Mm({inputs:[l,c],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>ua(o,l)),s=a.map(o=>o.shape),i=ee().getBool("WEBGL_PACK")?new _K(a[0].shape,s):new CK(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var EK={kernelName:Ts,backendName:"webgl",kernelFunc:Mm};function FK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=w.parseAxisParam(s,r.shape),c=l,u=_.getAxesPermutation(c,o),p=r;u!=null&&(p=Fn({inputs:{x:r},backend:n,attrs:{perm:u}}),c=_.getInnerMostAxes(c.length,o)),_.assertAxesAreInnerMostDims("all",c,o);let[d,h]=_.computeOutAndReduceShapes(p.shape,c),m=w.sizeFromShape(h),f=ye({inputs:{x:p},backend:n,attrs:{shape:[-1,m]}}),g=ji(f,f.dtype,"all",n),y;if(i){let b=_.expandShapeToKeepDim(d,l);y=ye({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=ye({inputs:{x:g},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),u!=null&&n.disposeIntermediateTensorInfo(p),y}var AK={kernelName:ld,backendName:"webgl",kernelFunc:FK};function $K(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=w.parseAxisParam(s,r.shape),c=l,u=_.getAxesPermutation(c,o),p=r;u!=null&&(p=Fn({inputs:{x:r},backend:n,attrs:{perm:u}}),c=_.getInnerMostAxes(c.length,o)),_.assertAxesAreInnerMostDims("any",c,o);let[d,h]=_.computeOutAndReduceShapes(p.shape,c),m=w.sizeFromShape(h),f=ye({inputs:{x:p},backend:n,attrs:{shape:[-1,m]}}),g=ji(f,f.dtype,"any",n),y;if(i){let b=_.expandShapeToKeepDim(d,l);y=ye({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=ye({inputs:{x:g},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),u!=null&&n.disposeIntermediateTensorInfo(p),y}var DK={kernelName:ud,backendName:"webgl",kernelFunc:$K},RK=class{constructor(e,t,n){this.variableNames=["A"];let{windowSize:a,batchSize:r,outSize:s}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[r,s];let i=t==="max"?">":"<",o=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` + `}};function Pm(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return Gn({inputs:{x:a[0]},backend:n});if(a.length>Z().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=Pm({inputs:a.slice(0,o),backend:n}),u=Pm({inputs:a.slice(o),backend:n});return Pm({inputs:[l,u],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>ua(o,l)),s=a.map(o=>o.shape),i=Z().getBool("WEBGL_PACK")?new lK(a[0].shape,s):new oK(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var uK={kernelName:Ns,backendName:"webgl",kernelFunc:Pm};function cK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=I.parseAxisParam(s,r.shape),u=l,c=E.getAxesPermutation(u,o),p=r;c!=null&&(p=_n({inputs:{x:r},backend:n,attrs:{perm:c}}),u=E.getInnerMostAxes(u.length,o)),E.assertAxesAreInnerMostDims("all",u,o);let[d,h]=E.computeOutAndReduceShapes(p.shape,u),m=I.sizeFromShape(h),f=ye({inputs:{x:p},backend:n,attrs:{shape:[-1,m]}}),g=ji(f,f.dtype,"all",n),y;if(i){let b=E.expandShapeToKeepDim(d,l);y=ye({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=ye({inputs:{x:g},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),c!=null&&n.disposeIntermediateTensorInfo(p),y}var pK={kernelName:ud,backendName:"webgl",kernelFunc:cK};function dK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=I.parseAxisParam(s,r.shape),u=l,c=E.getAxesPermutation(u,o),p=r;c!=null&&(p=_n({inputs:{x:r},backend:n,attrs:{perm:c}}),u=E.getInnerMostAxes(u.length,o)),E.assertAxesAreInnerMostDims("any",u,o);let[d,h]=E.computeOutAndReduceShapes(p.shape,u),m=I.sizeFromShape(h),f=ye({inputs:{x:p},backend:n,attrs:{shape:[-1,m]}}),g=ji(f,f.dtype,"any",n),y;if(i){let b=E.expandShapeToKeepDim(d,l);y=ye({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=ye({inputs:{x:g},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),c!=null&&n.disposeIntermediateTensorInfo(p),y}var hK={kernelName:cd,backendName:"webgl",kernelFunc:dK},mK=class{constructor(e,t,n){this.variableNames=["A"];let{windowSize:a,batchSize:r,outSize:s}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[r,s];let i=t==="max"?">":"<",o=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -1270,31 +1270,31 @@ return log(x + sqrt(x * x - 1.0));`,IK=Ke({opSnippet:kK}),TK={kernelName:_o,back } setOutput(float(bestIndex)); } - `}},MK=class{constructor(e,t,n,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,w.assert(e.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let r=e[e.length-1],s=Math.ceil(r/t);this.outputShape=e.slice(0,-1),s>1&&this.outputShape.push(s),a||this.variableNames.push("bestIndicesA");let i=this.outputShape,o=i.length,l=dt(o),c=fn("coords",o),u,p;if(s===1){p=o+1;let S=dt(p);u=` - ${S} sourceLocR = ${S}(${c.join()}, 0); - ++${c[o-1]}; - ${S} sourceLocG = ${S}(${c.join()}, 0); - ++${c[o-2]}; - ${S} sourceLocA = ${S}(${c.join()}, 0); - --${c[o-1]}; - ${S} sourceLocB = ${S}(${c.join()}, 0); - --${c[o-2]};`}else p=o,u=` + `}},fK=class{constructor(e,t,n,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,I.assert(e.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let r=e[e.length-1],s=Math.ceil(r/t);this.outputShape=e.slice(0,-1),s>1&&this.outputShape.push(s),a||this.variableNames.push("bestIndicesA");let i=this.outputShape,o=i.length,l=ht(o),u=fn("coords",o),c,p;if(s===1){p=o+1;let S=ht(p);c=` + ${S} sourceLocR = ${S}(${u.join()}, 0); + ++${u[o-1]}; + ${S} sourceLocG = ${S}(${u.join()}, 0); + ++${u[o-2]}; + ${S} sourceLocA = ${S}(${u.join()}, 0); + --${u[o-1]}; + ${S} sourceLocB = ${S}(${u.join()}, 0); + --${u[o-2]};`}else p=o,c=` ${l} sourceLocR = coords; - ++${c[o-1]}; + ++${u[o-1]}; ${l} sourceLocG = coords; - ++${c[o-2]}; + ++${u[o-2]}; ${l} sourceLocA = coords; - --${c[o-1]}; + --${u[o-1]}; ${l} sourceLocB = coords; - --${c[o-2]};`;let d=["x","y","z","w","u","v"].slice(0,p),h="."+d[p-1],m=d.map(S=>"int "+S),f=fn("sourceLocR",p-1).concat("inIdx.r"),g=fn("sourceLocG",p-1).concat("inIdx.g"),y=fn("sourceLocB",p-1).concat("inIdx.b"),b=fn("sourceLocA",p-1).concat("inIdx.a"),x=n==="max"?"greaterThan":"lessThan",v=a?"":` + --${u[o-2]};`;let d=["x","y","z","w","u","v"].slice(0,p),h="."+d[p-1],m=d.map(S=>"int "+S),f=fn("sourceLocR",p-1).concat("inIdx.r"),g=fn("sourceLocG",p-1).concat("inIdx.g"),y=fn("sourceLocB",p-1).concat("inIdx.b"),b=fn("sourceLocA",p-1).concat("inIdx.a"),x=n==="max"?"greaterThan":"lessThan",v=a?"":` inIdx = round(vec4(getBestIndicesAChannel(${f.join()}), getBestIndicesAChannel(${g.join()}), getBestIndicesAChannel(${y.join()}), - getBestIndicesAChannel(${b.join()})));`,N=`vec4( + getBestIndicesAChannel(${b.join()})));`,k=`vec4( getAChannel(${f.join()}), hasNextCol ? getAChannel(${g.join()}) : 0., hasNextRow ? getAChannel(${y.join()}) : 0., - hasNextRow && hasNextCol ? getAChannel(${b.join()}) : 0.)`,T=a?"":` + hasNextRow && hasNextCol ? getAChannel(${b.join()}) : 0.)`,w=a?"":` float getBestIndicesAChannel(${m.join()}) { return getChannel(getBestIndicesA(${d.join()}), vec2(${d.slice(-2).join()})); @@ -1303,22 +1303,22 @@ return log(x + sqrt(x * x - 1.0));`,IK=Ke({opSnippet:kK}),TK={kernelName:_o,back return getChannel(getA(${d.join()}), vec2(${d.slice(-2).join()})); } - ${T} + ${w} void main() { ${l} coords = getOutputCoords(); - bool hasNextCol = ${c[o-1]} < ${i[o-1]-1}; - bool hasNextRow = ${c[o-2]} < ${i[o-2]-1}; - ${u} + bool hasNextCol = ${u[o-1]} < ${i[o-1]-1}; + bool hasNextRow = ${u[o-2]} < ${i[o-2]-1}; + ${c} ivec4 srcIdx = ivec4(sourceLocR${h}, sourceLocG${h}, sourceLocB${h}, sourceLocA${h}) * ${t}; ivec4 inIdx = srcIdx; vec4 bestIndex = vec4(inIdx); - vec4 bestValue = ${N}; + vec4 bestValue = ${k}; for (int i = 0; i < ${t}; i++) { inIdx = srcIdx; ${v} - vec4 candidate = ${N}; + vec4 candidate = ${k}; bvec4 nan = isnan(candidate); bvec4 replace = bvec4( vec4(${x}(candidate, bestValue)) * (vec4(1.0) - vec4(nan))); @@ -1332,23 +1332,23 @@ return log(x + sqrt(x * x - 1.0));`,IK=Ke({opSnippet:kK}),TK={kernelName:_o,back } setOutput(bestIndex); } - `}};function mS(e,t,n,a=null){let r=t.shape[0],s=t.shape[1];a!=null&&(r=a.shape[0],s=a.shape[1]);let i=_.computeOptimalWindowSize(s),o={windowSize:i,inSize:s,batchSize:r,outSize:Math.ceil(s/i)},l=new RK(o,n,a==null),c=[t];a!=null&&c.push(a);let u=e.runWebGLProgram(l,c,"int32");if(u.shape[1]===1)return u;let p=mS(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}function fS(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=_.computeOptimalWindowSize(s),o=new MK(r,i,n,a==null),l=a==null?[t]:[t,a],c=e.runWebGLProgram(o,l,"int32");if(c.shape.length===t.shape.length){let u=fS(e,t,n,c);return e.disposeIntermediateTensorInfo(c),u}return c}function gS(e,t,n,a){let r=[n];if(_.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!ee().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],[i,o]=_.computeOutAndReduceShapes(t.shape,r),l=w.sizeFromShape(o),c=ye({inputs:{x:t},backend:e,attrs:{shape:[-1,l]}});s.push(c);let u=mS(e,c,a);s.push(u);let p=ye({inputs:{x:u},backend:e,attrs:{shape:i}});return s.forEach(d=>e.disposeIntermediateTensorInfo(d)),p}return fS(e,t,a)}function PK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=w.parseAxisParam(s,r.shape),o=_.getAxesPermutation(i,r.shape.length),l=r,c=[];o!=null&&(l=Fn({inputs:{x:r},backend:n,attrs:{perm:o}}),c.push(l),i=_.getInnerMostAxes(i.length,l.shape.length)),_.assertAxesAreInnerMostDims("argMax",[i[0]],l.shape.length);let u=gS(n,l,i[0],"max");return c.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var OK={kernelName:Ns,backendName:"webgl",kernelFunc:PK};function LK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=w.parseAxisParam(s,r.shape),o=_.getAxesPermutation(i,r.shape.length),l=r,c=[];o!=null&&(l=Fn({inputs:{x:r},backend:n,attrs:{perm:o}}),c.push(l),i=_.getInnerMostAxes(i.length,l.shape.length)),_.assertAxesAreInnerMostDims("argMin",[i[0]],l.shape.length);let u=gS(n,l,i[0],"min");return c.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var zK={kernelName:Xu,backendName:"webgl",kernelFunc:LK},BK=Ra+` + `}};function yT(e,t,n,a=null){let r=t.shape[0],s=t.shape[1];a!=null&&(r=a.shape[0],s=a.shape[1]);let i=E.computeOptimalWindowSize(s),o={windowSize:i,inSize:s,batchSize:r,outSize:Math.ceil(s/i)},l=new mK(o,n,a==null),u=[t];a!=null&&u.push(a);let c=e.runWebGLProgram(l,u,"int32");if(c.shape[1]===1)return c;let p=yT(e,t,n,c);return e.disposeIntermediateTensorInfo(c),p}function bT(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=E.computeOptimalWindowSize(s),o=new fK(r,i,n,a==null),l=a==null?[t]:[t,a],u=e.runWebGLProgram(o,l,"int32");if(u.shape.length===t.shape.length){let c=bT(e,t,n,u);return e.disposeIntermediateTensorInfo(u),c}return u}function xT(e,t,n,a){let r=[n];if(E.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!Z().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],[i,o]=E.computeOutAndReduceShapes(t.shape,r),l=I.sizeFromShape(o),u=ye({inputs:{x:t},backend:e,attrs:{shape:[-1,l]}});s.push(u);let c=yT(e,u,a);s.push(c);let p=ye({inputs:{x:c},backend:e,attrs:{shape:i}});return s.forEach(d=>e.disposeIntermediateTensorInfo(d)),p}return bT(e,t,a)}function gK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=I.parseAxisParam(s,r.shape),o=E.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=_n({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=E.getInnerMostAxes(i.length,l.shape.length)),E.assertAxesAreInnerMostDims("argMax",[i[0]],l.shape.length);let c=xT(n,l,i[0],"max");return u.forEach(p=>n.disposeIntermediateTensorInfo(p)),c}var yK={kernelName:Ts,backendName:"webgl",kernelFunc:gK};function bK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=I.parseAxisParam(s,r.shape),o=E.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=_n({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=E.getInnerMostAxes(i.length,l.shape.length)),E.assertAxesAreInnerMostDims("argMin",[i[0]],l.shape.length);let c=xT(n,l,i[0],"min");return u.forEach(p=>n.disposeIntermediateTensorInfo(p)),c}var xK={kernelName:Ku,backendName:"webgl",kernelFunc:bK},vK=Ra+` if (abs(x) > 1.) { return NAN; } return asin(x); -`,WK=Ke({opSnippet:BK}),VK={kernelName:Eo,backendName:"webgl",kernelFunc:WK},UK=Ra+"return log(x + sqrt(x * x + 1.0));",GK=Ke({opSnippet:UK}),HK={kernelName:Fo,backendName:"webgl",kernelFunc:GK},jK=Ra+` +`,wK=Xe({opSnippet:vK}),kK={kernelName:Fo,backendName:"webgl",kernelFunc:wK},IK=Ra+"return log(x + sqrt(x * x + 1.0));",NK=Xe({opSnippet:IK}),TK={kernelName:_o,backendName:"webgl",kernelFunc:NK},SK=Ra+` return atan(x); -`,qK=Ke({opSnippet:jK}),KK={kernelName:Ao,backendName:"webgl",kernelFunc:qK},XK=nK+` +`,CK=Xe({opSnippet:SK}),AK={kernelName:Eo,backendName:"webgl",kernelFunc:CK},FK=PX+` return atan(a, b); -`,YK=` +`,_K=` vec4 result = atan(a, b); vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); - `+aK+` + `+OX+` return result; -`,JK=rn({opSnippet:XK,packedOpSnippet:YK}),QK={kernelName:Do,backendName:"webgl",kernelFunc:JK},ZK=Ra+` +`,EK=sn({opSnippet:FK,packedOpSnippet:_K}),$K={kernelName:Do,backendName:"webgl",kernelFunc:EK},DK=Ra+` if ((x < -1.0) || (x > 1.0)) return NAN; -return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelName:$o,backendName:"webgl",kernelFunc:eX},pp=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,c=e.dilationWidth,u=e.effectiveFilterHeight,p=e.effectiveFilterWidth,d=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`,y="0.0";if(m||(y="-1.0 / 1e-20"),n){let S=">=";this.userCode=` +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,MK=Xe({opSnippet:DK}),RK={kernelName:$o,backendName:"webgl",kernelFunc:MK},hp=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,c=e.effectiveFilterHeight,p=e.effectiveFilterWidth,d=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`,y="0.0";if(m||(y="-1.0 / 1e-20"),n){let S=">=";this.userCode=` const ivec2 strides = ivec2(${i}, ${o}); const ivec2 pads = ivec2(${d}, ${h}); @@ -1368,7 +1368,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam int minMaxPosition = 0; float avgValue = 0.0; - for (int wR = 0; wR < ${u}; + for (int wR = 0; wR < ${c}; wR += ${l}) { int xR = xRCorner + wR; @@ -1377,7 +1377,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } for (int wC = 0; wC < ${p}; - wC += ${c}) { + wC += ${u}) { int xC = xCCorner + wC; if (xC < 0 || xC >= ${e.inWidth}) { @@ -1399,7 +1399,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } setOutput(float(minMaxPosition)); } - `;return}let b="max",x=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(x="avgValue / count");let v=Math.floor(s/4)*4,N=s%4,T=` + `;return}let b="max",x=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(x="avgValue / count");let v=Math.floor(s/4)*4,k=s%4,w=` if (${m}) { avgValue += dot(values, ones); } else { @@ -1436,7 +1436,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam float avgValue = 0.0; count = 0.0; - for (int wR = 0; wR < ${u}; + for (int wR = 0; wR < ${c}; wR += ${l}) { int xR = xRCorner + wR; @@ -1445,20 +1445,20 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } for (int wC = 0; wC < ${v}; wC += 4) { - int xC = xCCorner + wC * ${c}; + int xC = xCCorner + wC * ${u}; vec4 values = vec4( getValue(batch, xR, xC, d), - getValue(batch, xR, xC + ${c}, d), - getValue(batch, xR, xC + 2 * ${c}, d), - getValue(batch, xR, xC + 3 * ${c}, d) + getValue(batch, xR, xC + ${u}, d), + getValue(batch, xR, xC + 2 * ${u}, d), + getValue(batch, xR, xC + 3 * ${u}, d) ); - ${T} + ${w} } int xC = xCCorner + ${v}; - if (${N===1}) { + if (${k===1}) { vec4 values = vec4( getValue(batch, xR, xC, d), initializationValue, @@ -1466,30 +1466,30 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam initializationValue ); - ${T} - } else if (${N===2}) { + ${w} + } else if (${k===2}) { vec4 values = vec4( getValue(batch, xR, xC, d), - getValue(batch, xR, xC + ${c}, d), + getValue(batch, xR, xC + ${u}, d), initializationValue, initializationValue ); - ${T} - } else if (${N===3}) { + ${w} + } else if (${k===3}) { vec4 values = vec4( getValue(batch, xR, xC, d), - getValue(batch, xR, xC + ${c}, d), - getValue(batch, xR, xC + 2 * ${c}, d), + getValue(batch, xR, xC + ${u}, d), + getValue(batch, xR, xC + 2 * ${u}, d), initializationValue ); - ${T} + ${w} } } setOutput(${x}); } - `}},Bv=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,c=e.dilationDepth,u=e.dilationHeight,p=e.dilationWidth,d=e.effectiveFilterDepth,h=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;let b=t==="avg",x="0.0";if(b||(x="-1.0 / 1e-20"),n){let $=">=";this.userCode=` + `}},Bv=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,c=e.dilationHeight,p=e.dilationWidth,d=e.effectiveFilterDepth,h=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;let b=t==="avg",x="0.0";if(b||(x="-1.0 / 1e-20"),n){let F=">=";this.userCode=` const ivec3 strides = ivec3(${i}, ${o}, ${l}); const ivec3 pads = ivec3(${f}, ${g}, ${y}); @@ -1511,7 +1511,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam int minMaxPosition = 0; for (int wD = 0; wD < ${d}; - wD += ${c}) { + wD += ${u}) { int xD = xDCorner + wD; if (xD < 0 || xD >= ${e.inDepth}) { @@ -1519,7 +1519,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } for (int wR = 0; wR < ${h}; - wR += ${u}) { + wR += ${c}) { int xR = xRCorner + wR; if (xR < 0 || xR >= ${e.inHeight}) { @@ -1540,7 +1540,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam // use the current value. float currMinMaxValue = mix( value, minMaxValue, minMaxValueFound); - if (value ${$} currMinMaxValue) { + if (value ${F} currMinMaxValue) { minMaxValue = value; minMaxValueFound = 1.0; minMaxPosition = ${a?r?`(((batch * ${e.inDepth} + xD) * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`((xD * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`wD * ${h} * ${m} + @@ -1551,7 +1551,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } setOutput(float(minMaxPosition)); } - `;return}let v="max",N=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(N="avgValue / count");let T=Math.floor(s/4)*4,S=s%4,A=` + `;return}let v="max",k=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(k="avgValue / count");let w=Math.floor(s/4)*4,S=s%4,A=` if (${b}) { avgValue += dot(values, ones); } else { @@ -1591,7 +1591,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam count = 0.0; for (int wD = 0; wD < ${d}; - wD += ${c}) { + wD += ${u}) { int xD = xDCorner + wD; if (xD < 0 || xD >= ${e.inDepth}) { @@ -1599,14 +1599,14 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } for (int wR = 0; wR < ${h}; - wR += ${u}) { + wR += ${c}) { int xR = xRCorner + wR; if (xR < 0 || xR >= ${e.inHeight}) { continue; } - for (int wC = 0; wC < ${T}; wC += 4) { + for (int wC = 0; wC < ${w}; wC += 4) { int xC = xCCorner + wC * ${p}; vec4 values = vec4( @@ -1619,7 +1619,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam ${A} } - int xC = xCCorner + ${T}; + int xC = xCCorner + ${w}; if (${S===1}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), @@ -1649,11 +1649,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam ${A} } } - setOutput(${N}); + setOutput(${k}); } } - `}};function nX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;lp(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,c=1;w.assert(_.eitherStridesOrDilationsAreOne(i,c),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l);if(u.filterWidth===1&&u.filterHeight===1&&w.arraysEqual(u.inShape,u.outShape))return Gn({inputs:{x:r},backend:n});let p=new pp(u,"avg",!1);return n.runWebGLProgram(p,[r],"float32")}var aX={kernelName:Ss,backendName:"webgl",kernelFunc:nX};function rX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:c}=a,u=[1,1,1],p=_.computePool3DInfo(r.shape,s,i,u,o,l,c),d=new Bv(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var sX={kernelName:Yu,backendName:"webgl",kernelFunc:rX},iX=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,c=o-1-e.padInfo.top,u=l-1-e.padInfo.left,p=1/(t*n);this.userCode=` - const ivec2 pads = ivec2(${c}, ${u}); + `}};function PK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;cp(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;I.assert(E.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let c=E.computePool2DInfo(r.shape,s,i,u,o,l);if(c.filterWidth===1&&c.filterHeight===1&&I.arraysEqual(c.inShape,c.outShape))return Gn({inputs:{x:r},backend:n});let p=new hp(c,"avg",!1);return n.runWebGLProgram(p,[r],"float32")}var OK={kernelName:Ss,backendName:"webgl",kernelFunc:PK};function LK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,c=[1,1,1],p=E.computePool3DInfo(r.shape,s,i,c,o,l,u),d=new Bv(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var zK={kernelName:Yu,backendName:"webgl",kernelFunc:LK},WK=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,u=o-1-e.padInfo.top,c=l-1-e.padInfo.left,p=1/(t*n);this.userCode=` + const ivec2 pads = ivec2(${u}, ${c}); const float avgMultiplier = float(${p}); void main() { @@ -1694,7 +1694,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } setOutput(dotProd); } - `}},oX=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,c=e.dilationWidth,u=e.effectiveFilterDepth,p=e.effectiveFilterHeight,d=e.effectiveFilterWidth,h=u-1-e.padInfo.front,m=p-1-e.padInfo.top,f=d-1-e.padInfo.left,g=1/(t*n*a);this.userCode=` + `}},BK=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,c=e.effectiveFilterDepth,p=e.effectiveFilterHeight,d=e.effectiveFilterWidth,h=c-1-e.padInfo.front,m=p-1-e.padInfo.top,f=d-1-e.padInfo.left,g=1/(t*n*a);this.userCode=` const ivec3 pads = ivec3(${h}, ${m}, ${f}); const float avgMultiplier = float(${g}); @@ -1713,7 +1713,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam // ? = to be determined. : = across all values in that axis. float dotProd = 0.0; - for (int wD = 0; wD < ${u}; + for (int wD = 0; wD < ${c}; wD += ${o}) { float dyD = float(dyDCorner + wD) / ${r}.0; @@ -1733,7 +1733,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam int idyR = int(dyR); for (int wC = 0; wC < ${d}; - wC += ${c}) { + wC += ${u}) { float dyC = float(dyCCorner + wC) / ${i}.0; if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || @@ -1750,7 +1750,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } setOutput(dotProd); } - `}};function lX(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:c,dimRoundingMode:u}=a,p=[1,1,1],d=_.computePool3DInfo(i.shape,o,l,p,c,u),h=new oX(d);return n.runWebGLProgram(h,[r],i.dtype)}var uX={kernelName:pd,backendName:"webgl",kernelFunc:lX};function cX(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;lp([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:c}=a,u=_.computePool2DInfo(i.shape,o,l,1,c),p=new iX(u);return n.runWebGLProgram(p,[r],i.dtype)}var pX={kernelName:cd,backendName:"webgl",kernelFunc:cX};function dX(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return Rm({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var hX={kernelName:Cs,backendName:"webgl",kernelFunc:dX},mX=class{constructor(e,t,n,a,r,s){this.outputShape=[],this.variableNames=["x","mean","variance"],_.assertAndGetBroadcastShape(e,t),_.assertAndGetBroadcastShape(e,n);let i="0.0";a!=null&&(_.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";r!=null&&(_.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}};function VK(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:c}=a,p=[1,1,1],d=E.computePool3DInfo(i.shape,o,l,p,u,c),h=new BK(d);return n.runWebGLProgram(h,[r],i.dtype)}var UK={kernelName:dd,backendName:"webgl",kernelFunc:VK};function GK(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;cp([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,c=E.computePool2DInfo(i.shape,o,l,1,u),p=new WK(c);return n.runWebGLProgram(p,[r],i.dtype)}var HK={kernelName:pd,backendName:"webgl",kernelFunc:GK};function jK(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return Rm({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var qK={kernelName:Cs,backendName:"webgl",kernelFunc:jK},XK=class{constructor(e,t,n,a,r,s){this.outputShape=[],this.variableNames=["x","mean","variance"],E.assertAndGetBroadcastShape(e,t),E.assertAndGetBroadcastShape(e,n);let i="0.0";a!=null&&(E.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";r!=null&&(E.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { float x = getXAtOutCoords(); float mean = getMeanAtOutCoords(); @@ -1760,7 +1760,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam float inv = scale * inversesqrt(variance + float(${s})); setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); } - `}},fX=class{constructor(e,t,n,a,r,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],_.assertAndGetBroadcastShape(e,t),_.assertAndGetBroadcastShape(e,n);let i="vec4(0.0)";a!=null&&(_.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";r!=null&&(_.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}},KK=class{constructor(e,t,n,a,r,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],E.assertAndGetBroadcastShape(e,t),E.assertAndGetBroadcastShape(e,n);let i="vec4(0.0)";a!=null&&(E.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";r!=null&&(E.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { vec4 offset = ${i}; vec4 scale = ${o}; @@ -1773,7 +1773,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam setOutput((x - mean) * inv + offset); } - `}},gX=({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 c=[a,r,s],u=null;i!=null&&(u=i.shape,c.push(i));let p=null;o!=null&&(p=o.shape,c.push(o));let d=ee().getBool("WEBGL_PACK_NORMALIZATION")?new fX(a.shape,r.shape,s.shape,u,p,l):new mX(a.shape,r.shape,s.shape,u,p,l);return t.runWebGLProgram(d,c,c[0].dtype)},yX={kernelName:zs,backendName:"webgl",kernelFunc:gX},xX=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=dt(this.rank),n=`uniform int start[${this.rank}];`,a=bX(this.rank),r,s=e.map((i,o)=>`sourceLoc.${Wv[o]} = start[${o}] + coords.${Wv[o]};`);r=` + `}},YK=({inputs:e,backend:t,attrs:n})=>{let{x:a,mean:r,variance:s,offset:i,scale:o}=e;I.assert(r.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),I.assert(i==null||r.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),I.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],c=null;i!=null&&(c=i.shape,u.push(i));let p=null;o!=null&&(p=o.shape,u.push(o));let d=Z().getBool("WEBGL_PACK_NORMALIZATION")?new KK(a.shape,r.shape,s.shape,c,p,l):new XK(a.shape,r.shape,s.shape,c,p,l);return t.runWebGLProgram(d,u,u[0].dtype)},JK={kernelName:zs,backendName:"webgl",kernelFunc:YK},ZK=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=ht(this.rank),n=`uniform int start[${this.rank}];`,a=QK(this.rank),r,s=e.map((i,o)=>`sourceLoc.${Vv[o]} = start[${o}] + coords.${Vv[o]};`);r=` ${t} sourceLoc; ${t} coords = getOutputCoords(); ${s.join(` @@ -1784,7 +1784,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam ${r} setOutput(getSource(${a})); } - `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}},Wv=["x","y","z","w","u","v"];function bX(e){if(e===1)return"sourceLoc";if(e<=6)return Wv.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var vX=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;let t=dt(this.rank),n=fn("coords",this.rank),a=fn("sourceLoc",this.rank),r=this.rank===1?"sourceLoc":`vec2(${a.slice(-2).join()})`,s=`getChannel(getSource(${a.join()}), ${r})`,i=` + `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}},Vv=["x","y","z","w","u","v"];function QK(e){if(e===1)return"sourceLoc";if(e<=6)return Vv.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var e7=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;let t=ht(this.rank),n=fn("coords",this.rank),a=fn("sourceLoc",this.rank),r=this.rank===1?"sourceLoc":`vec2(${a.slice(-2).join()})`,s=`getChannel(getSource(${a.join()}), ${r})`,i=` result.x = ${s}; if (++${n[this.rank-1]} < ${e[this.rank-1]}) { ++${a[this.rank-1]}; @@ -1802,7 +1802,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } } `,l=this.rank<=4?`sourceLoc = coords + - ${t}(${e.map((c,u)=>`start[${u}]`).join()});`:e.map((c,u)=>`${a[u]} = ${n[u]} + start[${u}];`).join(` + ${t}(${e.map((u,c)=>`start[${c}]`).join()});`:e.map((u,c)=>`${a[c]} = ${n[c]} + start[${c}];`).join(` `);this.userCode=` uniform int start[${this.rank}]; void main() { @@ -1814,7 +1814,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam ${o} setOutput(result); } - `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}};function wX(e,t,n,a){let r=a.texData.get(e.dataId),s=a.makeTensorInfo(n,e.dtype),i=a.texData.get(s.dataId);Object.assign(i,r),i.refCount=1,i.shape=n,i.dtype=e.dtype;let o=pn.computeFlatOffset(t,w.computeStrides(e.shape));r.slice&&(o+=r.slice.flatOffset),i.slice={flatOffset:o,origDataId:r.slice&&r.slice.origDataId||e.dataId};let l=a.dataRefCount.get(i.slice.origDataId)||1;return a.dataRefCount.set(i.slice.origDataId,l+1),s}function dp(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=pn.parseSliceParams(r,s,i);if(pn.assertParamsValid(r,o,l),w.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let p=n.texData.get(r.dataId),d=f8(p.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,d)}let{isPacked:c}=n.texData.get(r.dataId),u=pn.isSliceContinous(r.shape,o,l);if(c||!u){let p=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new vX(l):new xX(l),d=p.getCustomSetupFunc(o);return n.runWebGLProgram(p,[r],r.dtype,d)}return n.uploadToGPU(r.dataId),wX(r,o,l,n)}var kX={kernelName:ml,backendName:"webgl",kernelFunc:dp},IX=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;w.assert(r.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,x)=>b*x),l=_.getReshaped(r.shape,s,o),c=_.getPermuted(l.length,s.length),u=_.getReshapedPermuted(r.shape,s,o),p=_.getSliceBeginCoords(i,s.length),d=_.getSliceSize(u,i,s.length),h=[],m=ye({inputs:{x:r},backend:n,attrs:{shape:l}}),f=Fn({inputs:{x:m},backend:n,attrs:{perm:c}}),g=ye({inputs:{x:f},backend:n,attrs:{shape:u}}),y=dp({inputs:{x:g},backend:n,attrs:{begin:p,size:d}});return h.push(m),h.push(f),h.push(g),h.forEach(b=>n.disposeIntermediateTensorInfo(b)),y},TX={kernelName:Ju,backendName:"webgl",kernelFunc:IX};function NX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.readSync(r.dataId),l=n.readSync(s.dataId),c=HN(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,c)}var SX={kernelName:dd,backendName:"webgl",kernelFunc:NX},CX="return float(a != b);",yS=rn({opSnippet:CX,dtype:"bool"}),_X={kernelName:nl,backendName:"webgl",kernelFunc:yS};function hp(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return Gn({inputs:{x:r.complexTensorInfos.real},backend:n})}var EX={kernelName:Dd,backendName:"webgl",kernelFunc:hp},FX="return float(int(x));";function AX(e,t){let n=new ds(e.shape,FX),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function Vv(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return Gn({inputs:{x:r},backend:n});let i=xt(r.shape),o=Vv({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=hs({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=hp({inputs:{input:r},backend:n}),o=Vv({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!w.hasEncodingLoss(r.dtype,s)){let i=Gn({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(s==="int32")return AX(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",w.getTypedArrayFromDType("bool",1)),o=yS({inputs:{a:r,b:i},backend:n});return n.disposeIntermediateTensorInfo(i),o}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var $X={kernelName:_s,backendName:"webgl",kernelFunc:Vv},bS="return ceil(x);",DX=Ke({opSnippet:bS,packedOpSnippet:bS,cpuKernelImpl:Jq}),RX={kernelName:Es,backendName:"webgl",kernelFunc:DX},MX=class{constructor(e){this.variableNames=["A"],this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}};function t7(e,t,n,a){let r=a.texData.get(e.dataId),s=a.makeTensorInfo(n,e.dtype),i=a.texData.get(s.dataId);Object.assign(i,r),i.refCount=1,i.shape=n,i.dtype=e.dtype;let o=pn.computeFlatOffset(t,I.computeStrides(e.shape));r.slice&&(o+=r.slice.flatOffset),i.slice={flatOffset:o,origDataId:r.slice&&r.slice.origDataId||e.dataId};let l=a.dataRefCount.get(i.slice.origDataId)||1;return a.dataRefCount.set(i.slice.origDataId,l+1),s}function mp(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=pn.parseSliceParams(r,s,i);if(pn.assertParamsValid(r,o,l),I.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let p=n.texData.get(r.dataId),d=K8(p.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,d)}let{isPacked:u}=n.texData.get(r.dataId),c=pn.isSliceContinous(r.shape,o,l);if(u||!c){let p=Z().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new e7(l):new ZK(l),d=p.getCustomSetupFunc(o);return n.runWebGLProgram(p,[r],r.dtype,d)}return n.uploadToGPU(r.dataId),t7(r,o,l,n)}var n7={kernelName:ml,backendName:"webgl",kernelFunc:mp},a7=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;I.assert(r.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,x)=>b*x),l=E.getReshaped(r.shape,s,o),u=E.getPermuted(l.length,s.length),c=E.getReshapedPermuted(r.shape,s,o),p=E.getSliceBeginCoords(i,s.length),d=E.getSliceSize(c,i,s.length),h=[],m=ye({inputs:{x:r},backend:n,attrs:{shape:l}}),f=_n({inputs:{x:m},backend:n,attrs:{perm:u}}),g=ye({inputs:{x:f},backend:n,attrs:{shape:c}}),y=mp({inputs:{x:g},backend:n,attrs:{begin:p,size:d}});return h.push(m),h.push(f),h.push(g),h.forEach(b=>n.disposeIntermediateTensorInfo(b)),y},r7={kernelName:Ju,backendName:"webgl",kernelFunc:a7};function s7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.readSync(r.dataId),l=n.readSync(s.dataId),u=X2(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var i7={kernelName:hd,backendName:"webgl",kernelFunc:s7},o7="return float(a != b);",vT=sn({opSnippet:o7,dtype:"bool"}),l7={kernelName:nl,backendName:"webgl",kernelFunc:vT};function fp(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return Gn({inputs:{x:r.complexTensorInfos.real},backend:n})}var u7={kernelName:Md,backendName:"webgl",kernelFunc:fp},c7="return float(int(x));";function p7(e,t){let n=new ds(e.shape,c7),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function Uv(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return Gn({inputs:{x:r},backend:n});let i=vt(r.shape),o=Uv({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=hs({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=fp({inputs:{input:r},backend:n}),o=Uv({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!I.hasEncodingLoss(r.dtype,s)){let i=Gn({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(s==="int32")return p7(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",I.getTypedArrayFromDType("bool",1)),o=vT({inputs:{a:r,b:i},backend:n});return n.disposeIntermediateTensorInfo(i),o}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var d7={kernelName:As,backendName:"webgl",kernelFunc:Uv},wT="return ceil(x);",h7=Xe({opSnippet:wT,packedOpSnippet:wT,cpuKernelImpl:E8}),m7={kernelName:Fs,backendName:"webgl",kernelFunc:h7},f7=class{constructor(e){this.variableNames=["A"],this.outputShape=e,this.userCode=` uniform float minVal; uniform float maxVal; @@ -1827,7 +1827,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam setOutput(clamp(value, minVal, maxVal)); } - `}getCustomSetupFunc(e,t){return(n,a)=>{this.minLoc==null&&(this.minLoc=n.getUniformLocationNoThrow(a,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(a,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}},PX=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e,t){return(n,a)=>{this.minLoc==null&&(this.minLoc=n.getUniformLocationNoThrow(a,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(a,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}},g7=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` uniform float minVal; uniform float maxVal; @@ -1841,7 +1841,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } - `}getCustomSetupFunc(e,t){return(n,a)=>{this.minLoc==null&&(this.minLoc=n.getUniformLocationNoThrow(a,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(a,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}};function OX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;ee().getBool("WEBGL_PACK_CLIP")?o=new PX(r.shape):o=new MX(r.shape);let l=o.getCustomSetupFunc(s,i);return n.runWebGLProgram(o,[r],r.dtype,l)}var LX={kernelName:Vr,backendName:"webgl",kernelFunc:OX},zX=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e,t){return(n,a)=>{this.minLoc==null&&(this.minLoc=n.getUniformLocationNoThrow(a,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(a,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}};function y7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;Z().getBool("WEBGL_PACK_CLIP")?o=new g7(r.shape):o=new f7(r.shape);let l=o.getCustomSetupFunc(s,i);return n.runWebGLProgram(o,[r],r.dtype,l)}var b7={kernelName:Vr,backendName:"webgl",kernelFunc:y7},x7=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); @@ -1854,7 +1854,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } - `}};function xS(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}function BX(e){let{inputs:t,backend:n}=e,{x:a}=t,r=n.texData.get(a.dataId),s=new zX(a.shape),i=[xS(a,r.complexTensorInfos.real),xS(a,r.complexTensorInfos.imag)];return n.runWebGLProgram(s,i,i[0].dtype)}var WX={kernelName:Qu,backendName:"webgl",kernelFunc:BX},VX=class{constructor(e){this.outputShape=[],this.outputShape=_.computeOutShape(e,1),this.variableNames=e.map((s,i)=>`T${i}`);let t=new Array(e.length-1);t[0]=e[0][1];for(let s=1;s`T${i}`);let t=new Array(e.length-1);t[0]=e[0][1];for(let s=1;s`T${f}`);let o=new Array(e.length-1);o[0]=e[0][t];for(let m=1;m`T${f}`);let o=new Array(e.length-1);o[0]=e[0][t];for(let m=1;m= ${o[m-1]}) { return getChannel( - getT${m}(${Pm(i,l,f)}), - vec2(${Pm(c,l,f)})); + getT${m}(${Om(i,l,f)}), + vec2(${Om(u,l,f)})); }`}let d=o.length,h=o[o.length-1];p+=` return getChannel( - getT${d}(${Pm(i,l,h)}), - vec2(${Pm(c,l,h)}));`,this.userCode=` + getT${d}(${Om(i,l,h)}), + vec2(${Om(u,l,h)}));`,this.userCode=` float getValue(${i.map(m=>"int "+m)}) { ${p} } @@ -1900,7 +1900,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } setOutput(result); } - `}};function Pm(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function Om(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return Gn({inputs:{x:r.complexTensorInfos.imag},backend:n})}var GX={kernelName:Sd,backendName:"webgl",kernelFunc:Om};function du(e,t,n){let a=e[0].dtype;if(a==="complex64"){let c=e.map(m=>hp({inputs:{input:m},backend:n})),u=e.map(m=>Om({inputs:{input:m},backend:n})),p=du(c,t,n),d=du(u,t,n),h=hs({inputs:{real:p,imag:d},backend:n});return c.forEach(m=>n.disposeIntermediateTensorInfo(m)),u.forEach(m=>n.disposeIntermediateTensorInfo(m)),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),h}if(a==="string"){let{tensors2D:c,outShape:u}=vS(e,t,n),p=c.map(g=>({vals:n.readSync(g.dataId),shape:g.shape})),d=c[0].shape[0]===1,h=Qq(p,u,a,d),m=_.computeOutShape(e.map(g=>g.shape),t),f=n.makeTensorInfo(m,a,h);return c.forEach(g=>n.disposeIntermediateTensorInfo(g)),f}if(e.length>ee().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let c=Math.floor(e.length/2),u=du(e.slice(0,c),t,n),p=du(e.slice(c),t,n),d=du([u,p],t,n);return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),d}if(ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].shape.length>1){let c=new UX(e.map(u=>u.shape),t);return n.runWebGLProgram(c,e,a)}let{tensors2D:r,outShape:s}=vS(e,t,n),i=new VX(r.map(c=>c.shape)),o=n.runWebGLProgram(i,r,a);r.forEach(c=>n.disposeIntermediateTensorInfo(c));let l=ye({inputs:{x:o},attrs:{shape:s},backend:n});return n.disposeIntermediateTensorInfo(o),l}function vS(e,t,n){let a=_.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>ye({inputs:{x:r},attrs:{shape:[-1,w.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function wS(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=w.parseAxisParam(r,t[0].shape)[0],i=_.computeOutShape(t.map(c=>c.shape),s);if(w.sizeFromShape(i)===0)return n.makeTensorInfo(i,t[0].dtype,[]);let o=t.filter(c=>w.sizeFromShape(c.shape)>0);if(o.length===1)return Gn({inputs:{x:o[0]},backend:n});let l=o.map(c=>c.shape);return _.assertParamsConsistent(l,s),du(o,s,n)}var HX={kernelName:Ro,backendName:"webgl",kernelFunc:wS},kS=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,c=e.dilationHeight,u=e.dilationWidth,p=e.filterHeight,d=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4,f=e.dataFormat==="channelsLast",g=f?1:2,y=f?2:3,b=f?3:1,x="",v="";n&&(a?x=`float activation(float a) { + `}};function Om(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function Lm(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return Gn({inputs:{x:r.complexTensorInfos.imag},backend:n})}var N7={kernelName:Cd,backendName:"webgl",kernelFunc:Lm};function du(e,t,n){let a=e[0].dtype;if(a==="complex64"){let u=e.map(m=>fp({inputs:{input:m},backend:n})),c=e.map(m=>Lm({inputs:{input:m},backend:n})),p=du(u,t,n),d=du(c,t,n),h=hs({inputs:{real:p,imag:d},backend:n});return u.forEach(m=>n.disposeIntermediateTensorInfo(m)),c.forEach(m=>n.disposeIntermediateTensorInfo(m)),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),h}if(a==="string"){let{tensors2D:u,outShape:c}=IT(e,t,n),p=u.map(g=>({vals:n.readSync(g.dataId),shape:g.shape})),d=u[0].shape[0]===1,h=$8(p,c,a,d),m=E.computeOutShape(e.map(g=>g.shape),t),f=n.makeTensorInfo(m,a,h);return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),f}if(e.length>Z().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let u=Math.floor(e.length/2),c=du(e.slice(0,u),t,n),p=du(e.slice(u),t,n),d=du([c,p],t,n);return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(p),d}if(Z().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].shape.length>1){let u=new I7(e.map(c=>c.shape),t);return n.runWebGLProgram(u,e,a)}let{tensors2D:r,outShape:s}=IT(e,t,n),i=new k7(r.map(u=>u.shape)),o=n.runWebGLProgram(i,r,a);r.forEach(u=>n.disposeIntermediateTensorInfo(u));let l=ye({inputs:{x:o},attrs:{shape:s},backend:n});return n.disposeIntermediateTensorInfo(o),l}function IT(e,t,n){let a=E.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>ye({inputs:{x:r},attrs:{shape:[-1,I.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function NT(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=I.parseAxisParam(r,t[0].shape)[0],i=E.computeOutShape(t.map(u=>u.shape),s);if(I.sizeFromShape(i)===0)return n.makeTensorInfo(i,t[0].dtype,[]);let o=t.filter(u=>I.sizeFromShape(u.shape)>0);if(o.length===1)return Gn({inputs:{x:o[0]},backend:n});let l=o.map(u=>u.shape);return E.assertParamsConsistent(l,s),du(o,s,n)}var T7={kernelName:Mo,backendName:"webgl",kernelFunc:NT},TT=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,u=e.dilationHeight,c=e.dilationWidth,p=e.filterHeight,d=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4,f=e.dataFormat==="channelsLast",g=f?1:2,y=f?2:3,b=f?3:1,x="",v="";n&&(a?x=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?x=`float activation(float a) { @@ -1910,7 +1910,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam float activation(float x) { ${n} } - `,v="result = activation(result);");let N=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),a&&this.variableNames.push("preluActivationWeights"),r&&this.variableNames.push("leakyreluAlpha"),this.userCode=` + `,v="result = activation(result);");let k=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),a&&this.variableNames.push("preluActivationWeights"),r&&this.variableNames.push("leakyreluAlpha"),this.userCode=` ${x} const ivec2 strides = ivec2(${o}, ${l}); @@ -1930,14 +1930,14 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam // ? = to be determined. : = across all values in that axis. float dotProd = 0.0; for (int wR = 0; wR < ${p}; wR++) { - int xR = xRCorner + wR * ${c}; + int xR = xRCorner + wR * ${u}; if (xR < 0 || xR >= ${e.inHeight}) { continue; } for (int wC = 0; wC < ${d}; wC++) { - int xC = xCCorner + wC * ${u}; + int xC = xCCorner + wC * ${c}; if (xC < 0 || xC >= ${e.inWidth}) { continue; @@ -2030,11 +2030,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } float result = dotProd; - ${N} + ${k} ${v} setOutput(result); } - `}},jX=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,n=e.padInfo.top,a=e.padInfo.left,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,c=e.dilationWidth,u=e.filterDepth,p=e.filterHeight,d=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` + `}},S7=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,n=e.padInfo.top,a=e.padInfo.left,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,c=e.filterDepth,p=e.filterHeight,d=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` const ivec3 strides = ivec3(${r}, ${s}, ${i}); const ivec3 pads = ivec3(${t}, ${n}, ${a}); @@ -2052,7 +2052,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam // y(yF, yR, yC, d2). ? = to be determined. : = across all // values in that axis. float dotProd = 0.0; - for (int wF = 0; wF < ${u}; wF++) { + for (int wF = 0; wF < ${c}; wF++) { int xF = xFCorner + wF * ${o}; if (xF < 0 || xF >= ${e.inDepth}) { @@ -2067,7 +2067,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } for (int wC = 0; wC < ${d}; wC++) { - int xC = xCCorner + wC * ${c}; + int xC = xCCorner + wC * ${u}; if (xC < 0 || xC >= ${e.inWidth}) { continue; @@ -2122,18 +2122,18 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } setOutput(dotProd); } - `}},qX=class{constructor(e,t,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let{filterWidth:a,inChannels:r,strideWidth:s,strideHeight:i,padInfo:o,outWidth:l,dilationWidth:c,dilationHeight:u,dataFormat:p}=n,{left:d,top:h}=o,m=r*a,f=mn(),g=p==="channelsLast",y=g?0:1,b=g?1:2,x="";for(let v=0;v<=1;v++)for(let N=0;N<=1;N++)x+=` - blockIndex = rc.y + ${N}; + `}},C7=class{constructor(e,t,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let{filterWidth:a,inChannels:r,strideWidth:s,strideHeight:i,padInfo:o,outWidth:l,dilationWidth:u,dilationHeight:c,dataFormat:p}=n,{left:d,top:h}=o,m=r*a,f=mn(),g=p==="channelsLast",y=g?0:1,b=g?1:2,x="";for(let v=0;v<=1;v++)for(let k=0;k<=1;k++)x+=` + blockIndex = rc.y + ${k}; pos = rc.x + ${v}; if(blockIndex < ${e[1]} && pos < ${e[0]}) { offsetY = int(blockIndex / (${l})) * ${i} - ${h}; - d0 = offsetY + ${u} * (pos / ${m}); + d0 = offsetY + ${c} * (pos / ${m}); if(d0 < ${t[y]} && d0 >= 0) { offsetX = int(mod(float(blockIndex), ${l}.) * ${s}. - ${d}.); - d1 = offsetX + ${c} * (int(mod(float(pos), ${m}.) / ${r}.)); + d1 = offsetX + ${u} * (int(mod(float(pos), ${m}.) / ${r}.)); if(d1 < ${t[b]} && d1 >= 0) { @@ -2141,12 +2141,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam if (${g}) { innerDims = vec2(d1, ch); - result[${v*2+N}] = getChannel( + result[${v*2+k}] = getChannel( getA(d0, int(innerDims.x), int(innerDims.y)), innerDims); } else { innerDims = vec2(d0, d1); - result[${v*2+N}] = getChannel( + result[${v*2+k}] = getChannel( getA(ch, int(innerDims.x), int(innerDims.y)), innerDims); } @@ -2166,7 +2166,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam ${f.output} = result; } - `}};function IS({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let l=e.shape,c=a.texData.get(e.dataId),u=n.inChannels,p=l[0]*l[1]*l[2],d=n.outChannels,h=n.dataFormat==="channelsLast",m=!1,f=!1,g,y=[],b=(p===1||d===1)&&u>pS,x=l[2]%2!=0&&!!c.isPacked;if(b||!ee().getBool("WEBGL_LAZILY_UNPACK")||!ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!x){let v=h?l[0]*l[1]*l[2]:l[0]*l[2]*l[3],N=ye({inputs:{x:e},backend:a,attrs:{shape:[1,v,n.inChannels]}}),T=ye({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),S=Rm({a:N,b:T,transposeA:m,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=ye({inputs:{x:S},backend:a,attrs:{shape:n.outShape}}),y.push(N),y.push(T),y.push(S)}else{let v=h?l[0]*l[1]*(l[2]+1):l[0]*l[2]*(l[3]+1),N={dataId:e.dataId,shape:[1,v,n.inChannels],dtype:e.dtype},T=c.shape;c.shape=c.shape.slice(),c.shape[c.shape.length-2]++,w.assert(Em(c.shape,N.shape),()=>`packed reshape ${c.shape} to ${N.shape} isn't free`);let S=ye({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});y.push(S);let A=Rm({a:N,b:S,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),$=a.texData.get(A.dataId);w.assert($.isPacked,()=>"batchMatMul result is expected to be packed"),c.shape=T,$.shape=n.outShape,g=Gn({inputs:{x:A},backend:a}),g.shape=n.outShape,y.push(A)}for(let v of y)a.disposeIntermediateTensorInfo(v);return g}function TS({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let{filterWidth:l,filterHeight:c,inChannels:u,outWidth:p,outHeight:d,dataFormat:h}=n,m=h==="channelsLast",f=l*c*u,g=d*p,y=[f,g],b=!0,x=!1,v=[],N=ye({inputs:{x:e},backend:a,attrs:{shape:e.shape.slice(1)}}),T=ye({inputs:{x:t},backend:a,attrs:{shape:[1,f,w.sizeFromShape(t.shape)/f]}});v.push(N),v.push(T);let S=new qX(y,N.shape,n),A=a.runWebGLProgram(S,[N],"float32"),$=ye({inputs:{x:A},backend:a,attrs:{shape:[1,y[0],y[1]]}});v.push(A),v.push($);let R=r!=null,B=s!=null,V=o==="leakyrelu",W=o?$m(o,!0):null,G=new sS($.shape,T.shape,[1,g,n.outChannels],b,x,R,W,B,V),H=[$,T];if(r&&H.push(r),B&&H.push(s),V){let Q=a.makeTensorInfo([],"float32",w.createScalarValue(i,"float32"));H.push(Q),v.push(Q)}let X=a.runWebGLProgram(G,H,"float32"),q=m?[1,d,p,n.outChannels]:[1,n.outChannels,d,p],te=ye({inputs:{x:X},backend:a,attrs:{shape:q}});v.push(X);for(let Q of v)a.disposeIntermediateTensorInfo(Q);return te}function KX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:c,dimRoundingMode:u}=a,p=_.convertConv2DDataFormat(l),d=_.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!1,p),h;if(d.filterHeight===1&&d.filterWidth===1&&d.dilationHeight===1&&d.dilationWidth===1&&d.strideHeight===1&&d.strideWidth===1&&(d.padInfo.type==="SAME"||d.padInfo.type==="VALID"))h=IS({x:r,filter:s,convInfo:d,backend:n});else if(ee().getBool("WEBGL_CONV_IM2COL")&&r.shape[0]===1)h=TS({x:r,filter:s,convInfo:d,backend:n});else{let f=new kS(d);h=n.runWebGLProgram(f,[r,s],"float32")}let m=ye({inputs:{x:h},backend:n,attrs:{shape:d.outShape}});return n.disposeIntermediateTensorInfo(h),m}var XX={kernelName:Fs,backendName:"webgl",kernelFunc:KX},YX=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.dataFormat==="channelsLast";this.userCode=` + `}};function ST({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let l=e.shape,u=a.texData.get(e.dataId),c=n.inChannels,p=l[0]*l[1]*l[2],d=n.outChannels,h=n.dataFormat==="channelsLast",m=!1,f=!1,g,y=[],b=(p===1||d===1)&&c>mT,x=l[2]%2!=0&&!!u.isPacked;if(b||!Z().getBool("WEBGL_LAZILY_UNPACK")||!Z().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!x){let v=h?l[0]*l[1]*l[2]:l[0]*l[2]*l[3],k=ye({inputs:{x:e},backend:a,attrs:{shape:[1,v,n.inChannels]}}),w=ye({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),S=Rm({a:k,b:w,transposeA:m,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=ye({inputs:{x:S},backend:a,attrs:{shape:n.outShape}}),y.push(k),y.push(w),y.push(S)}else{let v=h?l[0]*l[1]*(l[2]+1):l[0]*l[2]*(l[3]+1),k={dataId:e.dataId,shape:[1,v,n.inChannels],dtype:e.dtype},w=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,I.assert(_m(u.shape,k.shape),()=>`packed reshape ${u.shape} to ${k.shape} isn't free`);let S=ye({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});y.push(S);let A=Rm({a:k,b:S,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),F=a.texData.get(A.dataId);I.assert(F.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=w,F.shape=n.outShape,g=Gn({inputs:{x:A},backend:a}),g.shape=n.outShape,y.push(A)}for(let v of y)a.disposeIntermediateTensorInfo(v);return g}function CT({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let{filterWidth:l,filterHeight:u,inChannels:c,outWidth:p,outHeight:d,dataFormat:h}=n,m=h==="channelsLast",f=l*u*c,g=d*p,y=[f,g],b=!0,x=!1,v=[],k=ye({inputs:{x:e},backend:a,attrs:{shape:e.shape.slice(1)}}),w=ye({inputs:{x:t},backend:a,attrs:{shape:[1,f,I.sizeFromShape(t.shape)/f]}});v.push(k),v.push(w);let S=new C7(y,k.shape,n),A=a.runWebGLProgram(S,[k],"float32"),F=ye({inputs:{x:A},backend:a,attrs:{shape:[1,y[0],y[1]]}});v.push(A),v.push(F);let D=r!=null,R=s!=null,L=o==="leakyrelu",W=o?Dm(o,!0):null,U=new lT(F.shape,w.shape,[1,g,n.outChannels],b,x,D,W,R,L),G=[F,w];if(r&&G.push(r),R&&G.push(s),L){let Q=a.makeTensorInfo([],"float32",I.createScalarValue(i,"float32"));G.push(Q),v.push(Q)}let X=a.runWebGLProgram(U,G,"float32"),j=m?[1,d,p,n.outChannels]:[1,n.outChannels,d,p],te=ye({inputs:{x:X},backend:a,attrs:{shape:j}});v.push(X);for(let Q of v)a.disposeIntermediateTensorInfo(Q);return te}function A7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:c}=a,p=E.convertConv2DDataFormat(l),d=E.computeConv2DInfo(r.shape,s.shape,i,u,o,c,!1,p),h;if(d.filterHeight===1&&d.filterWidth===1&&d.dilationHeight===1&&d.dilationWidth===1&&d.strideHeight===1&&d.strideWidth===1&&(d.padInfo.type==="SAME"||d.padInfo.type==="VALID"))h=ST({x:r,filter:s,convInfo:d,backend:n});else if(Z().getBool("WEBGL_CONV_IM2COL")&&r.shape[0]===1)h=CT({x:r,filter:s,convInfo:d,backend:n});else{let f=new TT(d);h=n.runWebGLProgram(f,[r,s],"float32")}let m=ye({inputs:{x:h},backend:n,attrs:{shape:d.outShape}});return n.disposeIntermediateTensorInfo(h),m}var F7={kernelName:_s,backendName:"webgl",kernelFunc:A7},_7=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.dataFormat==="channelsLast";this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -2208,15 +2208,15 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } setOutput(dotProd); } - `}},JX=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dataFormat==="channelsLast",i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=s?1:2,c=s?2:3,u=s?3:1;this.userCode=` + `}},E7=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dataFormat==="channelsLast",i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=s?1:2,u=s?2:3,c=s?3:1;this.userCode=` const ivec2 pads = ivec2(${i}, ${o}); void main() { ivec4 coords = getOutputCoords(); int batch = coords[0]; - int d1 = coords[${u}]; + int d1 = coords[${c}]; - ivec2 dyCorner = ivec2(coords[${l}], coords[${c}]) - pads; + ivec2 dyCorner = ivec2(coords[${l}], coords[${u}]) - pads; int dyRCorner = dyCorner.x; int dyCCorner = dyCorner.y; @@ -2261,7 +2261,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } setOutput(dotProd); } - `}},QX=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.padInfo.front,s=e.padInfo.top,i=e.padInfo.left;this.userCode=` + `}},$7=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.padInfo.front,s=e.padInfo.top,i=e.padInfo.left;this.userCode=` void main() { ivec5 coords = getOutputCoords(); int wF = coords.x; @@ -2303,8 +2303,8 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } setOutput(dotProd); } - `}},ZX=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,c=a-1-e.padInfo.left;this.userCode=` - const ivec3 pads = ivec3(${o}, ${l}, ${c}); + `}},D7=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,u=a-1-e.padInfo.left;this.userCode=` + const ivec3 pads = ivec3(${o}, ${l}, ${u}); void main() { ivec5 coords = getOutputCoords(); @@ -2360,12 +2360,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } setOutput(dotProd); } - `}};function eY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:c,filterShape:u}=a,p=_.convertConv2DDataFormat(l),d=_.computeConv2DInfo(r.shape,u,i,1,o,c,!1,p),h=new YX(d);return n.runWebGLProgram(h,[r,s],"float32")}var tY={kernelName:md,backendName:"webgl",kernelFunc:eY};function nY(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:c,dimRoundingMode:u}=a,p=_.convertConv2DDataFormat(c),d=_.computeConv2DInfo(i,s.shape,o,1,l,u,!1,p),h=new JX(d);return n.runWebGLProgram(h,[r,s],"float32")}var aY={kernelName:As,backendName:"webgl",kernelFunc:nY};function rY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,c=_.computeConv3DInfo(r.shape,s.shape,i,l,o),u=new jX(c);return n.runWebGLProgram(u,[r,s],"float32")}var sY={kernelName:Zu,backendName:"webgl",kernelFunc:rY};function iY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,filterShape:l}=a,c=_.computeConv3DInfo(r.shape,l,i,1,o),u=new QX(c);return n.runWebGLProgram(u,[r,s],"float32")}var oY={kernelName:fd,backendName:"webgl",kernelFunc:iY};function lY(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{pad:i,strides:o,inputShape:l}=a,c=_.computeConv3DInfo(l,s.shape,o,1,i),u=new ZX(c);return n.runWebGLProgram(u,[r,s],"float32")}var uY={kernelName:gd,backendName:"webgl",kernelFunc:lY},cY=rS+` + `}};function M7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:u,filterShape:c}=a,p=E.convertConv2DDataFormat(l),d=E.computeConv2DInfo(r.shape,c,i,1,o,u,!1,p),h=new _7(d);return n.runWebGLProgram(h,[r,s],"float32")}var R7={kernelName:fd,backendName:"webgl",kernelFunc:M7};function P7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:u,dimRoundingMode:c}=a,p=E.convertConv2DDataFormat(u),d=E.computeConv2DInfo(i,s.shape,o,1,l,c,!1,p),h=new E7(d);return n.runWebGLProgram(h,[r,s],"float32")}var O7={kernelName:Es,backendName:"webgl",kernelFunc:P7};function L7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=E.computeConv3DInfo(r.shape,s.shape,i,l,o),c=new S7(u);return n.runWebGLProgram(c,[r,s],"float32")}var z7={kernelName:Zu,backendName:"webgl",kernelFunc:L7};function W7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,filterShape:l}=a,u=E.computeConv3DInfo(r.shape,l,i,1,o),c=new $7(u);return n.runWebGLProgram(c,[r,s],"float32")}var B7={kernelName:gd,backendName:"webgl",kernelFunc:W7};function V7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{pad:i,strides:o,inputShape:l}=a,u=E.computeConv3DInfo(l,s.shape,o,1,i),c=new D7(u);return n.runWebGLProgram(c,[r,s],"float32")}var U7={kernelName:yd,backendName:"webgl",kernelFunc:V7},G7=oT+` return cos(x); -`,pY=Ke({opSnippet:cY}),dY={kernelName:$s,backendName:"webgl",kernelFunc:pY},hY=` +`,H7=Xe({opSnippet:G7}),j7={kernelName:$s,backendName:"webgl",kernelFunc:H7},q7=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; -`,mY=Ke({opSnippet:hY}),fY={kernelName:Mo,backendName:"webgl",kernelFunc:mY},gY=class{constructor(e,t,n,a,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[s,i,o,l]=e,[c]=t,[u,p]=n;this.outputShape=[c,u,p,l];let d=a==="bilinear"?1:0,[h,m]=[`${i-1}.0`,`${o-1}.0`],[f,g,y]=u>1?[`${(i-1)/(u-1)}`,"(y2-y1) * height_ratio",`y1*${h} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${h}`],[b,x,v]=p>1?[`${(o-1)/(p-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` +`,X7=Xe({opSnippet:q7}),K7={kernelName:Ro,backendName:"webgl",kernelFunc:X7},Y7=class{constructor(e,t,n,a,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[s,i,o,l]=e,[u]=t,[c,p]=n;this.outputShape=[u,c,p,l];let d=a==="bilinear"?1:0,[h,m]=[`${i-1}.0`,`${o-1}.0`],[f,g,y]=c>1?[`${(i-1)/(c-1)}`,"(y2-y1) * height_ratio",`y1*${h} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${h}`],[b,x,v]=p>1?[`${(o-1)/(p-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` const float height_ratio = float(${f}); const float width_ratio = float(${b}); void main() { @@ -2426,21 +2426,21 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam setOutput(newValue); } } - `}},yY=e=>{let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:c}=a,u=new gY(r.shape,s.shape,o,l,c);return n.runWebGLProgram(u,[r,s,i],"float32")},bY={kernelName:Po,backendName:"webgl",kernelFunc:yY},CS=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=e;let a=e.length,r=t?"0.0":`getX(${NS(a,"coords")})`,s=e[e.length-1],i="",o="";t?(i=n?`end != ${s-1}`:"end != 0",o=n?"end + 1":"end - 1"):(i=n?`end + pow2 < ${s}`:"end >= pow2",o=n?"end + pow2":"end - pow2"),this.userCode=` + `}},J7=e=>{let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,c=new Y7(r.shape,s.shape,o,l,u);return n.runWebGLProgram(c,[r,s,i],"float32")},Q7={kernelName:Po,backendName:"webgl",kernelFunc:J7},_T=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=e;let a=e.length,r=t?"0.0":`getX(${AT(a,"coords")})`,s=e[e.length-1],i="",o="";t?(i=n?`end != ${s-1}`:"end != 0",o=n?"end + 1":"end - 1"):(i=n?`end + pow2 < ${s}`:"end >= pow2",o=n?"end + pow2":"end - pow2"),this.userCode=` uniform float index; void main() { - ${dt(a)} coords = getOutputCoords(); - int end = ${SS(a,"coords")}; + ${ht(a)} coords = getOutputCoords(); + int end = ${FT(a,"coords")}; float val = ${r}; int pow2 = int(pow(2.0, index)); if (${i}) { int idx = ${o}; - ${SS(a,"coords")} = idx; - val += getX(${NS(a,"coords")}); + ${FT(a,"coords")} = idx; + val += getX(${AT(a,"coords")}); } setOutput(val); } - `}getCustomSetupFunc(e){return(t,n)=>{this.index==null&&(this.index=t.getUniformLocation(n,"index")),t.gl.uniform1f(this.index,e)}}};function NS(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.x, ${t}.y`;if(e===3)return`${t}.x, ${t}.y, ${t}.z`;if(e===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function SS(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function xY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length,c=_.getAxesPermutation([s],l),u=r;c!=null&&(u=Fn({inputs:{x:r},backend:n,attrs:{perm:c}}));let p=_.getInnerMostAxes(1,l)[0];if(p!==l-1)throw new Error(`WebGL cumsum shader expects an inner-most axis=${r.shape.length-1} but got axis=${s}`);let d=u.shape[p],h=Gn({inputs:{x:u},backend:n});for(let m=0;m<=Math.ceil(Math.log2(d))-1;m++){let f=new CS(u.shape,!1,o),g=f.getCustomSetupFunc(m),y=h;h=n.runWebGLProgram(f,[h],h.dtype,g),n.disposeIntermediateTensorInfo(y)}if(i){let m=new CS(u.shape,i,o),f=h;h=n.runWebGLProgram(m,[h],h.dtype),n.disposeIntermediateTensorInfo(f)}if(c!=null){let m=_.getUndoAxesPermutation(c),f=Fn({inputs:{x:h},backend:n,attrs:{perm:m}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(u),f}return h}var vY={kernelName:Ds,backendName:"webgl",kernelFunc:xY};function wY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i,binaryOutput:o}=a;if(r.shape.length===1){let l=n.readSync(r.dataId),c=n.readSync(s.dataId),u=HN(l,c,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}else if(r.shape.length===2){let l=n.bufferSync(r),c=n.bufferSync(s),u=Yq(l,c,i,o);return n.makeTensorInfo(u.shape,s.dtype,u.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${r.shape.length}.`)}var kY={kernelName:yd,backendName:"webgl",kernelFunc:wY},IY=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=` + `}getCustomSetupFunc(e){return(t,n)=>{this.index==null&&(this.index=t.getUniformLocation(n,"index")),t.gl.uniform1f(this.index,e)}}};function AT(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.x, ${t}.y`;if(e===3)return`${t}.x, ${t}.y, ${t}.z`;if(e===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function FT(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function Z7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length,u=E.getAxesPermutation([s],l),c=r;u!=null&&(c=_n({inputs:{x:r},backend:n,attrs:{perm:u}}));let p=E.getInnerMostAxes(1,l)[0];if(p!==l-1)throw new Error(`WebGL cumsum shader expects an inner-most axis=${r.shape.length-1} but got axis=${s}`);let d=c.shape[p],h=Gn({inputs:{x:c},backend:n});for(let m=0;m<=Math.ceil(Math.log2(d))-1;m++){let f=new _T(c.shape,!1,o),g=f.getCustomSetupFunc(m),y=h;h=n.runWebGLProgram(f,[h],h.dtype,g),n.disposeIntermediateTensorInfo(y)}if(i){let m=new _T(c.shape,i,o),f=h;h=n.runWebGLProgram(m,[h],h.dtype),n.disposeIntermediateTensorInfo(f)}if(u!=null){let m=E.getUndoAxesPermutation(u),f=_n({inputs:{x:h},backend:n,attrs:{perm:m}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(c),f}return h}var eY={kernelName:Ds,backendName:"webgl",kernelFunc:Z7};function tY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i,binaryOutput:o}=a;if(r.shape.length===1){let l=n.readSync(r.dataId),u=n.readSync(s.dataId),c=X2(l,u,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,c)}else if(r.shape.length===2){let l=n.bufferSync(r),u=n.bufferSync(s),c=_8(l,u,i,o);return n.makeTensorInfo(c.shape,s.dtype,c.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${r.shape.length}.`)}var nY={kernelName:bd,backendName:"webgl",kernelFunc:tY},aY=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -2459,7 +2459,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam float result = ${this.getInputSamplingString()}; setOutput(result); } - `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}};function TY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockSize:s,dataFormat:i}=a;w.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],c=i==="NHWC"?r.shape[2]:r.shape[3],u=i==="NHWC"?r.shape[3]:r.shape[1],p=l*s,d=c*s,h=u/(s*s),m=i==="NHWC"?[o,p,d,h]:[o,h,p,d],f=new IY(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var NY={kernelName:Oo,backendName:"webgl",kernelFunc:TY},_S=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.inHeight,i=e.inWidth,o=e.padInfo.top,l=e.padInfo.left,c=e.strideHeight,u=e.strideWidth,p=e.dilationHeight,d=e.dilationWidth,h=e.filterHeight,m=e.filterWidth,f=e.outChannels/e.inChannels,g="",y="";n&&(a?g=`float activation(float a) { + `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}};function rY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockSize:s,dataFormat:i}=a;I.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],c=i==="NHWC"?r.shape[3]:r.shape[1],p=l*s,d=u*s,h=c/(s*s),m=i==="NHWC"?[o,p,d,h]:[o,h,p,d],f=new aY(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var sY={kernelName:Oo,backendName:"webgl",kernelFunc:rY},ET=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.inHeight,i=e.inWidth,o=e.padInfo.top,l=e.padInfo.left,u=e.strideHeight,c=e.strideWidth,p=e.dilationHeight,d=e.dilationWidth,h=e.filterHeight,m=e.filterWidth,f=e.outChannels/e.inChannels,g="",y="";n&&(a?g=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?g=`float activation(float a) { @@ -2472,7 +2472,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam `,y="result = activation(result);");let b=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),a&&this.variableNames.push("preluActivationWeights"),r&&this.variableNames.push("leakyreluAlpha"),this.userCode=` ${g} - const ivec2 strides = ivec2(${c}, ${u}); + const ivec2 strides = ivec2(${u}, ${c}); const ivec2 pads = ivec2(${o}, ${l}); void main() { @@ -2515,24 +2515,24 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam ${y} setOutput(result); } - `}},ES=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.outShape;let s=e.inHeight,i=e.inWidth,o=e.padInfo.top,l=e.padInfo.left,c=e.strideHeight,u=e.strideWidth,p=e.dilationHeight,d=e.dilationWidth,h=e.filterHeight,m=e.filterWidth,f=m,g="int xR; int xC; int xCOffset;";for(let v=0;v= 0 && xR < ${s} && xCOffset >= 0 && xCOffset < ${i}) { - xTexelR${v}C${T} = getX(batch, xR, xCOffset, d1); + xTexelR${v}C${w} = getX(batch, xR, xCOffset, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if(xCOffset + 1 >= ${i}) { - xTexelR${v}C${T}.zw = vec2(0.); + xTexelR${v}C${w}.zw = vec2(0.); } } else { - xTexelR${v}C${T} = vec4(0.); + xTexelR${v}C${w} = vec4(0.); } xCOffset = xC + 1 - 2; @@ -2545,96 +2545,96 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam previous.zw = vec2(0.); } - xR${v}C${T} = vec4(previous.zw, xTexelR${v}C${T}.xy); + xR${v}C${w} = vec4(previous.zw, xTexelR${v}C${w}.xy); } else { - xR${v}C${T} = vec4(0, 0, xTexelR${v}C${T}.xy); + xR${v}C${w} = vec4(0, 0, xTexelR${v}C${w}.xy); } `:g+=` if(xR >= 0 && xR < ${s} && xC >= 0 && xC < ${i}) { - xTexelR${v}C${T} = getX(batch, xR, xC, d1); + xTexelR${v}C${w} = getX(batch, xR, xC, d1); } else { - xTexelR${v}C${T} = vec4(0.); + xTexelR${v}C${w} = vec4(0.); } - xR${v}C${T} = xTexelR${v}C${T}; - `,T+1= 0 && xR < ${s} && xCOffset >= 0 && xCOffset < ${i}) { - xTexelR${v}C${T+2} = getX(batch, xR, xCOffset, d1); + xTexelR${v}C${w+2} = getX(batch, xR, xCOffset, d1); } `,d>1&&(g+=` xCOffset -= 2; if(xR >= 0 && xR < ${s} && xCOffset >= 0 && xCOffset < ${i}) { - xTexelR${v}C${T} = getX(batch, xR, xCOffset, d1); + xTexelR${v}C${w} = getX(batch, xR, xCOffset, d1); } else { - xTexelR${v}C${T} = vec4(0.); + xTexelR${v}C${w} = vec4(0.); } `),g+=` - xR${v}C${T+1} = vec4( - xTexelR${v}C${T}.zw, xTexelR${v}C${T+2}.xy); + xR${v}C${w+1} = vec4( + xTexelR${v}C${w}.zw, xTexelR${v}C${w+2}.xy); `):g+=` xCOffset = xC + ${S}; if(xR >= 0 && xR < ${s} && xCOffset >= 0 && xCOffset < ${i}) { - xTexelR${v}C${T+2} = getX(batch, xR, xCOffset, d1); + xTexelR${v}C${w+2} = getX(batch, xR, xCOffset, d1); } - xR${v}C${T+1} = xTexelR${v}C${T+2}; - `}}else T= 0 && xR < ${s}) { `,l%2==1?(g+=` - xCOffset = xC + 1 - ${u}; + xCOffset = xC + 1 - ${c}; if(xCOffset >= 0 && xCOffset < ${i}) { - xTexelR${v}C${T} = getX(batch, xR, xCOffset, d1); + xTexelR${v}C${w} = getX(batch, xR, xCOffset, d1); } else { - xTexelR${v}C${T} = vec4(0.); + xTexelR${v}C${w} = vec4(0.); } if(xC + 1 >= 0 && xC + 1 < ${i}) { - xTexelR${v}C${T+2} = getX(batch, xR, xC + 1, d1); + xTexelR${v}C${w+2} = getX(batch, xR, xC + 1, d1); } else { - xTexelR${v}C${T+2} = vec4(0.); + xTexelR${v}C${w+2} = vec4(0.); } - xR${v}C${T} = vec4( - xTexelR${v}C${T}.zw, xTexelR${v}C${T+2}.zw); - `,T+1= 0 && xCOffset < ${i}) { final = getX(batch, xR, xCOffset, d1); } - xR${v}C${T+1} = vec4(xTexelR${v}C${T+2}.xy, final.xy); + xR${v}C${w+1} = vec4(xTexelR${v}C${w+2}.xy, final.xy); `)):(g+=` if(xC >= 0 && xC < ${i}) { - xTexelR${v}C${T} = getX(batch, xR, xC, d1); + xTexelR${v}C${w} = getX(batch, xR, xC, d1); } else { - xTexelR${v}C${T} = vec4(0.); + xTexelR${v}C${w} = vec4(0.); } - xCOffset = xC + ${u}; + xCOffset = xC + ${c}; if(xCOffset >= 0 && xCOffset < ${i}) { - xTexelR${v}C${T+2} = getX(batch, xR, xCOffset, d1); + xTexelR${v}C${w+2} = getX(batch, xR, xCOffset, d1); } else { - xTexelR${v}C${T+2} = vec4(0.); + xTexelR${v}C${w+2} = vec4(0.); } - xR${v}C${T} = vec4( - xTexelR${v}C${T}.xy, xTexelR${v}C${T+2}.xy); - `,T+1`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=_.computeConv2DInfo(r.shape,s.shape,i,u,o,c,!0),d;return ee().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels==1?d=new ES(p):d=new _S(p),n.runWebGLProgram(d,[r,s],"float32")}var CY={kernelName:Rs,backendName:"webgl",kernelFunc:SY},_Y=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.outChannels/e.inChannels;this.userCode=` + `}};function iY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l,dimRoundingMode:u}=a,c=l;c==null&&(c=[1,1]),I.assert(E.eitherStridesOrDilationsAreOne(i,c),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let p=E.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!0),d;return Z().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels==1?d=new $T(p):d=new ET(p),n.runWebGLProgram(d,[r,s],"float32")}var oY={kernelName:Ms,backendName:"webgl",kernelFunc:iY},lY=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.outChannels/e.inChannels;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -2703,7 +2703,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } setOutput(dotProd); } - `}},EY=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=t-1-e.padInfo.top,i=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=` + `}},uY=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=t-1-e.padInfo.top,i=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=` const ivec2 pads = ivec2(${s}, ${i}); void main() { @@ -2748,15 +2748,15 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } setOutput(dotProd); } - `}};function FY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:c,filterShape:u}=a,p=_.computeConv2DInfo(r.shape,u,i,o,l,c,!0),d=new _Y(p);return n.runWebGLProgram(d,[r,s],"float32")}var AY={kernelName:bd,backendName:"webgl",kernelFunc:FY};function $Y(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:c,inputShape:u}=a,p=_.computeConv2DInfo(u,s.shape,i,o,l,c,!0),d=new EY(p);return n.runWebGLProgram(d,[r,s],"float32")}var DY={kernelName:xd,backendName:"webgl",kernelFunc:$Y},RY=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` + `}};function cY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,filterShape:c}=a,p=E.computeConv2DInfo(r.shape,c,i,o,l,u,!0),d=new lY(p);return n.runWebGLProgram(d,[r,s],"float32")}var pY={kernelName:xd,backendName:"webgl",kernelFunc:cY};function dY(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,inputShape:c}=a,p=E.computeConv2DInfo(c,s.shape,i,o,l,u,!0),d=new uY(p);return n.runWebGLProgram(d,[r,s],"float32")}var hY={kernelName:vd,backendName:"webgl",kernelFunc:dY},mY=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` void main() { ivec2 coords = getOutputCoords(); float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; setOutput(val); } - `}};function MY(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=w.sizeFromShape(a.shape),i=ye({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new RY(s),l=n.runWebGLProgram(o,[i],i.dtype),c=ye({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),c}var PY={kernelName:vd,backendName:"webgl",kernelFunc:MY},OY=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:n,padInfo:a,strideHeight:r,strideWidth:s,filterHeight:i,filterWidth:o,dilationHeight:l,dilationWidth:c}=e,{top:u,left:p}=a;this.userCode=` + `}};function fY(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=I.sizeFromShape(a.shape),i=ye({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new mY(s),l=n.runWebGLProgram(o,[i],i.dtype),u=ye({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}var gY={kernelName:wd,backendName:"webgl",kernelFunc:fY},yY=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:n,padInfo:a,strideHeight:r,strideWidth:s,filterHeight:i,filterWidth:o,dilationHeight:l,dilationWidth:u}=e,{top:c,left:p}=a;this.userCode=` const ivec2 strides = ivec2(${r}, ${s}); - const ivec2 pads = ivec2(${u}, ${p}); + const ivec2 pads = ivec2(${c}, ${p}); const float neg_infinity = -3.4e38; void main() { @@ -2774,7 +2774,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam if (hIn >= 0 && hIn < ${t}) { for (int w = 0; w < ${o}; w++) { - int wIn = wBeg + w * ${c}; + int wIn = wBeg + w * ${u}; if (wIn >= 0 && wIn < ${n}) { float xVal = getX(batch, hIn, wIn, d1); @@ -2792,7 +2792,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam float result = curVal; setOutput(result); } - `}};function LY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,c=_.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),u,p=new OY(c);u=n.runWebGLProgram(p,[r,s],"float32");let d=ye({inputs:{x:u},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(u),d}var zY={kernelName:ec,backendName:"webgl",kernelFunc:LY},BY="return (x >= 0.0) ? x : (exp(x) - 1.0);",WY=` + `}};function bY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=E.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),c,p=new yY(u);c=n.runWebGLProgram(p,[r,s],"float32");let d=ye({inputs:{x:c},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(c),d}var xY={kernelName:ec,backendName:"webgl",kernelFunc:bY},vY="return (x >= 0.0) ? x : (exp(x) - 1.0);",wY=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -2801,27 +2801,27 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,VY=Ke({opSnippet:BY,packedOpSnippet:WY}),UY={kernelName:Lo,backendName:"webgl",kernelFunc:VY},GY="return (b >= 1.0) ? a : a * (b + 1.0);",HY=` +`,kY=Xe({opSnippet:vY,packedOpSnippet:wY}),IY={kernelName:Lo,backendName:"webgl",kernelFunc:kY},NY="return (b >= 1.0) ? a : a * (b + 1.0);",TY=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); -`,jY=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new cp(HY,a.shape,r.shape):new pu(GY,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},qY={kernelName:Id,backendName:"webgl",kernelFunc:jY},KY=` +`,SY=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=Z().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new dp(TY,a.shape,r.shape):new pu(NY,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},CY={kernelName:Nd,backendName:"webgl",kernelFunc:SY},AY=` return vec4(equal(a, b)); -`,XY="return float(a == b);",YY=rn({opSnippet:XY,packedOpSnippet:KY,dtype:"bool"}),JY={kernelName:Bo,backendName:"webgl",kernelFunc:YY},QY=` +`,FY="return float(a == b);",_Y=sn({opSnippet:FY,packedOpSnippet:AY,dtype:"bool"}),EY={kernelName:Wo,backendName:"webgl",kernelFunc:_Y},$Y=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. - float p = ${_.ERF_P}; - float a1 = ${_.ERF_A1}; - float a2 = ${_.ERF_A2}; - float a3 = ${_.ERF_A3}; - float a4 = ${_.ERF_A4}; - float a5 = ${_.ERF_A5}; + float p = ${E.ERF_P}; + float a1 = ${E.ERF_A1}; + float a2 = ${E.ERF_A2}; + float a3 = ${E.ERF_A3}; + float a4 = ${E.ERF_A4}; + float a5 = ${E.ERF_A5}; float sign = sign(x); x = abs(x); float t = 1.0 / (1.0 + p * x); return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x)); -`,ZY=Ke({opSnippet:QY}),e7={kernelName:zo,backendName:"webgl",kernelFunc:ZY},FS="return exp(x);",AS=Ke({opSnippet:FS,packedOpSnippet:FS,cpuKernelImpl:Zq}),t7={kernelName:Ps,backendName:"webgl",kernelFunc:AS};function Uv(e){let{inputs:t,attrs:n,backend:a}=e,{dim:r}=n,{input:s}=t,i=s.shape.length,o=s.shape.slice(),l=r;return r<0&&(w.assert(-(i+1)<=r,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+r+1),o.splice(l,0,1),ye({inputs:{x:s},backend:a,attrs:{shape:o}})}var n7={kernelName:Wo,backendName:"webgl",kernelFunc:Uv},$S="return exp(x) - 1.0;",a7=Ke({opSnippet:$S,packedOpSnippet:$S,cpuKernelImpl:e8}),r7={kernelName:Vo,backendName:"webgl",kernelFunc:a7},DS=class{constructor(e,t,n){this.variableNames=["real","imag"];let a=t[1];this.outputShape=t;let r=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,s=n?`${a}.0`:"1.0",i;if(e==="real")i="return real * expR - imag * expI;";else if(e==="imag")i="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` +`,DY=Xe({opSnippet:$Y}),MY={kernelName:zo,backendName:"webgl",kernelFunc:DY},DT="return exp(x);",MT=Xe({opSnippet:DT,packedOpSnippet:DT,cpuKernelImpl:D8}),RY={kernelName:Ps,backendName:"webgl",kernelFunc:MT};function Gv(e){let{inputs:t,attrs:n,backend:a}=e,{dim:r}=n,{input:s}=t,i=s.shape.length,o=s.shape.slice(),l=r;return r<0&&(I.assert(-(i+1)<=r,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+r+1),o.splice(l,0,1),ye({inputs:{x:s},backend:a,attrs:{shape:o}})}var PY={kernelName:Bo,backendName:"webgl",kernelFunc:Gv},RT="return exp(x) - 1.0;",OY=Xe({opSnippet:RT,packedOpSnippet:RT,cpuKernelImpl:M8}),LY={kernelName:Vo,backendName:"webgl",kernelFunc:OY},PT=class{constructor(e,t,n){this.variableNames=["real","imag"];let a=t[1];this.outputShape=t;let r=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,s=n?`${a}.0`:"1.0",i;if(e==="real")i="return real * expR - imag * expI;";else if(e==="imag")i="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` const float exponentMultiplier = ${r}; float unaryOpComplex(float real, float expR, float imag, float expI) { @@ -2854,13 +2854,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}};function RS(e,t,n){let a=n.texData.get(e.dataId),r=w.sizeFromShape(e.shape),s=e.shape[e.shape.length-1],i=r/s,o=ye({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,c=new DS("real",l,t),u=new DS("imag",l,t),p=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:l},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:l}],d=n.runWebGLProgram(c,p,"float32"),h=n.runWebGLProgram(u,p,"float32"),m=hs({inputs:{real:d,imag:h},backend:n});n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h);let f=ye({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function s7(e){let{inputs:t,backend:n}=e,{input:a}=t;return RS(a,!1,n)}var i7={kernelName:Td,backendName:"webgl",kernelFunc:s7},o7=class{constructor(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode=` + `}};function OT(e,t,n){let a=n.texData.get(e.dataId),r=I.sizeFromShape(e.shape),s=e.shape[e.shape.length-1],i=r/s,o=ye({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,u=new PT("real",l,t),c=new PT("imag",l,t),p=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:l},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:l}],d=n.runWebGLProgram(u,p,"float32"),h=n.runWebGLProgram(c,p,"float32"),m=hs({inputs:{real:d,imag:h},backend:n});n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h);let f=ye({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function zY(e){let{inputs:t,backend:n}=e,{input:a}=t;return OT(a,!1,n)}var WY={kernelName:Td,backendName:"webgl",kernelFunc:zY},BY=class{constructor(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode=` uniform float value; void main() { // Input can be obtained from uniform value. setOutput(value); } - `}getCustomSetupFunc(e){return(t,n)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}};function Gv(e){let{backend:t,attrs:n}=e,{shape:a,value:r}=n,{dtype:s}=n;if(s=s||w.inferDtype(r),s==="string"){let i=w.getArrayFromDType(s,w.sizeFromShape(a));return i.fill(r),t.makeTensorInfo(a,s,i)}else{let i=new o7(a,r),o=i.getCustomSetupFunc(r);return t.runWebGLProgram(i,[],s,o)}}var l7={kernelName:tc,backendName:"webgl",kernelFunc:Gv},u7=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e){return(t,n)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}};function Hv(e){let{backend:t,attrs:n}=e,{shape:a,value:r}=n,{dtype:s}=n;if(s=s||I.inferDtype(r),s==="string"){let i=I.getArrayFromDType(s,I.sizeFromShape(a));return i.fill(r),t.makeTensorInfo(a,s,i)}else{let i=new BY(a,r),o=i.getCustomSetupFunc(r);return t.runWebGLProgram(i,[],s,o)}}var VY={kernelName:tc,backendName:"webgl",kernelFunc:Hv},UY=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int x = coords[2]; @@ -2874,7 +2874,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } setOutput(outputValue); } - `}},c7={kernelName:Uo,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new u7(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},MS="return floor(x);",p7=Ke({opSnippet:MS,packedOpSnippet:MS,cpuKernelImpl:t8}),d7={kernelName:Os,backendName:"webgl",kernelFunc:p7},h7=` + `}},GY={kernelName:Uo,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new UY(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},LT="return floor(x);",HY=Xe({opSnippet:LT,packedOpSnippet:LT,cpuKernelImpl:R8}),jY={kernelName:Os,backendName:"webgl",kernelFunc:HY},qY=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -2884,7 +2884,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } else { return NAN; } -`,m7=` +`,XY=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); @@ -2905,7 +2905,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,f7=rn({opSnippet:h7,packedOpSnippet:m7,dtype:"int32"}),g7={kernelName:Ls,backendName:"webgl",kernelFunc:f7},y7=class{constructor(e){this.variableNames=["A"];let t=mn(),[n,a]=e;this.outputShape=e,this.userCode=` +`,KY=sn({opSnippet:qY,packedOpSnippet:XY,dtype:"int32"}),YY={kernelName:Ls,backendName:"webgl",kernelFunc:KY},JY=class{constructor(e){this.variableNames=["A"];let t=mn(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -2927,7 +2927,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam setOutput(floor(value * 255.0 + 0.5)); } - `}},b7=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=mn(),[n,a]=e;this.outputShape=e,this.userCode=` + `}},QY=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=mn(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -2961,7 +2961,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam ${t.output} = result; } - `}},v7={kernelName:Ld,backendName:"webgl",kernelFunc:x7},hu;function x7(e){let{inputs:t,backend:n,attrs:a}=e,{pixels:r}=t,{numChannels:s}=a,i=typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement,o=typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement,l=typeof ImageBitmap!="undefined"&&r instanceof ImageBitmap,[c,u]=i?[r.videoWidth,r.videoHeight]:[r.width,r.height],p=[u,c],d=[u,c,s];(o||i||l)&&(hu==null&&(hu=document.createElement("canvas").getContext("2d")),hu.canvas.width=c,hu.canvas.height=u,hu.drawImage(r,0,0,c,u),r=hu.canvas);let h=n.makeTensorInfo(p,"int32");n.texData.get(h.dataId).usage=na.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(h.dataId),r);let m=ee().getBool("WEBGL_PACK")?new b7(d):new y7(d),f=n.runWebGLProgram(m,[h],"int32");return n.disposeData(h.dataId),f}function w7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=_.convertConv2DDataFormat(u),g=_.computeConv2DInfo(r.shape,s.shape,l,p,c,d,!1,f),y,b=[];if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))y=IS({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(ee().getBool("WEBGL_CONV_IM2COL")&&r.shape[0]===1)y=TS({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let v=i!=null,N=o!=null,T=h==="leakyrelu",S=h?$m(h,!1):null,A=new kS(g,v,S,N,T),$=[r,s];if(i&&$.push(i),o&&$.push(o),T){let R=n.makeTensorInfo([],"float32",w.createScalarValue(m,"float32"));$.push(R),b.push(R)}y=n.runWebGLProgram(A,$,"float32")}let x=ye({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach(v=>n.disposeIntermediateTensorInfo(v)),x}var k7={kernelName:yi,backendName:"webgl",kernelFunc:w7};function I7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dilations:u,dimRoundingMode:p,activation:d,leakyreluAlpha:h}=a,m=[],f=u;f==null&&(f=[1,1]),w.assert(_.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=_.computeConv2DInfo(r.shape,s.shape,l,f,c,p,!0),y=ee().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels==1,b=d?$m(d,y):null,x=[r,s],v=i!=null,N=o!=null,T=d==="leakyrelu";if(v&&x.push(i),N&&x.push(o),T){let $=n.makeTensorInfo([],"float32",w.createScalarValue(h,"float32"));x.push($),m.push($)}let S;y?S=new ES(g,v,b,N,T):S=new _S(g,v,b,N,T);let A=n.runWebGLProgram(S,x,"float32");return m.forEach($=>n.disposeIntermediateTensorInfo($)),A}var T7={kernelName:bi,backendName:"webgl",kernelFunc:I7},N7=class{constructor(e,t,n){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=n;let a=dt(t.length),r=dt(n.length),s=this.sliceDim>1?"strides[j]":"strides";this.userCode=` + `}},e9={kernelName:Wd,backendName:"webgl",kernelFunc:ZY},hu;function ZY(e){let{inputs:t,backend:n,attrs:a}=e,{pixels:r}=t,{numChannels:s}=a,i=typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement,o=typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement,[l,u]=i?[r.videoWidth,r.videoHeight]:[r.width,r.height],c=[u,l],p=[u,l,s];(o||i)&&(hu==null&&(hu=document.createElement("canvas").getContext("2d")),hu.canvas.width=l,hu.canvas.height=u,hu.drawImage(r,0,0,l,u),r=hu.canvas);let d=n.makeTensorInfo(c,"int32");n.texData.get(d.dataId).usage=na.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(d.dataId),r);let h=Z().getBool("WEBGL_PACK")?new QY(p):new JY(p),m=n.runWebGLProgram(h,[d],"int32");return n.disposeData(d.dataId),m}function t9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=E.convertConv2DDataFormat(c),g=E.computeConv2DInfo(r.shape,s.shape,l,p,u,d,!1,f),y,b=[];if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))y=ST({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(Z().getBool("WEBGL_CONV_IM2COL")&&r.shape[0]===1)y=CT({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let v=i!=null,k=o!=null,w=h==="leakyrelu",S=h?Dm(h,!1):null,A=new TT(g,v,S,k,w),F=[r,s];if(i&&F.push(i),o&&F.push(o),w){let D=n.makeTensorInfo([],"float32",I.createScalarValue(m,"float32"));F.push(D),b.push(D)}y=n.runWebGLProgram(A,F,"float32")}let x=ye({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach(v=>n.disposeIntermediateTensorInfo(v)),x}var n9={kernelName:yi,backendName:"webgl",kernelFunc:t9};function a9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:c,dimRoundingMode:p,activation:d,leakyreluAlpha:h}=a,m=[],f=c;f==null&&(f=[1,1]),I.assert(E.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=E.computeConv2DInfo(r.shape,s.shape,l,f,u,p,!0),y=Z().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels==1,b=d?Dm(d,y):null,x=[r,s],v=i!=null,k=o!=null,w=d==="leakyrelu";if(v&&x.push(i),k&&x.push(o),w){let F=n.makeTensorInfo([],"float32",I.createScalarValue(h,"float32"));x.push(F),m.push(F)}let S;y?S=new $T(g,v,b,k,w):S=new ET(g,v,b,k,w);let A=n.runWebGLProgram(S,x,"float32");return m.forEach(F=>n.disposeIntermediateTensorInfo(F)),A}var r9={kernelName:bi,backendName:"webgl",kernelFunc:a9},s9=class{constructor(e,t,n){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=n;let a=ht(t.length),r=ht(n.length),s=this.sliceDim>1?"strides[j]":"strides";this.userCode=` ${a} strides = ${a}(${this.strides}); void main() { ${r} coords = getOutputCoords(); @@ -2972,21 +2972,21 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } setOutput(getX(flattenIndex, coords[1])); } - `}};function S7(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=r.shape,i=s[s.length-1],[o,l,c,u]=_.prepareAndValidate(a,r),p=ye({inputs:{x:r},backend:n,attrs:{shape:[l,i]}}),d=ye({inputs:{x:a},backend:n,attrs:{shape:[w.sizeFromShape(a.shape)/c,c]}}),h=new N7(i,u,[l,c]),m=n.runWebGLProgram(h,[d,p],d.dtype),f=ye({inputs:{x:m},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(m),f}var C7={kernelName:Ho,backendName:"webgl",kernelFunc:S7},E7=class{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;let n=dt(this.rank),a=_7(e,2);this.userCode=` + `}};function i9(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=r.shape,i=s[s.length-1],[o,l,u,c]=E.prepareAndValidate(a,r),p=ye({inputs:{x:r},backend:n,attrs:{shape:[l,i]}}),d=ye({inputs:{x:a},backend:n,attrs:{shape:[I.sizeFromShape(a.shape)/u,u]}}),h=new s9(i,c,[l,u]),m=n.runWebGLProgram(h,[d,p],d.dtype),f=ye({inputs:{x:m},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(m),f}var o9={kernelName:Ho,backendName:"webgl",kernelFunc:i9},u9=class{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;let n=ht(this.rank),a=l9(e,2);this.userCode=` void main() { ${n} resRC = getOutputCoords(); setOutput(getA(${a})); } - `}};function _7(e,t){let n=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[];for(let r=0;rn.disposeIntermediateTensorInfo(N)),n.makeTensorInfo(c.outputShape,v.dtype,v.values)}let f=new E7(d.shape,m),g=n.runWebGLProgram(f,[d,h],d.dtype);p.push(g);let y=ye({inputs:{x:g},backend:n,attrs:{shape:c.outputShape}});return p.forEach(b=>n.disposeIntermediateTensorInfo(b)),y}var A7={kernelName:Go,backendName:"webgl",kernelFunc:F7},$7="return float(a > b);",D7=` + `}};function l9(e,t){let n=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[];for(let r=0;rn.disposeIntermediateTensorInfo(k)),n.makeTensorInfo(u.outputShape,v.dtype,v.values)}let f=new u9(d.shape,m),g=n.runWebGLProgram(f,[d,h],d.dtype);p.push(g);let y=ye({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return p.forEach(b=>n.disposeIntermediateTensorInfo(b)),y}var p9={kernelName:Go,backendName:"webgl",kernelFunc:c9},d9="return float(a > b);",h9=` return vec4(greaterThan(a, b)); -`,R7=rn({opSnippet:$7,packedOpSnippet:D7,cpuKernelImpl:a8,dtype:"bool"}),M7={kernelName:jo,backendName:"webgl",kernelFunc:R7},P7="return float(a >= b);",O7=` +`,m9=sn({opSnippet:d9,packedOpSnippet:h9,cpuKernelImpl:O8,dtype:"bool"}),f9={kernelName:jo,backendName:"webgl",kernelFunc:m9},g9="return float(a >= b);",y9=` return vec4(greaterThanEqual(a, b)); -`,L7=rn({opSnippet:P7,packedOpSnippet:O7,dtype:"bool"}),z7={kernelName:Bs,backendName:"webgl",kernelFunc:L7};function B7(e){let{inputs:t,backend:n}=e,{input:a}=t;return RS(a,!0,n)}var W7={kernelName:Nd,backendName:"webgl",kernelFunc:B7},V7="return float(!isnan(x) && !isinf(x));",U7=Ke({opSnippet:V7,dtype:"bool"}),G7={kernelName:qo,backendName:"webgl",kernelFunc:U7},H7="return float(isinf(x));",j7=Ke({opSnippet:H7,dtype:"bool"}),q7={kernelName:Ko,backendName:"webgl",kernelFunc:j7},K7="return float(isnan(x));",X7=Ke({opSnippet:K7,dtype:"bool"}),Y7={kernelName:Xo,backendName:"webgl",kernelFunc:X7},J7="return float(a < b);",Q7=` +`,b9=sn({opSnippet:g9,packedOpSnippet:y9,dtype:"bool"}),x9={kernelName:Ws,backendName:"webgl",kernelFunc:b9};function v9(e){let{inputs:t,backend:n}=e,{input:a}=t;return OT(a,!0,n)}var w9={kernelName:Sd,backendName:"webgl",kernelFunc:v9},k9="return float(!isnan(x) && !isinf(x));",I9=Xe({opSnippet:k9,dtype:"bool"}),N9={kernelName:qo,backendName:"webgl",kernelFunc:I9},T9="return float(isinf(x));",S9=Xe({opSnippet:T9,dtype:"bool"}),C9={kernelName:Xo,backendName:"webgl",kernelFunc:S9},A9="return float(isnan(x));",F9=Xe({opSnippet:A9,dtype:"bool"}),_9={kernelName:Ko,backendName:"webgl",kernelFunc:F9},E9="return float(a < b);",$9=` return vec4(lessThan(a, b)); -`,Z7=rn({opSnippet:J7,packedOpSnippet:Q7,cpuKernelImpl:r8,dtype:"bool"}),e9={kernelName:Yo,backendName:"webgl",kernelFunc:Z7},t9="return float(a <= b);",n9=` +`,D9=sn({opSnippet:E9,packedOpSnippet:$9,cpuKernelImpl:L8,dtype:"bool"}),M9={kernelName:Yo,backendName:"webgl",kernelFunc:D9},R9="return float(a <= b);",P9=` return vec4(lessThanEqual(a, b)); -`,a9=rn({opSnippet:t9,packedOpSnippet:n9,dtype:"bool"}),r9={kernelName:Jo,backendName:"webgl",kernelFunc:a9};function s9(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=s8(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var i9={kernelName:Cd,backendName:"webgl",kernelFunc:s9},o9=`if (x < 0.0) return NAN; - return log(x);`,l9=` +`,O9=sn({opSnippet:R9,packedOpSnippet:P9,dtype:"bool"}),L9={kernelName:Jo,backendName:"webgl",kernelFunc:O9};function z9(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=z8(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var W9={kernelName:Ad,backendName:"webgl",kernelFunc:z9},B9=`if (x < 0.0) return NAN; + return log(x);`,V9=` vec4 result = log(x); vec4 isNaN = vec4(lessThan(x, vec4(0.0))); result.r = isNaN.r == 1.0 ? NAN : result.r; @@ -2995,16 +2995,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam result.a = isNaN.a == 1.0 ? NAN : result.a; return result; -`,u9=Ke({opSnippet:o9,packedOpSnippet:l9,cpuKernelImpl:i8}),c9={kernelName:Us,backendName:"webgl",kernelFunc:u9},p9="return log(1.0 + x);",d9=Ke({opSnippet:p9}),h9={kernelName:Qo,backendName:"webgl",kernelFunc:d9},m9="return float(a >= 1.0 && b >= 1.0);",f9=` +`,U9=Xe({opSnippet:B9,packedOpSnippet:V9,cpuKernelImpl:W8}),G9={kernelName:Us,backendName:"webgl",kernelFunc:U9},H9="return log(1.0 + x);",j9=Xe({opSnippet:H9}),q9={kernelName:Qo,backendName:"webgl",kernelFunc:j9},X9="return float(a >= 1.0 && b >= 1.0);",K9=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); -`,g9=rn({opSnippet:m9,packedOpSnippet:f9,dtype:"bool"}),y9={kernelName:Zo,backendName:"webgl",kernelFunc:g9},b9="return float(!(x >= 1.0));",x9=Ke({opSnippet:b9}),v9={kernelName:nc,backendName:"webgl",kernelFunc:x9},w9="return float(a >= 1.0 || b >= 1.0);",k9=` +`,Y9=sn({opSnippet:X9,packedOpSnippet:K9,dtype:"bool"}),J9={kernelName:Zo,backendName:"webgl",kernelFunc:Y9},Q9="return float(!(x >= 1.0));",Z9=Xe({opSnippet:Q9}),eJ={kernelName:nc,backendName:"webgl",kernelFunc:Z9},tJ="return float(a >= 1.0 || b >= 1.0);",nJ=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); -`,I9=rn({opSnippet:w9,packedOpSnippet:k9,dtype:"bool"}),T9={kernelName:ac,backendName:"webgl",kernelFunc:I9},N9=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[];let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` +`,aJ=sn({opSnippet:tJ,packedOpSnippet:nJ,dtype:"bool"}),rJ={kernelName:ac,backendName:"webgl",kernelFunc:aJ},sJ=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[];let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3023,7 +3023,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam float val = x * ${o}; setOutput(val); } - `}},S9=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` + `}},iJ=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords.x; @@ -3085,7 +3085,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam vec4 result = xAtOutputCoords * ${o}; setOutput(result); } - `}},C9=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,c=ee().getBool("WEBGL_PACK_NORMALIZATION")?new S9(r.shape,s,i,o,l):new N9(r.shape,s,i,o,l);return n.runWebGLProgram(c,[r],r.dtype)},_9={kernelName:rc,backendName:"webgl",kernelFunc:C9},E9=class{constructor(e,t,n,a,r){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=a,this.beta=r,this.userCode=` + `}},oJ=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,u=Z().getBool("WEBGL_PACK_NORMALIZATION")?new iJ(r.shape,s,i,o,l):new sJ(r.shape,s,i,o,l);return n.runWebGLProgram(u,[r],r.dtype)},lJ={kernelName:rc,backendName:"webgl",kernelFunc:oJ},uJ=class{constructor(e,t,n,a,r){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=a,this.beta=r,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3140,14 +3140,14 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } setOutput(result); } - `}},F9=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:c,beta:u}=a,p=new E9(r.shape,o,l,c,u);return n.runWebGLProgram(p,[r,s,i],r.dtype)},A9={kernelName:_d,backendName:"webgl",kernelFunc:F9};function $9(e,t,n,a){let r=w.sizeFromShape(t),s=w.sizeFromShape(e.shape)/r,i=ye({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=ji(i,e.dtype,"max",a),l=ye({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function PS(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reductionIndices:s,keepDims:i}=a,o=r.shape.length,l=w.parseAxisParam(s,r.shape),c=l,u=_.getAxesPermutation(c,o),p=u!=null,d=n.shouldExecuteOnCPU([r]),h=r;if(p){if(d){let b=n.texData.get(h.dataId).values,x=new Array(o);for(let T=0;T{let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:u,beta:c}=a,p=new uJ(r.shape,o,l,u,c);return n.runWebGLProgram(p,[r,s,i],r.dtype)},pJ={kernelName:Fd,backendName:"webgl",kernelFunc:cJ};function dJ(e,t,n,a){let r=I.sizeFromShape(t),s=I.sizeFromShape(e.shape)/r,i=ye({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=ji(i,e.dtype,"max",a),l=ye({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function zT(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reductionIndices:s,keepDims:i}=a,o=r.shape.length,l=I.parseAxisParam(s,r.shape),u=l,c=E.getAxesPermutation(u,o),p=c!=null,d=n.shouldExecuteOnCPU([r]),h=r;if(p){if(d){let b=n.texData.get(h.dataId).values,x=new Array(o);for(let w=0;w`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l);if(u.filterWidth===1&&u.filterHeight===1&&w.arraysEqual(u.inShape,u.outShape))return Gn({inputs:{x:r},backend:n});let p=new pp(u,"max",!1);return n.runWebGLProgram(p,[r],r.dtype)}var z9={kernelName:js,backendName:"webgl",kernelFunc:L9};function B9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:c}=a,u=[1,1,1],p=_.computePool3DInfo(r.shape,s,i,u,o,c,l),d=new Bv(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var W9={kernelName:sc,backendName:"webgl",kernelFunc:B9},V9=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,n=e.strideWidth,a=e.dilationHeight,r=e.effectiveFilterHeight,s=e.effectiveFilterWidth,i=r-1-e.padInfo.top,o=s-1-e.padInfo.left,l=r*s-1;this.userCode=` +`,gJ=sn({opSnippet:mJ,packedOpSnippet:fJ,cpuKernelImpl:V8}),yJ={kernelName:Hs,backendName:"webgl",kernelFunc:gJ};function bJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;cp(r,"maxPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;I.assert(E.eitherStridesOrDilationsAreOne(i,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let c=E.computePool2DInfo(r.shape,s,i,u,o,l);if(c.filterWidth===1&&c.filterHeight===1&&I.arraysEqual(c.inShape,c.outShape))return Gn({inputs:{x:r},backend:n});let p=new hp(c,"max",!1);return n.runWebGLProgram(p,[r],r.dtype)}var xJ={kernelName:js,backendName:"webgl",kernelFunc:bJ};function vJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:u}=a,c=[1,1,1],p=E.computePool3DInfo(r.shape,s,i,c,o,u,l),d=new Bv(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var wJ={kernelName:sc,backendName:"webgl",kernelFunc:vJ},kJ=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,n=e.strideWidth,a=e.dilationHeight,r=e.effectiveFilterHeight,s=e.effectiveFilterWidth,i=r-1-e.padInfo.top,o=s-1-e.padInfo.left,l=r*s-1;this.userCode=` const ivec2 pads = ivec2(${i}, ${o}); void main() { @@ -3193,8 +3193,8 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } setOutput(dotProd); } - `}},U9=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.dilationDepth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,c=e.effectiveFilterWidth,u=o-1-e.padInfo.front,p=l-1-e.padInfo.top,d=c-1-e.padInfo.left,h=o*l*c-1;this.userCode=` - const ivec3 pads = ivec3(${u}, ${p}, ${d}); + `}},IJ=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.dilationDepth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,u=e.effectiveFilterWidth,c=o-1-e.padInfo.front,p=l-1-e.padInfo.top,d=u-1-e.padInfo.left,h=o*l*u-1;this.userCode=` + const ivec3 pads = ivec3(${c}, ${p}, ${d}); void main() { ivec5 coords = getOutputCoords(); @@ -3230,7 +3230,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } int idyR = int(dyR); - for (int wC = 0; wC < ${c}; + for (int wC = 0; wC < ${u}; wC += ${i}) { float dyC = float(dyCCorner + wC) / ${a}.0; @@ -3247,8 +3247,8 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam // Get the current value, check it against the value from the // position matrix. int curPosValue = - wD * ${l} * ${c} + - wR * ${c} + wC; + wD * ${l} * ${u} + + wR * ${u} + wC; float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0); dotProd += dyValue * mask; @@ -3257,14 +3257,14 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam } setOutput(dotProd); } - `}};function G9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:c,dimRoundingMode:u}=a,p=[1,1,1],d=_.computePool3DInfo(i.shape,o,l,p,c,u),h=new Bv(d,"max",!0),m=n.runWebGLProgram(h,[i],i.dtype),f=new U9(d),g=n.runWebGLProgram(f,[r,m],i.dtype);return n.disposeIntermediateTensorInfo(m),g}var H9={kernelName:Fd,backendName:"webgl",kernelFunc:G9};function j9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;lp([s,i],"maxPoolGrad");let{filterSize:l,strides:c,pad:u,dimRoundingMode:p}=a,d=_.computePool2DInfo(o.shape,l,c,1,u,p),h=!0,m=new pp(d,"max",h),f=n.runWebGLProgram(m,[o],o.dtype),g=new V9(d),y=n.runWebGLProgram(g,[r,f],o.dtype);return n.disposeIntermediateTensorInfo(f),y}var q9={kernelName:Ed,backendName:"webgl",kernelFunc:j9};function K9(e,t,n,a){let r=new pp(n,"max",!1),s=a.runWebGLProgram(r,[e],"float32");r=new pp(n,"max",!0,!0,t);let i=a.runWebGLProgram(r,[e],"float32");return[s,i]}var X9={kernelName:Ad,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;w.assert(a.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.shape.length}.`);let c=[1,1];w.assert(_.eitherStridesOrDilationsAreOne(s,c),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${c}'`);let u=_.computePool2DInfo(a.shape,r,s,c,i),[p,d]=K9(a,o,u,l);return[p,d]}};function Y9(e,t,n,a){let r=w.sizeFromShape(t),s=w.sizeFromShape(e.shape)/r,i=ye({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=ji(i,"float32","mean",a),l=ye({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var J9={kernelName:qs,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{keepDims:r,axis:s}=t,i=n,o=a.shape.length,l=w.parseAxisParam(s,a.shape),c=l,u=_.getAxesPermutation(c,o),p=u!=null,d=i.shouldExecuteOnCPU([a]),h=[],m=a;if(p){if(d){let x=i.texData.get(m.dataId).values,v=new Array(o);for(let S=0;S{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;I.assert(a.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.shape.length}.`);let u=[1,1];I.assert(E.eitherStridesOrDilationsAreOne(s,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`);let c=E.computePool2DInfo(a.shape,r,s,u,i),[p,d]=AJ(a,o,c,l);return[p,d]}};function _J(e,t,n,a){let r=I.sizeFromShape(t),s=I.sizeFromShape(e.shape)/r,i=ye({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=ji(i,"float32","mean",a),l=ye({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var EJ={kernelName:qs,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{keepDims:r,axis:s}=t,i=n,o=a.shape.length,l=I.parseAxisParam(s,a.shape),u=l,c=E.getAxesPermutation(u,o),p=c!=null,d=i.shouldExecuteOnCPU([a]),h=[],m=a;if(p){if(d){let x=i.texData.get(m.dataId).values,v=new Array(o);for(let S=0;Sc[0]+e[u]+c[1]);let a=e.length,r=dt(a),s=t.map(c=>c[0]).join(","),i=t.map((c,u)=>c[0]+e[u]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a),l=n==="reflect"?0:1;if(a===1){this.userCode=` +`,PJ=sn({opSnippet:MJ,packedOpSnippet:RJ,cpuKernelImpl:U8}),OJ={kernelName:Ks,backendName:"webgl",kernelFunc:PJ},LJ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map((u,c)=>u[0]+e[c]+u[1]);let a=e.length,r=ht(a),s=t.map(u=>u[0]).join(","),i=t.map((u,c)=>u[0]+e[c]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a),l=n==="reflect"?0:1;if(a===1){this.userCode=` int start = ${s}; int end = ${i}; @@ -3293,7 +3293,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam ${r} coords = outC - start; setOutput(getX(${o})); } - `}},sJ=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((h,m)=>h[0]+e[m]+h[1]);let a=e.length,r=dt(a),s=t.map(h=>h[0]).join(","),i=t.map((h,m)=>h[0]+e[m]).join(","),o=fn("rc",a),l=fn("source",a),c=`${o[a-1]} < ${this.outputShape[a-1]}`,u=a===1?"source":`vec2(${l.slice(-2).join()})`,p=n==="reflect"?0:1,d="";if(a===1){let h=` + `}},zJ=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((h,m)=>h[0]+e[m]+h[1]);let a=e.length,r=ht(a),s=t.map(h=>h[0]).join(","),i=t.map((h,m)=>h[0]+e[m]).join(","),o=fn("rc",a),l=fn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,c=a===1?"source":`vec2(${l.slice(-2).join()})`,p=n==="reflect"?0:1,d="";if(a===1){let h=` ${r} source = rc; if (source < start) { source = start * 2 - source - ${p}; @@ -3304,11 +3304,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam `;d=` ${r} rc = outputLoc; ${h} - result[0] = getChannel(getX(${l.join()}), ${u}); + result[0] = getChannel(getX(${l.join()}), ${c}); ${o[a-1]} += 1; - if(${c}) { + if(${u}) { ${h} - result[1] = getChannel(getX(${l.join()}), ${u}); + result[1] = getChannel(getX(${l.join()}), ${c}); } `}else{let h=` ${r} source = rc; @@ -3322,21 +3322,21 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam `;d=` ${r} rc = outputLoc; ${h} - result[0] = getChannel(getX(${l.join()}), ${u}); + result[0] = getChannel(getX(${l.join()}), ${c}); ${o[a-1]} += 1; - if(${c}) { + if(${u}) { ${h} - result[1] = getChannel(getX(${l.join()}), ${u}); + result[1] = getChannel(getX(${l.join()}), ${c}); } rc = outputLoc; ${o[a-2]} += 1; if(${o[a-2]} < ${this.outputShape[a-2]}) { ${h} - result[2] = getChannel(getX(${l.join()}), ${u}); + result[2] = getChannel(getX(${l.join()}), ${c}); ${o[a-1]} += 1; - if(${c}) { + if(${u}) { ${h} - result[3] = getChannel(getX(${l.join()}), ${u}); + result[3] = getChannel(getX(${l.join()}), ${c}); } } `}this.userCode=` @@ -3349,13 +3349,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam ${d} setOutput(result); } - `}},iJ=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new sJ(a.shape,r,s):new rJ(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},oJ={kernelName:ic,backendName:"webgl",kernelFunc:iJ},lJ=`if (b == 0.0) return NAN; - return mod(a, b);`,uJ=` + `}},WJ=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=Z().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new zJ(a.shape,r,s):new LJ(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},BJ={kernelName:ic,backendName:"webgl",kernelFunc:WJ},VJ=`if (b == 0.0) return NAN; + return mod(a, b);`,UJ=` vec4 result = mod(a, b); vec4 isNaN = vec4(equal(b, vec4(0.0))); - `+Am+` + `+$m+` return result; -`,cJ=rn({opSnippet:lJ,packedOpSnippet:uJ}),pJ={kernelName:el,backendName:"webgl",kernelFunc:cJ},dJ=class{constructor(e,t,n){this.variableNames=["probs"],this.outputShape=[e,n],this.userCode=` +`,GJ=sn({opSnippet:VJ,packedOpSnippet:UJ}),HJ={kernelName:el,backendName:"webgl",kernelFunc:GJ},jJ=class{constructor(e,t,n){this.variableNames=["probs"],this.outputShape=[e,n],this.userCode=` uniform float seed; void main() { @@ -3377,11 +3377,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,eX=Ke({opSnippet:ZK}),tX={kernelNam // If no other event happened, last event happened. setOutput(float(${t-1})); } - `}getCustomSetupFunc(e){return(t,n)=>{this.seedLoc==null&&(this.seedLoc=t.getUniformLocation(n,"seed")),t.gl.uniform1f(this.seedLoc,e)}}},hJ=` + `}getCustomSetupFunc(e){return(t,n)=>{this.seedLoc==null&&(this.seedLoc=t.getUniformLocation(n,"seed")),t.gl.uniform1f(this.seedLoc,e)}}},qJ=` if (a == b) { return 1.0; }; -return a / b;`,mJ=` +return a / b;`,XJ=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; @@ -3399,21 +3399,22 @@ return a / b;`,mJ=` } return result; -`,OS=rn({opSnippet:hJ,packedOpSnippet:mJ,checkOutOfBounds:!0}),fJ={kernelName:Ms,backendName:"webgl",kernelFunc:OS},LS="return a - b;",zS=rn({opSnippet:LS,packedOpSnippet:LS,supportsComplex:!0,cpuKernelImpl:y8}),gJ={kernelName:hi,backendName:"webgl",kernelFunc:zS};function BS(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=w.parseAxisParam([s],r.shape),o=PS({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=_.expandShapeToKeepDim(o.shape,i),c=ye({inputs:{x:o},backend:n,attrs:{shape:l}}),u=zS({inputs:{a:r,b:c},backend:n}),p=AS({inputs:{x:u},backend:n}),d=zv({inputs:{x:p},backend:n,attrs:{axis:i,keepDims:!1}}),h=ye({inputs:{x:d},backend:n,attrs:{shape:l}}),m=OS({inputs:{a:p,b:h},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),m}var yJ={kernelName:pi,backendName:"webgl",kernelFunc:BS};function bJ(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:BS({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),c=l.shape[0],u=l.shape[1],p=new dJ(c,u,s),d=p.getCustomSetupFunc(i),h=n.runWebGLProgram(p,[l],"int32",d);return o||n.disposeIntermediateTensorInfo(l),h}var xJ={kernelName:$d,backendName:"webgl",kernelFunc:bJ},WS="return -x;";function vJ(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=p8(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return ee().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new cu(a.shape,WS):r=new ds(a.shape,WS),n.runWebGLProgram(r,[a],a.dtype)}var wJ={kernelName:tl,backendName:"webgl",kernelFunc:vJ},kJ=Ya.nonMaxSuppressionV3Impl;function IJ(e){_.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,c=n.readSync(r.dataId),u=n.readSync(s.dataId),{selectedIndices:p}=kJ(c,u,i,o,l);return n.makeTensorInfo([p.length],"int32",new Int32Array(p))}var TJ={kernelName:al,backendName:"webgl",kernelFunc:IJ},NJ=Ya.nonMaxSuppressionV4Impl;function SJ(e){_.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:c}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d,validOutputs:h}=NJ(u,p,i,o,l,c);return[n.makeTensorInfo([d.length],"int32",new Int32Array(d)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var CJ={kernelName:rl,backendName:"webgl",kernelFunc:SJ},_J=Ya.nonMaxSuppressionV5Impl;function EJ(e){_.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:c}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),d=i,h=o,m=l,f=c,{selectedIndices:g,selectedScores:y}=_J(u,p,d,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([y.length],"float32",new Float32Array(y))]}var FJ={kernelName:sl,backendName:"webgl",kernelFunc:EJ},AJ=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` +`,WT=sn({opSnippet:qJ,packedOpSnippet:XJ,checkOutOfBounds:!0}),KJ={kernelName:Rs,backendName:"webgl",kernelFunc:WT},BT="return a - b;",VT=sn({opSnippet:BT,packedOpSnippet:BT,supportsComplex:!0,cpuKernelImpl:J8}),YJ={kernelName:hi,backendName:"webgl",kernelFunc:VT};function UT(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=I.parseAxisParam([s],r.shape),o=zT({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=E.expandShapeToKeepDim(o.shape,i),u=ye({inputs:{x:o},backend:n,attrs:{shape:l}}),c=VT({inputs:{a:r,b:u},backend:n}),p=MT({inputs:{x:c},backend:n}),d=Wv({inputs:{x:p},backend:n,attrs:{axis:i,keepDims:!1}}),h=ye({inputs:{x:d},backend:n,attrs:{shape:l}}),m=WT({inputs:{a:p,b:h},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),m}var JJ={kernelName:pi,backendName:"webgl",kernelFunc:UT};function QJ(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:UT({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],c=l.shape[1],p=new jJ(u,c,s),d=p.getCustomSetupFunc(i),h=n.runWebGLProgram(p,[l],"int32",d);return o||n.disposeIntermediateTensorInfo(l),h}var ZJ={kernelName:Dd,backendName:"webgl",kernelFunc:QJ},GT="return -x;";function eQ(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=H8(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return Z().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new cu(a.shape,GT):r=new ds(a.shape,GT),n.runWebGLProgram(r,[a],a.dtype)}var tQ={kernelName:tl,backendName:"webgl",kernelFunc:eQ},nQ=Ya.nonMaxSuppressionV3Impl;function aQ(e){E.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),c=n.readSync(s.dataId),{selectedIndices:p}=nQ(u,c,i,o,l);return n.makeTensorInfo([p.length],"int32",new Int32Array(p))}var rQ={kernelName:al,backendName:"webgl",kernelFunc:aQ},sQ=Ya.nonMaxSuppressionV4Impl;function iQ(e){E.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,c=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d,validOutputs:h}=sQ(c,p,i,o,l,u);return[n.makeTensorInfo([d.length],"int32",new Int32Array(d)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var oQ={kernelName:rl,backendName:"webgl",kernelFunc:iQ},lQ=Ya.nonMaxSuppressionV5Impl;function uQ(e){E.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,c=n.readSync(r.dataId),p=n.readSync(s.dataId),d=i,h=o,m=l,f=u,{selectedIndices:g,selectedScores:y}=lQ(c,p,d,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([y.length],"float32",new Float32Array(y))]}var cQ={kernelName:sl,backendName:"webgl",kernelFunc:uQ},pQ=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int index = round(getIndices(coords.x)); setOutput(mix(float(${a}), float(${n}), float(index == coords.y))); } - `}},$J=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{depth:s,onValue:i,offValue:o}=a,l=w.sizeFromShape(r.shape),c=new AJ(l,s,i,o),u=ye({inputs:{x:r},backend:n,attrs:{shape:[l]}}),p=n.runWebGLProgram(c,[u],r.dtype);n.disposeIntermediateTensorInfo(u);let d=[...r.shape,s],h=ye({inputs:{x:p},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(p),h},DJ={kernelName:Js,backendName:"webgl",kernelFunc:$J};function Lm(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=hp({inputs:{input:a},backend:n}),s=Lm({inputs:{x:r},backend:n}),i=Om({inputs:{input:a},backend:n}),o=Lm({inputs:{x:i},backend:n}),l=hs({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return Gv({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var RJ={kernelName:Il,backendName:"webgl",kernelFunc:Lm};function VS(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=hp({inputs:{input:a},backend:n}),s=VS({inputs:{x:r},backend:n}),i=Om({inputs:{input:a},backend:n}),o=Lm({inputs:{x:i},backend:n}),l=hs({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return Gv({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var MJ={kernelName:il,backendName:"webgl",kernelFunc:VS};function PJ(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return Uv({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(u=>{w.assertShapesMatch(s,u.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===u.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(u=>{let p=Uv({inputs:{input:u},backend:n,attrs:{dim:r}});return o.push(p),p}),c=wS({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(u=>n.disposeIntermediateTensorInfo(u)),c}var OJ={kernelName:ol,backendName:"webgl",kernelFunc:PJ},LJ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map((l,c)=>l[0]+e[c]+l[1]);let a=e.length,r=dt(a),s=t.map(l=>l[0]).join(","),i=t.map((l,c)=>l[0]+e[c]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a);if(a===1){this.userCode=` + `}},dQ=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{depth:s,onValue:i,offValue:o}=a,l=I.sizeFromShape(r.shape),u=new pQ(l,s,i,o),c=ye({inputs:{x:r},backend:n,attrs:{shape:[l]}}),p=n.runWebGLProgram(u,[c],r.dtype);n.disposeIntermediateTensorInfo(c);let d=[...r.shape,s],h=ye({inputs:{x:p},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(p),h},hQ={kernelName:Js,backendName:"webgl",kernelFunc:dQ};function zm(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=fp({inputs:{input:a},backend:n}),s=zm({inputs:{x:r},backend:n}),i=Lm({inputs:{input:a},backend:n}),o=zm({inputs:{x:i},backend:n}),l=hs({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return Hv({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var mQ={kernelName:Il,backendName:"webgl",kernelFunc:zm};function HT(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=fp({inputs:{input:a},backend:n}),s=HT({inputs:{x:r},backend:n}),i=Lm({inputs:{input:a},backend:n}),o=zm({inputs:{x:i},backend:n}),l=hs({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return Hv({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var fQ={kernelName:il,backendName:"webgl",kernelFunc:HT};function gQ(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return Gv({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{I.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),I.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(c=>{let p=Gv({inputs:{input:c},backend:n,attrs:{dim:r}});return o.push(p),p}),u=NT({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(c=>n.disposeIntermediateTensorInfo(c)),u}var yQ={kernelName:ol,backendName:"webgl",kernelFunc:gQ},bQ=class{constructor(e,t,n){this.variableNames=["x"],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=` int start = ${s}; int end = ${i}; + uniform float value; void main() { int outC = getOutputCoords(); if (outC < start || outC >= end) { - setOutput(float(${n})); + setOutput(value); } else { setOutput(getX(outC - start)); } @@ -3421,33 +3422,35 @@ return a / b;`,mJ=` `;return}this.userCode=` ${r} start = ${r}(${s}); ${r} end = ${r}(${i}); + uniform float value; void main() { ${r} outC = getOutputCoords(); if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) { - setOutput(float(${n})); + setOutput(value); } else { ${r} coords = outC - start; setOutput(getX(${o})); } } - `}},zJ=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((m,f)=>m[0]+e[f]+m[1]);let a=e.length,r=dt(a),s=t.map(m=>m[0]).join(","),i=t.map((m,f)=>m[0]+e[f]).join(","),o=fn("rc",a),l=fn("source",a),c=`${o[a-1]} < ${this.outputShape[a-1]}`,u=a===1?"source":`vec2(${l.slice(-2).join()})`,p=[`${r} rc = outputLoc;`,`${o[a-1]} += 1; - if(${c}) { + `}getCustomSetupFunc(e){return(t,n)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}},xQ=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((m,f)=>m[0]+e[f]+m[1]);let a=e.length,r=ht(a),s=t.map(m=>m[0]).join(","),i=t.map((m,f)=>m[0]+e[f]).join(","),o=fn("rc",a),l=fn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,c=a===1?"source":`vec2(${l.slice(-2).join()})`,p=[`${r} rc = outputLoc;`,`${o[a-1]} += 1; + if(${u}) { `,a===1?"":`} rc = outputLoc; ${o[a-2]} += 1; if(${o[a-2]} < ${this.outputShape[a-2]}) {`,a===1?"":` ${o[a-1]} += 1; - if(${c}) {`],d=a===1?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))",h="";for(let m=0,f=a===1?2:4;m= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))",h="";for(let m=0,f=a===1?2:4;m{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a,o=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new zJ(r.shape,s,i):new LJ(r.shape,s,i);return n.runWebGLProgram(o,[r],r.dtype)},BJ={kernelName:Qs,backendName:"webgl",kernelFunc:US},WJ=` + `}getCustomSetupFunc(e){return(t,n)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}},jT=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a,o=Z().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new xQ(r.shape,s,i):new bQ(r.shape,s,i),l=o.getCustomSetupFunc(i);return n.runWebGLProgram(o,[r],r.dtype,l)},vQ={kernelName:Qs,backendName:"webgl",kernelFunc:jT},wQ=` if(a < 0.0 && floor(b) < b){ return NAN; } @@ -3464,7 +3467,7 @@ return a / b;`,mJ=` } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); -`,VJ=` +`,kQ=` // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise. vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1))); vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1); @@ -3478,11 +3481,11 @@ return a / b;`,mJ=` result.a = isExpZero.a ? 1.0 : result.a; vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b)); - `+Am+` + `+$m+` return result; -`,UJ=rn({opSnippet:WJ,packedOpSnippet:VJ}),GJ={kernelName:Zs,backendName:"webgl",kernelFunc:UJ};function HJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=[],c=w.parseAxisParam(s,r.shape),u=c,p=_.getAxesPermutation(u,o),d=r;p!=null&&(d=Fn({inputs:{x:r},backend:n,attrs:{perm:p}}),u=_.getInnerMostAxes(u.length,o),l.push(d)),_.assertAxesAreInnerMostDims("prod",u,o);let h;if(n.shouldExecuteOnCPU([d])){let m=n.texData.get(d.dataId).values,{outVals:f,outShape:g,outDtype:y}=d8(d.shape,d.dtype,m,u);h=n.makeTensorInfo(g,y,f)}else{let[m,f]=_.computeOutAndReduceShapes(d.shape,u),g=w.sizeFromShape(f),y=ye({inputs:{x:d},backend:n,attrs:{shape:[-1,g]}}),b=Gd(r.dtype),x=ji(y,b,"prod",n);h=ye({inputs:{x},backend:n,attrs:{shape:m}}),l.push(y),l.push(x)}if(i){l.push(h);let m=_.expandShapeToKeepDim(h.shape,c);h=ye({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var jJ={kernelName:ll,backendName:"webgl",kernelFunc:HJ},GS=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=h8(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},qJ={kernelName:oc,backendName:"webgl",kernelFunc:GS},KJ="return 1.0 / x;",XJ=Ke({opSnippet:KJ}),YJ={kernelName:ul,backendName:"webgl",kernelFunc:XJ},JJ=Ra+` +`,IQ=sn({opSnippet:wQ,packedOpSnippet:kQ}),NQ={kernelName:Zs,backendName:"webgl",kernelFunc:IQ};function TQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=[],u=I.parseAxisParam(s,r.shape),c=u,p=E.getAxesPermutation(c,o),d=r;p!=null&&(d=_n({inputs:{x:r},backend:n,attrs:{perm:p}}),c=E.getInnerMostAxes(c.length,o),l.push(d)),E.assertAxesAreInnerMostDims("prod",c,o);let h;if(n.shouldExecuteOnCPU([d])){let m=n.texData.get(d.dataId).values,{outVals:f,outShape:g,outDtype:y}=j8(d.shape,d.dtype,m,c);h=n.makeTensorInfo(g,y,f)}else{let[m,f]=E.computeOutAndReduceShapes(d.shape,c),g=I.sizeFromShape(f),y=ye({inputs:{x:d},backend:n,attrs:{shape:[-1,g]}}),b=jd(r.dtype),x=ji(y,b,"prod",n);h=ye({inputs:{x},backend:n,attrs:{shape:m}}),l.push(y),l.push(x)}if(i){l.push(h);let m=E.expandShapeToKeepDim(h.shape,u);h=ye({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var SQ={kernelName:ll,backendName:"webgl",kernelFunc:TQ},qT=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=q8(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},CQ={kernelName:oc,backendName:"webgl",kernelFunc:qT},AQ="return 1.0 / x;",FQ=Xe({opSnippet:AQ}),_Q={kernelName:ul,backendName:"webgl",kernelFunc:FQ},EQ=Ra+` return (x < 0.0) ? 0.0 : x; -`,QJ=` +`,$Q=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -3492,9 +3495,9 @@ return a / b;`,mJ=` result.a = isNaN.a ? x.a : result.a; return result; -`,ZJ=Ke({opSnippet:JJ,packedOpSnippet:QJ}),eQ={kernelName:ti,backendName:"webgl",kernelFunc:ZJ},tQ=Ra+` +`,DQ=Xe({opSnippet:EQ,packedOpSnippet:$Q}),MQ={kernelName:ti,backendName:"webgl",kernelFunc:DQ},RQ=Ra+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,nQ=` +`,PQ=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -3504,10 +3507,10 @@ return a / b;`,mJ=` result.a = isNaN.a ? x.a : result.a; return result; -`,aQ=Ke({opSnippet:tQ,packedOpSnippet:nQ}),rQ={kernelName:ai,backendName:"webgl",kernelFunc:aQ},sQ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let c=[a&&t>1?i-1:i,a&&n>1?o-1:o],u=[a&&t>1?t-1:t,a&&n>1?n-1:n],p;r?p="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":p="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` +`,OQ=Xe({opSnippet:RQ,packedOpSnippet:PQ}),LQ={kernelName:ai,backendName:"webgl",kernelFunc:OQ},zQ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],c=[a&&t>1?t-1:t,a&&n>1?n-1:n],p;r?p="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":p="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( - ${c[0]/u[0]}, - ${c[1]/u[1]}); + ${u[0]/c[0]}, + ${u[1]/c[1]}); const vec2 inputShapeRC = vec2(${i}.0, ${o}.0); void main() { @@ -3537,11 +3540,11 @@ return a / b;`,mJ=` setOutput(newValue); } - `}},iQ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let c=[a&&t>1?i-1:i,a&&n>1?o-1:o],u=[a&&t>1?t-1:t,a&&n>1?n-1:n],p;r?p="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":p="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}},WQ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],c=[a&&t>1?t-1:t,a&&n>1?n-1:n],p;r?p="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":p="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( - ${c[0]/u[0]}, - ${c[1]/u[1]}, - ${c[1]/u[1]}); + ${u[0]/c[0]}, + ${u[1]/c[1]}, + ${u[1]/c[1]}); const vec3 inputShapeRC = vec3(${i}.0, ${o}.0, ${o}.0); @@ -3614,7 +3617,7 @@ return a / b;`,mJ=` setOutput(newValue); } - `}};function oQ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,c]=o,u=ee().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new iQ(r.shape,l,c,s,i):new sQ(r.shape,l,c,s,i);return n.runWebGLProgram(u,[r],"float32")}var lQ={kernelName:ni,backendName:"webgl",kernelFunc:oQ},uQ=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],c=o[0]/l[0],u=o[1]/l[1],p=1/c,d=1/u,h=Math.ceil(p)*2+2,m=Math.ceil(d)*2+2;this.userCode=` + `}};function BQ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,c=Z().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new WQ(r.shape,l,u,s,i):new zQ(r.shape,l,u,s,i);return n.runWebGLProgram(c,[r],"float32")}var VQ={kernelName:ni,backendName:"webgl",kernelFunc:BQ},UQ=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],c=o[1]/l[1],p=1/u,d=1/c,h=Math.ceil(p)*2+2,m=Math.ceil(d)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3624,8 +3627,8 @@ return a / b;`,mJ=` float accumulator = 0.0; - const float heightScale = float(${c}); - const float widthScale = float(${u}); + const float heightScale = float(${u}); + const float widthScale = float(${c}); const float invHeightScale = float(${p}); const float invWidthScale = float(${d}); @@ -3695,10 +3698,10 @@ return a / b;`,mJ=` setOutput(accumulator); } - `}};function cQ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new uQ(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var pQ={kernelName:Md,backendName:"webgl",kernelFunc:cQ},dQ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let c=[a&&t>1?i-1:i,a&&n>1?o-1:o],u=[a&&t>1?t-1:t,a&&n>1?n-1:n],p=a?"0.5":"0.0",d;r?d="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":d="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}};function GQ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new UQ(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var HQ={kernelName:Pd,backendName:"webgl",kernelFunc:GQ},jQ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],c=[a&&t>1?t-1:t,a&&n>1?n-1:n],p=a?"0.5":"0.0",d;r?d="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":d="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( - ${c[0]/u[0]}, - ${c[1]/u[1]}); + ${u[0]/c[0]}, + ${u[1]/c[1]}); const vec2 inputShapeRC = vec2(${i}.0, ${o}.0); void main() { @@ -3717,7 +3720,7 @@ return a / b;`,mJ=` setOutput(newValue); } - `}};function hQ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,c]=o,u=new dQ(r.shape,l,c,s,i);return n.runWebGLProgram(u,[r],r.dtype)}var mQ={kernelName:lc,backendName:"webgl",kernelFunc:hQ},fQ=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],c=o[0]/l[0],u=o[1]/l[1],p=1/c,d=1/u,h=Math.ceil(p)*2+2,m=Math.ceil(d)*2+2;this.userCode=` + `}};function qQ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,c=new jQ(r.shape,l,u,s,i);return n.runWebGLProgram(c,[r],r.dtype)}var XQ={kernelName:lc,backendName:"webgl",kernelFunc:qQ},KQ=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],c=o[1]/l[1],p=1/u,d=1/c,h=Math.ceil(p)*2+2,m=Math.ceil(d)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3727,8 +3730,8 @@ return a / b;`,mJ=` float accumulator = 0.0; - const float heightScale = float(${c}); - const float widthScale = float(${u}); + const float heightScale = float(${u}); + const float widthScale = float(${c}); const float invHeightScale = float(${p}); const float invWidthScale = float(${d}); @@ -3787,17 +3790,17 @@ return a / b;`,mJ=` setOutput(accumulator); } - `}};function gQ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new fQ(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var yQ={kernelName:Rd,backendName:"webgl",kernelFunc:gQ},bQ=class{constructor(e,t){this.variableNames=["x"];let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=e,n===1){this.userCode=` + `}};function YQ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new KQ(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var JQ={kernelName:Rd,backendName:"webgl",kernelFunc:YQ},QQ=class{constructor(e,t){this.variableNames=["x"];let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=e,n===1){this.userCode=` void main() { int coord = getOutputCoords(); setOutput(getX(${e[0]} - coord - 1)); } - `;return}let a=i=>t.indexOf(i)!==-1&&e[i]!==1?`${e[i]} - coords[${i}] - 1`:`coords[${i}]`,r=e.map((i,o)=>a(o)).join(","),s=dt(n);this.userCode=` + `;return}let a=i=>t.indexOf(i)!==-1&&e[i]!==1?`${e[i]} - coords[${i}] - 1`:`coords[${i}]`,r=e.map((i,o)=>a(o)).join(","),s=ht(n);this.userCode=` void main() { ${s} coords = getOutputCoords(); setOutput(getX(${r})); } - `}},xQ=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;let a=fn("rc",n),r=`${a[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${a[n-2]} + 1 < ${this.outputShape[n-2]}`,i=dt(n);n===1?this.userCode=` + `}},ZQ=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;let a=fn("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=` void main(){ int rc = getOutputCoords(); vec4 result = vec4(0.); @@ -3818,31 +3821,34 @@ return a / b;`,mJ=` result.g = ${l(a.slice())}; } if(${s}) { - result.b = ${c(a.slice())}; + result.b = ${u(a.slice())}; if(${r}) { - result.a = ${u(a.slice())}; + result.a = ${c(a.slice())}; } } setOutput(result); } - `;function o(h){return p(h)}function l(h){return h[n-1]="("+h[n-1]+" + 1)",p(h)}function c(h){return h[n-2]="("+h[n-2]+" + 1)",p(h)}function u(h){return h[n-1]="("+h[n-1]+" + 1)",h[n-2]="("+h[n-2]+" + 1)",p(h)}function p(h){let m=e.map((y,b)=>d(b,h)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function d(h,m){return t.indexOf(h)!==-1&&e[h]!==1?`${e[h]} - ${m[h]} - 1`:`${m[h]}`}}};function vQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=r.shape.length,o=w.parseAxisParam(s,r.shape);if(i===0)return Gn({inputs:{x:r},backend:n});let l=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new xQ(r.shape,o):new bQ(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var wQ={kernelName:ri,backendName:"webgl",kernelFunc:vQ},kQ=class{constructor(e,t,n,a){this.variableNames=["Image"],this.outputShape=[];let r=e[1],s=e[2],i=Math.sin(t).toFixed(3),o=Math.cos(t).toFixed(3);this.outputShape=e;let[l,c]=_.getImageCenter(a,r,s),u=l.toFixed(3),p=c.toFixed(3),d="";typeof n=="number"?d=`float outputValue = ${n.toFixed(2)};`:d=` - vec3 fill = vec3(${n.join(",")}); + `;function o(h){return p(h)}function l(h){return h[n-1]="("+h[n-1]+" + 1)",p(h)}function u(h){return h[n-2]="("+h[n-2]+" + 1)",p(h)}function c(h){return h[n-1]="("+h[n-1]+" + 1)",h[n-2]="("+h[n-2]+" + 1)",p(h)}function p(h){let m=e.map((y,b)=>d(b,h)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function d(h,m){return t.indexOf(h)!==-1&&e[h]!==1?`${e[h]} - ${m[h]} - 1`:`${m[h]}`}}};function eZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=r.shape.length,o=I.parseAxisParam(s,r.shape);if(i===0)return Gn({inputs:{x:r},backend:n});let l=Z().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new ZQ(r.shape,o):new QQ(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var tZ={kernelName:ri,backendName:"webgl",kernelFunc:eZ},nZ=class{constructor(e,t){this.variableNames=["Image"],this.outputShape=[];let n=e[1],a=e[2];this.outputShape=e;let r="";typeof t=="number"?r=`float outputValue = ${t.toFixed(2)};`:r=` + vec3 fill = vec3(${t.join(",")}); float outputValue = fill[coords[3]];`,this.userCode=` + uniform vec4 params; void main() { ivec4 coords = getOutputCoords(); int x = coords[2]; int y = coords[1]; - float coordXFloat = (float(x) - ${u}) * ${o} - (float(y) - ${p}) * ${i}; - float coordYFloat = (float(x) - ${u}) * ${i} + (float(y) - ${p}) * ${o}; - int coordX = int(round(coordXFloat + ${u})); - int coordY = int(round(coordYFloat + ${p})); - ${d} - if(coordX >= 0 && coordX < ${s} && coordY >= 0 && coordY < ${r}) { + float coordXFloat = (float(x) - params[0]) * params[3] - + (float(y) - params[1]) * params[2]; + float coordYFloat = (float(x) - params[0]) * params[2] + + (float(y) - params[1]) * params[3]; + int coordX = int(round(coordXFloat + params[0])); + int coordY = int(round(coordYFloat + params[1])); + ${r} + if(coordX >= 0 && coordX < ${a} && coordY >= 0 && coordY < ${n}) { outputValue = getImage(coords[0], coordY, coordX, coords[3]); } setOutput(outputValue); } - `}},IQ={kernelName:Tl,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new kQ(a.shape,r,s,i);return o.runWebGLProgram(l,[a],a.dtype)}},TQ=` + `}getCustomSetupFunc(e,t,n,a){return(r,s)=>{this.paramsLoc==null&&(this.paramsLoc=r.getUniformLocationNoThrow(s,"params")),r.gl.uniform4f(this.paramsLoc,e,t,n,a)}}},aZ={kernelName:Nl,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new nZ(a.shape,s),[u,c]=E.getImageCenter(i,a.shape[1],a.shape[2]),p=l.getCustomSetupFunc(u,c,Math.sin(r),Math.cos(r));return o.runWebGLProgram(l,[a],a.dtype,p)}},rZ=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); @@ -3857,7 +3863,7 @@ return a / b;`,mJ=` return base + 1.0; } } -`,NQ=Ke({opSnippet:TQ}),SQ={kernelName:si,backendName:"webgl",kernelFunc:NQ},CQ="return inversesqrt(x);",_Q=Ke({opSnippet:CQ,cpuKernelImpl:m8}),EQ={kernelName:ii,backendName:"webgl",kernelFunc:_Q},HS=class{constructor(e,t,n,a,r,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let o=dt(r.length),l=dt(s.length),c="";n===1?c="i":n===2&&(c="i, j");let u=`getIndices(${c})`,p="";a===1?p="i":a===2&&(p="i, coords[1]");let d=`getUpdates(${p})`,h=t>1?"strides[j]":"strides";this.userCode=` +`,sZ=Xe({opSnippet:rZ}),iZ={kernelName:si,backendName:"webgl",kernelFunc:sZ},oZ="return inversesqrt(x);",lZ=Xe({opSnippet:oZ,cpuKernelImpl:X8}),uZ={kernelName:ii,backendName:"webgl",kernelFunc:lZ},XT=class{constructor(e,t,n,a,r,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let o=ht(r.length),l=ht(s.length),u="";n===1?u="i":n===2&&(u="i, j");let c=`getIndices(${u})`,p="";a===1?p="i":a===2&&(p="i, coords[1]");let d=`getUpdates(${p})`,h=t>1?"strides[j]":"strides";this.userCode=` ${o} strides = ${o}(${r}); void main() { @@ -3867,7 +3873,7 @@ return a / b;`,mJ=` for (int i = 0; i < ${e}; i++) { int flattenedIndex = 0; for (int j = 0; j < ${t}; j++) { - int index = round(${u}); + int index = round(${c}); flattenedIndex += index * ${h}; } if (flattenedIndex == coords[0]) { @@ -3877,7 +3883,7 @@ return a / b;`,mJ=` } setOutput(mix(getDefaultValue(), sum, float(found))); } - `}};function FQ(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:c,strides:u,outputSize:p}=_.calculateShapes(s,r,i),d=[p/c,c];if(p===0)return n.makeTensorInfo(i,r.dtype);let h=ye({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),m=ye({inputs:{x:s},backend:n,attrs:{shape:[l,c]}}),f=n.makeTensorInfo([],"float32",new Float32Array([0])),g=new HS(l,o,h.shape.length,m.shape.length,u,d),y=n.runWebGLProgram(g,[m,h,f],m.dtype),b=ye({inputs:{x:y},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(f),b}var AQ={kernelName:pl,backendName:"webgl",kernelFunc:FQ},$Q=class{constructor(e,t,n){this.variableNames=["c","a","b"],this.outputShape=t;let a,r;if(n>4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)r="resRC",a="resRC";else{let i=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[],l=[];for(let c=0;c4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)r="resRC",a="resRC";else{let i=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[],l=[];for(let u=0;u= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); -`,PQ=Ke({opSnippet:MQ}),OQ={kernelName:hl,backendName:"webgl",kernelFunc:PQ},LQ="return 1.0 / (1.0 + exp(-1.0 * x));",zQ=Ke({opSnippet:LQ}),BQ={kernelName:li,backendName:"webgl",kernelFunc:zQ},WQ=` +`,gZ=Xe({opSnippet:fZ}),yZ={kernelName:hl,backendName:"webgl",kernelFunc:gZ},bZ="return 1.0 / (1.0 + exp(-1.0 * x));",xZ=Xe({opSnippet:bZ}),vZ={kernelName:li,backendName:"webgl",kernelFunc:xZ},wZ=` if (isnan(x)) { return 0.0; } return sign(x); -`,VQ=Ke({opSnippet:WQ}),UQ={kernelName:gl,backendName:"webgl",kernelFunc:VQ},GQ=rS+` +`,kZ=Xe({opSnippet:wZ}),IZ={kernelName:gl,backendName:"webgl",kernelFunc:kZ},NZ=oT+` return sin(x); -`,HQ=Ke({opSnippet:GQ}),jQ={kernelName:oi,backendName:"webgl",kernelFunc:HQ},qQ=` +`,TZ=Xe({opSnippet:NZ}),SZ={kernelName:oi,backendName:"webgl",kernelFunc:TZ},CZ=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; -`,KQ=Ke({opSnippet:qQ}),XQ={kernelName:fl,backendName:"webgl",kernelFunc:KQ},YQ=` +`,AZ=Xe({opSnippet:CZ}),FZ={kernelName:fl,backendName:"webgl",kernelFunc:AZ},_Z=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; @@ -3921,9 +3927,9 @@ return a / b;`,mJ=` result = log(exp_x + 1.0); } return result; -`,JQ=Ke({opSnippet:YQ}),QQ={kernelName:yl,backendName:"webgl",kernelFunc:JQ},ZQ=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((y,b)=>y*b),l=[[0,0]];l.push(...i);for(let y=1+s.length;yn.disposeIntermediateTensorInfo(y)),g},eZ={kernelName:uc,backendName:"webgl",kernelFunc:ZQ};function tZ(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:c,strides:u,outputSize:p}=_.calculateShapes(s,r,o),d=!1,h=new HS(c,l,r.shape.length,s.shape.length,u,[p,1],d),m=n.runWebGLProgram(h,[s,r,i],s.dtype),f=ye({inputs:{x:m},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(m),f}var nZ={kernelName:Pd,backendName:"webgl",kernelFunc:tZ};function aZ(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=_.prepareSplitSize(r,s,o),c=r.shape.length,u=new Array(c).fill(0),p=r.shape.slice();return l.map(d=>{let h=[...p];h[o]=d;let m=dp({inputs:{x:r},backend:n,attrs:{begin:u,size:h}});return u[o]+=d,m})}var rZ={kernelName:bl,backendName:"webgl",kernelFunc:aZ},sZ="return sqrt(x);",iZ=Ke({opSnippet:sZ}),oZ={kernelName:ui,backendName:"webgl",kernelFunc:iZ},lZ="return x * x;",uZ=Ke({opSnippet:lZ}),cZ={kernelName:cc,backendName:"webgl",kernelFunc:uZ},jS="return (a - b) * (a - b);",pZ=rn({opSnippet:jS,packedOpSnippet:jS}),dZ={kernelName:di,backendName:"webgl",kernelFunc:pZ};function hZ({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Ra+` +`,EZ=Xe({opSnippet:_Z}),$Z={kernelName:yl,backendName:"webgl",kernelFunc:EZ},DZ=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a;I.assert(r.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((y,b)=>y*b),l=[[0,0]];l.push(...i);for(let y=1+s.length;yn.disposeIntermediateTensorInfo(y)),g},MZ={kernelName:uc,backendName:"webgl",kernelFunc:DZ};function RZ(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,strides:c,outputSize:p}=E.calculateShapes(s,r,o),d=!1,h=new XT(u,l,r.shape.length,s.shape.length,c,[p,1],d),m=n.runWebGLProgram(h,[s,r,i],s.dtype),f=ye({inputs:{x:m},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(m),f}var PZ={kernelName:Od,backendName:"webgl",kernelFunc:RZ};function OZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=I.parseAxisParam(i,r.shape)[0],l=E.prepareSplitSize(r,s,o),u=r.shape.length,c=new Array(u).fill(0),p=r.shape.slice();return l.map(d=>{let h=[...p];h[o]=d;let m=mp({inputs:{x:r},backend:n,attrs:{begin:c,size:h}});return c[o]+=d,m})}var LZ={kernelName:bl,backendName:"webgl",kernelFunc:OZ},zZ="return sqrt(x);",WZ=Xe({opSnippet:zZ}),BZ={kernelName:ui,backendName:"webgl",kernelFunc:WZ},VZ="return x * x;",UZ=Xe({opSnippet:VZ}),GZ={kernelName:cc,backendName:"webgl",kernelFunc:UZ},KT="return (a - b) * (a - b);",HZ=sn({opSnippet:KT,packedOpSnippet:KT}),jZ={kernelName:di,backendName:"webgl",kernelFunc:HZ};function qZ({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Ra+` return x > 0.0 ? 1.0 : float(${t.alpha}); - `,s=new ds(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var mZ={kernelName:Gr,backendName:"webgl",kernelFunc:hZ},fZ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;let a=n.length,r=dt(n.length),s=dt(n.length),i="";if(a===1)i="coords * strides + begin";else{let o=0;i=n.map((l,c)=>(o++,n.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${o-1}] * strides[${c}] + begin[${c}]`)).join(",")}this.userCode=` + `,s=new ds(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var XZ={kernelName:Gr,backendName:"webgl",kernelFunc:qZ},KZ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;let a=n.length,r=ht(n.length),s=ht(n.length),i="";if(a===1)i="coords * strides + begin";else{let o=0;i=n.map((l,u)=>(o++,n.length===1?`coords * strides[${u}] + begin[${u}]`:`coords[${o-1}] * strides[${u}] + begin[${u}]`)).join(",")}this.userCode=` ${r} begin = ${r}(${e}); ${r} strides = ${r}(${t}); @@ -3931,15 +3937,127 @@ return a / b;`,mJ=` ${s} coords = getOutputCoords(); setOutput(getX(${i})); } - `}};function gZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:c,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:d}=a,{nonStrided:h,$begin:m,$strides:f,size:g,newShape:y,outShape:b}=pn.sliceInfo(r.shape,s,i,o,l,c,u,p,d),x=ye({inputs:{x:r},backend:n,attrs:{shape:y}}),v;if(h){let T=dp({inputs:{x},backend:n,attrs:{begin:m,size:g}});v=ye({inputs:{x:T},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(T)}else if(b.some(T=>T===0))v=n.makeTensorInfo(b,r.dtype,[]);else if(n.shouldExecuteOnCPU([x])){let T=n.texData.get(x.dataId).values,S=Le(x.shape,x.dtype,T),A=g8(b,S,f,m);v=n.makeTensorInfo(b,x.dtype,A.values)}else{let T=new fZ(m,f,b);v=n.runWebGLProgram(T,[x],x.dtype)}let N=ye({inputs:{x:v},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(x),n.disposeIntermediateTensorInfo(v),N}var yZ={kernelName:xl,backendName:"webgl",kernelFunc:gZ},bZ="return tan(x);",xZ=Ke({opSnippet:bZ}),vZ={kernelName:vl,backendName:"webgl",kernelFunc:xZ},wZ=` + `}};function YZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:d}=a,{nonStrided:h,$begin:m,$strides:f,size:g,newShape:y,outShape:b}=pn.sliceInfo(r.shape,s,i,o,l,u,c,p,d),x=ye({inputs:{x:r},backend:n,attrs:{shape:y}}),v;if(h){let w=mp({inputs:{x},backend:n,attrs:{begin:m,size:g}});v=ye({inputs:{x:w},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(w)}else if(b.some(w=>w===0))v=n.makeTensorInfo(b,r.dtype,[]);else if(n.shouldExecuteOnCPU([x])){let w=n.texData.get(x.dataId).values,S=Le(x.shape,x.dtype,w),A=Y8(b,S,f,m);v=n.makeTensorInfo(b,x.dtype,A.values)}else{let w=new KZ(m,f,b);v=n.runWebGLProgram(w,[x],x.dtype)}let k=ye({inputs:{x:v},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(x),n.disposeIntermediateTensorInfo(v),k}var JZ={kernelName:xl,backendName:"webgl",kernelFunc:YZ},QZ="return tan(x);",ZZ=Xe({opSnippet:QZ}),eee={kernelName:vl,backendName:"webgl",kernelFunc:ZZ},tee=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); -`,kZ=Ke({opSnippet:wZ}),IZ={kernelName:mi,backendName:"webgl",kernelFunc:kZ},NZ=class{constructor(e,t){this.variableNames=["A"];let n=new Array(e.length);for(let s=0;s5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${e[0]})`;let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],a=[];for(let r=0;rw.decodeString(u)),l=Le(r.shape,r.dtype,o),c=b8(l,s);return n.makeTensorInfo(c.shape,c.dtype,c.values)}let i=new NZ(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var SZ={kernelName:Ur,backendName:"webgl",kernelFunc:qS};function CZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a,o=n.readSync(r.dataId),[l,c]=x8(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(c.shape,c.dtype,c.values)]}var _Z={kernelName:wl,backendName:"webgl",kernelFunc:CZ};function EZ(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;lp(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=a.readSync(s.dataId),{outputValues:o,outputShape:l,indices:c}=v8(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([c.length],"int32",c)]}var FZ={kernelName:Od,backendName:"webgl",kernelFunc:EZ};function AZ(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r,o=i.shape.length,l=r.shape[s],c=new Array(o-1),u=0;for(let f=0;fn.disposeIntermediateTensorInfo(f)),m}var $Z={kernelName:kl,backendName:"webgl",kernelFunc:AZ},DZ=class{constructor(e,t){this.variableNames=["x","segmentIds"];let n=e.windowSize,a=e.batchSize,r=e.inSize,s=e.numSegments,i=s*Math.ceil(r/n);this.outputShape=[a,i];let o="0.0",l="sumValue",c=Math.floor(n/4)*4,u=n%4,p=` + `}};function ree(e){let t=e.length;if(t>5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${e[0]})`;let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],a=[];for(let r=0;rI.decodeString(c)),l=Le(r.shape,r.dtype,o),u=Q8(l,s);return n.makeTensorInfo(u.shape,u.dtype,u.values)}let i=new see(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var iee={kernelName:Ur,backendName:"webgl",kernelFunc:YT};function oee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a,o=n.readSync(r.dataId),[l,u]=Z8(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(u.shape,u.dtype,u.values)]}var lee={kernelName:wl,backendName:"webgl",kernelFunc:oee},uee=class{constructor(e,t,n,a,r,s){this.variableNames=["Image","Transforms"],this.outputShape=s;let i=n==="nearest"?1:2,o;switch(a){case"constant":o=1;break;case"reflect":o=2;break;case"wrap":o=3;break;case"nearest":o=4;break;default:o=1;break}this.userCode=` + float mapCoord(float outCoord, float len) { + float inCoord = outCoord; + if(${o} == 2) { + if (inCoord < 0.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz2 = 2.0 * len; + if (inCoord < sz2) { + inCoord = sz2 * float(int(float(-inCoord / sz2))) + + inCoord; + } + inCoord = inCoord < -len ? inCoord + sz2 : -inCoord - 1.0; + } + } else if (inCoord > len - 1.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz2 = 2.0 * len; + inCoord -= sz2 * float(int(float(inCoord / sz2))); + if (inCoord >= len) { + inCoord = sz2 - inCoord - 1.0; + } + } + } + return clamp(inCoord, 0.0, len - 1.0); + } else if (${o} == 3) { + if (inCoord < 0.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz = len - 1.0; + inCoord += len * (float(int(float(-inCoord / sz))) + 1.0); + } + } else if (inCoord > len - 1.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz = len - 1.0; + inCoord -= len * float(int(float(inCoord / sz))); + } + } + return clamp(inCoord, 0.0, len - 1.0); + } else if (${o} == 4) { + return clamp(outCoord, 0.0, len - 1.0); + } else { + return outCoord; + } + } + + float readWithFillValue(int batch, int coordY, int coordX, + int channel) { + float outputValue; + if (0 <= coordY && coordY < ${e} && 0 <= coordX && coordX < ${t}) { + outputValue = getImage(batch, coordY, coordX, channel); + } else { + outputValue = float(${r}); + } + return outputValue; + } + + void main() { + ivec4 coords = getOutputCoords(); + float outputValue; + int batch = coords[0]; + int x = coords[2]; + int y = coords[1]; + int channel = coords[3]; + float xf = float(x); + float yf = float(y); + float a1 = getTransforms(batch, 0); + float a2 = getTransforms(batch, 1); + float a3 = getTransforms(batch, 2); + float b1 = getTransforms(batch, 3); + float b2 = getTransforms(batch, 4); + float b3 = getTransforms(batch, 5); + float c1 = getTransforms(batch, 6); + float c2 = getTransforms(batch, 7); + float projection = c1 * xf + c2 * yf + 1.0; + if (projection == 0.0) { + outputValue = float(${r}); + } else { + float inX = (a1 * xf + a2 * yf + a3) / projection; + float inY = (b1 * xf + b2 * yf + b3) / projection; + float mapX = mapCoord(inX, float(${t})); + float mapY = mapCoord(inY, float(${e})); + + if (${i} == 1) { + int coordY = int(round(mapY)); + int coordX = int(round(mapX)); + outputValue = readWithFillValue(batch, coordY, coordX, + channel); + } else { + float yFloor = floor(mapY); + float xFloor = floor(mapX); + float yCeil = yFloor + 1.0; + float xCeil = xFloor + 1.0; + float valueYFloor = (xCeil - mapX) * + readWithFillValue(batch, int(yFloor), int(xFloor), channel) + + (mapX - xFloor) * + readWithFillValue(batch, int(yFloor), int(xCeil), channel); + float valueYCeil = (xCeil - mapX) * + readWithFillValue(batch, int(yCeil), int(xFloor), channel) + + (mapX - xFloor) * + readWithFillValue(batch, int(yCeil), int(xCeil), channel); + outputValue = (yCeil - mapY) * valueYFloor + + (mapY - yFloor) * valueYCeil; + } + } + setOutput(outputValue); + } + `}};function cee(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[c,p,d,h]=r.shape,[m,f]=u!=null?u:[p,d],g=[c,m,f,h],y=new uee(p,d,i,o,l,g);return n.runWebGLProgram(y,[r,s],"float32")}var pee={kernelName:Ld,backendName:"webgl",kernelFunc:cee};function dee(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;cp(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=a.readSync(s.dataId),{outputValues:o,outputShape:l,indices:u}=eX(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var hee={kernelName:zd,backendName:"webgl",kernelFunc:dee};function mee(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r,o=i.shape.length,l=r.shape[s],u=new Array(o-1),c=0;for(let f=0;fn.disposeIntermediateTensorInfo(f)),m}var fee={kernelName:kl,backendName:"webgl",kernelFunc:mee},gee=class{constructor(e,t){this.variableNames=["x","segmentIds"];let n=e.windowSize,a=e.batchSize,r=e.inSize,s=e.numSegments,i=s*Math.ceil(r/n);this.outputShape=[a,i];let o="0.0",l="sumValue",u=Math.floor(n/4)*4,c=n%4,p=` sumValue += dot(values, segFilter); `,d="";r%n>0&&(d=` if (inIdx < 0 || inIdx >= ${r}) { @@ -3972,7 +4090,7 @@ return a / b;`,mJ=` float sumValue = 0.0; - for (int i = 0; i < ${c}; i += 4) { + for (int i = 0; i < ${u}; i += 4) { int inIdx = inOffset + i; vec4 values = vec4( getValue(batch, inIdx), @@ -3991,8 +4109,8 @@ return a / b;`,mJ=` ${p} } - int inIdx = inOffset + ${c}; - if (${u===1}) { + int inIdx = inOffset + ${u}; + if (${c===1}) { vec4 values = vec4( getValue(batch, inIdx), initializationValue, @@ -4010,7 +4128,7 @@ return a / b;`,mJ=` ); ${p} - } else if (${u===2}) { + } else if (${c===2}) { vec4 values = vec4( getValue(batch, inIdx), getValue(batch, inIdx + 1), @@ -4026,7 +4144,7 @@ return a / b;`,mJ=` ); ${p} - } else if (${u===3}) { + } else if (${c===3}) { vec4 values = vec4( getValue(batch, inIdx), getValue(batch, inIdx + 1), @@ -4045,7 +4163,7 @@ return a / b;`,mJ=` } setOutput(${l}); } - `}};function RZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,segmentIds:s}=t,{numSegments:i}=a,o=r.shape.length,l=[],c=0,u=_.getAxesPermutation([c],o),p=r;u!=null&&(p=Fn({inputs:{x:r},backend:n,attrs:{perm:u}}),l.push(p),c=_.getInnerMostAxes(1,o)[0]);let d=_.segment_util.computeOutShape(p.shape,c,i),h=w.sizeFromShape([p.shape[c]]),m=ye({inputs:{x:p},backend:n,attrs:{shape:[-1,h]}});l.push(m);let f=Gd(r.dtype),g=(v,N,T,S,A)=>{let $=v.shape[0],R=v.shape[1],B=_.segment_util.segOpComputeOptimalWindowSize(R,A),V={windowSize:B,inSize:R,batchSize:$,numSegments:A},W=new DZ(V,N),G=n.compileAndRun(W,[v,T],S);if(l.push(G),G.shape[1]===A)return G;let H=GS({backend:n,attrs:{start:0,stop:A,step:1,dtype:"float32"}}),X=qS({inputs:{x:H},backend:n,attrs:{reps:[R/B]}});return l.push(H),l.push(X),g(G,N,X,S,A)},y=g(m,"unsortedSegmentSum",s,f,i),b=ye({inputs:{x:y},backend:n,attrs:{shape:d}}),x=b;if(u!=null){l.push(b);let v=_.getUndoAxesPermutation(u);x=Fn({inputs:{x},backend:n,attrs:{perm:v}})}return l.forEach(v=>n.disposeIntermediateTensorInfo(v)),x}var MZ={kernelName:pc,backendName:"webgl",kernelFunc:RZ},PZ=[_9,A9,gK,bK,wK,TK,SK,EK,AK,DK,OK,zK,VK,HK,QK,KK,tX,sX,aX,uX,pX,hX,yX,TX,SX,$X,RX,LX,WX,J8,HX,tY,aY,XX,oY,uY,sY,dY,fY,bY,vY,kY,NY,AY,DY,CY,PY,zY,UY,qY,JY,e7,t7,n7,r7,i7,l7,c7,d7,g7,v7,k7,T7,C7,A7,M7,z7,Y8,W7,GX,G7,q7,Y7,Z8,e9,r9,i9,h9,c9,y9,v9,T9,D9,W9,z9,H9,q9,X9,O9,J9,Z9,aJ,oJ,pJ,xJ,rK,wJ,TJ,CJ,FJ,_X,DJ,MJ,OJ,BJ,GJ,tK,jJ,qJ,EX,fJ,YJ,rQ,eQ,iK,lQ,pQ,mQ,yQ,wQ,IQ,SQ,EQ,AQ,RQ,OQ,BQ,UQ,jQ,XQ,kX,yJ,QQ,eZ,nZ,rZ,oZ,cZ,dZ,mZ,yZ,gJ,hK,vZ,IZ,SZ,_Z,mK,FZ,$Z,MZ,RJ];for(let e of PZ)hc(e);var OZ="3.2.0",LZ={"tfjs-core":Y0,"tfjs-backend-cpu":fU,"tfjs-backend-webgl":X8,"tfjs-data":IT,"tfjs-layers":sm,"tfjs-converter":yT,tfjs:OZ},Hn;(function(e){e[e.float32=0]="float32",e[e.int32=1]="int32",e[e.bool=2]="bool",e[e.string=3]="string",e[e.complex64=4]="complex64"})(Hn||(Hn={}));var mp;(function(e){e[e.linear=0]="linear",e[e.relu=1]="relu",e[e.relu6=2]="relu6",e[e.prelu=3]="prelu",e[e.leakyrelu=4]="leakyrelu"})(mp||(mp={}));var KS;function zZ(e){KS=e.wasm.cwrap(gi,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function BZ(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:c,activation:u,leakyreluAlpha:p}=a,d=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(s.dataId).id,m=0;if(i!=null){let A=n.dataIdMap.get(i.dataId);if(A.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${A.shape.length}.`);m=A.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=mp[u];if(g==null)throw new Error(`${u} activation not yet supported for FusedConv2D in the wasm backend.`);let y=l?r.shape[2]:r.shape[1],b=c?s.shape[1]:s.shape[2],x=r.shape[0],v=n.makeOutput([x,y,b],r.dtype),N=n.dataIdMap.get(v.dataId).id,T=new Uint8Array(new Int32Array(r.shape).buffer),S=new Uint8Array(new Int32Array(s.shape).buffer);return KS(d,T,r.shape.length,h,S,s.shape.length,l,c,g,m,f,p||0,N),v}var WZ={kernelName:gi,backendName:"wasm",setupFunc:zZ,kernelFunc:BZ};function An(e){let t;function n(r){t=r.wasm.cwrap(e,null,["number","number"])}function a(r){let{backend:s,inputs:{x:i}}=r,o=s.dataIdMap.get(i.dataId).id,l=s.makeOutput(i.shape,i.dtype),c=s.dataIdMap.get(l.dataId).id;return w.sizeFromShape(l.shape)===0||t(o,c),l}return{kernelName:e,backendName:"wasm",setupFunc:n,kernelFunc:a}}var VZ=An(So);function gn(e,t,n){let a;function r(i){a=i.wasm.cwrap(e,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:o,inputs:l}=i,{a:c,b:u}=l,p=o.dataIdMap.get(c.dataId).id,d=o.dataIdMap.get(u.dataId).id,h=n!=null?n:c.dtype,m=_.assertAndGetBroadcastShape(c.shape,u.shape),f=o.makeOutput(m,h);if(w.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(c.shape).buffer),y=new Uint8Array(new Int32Array(u.shape).buffer),b=o.dataIdMap.get(f.dataId).id,x=()=>a(p,g,c.shape.length,d,y,u.shape.length,Hn[c.dtype],b);if(t&&c.dtype==="float32")return x(),f;let v=_.getBroadcastDims(c.shape,m),N=_.getBroadcastDims(u.shape,m),T=v.every((A,$)=>A===$),S=N.every((A,$)=>A===$);if(T&&S)return x(),f;throw new Error(`Broadcasting along outer dims is not yet supported for ${c.dtype} ${e}.`)}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var UZ=!0,GZ=gn(Wr,UZ),XS;function HZ(e){XS=e.wasm.cwrap(Ts,null,["array","number","number","number"])}function jZ(e){let{inputs:t,backend:n}=e,a=n.makeOutput(t[0].shape,t[0].dtype);if(w.sizeFromShape(a.shape)===0)return a;let r=t.map(o=>n.dataIdMap.get(o.dataId).id),s=new Uint8Array(new Int32Array(r).buffer),i=n.dataIdMap.get(a.dataId).id;return XS(s,r.length,Hn[a.dtype],i),a}var qZ={kernelName:Ts,backendName:"wasm",setupFunc:HZ,kernelFunc:jZ};function zm(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var KZ={kernelName:Ws,backendName:"wasm",kernelFunc:zm},YS;function XZ(e){YS=e.wasm.cwrap(fi,null,["number","array","number","number","number","array","number"])}function Bm(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=JZ(t.x.shape,a.perm),i=!0;for(let m=0;m=r&&(s===-1||a[s]>a[i])&&(s=i);a[s]=r}return[n,a]}var QZ={kernelName:fi,backendName:"wasm",kernelFunc:Bm,setupFunc:XZ};function mu(e,t,n){let a=e.shape,r=e.shape.length,s=w.parseAxisParam(t,a),i=s,o=_.getAxesPermutation(i,r),l=null,c=!1;if(o!=null){let u=new Array(r);for(let d=0;d`new shape: ${i}, old shape: ${a.shape}. New shape and old shape must have the same number of elements.`),e.backend.incRef(a.dataId),{dataId:a.dataId,shape:i,dtype:a.dtype}}var see={kernelName:cl,backendName:"wasm",kernelFunc:Ma},ZS;function iee(e){ZS=e.wasm.cwrap(Cs,null,["number","array","number","number","array","number","number","number","number"])}function oee(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=r.shape.length,c=s.shape.length,u=i?r.shape[l-2]:r.shape[l-1],p=o?s.shape[c-1]:s.shape[c-2],d=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[c-2]:s.shape[c-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=w.sizeFromShape(m),y=w.sizeFromShape(f),b=g===y||g===1||y===1;w.assert(l>=2&&c>=2&&b,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${m}) and (${f}).`);let x=(g>y?r.shape.slice(0,-2):s.shape.slice(0,-2)).concat([d,h]);w.assert(u===p,()=>`Error in matMul: inner shapes (${u}) and (${p}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let v=i?[g,u,d]:[g,d,u],N=o?[y,h,p]:[y,p,h],T=Ma({inputs:{x:r},backend:n,attrs:{shape:v}}),S=Ma({inputs:{x:s},backend:n,attrs:{shape:N}}),A=n.dataIdMap.get(T.dataId).id,$=n.dataIdMap.get(S.dataId).id,R=i?T.shape[2]:T.shape[1],B=o?S.shape[1]:S.shape[2],V=Math.max(g,y),W=n.makeOutput([V,R,B],T.dtype),G=n.dataIdMap.get(W.dataId).id,H=new Uint8Array(new Int32Array(T.shape).buffer),X=new Uint8Array(new Int32Array(S.shape).buffer);return ZS(A,H,T.shape.length,$,X,S.shape.length,i,o,G),n.disposeData(T.dataId),n.disposeData(S.dataId),W.shape=x,W}var lee={kernelName:Cs,backendName:"wasm",setupFunc:iee,kernelFunc:oee};function Wm(e){let{inputs:{x:t},attrs:{dtype:n},backend:a}=e,r=a.makeOutput(t.shape,n),s=a.typedArrayFromHeap(t);return a.typedArrayFromHeap(r).set(s),r}var uee={kernelName:_s,backendName:"wasm",kernelFunc:Wm},cee=An(Es),e2;function pee(e){e2=e.wasm.cwrap(Vr,null,["number","number","number","number"])}function dee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o=n.dataIdMap.get(r.dataId).id,l=n.makeOutput(r.shape,r.dtype),c=n.dataIdMap.get(l.dataId).id;return e2(o,s,i,c),l}var hee={kernelName:Vr,backendName:"wasm",setupFunc:pee,kernelFunc:dee};function t2(e){let{inputs:t,backend:n}=e,a=w.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=_.computeOutShape(t.map(h=>h.shape),a),s=t.filter(h=>w.sizeFromShape(h.shape)>0);if(s.length===1)return zm({inputs:{x:s[0]},backend:n});let i=n.makeOutput(r,t[0].dtype);if(w.sizeFromShape(r)===0)return i;let o=s.map(h=>h.shape);if(_.assertParamsConsistent(o,a),s[0].dtype==="string"){let h=s.map(x=>{let v=w.sizeFromShape(x.shape.slice(a));return Ma({inputs:{x},backend:n,attrs:{shape:[-1,v]}})}),m=h.map(x=>({vals:n.readSync(x.dataId),shape:x.shape}));r=_.computeOutShape(h.map(x=>x.shape),1);let f=h[0].shape[0]===1,g=mv(m,r,t[0].dtype,f),y=_.computeOutShape(s.map(x=>x.shape),a);i.shape=y;let b=n.dataIdMap.get(i.dataId);return b.stringBytes=_.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),i}let l=w.sizeFromShape(s[0].shape.slice(0,a)),c=0,u=s.map(h=>{let m=w.sizeFromShape(h.shape.slice(a));return c+=m,m}),p=s.map(h=>n.typedArrayFromHeap(h)),d=n.typedArrayFromHeap(i);for(let h=0;h`cumsum does not support ${r.dtype} tensors in the WASM backend`);let c=_.getAxesPermutation([s],l),u=r;c!==null&&(u=Bm({inputs:{x:r},attrs:{perm:c},backend:n}));let p=_.getInnerMostAxes(1,l)[0];_.assertAxesAreInnerMostDims("cumsum",[p],l);let d=n.makeOutput(u.shape,u.dtype),h=u.shape[p],m=n.dataIdMap.get(u.dataId).id,f=n.dataIdMap.get(d.dataId).id;s2(m,i?1:0,o?1:0,h,f,Hn[r.dtype]);let g=d;if(c!==null){let y=_.getUndoAxesPermutation(c);g=Bm({inputs:{x:d},attrs:{perm:y},backend:n}),n.disposeData(u.dataId),n.disposeData(d.dataId)}return g}var Cee={kernelName:Ds,backendName:"wasm",setupFunc:Nee,kernelFunc:See},i2;function _ee(e){i2=e.wasm.cwrap(Oo,null,["number","number","number","array","number","array","array","number","number"])}function Eee(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{blockSize:s,dataFormat:i}=a;w.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],c=i==="NHWC"?r.shape[2]:r.shape[3],u=i==="NHWC"?r.shape[3]:r.shape[1],p=l*s,d=c*s,h=u/(s*s),m=i==="NHWC"?[o,p,d,h]:[o,h,p,d],f=t.makeOutput(m,"float32"),g=t.dataIdMap.get(r.dataId).id,y=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(w.computeStrides(m)).buffer),v=t.dataIdMap.get(f.dataId).id;return i2(g,s,i==="NHWC"?1:0,y,r.shape.length-1,b,x,m.length,v),f}var Fee={kernelName:Oo,backendName:"wasm",setupFunc:_ee,kernelFunc:Eee},o2;function Aee(e){o2=e.wasm.cwrap(Rs,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function $ee(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s}=t,i=a.dataIdMap.get(r.dataId).id,o=a.dataIdMap.get(s.dataId).id,{strides:l,dilations:c,pad:u,dimRoundingMode:p}=n,d=c==null?[1,1]:c,h=_.computeConv2DInfo(r.shape,s.shape,l,d,u,p,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,y=h.padInfo.right,b=h.padInfo.bottom,x=h.padInfo.left,v=h.dilationHeight,N=h.dilationWidth,T=h.strideHeight,S=h.strideWidth,A=h.inChannels,$=h.outChannels,R=h.padInfo.type==="SAME"?1:0;if(h.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${h.dataFormat}'. Please use 'channelsLast'.`);let B=a.makeOutput(h.outShape,"float32"),V=a.dataIdMap.get(B.dataId).id;return o2(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,y,b,x,R,v,N,T,S,A,$,V),B}var Dee={kernelName:Rs,backendName:"wasm",setupFunc:Aee,kernelFunc:$ee},Ree=!1,Mee=gn(Bo,Ree,"bool"),Pee=An(Ps);function jv(e){let{inputs:t,attrs:n,backend:a}=e,{input:r}=t,{dim:s}=n,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(w.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),Ma({inputs:{x:r},backend:a,attrs:{shape:o}})}var Oee={kernelName:Wo,backendName:"wasm",kernelFunc:jv};function Lee(e){let{attrs:{shape:t,value:n,dtype:a},backend:r}=e,s=r.makeOutput(t,a);return r.typedArrayFromHeap(s).fill(n),s}var zee={kernelName:tc,backendName:"wasm",kernelFunc:Lee},l2;function Bee(e){l2=e.wasm.cwrap(Uo,null,["number","number","number","number","number","number"])}function Wee(e){let{inputs:t,backend:n}=e,{image:a}=t,r=n.makeOutput(a.shape,a.dtype),s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,[o,l,c,u]=a.shape;return l2(s,o,l,c,u,i),r}var Vee={kernelName:Uo,backendName:"wasm",kernelFunc:Wee,setupFunc:Bee},Uee=An(Os),Gee=!1,Hee=gn(Ls,Gee),u2;function jee(e){u2=e.wasm.cwrap(zs,null,["number","number","number","number","number","number","number"])}function qee(e){let{backend:t,inputs:n,attrs:a}=e,{varianceEpsilon:r}=a,{x:s,mean:i,variance:o,offset:l,scale:c}=n,u=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,d=t.dataIdMap.get(o.dataId).id,h=l!=null?t.dataIdMap.get(l.dataId).id:0,m=c!=null?t.dataIdMap.get(c.dataId).id:0,f=t.makeOutput(s.shape,s.dtype);if(w.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return u2(u,p,d,h,m,r,g),f}var Kee={kernelName:zs,backendName:"wasm",setupFunc:jee,kernelFunc:qee},c2;function Xee(e){c2=e.wasm.cwrap(yi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Yee(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dilations:u,dataFormat:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=n,f=_.computeConv2DInfo(r.shape,s.shape,l,u,c,d),g=mp[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,v=0;if(i!=null){let Z=a.dataIdMap.get(i.dataId);if(Z.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${Z.shape.length}.`);if(Z.shape[0]!==x)throw new Error(`FusedConv2D bias shape (${Z.shape}) does not match the number of output channels (${x})`);v=Z.id}let N=f.filterHeight,T=f.filterWidth,S=f.padInfo.top,A=f.padInfo.right,$=f.padInfo.bottom,R=f.padInfo.left,B=f.dilationHeight,V=f.dilationWidth,W=f.strideHeight,G=f.strideWidth,H=f.inChannels,X=f.padInfo.type==="SAME"?1:0,q=f.batchSize,te=f.inHeight,Q=f.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let se=a.makeOutput(f.outShape,"float32"),ne=a.dataIdMap.get(se.dataId).id,ie=o==null?0:a.dataIdMap.get(o.dataId).id;return c2(y,q,te,Q,b,N,T,v,S,A,$,R,X,B,V,W,G,H,x,g,ie,m||0,ne),se}var Jee={kernelName:yi,backendName:"wasm",setupFunc:Xee,kernelFunc:Yee},p2;function Qee(e){p2=e.wasm.cwrap(bi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Zee(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dilations:u,dataFormat:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=n,f=_.computeConv2DInfo(r.shape,s.shape,l,u,c,d,!0),g=mp[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,v=0;if(i!=null){let Z=a.dataIdMap.get(i.dataId);if(Z.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${Z.shape.length}.`);if(Z.shape[0]!==x)throw new Error(`FusedDepthwiseConv2D bias shape (${Z.shape}) does not match the number of output channels (${x})`);v=Z.id}let N=f.filterHeight,T=f.filterWidth,S=f.padInfo.top,A=f.padInfo.right,$=f.padInfo.bottom,R=f.padInfo.left,B=f.dilationHeight,V=f.dilationWidth,W=f.strideHeight,G=f.strideWidth,H=f.inChannels,X=f.padInfo.type==="SAME"?1:0,q=f.batchSize,te=f.inHeight,Q=f.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let se=a.makeOutput(f.outShape,"float32"),ne=a.dataIdMap.get(se.dataId).id,ie=o==null?0:a.dataIdMap.get(o.dataId).id;return p2(y,q,te,Q,b,N,T,v,S,A,$,R,X,B,V,W,G,H,x,g,ie,m||0,ne),se}var ete={kernelName:bi,backendName:"wasm",setupFunc:Qee,kernelFunc:Zee},d2;function tte(e){d2=e.wasm.cwrap(Ho,null,["number","number","number","number","number","number","array","number"])}function nte(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=dy.prepareAndValidate(a,r),c=t.makeOutput(s,a.dtype);if(i===0)return c;let u=r.shape,p=u[u.length-1],d=t.dataIdMap.get(a.dataId).id,h=t.dataIdMap.get(r.dataId).id,m=new Uint8Array(new Int32Array(l).buffer),f=t.dataIdMap.get(c.dataId).id;return d2(d,Hn[a.dtype],h,i,p,o,m,f),c}var ate={kernelName:Ho,backendName:"wasm",setupFunc:tte,kernelFunc:nte},h2;function rte(e){h2=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function ste(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,indices:s}=n,{axis:i,batchDims:o}=a,l=w.parseAxisParam(i,r.shape)[0],c=_.segment_util.collectGatherOpShapeInfo(r,s,l,o),u=Ma({inputs:{x:r},attrs:{shape:[c.batchSize,c.outerSize,c.dimSize,c.sliceSize]},backend:t}),p=w.sizeFromShape(s.shape),d=Ma({inputs:{x:s},attrs:{shape:[c.batchSize,p/c.batchSize]},backend:t}),h=[c.batchSize,c.outerSize,p/c.batchSize,c.sliceSize],m=t.makeOutput(h,r.dtype);if(w.sizeFromShape(r.shape)===0)return m;let f=u.shape.length-1,g=t.dataIdMap.get(u.dataId).id,y=t.dataIdMap.get(d.dataId).id,b=t.dataIdMap.get(m.dataId).id,x=new Uint8Array(new Int32Array(w.computeStrides(u.shape)).buffer),v=new Uint8Array(new Int32Array(w.computeStrides(h)).buffer);return h2(g,Hn[r.dtype],x,f,y,c.batchSize,v,b),t.disposeData(u.dataId),t.disposeData(d.dataId),m.shape=c.outputShape,m}var ite={kernelName:Go,backendName:"wasm",setupFunc:rte,kernelFunc:ste},ote=!1,lte=gn(jo,ote,"bool"),ute=!1,cte=gn(Bs,ute,"bool"),m2;function pte(e){m2=e.wasm.cwrap(Vs,null,["number","number","number"])}function dte(e){let{inputs:{x:t},attrs:{alpha:n},backend:a}=e,r=a.dataIdMap.get(t.dataId).id,s=a.makeOutput(t.shape,t.dtype);if(w.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;m2(r,n,i)}return s}var hte={kernelName:Vs,backendName:"wasm",setupFunc:pte,kernelFunc:dte},mte=!1,fte=gn(Yo,mte,"bool"),gte=!1,yte=gn(Jo,gte,"bool"),bte=An(Us),xte=!1,vte=gn(Zo,xte,"bool"),f2;function wte(e){f2=e.wasm.cwrap(Gs,null,["number, number, number"])}function kte(e){let{backend:t,inputs:n,attrs:a}=e,{reductionIndices:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=i,{transposed:c,axes:u,originalAxes:p,inputWasTransposed:d}=mu(i,r,t);if(d){let b=t.dataIdMap.get(c.dataId).id;l=c,o=b}let h=l.shape.length;_.assertAxesAreInnerMostDims("max",u,h);let[m,f]=_.computeOutAndReduceShapes(l.shape,u),g=w.sizeFromShape(f),y=t.makeOutput(m,i.dtype);if(w.sizeFromShape(l.shape)!==0){let b=t.dataIdMap.get(y.dataId).id;f2(o,g,b)}if(d&&t.disposeData(c.dataId),s){let b=_.expandShapeToKeepDim(y.shape,p);y.shape=b}return y}var Ite={kernelName:Gs,backendName:"wasm",setupFunc:wte,kernelFunc:kte},Tte=!1,Nte=gn(Hs,Tte),g2;function Ste(e){g2=e.wasm.cwrap(js,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Cte(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id,{filterSize:i,strides:o,pad:l,dimRoundingMode:c}=n,u=_.computePool2DInfo(r.shape,i,o,1,l,c),p=u.filterHeight,d=u.filterWidth,h=u.padInfo.top,m=u.padInfo.right,f=u.padInfo.bottom,g=u.padInfo.left,y=u.dilationHeight,b=u.dilationWidth,x=u.strideHeight,v=u.strideWidth,N=u.inChannels,T=u.outChannels;if(u.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${u.dataFormat}'. Please use 'channelsLast'.`);let S=a.makeOutput(u.outShape,"float32"),A=a.dataIdMap.get(S.dataId).id;return g2(s,r.shape[0],r.shape[1],r.shape[2],p,d,h,m,f,g,y,b,x,v,N,T,A),S}var _te={kernelName:js,backendName:"wasm",setupFunc:Ste,kernelFunc:Cte},y2;function Ete(e){y2=e.wasm.cwrap(qs,null,["number, number, number"])}function Fte(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=mu(i,r,t),m=p;if(h){let v=t.dataIdMap.get(u.dataId).id;v!==o&&(c=u,l=v,m=_.getInnerMostAxes(m.length,c.shape.length))}_.assertAxesAreInnerMostDims("mean",m,c.shape.length);let[f,g]=_.computeOutAndReduceShapes(c.shape,m),y=w.sizeFromShape(g),b=c;c.dtype!=="float32"&&(b=Wm({backend:t,inputs:{x:c},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(b.dataId).id);let x=t.makeOutput(f,"float32");if(w.sizeFromShape(c.shape)!==0){let v=t.dataIdMap.get(x.dataId).id;y2(l,y,v)}if(h&&t.disposeData(u.dataId),s){let v=_.expandShapeToKeepDim(x.shape,d);x.shape=v}return c.dtype!=="float32"&&t.disposeData(b.dataId),x}var Ate={kernelName:qs,backendName:"wasm",setupFunc:Ete,kernelFunc:Fte},b2;function $te(e){b2=e.wasm.cwrap(Ks,null,["number, number, number"])}function Dte(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=mu(i,r,t);if(h){let x=t.dataIdMap.get(u.dataId).id;x!==o&&(c=u,l=x)}let m=c.shape.length;_.assertAxesAreInnerMostDims("min",p,m);let[f,g]=_.computeOutAndReduceShapes(c.shape,p),y=w.sizeFromShape(g),b=t.makeOutput(f,c.dtype);if(w.sizeFromShape(c.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;b2(l,y,x)}if(h&&t.disposeData(u.dataId),s){let x=_.expandShapeToKeepDim(b.shape,d);b.shape=x}return b}var Rte={kernelName:Ks,backendName:"wasm",setupFunc:$te,kernelFunc:Dte},Mte=!1,Pte=gn(Xs,Mte),Ote=!0,Lte=gn(Ys,Ote),zte=An(tl);function qv(e,t){let n=new Int32Array(e.wasm.HEAPU8.buffer,t,4),a=n[0],r=n[1],s=n[2],i=n[3];return e.wasm._free(t),{pSelectedIndices:a,selectedSize:r,pSelectedScores:s,pValidOutputs:i}}var x2;function Bte(e){x2=e.wasm.cwrap(al,"number",["number","number","number","number","number"])}function Wte(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i}=a,{boxes:o,scores:l}=n,c=t.dataIdMap.get(o.dataId).id,u=t.dataIdMap.get(l.dataId).id,p=x2(c,u,s,r,i),{pSelectedIndices:d,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=qv(t,p);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",d)}var Vte={kernelName:al,backendName:"wasm",setupFunc:Bte,kernelFunc:Wte},v2;function Ute(e){v2=e.wasm.cwrap(rl,"number",["number","number","number","number","number","bool"])}function Gte(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:o}=a,{boxes:l,scores:c}=n,u=t.dataIdMap.get(l.dataId).id,p=t.dataIdMap.get(c.dataId).id,d=v2(u,p,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=qv(t,d);t.wasm._free(f);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([],"int32",g);return[y,b]}var Hte={kernelName:rl,backendName:"wasm",setupFunc:Ute,kernelFunc:Gte},w2;function jte(e){w2=e.wasm.cwrap(sl,"number",["number","number","number","number","number","number"])}function qte(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,softNmsSigma:o}=a,{boxes:l,scores:c}=n,u=t.dataIdMap.get(l.dataId).id,p=t.dataIdMap.get(c.dataId).id,d=w2(u,p,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=qv(t,d);t.wasm._free(g);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([m],"float32",f);return[y,b]}var Kte={kernelName:sl,backendName:"wasm",setupFunc:jte,kernelFunc:qte},Xte=!1,Yte=gn(nl,Xte,"bool"),k2;function Jte(e){k2=e.wasm.cwrap(Js,null,["number","number","number","number","number"])}function Qte(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{depth:s,onValue:i,offValue:o}=a,l=n.makeOutput([...r.shape,s],"int32"),c=n.dataIdMap.get(l.dataId).id,u=n.dataIdMap.get(r.dataId).id;return k2(u,s,i,o,c),l}var Zte={kernelName:Js,backendName:"wasm",setupFunc:Jte,kernelFunc:Qte};function ene(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var tne={kernelName:il,backendName:"wasm",kernelFunc:ene};function nne(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return jv({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(u=>{w.assertShapesMatch(s,u.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===u.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(u=>{let p=jv({inputs:{input:u},backend:n,attrs:{dim:r}});return o.push(p),p}),c=t2({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(u=>n.disposeData(u.dataId)),c}var ane={kernelName:ol,backendName:"wasm",kernelFunc:nne},I2;function rne(e){I2=e.wasm.cwrap(Qs,null,["number","array","number","number","array","array","number","number"])}function sne(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,constantValue:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]),i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,c=new Uint8Array(new Int32Array(t.shape).buffer),u=a.map(m=>m[0]),p=a.map(m=>m[1]),d=new Uint8Array(new Int32Array(u).buffer),h=new Uint8Array(new Int32Array(p).buffer);return I2(i,c,t.shape.length,Hn[t.dtype],d,h,r,l),o}var ine={kernelName:Qs,backendName:"wasm",kernelFunc:sne,setupFunc:rne},one=!1,lne=gn(Zs,one),T2;function une(e){T2=e.wasm.cwrap(ei,null,["number","number","number"])}function cne(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,o=n.makeOutput(a.shape,"float32"),l=n.dataIdMap.get(o.dataId).id;return T2(s,i,l),o}var pne={kernelName:ei,backendName:"wasm",setupFunc:une,kernelFunc:cne},N2;function dne(e){N2=e.wasm.cwrap(ll,null,["number","number","number","number"])}function hne(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=mu(i,r,t),m=p;if(h){let x=t.dataIdMap.get(u.dataId).id;x!==o&&(c=u,l=x,m=_.getInnerMostAxes(m.length,c.shape.length))}_.assertAxesAreInnerMostDims("prod",m,c.shape.length);let[f,g]=_.computeOutAndReduceShapes(c.shape,m),y=w.sizeFromShape(g),b=t.makeOutput(f,c.dtype);if(w.sizeFromShape(c.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;N2(l,y,Hn[b.dtype],x)}if(h&&t.disposeData(u.dataId),s){let x=_.expandShapeToKeepDim(b.shape,d);b.shape=x}return b}var mne={kernelName:ll,backendName:"wasm",setupFunc:dne,kernelFunc:hne},fne=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=yv(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},gne={kernelName:oc,backendName:"wasm",kernelFunc:fne},yne=!0,bne=gn(Ms,yne),xne=An(ti),vne=An(ai),S2;function wne(e){S2=e.wasm.cwrap(ni,null,["number","number","number","number","number","number","number","number","number","number"])}function kne(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,c]=o,[u,p,d,h]=r.shape,m=[u,l,c,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=Wm({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let y=f.id,b=t.makeOutput(m,"float32");if(w.sizeFromShape(r.shape)===0)return b;let x=t.dataIdMap.get(b.dataId).id;return S2(y,u,p,d,h,l,c,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),b}var Ine={kernelName:ni,backendName:"wasm",setupFunc:wne,kernelFunc:kne},C2;function Tne(e){C2=e.wasm.cwrap(ri,null,["number","array","number","array","number","number"])}function Nne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=w.parseAxisParam(s,r.shape);if(r.shape.length===0)return zm({inputs:{x:r},backend:n});let o=n.makeOutput(r.shape,r.dtype),l=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(r.shape).buffer);C2(l,u,i.length,p,r.shape.length,c);let d=Ma({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),d}var Sne={kernelName:ri,backendName:"wasm",kernelFunc:Nne,setupFunc:Tne},_2;function Cne(e){_2=e.wasm.cwrap(Tl,null,["number","number","number","number","number","number","number","number","array","number","number"])}function _ne(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{radians:s,fillValue:i,center:o}=a,l=n.makeOutput(r.shape,r.dtype),c=n.dataIdMap.get(r.dataId).id,u=n.dataIdMap.get(l.dataId).id,[p,d,h,m]=r.shape,[f,g]=_.getImageCenter(o,d,h),y=i===0,b=255,x=typeof i=="number"?[i,i,i,y?0:b]:[...i,b],v=new Uint8Array(new Int32Array(x).buffer);return _2(c,p,d,h,m,s,f,g,v,x.length,u),l}var Ene={kernelName:Tl,backendName:"wasm",kernelFunc:_ne,setupFunc:Cne},Fne=An(si),Ane=An(ii),E2;function $ne(e){E2=e.wasm.cwrap(pl,null,["number","number","number","number","number","number","array","number","number"])}function Dne(e){let{backend:t,inputs:n,attrs:a}=e,{indices:r,updates:s}=n,{shape:i}=a,o=t.makeOutput(i,s.dtype);if(w.sizeFromShape(i)===0)return o;let{sliceRank:l,numUpdates:c,sliceSize:u,strides:p,outputSize:d}=hy.calculateShapes(s,r,i),h=t.dataIdMap.get(r.dataId).id,m=t.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(p).buffer),g=t.dataIdMap.get(o.dataId).id;return E2(h,m,Hn[s.dtype],l,c,u,f,d,g),o}var Rne={kernelName:pl,backendName:"wasm",setupFunc:$ne,kernelFunc:Dne},F2;function Mne(e){F2=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function Pne(e){let{inputs:t,backend:n}=e,{condition:a,t:r,e:s}=t,i=n.dataIdMap.get(a.dataId).id,o=n.dataIdMap.get(r.dataId).id,l=n.dataIdMap.get(s.dataId).id,c=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(c.dataId).id,p=a.shape.length,d=r.shape.length,h=p===0||p>1||d===1?1:w.sizeFromShape(r.shape.slice(1));return F2(i,o,l,h,u),c}var One={kernelName:dl,backendName:"wasm",kernelFunc:Pne,setupFunc:Mne},A2;function Lne(e){A2=e.wasm.cwrap(li,null,["number","number"])}function zne(e){let{backend:t,inputs:{x:n}}=e,a=t.dataIdMap.get(n.dataId).id,r=t.makeOutput(n.shape,n.dtype),s=t.dataIdMap.get(r.dataId).id;return w.sizeFromShape(r.shape)===0||A2(a,s),r}var Bne={kernelName:"Sigmoid",backendName:"wasm",setupFunc:Lne,kernelFunc:zne},Wne=An(oi);function Vm(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=pn.parseSliceParams(t,n,a),o=pn.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),c=r.makeOutput(i,t.dtype),u=w.computeStrides(t.shape),p=r.dataIdMap.get(c.dataId);if(o){let m=pn.computeFlatOffset(s,u);return t.dtype==="string"?p.stringBytes=l.slice(m,m+w.sizeFromShape(i)):r.typedArrayFromHeap(c).set(l.subarray(m,m+w.sizeFromShape(i))),c}if(t.dtype==="string"){let m=wm(l,s,i,t.shape,t.dtype);return p.stringBytes=m,c}let d=r.typedArrayFromHeap(c),h=t.shape.length;if(h===2)Vne(l,u[0],d,s,i);else if(h===3)Une(l,u[0],u[1],d,s,i);else if(h===4)Gne(l,u[0],u[1],u[2],d,s,i);else{let m=wm(l,s,i,t.shape,t.dtype);d.set(m)}return c}function Vne(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let c=i;c{let d=[...u];d[o]=p;let h=Vm({inputs:{x:r},attrs:{begin:c,size:d},backend:a});return c[o]+=p,h})}var Yne={kernelName:bl,backendName:"wasm",kernelFunc:Xne},Jne=An(ui),Qne=An(cc),Zne=!0,eae=gn(di,Zne),D2;function tae(e){D2=e.wasm.cwrap(Gr,null,["number","number","number"])}function nae(e){let{backend:t,inputs:n,attrs:a}=e,{alpha:r}=a,{x:s}=n,i=t.dataIdMap.get(s.dataId).id,o=t.makeOutput(s.shape,s.dtype),l=t.dataIdMap.get(o.dataId).id;return D2(i,r,l),o}var aae={kernelName:Gr,backendName:"wasm",setupFunc:tae,kernelFunc:nae},R2;function rae(e){R2=e.wasm.cwrap(xl,null,["number","array","number","array","array","array","array","array","number","number"])}function sae(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{begin:s,end:i,strides:o}=a;o==null&&(o=new Array(s.length));let{beginMask:l,endMask:c,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:d}=a,h=_.slice_util.maskToAxes(u);if(h.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(u!==0&&p!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(u!==0&&d!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let m=r.shape.length-s.length,f=_.slice_util.maskToAxes(p),g=r.shape.slice();f.forEach(R=>{s[R]=0,i[R]=1,g.splice(R,0,1)});let y=Ma({inputs:{x:r},attrs:{shape:g},backend:t}),{begin:b,end:x,strides:v}=_.slice_util.getNormalizedAxes(y.shape,h,m,s,i,o,l,c,u);s=b,i=x,o=v;let N=_.slice_util.maskToAxes(d);N.forEach(R=>{i[R]=s[R]+1,o[R]=1});let T=_.slice_util.computeOutShape(s,i,o),S=T.filter((R,B)=>N.indexOf(B)===-1);if(o.every(R=>R===1)){let R=Vm({inputs:{x:r},attrs:{begin:s,size:T},backend:t});t.disposeData(y.dataId);let B=Ma({inputs:{x:R},attrs:{shape:S},backend:t});return t.disposeData(R.dataId),B}let A=t.makeOutput(S,"float32");if(!S.some(R=>R===0)){let R=t.dataIdMap.get(y.dataId).id,B=new Uint8Array(new Int32Array(w.computeStrides(y.shape)).buffer),V=new Uint8Array(new Int32Array(s).buffer),W=new Uint8Array(new Int32Array(i).buffer),G=new Uint8Array(new Int32Array(o).buffer),H=new Uint8Array(new Int32Array(S).buffer),X=new Uint8Array(new Int32Array(w.computeStrides(S)).buffer),q=t.dataIdMap.get(A.dataId).id;R2(R,B,y.shape.length,V,W,G,H,X,S.length,q)}t.disposeData(y.dataId);let $=Ma({inputs:{x:A},attrs:{shape:S},backend:t});return t.disposeData(A.dataId),$}var iae={kernelName:xl,backendName:"wasm",setupFunc:rae,kernelFunc:sae},oae=!0,lae=gn(hi,oae),M2;function uae(e){M2=e.wasm.cwrap(ci,null,["number, number, number"])}function cae(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=mu(i,r,t),m=p;if(h){let x=t.dataIdMap.get(u.dataId).id;x!==o&&(c=u,l=x,m=_.getInnerMostAxes(m.length,c.shape.length))}_.assertAxesAreInnerMostDims("sum",m,c.shape.length);let[f,g]=_.computeOutAndReduceShapes(c.shape,m),y=w.sizeFromShape(g),b=t.makeOutput(f,c.dtype);if(w.sizeFromShape(c.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;M2(l,y,x)}if(h&&t.disposeData(u.dataId),s){let x=_.expandShapeToKeepDim(b.shape,d);b.shape=x}return b}var pae={kernelName:ci,backendName:"wasm",setupFunc:uae,kernelFunc:cae},dae=An(mi),P2;function hae(e){P2=e.wasm.cwrap(Ur,null,["number","array","number","array","number","number"])}function mae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,s=n.dataIdMap.get(r.dataId).id,{reps:i}=a,o=new Array(r.shape.length);for(let d=0;d{let{x:a}=e,{k:r,sorted:s}=n,i=t.dataIdMap.get(a.dataId).id,o=new Uint8Array(new Int32Array(a.shape).buffer),l=a.shape.slice();l[l.length-1]=r;let c=t.makeOutput(l,a.dtype),u=t.dataIdMap.get(c.dataId).id,p=t.makeOutput(l,"int32"),d=t.dataIdMap.get(p.dataId).id;return O2(i,o,a.shape.length,Hn[a.dtype],r,s,u,d),[c,p]},bae={kernelName:wl,backendName:"wasm",setupFunc:gae,kernelFunc:yae};function xae(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape[s],o=r.shape.length,l=new Array(o-1),c=0;for(let h=0;h({dataId:h,dtype:m,shape:l}))}var vae={kernelName:kl,backendName:"wasm",kernelFunc:xae};function wae(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var kae={kernelName:Il,backendName:"wasm",kernelFunc:wae},Iae=[VZ,GZ,qZ,tee,ree,lee,uee,cee,hee,mee,yee,vee,wee,Tee,Cee,Fee,Dee,Mee,Pee,Oee,zee,Vee,Uee,Hee,WZ,Kee,Jee,ete,ate,ite,lte,cte,KZ,hte,fte,yte,bte,vte,Ite,Nte,_te,Ate,Rte,Pte,Lte,zte,Vte,Hte,Kte,Yte,Zte,tne,ane,ine,lne,pne,mne,gne,bne,xne,vne,see,Ine,Sne,Ene,Ane,Fne,Rne,One,Bne,Wne,Hne,Kne,Yne,Jne,Qne,eae,aae,iae,lae,pae,dae,fae,bae,QZ,vae,kae];for(let e of Iae)hc(e);var Kv=ee();Kv.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11])));Kv.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(Kv.get("IS_NODE"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(e){return!1}});var L2=Io(J_()),Tae='var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);Module["wasmModule"]=null;receiveInstance(instance);return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance;moduleLoaded()})}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["_emscripten_tls_init"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].setThreadStatus(Module["_pthread_self"](),1);try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(!Module["getNoExitRuntime"]())Module["PThread"].threadExit(result)}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["getNoExitRuntime"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}}',Nae=Io(Q_()),z2=class extends ju{constructor(e){super();this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new rd(this,Ua())}write(e,t,n){let a={id:this.dataIdNextNumber++};return this.move(a,e,t,n,1),a}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=w.now();return e(),{kernelMs:w.now()-t}}move(e,t,n,a,r){let s=this.dataIdNextNumber++;if(a==="string"){let c=t;this.dataIdMap.set(e,{id:s,stringBytes:c,shape:n,dtype:a,memoryOffset:null,refCount:r});return}let i=w.sizeFromShape(n),o=i*w.bytesPerElement(a),l=this.wasm._malloc(o);this.dataIdMap.set(e,{id:s,memoryOffset:l,shape:n,dtype:a,refCount:r}),this.wasm.tfjs.registerTensor(s,i,l),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,o),l)}async read(e){return this.readSync(e)}readSync(e){let{memoryOffset:t,dtype:n,shape:a,stringBytes:r}=this.dataIdMap.get(e);if(n==="string")return r;let s=this.wasm.HEAPU8.slice(t,t+w.sizeFromShape(a)*w.bytesPerElement(n));return Sae(s.buffer,n)}disposeData(e,t=!1){if(this.dataIdMap.has(e)){let n=this.dataIdMap.get(e);if(n.refCount--,!t&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(e)}return!0}refCount(e){return this.dataIdMap.has(e)?this.dataIdMap.get(e).refCount:0}incRef(e){let t=this.dataIdMap.get(e);t!=null&&t.refCount++}floatPrecision(){return 32}getMemoryOffset(e){return this.dataIdMap.get(e).memoryOffset}dispose(){this.wasm.tfjs.dispose(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n){let a;if(n==null)a=this.write(null,e,t);else{let r=this.dataIdNextNumber++;a={id:r},this.dataIdMap.set(a,{id:r,memoryOffset:n,shape:e,dtype:t,refCount:1});let s=w.sizeFromShape(e);this.wasm.tfjs.registerTensor(r,s,n)}return{dataId:a,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:n}){let a=this.wasm.HEAPU8.buffer,{memoryOffset:r}=this.dataIdMap.get(n),s=w.sizeFromShape(e);switch(t){case"float32":return new Float32Array(a,r,s);case"int32":return new Int32Array(a,r,s);case"bool":return new Uint8Array(a,r,s);default:throw new Error(`Unknown dtype ${t}`)}}};function Cae(e){return(t,n)=>(w.fetch(e,{credentials:"same-origin"}).then(a=>{a.ok||t.env.a(`failed to load wasm binary file at '${e}'`),a.arrayBuffer().then(r=>{WebAssembly.instantiate(r,t).then(s=>{n(s.instance)})})}),{})}function B2(e,t,n){if(Um!=null)return Um;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),fp!=null&&fp[a]!=null?fp[a]:n+a}async function _ae(){let[e,t]=await Promise.all([ee().getAsync("WASM_HAS_SIMD_SUPPORT"),ee().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let c=Tae,u=new Blob([c],{type:"application/javascript"});return URL.createObjectURL(u)}return o.endsWith(".wasm")?B2(e,t,gp!=null?gp:l):l+o},Xv&&(r.instantiateWasm=Cae(B2(e,t,gp!=null?gp:"")));let s=!1;r.onAbort=()=>{s||yp||(yp=!0,a({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"}))};let i;t&&e&&Um==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+L2.default.toString()],{type:"text/javascript"}),i=(0,L2.default)(r)):i=(0,Nae.default)(r),i.then(o=>{s=!0,yp=!1;let l=null;o.tfjs={init:o.cwrap("init",null,[]),registerTensor:o.cwrap("register_tensor",null,["number","number","number"]),disposeData:o.cwrap("dispose_data",l,["number"]),dispose:o.cwrap("dispose",l,[])},n({wasm:o})})})}function Sae(e,t){switch(t){case"float32":return new Float32Array(e);case"int32":return new Int32Array(e);case"bool":return new Uint8Array(e);default:throw new Error(`Unknown dtype ${t}`)}}var Eae=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],Um=null,gp=null,fp={},yp=!1,Xv=!1;function Fae(e,t=!1){if(xy("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),yp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");Um=e,Xv=t}function Aae(e,t=!1){if(yp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof e=="string")gp=e;else{fp=e;let n=Eae.filter(a=>fp[a]==null);if(n.length>0)throw new Error(`There were no entries found for the following binaries: ${n.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}Xv=t}var $ae="3.2.0",Dae=2;Jd("wasm",async()=>{let{wasm:e}=await _ae();return new z2(e)},Dae);var ww={};td(ww,{AnchorPosition:()=>ir,DrawBox:()=>qm,DrawBoxOptions:()=>cw,DrawFaceLandmarks:()=>vw,DrawFaceLandmarksOptions:()=>xw,DrawTextField:()=>fs,DrawTextFieldOptions:()=>wp,drawContour:()=>Nr,drawDetections:()=>Gae,drawFaceExpressions:()=>Kae,drawFaceLandmarks:()=>Yae});function Nr(e,t,n=!1){if(e.beginPath(),t.slice(1).forEach(({x:a,y:r},s)=>{let i=t[s];e.moveTo(i.x,i.y),e.lineTo(a,r)}),n){let a=t[t.length-1],r=t[0];if(!a||!r)return;e.moveTo(a.x,a.y),e.lineTo(r.x,r.y)}e.stroke()}var Yv={};td(Yv,{computeReshapedDimensions:()=>Zv,getCenterPoint:()=>Xi,isDimensions:()=>Hm,isEven:()=>Gm,isFloat:()=>Qv,isTensor:()=>qi,isTensor1D:()=>Rae,isTensor2D:()=>Jv,isTensor3D:()=>Sr,isTensor4D:()=>aa,isValidNumber:()=>Pa,isValidProbablitiy:()=>fu,range:()=>rr,round:()=>Ki});var yn=class{constructor(t,n){if(!Pa(t)||!Pa(n))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:n})}`);this._width=t,this._height=n}get width(){return this._width}get height(){return this._height}reverse(){return new yn(1/this.width,1/this.height)}};function qi(e,t){return e instanceof Ee&&e.shape.length===t}function Rae(e){return qi(e,1)}function Jv(e){return qi(e,2)}function Sr(e){return qi(e,3)}function aa(e){return qi(e,4)}function Qv(e){return e%1!=0}function Gm(e){return e%2==0}function Ki(e,t=2){let n=10**t;return Math.floor(e*n)/n}function Hm(e){return e&&e.width&&e.height}function Zv({width:e,height:t},n){let a=n/Math.max(t,e);return new yn(Math.round(e*a),Math.round(t*a))}function Xi(e){return e.reduce((t,n)=>t.add(n),new De(0,0)).div(new De(e.length,e.length))}function rr(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function Pa(e){return!!e&&e!==Infinity&&e!==-Infinity&&!Number.isNaN(e)||e===0}function fu(e){return Pa(e)&&e>=0&&e<=1}var De=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new De(this.x+t.x,this.y+t.y)}sub(t){return new De(this.x-t.x,this.y-t.y)}mul(t){return new De(this.x*t.x,this.y*t.y)}div(t){return new De(this.x/t.x,this.y/t.y)}abs(){return new De(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new De(Math.floor(this.x),Math.floor(this.y))}};var lt=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Pa)}static assertIsValidBox(t,n,a=!1){if(!lt.isRect(t))throw new Error(`${n} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!a&&(t.width<0||t.height<0))throw new Error(`${n} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,n=!0){let a=t||{},r=[a.left,a.top,a.right,a.bottom].every(Pa),s=[a.x,a.y,a.width,a.height].every(Pa);if(!s&&!r)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(a)}`);let[i,o,l,c]=s?[a.x,a.y,a.width,a.height]:[a.left,a.top,a.right-a.left,a.bottom-a.top];lt.assertIsValidBox({x:i,y:o,width:l,height:c},"Box.constructor",n),this._x=i,this._y=o,this._width=l,this._height=c}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new De(this.left,this.top)}get topRight(){return new De(this.right,this.top)}get bottomLeft(){return new De(this.left,this.bottom)}get bottomRight(){return new De(this.right,this.bottom)}round(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new lt({x:t,y:n,width:a,height:r})}floor(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new lt({x:t,y:n,width:a,height:r})}toSquare(){let{x:t,y:n,width:a,height:r}=this,s=Math.abs(a-r);return an&&(o=-p+n+a,p=n),d>t&&(l=-d+t+r,d=t),c<1&&(l=2-c,c=1),u<1&&(l=2-u,u=1),{dy:i,edy:l,dx:s,edx:o,y:u,ey:d,x:c,ex:p,w:a,h:r}}calibrate(t){return new lt({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var gu=class extends lt{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var ms=class{constructor(t,n,a,r,s){this._imageDims=new yn(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new lt(r).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new lt(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new ms(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var gt=class extends ms{constructor(t,n,a){super(t,t,"",n,a)}forSize(t,n){let{score:a,relativeBox:r,imageDims:s}=super.forSize(t,n);return new gt(a,r,s)}};function ew(e,t,n=!0){let a=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),r=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),s=a*r;return n?s/(e.area+t.area-s):s/Math.min(e.area,t.area)}function tw(e){let t=e.map(o=>o.x),n=e.map(o=>o.y),a=t.reduce((o,l)=>lloo({score:i,boxIndex:o})).sort((i,o)=>i.score-o.score).map(i=>i.boxIndex),s=[];for(;r.length>0;){let i=r.pop();s.push(i);let o=r,l=[];for(let c=0;cl[u]<=n)}return s}function Oa(e,t){return D(()=>{let[n,a,r]=t,s=Sn([...e.shape.slice(0,3),1],n,"float32"),i=Sn([...e.shape.slice(0,3),1],a,"float32"),o=Sn([...e.shape.slice(0,3),1],r,"float32"),l=Je([s,i,o],3);return me(e,l)})}function aw(e,t=!1){return D(()=>{let[n,a]=e.shape.slice(1);if(n===a)return e;let r=Math.abs(n-a),s=Math.round(r*(t?.5:1)),i=n>a?2:1,o=d=>{let h=e.shape.slice();return h[i]=d,Sn(h,0,"float32")},l=o(s),c=r-l.shape[i],p=[t&&c?o(c):null,e,l].filter(d=>!!d).map(d=>ue(d,"float32"));return Je(p,i)})}function Mae(e){let t=e.slice();for(let n=t.length-1;n>0;n--){let a=Math.floor(Math.random()*(n+1)),r=t[n];t[n]=t[a],t[a]=r}return t}function bp(e){return 1/(1+Math.exp(-e))}function Pae(e){return Math.log(e/(1-e))}var yu=class extends lt{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var Oae=.5,Lae=.43,zae=.45,ra=class{constructor(t,n,a=new De(0,0)){let{width:r,height:s}=n;this._imgDims=new yn(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new De(r,s)).add(a))}get shift(){return new De(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new De(this.imageWidth,this.imageHeight)))}forSize(t,n){return new this.constructor(this.relativePositions,{width:t,height:n})}shiftBy(t,n){return new this.constructor(this.relativePositions,this._imgDims,new De(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof gt?t.box.floor():new lt(t);return this.shiftBy(s.x,s.y).align(null,n)}let{useDlibAlignment:a,minBoxPadding:r}={useDlibAlignment:!1,minBoxPadding:.2,...n};return a?this.alignDlib():this.alignMinBbox(r)}alignDlib(){let t=this.getRefPointsForAlignment(),[n,a,r]=t,s=p=>r.sub(p).magnitude(),i=(s(n)+s(a))/2,o=Math.floor(i/zae),l=Xi(t),c=Math.floor(Math.max(0,l.x-Oae*o)),u=Math.floor(Math.max(0,l.y-Lae*o));return new yu(c,u,Math.min(o,this.imageWidth+c),Math.min(o,this.imageHeight+u))}alignMinBbox(t){let n=tw(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var W2=class extends ra{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],Xi([t[3],t[4]])]}};var bu=class extends ra{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(Xi)}};var xp=class{constructor(t,n){this._label=t,this._distance=n}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Ki(this.distance)})`:""}`}};var vp=class extends lt{static assertIsValidLabeledBox(t,n){if(lt.assertIsValidBox(t,n),!Pa(t.label))throw new Error(`${n} - expected property label (${t.label}) to be a number`)}constructor(t,n){super(t);this._label=n}get label(){return this._label}};var Cr=class{constructor(t,n){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(n)||n.some(a=>!(a instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=n}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let n=t.descriptors.map(a=>new Float32Array(a));return new Cr(t.label,n)}};var V2=class extends vp{static assertIsValidPredictedBox(t,n){if(vp.assertIsValidLabeledBox(t,n),!fu(t.score)||!fu(t.classScore))throw new Error(`${n} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,n,a,r){super(t,n);this._score=a,this._classScore=r}get score(){return this._score}get classScore(){return this._classScore}};function sr(e){return e.detection instanceof gt}function Yi(e,t){return{...e,...{detection:t}}}function rw(){let e=window.fetch;if(!e)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:e,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function jm(e){let t="";if(!e)try{e=require("fs")}catch(a){t=a.toString()}return{readFile:e?a=>new Promise((r,s)=>{e.readFile(a,(i,o)=>i?s(i):r(o))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function sw(){let e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=()=>{if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},a=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},r=global.fetch,s=jm();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:n,createImageElement:a,fetch:r,...s}}function iw(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var ow=A_(G2()),Qt;function Vae(){if(!Qt)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return Qt}function lw(e){Qt=e}function uw(){return iw()?lw(rw()):(0,ow.isNodejs)()?lw(sw()):null}function Uae(e){if(Qt||uw(),!Qt)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=Qt.Canvas,Image:n=Qt.Image}=e;Qt.Canvas=t,Qt.Image=n,Qt.createCanvasElement=e.createCanvasElement||(()=>new t),Qt.createImageElement=e.createImageElement||(()=>new n),Qt.ImageData=e.ImageData||Qt.ImageData,Qt.Video=e.Video||Qt.Video,Qt.fetch=e.fetch||Qt.fetch,Qt.readFile=e.readFile||Qt.readFile}var rt={getEnv:Vae,setEnv:lw,initialize:uw,createBrowserEnv:rw,createFileSystem:jm,createNodejsEnv:sw,monkeyPatch:Uae,isBrowser:iw,isNodejs:ow.isNodejs};uw();function Ji(e){return!rt.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function $n(e){let{Canvas:t,CanvasRenderingContext2D:n}=rt.getEnv();if(e instanceof n)return e;let a=Ji(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d");if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var ir;(function(e){e.TOP_LEFT="TOP_LEFT",e.TOP_RIGHT="TOP_RIGHT",e.BOTTOM_LEFT="BOTTOM_LEFT",e.BOTTOM_RIGHT="BOTTOM_RIGHT"})(ir||(ir={}));var wp=class{constructor(t={}){let{anchorPosition:n,backgroundColor:a,fontColor:r,fontSize:s,fontStyle:i,padding:o}=t;this.anchorPosition=n||ir.TOP_LEFT,this.backgroundColor=a||"rgba(0, 0, 0, 0.5)",this.fontColor=r||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=i||"Georgia",this.padding=o||4}},fs=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof fs?t.text:t,this.anchor=n,this.options=new wp(a)}measureWidth(t){let{padding:n}=this.options;return this.text.map(a=>t.measureText(a).width).reduce((a,r)=>a{let m=l+p.x,f=l+p.y+(h+1)*i;a.fillText(d,m,f)})}};var cw=class{constructor(t={}){let{boxColor:n,lineWidth:a,label:r,drawLabelOptions:s}=t;this.boxColor=n||"rgba(0, 0, 255, 1)",this.lineWidth=a||2,this.label=r;let i={anchorPosition:ir.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new wp({...i,...s})}},qm=class{constructor(t,n={}){this.box=new lt(t),this.options=new cw(n)}draw(t){let n=$n(t),{boxColor:a,lineWidth:r}=this.options,{x:s,y:i,width:o,height:l}=this.box;n.strokeStyle=a,n.lineWidth=r,n.strokeRect(s,i,o,l);let{label:c}=this.options;c&&new fs([c],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function Gae(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof gt?a.score:sr(a)?a.detection.score:void 0,s=a instanceof gt?a.box:sr(a)?a.detection.box:new lt(a),i=r?`${Ki(r)}`:void 0;new qm(s,{label:i}).draw(e)})}function kp(e){let{Image:t,Video:n}=rt.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function pw(e){return new Promise((t,n)=>{if(e instanceof rt.getEnv().Canvas||kp(e))return t(null);function a(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),n(s))}function r(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),t(s))}e.addEventListener("load",r),e.addEventListener("error",a)})}function dw(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToImage - expected buf to be of type: Blob"));let a=new FileReader;a.onload=()=>{typeof a.result!="string"&&n(new Error("bufferToImage - expected reader.result to be a string, in onload"));let r=rt.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function Qi(e){let{Image:t,Video:n}=rt.getEnv();return e instanceof t?new yn(e.naturalWidth,e.naturalHeight):e instanceof n?new yn(e.videoWidth,e.videoHeight):new yn(e.width,e.height)}function Zi({width:e,height:t}){let{createCanvasElement:n}=rt.getEnv(),a=n();return a.width=e,a.height=t,a}function Ip(e,t){let{ImageData:n}=rt.getEnv();if(!(e instanceof n)&&!kp(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||Qi(e),s=Zi({width:a,height:r});return e instanceof n?$n(s).putImageData(e,0,0):$n(s).drawImage(e,0,0,a,r),s}async function hw(e,t){let n=t||rt.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(aa(e)?1:0),i=D(()=>e.as3D(a,r,s).toInt());return await ki.toPixels(i,n),i.dispose(),n}function Km(e){let{Image:t,Canvas:n,Video:a}=rt.getEnv();return e instanceof t||e instanceof n||e instanceof a}function mw(e,t,n=!1){let{Image:a,Canvas:r}=rt.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Zi({width:1,height:1});let s=Qi(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,c=Zi({width:t,height:t}),u=e instanceof r?e:Ip(e),p=Math.abs(o-l)/2,d=n&&o0&&u.height>0&&$n(c).drawImage(u,d,h,o,l),c}var _r=class{constructor(t,n=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=n,this._batchSize=t.length,t.forEach((a,r)=>{if(Sr(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(aa(a)){let i=a.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[r]=a,this._inputDimensions[r]=a.shape.slice(1);return}let s=a instanceof rt.getEnv().Canvas?a:Ip(a);this._canvases[r]=s,this._inputDimensions[r]=[s.height,s.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return rr(this.batchSize,0,1).map((t,n)=>this.getReshapedInputDimensions(n))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let n=this.getInputWidth(t),a=this.getInputHeight(t);return Zv({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,D(()=>{let a=rr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Ee){let o=aa(i)?i:i.expandDims();return o=aw(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=Xa.resizeBilinear(o,[t,t])),o.as3D(t,t,3)}if(i instanceof rt.getEnv().Canvas)return ki.fromPixels(mw(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return $t(a.map(s=>ue(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function ht(e){if(e instanceof _r)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");let n=r=>Array.isArray(e)?` at input index ${r}:`:"",a=t.map(Ji);return a.forEach((r,s)=>{if(!Km(r)&&!Sr(r)&&!aa(r))throw typeof t[s]=="string"?new Error(`toNetInput -${n(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${n(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(aa(r)){let i=r.shape[0];if(i!==1)throw new Error(`toNetInput -${n(s)} tf.Tensor4D with batchSize ${i} passed, but not supported in input array`)}}),await Promise.all(a.map(r=>Km(r)&&pw(r))),new _r(a,Array.isArray(e))}async function xu(e,t){let{Canvas:n}=rt.getEnv(),a=e;if(!(e instanceof n)){let i=await ht(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await hw(o)}let r=$n(a);return t.map(i=>i instanceof gt?i.forSize(a.width,a.height).box.floor():i).map(i=>i.clipAtImageBorders(a.width,a.height)).map(({x:i,y:o,width:l,height:c})=>{let u=Zi({width:l,height:c});return l>0&&c>0&&$n(u).putImageData(r.getImageData(i,o,l,c),0,0),u})}async function vu(e,t){if(!Sr(e)&&!aa(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(aa(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return D(()=>{let[n,a,r]=e.shape.slice(aa(e)?1:0);return t.map(o=>o instanceof gt?o.forSize(a,n).box:o).map(o=>o.clipAtImageBorders(a,n)).map(({x:o,y:l,width:c,height:u})=>Bl(e.as3D(n,a,r),[l,o,0],[u,c,r]))})}async function eo(e,t){let{fetch:n}=rt.getEnv(),a=await n(e,t);if(!(a.status<400))throw new Error(`failed to fetch: (${a.status}) ${a.statusText}, from url: ${a.url}`);return a}async function Hae(e){let t=await eo(e),n=await t.blob();if(!n.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${n.type}, for url: ${t.url}`);return dw(n)}async function fw(e){return(await eo(e)).json()}async function jae(e){return new Float32Array(await(await eo(e)).arrayBuffer())}function Xm(e,t){let n=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:n};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${n}`};let a=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(a,"");let r=e.split("/").filter(o=>o),s=e.endsWith(".json")?r[r.length-1]:n,i=a+(e.endsWith(".json")?r.slice(0,r.length-1):r).join("/");return i=e.startsWith("/")?`/${i}`:i,{modelBaseUri:i,manifestUri:i==="/"?`/${s}`:`${i}/${s}`}}async function gw(e,t){let{manifestUri:n,modelBaseUri:a}=Xm(e,t),r=await fw(n);return Ht.loadWeights(r,a)}function qae(e,t,n=!1){let{width:a,height:r}=n?Qi(t):t;return e.width=a,e.height=r,{width:a,height:r}}var sn=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:n,objProp:a}=this.traversePropertyPath(t);return n[a]}reassignParamFromPath(t,n){let{obj:a,objProp:r}=this.traversePropertyPath(t);a[r].dispose(),a[r]=n}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof Hr)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof Hr))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=Yn(n.dataSync());n.dispose(),this.reassignParamFromPath(t,a)})}dispose(t=!0){this.getParamList().forEach(n=>{if(t&&n.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${n.path}`);n.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,n)=>t.concat(n)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let n=await gw(t,this.getDefaultModelName());this.loadFromWeightMap(n)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:n}=rt.getEnv(),{manifestUri:a,modelBaseUri:r}=Xm(t,this.getDefaultModelName()),s=c=>Promise.all(c.map(u=>n(u).then(p=>p.buffer))),i=Ht.weightsLoaderFactory(s),o=JSON.parse((await n(a)).toString()),l=await i(o,r);this.loadFromWeightMap(l)}loadFromWeightMap(t){let{paramMappings:n,params:a}=this.extractParamsFromWeightMap(t);this._paramMappings=n,this._params=a}extractWeights(t){let{paramMappings:n,params:a}=this.extractParams(t);this._paramMappings=n,this._params=a}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let n=t.split("/").reduce((s,i)=>{if(!s.nextObj.hasOwnProperty(i))throw new Error(`traversePropertyPath - object does not have property ${i}, for path ${t}`);return{obj:s.nextObj,objProp:i,nextObj:s.nextObj[i]}},{nextObj:this.params}),{obj:a,objProp:r}=n;if(!a||!r||!(a[r]instanceof Ee))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function Dn(e,t,n){return D(()=>{let a=Ei(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=J(a,t.bias),a})}function Ym(e,t,n=!1){return D(()=>{let a=qe(n?J(Ft(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Dn(e,t.conv0,[2,2])),r=Dn(a,t.conv1,[1,1]),s=qe(J(a,r)),i=Dn(s,t.conv2,[1,1]);return qe(J(a,J(r,i)))})}function Tp(e,t,n=!1,a=!0){return D(()=>{let r=qe(n?J(Ft(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):Dn(e,t.conv0,a?[2,2]:[1,1])),s=Dn(r,t.conv1,[1,1]),i=qe(J(r,s)),o=Dn(i,t.conv2,[1,1]),l=qe(J(r,J(s,o))),c=Dn(l,t.conv3,[1,1]);return qe(J(r,J(s,J(o,c))))})}function to(e,t,n="same",a=!1){return D(()=>{let r=J(Ft(e,t.filters,[1,1],n),t.bias);return a?qe(r):r})}function bn(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function wu(e,t){return(n,a,r,s)=>{let i=Sa(e(n*a*r*r),[r,r,n,a]),o=Qe(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function Jm(e,t){return(n,a,r)=>{let s=Na(e(n*a),[n,a]),i=Qe(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var Qm=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function ku(e,t){return(n,a,r)=>{let s=Sa(e(3*3*n),[3,3,n,1]),i=Sa(e(n*a),[1,1,n,a]),o=Qe(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new Qm(s,i,o)}}function Iu(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new Qm(n,a,r)}}function jn(e,t){return(n,a,r)=>{let s=e[n];if(!qi(s,a))throw new Error(`expected weightMap[${n}] to be a Tensor${a}D, instead have ${s}`);return t.push({originalPath:n,paramPath:r||n}),s}}function xn(e){let t=e;function n(r){let s=t.slice(0,r);return t=t.slice(r),s}function a(){return t}return{extractWeights:n,getRemainingWeights:a}}function Zm(e,t){let n=wu(e,t),a=ku(e,t);function r(i,o,l,c=!1){let u=c?n(i,o,3,`${l}/conv0`):a(i,o,`${l}/conv0`),p=a(o,o,`${l}/conv1`),d=a(o,o,`${l}/conv2`);return{conv0:u,conv1:p,conv2:d}}function s(i,o,l,c=!1){let{conv0:u,conv1:p,conv2:d}=r(i,o,l,c),h=a(o,o,`${l}/conv3`);return{conv0:u,conv1:p,conv2:d,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:s}}function H2(e){let t=[],{extractWeights:n,getRemainingWeights:a}=xn(e),{extractDenseBlock4Params:r}=Zm(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2"),l=r(128,256,"dense3");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o,dense3:l}}}function ef(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function tf(e,t){let n=jn(e,t),a=ef(n),r=Iu(n);function s(o,l=!1){let c=l?a(`${o}/conv0`):r(`${o}/conv0`),u=r(`${o}/conv1`),p=r(`${o}/conv2`);return{conv0:c,conv1:u,conv2:p}}function i(o,l=!1){let c=l?a(`${o}/conv0`):r(`${o}/conv0`),u=r(`${o}/conv1`),p=r(`${o}/conv2`),d=r(`${o}/conv3`);return{conv0:c,conv1:u,conv2:p,conv3:d}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function j2(e){let t=[],{extractDenseBlock4Params:n}=tf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return bn(e,t),{params:a,paramMappings:t}}var Np=class extends sn{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return D(()=>{let a=ue(t.toBatchTensor(112,!0),"float32"),s=Oa(a,[122.782,117.001,104.298]).div(pe(255)),i=Tp(s,n.dense0,!0);return i=Tp(i,n.dense1),i=Tp(i,n.dense2),i=Tp(i,n.dense3),i=Qn(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await ht(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return j2(t)}extractParams(t){return H2(t)}};function Sp(e,t){return D(()=>J(ze(e,t.weights),t.bias))}function q2(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=xn(e),o=Jm(r,a)(t,n,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:a,params:{fc:o}}}function K2(e){let t=[],n=jn(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:a("fc")};return bn(e,t),{params:r,paramMappings:t}}function nf(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=a.startsWith("fc")?n:t;r[a]=e[a]}),{featureExtractorMap:t,classifierMap:n}}var Cp=class extends sn{constructor(t,n){super(t);this._faceFeatureExtractor=n}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:n}=this;if(!n)throw new Error(`${this._name} - load model before inference`);return D(()=>{let a=t instanceof _r?this.faceFeatureExtractor.forwardInput(t):t;return Sp(a.as2D(a.shape[0],-1),n.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:n,paramMappings:a}=this.extractClassifierParams(t);this._params=n,this._paramMappings=a}extractClassifierParams(t){return q2(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=nf(t);return this.faceFeatureExtractor.loadFromWeightMap(n),K2(a)}extractParams(t){let n=this.getClassifierChannelsIn(),a=this.getClassifierChannelsOut(),r=a*n+a,s=t.slice(0,t.length-r),i=t.slice(t.length-r);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(i)}};var yw=["neutral","happy","sad","angry","fearful","disgusted","surprised"],gs=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);yw.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return yw.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var af=class extends Cp{constructor(t=new Np){super("FaceExpressionNet",t)}forwardInput(t){return D(()=>Ta(this.runNet(t)))}async forward(t){return this.forwardInput(await ht(t))}async predictExpressions(t){let n=await ht(t),a=await this.forwardInput(n),r=await Promise.all(ut(a).map(async i=>{let o=await i.data();return i.dispose(),o}));a.dispose();let s=r.map(i=>new gs(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function bw(e){return e.expressions instanceof gs}function rf(e,t){return{...e,...{expressions:t}}}function Kae(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof gs?s:bw(s)?s.expressions:void 0;if(!i)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let l=i.asSortedArray().filter(p=>p.probability>n),c=sr(s)?s.detection.box.bottomLeft:a||new De(0,0);new fs(l.map(p=>`${p.expression} (${Ki(p.probability)})`),c).draw(e)})}function no(e){return sr(e)&&e.landmarks instanceof ra&&e.unshiftedLandmarks instanceof ra&&e.alignedRect instanceof gt}function Xae(e){let t=(o,l,c,u)=>Math.atan2(u-l,c-o)%Math.PI,n=o=>o*180/Math.PI,a={roll:void 0,pitch:void 0,yaw:void 0};if(!e||!e._positions||e._positions.length!==68)return a;let r=e._positions;a.roll=-t(r[36]._x,r[36]._y,r[45]._x,r[45]._y),a.pitch=t(0,Math.abs(r[0]._x-r[30]._x)/r[30]._x,Math.PI,Math.abs(r[16]._x-r[30]._x)/r[30]._x);let s=r.reduce((o,l)=>oo>l._y?o:l._y,-Infinity);return a.yaw=Math.PI*(e._imgDims._height/(i-s)/1.4-1),a}function Tu(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new gt(e.detection.score,r.rescale(s.reverse()),s),o=Xae(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var xw=class{constructor(t={}){let{drawLines:n=!0,drawPoints:a=!0,lineWidth:r,lineColor:s,pointSize:i,pointColor:o}=t;this.drawLines=n,this.drawPoints=a,this.lineWidth=r||1,this.pointSize=i||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=o||"rgba(255, 0, 255, 1)"}},vw=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new xw(n)}draw(t){let n=$n(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof bu&&(n.strokeStyle=i,n.lineWidth=s,Nr(n,this.faceLandmarks.getJawOutline()),Nr(n,this.faceLandmarks.getLeftEyeBrow()),Nr(n,this.faceLandmarks.getRightEyeBrow()),Nr(n,this.faceLandmarks.getNose()),Nr(n,this.faceLandmarks.getLeftEye(),!0),Nr(n,this.faceLandmarks.getRightEye(),!0),Nr(n,this.faceLandmarks.getMouth(),!0)),r){n.strokeStyle=l,n.fillStyle=l;let c=u=>{n.beginPath(),n.arc(u.x,u.y,o,0,2*Math.PI),n.fill()};this.faceLandmarks.positions.forEach(c)}}};function Yae(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof ra?a:no(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new vw(r).draw(e)})}var X2="1.0.1";function Jae(e,t){let n=wu(e,t),a=ku(e,t);function r(i,o,l){let c=a(i,o,`${l}/separable_conv0`),u=a(o,o,`${l}/separable_conv1`),p=n(i,o,1,`${l}/expansion_conv`);return{separable_conv0:c,separable_conv1:u,expansion_conv:p}}function s(i,o){let l=a(i,i,`${o}/separable_conv0`),c=a(i,i,`${o}/separable_conv1`),u=a(i,i,`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:c,separable_conv2:u}}return{extractConvParams:n,extractSeparableConvParams:a,extractReductionBlockParams:r,extractMainBlockParams:s}}function Y2(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=xn(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=Jae(a,n),c=s(3,32,3,"entry_flow/conv_in"),u=o(32,64,"entry_flow/reduction_block_0"),p=o(64,128,"entry_flow/reduction_block_1"),d={conv_in:c,reduction_block_0:u,reduction_block_1:p},h={};rr(t,0,1).forEach(y=>{h[`main_block_${y}`]=l(128,`middle_flow/main_block_${y}`)});let m=o(128,256,"exit_flow/reduction_block"),f=i(256,512,"exit_flow/separable_conv"),g={reduction_block:m,separable_conv:f};if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:n,params:{entry_flow:d,middle_flow:h,exit_flow:g}}}function Qae(e,t){let n=jn(e,t),a=ef(n),r=Iu(n);function s(o){let l=r(`${o}/separable_conv0`),c=r(`${o}/separable_conv1`),u=a(`${o}/expansion_conv`);return{separable_conv0:l,separable_conv1:c,expansion_conv:u}}function i(o){let l=r(`${o}/separable_conv0`),c=r(`${o}/separable_conv1`),u=r(`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:c,separable_conv2:u}}return{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}}function J2(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=Qae(e,n),o=a("entry_flow/conv_in"),l=s("entry_flow/reduction_block_0"),c=s("entry_flow/reduction_block_1"),u={conv_in:o,reduction_block_0:l,reduction_block_1:c},p={};rr(t,0,1).forEach(f=>{p[`main_block_${f}`]=i(`middle_flow/main_block_${f}`)});let d=s("exit_flow/reduction_block"),h=r("exit_flow/separable_conv"),m={reduction_block:d,separable_conv:h};return bn(e,n),{params:{entry_flow:u,middle_flow:p,exit_flow:m},paramMappings:n}}function Q2(e,t,n){return J(Ft(e,t.filters,n,"same"),t.bias)}function kw(e,t,n=!0){let a=n?qe(e):e;return a=Dn(a,t.separable_conv0,[1,1]),a=Dn(qe(a),t.separable_conv1,[1,1]),a=At(a,[3,3],[2,2],"same"),a=J(a,Q2(e,t.expansion_conv,[2,2])),a}function Zae(e,t){let n=Dn(qe(e),t.separable_conv0,[1,1]);return n=Dn(qe(n),t.separable_conv1,[1,1]),n=Dn(qe(n),t.separable_conv2,[1,1]),n=J(n,e),n}var Iw=class extends sn{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyXception - load model before inference");return D(()=>{let a=ue(t.toBatchTensor(112,!0),"float32"),s=Oa(a,[122.782,117.001,104.298]).div(pe(256)),i=qe(Q2(s,n.entry_flow.conv_in,[2,2]));return i=kw(i,n.entry_flow.reduction_block_0,!1),i=kw(i,n.entry_flow.reduction_block_1),rr(this._numMainBlocks,0,1).forEach(o=>{i=Zae(i,n.middle_flow[`main_block_${o}`])}),i=kw(i,n.exit_flow.reduction_block),i=qe(Dn(i,n.exit_flow.separable_conv,[1,1])),i})}async forward(t){return this.forwardInput(await ht(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return J2(t,this._numMainBlocks)}extractParams(t){return Y2(t,this._numMainBlocks)}};function Z2(e){let t=[],{extractWeights:n,getRemainingWeights:a}=xn(e),r=Jm(n,t),s=r(512,1,"fc/age"),i=r(512,2,"fc/gender");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{fc:{age:s,gender:i}}}}function eC(e){let t=[],n=jn(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:{age:a("fc/age"),gender:a("fc/gender")}};return bn(e,t),{params:r,paramMappings:t}}var Er;(function(e){e.FEMALE="female",e.MALE="male"})(Er||(Er={}));var sf=class extends sn{constructor(t=new Iw(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:n}=this;if(!n)throw new Error(`${this._name} - load model before inference`);return D(()=>{let a=t instanceof _r?this.faceFeatureExtractor.forwardInput(t):t,r=Qn(a,[7,7],[2,2],"valid").as2D(a.shape[0],-1),s=Sp(r,n.fc.age).as1D(),i=Sp(r,n.fc.gender);return{age:s,gender:i}})}forwardInput(t){return D(()=>{let{age:n,gender:a}=this.runNet(t);return{age:n,gender:Ta(a)}})}async forward(t){return this.forwardInput(await ht(t))}async predictAgeAndGender(t){let n=await ht(t),a=await this.forwardInput(n),r=ut(a.age),s=ut(a.gender),i=r.map((l,c)=>({ageTensor:l,genderTensor:s[c]})),o=await Promise.all(i.map(async({ageTensor:l,genderTensor:c})=>{let u=(await l.data())[0],p=(await c.data())[0],d=p>.5,h=d?Er.MALE:Er.FEMALE,m=d?p:1-p;return l.dispose(),c.dispose(),{age:u,gender:h,genderProbability:m}}));return a.age.dispose(),a.gender.dispose(),n.isBatchInput?o:o[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:n,paramMappings:a}=this.extractClassifierParams(t);this._params=n,this._paramMappings=a}extractClassifierParams(t){return Z2(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=nf(t);return this.faceFeatureExtractor.loadFromWeightMap(n),eC(a)}extractParams(t){let n=512*1+1+(512*2+2),a=t.slice(0,t.length-n),r=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(r)}};var _p=class extends Cp{postProcess(t,n,a){let r=a.map(({width:i,height:o})=>{let l=n/Math.max(o,i);return{width:i*l,height:o*l}}),s=r.length;return D(()=>{let i=(p,d)=>$t([Sn([68],p,"float32"),Sn([68],d,"float32")],1).as2D(1,136).as1D(),o=(p,d)=>{let{width:h,height:m}=r[p];return d(h,m)?Math.abs(h-m)/2:0},l=p=>o(p,(d,h)=>do(p,(d,h)=>hi(l(d),c(d))))).div($t(Array.from(Array(s),(p,d)=>i(r[d].width,r[d].height))))})}forwardInput(t){return D(()=>{let n=this.runNet(t);return this.postProcess(n,t.inputSize,t.inputDimensions.map(([a,r])=>({height:a,width:r})))})}async forward(t){return this.forwardInput(await ht(t))}async detectLandmarks(t){let n=await ht(t),a=D(()=>ut(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(await s.data()),l=o.filter((u,p)=>Gm(p)),c=o.filter((u,p)=>!Gm(p));return new bu(Array(68).fill(0).map((u,p)=>new De(l[p],c[p])),{height:n.getInputHeight(i),width:n.getInputWidth(i)})}));return a.forEach(s=>s.dispose()),n.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}};var Nu=class extends _p{constructor(t=new Np){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function tC(e){let t=[],{extractDenseBlock3Params:n}=tf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return bn(e,t),{params:a,paramMappings:t}}function nC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=xn(e),{extractDenseBlock3Params:r}=Zm(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o}}}var Tw=class extends sn{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return D(()=>{let a=ue(t.toBatchTensor(112,!0),"float32"),s=Oa(a,[122.782,117.001,104.298]).div(pe(255)),i=Ym(s,n.dense0,!0);return i=Ym(i,n.dense1),i=Ym(i,n.dense2),i=Qn(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await ht(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return tC(t)}extractParams(t){return nC(t)}};var of=class extends _p{constructor(t=new Tw){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var aC=class extends Nu{};function rC(e,t){return J(L(e,t.weights),t.biases)}function Nw(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=Ft(e,s,n,r);return o=J(o,i),o=rC(o,t.scale),a?qe(o):o}function sC(e,t){return Nw(e,t,[1,1],!0)}function Sw(e,t){return Nw(e,t,[1,1],!1)}function lf(e,t){return Nw(e,t,[2,2],!0,"valid")}function ere(e,t){function n(o,l,c){let u=e(o),p=u.length/(l*c*c);if(Qv(p))throw new Error(`depth has to be an integer: ${p}, weights.length: ${u.length}, numFilters: ${l}, filterSize: ${c}`);return D(()=>Ve(Sa(u,[l,p,c,c]),[2,3,1,0]))}function a(o,l,c,u){let p=n(o,l,c),d=Qe(e(l));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/bias`}),{filters:p,bias:d}}function r(o,l){let c=Qe(e(o)),u=Qe(e(o));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:c,biases:u}}function s(o,l,c,u){let p=a(o,l,c,`${u}/conv`),d=r(l,`${u}/scale`);return{conv:p,scale:d}}function i(o,l,c,u,p=!1){let d=s((p?.5:1)*o,l,c,`${u}/conv1`),h=s(o,l,c,`${u}/conv2`);return{conv1:d,conv2:h}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function iC(e){let{extractWeights:t,getRemainingWeights:n}=xn(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=ere(t,a),i=r(4704,32,7,"conv32_down"),o=s(9216,32,3,"conv32_1"),l=s(9216,32,3,"conv32_2"),c=s(9216,32,3,"conv32_3"),u=s(36864,64,3,"conv64_down",!0),p=s(36864,64,3,"conv64_1"),d=s(36864,64,3,"conv64_2"),h=s(36864,64,3,"conv64_3"),m=s(147456,128,3,"conv128_down",!0),f=s(147456,128,3,"conv128_1"),g=s(147456,128,3,"conv128_2"),y=s(589824,256,3,"conv256_down",!0),b=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),v=s(589824,256,3,"conv256_down_out"),N=D(()=>Ve(Na(t(256*128),[128,256]),[1,0]));if(a.push({paramPath:"fc"}),n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{params:{conv32_down:i,conv32_1:o,conv32_2:l,conv32_3:c,conv64_down:u,conv64_1:p,conv64_2:d,conv64_3:h,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:y,conv256_1:b,conv256_2:x,conv256_down_out:v,fc:N},paramMappings:a}}function tre(e,t){let n=jn(e,t);function a(i){let o=n(`${i}/scale/weights`,1),l=n(`${i}/scale/biases`,1);return{weights:o,biases:l}}function r(i){let o=n(`${i}/conv/filters`,4),l=n(`${i}/conv/bias`,1),c=a(i);return{conv:{filters:o,bias:l},scale:c}}function s(i){return{conv1:r(`${i}/conv1`),conv2:r(`${i}/conv2`)}}return{extractConvLayerParams:r,extractResidualLayerParams:s}}function oC(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=tre(e,t),r=n("conv32_down"),s=a("conv32_1"),i=a("conv32_2"),o=a("conv32_3"),l=a("conv64_down"),c=a("conv64_1"),u=a("conv64_2"),p=a("conv64_3"),d=a("conv128_down"),h=a("conv128_1"),m=a("conv128_2"),f=a("conv256_down"),g=a("conv256_1"),y=a("conv256_2"),b=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!Jv(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);let v={conv32_down:r,conv32_1:s,conv32_2:i,conv32_3:o,conv64_down:l,conv64_1:c,conv64_2:u,conv64_3:p,conv128_down:d,conv128_1:h,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:y,conv256_down_out:b,fc:x};return bn(e,t),{params:v,paramMappings:t}}function La(e,t){let n=sC(e,t.conv1);return n=Sw(n,t.conv2),n=J(n,e),n=qe(n),n}function Ep(e,t){let n=lf(e,t.conv1);n=Sw(n,t.conv2);let a=Qn(e,2,2,"valid"),r=xt(a.shape),s=a.shape[3]!==n.shape[3];if(a.shape[1]!==n.shape[1]||a.shape[2]!==n.shape[2]){let o=[...n.shape];o[1]=1;let l=xt(o);n=Je([n,l],1);let c=[...n.shape];c[2]=1;let u=xt(c);n=Je([n,u],2)}return a=s?Je([a,r],3):a,n=J(a,n),n=qe(n),n}var Su=class extends sn{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return D(()=>{let a=ue(t.toBatchTensor(150,!0),"float32"),s=Oa(a,[122.782,117.001,104.298]).div(pe(256)),i=lf(s,n.conv32_down);i=At(i,3,2,"valid"),i=La(i,n.conv32_1),i=La(i,n.conv32_2),i=La(i,n.conv32_3),i=Ep(i,n.conv64_down),i=La(i,n.conv64_1),i=La(i,n.conv64_2),i=La(i,n.conv64_3),i=Ep(i,n.conv128_down),i=La(i,n.conv128_1),i=La(i,n.conv128_2),i=Ep(i,n.conv256_down),i=La(i,n.conv256_1),i=La(i,n.conv256_2),i=Ep(i,n.conv256_down_out);let o=i.mean([1,2]);return ze(o,n.fc)})}async forward(t){return this.forwardInput(await ht(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)==null?void 0:s.some(i=>i<=0))return new Float32Array(128);let n=await ht(t),a=D(()=>ut(this.forwardInput(n))),r=await Promise.all(a.map(i=>i.data()));return a.forEach(i=>i.dispose()),n.isBatchInput?r:r[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return oC(t)}extractParams(t){return iC(t)}};function nre(e){let t=new Su;return t.extractWeights(e),t}function uf(e,t){return{...e,...{descriptor:t}}}function are(e){return typeof e.age=="number"}function cf(e,t){return{...e,...{age:t}}}function rre(e){return(e.gender===Er.MALE||e.gender===Er.FEMALE)&&fu(e.genderProbability)}function pf(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function sre(e,t){function n(l,c){let u=Sa(e(3*3*l),[3,3,l,1]),p=Qe(e(l)),d=Qe(e(l)),h=Qe(e(l)),m=Qe(e(l));return t.push({paramPath:`${c}/filters`},{paramPath:`${c}/batch_norm_scale`},{paramPath:`${c}/batch_norm_offset`},{paramPath:`${c}/batch_norm_mean`},{paramPath:`${c}/batch_norm_variance`}),{filters:u,batch_norm_scale:p,batch_norm_offset:d,batch_norm_mean:h,batch_norm_variance:m}}function a(l,c,u,p,d){let h=Sa(e(l*c*u*u),[u,u,l,c]),m=Qe(e(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/${d?"batch_norm_offset":"bias"}`}),{filters:h,bias:m}}function r(l,c,u,p){let{filters:d,bias:h}=a(l,c,u,p,!0);return{filters:d,batch_norm_offset:h}}function s(l,c,u){let p=n(l,`${u}/depthwise_conv`),d=r(l,c,1,`${u}/pointwise_conv`);return{depthwise_conv:p,pointwise_conv:d}}function i(){let l=r(3,32,3,"mobilenetv1/conv_0"),c=s(32,64,"mobilenetv1/conv_1"),u=s(64,128,"mobilenetv1/conv_2"),p=s(128,128,"mobilenetv1/conv_3"),d=s(128,256,"mobilenetv1/conv_4"),h=s(256,256,"mobilenetv1/conv_5"),m=s(256,512,"mobilenetv1/conv_6"),f=s(512,512,"mobilenetv1/conv_7"),g=s(512,512,"mobilenetv1/conv_8"),y=s(512,512,"mobilenetv1/conv_9"),b=s(512,512,"mobilenetv1/conv_10"),x=s(512,512,"mobilenetv1/conv_11"),v=s(512,1024,"mobilenetv1/conv_12"),N=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:c,conv_2:u,conv_3:p,conv_4:d,conv_5:h,conv_6:m,conv_7:f,conv_8:g,conv_9:y,conv_10:b,conv_11:x,conv_12:v,conv_13:N}}function o(){let l=r(1024,256,1,"prediction_layer/conv_0"),c=r(256,512,3,"prediction_layer/conv_1"),u=r(512,128,1,"prediction_layer/conv_2"),p=r(128,256,3,"prediction_layer/conv_3"),d=r(256,128,1,"prediction_layer/conv_4"),h=r(128,256,3,"prediction_layer/conv_5"),m=r(256,64,1,"prediction_layer/conv_6"),f=r(64,128,3,"prediction_layer/conv_7"),g=a(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),b=a(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=a(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),v=a(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),N=a(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),T=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),S=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),A=a(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),$=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),R=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),B=a(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:l,conv_1:c,conv_2:u,conv_3:p,conv_4:d,conv_5:h,conv_6:m,conv_7:f,box_predictor_0:{box_encoding_predictor:g,class_predictor:y},box_predictor_1:{box_encoding_predictor:b,class_predictor:x},box_predictor_2:{box_encoding_predictor:v,class_predictor:N},box_predictor_3:{box_encoding_predictor:T,class_predictor:S},box_predictor_4:{box_encoding_predictor:A,class_predictor:$},box_predictor_5:{box_encoding_predictor:R,class_predictor:B}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function lC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=xn(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=sre(n,t),i=r(),o=s(),c={extra_dim:Kd(n(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:{mobilenetv1:i,prediction_layer:o,output_layer:c},paramMappings:t}}function ire(e,t){let n=jn(e,t);function a(c,u,p){let d=n(`${c}/Conv2d_${u}_pointwise/weights`,4,`${p}/filters`),h=n(`${c}/Conv2d_${u}_pointwise/convolution_bn_offset`,1,`${p}/batch_norm_offset`);return{filters:d,batch_norm_offset:h}}function r(c){let u=`mobilenetv1/conv_${c}`,p=`MobilenetV1/Conv2d_${c}_depthwise`,d=`${u}/depthwise_conv`,h=`${u}/pointwise_conv`,m=n(`${p}/depthwise_weights`,4,`${d}/filters`),f=n(`${p}/BatchNorm/gamma`,1,`${d}/batch_norm_scale`),g=n(`${p}/BatchNorm/beta`,1,`${d}/batch_norm_offset`),y=n(`${p}/BatchNorm/moving_mean`,1,`${d}/batch_norm_mean`),b=n(`${p}/BatchNorm/moving_variance`,1,`${d}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:y,batch_norm_variance:b},pointwise_conv:a("MobilenetV1",c,h)}}function s(){return{conv_0:a("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:r(1),conv_2:r(2),conv_3:r(3),conv_4:r(4),conv_5:r(5),conv_6:r(6),conv_7:r(7),conv_8:r(8),conv_9:r(9),conv_10:r(10),conv_11:r(11),conv_12:r(12),conv_13:r(13)}}function i(c,u){let p=n(`${c}/weights`,4,`${u}/filters`),d=n(`${c}/biases`,1,`${u}/bias`);return{filters:p,bias:d}}function o(c){let u=i(`Prediction/BoxPredictor_${c}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${c}/box_encoding_predictor`),p=i(`Prediction/BoxPredictor_${c}/ClassPredictor`,`prediction_layer/box_predictor_${c}/class_predictor`);return{box_encoding_predictor:u,class_predictor:p}}function l(){return{conv_0:a("Prediction",0,"prediction_layer/conv_0"),conv_1:a("Prediction",1,"prediction_layer/conv_1"),conv_2:a("Prediction",2,"prediction_layer/conv_2"),conv_3:a("Prediction",3,"prediction_layer/conv_3"),conv_4:a("Prediction",4,"prediction_layer/conv_4"),conv_5:a("Prediction",5,"prediction_layer/conv_5"),conv_6:a("Prediction",6,"prediction_layer/conv_6"),conv_7:a("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:o(0),box_predictor_1:o(1),box_predictor_2:o(2),box_predictor_3:o(3),box_predictor_4:o(4),box_predictor_5:o(5)}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:l}}function uC(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=ire(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Sr(r))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${r}`);let s={mobilenetv1:n(),prediction_layer:a(),output_layer:{extra_dim:r}};return bn(e,t),{params:s,paramMappings:t}}function xa(e,t,n){return D(()=>{let a=Ft(e,t.filters,n,"same");return a=J(a,t.batch_norm_offset),qt(a,0,6)})}var ore=.0010000000474974513;function lre(e,t,n){return D(()=>{let a=Qr(e,t.filters,n,"same");return a=fr(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,ore),qt(a,0,6)})}function ure(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function cC(e,t){return D(()=>{let n,a=xa(e,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((s,i)=>{let o=i+1,l=ure(o);a=lre(a,s.depthwise_conv,l),a=xa(a,s.pointwise_conv,[1,1]),o===11&&(n=a)}),n===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:a,conv11:n}})}function cre(e,t,n){let a=e.arraySync(),r=Math.min(a[t][0],a[t][2]),s=Math.min(a[t][1],a[t][3]),i=Math.max(a[t][0],a[t][2]),o=Math.max(a[t][1],a[t][3]),l=Math.min(a[n][0],a[n][2]),c=Math.min(a[n][1],a[n][3]),u=Math.max(a[n][0],a[n][2]),p=Math.max(a[n][1],a[n][3]),d=(i-r)*(o-s),h=(u-l)*(p-c);if(d<=0||h<=0)return 0;let m=Math.max(r,l),f=Math.max(s,c),g=Math.min(i,u),y=Math.min(o,p),b=Math.max(g-m,0)*Math.max(y-f,0);return b/(d+h-b)}function pC(e,t,n,a,r){let s=e.shape[0],i=Math.min(n,s),o=t.map((u,p)=>({score:u,boxIndex:p})).filter(u=>u.score>r).sort((u,p)=>p.score-u.score),l=u=>u<=a?1:0,c=[];return o.forEach(u=>{if(c.length>=i)return;let p=u.score;for(let d=c.length-1;d>=0;--d){let h=cre(e,u.boxIndex,c[d]);if(h!==0&&(u.score*=l(h),u.score<=r))break}p===u.score&&c.push(u.boxIndex)}),c}function pre(e){let t=ut(Ve(e,[1,0])),n=[me(t[2],t[0]),me(t[3],t[1])],a=[J(t[0],xe(n[0],pe(2))),J(t[1],xe(n[1],pe(2)))];return{sizes:n,centers:a}}function dre(e,t){let{sizes:n,centers:a}=pre(e),r=ut(Ve(t,[1,0])),s=xe(L(dn(xe(r[2],pe(5))),n[0]),pe(2)),i=J(L(xe(r[0],pe(10)),n[0]),a[0]),o=xe(L(dn(xe(r[3],pe(5))),n[1]),pe(2)),l=J(L(xe(r[1],pe(10)),n[1]),a[1]);return Ve($t([me(i,s),me(l,o),J(i,s),J(l,o)]),[1,0])}function dC(e,t,n){return D(()=>{let a=e.shape[0],r=dre(U(Ha(n.extra_dim,[a,1,1]),[-1,4]),U(e,[-1,4]));r=U(r,[a,r.shape[0]/a,4]);let s=ca(We(t,[0,0,1],[-1,-1,-1])),i=We(s,[0,0,0],[-1,-1,1]);i=U(i,[a,i.shape[1]]);let o=ut(r),l=ut(i);return{boxes:o,scores:l}})}function ao(e,t){return D(()=>{let n=e.shape[0],a=U(to(e,t.box_encoding_predictor),[n,-1,1,4]),r=U(to(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function hC(e,t,n){return D(()=>{let a=xa(e,n.conv_0,[1,1]),r=xa(a,n.conv_1,[2,2]),s=xa(r,n.conv_2,[1,1]),i=xa(s,n.conv_3,[2,2]),o=xa(i,n.conv_4,[1,1]),l=xa(o,n.conv_5,[2,2]),c=xa(l,n.conv_6,[1,1]),u=xa(c,n.conv_7,[2,2]),p=ao(t,n.box_predictor_0),d=ao(e,n.box_predictor_1),h=ao(r,n.box_predictor_2),m=ao(i,n.box_predictor_3),f=ao(l,n.box_predictor_4),g=ao(u,n.box_predictor_5),y=Je([p.boxPredictionEncoding,d.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),b=Je([p.classPrediction,d.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:y,classPredictions:b}})}var va=class{constructor({minConfidence:t,maxResults:n}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=n||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var ro=class extends sn{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return D(()=>{let a=ue(t.toBatchTensor(512,!1),"float32"),r=me(L(a,pe(.007843137718737125)),pe(1)),s=cC(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=hC(s.out,s.conv11,n.prediction_layer);return dC(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await ht(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new va(n),s=await ht(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],c=o[0];for(let x=1;x{let[v,N]=[Math.max(0,y[x][0]),Math.min(1,y[x][2])].map(A=>A*g),[T,S]=[Math.max(0,y[x][1]),Math.min(1,y[x][3])].map(A=>A*f);return new gt(u[x],new yu(T,v,S-T,N-v),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),c.dispose(),b}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return uC(t)}extractParams(t){return lC(t)}};function mC(e){let t=new ro;return t.extractWeights(e),t}function hre(e){return mC(e)}var fC=class extends ro{};var gC=.4,yC=[new De(.738768,.874946),new De(2.42204,2.65704),new De(4.30971,7.04493),new De(10.246,4.59428),new De(12.6868,11.8741)],bC=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],xC=[117.001,114.697,97.404],vC="tiny_yolov2_model",wC="tiny_yolov2_separable_conv_model";var df=e=>typeof e=="number";function Cw(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!df(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>df(t.x)&&df(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(df)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function Cu(e){return D(()=>{let t=L(e,pe(.10000000149011612));return J(qe(me(e,t)),t)})}function Fr(e,t){return D(()=>{let n=ea(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Ft(n,t.conv.filters,[1,1],"valid"),n=me(n,t.bn.sub),n=L(n,t.bn.truediv),n=J(n,t.conv.bias),Cu(n)})}function Ar(e,t){return D(()=>{let n=ea(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Ei(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=J(n,t.bias),Cu(n)})}function mre(e,t){let n=wu(e,t);function a(i,o){let l=Qe(e(i)),c=Qe(e(i));return t.push({paramPath:`${o}/sub`},{paramPath:`${o}/truediv`}),{sub:l,truediv:c}}function r(i,o,l){let c=n(i,o,3,`${l}/conv`),u=a(o,`${l}/bn`);return{conv:c,bn:u}}let s=ku(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function kC(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=xn(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:c}=mre(r,i),u;if(t.withSeparableConvs){let[p,d,h,m,f,g,y,b,x]=a,v=t.isFirstLayerConv2d?o(p,d,3,"conv0"):c(p,d,"conv0"),N=c(d,h,"conv1"),T=c(h,m,"conv2"),S=c(m,f,"conv3"),A=c(f,g,"conv4"),$=c(g,y,"conv5"),R=b?c(y,b,"conv6"):void 0,B=x?c(b,x,"conv7"):void 0,V=o(x||b||y,5*n,1,"conv8");u={conv0:v,conv1:N,conv2:T,conv3:S,conv4:A,conv5:$,conv6:R,conv7:B,conv8:V}}else{let[p,d,h,m,f,g,y,b,x]=a,v=l(p,d,"conv0"),N=l(d,h,"conv1"),T=l(h,m,"conv2"),S=l(m,f,"conv3"),A=l(f,g,"conv4"),$=l(g,y,"conv5"),R=l(y,b,"conv6"),B=l(b,x,"conv7"),V=o(x,5*n,1,"conv8");u={conv0:v,conv1:N,conv2:T,conv3:S,conv4:A,conv5:$,conv6:R,conv7:B,conv8:V}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:u,paramMappings:i}}function fre(e,t){let n=jn(e,t);function a(o){let l=n(`${o}/sub`,1),c=n(`${o}/truediv`,1);return{sub:l,truediv:c}}function r(o){let l=n(`${o}/filters`,4),c=n(`${o}/bias`,1);return{filters:l,bias:c}}function s(o){let l=r(`${o}/conv`),c=a(`${o}/bn`);return{conv:l,bn:c}}let i=Iu(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function IC(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=fre(e,n),i;if(t.withSeparableConvs){let o=t.filterSizes&&t.filterSizes.length||9;i={conv0:t.isFirstLayerConv2d?a("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:o>7?s("conv6"):void 0,conv7:o>8?s("conv7"):void 0,conv8:a("conv8")}}else i={conv0:r("conv0"),conv1:r("conv1"),conv2:r("conv2"),conv3:r("conv3"),conv4:r("conv4"),conv5:r("conv5"),conv6:r("conv6"),conv7:r("conv7"),conv8:a("conv8")};return bn(e,n),{params:i,paramMappings:n}}var or=class{constructor({inputSize:t,scoreThreshold:n}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=n||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var _w=class extends sn{constructor(t){super("TinyYolov2");Cw(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,n){let a=Fr(t,n.conv0);return a=At(a,[2,2],[2,2],"same"),a=Fr(a,n.conv1),a=At(a,[2,2],[2,2],"same"),a=Fr(a,n.conv2),a=At(a,[2,2],[2,2],"same"),a=Fr(a,n.conv3),a=At(a,[2,2],[2,2],"same"),a=Fr(a,n.conv4),a=At(a,[2,2],[2,2],"same"),a=Fr(a,n.conv5),a=At(a,[2,2],[1,1],"same"),a=Fr(a,n.conv6),a=Fr(a,n.conv7),to(a,n.conv8,"valid",!1)}runMobilenet(t,n){let a=this.config.isFirstLayerConv2d?Cu(to(t,n.conv0,"valid",!1)):Ar(t,n.conv0);return a=At(a,[2,2],[2,2],"same"),a=Ar(a,n.conv1),a=At(a,[2,2],[2,2],"same"),a=Ar(a,n.conv2),a=At(a,[2,2],[2,2],"same"),a=Ar(a,n.conv3),a=At(a,[2,2],[2,2],"same"),a=Ar(a,n.conv4),a=At(a,[2,2],[2,2],"same"),a=Ar(a,n.conv5),a=At(a,[2,2],[1,1],"same"),a=n.conv6?Ar(a,n.conv6):a,a=n.conv7?Ar(a,n.conv7):a,to(a,n.conv8,"valid",!1)}forwardInput(t,n){let{params:a}=this;if(!a)throw new Error("TinyYolov2 - load model before inference");return D(()=>{let r=ue(t.toBatchTensor(n,!1),"float32");return r=this.config.meanRgb?Oa(r,this.config.meanRgb):r,r=r.div(pe(256)),this.config.withSeparableConvs?this.runMobilenet(r,a):this.runTinyYolov2(r,a)})}async forward(t,n){return this.forwardInput(await ht(t),n)}async detect(t,n={}){let{inputSize:a,scoreThreshold:r}=new or(n),s=await ht(t),i=await this.forwardInput(s,a),o=D(()=>ut(i)[0].expandDims()),l={width:s.getInputWidth(0),height:s.getInputHeight(0)},c=await this.extractBoxes(o,s.getReshapedInputDimensions(0),r);i.dispose(),o.dispose();let u=c.map(g=>g.box),p=c.map(g=>g.score),d=c.map(g=>g.classScore),h=c.map(g=>this.config.classes[g.label]);return nw(u.map(g=>g.rescale(a)),p,this.config.iouThreshold,!0).map(g=>new ms(p[g],d[g],h[g],u[g],l))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return IC(t,this.config)}extractParams(t){let n=this.config.filterSizes||_w.DEFAULT_FILTER_SIZES,a=n?n.length:void 0;if(a!==7&&a!==8&&a!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${a} filterSizes in config`);return kC(t,this.config,this.boxEncodingSize,n)}async extractBoxes(t,n,a){let{width:r,height:s}=n,i=Math.max(r,s),o=i/r,l=i/s,c=t.shape[1],u=this.config.anchors.length,[p,d,h]=D(()=>{let y=t.reshape([c,c,u,this.boxEncodingSize]),b=y.slice([0,0,0,0],[c,c,u,4]),x=y.slice([0,0,0,4],[c,c,u,1]),v=this.withClassScores?Ta(y.slice([0,0,0,5],[c,c,u,this.config.classes.length]),3):pe(0);return[b,x,v]}),m=[],f=await d.array(),g=await p.array();for(let y=0;ya){let N=(b+bp(g[y][b][x][0]))/c*o,T=(y+bp(g[y][b][x][1]))/c*l,S=Math.exp(g[y][b][x][2])*this.config.anchors[x].x/c*o,A=Math.exp(g[y][b][x][3])*this.config.anchors[x].y/c*l,$=N-S/2,R=T-A/2,B={row:y,col:b,anchor:x},{classScore:V,label:W}=this.withClassScores?await this.extractPredictedClass(h,B):{classScore:1,label:0};m.push({box:new gu($,R,$+S,R+A),score:v,classScore:v*V,label:W,...B})}}return p.dispose(),d.dispose(),h.dispose(),m}async extractPredictedClass(t,n){let{row:a,col:r,anchor:s}=n,i=await t.array();return Array(this.config.classes.length).fill(0).map((o,l)=>i[a][r][s][l]).map((o,l)=>({classScore:o,label:l})).reduce((o,l)=>o.classScore>l.classScore?o:l)}},_u=_w;_u.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Eu=class extends _u{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:gC,classes:["face"],...t?{anchors:bC,meanRgb:xC}:{anchors:yC,withClassScores:!0}};super(n)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new gt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?wC:vC}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function gre(e,t=!0){let n=new Eu(t);return n.extractWeights(e),n}var hf=class extends or{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var wa=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function so(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>no(l)?r(l):l.detection),i=a||(t instanceof Ee?await vu(t,s):await xu(t,s)),o=await n(i);return i.forEach(l=>l instanceof Ee&&l.dispose()),o}async function Fu(e,t,n,a,r){return so([e],t,async s=>n(s[0]),a,r)}var TC=.4,NC=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],SC=[117.001,114.697,97.404];var Au=class extends _u{constructor(){let t={withSeparableConvs:!0,iouThreshold:TC,classes:["face"],anchors:NC,meanRgb:SC,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new gt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var Ze={ssdMobilenetv1:new ro,tinyFaceDetector:new Au,tinyYolov2:new Eu,faceLandmark68Net:new Nu,faceLandmark68TinyNet:new of,faceRecognitionNet:new Su,faceExpressionNet:new af,ageGenderNet:new sf},CC=(e,t)=>Ze.ssdMobilenetv1.locateFaces(e,t),yre=(e,t)=>Ze.tinyFaceDetector.locateFaces(e,t),bre=(e,t)=>Ze.tinyYolov2.locateFaces(e,t),_C=e=>Ze.faceLandmark68Net.detectLandmarks(e),xre=e=>Ze.faceLandmark68TinyNet.detectLandmarks(e),vre=e=>Ze.faceRecognitionNet.computeFaceDescriptor(e),wre=e=>Ze.faceExpressionNet.predictExpressions(e),kre=e=>Ze.ageGenderNet.predictAgeAndGender(e),EC=e=>Ze.ssdMobilenetv1.load(e),Ire=e=>Ze.tinyFaceDetector.load(e),Tre=e=>Ze.tinyYolov2.load(e),Nre=e=>Ze.faceLandmark68Net.load(e),Sre=e=>Ze.faceLandmark68TinyNet.load(e),Cre=e=>Ze.faceRecognitionNet.load(e),_re=e=>Ze.faceExpressionNet.load(e),Ere=e=>Ze.ageGenderNet.load(e),Fre=EC,Are=CC,$re=_C;var Ew=class extends wa{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.extractedFaces=a}},Ru=class extends Ew{async run(){let t=await this.parentTask,n=await so(t,this.input,async a=>Promise.all(a.map(r=>Ze.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>rf(a,n[r]))}withAgeAndGender(){return new $u(this,this.input)}},Mu=class extends Ew{async run(){let t=await this.parentTask;if(!t)return;let n=await Fu(t,this.input,a=>Ze.faceExpressionNet.predictExpressions(a),this.extractedFaces);return rf(t,n)}withAgeAndGender(){return new Du(this,this.input)}},lo=class extends Ru{withAgeAndGender(){return new io(this,this.input)}withFaceDescriptors(){return new ys(this,this.input)}},uo=class extends Mu{withAgeAndGender(){return new oo(this,this.input)}withFaceDescriptor(){return new bs(this,this.input)}};var Fw=class extends wa{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.extractedFaces=a}},$u=class extends Fw{async run(){let t=await this.parentTask,n=await so(t,this.input,async a=>Promise.all(a.map(r=>Ze.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return cf(pf(a,i,o),s)})}withFaceExpressions(){return new Ru(this,this.input)}},Du=class extends Fw{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await Fu(t,this.input,s=>Ze.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return cf(pf(t,a,r),n)}withFaceExpressions(){return new Mu(this,this.input)}},io=class extends $u{withFaceExpressions(){return new lo(this,this.input)}withFaceDescriptors(){return new ys(this,this.input)}},oo=class extends Du{withFaceExpressions(){return new uo(this,this.input)}withFaceDescriptor(){return new bs(this,this.input)}};var mf=class extends wa{constructor(t,n){super();this.parentTask=t;this.input=n}},ys=class extends mf{async run(){let t=await this.parentTask;return(await so(t,this.input,a=>Promise.all(a.map(r=>Ze.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>uf(t[r],a))}withFaceExpressions(){return new lo(this,this.input)}withAgeAndGender(){return new io(this,this.input)}},bs=class extends mf{async run(){let t=await this.parentTask;if(!t)return;let n=await Fu(t,this.input,a=>Ze.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return uf(t,n)}withFaceExpressions(){return new uo(this,this.input)}withAgeAndGender(){return new oo(this,this.input)}};var ff=class extends wa{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.useTinyLandmarkNet=a}get landmarkNet(){return this.useTinyLandmarkNet?Ze.faceLandmark68TinyNet:Ze.faceLandmark68Net}},gf=class extends ff{async run(){let t=await this.parentTask,n=t.map(s=>s.detection),a=this.input instanceof Ee?await vu(this.input,n):await xu(this.input,n),r=await Promise.all(a.map(s=>this.landmarkNet.detectLandmarks(s)));return a.forEach(s=>s instanceof Ee&&s.dispose()),t.map((s,i)=>Tu(s,r[i]))}withFaceExpressions(){return new lo(this,this.input)}withAgeAndGender(){return new io(this,this.input)}withFaceDescriptors(){return new ys(this,this.input)}},yf=class extends ff{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Ee?await vu(this.input,[n]):await xu(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Ee&&s.dispose()),Tu(t,r)}withFaceExpressions(){return new uo(this,this.input)}withAgeAndGender(){return new oo(this,this.input)}withFaceDescriptor(){return new bs(this,this.input)}};var bf=class extends wa{constructor(t,n=new va){super();this.input=t;this.options=n}},Fp=class extends bf{async run(){let{input:t,options:n}=this,a;if(n instanceof hf)a=Ze.tinyFaceDetector.locateFaces(t,n);else if(n instanceof va)a=Ze.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof or)a=Ze.tinyYolov2.locateFaces(t,n);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return a}runAndExtendWithFaceDetections(){return new Promise(async t=>{let n=await this.run();t(n.map(a=>Yi({},a)))})}withFaceLandmarks(t=!1){return new gf(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Ru(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new $u(this.runAndExtendWithFaceDetections(),this.input)}},xf=class extends bf{async run(){let t=await new Fp(this.input,this.options),n=t[0];return t.forEach(a=>{a.score>n.score&&(n=a)}),n}runAndExtendWithFaceDetection(){return new Promise(async t=>{let n=await this.run();t(n?Yi({},n):void 0)})}withFaceLandmarks(t=!1){return new yf(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Mu(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Du(this.runAndExtendWithFaceDetection(),this.input)}};function Dre(e,t=new va){return new xf(e,t)}function vf(e,t=new va){return new Fp(e,t)}async function FC(e,t){return vf(e,new va(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function Rre(e,t={}){return vf(e,new or(t)).withFaceLandmarks().withFaceDescriptors()}var Mre=FC;function Aw(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let n=Array.from(e),a=Array.from(t);return Math.sqrt(n.map((r,s)=>r-a[s]).reduce((r,s)=>r+s**2,0))}var wf=class{constructor(t,n=.6){this._distanceThreshold=n;let a=Array.isArray(t)?t:[t];if(!a.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let r=1,s=()=>`person ${r++}`;this._labeledDescriptors=a.map(i=>{if(i instanceof Cr)return i;if(i instanceof Float32Array)return new Cr(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new Cr(s(),[i.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,n){return n.map(a=>Aw(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new xp(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>Cr.fromJSON(a));return new wf(n,t.distanceThreshold)}};function Pre(e){let t=new Au;return t.extractWeights(e),t}function AC(e,t){let{width:n,height:a}=new yn(t.width,t.height);if(n<=0||a<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:n,height:a})}`);if(Array.isArray(e))return e.map(r=>AC(r,{width:n,height:a}));if(no(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return Tu(Yi(e,r),s)}return sr(e)?Yi(e,e.detection.forSize(n,a)):e instanceof ra||e instanceof gt?e.forSize(n,a):e}var Ore=typeof process!="undefined",Lre=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",zre={faceapi:X2,node:Ore,browser:Lre};export{sf as AgeGenderNet,gu as BoundingBox,lt as Box,wa as ComposableTask,ys as ComputeAllFaceDescriptorsTask,mf as ComputeFaceDescriptorsTaskBase,bs as ComputeSingleFaceDescriptorTask,gf as DetectAllFaceLandmarksTask,Fp as DetectAllFacesTask,ff as DetectFaceLandmarksTaskBase,bf as DetectFacesTaskBase,yf as DetectSingleFaceLandmarksTask,xf as DetectSingleFaceTask,yn as Dimensions,yw as FACE_EXPRESSION_LABELS,gt as FaceDetection,fC as FaceDetectionNet,af as FaceExpressionNet,gs as FaceExpressions,Nu as FaceLandmark68Net,of as FaceLandmark68TinyNet,aC as FaceLandmarkNet,ra as FaceLandmarks,W2 as FaceLandmarks5,bu as FaceLandmarks68,xp as FaceMatch,wf as FaceMatcher,Su as FaceRecognitionNet,Er as Gender,vp as LabeledBox,Cr as LabeledFaceDescriptors,_r as NetInput,sn as NeuralNetwork,ms as ObjectDetection,De as Point,V2 as PredictedBox,yu as Rect,ro as SsdMobilenetv1,va as SsdMobilenetv1Options,Au as TinyFaceDetector,hf as TinyFaceDetectorOptions,Eu as TinyYolov2,or as TinyYolov2Options,Mre as allFaces,FC as allFacesSsdMobilenetv1,Rre as allFacesTinyYolov2,pw as awaitMediaLoaded,dw as bufferToImage,vre as computeFaceDescriptor,Zi as createCanvas,Ip as createCanvasFromMedia,hre as createFaceDetectionNet,nre as createFaceRecognitionNet,mC as createSsdMobilenetv1,Pre as createTinyFaceDetector,gre as createTinyYolov2,vf as detectAllFaces,_C as detectFaceLandmarks,xre as detectFaceLandmarksTiny,$re as detectLandmarks,Dre as detectSingleFace,ww as draw,rt as env,Aw as euclideanDistance,cf as extendWithAge,uf as extendWithFaceDescriptor,Yi as extendWithFaceDetection,rf as extendWithFaceExpressions,Tu as extendWithFaceLandmarks,pf as extendWithGender,vu as extractFaceTensors,xu as extractFaces,Hae as fetchImage,fw as fetchJson,jae as fetchNetWeights,eo as fetchOrThrow,$n as getContext2dOrThrow,Qi as getMediaDimensions,hw as imageTensorToCanvas,mw as imageToSquare,Pae as inverseSigmoid,ew as iou,Km as isMediaElement,kp as isMediaLoaded,are as isWithAge,sr as isWithFaceDetection,bw as isWithFaceExpressions,no as isWithFaceLandmarks,rre as isWithGender,Ere as loadAgeGenderModel,Fre as loadFaceDetectionModel,_re as loadFaceExpressionModel,Nre as loadFaceLandmarkModel,Sre as loadFaceLandmarkTinyModel,Cre as loadFaceRecognitionModel,EC as loadSsdMobilenetv1Model,Ire as loadTinyFaceDetectorModel,Tre as loadTinyYolov2Model,gw as loadWeightMap,Are as locateFaces,qae as matchDimensions,tw as minBbox,Ze as nets,nw as nonMaxSuppression,Oa as normalize,aw as padToSquare,kre as predictAgeAndGender,wre as recognizeFaceExpressions,AC as resizeResults,Ji as resolveInput,Mae as shuffleArray,bp as sigmoid,CC as ssdMobilenetv1,Og as tf,yre as tinyFaceDetector,bre as tinyYolov2,ht as toNetInput,Yv as utils,Cw as validateConfig,zre as version}; + `}};function yee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,segmentIds:s}=t,{numSegments:i}=a,o=r.shape.length,l=[],u=0,c=E.getAxesPermutation([u],o),p=r;c!=null&&(p=_n({inputs:{x:r},backend:n,attrs:{perm:c}}),l.push(p),u=E.getInnerMostAxes(1,o)[0]);let d=E.segment_util.computeOutShape(p.shape,u,i),h=I.sizeFromShape([p.shape[u]]),m=ye({inputs:{x:p},backend:n,attrs:{shape:[-1,h]}});l.push(m);let f=jd(r.dtype),g=(v,k,w,S,A)=>{let F=v.shape[0],D=v.shape[1],R=E.segment_util.segOpComputeOptimalWindowSize(D,A),L={windowSize:R,inSize:D,batchSize:F,numSegments:A},W=new gee(L,k),U=n.compileAndRun(W,[v,w],S);if(l.push(U),U.shape[1]===A)return U;let G=qT({backend:n,attrs:{start:0,stop:A,step:1,dtype:"float32"}}),X=YT({inputs:{x:G},backend:n,attrs:{reps:[D/R]}});return l.push(G),l.push(X),g(U,k,X,S,A)},y=g(m,"unsortedSegmentSum",s,f,i),b=ye({inputs:{x:y},backend:n,attrs:{shape:d}}),x=b;if(c!=null){l.push(b);let v=E.getUndoAxesPermutation(c);x=_n({inputs:{x},backend:n,attrs:{perm:v}})}return l.forEach(v=>n.disposeIntermediateTensorInfo(v)),x}var bee={kernelName:pc,backendName:"webgl",kernelFunc:yee},xee=[lJ,pJ,YX,QX,tK,rK,iK,uK,pK,hK,yK,xK,kK,TK,$K,AK,RK,zK,OK,UK,HK,qK,JK,r7,i7,d7,m7,b7,w7,EX,T7,R7,O7,F7,B7,U7,z7,j7,K7,Q7,eY,nY,sY,pY,hY,oY,gY,xY,IY,CY,EY,MY,RY,PY,LY,WY,VY,GY,jY,YY,e9,n9,r9,o9,p9,f9,x9,_X,w9,N7,N9,C9,_9,DX,M9,L9,W9,q9,G9,J9,eJ,rJ,hJ,wJ,xJ,TJ,CJ,FJ,yJ,EJ,DJ,OJ,BJ,HJ,ZJ,LX,tQ,rQ,oQ,cQ,l7,hQ,fQ,yQ,vQ,NQ,RX,SQ,CQ,u7,KJ,_Q,LQ,MQ,WX,VQ,HQ,XQ,JQ,tZ,aZ,iZ,uZ,pZ,mZ,yZ,vZ,IZ,SZ,FZ,n7,JJ,$Z,MZ,PZ,LZ,BZ,GZ,jZ,XZ,JZ,YJ,qX,eee,aee,iee,lee,pee,XX,hee,fee,bee,mQ];for(let e of xee)hc(e);var vee="3.3.0",wee={"tfjs-core":Q0,"tfjs-backend-cpu":BU,"tfjs-backend-webgl":FX,"tfjs-data":TN,"tfjs-layers":im,"tfjs-converter":xN,tfjs:vee},Hn;(function(e){e[e.float32=0]="float32",e[e.int32=1]="int32",e[e.bool=2]="bool",e[e.string=3]="string",e[e.complex64=4]="complex64"})(Hn||(Hn={}));var gp;(function(e){e[e.linear=0]="linear",e[e.relu=1]="relu",e[e.relu6=2]="relu6",e[e.prelu=3]="prelu",e[e.leakyrelu=4]="leakyrelu"})(gp||(gp={}));var JT;function kee(e){JT=e.wasm.cwrap(gi,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Iee(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:u,activation:c,leakyreluAlpha:p}=a,d=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(s.dataId).id,m=0;if(i!=null){let A=n.dataIdMap.get(i.dataId);if(A.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${A.shape.length}.`);m=A.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=gp[c];if(g==null)throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);let y=l?r.shape[2]:r.shape[1],b=u?s.shape[1]:s.shape[2],x=r.shape[0],v=n.makeOutput([x,y,b],r.dtype),k=n.dataIdMap.get(v.dataId).id,w=new Uint8Array(new Int32Array(r.shape).buffer),S=new Uint8Array(new Int32Array(s.shape).buffer);return JT(d,w,r.shape.length,h,S,s.shape.length,l,u,g,m,f,p||0,k),v}var Nee={kernelName:gi,backendName:"wasm",setupFunc:kee,kernelFunc:Iee};function En(e){let t;function n(r){t=r.wasm.cwrap(e,null,["number","number"])}function a(r){let{backend:s,inputs:{x:i}}=r,o=s.dataIdMap.get(i.dataId).id,l=s.makeOutput(i.shape,i.dtype),u=s.dataIdMap.get(l.dataId).id;return I.sizeFromShape(l.shape)===0||t(o,u),l}return{kernelName:e,backendName:"wasm",setupFunc:n,kernelFunc:a}}var Tee=En(So);function gn(e,t,n){let a;function r(i){a=i.wasm.cwrap(e,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:o,inputs:l}=i,{a:u,b:c}=l,p=o.dataIdMap.get(u.dataId).id,d=o.dataIdMap.get(c.dataId).id,h=n!=null?n:u.dtype,m=E.assertAndGetBroadcastShape(u.shape,c.shape),f=o.makeOutput(m,h);if(I.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(u.shape).buffer),y=new Uint8Array(new Int32Array(c.shape).buffer),b=o.dataIdMap.get(f.dataId).id,x=()=>a(p,g,u.shape.length,d,y,c.shape.length,Hn[u.dtype],b);if(t&&u.dtype==="float32")return x(),f;let v=E.getBroadcastDims(u.shape,m),k=E.getBroadcastDims(c.shape,m),w=v.every((A,F)=>A===F),S=k.every((A,F)=>A===F);if(w&&S)return x(),f;throw new Error(`Broadcasting along outer dims is not yet supported for ${u.dtype} ${e}.`)}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var See=!0,Cee=gn(Br,See),QT;function Aee(e){QT=e.wasm.cwrap(Ns,null,["array","number","number","number"])}function Fee(e){let{inputs:t,backend:n}=e,a=n.makeOutput(t[0].shape,t[0].dtype);if(I.sizeFromShape(a.shape)===0)return a;let r=t.map(o=>n.dataIdMap.get(o.dataId).id),s=new Uint8Array(new Int32Array(r).buffer),i=n.dataIdMap.get(a.dataId).id;return QT(s,r.length,Hn[a.dtype],i),a}var _ee={kernelName:Ns,backendName:"wasm",setupFunc:Aee,kernelFunc:Fee};function Wm(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var Eee={kernelName:Bs,backendName:"wasm",kernelFunc:Wm},ZT;function $ee(e){ZT=e.wasm.cwrap(fi,null,["number","array","number","number","number","array","number"])}function Bm(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=Mee(t.x.shape,a.perm),i=!0;for(let m=0;m=r&&(s===-1||a[s]>a[i])&&(s=i);a[s]=r}return[n,a]}var Ree={kernelName:fi,backendName:"wasm",kernelFunc:Bm,setupFunc:$ee};function mu(e,t,n){let a=e.shape,r=e.shape.length,s=I.parseAxisParam(t,a),i=s,o=E.getAxesPermutation(i,r),l=null,u=!1;if(o!=null){let c=new Array(r);for(let d=0;d`new shape: ${i}, old shape: ${a.shape}. New shape and old shape must have the same number of elements.`),e.backend.incRef(a.dataId),{dataId:a.dataId,shape:i,dtype:a.dtype}}var Vee={kernelName:cl,backendName:"wasm",kernelFunc:Pa},nS;function Uee(e){nS=e.wasm.cwrap(Cs,null,["number","array","number","number","array","number","number","number","number"])}function Gee(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=r.shape.length,u=s.shape.length,c=i?r.shape[l-2]:r.shape[l-1],p=o?s.shape[u-1]:s.shape[u-2],d=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[u-2]:s.shape[u-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=I.sizeFromShape(m),y=I.sizeFromShape(f),b=g===y||g===1||y===1;I.assert(l>=2&&u>=2&&b,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${m}) and (${f}).`);let x=(g>y?r.shape.slice(0,-2):s.shape.slice(0,-2)).concat([d,h]);I.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let v=i?[g,c,d]:[g,d,c],k=o?[y,h,p]:[y,p,h],w=Pa({inputs:{x:r},backend:n,attrs:{shape:v}}),S=Pa({inputs:{x:s},backend:n,attrs:{shape:k}}),A=n.dataIdMap.get(w.dataId).id,F=n.dataIdMap.get(S.dataId).id,D=i?w.shape[2]:w.shape[1],R=o?S.shape[1]:S.shape[2],L=Math.max(g,y),W=n.makeOutput([L,D,R],w.dtype),U=n.dataIdMap.get(W.dataId).id,G=new Uint8Array(new Int32Array(w.shape).buffer),X=new Uint8Array(new Int32Array(S.shape).buffer);return nS(A,G,w.shape.length,F,X,S.shape.length,i,o,U),n.disposeData(w.dataId),n.disposeData(S.dataId),W.shape=x,W}var Hee={kernelName:Cs,backendName:"wasm",setupFunc:Uee,kernelFunc:Gee};function Vm(e){let{inputs:{x:t},attrs:{dtype:n},backend:a}=e,r=a.makeOutput(t.shape,n),s=a.typedArrayFromHeap(t);return a.typedArrayFromHeap(r).set(s),r}var jee={kernelName:As,backendName:"wasm",kernelFunc:Vm},qee=En(Fs),aS;function Xee(e){aS=e.wasm.cwrap(Vr,null,["number","number","number","number"])}function Kee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o=n.dataIdMap.get(r.dataId).id,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(l.dataId).id;return aS(o,s,i,u),l}var Yee={kernelName:Vr,backendName:"wasm",setupFunc:Xee,kernelFunc:Kee};function rS(e){let{inputs:t,backend:n}=e,a=I.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=E.computeOutShape(t.map(h=>h.shape),a),s=t.filter(h=>I.sizeFromShape(h.shape)>0);if(s.length===1)return Wm({inputs:{x:s[0]},backend:n});let i=n.makeOutput(r,t[0].dtype);if(I.sizeFromShape(r)===0)return i;let o=s.map(h=>h.shape);if(E.assertParamsConsistent(o,a),s[0].dtype==="string"){let h=s.map(x=>{let v=I.sizeFromShape(x.shape.slice(a));return Pa({inputs:{x},backend:n,attrs:{shape:[-1,v]}})}),m=h.map(x=>({vals:n.readSync(x.dataId),shape:x.shape}));r=E.computeOutShape(h.map(x=>x.shape),1);let f=h[0].shape[0]===1,g=fv(m,r,t[0].dtype,f),y=E.computeOutShape(s.map(x=>x.shape),a);i.shape=y;let b=n.dataIdMap.get(i.dataId);return b.stringBytes=E.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),i}let l=I.sizeFromShape(s[0].shape.slice(0,a)),u=0,c=s.map(h=>{let m=I.sizeFromShape(h.shape.slice(a));return u+=m,m}),p=s.map(h=>n.typedArrayFromHeap(h)),d=n.typedArrayFromHeap(i);for(let h=0;h`cumsum does not support ${r.dtype} tensors in the WASM backend`);let u=E.getAxesPermutation([s],l),c=r;u!==null&&(c=Bm({inputs:{x:r},attrs:{perm:u},backend:n}));let p=E.getInnerMostAxes(1,l)[0];E.assertAxesAreInnerMostDims("cumsum",[p],l);let d=n.makeOutput(c.shape,c.dtype),h=c.shape[p],m=n.dataIdMap.get(c.dataId).id,f=n.dataIdMap.get(d.dataId).id;lS(m,i?1:0,o?1:0,h,f,Hn[r.dtype]);let g=d;if(u!==null){let y=E.getUndoAxesPermutation(u);g=Bm({inputs:{x:d},attrs:{perm:y},backend:n}),n.disposeData(c.dataId),n.disposeData(d.dataId)}return g}var cte={kernelName:Ds,backendName:"wasm",setupFunc:lte,kernelFunc:ute},uS;function pte(e){uS=e.wasm.cwrap(Oo,null,["number","number","number","array","number","array","array","number","number"])}function dte(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{blockSize:s,dataFormat:i}=a;I.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],c=i==="NHWC"?r.shape[3]:r.shape[1],p=l*s,d=u*s,h=c/(s*s),m=i==="NHWC"?[o,p,d,h]:[o,h,p,d],f=t.makeOutput(m,"float32"),g=t.dataIdMap.get(r.dataId).id,y=new Uint8Array(new Int32Array(I.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(I.computeStrides(m)).buffer),v=t.dataIdMap.get(f.dataId).id;return uS(g,s,i==="NHWC"?1:0,y,r.shape.length-1,b,x,m.length,v),f}var hte={kernelName:Oo,backendName:"wasm",setupFunc:pte,kernelFunc:dte},cS;function mte(e){cS=e.wasm.cwrap(Ms,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fte(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s}=t,i=a.dataIdMap.get(r.dataId).id,o=a.dataIdMap.get(s.dataId).id,{strides:l,dilations:u,pad:c,dimRoundingMode:p}=n,d=u==null?[1,1]:u,h=E.computeConv2DInfo(r.shape,s.shape,l,d,c,p,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,y=h.padInfo.right,b=h.padInfo.bottom,x=h.padInfo.left,v=h.dilationHeight,k=h.dilationWidth,w=h.strideHeight,S=h.strideWidth,A=h.inChannels,F=h.outChannels,D=h.padInfo.type==="SAME"?1:0;if(h.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${h.dataFormat}'. Please use 'channelsLast'.`);let R=a.makeOutput(h.outShape,"float32"),L=a.dataIdMap.get(R.dataId).id;return cS(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,y,b,x,D,v,k,w,S,A,F,L),R}var gte={kernelName:Ms,backendName:"wasm",setupFunc:mte,kernelFunc:fte},yte=!1,bte=gn(Wo,yte,"bool"),xte=En(Ps);function qv(e){let{inputs:t,attrs:n,backend:a}=e,{input:r}=t,{dim:s}=n,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(I.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),Pa({inputs:{x:r},backend:a,attrs:{shape:o}})}var vte={kernelName:Bo,backendName:"wasm",kernelFunc:qv};function wte(e){let{attrs:{shape:t,value:n,dtype:a},backend:r}=e,s=r.makeOutput(t,a);return r.typedArrayFromHeap(s).fill(n),s}var kte={kernelName:tc,backendName:"wasm",kernelFunc:wte},pS;function Ite(e){pS=e.wasm.cwrap(Uo,null,["number","number","number","number","number","number"])}function Nte(e){let{inputs:t,backend:n}=e,{image:a}=t,r=n.makeOutput(a.shape,a.dtype),s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,[o,l,u,c]=a.shape;return pS(s,o,l,u,c,i),r}var Tte={kernelName:Uo,backendName:"wasm",kernelFunc:Nte,setupFunc:Ite},Ste=En(Os),Cte=!1,Ate=gn(Ls,Cte),dS;function Fte(e){dS=e.wasm.cwrap(zs,null,["number","number","number","number","number","number","number"])}function _te(e){let{backend:t,inputs:n,attrs:a}=e,{varianceEpsilon:r}=a,{x:s,mean:i,variance:o,offset:l,scale:u}=n,c=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,d=t.dataIdMap.get(o.dataId).id,h=l!=null?t.dataIdMap.get(l.dataId).id:0,m=u!=null?t.dataIdMap.get(u.dataId).id:0,f=t.makeOutput(s.shape,s.dtype);if(I.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return dS(c,p,d,h,m,r,g),f}var Ete={kernelName:zs,backendName:"wasm",setupFunc:Fte,kernelFunc:_te},hS;function $te(e){hS=e.wasm.cwrap(yi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Dte(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:c,dataFormat:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=n,f=E.computeConv2DInfo(r.shape,s.shape,l,c,u,d),g=gp[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,v=0;if(i!=null){let ee=a.dataIdMap.get(i.dataId);if(ee.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ee.shape.length}.`);if(ee.shape[0]!==x)throw new Error(`FusedConv2D bias shape (${ee.shape}) does not match the number of output channels (${x})`);v=ee.id}let k=f.filterHeight,w=f.filterWidth,S=f.padInfo.top,A=f.padInfo.right,F=f.padInfo.bottom,D=f.padInfo.left,R=f.dilationHeight,L=f.dilationWidth,W=f.strideHeight,U=f.strideWidth,G=f.inChannels,X=f.padInfo.type==="SAME"?1:0,j=f.batchSize,te=f.inHeight,Q=f.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let se=a.makeOutput(f.outShape,"float32"),ne=a.dataIdMap.get(se.dataId).id,ie=o==null?0:a.dataIdMap.get(o.dataId).id;return hS(y,j,te,Q,b,k,w,v,S,A,F,D,X,R,L,W,U,G,x,g,ie,m||0,ne),se}var Mte={kernelName:yi,backendName:"wasm",setupFunc:$te,kernelFunc:Dte},mS;function Rte(e){mS=e.wasm.cwrap(bi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Pte(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:c,dataFormat:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=n,f=E.computeConv2DInfo(r.shape,s.shape,l,c,u,d,!0),g=gp[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,v=0;if(i!=null){let ee=a.dataIdMap.get(i.dataId);if(ee.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ee.shape.length}.`);if(ee.shape[0]!==x)throw new Error(`FusedDepthwiseConv2D bias shape (${ee.shape}) does not match the number of output channels (${x})`);v=ee.id}let k=f.filterHeight,w=f.filterWidth,S=f.padInfo.top,A=f.padInfo.right,F=f.padInfo.bottom,D=f.padInfo.left,R=f.dilationHeight,L=f.dilationWidth,W=f.strideHeight,U=f.strideWidth,G=f.inChannels,X=f.padInfo.type==="SAME"?1:0,j=f.batchSize,te=f.inHeight,Q=f.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let se=a.makeOutput(f.outShape,"float32"),ne=a.dataIdMap.get(se.dataId).id,ie=o==null?0:a.dataIdMap.get(o.dataId).id;return mS(y,j,te,Q,b,k,w,v,S,A,F,D,X,R,L,W,U,G,x,g,ie,m||0,ne),se}var Ote={kernelName:bi,backendName:"wasm",setupFunc:Rte,kernelFunc:Pte},fS;function Lte(e){fS=e.wasm.cwrap(Ho,null,["number","number","number","number","number","number","array","number"])}function zte(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=hy.prepareAndValidate(a,r),u=t.makeOutput(s,a.dtype);if(i===0)return u;let c=r.shape,p=c[c.length-1],d=t.dataIdMap.get(a.dataId).id,h=t.dataIdMap.get(r.dataId).id,m=new Uint8Array(new Int32Array(l).buffer),f=t.dataIdMap.get(u.dataId).id;return fS(d,Hn[a.dtype],h,i,p,o,m,f),u}var Wte={kernelName:Ho,backendName:"wasm",setupFunc:Lte,kernelFunc:zte},gS;function Bte(e){gS=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function Vte(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,indices:s}=n,{axis:i,batchDims:o}=a,l=I.parseAxisParam(i,r.shape)[0],u=E.segment_util.collectGatherOpShapeInfo(r,s,l,o),c=Pa({inputs:{x:r},attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]},backend:t}),p=I.sizeFromShape(s.shape),d=Pa({inputs:{x:s},attrs:{shape:[u.batchSize,p/u.batchSize]},backend:t}),h=[u.batchSize,u.outerSize,p/u.batchSize,u.sliceSize],m=t.makeOutput(h,r.dtype);if(I.sizeFromShape(r.shape)===0)return m;let f=c.shape.length-1,g=t.dataIdMap.get(c.dataId).id,y=t.dataIdMap.get(d.dataId).id,b=t.dataIdMap.get(m.dataId).id,x=new Uint8Array(new Int32Array(I.computeStrides(c.shape)).buffer),v=new Uint8Array(new Int32Array(I.computeStrides(h)).buffer);return gS(g,Hn[r.dtype],x,f,y,u.batchSize,v,b),t.disposeData(c.dataId),t.disposeData(d.dataId),m.shape=u.outputShape,m}var Ute={kernelName:Go,backendName:"wasm",setupFunc:Bte,kernelFunc:Vte},Gte=!1,Hte=gn(jo,Gte,"bool"),jte=!1,qte=gn(Ws,jte,"bool"),yS;function Xte(e){yS=e.wasm.cwrap(Vs,null,["number","number","number"])}function Kte(e){let{inputs:{x:t},attrs:{alpha:n},backend:a}=e,r=a.dataIdMap.get(t.dataId).id,s=a.makeOutput(t.shape,t.dtype);if(I.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;yS(r,n,i)}return s}var Yte={kernelName:Vs,backendName:"wasm",setupFunc:Xte,kernelFunc:Kte},Jte=!1,Qte=gn(Yo,Jte,"bool"),Zte=!1,ene=gn(Jo,Zte,"bool"),tne=En(Us),nne=!1,ane=gn(Zo,nne,"bool"),bS;function rne(e){bS=e.wasm.cwrap(Gs,null,["number, number, number"])}function sne(e){let{backend:t,inputs:n,attrs:a}=e,{reductionIndices:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=i,{transposed:u,axes:c,originalAxes:p,inputWasTransposed:d}=mu(i,r,t);if(d){let b=t.dataIdMap.get(u.dataId).id;l=u,o=b}let h=l.shape.length;E.assertAxesAreInnerMostDims("max",c,h);let[m,f]=E.computeOutAndReduceShapes(l.shape,c),g=I.sizeFromShape(f),y=t.makeOutput(m,i.dtype);if(I.sizeFromShape(l.shape)!==0){let b=t.dataIdMap.get(y.dataId).id;bS(o,g,b)}if(d&&t.disposeData(u.dataId),s){let b=E.expandShapeToKeepDim(y.shape,p);y.shape=b}return y}var ine={kernelName:Gs,backendName:"wasm",setupFunc:rne,kernelFunc:sne},one=!1,lne=gn(Hs,one),xS;function une(e){xS=e.wasm.cwrap(js,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function cne(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=n,c=E.computePool2DInfo(r.shape,i,o,1,l,u),p=c.filterHeight,d=c.filterWidth,h=c.padInfo.top,m=c.padInfo.right,f=c.padInfo.bottom,g=c.padInfo.left,y=c.dilationHeight,b=c.dilationWidth,x=c.strideHeight,v=c.strideWidth,k=c.inChannels,w=c.outChannels;if(c.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let S=a.makeOutput(c.outShape,"float32"),A=a.dataIdMap.get(S.dataId).id;return xS(s,r.shape[0],r.shape[1],r.shape[2],p,d,h,m,f,g,y,b,x,v,k,w,A),S}var pne={kernelName:js,backendName:"wasm",setupFunc:une,kernelFunc:cne},vS;function dne(e){vS=e.wasm.cwrap(qs,null,["number, number, number"])}function hne(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:c,axes:p,originalAxes:d,inputWasTransposed:h}=mu(i,r,t),m=p;if(h){let v=t.dataIdMap.get(c.dataId).id;v!==o&&(u=c,l=v,m=E.getInnerMostAxes(m.length,u.shape.length))}E.assertAxesAreInnerMostDims("mean",m,u.shape.length);let[f,g]=E.computeOutAndReduceShapes(u.shape,m),y=I.sizeFromShape(g),b=u;u.dtype!=="float32"&&(b=Vm({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(b.dataId).id);let x=t.makeOutput(f,"float32");if(I.sizeFromShape(u.shape)!==0){let v=t.dataIdMap.get(x.dataId).id;vS(l,y,v)}if(h&&t.disposeData(c.dataId),s){let v=E.expandShapeToKeepDim(x.shape,d);x.shape=v}return u.dtype!=="float32"&&t.disposeData(b.dataId),x}var mne={kernelName:qs,backendName:"wasm",setupFunc:dne,kernelFunc:hne},wS;function fne(e){wS=e.wasm.cwrap(Xs,null,["number, number, number"])}function gne(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:c,axes:p,originalAxes:d,inputWasTransposed:h}=mu(i,r,t);if(h){let x=t.dataIdMap.get(c.dataId).id;x!==o&&(u=c,l=x)}let m=u.shape.length;E.assertAxesAreInnerMostDims("min",p,m);let[f,g]=E.computeOutAndReduceShapes(u.shape,p),y=I.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(I.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;wS(l,y,x)}if(h&&t.disposeData(c.dataId),s){let x=E.expandShapeToKeepDim(b.shape,d);b.shape=x}return b}var yne={kernelName:Xs,backendName:"wasm",setupFunc:fne,kernelFunc:gne},bne=!1,xne=gn(Ks,bne),vne=!0,wne=gn(Ys,vne),kne=En(tl);function Xv(e,t){let n=new Int32Array(e.wasm.HEAPU8.buffer,t,4),a=n[0],r=n[1],s=n[2],i=n[3];return e.wasm._free(t),{pSelectedIndices:a,selectedSize:r,pSelectedScores:s,pValidOutputs:i}}var kS;function Ine(e){kS=e.wasm.cwrap(al,"number",["number","number","number","number","number"])}function Nne(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i}=a,{boxes:o,scores:l}=n,u=t.dataIdMap.get(o.dataId).id,c=t.dataIdMap.get(l.dataId).id,p=kS(u,c,s,r,i),{pSelectedIndices:d,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=Xv(t,p);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",d)}var Tne={kernelName:al,backendName:"wasm",setupFunc:Ine,kernelFunc:Nne},IS;function Sne(e){IS=e.wasm.cwrap(rl,"number",["number","number","number","number","number","bool"])}function Cne(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:o}=a,{boxes:l,scores:u}=n,c=t.dataIdMap.get(l.dataId).id,p=t.dataIdMap.get(u.dataId).id,d=IS(c,p,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=Xv(t,d);t.wasm._free(f);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([],"int32",g);return[y,b]}var Ane={kernelName:rl,backendName:"wasm",setupFunc:Sne,kernelFunc:Cne},NS;function Fne(e){NS=e.wasm.cwrap(sl,"number",["number","number","number","number","number","number"])}function _ne(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,softNmsSigma:o}=a,{boxes:l,scores:u}=n,c=t.dataIdMap.get(l.dataId).id,p=t.dataIdMap.get(u.dataId).id,d=NS(c,p,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=Xv(t,d);t.wasm._free(g);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([m],"float32",f);return[y,b]}var Ene={kernelName:sl,backendName:"wasm",setupFunc:Fne,kernelFunc:_ne},$ne=!1,Dne=gn(nl,$ne,"bool"),TS;function Mne(e){TS=e.wasm.cwrap(Js,null,["number","number","number","number","number"])}function Rne(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{depth:s,onValue:i,offValue:o}=a,l=n.makeOutput([...r.shape,s],"int32"),u=n.dataIdMap.get(l.dataId).id,c=n.dataIdMap.get(r.dataId).id;return TS(c,s,i,o,u),l}var Pne={kernelName:Js,backendName:"wasm",setupFunc:Mne,kernelFunc:Rne};function One(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var Lne={kernelName:il,backendName:"wasm",kernelFunc:One};function zne(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return qv({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{I.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),I.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(c=>{let p=qv({inputs:{input:c},backend:n,attrs:{dim:r}});return o.push(p),p}),u=rS({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(c=>n.disposeData(c.dataId)),u}var Wne={kernelName:ol,backendName:"wasm",kernelFunc:zne},SS;function Bne(e){SS=e.wasm.cwrap(Qs,null,["number","array","number","number","array","array","number","number"])}function Vne(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,constantValue:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]),i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(t.shape).buffer),c=a.map(m=>m[0]),p=a.map(m=>m[1]),d=new Uint8Array(new Int32Array(c).buffer),h=new Uint8Array(new Int32Array(p).buffer);return SS(i,u,t.shape.length,Hn[t.dtype],d,h,r,l),o}var Une={kernelName:Qs,backendName:"wasm",kernelFunc:Vne,setupFunc:Bne},Gne=!1,Hne=gn(Zs,Gne),CS;function jne(e){CS=e.wasm.cwrap(ei,null,["number","number","number"])}function qne(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,o=n.makeOutput(a.shape,"float32"),l=n.dataIdMap.get(o.dataId).id;return CS(s,i,l),o}var Xne={kernelName:ei,backendName:"wasm",setupFunc:jne,kernelFunc:qne},AS;function Kne(e){AS=e.wasm.cwrap(ll,null,["number","number","number","number"])}function Yne(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:c,axes:p,originalAxes:d,inputWasTransposed:h}=mu(i,r,t),m=p;if(h){let x=t.dataIdMap.get(c.dataId).id;x!==o&&(u=c,l=x,m=E.getInnerMostAxes(m.length,u.shape.length))}E.assertAxesAreInnerMostDims("prod",m,u.shape.length);let[f,g]=E.computeOutAndReduceShapes(u.shape,m),y=I.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(I.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;AS(l,y,Hn[b.dtype],x)}if(h&&t.disposeData(c.dataId),s){let x=E.expandShapeToKeepDim(b.shape,d);b.shape=x}return b}var Jne={kernelName:ll,backendName:"wasm",setupFunc:Kne,kernelFunc:Yne},Qne=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=bv(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},Zne={kernelName:oc,backendName:"wasm",kernelFunc:Qne},eae=!0,tae=gn(Rs,eae),nae=En(ti),aae=En(ai),FS;function rae(e){FS=e.wasm.cwrap(ni,null,["number","number","number","number","number","number","number","number","number","number"])}function sae(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[c,p,d,h]=r.shape,m=[c,l,u,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=Vm({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let y=f.id,b=t.makeOutput(m,"float32");if(I.sizeFromShape(r.shape)===0)return b;let x=t.dataIdMap.get(b.dataId).id;return FS(y,c,p,d,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),b}var iae={kernelName:ni,backendName:"wasm",setupFunc:rae,kernelFunc:sae},_S;function oae(e){_S=e.wasm.cwrap(ri,null,["number","array","number","array","number","number"])}function lae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=I.parseAxisParam(s,r.shape);if(r.shape.length===0)return Wm({inputs:{x:r},backend:n});let o=n.makeOutput(r.shape,r.dtype),l=n.dataIdMap.get(r.dataId).id,u=n.dataIdMap.get(o.dataId).id,c=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(r.shape).buffer);_S(l,c,i.length,p,r.shape.length,u);let d=Pa({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),d}var uae={kernelName:ri,backendName:"wasm",kernelFunc:lae,setupFunc:oae},ES;function cae(e){ES=e.wasm.cwrap(Nl,null,["number","number","number","number","number","number","number","number","array","number","number"])}function pae(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{radians:s,fillValue:i,center:o}=a,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(l.dataId).id,[p,d,h,m]=r.shape,[f,g]=E.getImageCenter(o,d,h),y=i===0,b=255,x=typeof i=="number"?[i,i,i,y?0:b]:[...i,b],v=new Uint8Array(new Int32Array(x).buffer);return ES(u,p,d,h,m,s,f,g,v,x.length,c),l}var dae={kernelName:Nl,backendName:"wasm",kernelFunc:pae,setupFunc:cae},hae=En(si),mae=En(ii),$S;function fae(e){$S=e.wasm.cwrap(pl,null,["number","number","number","number","number","number","array","number","number"])}function gae(e){let{backend:t,inputs:n,attrs:a}=e,{indices:r,updates:s}=n,{shape:i}=a,o=t.makeOutput(i,s.dtype);if(I.sizeFromShape(i)===0)return o;let{sliceRank:l,numUpdates:u,sliceSize:c,strides:p,outputSize:d}=my.calculateShapes(s,r,i),h=t.dataIdMap.get(r.dataId).id,m=t.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(p).buffer),g=t.dataIdMap.get(o.dataId).id;return $S(h,m,Hn[s.dtype],l,u,c,f,d,g),o}var yae={kernelName:pl,backendName:"wasm",setupFunc:fae,kernelFunc:gae},DS;function bae(e){DS=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function xae(e){let{inputs:t,backend:n}=e,{condition:a,t:r,e:s}=t,i=n.dataIdMap.get(a.dataId).id,o=n.dataIdMap.get(r.dataId).id,l=n.dataIdMap.get(s.dataId).id,u=n.makeOutput(r.shape,r.dtype),c=n.dataIdMap.get(u.dataId).id,p=a.shape.length,d=r.shape.length,h=p===0||p>1||d===1?1:I.sizeFromShape(r.shape.slice(1));return DS(i,o,l,h,c),u}var vae={kernelName:dl,backendName:"wasm",kernelFunc:xae,setupFunc:bae},MS;function wae(e){MS=e.wasm.cwrap(li,null,["number","number"])}function kae(e){let{backend:t,inputs:{x:n}}=e,a=t.dataIdMap.get(n.dataId).id,r=t.makeOutput(n.shape,n.dtype),s=t.dataIdMap.get(r.dataId).id;return I.sizeFromShape(r.shape)===0||MS(a,s),r}var Iae={kernelName:"Sigmoid",backendName:"wasm",setupFunc:wae,kernelFunc:kae},Nae=En(oi);function Um(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=pn.parseSliceParams(t,n,a),o=pn.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),u=r.makeOutput(i,t.dtype),c=I.computeStrides(t.shape),p=r.dataIdMap.get(u.dataId);if(o){let m=pn.computeFlatOffset(s,c);return t.dtype==="string"?p.stringBytes=l.slice(m,m+I.sizeFromShape(i)):r.typedArrayFromHeap(u).set(l.subarray(m,m+I.sizeFromShape(i))),u}if(t.dtype==="string"){let m=km(l,s,i,t.shape,t.dtype);return p.stringBytes=m,u}let d=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)Tae(l,c[0],d,s,i);else if(h===3)Sae(l,c[0],c[1],d,s,i);else if(h===4)Cae(l,c[0],c[1],c[2],d,s,i);else{let m=km(l,s,i,t.shape,t.dtype);d.set(m)}return u}function Tae(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;u{let d=[...c];d[o]=p;let h=Um({inputs:{x:r},attrs:{begin:u,size:d},backend:a});return u[o]+=p,h})}var Dae={kernelName:bl,backendName:"wasm",kernelFunc:$ae},Mae=En(ui),Rae=En(cc),Pae=!0,Oae=gn(di,Pae),PS;function Lae(e){PS=e.wasm.cwrap(Gr,null,["number","number","number"])}function zae(e){let{backend:t,inputs:n,attrs:a}=e,{alpha:r}=a,{x:s}=n,i=t.dataIdMap.get(s.dataId).id,o=t.makeOutput(s.shape,s.dtype),l=t.dataIdMap.get(o.dataId).id;return PS(i,r,l),o}var Wae={kernelName:Gr,backendName:"wasm",setupFunc:Lae,kernelFunc:zae},OS;function Bae(e){OS=e.wasm.cwrap(xl,null,["number","array","number","array","array","array","array","array","number","number"])}function Vae(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{begin:s,end:i,strides:o}=a;o==null&&(o=new Array(s.length));let{beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:d}=a,h=E.slice_util.maskToAxes(c);if(h.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(c!==0&&p!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(c!==0&&d!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let m=r.shape.length-s.length,f=E.slice_util.maskToAxes(p),g=r.shape.slice();f.forEach(D=>{s[D]=0,i[D]=1,g.splice(D,0,1)});let y=Pa({inputs:{x:r},attrs:{shape:g},backend:t}),{begin:b,end:x,strides:v}=E.slice_util.getNormalizedAxes(y.shape,h,m,s,i,o,l,u,c);s=b,i=x,o=v;let k=E.slice_util.maskToAxes(d);k.forEach(D=>{i[D]=s[D]+1,o[D]=1});let w=E.slice_util.computeOutShape(s,i,o),S=w.filter((D,R)=>k.indexOf(R)===-1);if(o.every(D=>D===1)){let D=Um({inputs:{x:y},attrs:{begin:s,size:w},backend:t});t.disposeData(y.dataId);let R=Pa({inputs:{x:D},attrs:{shape:S},backend:t});return t.disposeData(D.dataId),R}let A=t.makeOutput(S,"float32");if(!S.some(D=>D===0)){let D=t.dataIdMap.get(y.dataId).id,R=new Uint8Array(new Int32Array(I.computeStrides(y.shape)).buffer),L=new Uint8Array(new Int32Array(s).buffer),W=new Uint8Array(new Int32Array(i).buffer),U=new Uint8Array(new Int32Array(o).buffer),G=new Uint8Array(new Int32Array(S).buffer),X=new Uint8Array(new Int32Array(I.computeStrides(S)).buffer),j=t.dataIdMap.get(A.dataId).id;OS(D,R,y.shape.length,L,W,U,G,X,S.length,j)}t.disposeData(y.dataId);let F=Pa({inputs:{x:A},attrs:{shape:S},backend:t});return t.disposeData(A.dataId),F}var Uae={kernelName:xl,backendName:"wasm",setupFunc:Bae,kernelFunc:Vae},Gae=!0,Hae=gn(hi,Gae),LS;function jae(e){LS=e.wasm.cwrap(ci,null,["number, number, number"])}function qae(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:c,axes:p,originalAxes:d,inputWasTransposed:h}=mu(i,r,t),m=p;if(h){let x=t.dataIdMap.get(c.dataId).id;x!==o&&(u=c,l=x,m=E.getInnerMostAxes(m.length,u.shape.length))}E.assertAxesAreInnerMostDims("sum",m,u.shape.length);let[f,g]=E.computeOutAndReduceShapes(u.shape,m),y=I.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(I.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;LS(l,y,x)}if(h&&t.disposeData(c.dataId),s){let x=E.expandShapeToKeepDim(b.shape,d);b.shape=x}return b}var Xae={kernelName:ci,backendName:"wasm",setupFunc:jae,kernelFunc:qae},Kae=En(mi),zS;function Yae(e){zS=e.wasm.cwrap(Ur,null,["number","array","number","array","number","number"])}function Jae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,s=n.dataIdMap.get(r.dataId).id,{reps:i}=a,o=new Array(r.shape.length);for(let d=0;d{let{x:a}=e,{k:r,sorted:s}=n,i=t.dataIdMap.get(a.dataId).id,o=new Uint8Array(new Int32Array(a.shape).buffer),l=a.shape.slice();l[l.length-1]=r;let u=t.makeOutput(l,a.dtype),c=t.dataIdMap.get(u.dataId).id,p=t.makeOutput(l,"int32"),d=t.dataIdMap.get(p.dataId).id;return WS(i,o,a.shape.length,Hn[a.dtype],r,s,c,d),[u,p]},tre={kernelName:wl,backendName:"wasm",setupFunc:Zae,kernelFunc:ere};function nre(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape[s],o=r.shape.length,l=new Array(o-1),u=0;for(let h=0;h({dataId:h,dtype:m,shape:l}))}var are={kernelName:kl,backendName:"wasm",kernelFunc:nre};function rre(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var sre={kernelName:Il,backendName:"wasm",kernelFunc:rre},ire=[Tee,Cee,_ee,Lee,Bee,Hee,jee,qee,Yee,Jee,ete,ate,rte,ote,cte,hte,gte,bte,xte,vte,kte,Tte,Ste,Ate,Nee,Ete,Mte,Ote,Wte,Ute,Hte,qte,Eee,Yte,Qte,ene,tne,ane,ine,lne,pne,mne,yne,xne,wne,kne,Tne,Ane,Ene,Dne,Pne,Lne,Wne,Une,Hne,Xne,Jne,Zne,tae,nae,aae,Vee,iae,uae,dae,mae,hae,yae,vae,Iae,Nae,Aae,Eae,Dae,Mae,Rae,Oae,Wae,Uae,Hae,Xae,Kae,Qae,tre,Ree,are,sre];for(let e of ire)hc(e);var Kv=Z();Kv.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11])));Kv.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(Kv.get("IS_NODE"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(e){return!1}});var BS=Io(yF()),ore='var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);Module["wasmModule"]=null;receiveInstance(instance);return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance;moduleLoaded()})}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["_emscripten_tls_init"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].setThreadStatus(Module["_pthread_self"](),1);try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(!Module["getNoExitRuntime"]())Module["PThread"].threadExit(result)}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["getNoExitRuntime"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}}',lre=Io(bF()),VS=class extends ju{constructor(e){super();this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new sd(this,Ua())}write(e,t,n){let a={id:this.dataIdNextNumber++};return this.move(a,e,t,n,1),a}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=I.now();return e(),{kernelMs:I.now()-t}}move(e,t,n,a,r){let s=this.dataIdNextNumber++;if(a==="string"){let u=t;this.dataIdMap.set(e,{id:s,stringBytes:u,shape:n,dtype:a,memoryOffset:null,refCount:r});return}let i=I.sizeFromShape(n),o=i*I.bytesPerElement(a),l=this.wasm._malloc(o);this.dataIdMap.set(e,{id:s,memoryOffset:l,shape:n,dtype:a,refCount:r}),this.wasm.tfjs.registerTensor(s,i,l),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,o),l)}async read(e){return this.readSync(e)}readSync(e){let{memoryOffset:t,dtype:n,shape:a,stringBytes:r}=this.dataIdMap.get(e);if(n==="string")return r;let s=this.wasm.HEAPU8.slice(t,t+I.sizeFromShape(a)*I.bytesPerElement(n));return ure(s.buffer,n)}disposeData(e,t=!1){if(this.dataIdMap.has(e)){let n=this.dataIdMap.get(e);if(n.refCount--,!t&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(e)}return!0}refCount(e){return this.dataIdMap.has(e)?this.dataIdMap.get(e).refCount:0}incRef(e){let t=this.dataIdMap.get(e);t!=null&&t.refCount++}floatPrecision(){return 32}getMemoryOffset(e){return this.dataIdMap.get(e).memoryOffset}dispose(){this.wasm.tfjs.dispose(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n){let a;if(n==null)a=this.write(null,e,t);else{let r=this.dataIdNextNumber++;a={id:r},this.dataIdMap.set(a,{id:r,memoryOffset:n,shape:e,dtype:t,refCount:1});let s=I.sizeFromShape(e);this.wasm.tfjs.registerTensor(r,s,n)}return{dataId:a,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:n}){let a=this.wasm.HEAPU8.buffer,{memoryOffset:r}=this.dataIdMap.get(n),s=I.sizeFromShape(e);switch(t){case"float32":return new Float32Array(a,r,s);case"int32":return new Int32Array(a,r,s);case"bool":return new Uint8Array(a,r,s);default:throw new Error(`Unknown dtype ${t}`)}}};function cre(e){return(t,n)=>(I.fetch(e,{credentials:"same-origin"}).then(a=>{a.ok||t.env.a(`failed to load wasm binary file at '${e}'`),a.arrayBuffer().then(r=>{WebAssembly.instantiate(r,t).then(s=>{n(s.instance)})})}),{})}function US(e,t,n){if(Gm!=null)return Gm;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),yp!=null&&yp[a]!=null?yp[a]:n+a}async function pre(){let[e,t]=await Promise.all([Z().getAsync("WASM_HAS_SIMD_SUPPORT"),Z().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let u=ore,c=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(c)}return o.endsWith(".wasm")?US(e,t,bp!=null?bp:l):l+o},Yv&&(r.instantiateWasm=cre(US(e,t,bp!=null?bp:"")));let s=!1;r.onAbort=()=>{s||xp||(xp=!0,a({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"}))};let i;t&&e&&Gm==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+BS.default.toString()],{type:"text/javascript"}),i=(0,BS.default)(r)):i=(0,lre.default)(r),i.then(o=>{s=!0,xp=!1;let l=null;o.tfjs={init:o.cwrap("init",null,[]),registerTensor:o.cwrap("register_tensor",null,["number","number","number"]),disposeData:o.cwrap("dispose_data",l,["number"]),dispose:o.cwrap("dispose",l,[])},n({wasm:o})})})}function ure(e,t){switch(t){case"float32":return new Float32Array(e);case"int32":return new Int32Array(e);case"bool":return new Uint8Array(e);default:throw new Error(`Unknown dtype ${t}`)}}var dre=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],Gm=null,bp=null,yp={},xp=!1,Yv=!1;function hre(e,t=!1){if(vy("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),xp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");Gm=e,Yv=t}function mre(e,t=!1){if(xp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof e=="string")bp=e;else{yp=e;let n=dre.filter(a=>yp[a]==null);if(n.length>0)throw new Error(`There were no entries found for the following binaries: ${n.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}Yv=t}var fre="3.3.0",gre=2;Qd("wasm",async()=>{let{wasm:e}=await pre();return new VS(e)},gre);var ZS={};ad(ZS,{AnchorPosition:()=>ir,DrawBox:()=>Xm,DrawBoxOptions:()=>cw,DrawFaceLandmarks:()=>vw,DrawFaceLandmarksOptions:()=>xw,DrawTextField:()=>fs,DrawTextFieldOptions:()=>Ip,drawContour:()=>Tr,drawDetections:()=>Cre,drawFaceExpressions:()=>Ere,drawFaceLandmarks:()=>Dre});function Tr(e,t,n=!1){if(e.beginPath(),t.slice(1).forEach(({x:a,y:r},s)=>{let i=t[s];e.moveTo(i.x,i.y),e.lineTo(a,r)}),n){let a=t[t.length-1],r=t[0];if(!a||!r)return;e.moveTo(a.x,a.y),e.lineTo(r.x,r.y)}e.stroke()}var GS={};ad(GS,{computeReshapedDimensions:()=>Zv,getCenterPoint:()=>Ki,isDimensions:()=>jm,isEven:()=>Hm,isFloat:()=>Qv,isTensor:()=>qi,isTensor1D:()=>yre,isTensor2D:()=>Jv,isTensor3D:()=>Sr,isTensor4D:()=>aa,isValidNumber:()=>Oa,isValidProbablitiy:()=>fu,range:()=>rr,round:()=>Xi});var yn=class{constructor(t,n){if(!Oa(t)||!Oa(n))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:n})}`);this._width=t,this._height=n}get width(){return this._width}get height(){return this._height}reverse(){return new yn(1/this.width,1/this.height)}};function qi(e,t){return e instanceof Fe&&e.shape.length===t}function yre(e){return qi(e,1)}function Jv(e){return qi(e,2)}function Sr(e){return qi(e,3)}function aa(e){return qi(e,4)}function Qv(e){return e%1!=0}function Hm(e){return e%2==0}function Xi(e,t=2){let n=10**t;return Math.floor(e*n)/n}function jm(e){return e&&e.width&&e.height}function Zv({width:e,height:t},n){let a=n/Math.max(t,e);return new yn(Math.round(e*a),Math.round(t*a))}function Ki(e){return e.reduce((t,n)=>t.add(n),new De(0,0)).div(new De(e.length,e.length))}function rr(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function Oa(e){return!!e&&e!==Infinity&&e!==-Infinity&&!Number.isNaN(e)||e===0}function fu(e){return Oa(e)&&e>=0&&e<=1}var De=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new De(this.x+t.x,this.y+t.y)}sub(t){return new De(this.x-t.x,this.y-t.y)}mul(t){return new De(this.x*t.x,this.y*t.y)}div(t){return new De(this.x/t.x,this.y/t.y)}abs(){return new De(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new De(Math.floor(this.x),Math.floor(this.y))}};var ut=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Oa)}static assertIsValidBox(t,n,a=!1){if(!ut.isRect(t))throw new Error(`${n} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!a&&(t.width<0||t.height<0))throw new Error(`${n} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,n=!0){let a=t||{},r=[a.left,a.top,a.right,a.bottom].every(Oa),s=[a.x,a.y,a.width,a.height].every(Oa);if(!s&&!r)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(a)}`);let[i,o,l,u]=s?[a.x,a.y,a.width,a.height]:[a.left,a.top,a.right-a.left,a.bottom-a.top];ut.assertIsValidBox({x:i,y:o,width:l,height:u},"Box.constructor",n),this._x=i,this._y=o,this._width=l,this._height=u}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new De(this.left,this.top)}get topRight(){return new De(this.right,this.top)}get bottomLeft(){return new De(this.left,this.bottom)}get bottomRight(){return new De(this.right,this.bottom)}round(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new ut({x:t,y:n,width:a,height:r})}floor(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new ut({x:t,y:n,width:a,height:r})}toSquare(){let{x:t,y:n,width:a,height:r}=this,s=Math.abs(a-r);return an&&(o=-p+n+a,p=n),d>t&&(l=-d+t+r,d=t),u<1&&(l=2-u,u=1),c<1&&(l=2-c,c=1),{dy:i,edy:l,dx:s,edx:o,y:c,ey:d,x:u,ex:p,w:a,h:r}}calibrate(t){return new ut({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var gu=class extends ut{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var ms=class{constructor(t,n,a,r,s){this._imageDims=new yn(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new ut(r).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new ut(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new ms(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var yt=class extends ms{constructor(t,n,a){super(t,t,"",n,a)}forSize(t,n){let{score:a,relativeBox:r,imageDims:s}=super.forSize(t,n);return new yt(a,r,s)}};function ew(e,t,n=!0){let a=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),r=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),s=a*r;return n?s/(e.area+t.area-s):s/Math.min(e.area,t.area)}function tw(e){let t=e.map(o=>o.x),n=e.map(o=>o.y),a=t.reduce((o,l)=>lloo({score:i,boxIndex:o})).sort((i,o)=>i.score-o.score).map(i=>i.boxIndex),s=[];for(;r.length>0;){let i=r.pop();s.push(i);let o=r,l=[];for(let u=0;ul[c]<=n)}return s}function La(e,t){return M(()=>{let[n,a,r]=t,s=Sn([...e.shape.slice(0,3),1],n,"float32"),i=Sn([...e.shape.slice(0,3),1],a,"float32"),o=Sn([...e.shape.slice(0,3),1],r,"float32"),l=Je([s,i,o],3);return me(e,l)})}function aw(e,t=!1){return M(()=>{let[n,a]=e.shape.slice(1);if(n===a)return e;let r=Math.abs(n-a),s=Math.round(r*(t?.5:1)),i=n>a?2:1,o=d=>{let h=e.shape.slice();return h[i]=d,Sn(h,0,"float32")},l=o(s),u=r-l.shape[i],p=[t&&u?o(u):null,e,l].filter(d=>!!d).map(d=>ue(d,"float32"));return Je(p,i)})}function bre(e){let t=e.slice();for(let n=t.length-1;n>0;n--){let a=Math.floor(Math.random()*(n+1)),r=t[n];t[n]=t[a],t[a]=r}return t}function vp(e){return 1/(1+Math.exp(-e))}function xre(e){return Math.log(e/(1-e))}var yu=class extends ut{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var vre=.5,wre=.43,kre=.45,ra=class{constructor(t,n,a=new De(0,0)){let{width:r,height:s}=n;this._imgDims=new yn(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new De(r,s)).add(a))}get shift(){return new De(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new De(this.imageWidth,this.imageHeight)))}forSize(t,n){return new this.constructor(this.relativePositions,{width:t,height:n})}shiftBy(t,n){return new this.constructor(this.relativePositions,this._imgDims,new De(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof yt?t.box.floor():new ut(t);return this.shiftBy(s.x,s.y).align(null,n)}let{useDlibAlignment:a,minBoxPadding:r}={useDlibAlignment:!1,minBoxPadding:.2,...n};return a?this.alignDlib():this.alignMinBbox(r)}alignDlib(){let t=this.getRefPointsForAlignment(),[n,a,r]=t,s=p=>r.sub(p).magnitude(),i=(s(n)+s(a))/2,o=Math.floor(i/kre),l=Ki(t),u=Math.floor(Math.max(0,l.x-vre*o)),c=Math.floor(Math.max(0,l.y-wre*o));return new yu(u,c,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+c))}alignMinBbox(t){let n=tw(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var HS=class extends ra{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],Ki([t[3],t[4]])]}};var bu=class extends ra{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(Ki)}};var wp=class{constructor(t,n){this._label=t,this._distance=n}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Xi(this.distance)})`:""}`}};var kp=class extends ut{static assertIsValidLabeledBox(t,n){if(ut.assertIsValidBox(t,n),!Oa(t.label))throw new Error(`${n} - expected property label (${t.label}) to be a number`)}constructor(t,n){super(t);this._label=n}get label(){return this._label}};var Cr=class{constructor(t,n){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(n)||n.some(a=>!(a instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=n}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let n=t.descriptors.map(a=>new Float32Array(a));return new Cr(t.label,n)}};var jS=class extends kp{static assertIsValidPredictedBox(t,n){if(kp.assertIsValidLabeledBox(t,n),!fu(t.score)||!fu(t.classScore))throw new Error(`${n} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,n,a,r){super(t,n);this._score=a,this._classScore=r}get score(){return this._score}get classScore(){return this._classScore}};function sr(e){return e.detection instanceof yt}function Yi(e,t){return{...e,...{detection:t}}}function rw(){let e=window.fetch;if(!e)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:e,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function qm(e){let t="";if(!e)try{e=require("fs")}catch(a){t=a.toString()}return{readFile:e?a=>new Promise((r,s)=>{e.readFile(a,(i,o)=>i?s(i):r(o))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function sw(){let e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=()=>{if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},a=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},r=global.fetch,s=qm();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:n,createImageElement:a,fetch:r,...s}}function iw(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var ow=PA(XS()),Zt;function Tre(){if(!Zt)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return Zt}function lw(e){Zt=e}function uw(){return iw()?lw(rw()):(0,ow.isNodejs)()?lw(sw()):null}function Sre(e){if(Zt||uw(),!Zt)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=Zt.Canvas,Image:n=Zt.Image}=e;Zt.Canvas=t,Zt.Image=n,Zt.createCanvasElement=e.createCanvasElement||(()=>new t),Zt.createImageElement=e.createImageElement||(()=>new n),Zt.ImageData=e.ImageData||Zt.ImageData,Zt.Video=e.Video||Zt.Video,Zt.fetch=e.fetch||Zt.fetch,Zt.readFile=e.readFile||Zt.readFile}var st={getEnv:Tre,setEnv:lw,initialize:uw,createBrowserEnv:rw,createFileSystem:qm,createNodejsEnv:sw,monkeyPatch:Sre,isBrowser:iw,isNodejs:ow.isNodejs};uw();function Ji(e){return!st.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function $n(e){let{Canvas:t,CanvasRenderingContext2D:n}=st.getEnv();if(e instanceof n)return e;let a=Ji(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d");if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var ir;(function(e){e.TOP_LEFT="TOP_LEFT",e.TOP_RIGHT="TOP_RIGHT",e.BOTTOM_LEFT="BOTTOM_LEFT",e.BOTTOM_RIGHT="BOTTOM_RIGHT"})(ir||(ir={}));var Ip=class{constructor(t={}){let{anchorPosition:n,backgroundColor:a,fontColor:r,fontSize:s,fontStyle:i,padding:o}=t;this.anchorPosition=n||ir.TOP_LEFT,this.backgroundColor=a||"rgba(0, 0, 0, 0.5)",this.fontColor=r||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=i||"Georgia",this.padding=o||4}},fs=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof fs?t.text:t,this.anchor=n,this.options=new Ip(a)}measureWidth(t){let{padding:n}=this.options;return this.text.map(a=>t.measureText(a).width).reduce((a,r)=>a{let m=l+p.x,f=l+p.y+(h+1)*i;a.fillText(d,m,f)})}};var cw=class{constructor(t={}){let{boxColor:n,lineWidth:a,label:r,drawLabelOptions:s}=t;this.boxColor=n||"rgba(0, 0, 255, 1)",this.lineWidth=a||2,this.label=r;let i={anchorPosition:ir.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Ip({...i,...s})}},Xm=class{constructor(t,n={}){this.box=new ut(t),this.options=new cw(n)}draw(t){let n=$n(t),{boxColor:a,lineWidth:r}=this.options,{x:s,y:i,width:o,height:l}=this.box;n.strokeStyle=a,n.lineWidth=r,n.strokeRect(s,i,o,l);let{label:u}=this.options;u&&new fs([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function Cre(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof yt?a.score:sr(a)?a.detection.score:void 0,s=a instanceof yt?a.box:sr(a)?a.detection.box:new ut(a),i=r?`${Xi(r)}`:void 0;new Xm(s,{label:i}).draw(e)})}function Np(e){let{Image:t,Video:n}=st.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function pw(e){return new Promise((t,n)=>{if(e instanceof st.getEnv().Canvas||Np(e))return t(null);function a(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),n(s))}function r(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),t(s))}e.addEventListener("load",r),e.addEventListener("error",a)})}function dw(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToImage - expected buf to be of type: Blob"));let a=new FileReader;a.onload=()=>{typeof a.result!="string"&&n(new Error("bufferToImage - expected reader.result to be a string, in onload"));let r=st.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function Qi(e){let{Image:t,Video:n}=st.getEnv();return e instanceof t?new yn(e.naturalWidth,e.naturalHeight):e instanceof n?new yn(e.videoWidth,e.videoHeight):new yn(e.width,e.height)}function Zi({width:e,height:t}){let{createCanvasElement:n}=st.getEnv(),a=n();return a.width=e,a.height=t,a}function Tp(e,t){let{ImageData:n}=st.getEnv();if(!(e instanceof n)&&!Np(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||Qi(e),s=Zi({width:a,height:r});return e instanceof n?$n(s).putImageData(e,0,0):$n(s).drawImage(e,0,0,a,r),s}async function hw(e,t){let n=t||st.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(aa(e)?1:0),i=M(()=>e.as3D(a,r,s).toInt());return await ki.toPixels(i,n),i.dispose(),n}function Km(e){let{Image:t,Canvas:n,Video:a}=st.getEnv();return e instanceof t||e instanceof n||e instanceof a}function mw(e,t,n=!1){let{Image:a,Canvas:r}=st.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Zi({width:1,height:1});let s=Qi(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=Zi({width:t,height:t}),c=e instanceof r?e:Tp(e),p=Math.abs(o-l)/2,d=n&&o0&&c.height>0&&$n(u).drawImage(c,d,h,o,l),u}var Ar=class{constructor(t,n=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=n,this._batchSize=t.length,t.forEach((a,r)=>{if(Sr(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(aa(a)){let i=a.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[r]=a,this._inputDimensions[r]=a.shape.slice(1);return}let s=a instanceof st.getEnv().Canvas?a:Tp(a);this._canvases[r]=s,this._inputDimensions[r]=[s.height,s.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return rr(this.batchSize,0,1).map((t,n)=>this.getReshapedInputDimensions(n))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let n=this.getInputWidth(t),a=this.getInputHeight(t);return Zv({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,M(()=>{let a=rr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Fe){let o=aa(i)?i:i.expandDims();return o=aw(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=Ka.resizeBilinear(o,[t,t])),o.as3D(t,t,3)}if(i instanceof st.getEnv().Canvas)return ki.fromPixels(mw(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return Dt(a.map(s=>ue(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function mt(e){if(e instanceof Ar)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");let n=r=>Array.isArray(e)?` at input index ${r}:`:"",a=t.map(Ji);return a.forEach((r,s)=>{if(!Km(r)&&!Sr(r)&&!aa(r))throw typeof t[s]=="string"?new Error(`toNetInput -${n(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${n(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(aa(r)){let i=r.shape[0];if(i!==1)throw new Error(`toNetInput -${n(s)} tf.Tensor4D with batchSize ${i} passed, but not supported in input array`)}}),await Promise.all(a.map(r=>Km(r)&&pw(r))),new Ar(a,Array.isArray(e))}async function xu(e,t){let{Canvas:n}=st.getEnv(),a=e;if(!(e instanceof n)){let i=await mt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await hw(o)}let r=$n(a);return t.map(i=>i instanceof yt?i.forSize(a.width,a.height).box.floor():i).map(i=>i.clipAtImageBorders(a.width,a.height)).map(({x:i,y:o,width:l,height:u})=>{let c=Zi({width:l,height:u});return l>0&&u>0&&$n(c).putImageData(r.getImageData(i,o,l,u),0,0),c})}async function vu(e,t){if(!Sr(e)&&!aa(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(aa(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return M(()=>{let[n,a,r]=e.shape.slice(aa(e)?1:0);return t.map(o=>o instanceof yt?o.forSize(a,n).box:o).map(o=>o.clipAtImageBorders(a,n)).map(({x:o,y:l,width:u,height:c})=>Wl(e.as3D(n,a,r),[l,o,0],[c,u,r]))})}async function eo(e,t){let{fetch:n}=st.getEnv(),a=await n(e,t);if(!(a.status<400))throw new Error(`failed to fetch: (${a.status}) ${a.statusText}, from url: ${a.url}`);return a}async function Are(e){let t=await eo(e),n=await t.blob();if(!n.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${n.type}, for url: ${t.url}`);return dw(n)}async function fw(e){return(await eo(e)).json()}async function Fre(e){return new Float32Array(await(await eo(e)).arrayBuffer())}function Ym(e,t){let n=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:n};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${n}`};let a=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(a,"");let r=e.split("/").filter(o=>o),s=e.endsWith(".json")?r[r.length-1]:n,i=a+(e.endsWith(".json")?r.slice(0,r.length-1):r).join("/");return i=e.startsWith("/")?`/${i}`:i,{modelBaseUri:i,manifestUri:i==="/"?`/${s}`:`${i}/${s}`}}async function gw(e,t){let{manifestUri:n,modelBaseUri:a}=Ym(e,t),r=await fw(n);return jt.loadWeights(r,a)}function _re(e,t,n=!1){let{width:a,height:r}=n?Qi(t):t;return e.width=a,e.height=r,{width:a,height:r}}var on=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:n,objProp:a}=this.traversePropertyPath(t);return n[a]}reassignParamFromPath(t,n){let{obj:a,objProp:r}=this.traversePropertyPath(t);a[r].dispose(),a[r]=n}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof Hr)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof Hr))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=Yn(n.dataSync());n.dispose(),this.reassignParamFromPath(t,a)})}dispose(t=!0){this.getParamList().forEach(n=>{if(t&&n.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${n.path}`);n.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,n)=>t.concat(n)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let n=await gw(t,this.getDefaultModelName());this.loadFromWeightMap(n)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:n}=st.getEnv(),{manifestUri:a,modelBaseUri:r}=Ym(t,this.getDefaultModelName()),s=u=>Promise.all(u.map(c=>n(c).then(p=>p.buffer))),i=jt.weightsLoaderFactory(s),o=JSON.parse((await n(a)).toString()),l=await i(o,r);this.loadFromWeightMap(l)}loadFromWeightMap(t){let{paramMappings:n,params:a}=this.extractParamsFromWeightMap(t);this._paramMappings=n,this._params=a}extractWeights(t){let{paramMappings:n,params:a}=this.extractParams(t);this._paramMappings=n,this._params=a}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let n=t.split("/").reduce((s,i)=>{if(!s.nextObj.hasOwnProperty(i))throw new Error(`traversePropertyPath - object does not have property ${i}, for path ${t}`);return{obj:s.nextObj,objProp:i,nextObj:s.nextObj[i]}},{nextObj:this.params}),{obj:a,objProp:r}=n;if(!a||!r||!(a[r]instanceof Fe))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function Dn(e,t,n){return M(()=>{let a=Fi(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=J(a,t.bias),a})}function Jm(e,t,n=!1){return M(()=>{let a=qe(n?J(Et(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Dn(e,t.conv0,[2,2])),r=Dn(a,t.conv1,[1,1]),s=qe(J(a,r)),i=Dn(s,t.conv2,[1,1]);return qe(J(a,J(r,i)))})}function Sp(e,t,n=!1,a=!0){return M(()=>{let r=qe(n?J(Et(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):Dn(e,t.conv0,a?[2,2]:[1,1])),s=Dn(r,t.conv1,[1,1]),i=qe(J(r,s)),o=Dn(i,t.conv2,[1,1]),l=qe(J(r,J(s,o))),u=Dn(l,t.conv3,[1,1]);return qe(J(r,J(s,J(o,u))))})}function to(e,t,n="same",a=!1){return M(()=>{let r=J(Et(e,t.filters,[1,1],n),t.bias);return a?qe(r):r})}function bn(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function wu(e,t){return(n,a,r,s)=>{let i=Ca(e(n*a*r*r),[r,r,n,a]),o=Qe(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function Qm(e,t){return(n,a,r)=>{let s=Sa(e(n*a),[n,a]),i=Qe(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var Zm=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function ku(e,t){return(n,a,r)=>{let s=Ca(e(3*3*n),[3,3,n,1]),i=Ca(e(n*a),[1,1,n,a]),o=Qe(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new Zm(s,i,o)}}function Iu(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new Zm(n,a,r)}}function jn(e,t){return(n,a,r)=>{let s=e[n];if(!qi(s,a))throw new Error(`expected weightMap[${n}] to be a Tensor${a}D, instead have ${s}`);return t.push({originalPath:n,paramPath:r||n}),s}}function xn(e){let t=e;function n(r){let s=t.slice(0,r);return t=t.slice(r),s}function a(){return t}return{extractWeights:n,getRemainingWeights:a}}function ef(e,t){let n=wu(e,t),a=ku(e,t);function r(i,o,l,u=!1){let c=u?n(i,o,3,`${l}/conv0`):a(i,o,`${l}/conv0`),p=a(o,o,`${l}/conv1`),d=a(o,o,`${l}/conv2`);return{conv0:c,conv1:p,conv2:d}}function s(i,o,l,u=!1){let{conv0:c,conv1:p,conv2:d}=r(i,o,l,u),h=a(o,o,`${l}/conv3`);return{conv0:c,conv1:p,conv2:d,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:s}}function KS(e){let t=[],{extractWeights:n,getRemainingWeights:a}=xn(e),{extractDenseBlock4Params:r}=ef(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2"),l=r(128,256,"dense3");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o,dense3:l}}}function tf(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function nf(e,t){let n=jn(e,t),a=tf(n),r=Iu(n);function s(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),c=r(`${o}/conv1`),p=r(`${o}/conv2`);return{conv0:u,conv1:c,conv2:p}}function i(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),c=r(`${o}/conv1`),p=r(`${o}/conv2`),d=r(`${o}/conv3`);return{conv0:u,conv1:c,conv2:p,conv3:d}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function YS(e){let t=[],{extractDenseBlock4Params:n}=nf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return bn(e,t),{params:a,paramMappings:t}}var Cp=class extends on{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return M(()=>{let a=ue(t.toBatchTensor(112,!0),"float32"),s=La(a,[122.782,117.001,104.298]).div(ce(255)),i=Sp(s,n.dense0,!0);return i=Sp(i,n.dense1),i=Sp(i,n.dense2),i=Sp(i,n.dense3),i=Qn(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await mt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return YS(t)}extractParams(t){return KS(t)}};function Ap(e,t){return M(()=>J(ze(e,t.weights),t.bias))}function JS(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=xn(e),o=Qm(r,a)(t,n,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:a,params:{fc:o}}}function QS(e){let t=[],n=jn(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:a("fc")};return bn(e,t),{params:r,paramMappings:t}}function af(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=a.startsWith("fc")?n:t;r[a]=e[a]}),{featureExtractorMap:t,classifierMap:n}}var Fp=class extends on{constructor(t,n){super(t);this._faceFeatureExtractor=n}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:n}=this;if(!n)throw new Error(`${this._name} - load model before inference`);return M(()=>{let a=t instanceof Ar?this.faceFeatureExtractor.forwardInput(t):t;return Ap(a.as2D(a.shape[0],-1),n.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:n,paramMappings:a}=this.extractClassifierParams(t);this._params=n,this._paramMappings=a}extractClassifierParams(t){return JS(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=af(t);return this.faceFeatureExtractor.loadFromWeightMap(n),QS(a)}extractParams(t){let n=this.getClassifierChannelsIn(),a=this.getClassifierChannelsOut(),r=a*n+a,s=t.slice(0,t.length-r),i=t.slice(t.length-r);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(i)}};var yw=["neutral","happy","sad","angry","fearful","disgusted","surprised"],gs=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);yw.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return yw.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var rf=class extends Fp{constructor(t=new Cp){super("FaceExpressionNet",t)}forwardInput(t){return M(()=>Ta(this.runNet(t)))}async forward(t){return this.forwardInput(await mt(t))}async predictExpressions(t){let n=await mt(t),a=await this.forwardInput(n),r=await Promise.all(ct(a).map(async i=>{let o=await i.data();return i.dispose(),o}));a.dispose();let s=r.map(i=>new gs(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function bw(e){return e.expressions instanceof gs}function sf(e,t){return{...e,...{expressions:t}}}function Ere(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof gs?s:bw(s)?s.expressions:void 0;if(!i)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let l=i.asSortedArray().filter(p=>p.probability>n),u=sr(s)?s.detection.box.bottomLeft:a||new De(0,0);new fs(l.map(p=>`${p.expression} (${Xi(p.probability)})`),u).draw(e)})}function no(e){return sr(e)&&e.landmarks instanceof ra&&e.unshiftedLandmarks instanceof ra&&e.alignedRect instanceof yt}function $re(e){let t=(o,l,u,c)=>Math.atan2(c-l,u-o)%Math.PI,n=o=>o*180/Math.PI,a={roll:void 0,pitch:void 0,yaw:void 0};if(!e||!e._positions||e._positions.length!==68)return a;let r=e._positions;a.roll=-t(r[36]._x,r[36]._y,r[45]._x,r[45]._y),a.pitch=t(0,Math.abs(r[0]._x-r[30]._x)/r[30]._x,Math.PI,Math.abs(r[16]._x-r[30]._x)/r[30]._x);let s=r.reduce((o,l)=>oo>l._y?o:l._y,-Infinity);return a.yaw=Math.PI*(e._imgDims._height/(i-s)/1.4-1),a}function Nu(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new yt(e.detection.score,r.rescale(s.reverse()),s),o=$re(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var xw=class{constructor(t={}){let{drawLines:n=!0,drawPoints:a=!0,lineWidth:r,lineColor:s,pointSize:i,pointColor:o}=t;this.drawLines=n,this.drawPoints=a,this.lineWidth=r||1,this.pointSize=i||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=o||"rgba(255, 0, 255, 1)"}},vw=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new xw(n)}draw(t){let n=$n(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof bu&&(n.strokeStyle=i,n.lineWidth=s,Tr(n,this.faceLandmarks.getJawOutline()),Tr(n,this.faceLandmarks.getLeftEyeBrow()),Tr(n,this.faceLandmarks.getRightEyeBrow()),Tr(n,this.faceLandmarks.getNose()),Tr(n,this.faceLandmarks.getLeftEye(),!0),Tr(n,this.faceLandmarks.getRightEye(),!0),Tr(n,this.faceLandmarks.getMouth(),!0)),r){n.strokeStyle=l,n.fillStyle=l;let u=c=>{n.beginPath(),n.arc(c.x,c.y,o,0,2*Math.PI),n.fill()};this.faceLandmarks.positions.forEach(u)}}};function Dre(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof ra?a:no(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new vw(r).draw(e)})}var eC="1.0.1";function Mre(e,t){let n=wu(e,t),a=ku(e,t);function r(i,o,l){let u=a(i,o,`${l}/separable_conv0`),c=a(o,o,`${l}/separable_conv1`),p=n(i,o,1,`${l}/expansion_conv`);return{separable_conv0:u,separable_conv1:c,expansion_conv:p}}function s(i,o){let l=a(i,i,`${o}/separable_conv0`),u=a(i,i,`${o}/separable_conv1`),c=a(i,i,`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:c}}return{extractConvParams:n,extractSeparableConvParams:a,extractReductionBlockParams:r,extractMainBlockParams:s}}function tC(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=xn(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=Mre(a,n),u=s(3,32,3,"entry_flow/conv_in"),c=o(32,64,"entry_flow/reduction_block_0"),p=o(64,128,"entry_flow/reduction_block_1"),d={conv_in:u,reduction_block_0:c,reduction_block_1:p},h={};rr(t,0,1).forEach(y=>{h[`main_block_${y}`]=l(128,`middle_flow/main_block_${y}`)});let m=o(128,256,"exit_flow/reduction_block"),f=i(256,512,"exit_flow/separable_conv"),g={reduction_block:m,separable_conv:f};if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:n,params:{entry_flow:d,middle_flow:h,exit_flow:g}}}function Rre(e,t){let n=jn(e,t),a=tf(n),r=Iu(n);function s(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),c=a(`${o}/expansion_conv`);return{separable_conv0:l,separable_conv1:u,expansion_conv:c}}function i(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),c=r(`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:c}}return{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}}function nC(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=Rre(e,n),o=a("entry_flow/conv_in"),l=s("entry_flow/reduction_block_0"),u=s("entry_flow/reduction_block_1"),c={conv_in:o,reduction_block_0:l,reduction_block_1:u},p={};rr(t,0,1).forEach(f=>{p[`main_block_${f}`]=i(`middle_flow/main_block_${f}`)});let d=s("exit_flow/reduction_block"),h=r("exit_flow/separable_conv"),m={reduction_block:d,separable_conv:h};return bn(e,n),{params:{entry_flow:c,middle_flow:p,exit_flow:m},paramMappings:n}}function aC(e,t,n){return J(Et(e,t.filters,n,"same"),t.bias)}function ww(e,t,n=!0){let a=n?qe(e):e;return a=Dn(a,t.separable_conv0,[1,1]),a=Dn(qe(a),t.separable_conv1,[1,1]),a=$t(a,[3,3],[2,2],"same"),a=J(a,aC(e,t.expansion_conv,[2,2])),a}function Pre(e,t){let n=Dn(qe(e),t.separable_conv0,[1,1]);return n=Dn(qe(n),t.separable_conv1,[1,1]),n=Dn(qe(n),t.separable_conv2,[1,1]),n=J(n,e),n}var kw=class extends on{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyXception - load model before inference");return M(()=>{let a=ue(t.toBatchTensor(112,!0),"float32"),s=La(a,[122.782,117.001,104.298]).div(ce(256)),i=qe(aC(s,n.entry_flow.conv_in,[2,2]));return i=ww(i,n.entry_flow.reduction_block_0,!1),i=ww(i,n.entry_flow.reduction_block_1),rr(this._numMainBlocks,0,1).forEach(o=>{i=Pre(i,n.middle_flow[`main_block_${o}`])}),i=ww(i,n.exit_flow.reduction_block),i=qe(Dn(i,n.exit_flow.separable_conv,[1,1])),i})}async forward(t){return this.forwardInput(await mt(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return nC(t,this._numMainBlocks)}extractParams(t){return tC(t,this._numMainBlocks)}};function rC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=xn(e),r=Qm(n,t),s=r(512,1,"fc/age"),i=r(512,2,"fc/gender");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{fc:{age:s,gender:i}}}}function sC(e){let t=[],n=jn(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:{age:a("fc/age"),gender:a("fc/gender")}};return bn(e,t),{params:r,paramMappings:t}}var Fr;(function(e){e.FEMALE="female",e.MALE="male"})(Fr||(Fr={}));var of=class extends on{constructor(t=new kw(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:n}=this;if(!n)throw new Error(`${this._name} - load model before inference`);return M(()=>{let a=t instanceof Ar?this.faceFeatureExtractor.forwardInput(t):t,r=Qn(a,[7,7],[2,2],"valid").as2D(a.shape[0],-1),s=Ap(r,n.fc.age).as1D(),i=Ap(r,n.fc.gender);return{age:s,gender:i}})}forwardInput(t){return M(()=>{let{age:n,gender:a}=this.runNet(t);return{age:n,gender:Ta(a)}})}async forward(t){return this.forwardInput(await mt(t))}async predictAgeAndGender(t){let n=await mt(t),a=await this.forwardInput(n),r=ct(a.age),s=ct(a.gender),i=r.map((l,u)=>({ageTensor:l,genderTensor:s[u]})),o=await Promise.all(i.map(async({ageTensor:l,genderTensor:u})=>{let c=(await l.data())[0],p=(await u.data())[0],d=p>.5,h=d?Fr.MALE:Fr.FEMALE,m=d?p:1-p;return l.dispose(),u.dispose(),{age:c,gender:h,genderProbability:m}}));return a.age.dispose(),a.gender.dispose(),n.isBatchInput?o:o[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:n,paramMappings:a}=this.extractClassifierParams(t);this._params=n,this._paramMappings=a}extractClassifierParams(t){return rC(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=af(t);return this.faceFeatureExtractor.loadFromWeightMap(n),sC(a)}extractParams(t){let n=512*1+1+(512*2+2),a=t.slice(0,t.length-n),r=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(r)}};var _p=class extends Fp{postProcess(t,n,a){let r=a.map(({width:i,height:o})=>{let l=n/Math.max(o,i);return{width:i*l,height:o*l}}),s=r.length;return M(()=>{let i=(p,d)=>Dt([Sn([68],p,"float32"),Sn([68],d,"float32")],1).as2D(1,136).as1D(),o=(p,d)=>{let{width:h,height:m}=r[p];return d(h,m)?Math.abs(h-m)/2:0},l=p=>o(p,(d,h)=>do(p,(d,h)=>hi(l(d),u(d))))).div(Dt(Array.from(Array(s),(p,d)=>i(r[d].width,r[d].height))))})}forwardInput(t){return M(()=>{let n=this.runNet(t);return this.postProcess(n,t.inputSize,t.inputDimensions.map(([a,r])=>({height:a,width:r})))})}async forward(t){return this.forwardInput(await mt(t))}async detectLandmarks(t){let n=await mt(t),a=M(()=>ct(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(await s.data()),l=o.filter((c,p)=>Hm(p)),u=o.filter((c,p)=>!Hm(p));return new bu(Array(68).fill(0).map((c,p)=>new De(l[p],u[p])),{height:n.getInputHeight(i),width:n.getInputWidth(i)})}));return a.forEach(s=>s.dispose()),n.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}};var Tu=class extends _p{constructor(t=new Cp){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function iC(e){let t=[],{extractDenseBlock3Params:n}=nf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return bn(e,t),{params:a,paramMappings:t}}function oC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=xn(e),{extractDenseBlock3Params:r}=ef(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o}}}var Iw=class extends on{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return M(()=>{let a=ue(t.toBatchTensor(112,!0),"float32"),s=La(a,[122.782,117.001,104.298]).div(ce(255)),i=Jm(s,n.dense0,!0);return i=Jm(i,n.dense1),i=Jm(i,n.dense2),i=Qn(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await mt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return iC(t)}extractParams(t){return oC(t)}};var lf=class extends _p{constructor(t=new Iw){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var lC=class extends Tu{};function uC(e,t){return J(B(e,t.weights),t.biases)}function Nw(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=Et(e,s,n,r);return o=J(o,i),o=uC(o,t.scale),a?qe(o):o}function cC(e,t){return Nw(e,t,[1,1],!0)}function Tw(e,t){return Nw(e,t,[1,1],!1)}function uf(e,t){return Nw(e,t,[2,2],!0,"valid")}function Ore(e,t){function n(o,l,u){let c=e(o),p=c.length/(l*u*u);if(Qv(p))throw new Error(`depth has to be an integer: ${p}, weights.length: ${c.length}, numFilters: ${l}, filterSize: ${u}`);return M(()=>Ve(Ca(c,[l,p,u,u]),[2,3,1,0]))}function a(o,l,u,c){let p=n(o,l,u),d=Qe(e(l));return t.push({paramPath:`${c}/filters`},{paramPath:`${c}/bias`}),{filters:p,bias:d}}function r(o,l){let u=Qe(e(o)),c=Qe(e(o));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:u,biases:c}}function s(o,l,u,c){let p=a(o,l,u,`${c}/conv`),d=r(l,`${c}/scale`);return{conv:p,scale:d}}function i(o,l,u,c,p=!1){let d=s((p?.5:1)*o,l,u,`${c}/conv1`),h=s(o,l,u,`${c}/conv2`);return{conv1:d,conv2:h}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function pC(e){let{extractWeights:t,getRemainingWeights:n}=xn(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=Ore(t,a),i=r(4704,32,7,"conv32_down"),o=s(9216,32,3,"conv32_1"),l=s(9216,32,3,"conv32_2"),u=s(9216,32,3,"conv32_3"),c=s(36864,64,3,"conv64_down",!0),p=s(36864,64,3,"conv64_1"),d=s(36864,64,3,"conv64_2"),h=s(36864,64,3,"conv64_3"),m=s(147456,128,3,"conv128_down",!0),f=s(147456,128,3,"conv128_1"),g=s(147456,128,3,"conv128_2"),y=s(589824,256,3,"conv256_down",!0),b=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),v=s(589824,256,3,"conv256_down_out"),k=M(()=>Ve(Sa(t(256*128),[128,256]),[1,0]));if(a.push({paramPath:"fc"}),n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{params:{conv32_down:i,conv32_1:o,conv32_2:l,conv32_3:u,conv64_down:c,conv64_1:p,conv64_2:d,conv64_3:h,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:y,conv256_1:b,conv256_2:x,conv256_down_out:v,fc:k},paramMappings:a}}function Lre(e,t){let n=jn(e,t);function a(i){let o=n(`${i}/scale/weights`,1),l=n(`${i}/scale/biases`,1);return{weights:o,biases:l}}function r(i){let o=n(`${i}/conv/filters`,4),l=n(`${i}/conv/bias`,1),u=a(i);return{conv:{filters:o,bias:l},scale:u}}function s(i){return{conv1:r(`${i}/conv1`),conv2:r(`${i}/conv2`)}}return{extractConvLayerParams:r,extractResidualLayerParams:s}}function dC(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Lre(e,t),r=n("conv32_down"),s=a("conv32_1"),i=a("conv32_2"),o=a("conv32_3"),l=a("conv64_down"),u=a("conv64_1"),c=a("conv64_2"),p=a("conv64_3"),d=a("conv128_down"),h=a("conv128_1"),m=a("conv128_2"),f=a("conv256_down"),g=a("conv256_1"),y=a("conv256_2"),b=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!Jv(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);let v={conv32_down:r,conv32_1:s,conv32_2:i,conv32_3:o,conv64_down:l,conv64_1:u,conv64_2:c,conv64_3:p,conv128_down:d,conv128_1:h,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:y,conv256_down_out:b,fc:x};return bn(e,t),{params:v,paramMappings:t}}function za(e,t){let n=cC(e,t.conv1);return n=Tw(n,t.conv2),n=J(n,e),n=qe(n),n}function Ep(e,t){let n=uf(e,t.conv1);n=Tw(n,t.conv2);let a=Qn(e,2,2,"valid"),r=vt(a.shape),s=a.shape[3]!==n.shape[3];if(a.shape[1]!==n.shape[1]||a.shape[2]!==n.shape[2]){let o=[...n.shape];o[1]=1;let l=vt(o);n=Je([n,l],1);let u=[...n.shape];u[2]=1;let c=vt(u);n=Je([n,c],2)}return a=s?Je([a,r],3):a,n=J(a,n),n=qe(n),n}var Su=class extends on{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return M(()=>{let a=ue(t.toBatchTensor(150,!0),"float32"),s=La(a,[122.782,117.001,104.298]).div(ce(256)),i=uf(s,n.conv32_down);i=$t(i,3,2,"valid"),i=za(i,n.conv32_1),i=za(i,n.conv32_2),i=za(i,n.conv32_3),i=Ep(i,n.conv64_down),i=za(i,n.conv64_1),i=za(i,n.conv64_2),i=za(i,n.conv64_3),i=Ep(i,n.conv128_down),i=za(i,n.conv128_1),i=za(i,n.conv128_2),i=Ep(i,n.conv256_down),i=za(i,n.conv256_1),i=za(i,n.conv256_2),i=Ep(i,n.conv256_down_out);let o=i.mean([1,2]);return ze(o,n.fc)})}async forward(t){return this.forwardInput(await mt(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)==null?void 0:s.some(i=>i<=0))return new Float32Array(128);let n=await mt(t),a=M(()=>ct(this.forwardInput(n))),r=await Promise.all(a.map(i=>i.data()));return a.forEach(i=>i.dispose()),n.isBatchInput?r:r[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return dC(t)}extractParams(t){return pC(t)}};function zre(e){let t=new Su;return t.extractWeights(e),t}function cf(e,t){return{...e,...{descriptor:t}}}function Wre(e){return typeof e.age=="number"}function pf(e,t){return{...e,...{age:t}}}function Bre(e){return(e.gender===Fr.MALE||e.gender===Fr.FEMALE)&&fu(e.genderProbability)}function df(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function Vre(e,t){function n(l,u){let c=Ca(e(3*3*l),[3,3,l,1]),p=Qe(e(l)),d=Qe(e(l)),h=Qe(e(l)),m=Qe(e(l));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/batch_norm_scale`},{paramPath:`${u}/batch_norm_offset`},{paramPath:`${u}/batch_norm_mean`},{paramPath:`${u}/batch_norm_variance`}),{filters:c,batch_norm_scale:p,batch_norm_offset:d,batch_norm_mean:h,batch_norm_variance:m}}function a(l,u,c,p,d){let h=Ca(e(l*u*c*c),[c,c,l,u]),m=Qe(e(u));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/${d?"batch_norm_offset":"bias"}`}),{filters:h,bias:m}}function r(l,u,c,p){let{filters:d,bias:h}=a(l,u,c,p,!0);return{filters:d,batch_norm_offset:h}}function s(l,u,c){let p=n(l,`${c}/depthwise_conv`),d=r(l,u,1,`${c}/pointwise_conv`);return{depthwise_conv:p,pointwise_conv:d}}function i(){let l=r(3,32,3,"mobilenetv1/conv_0"),u=s(32,64,"mobilenetv1/conv_1"),c=s(64,128,"mobilenetv1/conv_2"),p=s(128,128,"mobilenetv1/conv_3"),d=s(128,256,"mobilenetv1/conv_4"),h=s(256,256,"mobilenetv1/conv_5"),m=s(256,512,"mobilenetv1/conv_6"),f=s(512,512,"mobilenetv1/conv_7"),g=s(512,512,"mobilenetv1/conv_8"),y=s(512,512,"mobilenetv1/conv_9"),b=s(512,512,"mobilenetv1/conv_10"),x=s(512,512,"mobilenetv1/conv_11"),v=s(512,1024,"mobilenetv1/conv_12"),k=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:u,conv_2:c,conv_3:p,conv_4:d,conv_5:h,conv_6:m,conv_7:f,conv_8:g,conv_9:y,conv_10:b,conv_11:x,conv_12:v,conv_13:k}}function o(){let l=r(1024,256,1,"prediction_layer/conv_0"),u=r(256,512,3,"prediction_layer/conv_1"),c=r(512,128,1,"prediction_layer/conv_2"),p=r(128,256,3,"prediction_layer/conv_3"),d=r(256,128,1,"prediction_layer/conv_4"),h=r(128,256,3,"prediction_layer/conv_5"),m=r(256,64,1,"prediction_layer/conv_6"),f=r(64,128,3,"prediction_layer/conv_7"),g=a(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),b=a(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=a(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),v=a(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),k=a(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),w=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),S=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),A=a(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),F=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),D=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),R=a(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:l,conv_1:u,conv_2:c,conv_3:p,conv_4:d,conv_5:h,conv_6:m,conv_7:f,box_predictor_0:{box_encoding_predictor:g,class_predictor:y},box_predictor_1:{box_encoding_predictor:b,class_predictor:x},box_predictor_2:{box_encoding_predictor:v,class_predictor:k},box_predictor_3:{box_encoding_predictor:w,class_predictor:S},box_predictor_4:{box_encoding_predictor:A,class_predictor:F},box_predictor_5:{box_encoding_predictor:D,class_predictor:R}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function hC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=xn(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=Vre(n,t),i=r(),o=s(),u={extra_dim:Kd(n(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:{mobilenetv1:i,prediction_layer:o,output_layer:u},paramMappings:t}}function Ure(e,t){let n=jn(e,t);function a(u,c,p){let d=n(`${u}/Conv2d_${c}_pointwise/weights`,4,`${p}/filters`),h=n(`${u}/Conv2d_${c}_pointwise/convolution_bn_offset`,1,`${p}/batch_norm_offset`);return{filters:d,batch_norm_offset:h}}function r(u){let c=`mobilenetv1/conv_${u}`,p=`MobilenetV1/Conv2d_${u}_depthwise`,d=`${c}/depthwise_conv`,h=`${c}/pointwise_conv`,m=n(`${p}/depthwise_weights`,4,`${d}/filters`),f=n(`${p}/BatchNorm/gamma`,1,`${d}/batch_norm_scale`),g=n(`${p}/BatchNorm/beta`,1,`${d}/batch_norm_offset`),y=n(`${p}/BatchNorm/moving_mean`,1,`${d}/batch_norm_mean`),b=n(`${p}/BatchNorm/moving_variance`,1,`${d}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:y,batch_norm_variance:b},pointwise_conv:a("MobilenetV1",u,h)}}function s(){return{conv_0:a("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:r(1),conv_2:r(2),conv_3:r(3),conv_4:r(4),conv_5:r(5),conv_6:r(6),conv_7:r(7),conv_8:r(8),conv_9:r(9),conv_10:r(10),conv_11:r(11),conv_12:r(12),conv_13:r(13)}}function i(u,c){let p=n(`${u}/weights`,4,`${c}/filters`),d=n(`${u}/biases`,1,`${c}/bias`);return{filters:p,bias:d}}function o(u){let c=i(`Prediction/BoxPredictor_${u}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${u}/box_encoding_predictor`),p=i(`Prediction/BoxPredictor_${u}/ClassPredictor`,`prediction_layer/box_predictor_${u}/class_predictor`);return{box_encoding_predictor:c,class_predictor:p}}function l(){return{conv_0:a("Prediction",0,"prediction_layer/conv_0"),conv_1:a("Prediction",1,"prediction_layer/conv_1"),conv_2:a("Prediction",2,"prediction_layer/conv_2"),conv_3:a("Prediction",3,"prediction_layer/conv_3"),conv_4:a("Prediction",4,"prediction_layer/conv_4"),conv_5:a("Prediction",5,"prediction_layer/conv_5"),conv_6:a("Prediction",6,"prediction_layer/conv_6"),conv_7:a("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:o(0),box_predictor_1:o(1),box_predictor_2:o(2),box_predictor_3:o(3),box_predictor_4:o(4),box_predictor_5:o(5)}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:l}}function mC(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=Ure(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Sr(r))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${r}`);let s={mobilenetv1:n(),prediction_layer:a(),output_layer:{extra_dim:r}};return bn(e,t),{params:s,paramMappings:t}}function xa(e,t,n){return M(()=>{let a=Et(e,t.filters,n,"same");return a=J(a,t.batch_norm_offset),Xt(a,0,6)})}var Gre=.0010000000474974513;function Hre(e,t,n){return M(()=>{let a=Qr(e,t.filters,n,"same");return a=fr(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Gre),Xt(a,0,6)})}function jre(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function fC(e,t){return M(()=>{let n,a=xa(e,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((s,i)=>{let o=i+1,l=jre(o);a=Hre(a,s.depthwise_conv,l),a=xa(a,s.pointwise_conv,[1,1]),o===11&&(n=a)}),n===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:a,conv11:n}})}function qre(e,t,n){let a=e.arraySync(),r=Math.min(a[t][0],a[t][2]),s=Math.min(a[t][1],a[t][3]),i=Math.max(a[t][0],a[t][2]),o=Math.max(a[t][1],a[t][3]),l=Math.min(a[n][0],a[n][2]),u=Math.min(a[n][1],a[n][3]),c=Math.max(a[n][0],a[n][2]),p=Math.max(a[n][1],a[n][3]),d=(i-r)*(o-s),h=(c-l)*(p-u);if(d<=0||h<=0)return 0;let m=Math.max(r,l),f=Math.max(s,u),g=Math.min(i,c),y=Math.min(o,p),b=Math.max(g-m,0)*Math.max(y-f,0);return b/(d+h-b)}function gC(e,t,n,a,r){let s=e.shape[0],i=Math.min(n,s),o=t.map((c,p)=>({score:c,boxIndex:p})).filter(c=>c.score>r).sort((c,p)=>p.score-c.score),l=c=>c<=a?1:0,u=[];return o.forEach(c=>{if(u.length>=i)return;let p=c.score;for(let d=u.length-1;d>=0;--d){let h=qre(e,c.boxIndex,u[d]);if(h!==0&&(c.score*=l(h),c.score<=r))break}p===c.score&&u.push(c.boxIndex)}),u}function Xre(e){let t=ct(Ve(e,[1,0])),n=[me(t[2],t[0]),me(t[3],t[1])],a=[J(t[0],xe(n[0],ce(2))),J(t[1],xe(n[1],ce(2)))];return{sizes:n,centers:a}}function Kre(e,t){let{sizes:n,centers:a}=Xre(e),r=ct(Ve(t,[1,0])),s=xe(B(dn(xe(r[2],ce(5))),n[0]),ce(2)),i=J(B(xe(r[0],ce(10)),n[0]),a[0]),o=xe(B(dn(xe(r[3],ce(5))),n[1]),ce(2)),l=J(B(xe(r[1],ce(10)),n[1]),a[1]);return Ve(Dt([me(i,s),me(l,o),J(i,s),J(l,o)]),[1,0])}function yC(e,t,n){return M(()=>{let a=e.shape[0],r=Kre(H(Ha(n.extra_dim,[a,1,1]),[-1,4]),H(e,[-1,4]));r=H(r,[a,r.shape[0]/a,4]);let s=ca(Be(t,[0,0,1],[-1,-1,-1])),i=Be(s,[0,0,0],[-1,-1,1]);i=H(i,[a,i.shape[1]]);let o=ct(r),l=ct(i);return{boxes:o,scores:l}})}function ao(e,t){return M(()=>{let n=e.shape[0],a=H(to(e,t.box_encoding_predictor),[n,-1,1,4]),r=H(to(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function bC(e,t,n){return M(()=>{let a=xa(e,n.conv_0,[1,1]),r=xa(a,n.conv_1,[2,2]),s=xa(r,n.conv_2,[1,1]),i=xa(s,n.conv_3,[2,2]),o=xa(i,n.conv_4,[1,1]),l=xa(o,n.conv_5,[2,2]),u=xa(l,n.conv_6,[1,1]),c=xa(u,n.conv_7,[2,2]),p=ao(t,n.box_predictor_0),d=ao(e,n.box_predictor_1),h=ao(r,n.box_predictor_2),m=ao(i,n.box_predictor_3),f=ao(l,n.box_predictor_4),g=ao(c,n.box_predictor_5),y=Je([p.boxPredictionEncoding,d.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),b=Je([p.classPrediction,d.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:y,classPredictions:b}})}var va=class{constructor({minConfidence:t,maxResults:n}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=n||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var ro=class extends on{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return M(()=>{let a=ue(t.toBatchTensor(512,!1),"float32"),r=me(B(a,ce(.007843137718737125)),ce(1)),s=fC(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=bC(s.out,s.conv11,n.prediction_layer);return yC(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await mt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new va(n),s=await mt(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],u=o[0];for(let x=1;x{let[v,k]=[Math.max(0,y[x][0]),Math.min(1,y[x][2])].map(A=>A*g),[w,S]=[Math.max(0,y[x][1]),Math.min(1,y[x][3])].map(A=>A*f);return new yt(c[x],new yu(w,v,S-w,k-v),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),b}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return mC(t)}extractParams(t){return hC(t)}};function xC(e){let t=new ro;return t.extractWeights(e),t}function Yre(e){return xC(e)}var vC=class extends ro{};var wC=.4,kC=[new De(.738768,.874946),new De(2.42204,2.65704),new De(4.30971,7.04493),new De(10.246,4.59428),new De(12.6868,11.8741)],IC=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],NC=[117.001,114.697,97.404],TC="tiny_yolov2_model",SC="tiny_yolov2_separable_conv_model";var hf=e=>typeof e=="number";function Sw(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!hf(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>hf(t.x)&&hf(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(hf)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function Cu(e){return M(()=>{let t=B(e,ce(.10000000149011612));return J(qe(me(e,t)),t)})}function _r(e,t){return M(()=>{let n=ea(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Et(n,t.conv.filters,[1,1],"valid"),n=me(n,t.bn.sub),n=B(n,t.bn.truediv),n=J(n,t.conv.bias),Cu(n)})}function Er(e,t){return M(()=>{let n=ea(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Fi(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=J(n,t.bias),Cu(n)})}function Jre(e,t){let n=wu(e,t);function a(i,o){let l=Qe(e(i)),u=Qe(e(i));return t.push({paramPath:`${o}/sub`},{paramPath:`${o}/truediv`}),{sub:l,truediv:u}}function r(i,o,l){let u=n(i,o,3,`${l}/conv`),c=a(o,`${l}/bn`);return{conv:u,bn:c}}let s=ku(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function CC(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=xn(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=Jre(r,i),c;if(t.withSeparableConvs){let[p,d,h,m,f,g,y,b,x]=a,v=t.isFirstLayerConv2d?o(p,d,3,"conv0"):u(p,d,"conv0"),k=u(d,h,"conv1"),w=u(h,m,"conv2"),S=u(m,f,"conv3"),A=u(f,g,"conv4"),F=u(g,y,"conv5"),D=b?u(y,b,"conv6"):void 0,R=x?u(b,x,"conv7"):void 0,L=o(x||b||y,5*n,1,"conv8");c={conv0:v,conv1:k,conv2:w,conv3:S,conv4:A,conv5:F,conv6:D,conv7:R,conv8:L}}else{let[p,d,h,m,f,g,y,b,x]=a,v=l(p,d,"conv0"),k=l(d,h,"conv1"),w=l(h,m,"conv2"),S=l(m,f,"conv3"),A=l(f,g,"conv4"),F=l(g,y,"conv5"),D=l(y,b,"conv6"),R=l(b,x,"conv7"),L=o(x,5*n,1,"conv8");c={conv0:v,conv1:k,conv2:w,conv3:S,conv4:A,conv5:F,conv6:D,conv7:R,conv8:L}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:c,paramMappings:i}}function Qre(e,t){let n=jn(e,t);function a(o){let l=n(`${o}/sub`,1),u=n(`${o}/truediv`,1);return{sub:l,truediv:u}}function r(o){let l=n(`${o}/filters`,4),u=n(`${o}/bias`,1);return{filters:l,bias:u}}function s(o){let l=r(`${o}/conv`),u=a(`${o}/bn`);return{conv:l,bn:u}}let i=Iu(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function AC(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=Qre(e,n),i;if(t.withSeparableConvs){let o=t.filterSizes&&t.filterSizes.length||9;i={conv0:t.isFirstLayerConv2d?a("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:o>7?s("conv6"):void 0,conv7:o>8?s("conv7"):void 0,conv8:a("conv8")}}else i={conv0:r("conv0"),conv1:r("conv1"),conv2:r("conv2"),conv3:r("conv3"),conv4:r("conv4"),conv5:r("conv5"),conv6:r("conv6"),conv7:r("conv7"),conv8:a("conv8")};return bn(e,n),{params:i,paramMappings:n}}var or=class{constructor({inputSize:t,scoreThreshold:n}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=n||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var Cw=class extends on{constructor(t){super("TinyYolov2");Sw(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,n){let a=_r(t,n.conv0);return a=$t(a,[2,2],[2,2],"same"),a=_r(a,n.conv1),a=$t(a,[2,2],[2,2],"same"),a=_r(a,n.conv2),a=$t(a,[2,2],[2,2],"same"),a=_r(a,n.conv3),a=$t(a,[2,2],[2,2],"same"),a=_r(a,n.conv4),a=$t(a,[2,2],[2,2],"same"),a=_r(a,n.conv5),a=$t(a,[2,2],[1,1],"same"),a=_r(a,n.conv6),a=_r(a,n.conv7),to(a,n.conv8,"valid",!1)}runMobilenet(t,n){let a=this.config.isFirstLayerConv2d?Cu(to(t,n.conv0,"valid",!1)):Er(t,n.conv0);return a=$t(a,[2,2],[2,2],"same"),a=Er(a,n.conv1),a=$t(a,[2,2],[2,2],"same"),a=Er(a,n.conv2),a=$t(a,[2,2],[2,2],"same"),a=Er(a,n.conv3),a=$t(a,[2,2],[2,2],"same"),a=Er(a,n.conv4),a=$t(a,[2,2],[2,2],"same"),a=Er(a,n.conv5),a=$t(a,[2,2],[1,1],"same"),a=n.conv6?Er(a,n.conv6):a,a=n.conv7?Er(a,n.conv7):a,to(a,n.conv8,"valid",!1)}forwardInput(t,n){let{params:a}=this;if(!a)throw new Error("TinyYolov2 - load model before inference");return M(()=>{let r=ue(t.toBatchTensor(n,!1),"float32");return r=this.config.meanRgb?La(r,this.config.meanRgb):r,r=r.div(ce(256)),this.config.withSeparableConvs?this.runMobilenet(r,a):this.runTinyYolov2(r,a)})}async forward(t,n){return this.forwardInput(await mt(t),n)}async detect(t,n={}){let{inputSize:a,scoreThreshold:r}=new or(n),s=await mt(t),i=await this.forwardInput(s,a),o=M(()=>ct(i)[0].expandDims()),l={width:s.getInputWidth(0),height:s.getInputHeight(0)},u=await this.extractBoxes(o,s.getReshapedInputDimensions(0),r);i.dispose(),o.dispose();let c=u.map(g=>g.box),p=u.map(g=>g.score),d=u.map(g=>g.classScore),h=u.map(g=>this.config.classes[g.label]);return nw(c.map(g=>g.rescale(a)),p,this.config.iouThreshold,!0).map(g=>new ms(p[g],d[g],h[g],c[g],l))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return AC(t,this.config)}extractParams(t){let n=this.config.filterSizes||Cw.DEFAULT_FILTER_SIZES,a=n?n.length:void 0;if(a!==7&&a!==8&&a!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${a} filterSizes in config`);return CC(t,this.config,this.boxEncodingSize,n)}async extractBoxes(t,n,a){let{width:r,height:s}=n,i=Math.max(r,s),o=i/r,l=i/s,u=t.shape[1],c=this.config.anchors.length,[p,d,h]=M(()=>{let y=t.reshape([u,u,c,this.boxEncodingSize]),b=y.slice([0,0,0,0],[u,u,c,4]),x=y.slice([0,0,0,4],[u,u,c,1]),v=this.withClassScores?Ta(y.slice([0,0,0,5],[u,u,c,this.config.classes.length]),3):ce(0);return[b,x,v]}),m=[],f=await d.array(),g=await p.array();for(let y=0;ya){let k=(b+vp(g[y][b][x][0]))/u*o,w=(y+vp(g[y][b][x][1]))/u*l,S=Math.exp(g[y][b][x][2])*this.config.anchors[x].x/u*o,A=Math.exp(g[y][b][x][3])*this.config.anchors[x].y/u*l,F=k-S/2,D=w-A/2,R={row:y,col:b,anchor:x},{classScore:L,label:W}=this.withClassScores?await this.extractPredictedClass(h,R):{classScore:1,label:0};m.push({box:new gu(F,D,F+S,D+A),score:v,classScore:v*L,label:W,...R})}}return p.dispose(),d.dispose(),h.dispose(),m}async extractPredictedClass(t,n){let{row:a,col:r,anchor:s}=n,i=await t.array();return Array(this.config.classes.length).fill(0).map((o,l)=>i[a][r][s][l]).map((o,l)=>({classScore:o,label:l})).reduce((o,l)=>o.classScore>l.classScore?o:l)}},Au=Cw;Au.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Fu=class extends Au{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:wC,classes:["face"],...t?{anchors:IC,meanRgb:NC}:{anchors:kC,withClassScores:!0}};super(n)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new yt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?SC:TC}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function Zre(e,t=!0){let n=new Fu(t);return n.extractWeights(e),n}var mf=class extends or{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var wa=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function so(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>no(l)?r(l):l.detection),i=a||(t instanceof Fe?await vu(t,s):await xu(t,s)),o=await n(i);return i.forEach(l=>l instanceof Fe&&l.dispose()),o}async function _u(e,t,n,a,r){return so([e],t,async s=>n(s[0]),a,r)}var FC=.4,_C=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],EC=[117.001,114.697,97.404];var Eu=class extends Au{constructor(){let t={withSeparableConvs:!0,iouThreshold:FC,classes:["face"],anchors:_C,meanRgb:EC,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new yt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var Ze={ssdMobilenetv1:new ro,tinyFaceDetector:new Eu,tinyYolov2:new Fu,faceLandmark68Net:new Tu,faceLandmark68TinyNet:new lf,faceRecognitionNet:new Su,faceExpressionNet:new rf,ageGenderNet:new of},$C=(e,t)=>Ze.ssdMobilenetv1.locateFaces(e,t),ese=(e,t)=>Ze.tinyFaceDetector.locateFaces(e,t),tse=(e,t)=>Ze.tinyYolov2.locateFaces(e,t),DC=e=>Ze.faceLandmark68Net.detectLandmarks(e),nse=e=>Ze.faceLandmark68TinyNet.detectLandmarks(e),ase=e=>Ze.faceRecognitionNet.computeFaceDescriptor(e),rse=e=>Ze.faceExpressionNet.predictExpressions(e),sse=e=>Ze.ageGenderNet.predictAgeAndGender(e),MC=e=>Ze.ssdMobilenetv1.load(e),ise=e=>Ze.tinyFaceDetector.load(e),ose=e=>Ze.tinyYolov2.load(e),lse=e=>Ze.faceLandmark68Net.load(e),use=e=>Ze.faceLandmark68TinyNet.load(e),cse=e=>Ze.faceRecognitionNet.load(e),pse=e=>Ze.faceExpressionNet.load(e),dse=e=>Ze.ageGenderNet.load(e),hse=MC,mse=$C,fse=DC;var Aw=class extends wa{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.extractedFaces=a}},Mu=class extends Aw{async run(){let t=await this.parentTask,n=await so(t,this.input,async a=>Promise.all(a.map(r=>Ze.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>sf(a,n[r]))}withAgeAndGender(){return new $u(this,this.input)}},Ru=class extends Aw{async run(){let t=await this.parentTask;if(!t)return;let n=await _u(t,this.input,a=>Ze.faceExpressionNet.predictExpressions(a),this.extractedFaces);return sf(t,n)}withAgeAndGender(){return new Du(this,this.input)}},lo=class extends Mu{withAgeAndGender(){return new io(this,this.input)}withFaceDescriptors(){return new ys(this,this.input)}},uo=class extends Ru{withAgeAndGender(){return new oo(this,this.input)}withFaceDescriptor(){return new bs(this,this.input)}};var Fw=class extends wa{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.extractedFaces=a}},$u=class extends Fw{async run(){let t=await this.parentTask,n=await so(t,this.input,async a=>Promise.all(a.map(r=>Ze.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return pf(df(a,i,o),s)})}withFaceExpressions(){return new Mu(this,this.input)}},Du=class extends Fw{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await _u(t,this.input,s=>Ze.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return pf(df(t,a,r),n)}withFaceExpressions(){return new Ru(this,this.input)}},io=class extends $u{withFaceExpressions(){return new lo(this,this.input)}withFaceDescriptors(){return new ys(this,this.input)}},oo=class extends Du{withFaceExpressions(){return new uo(this,this.input)}withFaceDescriptor(){return new bs(this,this.input)}};var ff=class extends wa{constructor(t,n){super();this.parentTask=t;this.input=n}},ys=class extends ff{async run(){let t=await this.parentTask;return(await so(t,this.input,a=>Promise.all(a.map(r=>Ze.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>cf(t[r],a))}withFaceExpressions(){return new lo(this,this.input)}withAgeAndGender(){return new io(this,this.input)}},bs=class extends ff{async run(){let t=await this.parentTask;if(!t)return;let n=await _u(t,this.input,a=>Ze.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return cf(t,n)}withFaceExpressions(){return new uo(this,this.input)}withAgeAndGender(){return new oo(this,this.input)}};var gf=class extends wa{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.useTinyLandmarkNet=a}get landmarkNet(){return this.useTinyLandmarkNet?Ze.faceLandmark68TinyNet:Ze.faceLandmark68Net}},yf=class extends gf{async run(){let t=await this.parentTask,n=t.map(s=>s.detection),a=this.input instanceof Fe?await vu(this.input,n):await xu(this.input,n),r=await Promise.all(a.map(s=>this.landmarkNet.detectLandmarks(s)));return a.forEach(s=>s instanceof Fe&&s.dispose()),t.map((s,i)=>Nu(s,r[i]))}withFaceExpressions(){return new lo(this,this.input)}withAgeAndGender(){return new io(this,this.input)}withFaceDescriptors(){return new ys(this,this.input)}},bf=class extends gf{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Fe?await vu(this.input,[n]):await xu(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Fe&&s.dispose()),Nu(t,r)}withFaceExpressions(){return new uo(this,this.input)}withAgeAndGender(){return new oo(this,this.input)}withFaceDescriptor(){return new bs(this,this.input)}};var xf=class extends wa{constructor(t,n=new va){super();this.input=t;this.options=n}},$p=class extends xf{async run(){let{input:t,options:n}=this,a;if(n instanceof mf)a=Ze.tinyFaceDetector.locateFaces(t,n);else if(n instanceof va)a=Ze.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof or)a=Ze.tinyYolov2.locateFaces(t,n);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return a}runAndExtendWithFaceDetections(){return new Promise(async t=>{let n=await this.run();t(n.map(a=>Yi({},a)))})}withFaceLandmarks(t=!1){return new yf(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Mu(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new $u(this.runAndExtendWithFaceDetections(),this.input)}},vf=class extends xf{async run(){let t=await new $p(this.input,this.options),n=t[0];return t.forEach(a=>{a.score>n.score&&(n=a)}),n}runAndExtendWithFaceDetection(){return new Promise(async t=>{let n=await this.run();t(n?Yi({},n):void 0)})}withFaceLandmarks(t=!1){return new bf(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Ru(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Du(this.runAndExtendWithFaceDetection(),this.input)}};function gse(e,t=new va){return new vf(e,t)}function wf(e,t=new va){return new $p(e,t)}async function RC(e,t){return wf(e,new va(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function yse(e,t={}){return wf(e,new or(t)).withFaceLandmarks().withFaceDescriptors()}var bse=RC;function _w(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let n=Array.from(e),a=Array.from(t);return Math.sqrt(n.map((r,s)=>r-a[s]).reduce((r,s)=>r+s**2,0))}var kf=class{constructor(t,n=.6){this._distanceThreshold=n;let a=Array.isArray(t)?t:[t];if(!a.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let r=1,s=()=>`person ${r++}`;this._labeledDescriptors=a.map(i=>{if(i instanceof Cr)return i;if(i instanceof Float32Array)return new Cr(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new Cr(s(),[i.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,n){return n.map(a=>_w(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new wp(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>Cr.fromJSON(a));return new kf(n,t.distanceThreshold)}};function xse(e){let t=new Eu;return t.extractWeights(e),t}function PC(e,t){let{width:n,height:a}=new yn(t.width,t.height);if(n<=0||a<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:n,height:a})}`);if(Array.isArray(e))return e.map(r=>PC(r,{width:n,height:a}));if(no(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return Nu(Yi(e,r),s)}return sr(e)?Yi(e,e.detection.forSize(n,a)):e instanceof ra||e instanceof yt?e.forSize(n,a):e}var vse=typeof process!="undefined",wse=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",kse={faceapi:eC,node:vse,browser:wse};export{of as AgeGenderNet,gu as BoundingBox,ut as Box,wa as ComposableTask,ys as ComputeAllFaceDescriptorsTask,ff as ComputeFaceDescriptorsTaskBase,bs as ComputeSingleFaceDescriptorTask,yf as DetectAllFaceLandmarksTask,$p as DetectAllFacesTask,gf as DetectFaceLandmarksTaskBase,xf as DetectFacesTaskBase,bf as DetectSingleFaceLandmarksTask,vf as DetectSingleFaceTask,yn as Dimensions,yw as FACE_EXPRESSION_LABELS,yt as FaceDetection,vC as FaceDetectionNet,rf as FaceExpressionNet,gs as FaceExpressions,Tu as FaceLandmark68Net,lf as FaceLandmark68TinyNet,lC as FaceLandmarkNet,ra as FaceLandmarks,HS as FaceLandmarks5,bu as FaceLandmarks68,wp as FaceMatch,kf as FaceMatcher,Su as FaceRecognitionNet,Fr as Gender,kp as LabeledBox,Cr as LabeledFaceDescriptors,Ar as NetInput,on as NeuralNetwork,ms as ObjectDetection,De as Point,jS as PredictedBox,yu as Rect,ro as SsdMobilenetv1,va as SsdMobilenetv1Options,Eu as TinyFaceDetector,mf as TinyFaceDetectorOptions,Fu as TinyYolov2,or as TinyYolov2Options,bse as allFaces,RC as allFacesSsdMobilenetv1,yse as allFacesTinyYolov2,pw as awaitMediaLoaded,dw as bufferToImage,ase as computeFaceDescriptor,Zi as createCanvas,Tp as createCanvasFromMedia,Yre as createFaceDetectionNet,zre as createFaceRecognitionNet,xC as createSsdMobilenetv1,xse as createTinyFaceDetector,Zre as createTinyYolov2,wf as detectAllFaces,DC as detectFaceLandmarks,nse as detectFaceLandmarksTiny,fse as detectLandmarks,gse as detectSingleFace,ZS as draw,st as env,_w as euclideanDistance,pf as extendWithAge,cf as extendWithFaceDescriptor,Yi as extendWithFaceDetection,sf as extendWithFaceExpressions,Nu as extendWithFaceLandmarks,df as extendWithGender,vu as extractFaceTensors,xu as extractFaces,Are as fetchImage,fw as fetchJson,Fre as fetchNetWeights,eo as fetchOrThrow,$n as getContext2dOrThrow,Qi as getMediaDimensions,hw as imageTensorToCanvas,mw as imageToSquare,xre as inverseSigmoid,ew as iou,Km as isMediaElement,Np as isMediaLoaded,Wre as isWithAge,sr as isWithFaceDetection,bw as isWithFaceExpressions,no as isWithFaceLandmarks,Bre as isWithGender,dse as loadAgeGenderModel,hse as loadFaceDetectionModel,pse as loadFaceExpressionModel,lse as loadFaceLandmarkModel,use as loadFaceLandmarkTinyModel,cse as loadFaceRecognitionModel,MC as loadSsdMobilenetv1Model,ise as loadTinyFaceDetectorModel,ose as loadTinyYolov2Model,gw as loadWeightMap,mse as locateFaces,_re as matchDimensions,tw as minBbox,Ze as nets,nw as nonMaxSuppression,La as normalize,aw as padToSquare,sse as predictAgeAndGender,rse as recognizeFaceExpressions,PC as resizeResults,Ji as resolveInput,bre as shuffleArray,vp as sigmoid,$C as ssdMobilenetv1,Gw as tf,ese as tinyFaceDetector,tse as tinyYolov2,mt as toNetInput,GS as utils,Sw as validateConfig,kse as version}; /** * @license * Copyright 2017 Google LLC. All Rights Reserved. diff --git a/dist/face-api.esm.js.map b/dist/face-api.esm.js.map index e646e3b..ad6c317 100644 --- a/dist/face-api.esm.js.map +++ b/dist/face-api.esm.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../src/env/isNodejs.ts", "../node_modules/node-fetch/browser.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "(disabled):crypto", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "../node_modules/string_decoder/lib/string_decoder.js", "(disabled):path", "(disabled):worker_threads", "(disabled):perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dense_bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ComplexAbs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ExpandDims_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LeakyRelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mean_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Neg_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/RealDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Select_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/zeros_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Scatter_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/arg_min_max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/dilation_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "../src/draw/index.ts", "../src/draw/drawContour.ts", "../src/utils/index.ts", "../src/classes/Dimensions.ts", "../src/classes/Point.ts", "../src/classes/Box.ts", "../src/classes/BoundingBox.ts", "../src/classes/ObjectDetection.ts", "../src/classes/FaceDetection.ts", "../src/ops/iou.ts", "../src/ops/minBbox.ts", "../src/ops/nonMaxSuppression.ts", "../src/ops/normalize.ts", "../src/ops/padToSquare.ts", "../src/ops/shuffleArray.ts", "../src/ops/index.ts", "../src/classes/Rect.ts", "../src/classes/FaceLandmarks.ts", "../src/classes/FaceLandmarks5.ts", "../src/classes/FaceLandmarks68.ts", "../src/classes/FaceMatch.ts", "../src/classes/LabeledBox.ts", "../src/classes/LabeledFaceDescriptors.ts", "../src/classes/PredictedBox.ts", "../src/factories/WithFaceDetection.ts", "../src/env/createBrowserEnv.ts", "../src/env/createFileSystem.ts", "../src/env/createNodejsEnv.ts", "../src/env/isBrowser.ts", "../src/env/index.ts", "../src/dom/resolveInput.ts", "../src/dom/getContext2dOrThrow.ts", "../src/draw/DrawTextField.ts", "../src/draw/DrawBox.ts", "../src/draw/drawDetections.ts", "../src/dom/isMediaLoaded.ts", "../src/dom/awaitMediaLoaded.ts", "../src/dom/bufferToImage.ts", "../src/dom/getMediaDimensions.ts", "../src/dom/createCanvas.ts", "../src/dom/imageTensorToCanvas.ts", "../src/dom/isMediaElement.ts", "../src/dom/imageToSquare.ts", "../src/dom/NetInput.ts", "../src/dom/toNetInput.ts", "../src/dom/extractFaces.ts", "../src/dom/extractFaceTensors.ts", "../src/dom/fetchOrThrow.ts", "../src/dom/fetchImage.ts", "../src/dom/fetchJson.ts", "../src/dom/fetchNetWeights.ts", "../src/common/getModelUris.ts", "../src/dom/loadWeightMap.ts", "../src/dom/matchDimensions.ts", "../src/NeuralNetwork.ts", "../src/common/depthwiseSeparableConv.ts", "../src/faceFeatureExtractor/denseBlock.ts", "../src/common/convLayer.ts", "../src/common/disposeUnusedWeightTensors.ts", "../src/common/extractConvParamsFactory.ts", "../src/common/extractFCParamsFactory.ts", "../src/common/types.ts", "../src/common/extractSeparableConvParamsFactory.ts", "../src/common/extractWeightEntryFactory.ts", "../src/common/extractWeightsFactory.ts", "../src/faceFeatureExtractor/extractorsFactory.ts", "../src/faceFeatureExtractor/extractParams.ts", "../src/common/loadConvParamsFactory.ts", "../src/faceFeatureExtractor/loadParamsFactory.ts", "../src/faceFeatureExtractor/extractParamsFromWeightMap.ts", "../src/faceFeatureExtractor/FaceFeatureExtractor.ts", "../src/common/fullyConnectedLayer.ts", "../src/faceProcessor/extractParams.ts", "../src/faceProcessor/extractParamsFromWeightMap.ts", "../src/faceProcessor/util.ts", "../src/faceProcessor/FaceProcessor.ts", "../src/faceExpressionNet/FaceExpressions.ts", "../src/faceExpressionNet/FaceExpressionNet.ts", "../src/factories/WithFaceExpressions.ts", "../src/draw/drawFaceExpressions.ts", "../src/factories/WithFaceLandmarks.ts", "../src/draw/DrawFaceLandmarks.ts", "../src/xception/extractParams.ts", "../src/xception/extractParamsFromWeightMap.ts", "../src/xception/TinyXception.ts", "../src/ageGenderNet/extractParams.ts", "../src/ageGenderNet/extractParamsFromWeightMap.ts", "../src/ageGenderNet/types.ts", "../src/ageGenderNet/AgeGenderNet.ts", "../src/faceLandmarkNet/FaceLandmark68NetBase.ts", "../src/faceLandmarkNet/FaceLandmark68Net.ts", "../src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts", "../src/faceFeatureExtractor/extractParamsTiny.ts", "../src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", "../src/faceLandmarkNet/FaceLandmark68TinyNet.ts", "../src/faceLandmarkNet/index.ts", "../src/faceRecognitionNet/scaleLayer.ts", "../src/faceRecognitionNet/convLayer.ts", "../src/faceRecognitionNet/extractParams.ts", "../src/faceRecognitionNet/extractParamsFromWeightMap.ts", "../src/faceRecognitionNet/residualLayer.ts", "../src/faceRecognitionNet/FaceRecognitionNet.ts", "../src/faceRecognitionNet/index.ts", "../src/factories/WithFaceDescriptor.ts", "../src/factories/WithAge.ts", "../src/factories/WithGender.ts", "../src/ssdMobilenetv1/extractParams.ts", "../src/ssdMobilenetv1/extractParamsFromWeightMap.ts", "../src/ssdMobilenetv1/pointwiseConvLayer.ts", "../src/ssdMobilenetv1/mobileNetV1.ts", "../src/ssdMobilenetv1/nonMaxSuppression.ts", "../src/ssdMobilenetv1/outputLayer.ts", "../src/ssdMobilenetv1/boxPredictionLayer.ts", "../src/ssdMobilenetv1/predictionLayer.ts", "../src/ssdMobilenetv1/SsdMobilenetv1Options.ts", "../src/ssdMobilenetv1/SsdMobilenetv1.ts", "../src/ssdMobilenetv1/index.ts", "../src/tinyYolov2/const.ts", "../src/tinyYolov2/config.ts", "../src/tinyYolov2/leaky.ts", "../src/tinyYolov2/convWithBatchNorm.ts", "../src/tinyYolov2/depthwiseSeparableConv.ts", "../src/tinyYolov2/extractParams.ts", "../src/tinyYolov2/extractParamsFromWeightMap.ts", "../src/tinyYolov2/TinyYolov2Options.ts", "../src/tinyYolov2/TinyYolov2Base.ts", "../src/tinyYolov2/TinyYolov2.ts", "../src/tinyYolov2/index.ts", "../src/tinyFaceDetector/TinyFaceDetectorOptions.ts", "../src/globalApi/ComposableTask.ts", "../src/globalApi/extractFacesAndComputeResults.ts", "../src/tinyFaceDetector/const.ts", "../src/tinyFaceDetector/TinyFaceDetector.ts", "../src/globalApi/nets.ts", "../src/globalApi/PredictFaceExpressionsTask.ts", "../src/globalApi/PredictAgeAndGenderTask.ts", "../src/globalApi/ComputeFaceDescriptorsTasks.ts", "../src/globalApi/DetectFaceLandmarksTasks.ts", "../src/globalApi/DetectFacesTasks.ts", "../src/globalApi/detectFaces.ts", "../src/globalApi/allFaces.ts", "../src/euclideanDistance.ts", "../src/globalApi/FaceMatcher.ts", "../src/tinyFaceDetector/index.ts", "../src/resizeResults.ts", "../src/index.ts"], - "sourcesContent": ["export function isNodejs(): boolean {\n return typeof global === 'object'\n && typeof require === 'function'\n && typeof module !== 'undefined'\n // issues with gatsby.js: module.exports is undefined\n // && !!module.exports\n && typeof process !== 'undefined' && !!process.version;\n}\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(typeof _scriptDir !== \"undefined\" && _scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){global.performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_MEMORY/65536,\"maximum\":2147483648/65536,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"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\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmTable=Module[\"asm\"][\"F\"];wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var ASM_CONSTS={8991:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! killThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in killThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cancelThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cancelThread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cleanupThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cleanupThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=tb;var headPtr=tb+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),tb+100>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],setThreadStatus:function(){},runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+56>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();var tb=_pthread_self();Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){spawnThread(e.data)}else if(cmd===\"cleanupThread\"){cleanupThread(d[\"thread\"])}else if(cmd===\"killThread\"){killThread(d[\"thread\"])}else if(cmd===\"cancelThread\"){cancelThread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"exitProcess\"){try{exit(d[\"returnCode\"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){if(ENVIRONMENT_IS_NODE)return require(\"os\").cpus().length;return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>=2;while(ch=GROWABLE_HEAP_U8()[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?GROWABLE_HEAP_F64()[buf++>>1]:GROWABLE_HEAP_I32()[buf]);++buf}return readAsmConstArgsArray}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension(\"WEBGL_multi_draw\"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(ext.indexOf(\"lose_context\")<0&&ext.indexOf(\"debug\")<0){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];var contextAttributes={\"alpha\":!!GROWABLE_HEAP_I32()[a+(0>>2)],\"depth\":!!GROWABLE_HEAP_I32()[a+(4>>2)],\"stencil\":!!GROWABLE_HEAP_I32()[a+(8>>2)],\"antialias\":!!GROWABLE_HEAP_I32()[a+(12>>2)],\"premultipliedAlpha\":!!GROWABLE_HEAP_I32()[a+(16>>2)],\"preserveDrawingBuffer\":!!GROWABLE_HEAP_I32()[a+(20>>2)],\"powerPreference\":__emscripten_webgl_power_preferences[powerPreference],\"failIfMajorPerformanceCaveat\":!!GROWABLE_HEAP_I32()[a+(28>>2)],majorVersion:GROWABLE_HEAP_I32()[a+(32>>2)],minorVersion:GROWABLE_HEAP_I32()[a+(36>>2)],enableExtensionsByDefault:GROWABLE_HEAP_I32()[a+(40>>2)],explicitSwapControl:GROWABLE_HEAP_I32()[a+(44>>2)],proxyContextToMainThread:GROWABLE_HEAP_I32()[a+(48>>2)],renderViaOffscreenBackBuffer:GROWABLE_HEAP_I32()[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.threadExitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! spawnThread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(64>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(100>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(76>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(172>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{spawnThread(threadParams)}return 0}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"x\":__emscripten_notify_thread_queue,\"b\":_abort,\"y\":_emscripten_asm_const_int,\"j\":_emscripten_conditional_set_current_thread_status,\"c\":_emscripten_futex_wait,\"d\":_emscripten_futex_wake,\"f\":_emscripten_get_now,\"p\":_emscripten_memcpy_big,\"z\":_emscripten_num_logical_cores,\"u\":_emscripten_receive_on_main_thread_js,\"q\":_emscripten_resize_heap,\"v\":_emscripten_set_canvas_element_size,\"i\":_emscripten_set_current_thread_status,\"t\":_emscripten_set_thread_name,\"w\":_emscripten_webgl_create_context,\"m\":_fd_close,\"n\":_fd_seek,\"g\":_fd_write,\"o\":initPthreadsJS,\"a\":wasmMemory||Module[\"wasmMemory\"],\"k\":_pthread_cleanup_pop,\"l\":_pthread_cleanup_push,\"h\":_pthread_create,\"s\":_sysconf};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _pthread_self=Module[\"_pthread_self\"]=function(){return(_pthread_self=Module[\"_pthread_self\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=function(){return(__emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var __emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=function(){return(__emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var __emscripten_thread_init=Module[\"__emscripten_thread_init\"]=function(){return(__emscripten_thread_init=Module[\"__emscripten_thread_init\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=function(){return(_emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module[\"__emscripten_allow_main_runtime_queued_calls\"]=9880;var __emscripten_main_thread_futex=Module[\"__emscripten_main_thread_futex\"]=11368;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){readyPromiseResolve(Module);postMessage({\"cmd\":\"loaded\"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exitProcess\",\"returnCode\":status});throw new ExitStatus(status)}else{}}if(noExitRuntime){}else{PThread.terminateAllThreads();EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run();\n\n\n return WasmBackendModuleThreadedSimd.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"g\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"m\"];removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _abort(){abort()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_size(){return HEAPU8.length}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}var asmLibraryArg={\"a\":_abort,\"d\":_emscripten_memcpy_big,\"e\":_emscripten_resize_heap,\"f\":_fd_close,\"c\":_fd_seek,\"b\":_fd_write};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"h\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"i\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"j\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"k\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"l\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"n\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"o\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"p\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"q\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"r\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"s\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"t\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"u\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"v\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"w\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"x\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"y\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"z\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};Module[\"cwrap\"]=cwrap;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n return WasmBackendModule.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:Module[\"_pthread_self\"]()})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance;moduleLoaded()})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;Module[\"__emscripten_thread_init\"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){if(ex instanceof Module[\"ExitStatus\"]){if(Module[\"getNoExitRuntime\"]()){}else{Module[\"PThread\"].threadExit(ex.status)}}else{Module[\"PThread\"].threadExit(-2);throw ex}}}}else if(e.data.cmd===\"cancel\"){if(Module[\"_pthread_self\"]()){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(Module[\"_pthread_self\"]()){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, "export * from './drawContour';\nexport * from './drawDetections';\nexport * from './drawFaceExpressions';\nexport * from './DrawBox';\nexport * from './DrawFaceLandmarks';\nexport * from './DrawTextField';\n", "import { Point } from '../classes/index';\n\nexport function drawContour(\n ctx: CanvasRenderingContext2D,\n points: Point[],\n isClosed: boolean = false,\n) {\n ctx.beginPath();\n\n points.slice(1).forEach(({ x, y }, prevIdx) => {\n const from = points[prevIdx];\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(x, y);\n });\n\n if (isClosed) {\n const from = points[points.length - 1];\n const to = points[0];\n if (!from || !to) {\n return;\n }\n\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(to.x, to.y);\n }\n\n ctx.stroke();\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Point } from '../classes/index';\nimport { Dimensions, IDimensions } from '../classes/Dimensions';\n\nexport function isTensor(tensor: any, dim: number) {\n return tensor instanceof tf.Tensor && tensor.shape.length === dim;\n}\n\nexport function isTensor1D(tensor: any): tensor is tf.Tensor1D {\n return isTensor(tensor, 1);\n}\n\nexport function isTensor2D(tensor: any): tensor is tf.Tensor2D {\n return isTensor(tensor, 2);\n}\n\nexport function isTensor3D(tensor: any): tensor is tf.Tensor3D {\n return isTensor(tensor, 3);\n}\n\nexport function isTensor4D(tensor: any): tensor is tf.Tensor4D {\n return isTensor(tensor, 4);\n}\n\nexport function isFloat(num: number) {\n return num % 1 !== 0;\n}\n\nexport function isEven(num: number) {\n return num % 2 === 0;\n}\n\nexport function round(num: number, prec: number = 2) {\n const f = 10 ** prec;\n return Math.floor(num * f) / f;\n}\n\nexport function isDimensions(obj: any): boolean {\n return obj && obj.width && obj.height;\n}\n\nexport function computeReshapedDimensions({ width, height }: IDimensions, inputSize: number) {\n const scale = inputSize / Math.max(height, width);\n return new Dimensions(Math.round(width * scale), Math.round(height * scale));\n}\n\nexport function getCenterPoint(pts: Point[]): Point {\n return pts.reduce((sum, pt) => sum.add(pt), new Point(0, 0))\n .div(new Point(pts.length, pts.length));\n}\n\nexport function range(num: number, start: number, step: number): number[] {\n return Array(num).fill(0).map((_, i) => start + (i * step));\n}\n\nexport function isValidNumber(num: any) {\n return !!num && (num !== Infinity) && (num !== -Infinity) && !Number.isNaN(num) || num === 0;\n}\n\nexport function isValidProbablitiy(num: any) {\n return isValidNumber(num) && num >= 0 && num <= 1.0;\n}\n", "import { isValidNumber } from '../utils/index';\n\nexport interface IDimensions {\n width: number\n height: number\n}\n\nexport class Dimensions implements IDimensions {\n private _width: number\n\n private _height: number\n\n constructor(width: number, height: number) {\n if (!isValidNumber(width) || !isValidNumber(height)) {\n throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({ width, height })}`);\n }\n\n this._width = width;\n this._height = height;\n }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public reverse(): Dimensions {\n return new Dimensions(1 / this.width, 1 / this.height);\n }\n}\n", "export interface IPoint {\n x: number\n y: number\n}\n\nexport class Point implements IPoint {\n private _x: number\n\n private _y: number\n\n constructor(x: number, y: number) {\n this._x = x;\n this._y = y;\n }\n\n get x(): number { return this._x; }\n\n get y(): number { return this._y; }\n\n public add(pt: IPoint): Point {\n return new Point(this.x + pt.x, this.y + pt.y);\n }\n\n public sub(pt: IPoint): Point {\n return new Point(this.x - pt.x, this.y - pt.y);\n }\n\n public mul(pt: IPoint): Point {\n return new Point(this.x * pt.x, this.y * pt.y);\n }\n\n public div(pt: IPoint): Point {\n return new Point(this.x / pt.x, this.y / pt.y);\n }\n\n public abs(): Point {\n return new Point(Math.abs(this.x), Math.abs(this.y));\n }\n\n public magnitude(): number {\n return Math.sqrt((this.x ** 2) + (this.y ** 2));\n }\n\n public floor(): Point {\n return new Point(Math.floor(this.x), Math.floor(this.y));\n }\n}\n", "import { isDimensions, isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { IDimensions } from './Dimensions';\nimport { Point } from './Point';\nimport { IRect } from './Rect';\n\nexport class Box implements IBoundingBox, IRect {\n public static isRect(rect: any): boolean {\n return !!rect && [rect.x, rect.y, rect.width, rect.height].every(isValidNumber);\n }\n\n public static assertIsValidBox(box: any, callee: string, allowNegativeDimensions: boolean = false) {\n if (!Box.isRect(box)) {\n throw new Error(`${callee} - invalid box: ${JSON.stringify(box)}, expected object with properties x, y, width, height`);\n }\n\n if (!allowNegativeDimensions && (box.width < 0 || box.height < 0)) {\n throw new Error(`${callee} - width (${box.width}) and height (${box.height}) must be positive numbers`);\n }\n }\n\n private _x: number\n\n private _y: number\n\n private _width: number\n\n private _height: number\n\n constructor(_box: IBoundingBox | IRect, allowNegativeDimensions: boolean = true) {\n const box = (_box || {}) as any;\n\n const isBbox = [box.left, box.top, box.right, box.bottom].every(isValidNumber);\n const isRect = [box.x, box.y, box.width, box.height].every(isValidNumber);\n\n if (!isRect && !isBbox) {\n throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(box)}`);\n }\n\n const [x, y, width, height] = isRect\n ? [box.x, box.y, box.width, box.height]\n : [box.left, box.top, box.right - box.left, box.bottom - box.top];\n\n Box.assertIsValidBox({\n x, y, width, height,\n }, 'Box.constructor', allowNegativeDimensions);\n\n this._x = x;\n this._y = y;\n this._width = width;\n this._height = height;\n }\n\n public get x(): number { return this._x; }\n\n public get y(): number { return this._y; }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public get left(): number { return this.x; }\n\n public get top(): number { return this.y; }\n\n public get right(): number { return this.x + this.width; }\n\n public get bottom(): number { return this.y + this.height; }\n\n public get area(): number { return this.width * this.height; }\n\n public get topLeft(): Point { return new Point(this.left, this.top); }\n\n public get topRight(): Point { return new Point(this.right, this.top); }\n\n public get bottomLeft(): Point { return new Point(this.left, this.bottom); }\n\n public get bottomRight(): Point { return new Point(this.right, this.bottom); }\n\n public round(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.round(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public floor(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.floor(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public toSquare(): Box {\n let {\n x, y, width, height,\n } = this;\n const diff = Math.abs(width - height);\n if (width < height) {\n x -= (diff / 2);\n width += diff;\n }\n if (height < width) {\n y -= (diff / 2);\n height += diff;\n }\n\n return new Box({\n x, y, width, height,\n });\n }\n\n public rescale(s: IDimensions | number): Box {\n const scaleX = isDimensions(s) ? (s as IDimensions).width : s as number;\n const scaleY = isDimensions(s) ? (s as IDimensions).height : s as number;\n return new Box({\n x: this.x * scaleX,\n y: this.y * scaleY,\n width: this.width * scaleX,\n height: this.height * scaleY,\n });\n }\n\n public pad(padX: number, padY: number): Box {\n const [x, y, width, height] = [\n this.x - (padX / 2),\n this.y - (padY / 2),\n this.width + padX,\n this.height + padY,\n ];\n return new Box({\n x, y, width, height,\n });\n }\n\n public clipAtImageBorders(imgWidth: number, imgHeight: number): Box {\n const {\n x, y, right, bottom,\n } = this;\n const clippedX = Math.max(x, 0);\n const clippedY = Math.max(y, 0);\n\n const newWidth = right - clippedX;\n const newHeight = bottom - clippedY;\n const clippedWidth = Math.min(newWidth, imgWidth - clippedX);\n const clippedHeight = Math.min(newHeight, imgHeight - clippedY);\n\n return (new Box({\n x: clippedX, y: clippedY, width: clippedWidth, height: clippedHeight,\n })).floor();\n }\n\n public shift(sx: number, sy: number): Box {\n const { width, height } = this;\n const x = this.x + sx;\n const y = this.y + sy;\n\n return new Box({\n x, y, width, height,\n });\n }\n\n public padAtBorders(imageHeight: number, imageWidth: number) {\n const w = this.width + 1;\n const h = this.height + 1;\n\n const dx = 1;\n const dy = 1;\n let edx = w;\n let edy = h;\n\n let x = this.left;\n let y = this.top;\n let ex = this.right;\n let ey = this.bottom;\n\n if (ex > imageWidth) {\n edx = -ex + imageWidth + w;\n ex = imageWidth;\n }\n if (ey > imageHeight) {\n edy = -ey + imageHeight + h;\n ey = imageHeight;\n }\n if (x < 1) {\n edy = 2 - x;\n x = 1;\n }\n if (y < 1) {\n edy = 2 - y;\n y = 1;\n }\n\n return {\n dy, edy, dx, edx, y, ey, x, ex, w, h,\n };\n }\n\n public calibrate(region: Box) {\n return new Box({\n left: this.left + (region.left * this.width),\n top: this.top + (region.top * this.height),\n right: this.right + (region.right * this.width),\n bottom: this.bottom + (region.bottom * this.height),\n }).toSquare().round();\n }\n}\n", "import { Box } from './Box';\n\nexport interface IBoundingBox {\n left: number\n top: number\n right: number\n bottom: number\n}\n\nexport class BoundingBox extends Box implements IBoundingBox {\n constructor(left: number, top: number, right: number, bottom: number, allowNegativeDimensions: boolean = false) {\n super({\n left, top, right, bottom,\n }, allowNegativeDimensions);\n }\n}\n", "import { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { IRect, Rect } from './Rect';\n\nexport class ObjectDetection {\n private _score: number\n\n private _classScore: number\n\n private _className: string\n\n private _box: Rect\n\n private _imageDims: Dimensions\n\n constructor(\n score: number,\n classScore: number,\n className: string,\n relativeBox: IRect,\n imageDims: IDimensions,\n ) {\n this._imageDims = new Dimensions(imageDims.width, imageDims.height);\n this._score = score;\n this._classScore = classScore;\n this._className = className;\n this._box = new Box(relativeBox).rescale(this._imageDims);\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n\n public get className(): string { return this._className; }\n\n public get box(): Box { return this._box; }\n\n public get imageDims(): Dimensions { return this._imageDims; }\n\n public get imageWidth(): number { return this.imageDims.width; }\n\n public get imageHeight(): number { return this.imageDims.height; }\n\n public get relativeBox(): Box { return new Box(this._box).rescale(this.imageDims.reverse()); }\n\n public forSize(width: number, height: number): ObjectDetection {\n return new ObjectDetection(\n this.score,\n this.classScore,\n this.className,\n this.relativeBox,\n { width, height },\n );\n }\n}\n", "import { Box } from './Box';\nimport { IDimensions } from './Dimensions';\nimport { ObjectDetection } from './ObjectDetection';\nimport { Rect } from './Rect';\n\nexport interface IFaceDetecion {\n score: number\n box: Box\n}\n\nexport class FaceDetection extends ObjectDetection implements IFaceDetecion {\n constructor(\n score: number,\n relativeBox: Rect,\n imageDims: IDimensions,\n ) {\n super(score, score, '', relativeBox, imageDims);\n }\n\n public forSize(width: number, height: number): FaceDetection {\n const { score, relativeBox, imageDims } = super.forSize(width, height);\n return new FaceDetection(score, relativeBox, imageDims);\n }\n}\n", "import { Box } from '../classes/Box';\n\nexport function iou(box1: Box, box2: Box, isIOU: boolean = true) {\n const width = Math.max(0.0, Math.min(box1.right, box2.right) - Math.max(box1.left, box2.left));\n const height = Math.max(0.0, Math.min(box1.bottom, box2.bottom) - Math.max(box1.top, box2.top));\n const interSection = width * height;\n\n return isIOU\n ? interSection / (box1.area + box2.area - interSection)\n : interSection / Math.min(box1.area, box2.area);\n}\n", "import { BoundingBox, IPoint } from '../classes/index';\n\nexport function minBbox(pts: IPoint[]): BoundingBox {\n const xs = pts.map((pt) => pt.x);\n const ys = pts.map((pt) => pt.y);\n const minX = xs.reduce((min, x) => (x < min ? x : min), Infinity);\n const minY = ys.reduce((min, y) => (y < min ? y : min), Infinity);\n const maxX = xs.reduce((max, x) => (max < x ? x : max), 0);\n const maxY = ys.reduce((max, y) => (max < y ? y : max), 0);\n\n return new BoundingBox(minX, minY, maxX, maxY);\n}\n", "import { Box } from '../classes/Box';\nimport { iou } from './iou';\n\nexport function nonMaxSuppression(\n boxes: Box[],\n scores: number[],\n iouThreshold: number,\n isIOU: boolean = true,\n): number[] {\n let indicesSortedByScore = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .sort((c1, c2) => c1.score - c2.score)\n .map((c) => c.boxIndex);\n\n const pick: number[] = [];\n\n while (indicesSortedByScore.length > 0) {\n const curr = indicesSortedByScore.pop() as number;\n pick.push(curr);\n\n const indices = indicesSortedByScore;\n\n const outputs: number[] = [];\n for (let i = 0; i < indices.length; i++) {\n const idx = indices[i];\n\n const currBox = boxes[curr];\n const idxBox = boxes[idx];\n\n outputs.push(iou(currBox, idxBox, isIOU));\n }\n\n indicesSortedByScore = indicesSortedByScore.filter(\n (_, j) => outputs[j] <= iouThreshold,\n );\n }\n\n return pick;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function normalize(x: tf.Tensor4D, meanRgb: number[]): tf.Tensor4D {\n return tf.tidy(() => {\n const [r, g, b] = meanRgb;\n const avg_r = tf.fill([...x.shape.slice(0, 3), 1], r, 'float32');\n const avg_g = tf.fill([...x.shape.slice(0, 3), 1], g, 'float32');\n const avg_b = tf.fill([...x.shape.slice(0, 3), 1], b, 'float32');\n const avg_rgb = tf.concat([avg_r, avg_g, avg_b], 3);\n\n return tf.sub(x, avg_rgb);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n/**\n * Pads the smaller dimension of an image tensor with zeros, such that width === height.\n *\n * @param imgTensor The image tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The padded tensor with width === height.\n */\nexport function padToSquare(\n imgTensor: tf.Tensor4D,\n isCenterImage: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const [height, width] = imgTensor.shape.slice(1);\n if (height === width) {\n return imgTensor;\n }\n\n const dimDiff = Math.abs(height - width);\n const paddingAmount = Math.round(dimDiff * (isCenterImage ? 0.5 : 1));\n const paddingAxis = height > width ? 2 : 1;\n\n const createPaddingTensor = (paddingAmountLocal: number): tf.Tensor => {\n const paddingTensorShape = imgTensor.shape.slice();\n paddingTensorShape[paddingAxis] = paddingAmountLocal;\n return tf.fill(paddingTensorShape, 0, 'float32');\n };\n\n const paddingTensorAppend = createPaddingTensor(paddingAmount);\n const remainingPaddingAmount = dimDiff - (paddingTensorAppend.shape[paddingAxis] as number);\n\n const paddingTensorPrepend = isCenterImage && remainingPaddingAmount\n ? createPaddingTensor(remainingPaddingAmount)\n : null;\n\n const tensorsToStack = [\n paddingTensorPrepend,\n imgTensor,\n paddingTensorAppend,\n ]\n .filter((t) => !!t)\n // .map((t: tf.Tensor) => t.toFloat()) as tf.Tensor4D[]\n .map((t: tf.Tensor) => tf.cast(t, 'float32')) as tf.Tensor4D[];\n return tf.concat(tensorsToStack, paddingAxis);\n });\n}\n", "export function shuffleArray(inputArray: any[]) {\n const array = inputArray.slice();\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const x = array[i];\n array[i] = array[j];\n array[j] = x;\n }\n return array;\n}\n", "export * from './iou';\nexport * from './minBbox';\nexport * from './nonMaxSuppression';\nexport * from './normalize';\nexport * from './padToSquare';\nexport * from './shuffleArray';\n\nexport function sigmoid(x: number) {\n return 1 / (1 + Math.exp(-x));\n}\n\nexport function inverseSigmoid(x: number) {\n return Math.log(x / (1 - x));\n}\n", "import { Box } from './Box';\n\nexport interface IRect {\n x: number\n y: number\n width: number\n height: number\n}\n\nexport class Rect extends Box implements IRect {\n constructor(x: number, y: number, width: number, height: number, allowNegativeDimensions: boolean = false) {\n super({\n x, y, width, height,\n }, allowNegativeDimensions);\n }\n}\n", "import { minBbox } from '../ops/index';\nimport { getCenterPoint } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { FaceDetection } from './FaceDetection';\nimport { Point } from './Point';\nimport { IRect, Rect } from './Rect';\n\n// face alignment constants\nconst relX = 0.5;\nconst relY = 0.43;\nconst relScale = 0.45;\n\nexport interface IFaceLandmarks {\n positions: Point[]\n shift: Point\n}\n\nexport class FaceLandmarks implements IFaceLandmarks {\n protected _shift: Point\n\n protected _positions: Point[]\n\n protected _imgDims: Dimensions\n\n constructor(\n relativeFaceLandmarkPositions: Point[],\n imgDims: IDimensions,\n shift: Point = new Point(0, 0),\n ) {\n const { width, height } = imgDims;\n this._imgDims = new Dimensions(width, height);\n this._shift = shift;\n this._positions = relativeFaceLandmarkPositions.map(\n (pt) => pt.mul(new Point(width, height)).add(shift),\n );\n }\n\n public get shift(): Point { return new Point(this._shift.x, this._shift.y); }\n\n public get imageWidth(): number { return this._imgDims.width; }\n\n public get imageHeight(): number { return this._imgDims.height; }\n\n public get positions(): Point[] { return this._positions; }\n\n public get relativePositions(): Point[] {\n return this._positions.map(\n (pt) => pt.sub(this._shift).div(new Point(this.imageWidth, this.imageHeight)),\n );\n }\n\n public forSize(width: number, height: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n { width, height },\n );\n }\n\n public shiftBy(x: number, y: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n this._imgDims,\n new Point(x, y),\n );\n }\n\n public shiftByPoint(pt: Point): T {\n return this.shiftBy(pt.x, pt.y);\n }\n\n /**\n * Aligns the face landmarks after face detection from the relative positions of the faces\n * bounding box, or it's current shift. This function should be used to align the face images\n * after face detection has been performed, before they are passed to the face recognition net.\n * This will make the computed face descriptor more accurate.\n *\n * @param detection (optional) The bounding box of the face or the face detection result. If\n * no argument was passed the position of the face landmarks are assumed to be relative to\n * it's current shift.\n * @returns The bounding box of the aligned face.\n */\n public align(\n detection?: FaceDetection | IRect | IBoundingBox | null,\n options: { useDlibAlignment?: boolean, minBoxPadding?: number } = { },\n ): Box {\n if (detection) {\n const box = detection instanceof FaceDetection\n ? detection.box.floor()\n : new Box(detection);\n\n return this.shiftBy(box.x, box.y).align(null, options);\n }\n\n const { useDlibAlignment, minBoxPadding } = { useDlibAlignment: false, minBoxPadding: 0.2, ...options };\n\n if (useDlibAlignment) {\n return this.alignDlib();\n }\n\n return this.alignMinBbox(minBoxPadding);\n }\n\n private alignDlib(): Box {\n const centers = this.getRefPointsForAlignment();\n\n const [leftEyeCenter, rightEyeCenter, mouthCenter] = centers;\n const distToMouth = (pt: Point) => mouthCenter.sub(pt).magnitude();\n const eyeToMouthDist = (distToMouth(leftEyeCenter) + distToMouth(rightEyeCenter)) / 2;\n\n const size = Math.floor(eyeToMouthDist / relScale);\n\n const refPoint = getCenterPoint(centers);\n // TODO: pad in case rectangle is out of image bounds\n const x = Math.floor(Math.max(0, refPoint.x - (relX * size)));\n const y = Math.floor(Math.max(0, refPoint.y - (relY * size)));\n\n return new Rect(x, y, Math.min(size, this.imageWidth + x), Math.min(size, this.imageHeight + y));\n }\n\n private alignMinBbox(padding: number): Box {\n const box = minBbox(this.positions);\n return box.pad(box.width * padding, box.height * padding);\n }\n\n protected getRefPointsForAlignment(): Point[] {\n throw new Error('getRefPointsForAlignment not implemented by base class');\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks5 extends FaceLandmarks {\n protected getRefPointsForAlignment(): Point[] {\n const pts = this.positions;\n return [\n pts[0],\n pts[1],\n getCenterPoint([pts[3], pts[4]]),\n ];\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks68 extends FaceLandmarks {\n public getJawOutline(): Point[] {\n return this.positions.slice(0, 17);\n }\n\n public getLeftEyeBrow(): Point[] {\n return this.positions.slice(17, 22);\n }\n\n public getRightEyeBrow(): Point[] {\n return this.positions.slice(22, 27);\n }\n\n public getNose(): Point[] {\n return this.positions.slice(27, 36);\n }\n\n public getLeftEye(): Point[] {\n return this.positions.slice(36, 42);\n }\n\n public getRightEye(): Point[] {\n return this.positions.slice(42, 48);\n }\n\n public getMouth(): Point[] {\n return this.positions.slice(48, 68);\n }\n\n protected getRefPointsForAlignment(): Point[] {\n return [\n this.getLeftEye(),\n this.getRightEye(),\n this.getMouth(),\n ].map(getCenterPoint);\n }\n}\n", "import { round } from '../utils/index';\n\nexport interface IFaceMatch {\n label: string\n distance: number\n}\n\nexport class FaceMatch implements IFaceMatch {\n private _label: string\n\n private _distance: number\n\n constructor(label: string, distance: number) {\n this._label = label;\n this._distance = distance;\n }\n\n public get label(): string { return this._label; }\n\n public get distance(): number { return this._distance; }\n\n public toString(withDistance: boolean = true): string {\n return `${this.label}${withDistance ? ` (${round(this.distance)})` : ''}`;\n }\n}\n", "import { isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { IRect } from './Rect';\n\nexport class LabeledBox extends Box {\n public static assertIsValidLabeledBox(box: any, callee: string) {\n Box.assertIsValidBox(box, callee);\n\n if (!isValidNumber(box.label)) {\n throw new Error(`${callee} - expected property label (${box.label}) to be a number`);\n }\n }\n\n private _label: number\n\n constructor(box: IBoundingBox | IRect | any, label: number) {\n super(box);\n this._label = label;\n }\n\n public get label(): number { return this._label; }\n}\n", "export class LabeledFaceDescriptors {\n private _label: string\n\n private _descriptors: Float32Array[]\n\n constructor(label: string, descriptors: Float32Array[]) {\n if (!(typeof label === 'string')) {\n throw new Error('LabeledFaceDescriptors - constructor expected label to be a string');\n }\n\n if (!Array.isArray(descriptors) || descriptors.some((desc) => !(desc instanceof Float32Array))) {\n throw new Error('LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array');\n }\n\n this._label = label;\n this._descriptors = descriptors;\n }\n\n public get label(): string { return this._label; }\n\n public get descriptors(): Float32Array[] { return this._descriptors; }\n\n public toJSON(): any {\n return {\n label: this.label,\n descriptors: this.descriptors.map((d) => Array.from(d)),\n };\n }\n\n public static fromJSON(json: any): LabeledFaceDescriptors {\n const descriptors = json.descriptors.map((d: any) => new Float32Array(d));\n return new LabeledFaceDescriptors(json.label, descriptors);\n }\n}\n", "import { isValidProbablitiy } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { LabeledBox } from './LabeledBox';\nimport { IRect } from './Rect';\n\nexport class PredictedBox extends LabeledBox {\n public static assertIsValidPredictedBox(box: any, callee: string) {\n LabeledBox.assertIsValidLabeledBox(box, callee);\n\n if (\n !isValidProbablitiy(box.score)\n || !isValidProbablitiy(box.classScore)\n ) {\n throw new Error(`${callee} - expected properties score (${box.score}) and (${box.classScore}) to be a number between [0, 1]`);\n }\n }\n\n private _score: number\n\n private _classScore: number\n\n constructor(box: IBoundingBox | IRect | any, label: number, score: number, classScore: number) {\n super(box, label);\n this._score = score;\n this._classScore = classScore;\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\n\nexport type WithFaceDetection = TSource & {\n detection: FaceDetection\n}\n\nexport function isWithFaceDetection(obj: any): obj is WithFaceDetection<{}> {\n return obj.detection instanceof FaceDetection;\n}\n\nexport function extendWithFaceDetection<\n TSource\n>(\n sourceObj: TSource,\n detection: FaceDetection,\n): WithFaceDetection {\n const extension = { detection };\n return { ...sourceObj, ...extension };\n}\n", "import { Environment } from './types';\n\nexport function createBrowserEnv(): Environment {\n const fetch = window.fetch;\n if (!fetch) throw new Error('fetch - missing fetch implementation for browser environment');\n\n const readFile = () => {\n throw new Error('readFile - filesystem not available for browser environment');\n };\n\n return {\n Canvas: HTMLCanvasElement,\n CanvasRenderingContext2D,\n Image: HTMLImageElement,\n ImageData,\n Video: HTMLVideoElement,\n createCanvasElement: () => document.createElement('canvas'),\n createImageElement: () => document.createElement('img'),\n fetch,\n readFile,\n };\n}\n", "import { FileSystem } from './types';\n\nexport function createFileSystem(fs?: any): FileSystem {\n let requireFsError = '';\n\n if (!fs) {\n try {\n // eslint-disable-next-line global-require\n fs = require('fs');\n } catch (err) {\n requireFsError = err.toString();\n }\n }\n\n const readFile = fs\n ? (filePath: string) => new Promise((resolve, reject) => {\n fs.readFile(filePath, (err: any, buffer: Buffer) => (err ? reject(err) : resolve(buffer)));\n })\n : () => {\n throw new Error(`readFile - failed to require fs in nodejs environment with error: ${requireFsError}`);\n };\n\n return {\n readFile,\n };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { createFileSystem } from './createFileSystem';\nimport { Environment } from './types';\n\nexport function createNodejsEnv(): Environment {\n // eslint-disable-next-line dot-notation\n const Canvas = global['Canvas'] || global.HTMLCanvasElement;\n const Image = global.Image || global.HTMLImageElement;\n\n const createCanvasElement = () => {\n if (Canvas) return new Canvas();\n throw new Error('createCanvasElement - missing Canvas implementation for nodejs environment');\n };\n\n const createImageElement = () => {\n if (Image) return new Image();\n throw new Error('createImageElement - missing Image implementation for nodejs environment');\n };\n\n const fetch = global.fetch;\n // if (!fetch) throw new Error('fetch - missing fetch implementation for nodejs environment');\n\n const fileSystem = createFileSystem();\n\n return {\n Canvas: Canvas || class {},\n CanvasRenderingContext2D: global.CanvasRenderingContext2D || class {},\n Image: Image || class {},\n ImageData: global.ImageData || class {},\n Video: global.HTMLVideoElement || class {},\n createCanvasElement,\n createImageElement,\n fetch,\n ...fileSystem,\n };\n}\n", "export function isBrowser(): boolean {\n return typeof window === 'object'\n && typeof document !== 'undefined'\n && typeof HTMLImageElement !== 'undefined'\n && typeof HTMLCanvasElement !== 'undefined'\n && typeof HTMLVideoElement !== 'undefined'\n && typeof ImageData !== 'undefined'\n && typeof CanvasRenderingContext2D !== 'undefined';\n}\n", "import { createBrowserEnv } from './createBrowserEnv';\nimport { createFileSystem } from './createFileSystem';\nimport { createNodejsEnv } from './createNodejsEnv';\nimport { isBrowser } from './isBrowser';\nimport { isNodejs } from './isNodejs';\nimport { Environment } from './types';\n\nlet environment: Environment | null;\n\nfunction getEnv(): Environment {\n if (!environment) {\n throw new Error('getEnv - environment is not defined, check isNodejs() and isBrowser()');\n }\n return environment;\n}\n\nfunction setEnv(env: Environment) {\n environment = env;\n}\n\nfunction initialize() {\n // check for isBrowser() first to prevent electron renderer process\n // to be initialized with wrong environment due to isNodejs() returning true\n if (isBrowser()) return setEnv(createBrowserEnv());\n if (isNodejs()) return setEnv(createNodejsEnv());\n return null;\n}\n\nfunction monkeyPatch(env: Partial) {\n if (!environment) {\n initialize();\n }\n\n if (!environment) {\n throw new Error('monkeyPatch - environment is not defined, check isNodejs() and isBrowser()');\n }\n\n const { Canvas = environment.Canvas, Image = environment.Image } = env;\n environment.Canvas = Canvas;\n environment.Image = Image;\n environment.createCanvasElement = env.createCanvasElement || (() => new Canvas());\n environment.createImageElement = env.createImageElement || (() => new Image());\n\n environment.ImageData = env.ImageData || environment.ImageData;\n environment.Video = env.Video || environment.Video;\n environment.fetch = env.fetch || environment.fetch;\n environment.readFile = env.readFile || environment.readFile;\n}\n\nexport const env = {\n getEnv,\n setEnv,\n initialize,\n createBrowserEnv,\n createFileSystem,\n createNodejsEnv,\n monkeyPatch,\n isBrowser,\n isNodejs,\n};\n\ninitialize();\n\nexport * from './types';\n", "import { env } from '../env/index';\n\nexport function resolveInput(arg: string | any) {\n if (!env.isNodejs() && typeof arg === 'string') {\n return document.getElementById(arg);\n }\n return arg;\n}\n", "import { env } from '../env/index';\nimport { resolveInput } from './resolveInput';\n\nexport function getContext2dOrThrow(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D): CanvasRenderingContext2D {\n const { Canvas, CanvasRenderingContext2D } = env.getEnv();\n\n if (canvasArg instanceof CanvasRenderingContext2D) {\n return canvasArg;\n }\n\n const canvas = resolveInput(canvasArg);\n\n if (!(canvas instanceof Canvas)) {\n throw new Error('resolveContext2d - expected canvas to be of instance of Canvas');\n }\n\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n throw new Error('resolveContext2d - canvas 2d context is null');\n }\n\n return ctx;\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IDimensions, IPoint } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { resolveInput } from '../dom/resolveInput';\n\n// eslint-disable-next-line no-shadow\nexport enum AnchorPosition {\n // eslint-disable-next-line no-unused-vars\n TOP_LEFT = 'TOP_LEFT',\n // eslint-disable-next-line no-unused-vars\n TOP_RIGHT = 'TOP_RIGHT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_LEFT = 'BOTTOM_LEFT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_RIGHT = 'BOTTOM_RIGHT'\n}\n\nexport interface IDrawTextFieldOptions {\n anchorPosition?: AnchorPosition\n backgroundColor?: string\n fontColor?: string\n fontSize?: number\n fontStyle?: string\n padding?: number\n}\n\nexport class DrawTextFieldOptions implements IDrawTextFieldOptions {\n public anchorPosition: AnchorPosition\n\n public backgroundColor: string\n\n public fontColor: string\n\n public fontSize: number\n\n public fontStyle: string\n\n public padding: number\n\n constructor(options: IDrawTextFieldOptions = {}) {\n const {\n anchorPosition, backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = options;\n this.anchorPosition = anchorPosition || AnchorPosition.TOP_LEFT;\n this.backgroundColor = backgroundColor || 'rgba(0, 0, 0, 0.5)';\n this.fontColor = fontColor || 'rgba(255, 255, 255, 1)';\n this.fontSize = fontSize || 14;\n this.fontStyle = fontStyle || 'Georgia';\n this.padding = padding || 4;\n }\n}\n\nexport class DrawTextField {\n public text: string[]\n\n public anchor : IPoint\n\n public options: DrawTextFieldOptions\n\n constructor(\n text: string | string[] | DrawTextField,\n anchor: IPoint,\n options: IDrawTextFieldOptions = {},\n ) {\n // eslint-disable-next-line no-nested-ternary\n this.text = typeof text === 'string'\n ? [text]\n : (text instanceof DrawTextField ? text.text : text);\n this.anchor = anchor;\n this.options = new DrawTextFieldOptions(options);\n }\n\n measureWidth(ctx: CanvasRenderingContext2D): number {\n const { padding } = this.options;\n return this.text.map((l) => ctx.measureText(l).width).reduce((w0, w1) => (w0 < w1 ? w1 : w0), 0) + (2 * padding);\n }\n\n measureHeight(): number {\n const { fontSize, padding } = this.options;\n return this.text.length * fontSize + (2 * padding);\n }\n\n getUpperLeft(ctx: CanvasRenderingContext2D, canvasDims?: IDimensions): IPoint {\n const { anchorPosition } = this.options;\n const isShiftLeft = anchorPosition === AnchorPosition.BOTTOM_RIGHT || anchorPosition === AnchorPosition.TOP_RIGHT;\n const isShiftTop = anchorPosition === AnchorPosition.BOTTOM_LEFT || anchorPosition === AnchorPosition.BOTTOM_RIGHT;\n\n const textFieldWidth = this.measureWidth(ctx);\n const textFieldHeight = this.measureHeight();\n const x = (isShiftLeft ? this.anchor.x - textFieldWidth : this.anchor.x);\n const y = isShiftTop ? this.anchor.y - textFieldHeight : this.anchor.y;\n\n // adjust anchor if text box exceeds canvas borders\n if (canvasDims) {\n const { width, height } = canvasDims;\n const newX = Math.max(Math.min(x, width - textFieldWidth), 0);\n const newY = Math.max(Math.min(y, height - textFieldHeight), 0);\n return { x: newX, y: newY };\n }\n return { x, y };\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const canvas = resolveInput(canvasArg);\n const ctx = getContext2dOrThrow(canvas);\n\n const {\n backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = this.options;\n\n ctx.font = `${fontSize}px ${fontStyle}`;\n const maxTextWidth = this.measureWidth(ctx);\n const textHeight = this.measureHeight();\n\n ctx.fillStyle = backgroundColor;\n const upperLeft = this.getUpperLeft(ctx, canvas);\n ctx.fillRect(upperLeft.x, upperLeft.y, maxTextWidth, textHeight);\n\n ctx.fillStyle = fontColor;\n this.text.forEach((textLine, i) => {\n const x = padding + upperLeft.x;\n const y = padding + upperLeft.y + ((i + 1) * fontSize);\n ctx.fillText(textLine, x, y);\n });\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { Box, IBoundingBox, IRect } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport {\n AnchorPosition, DrawTextField, DrawTextFieldOptions, IDrawTextFieldOptions,\n} from './DrawTextField';\n\nexport interface IDrawBoxOptions {\n boxColor?: string\n lineWidth?: number\n drawLabelOptions?: IDrawTextFieldOptions\n label?: string\n}\n\nexport class DrawBoxOptions {\n public boxColor: string\n\n public lineWidth: number\n\n public drawLabelOptions: DrawTextFieldOptions\n\n public label?: string\n\n constructor(options: IDrawBoxOptions = {}) {\n const {\n boxColor, lineWidth, label, drawLabelOptions,\n } = options;\n this.boxColor = boxColor || 'rgba(0, 0, 255, 1)';\n this.lineWidth = lineWidth || 2;\n this.label = label;\n\n const defaultDrawLabelOptions = {\n anchorPosition: AnchorPosition.BOTTOM_LEFT,\n backgroundColor: this.boxColor,\n };\n this.drawLabelOptions = new DrawTextFieldOptions({ ...defaultDrawLabelOptions, ...drawLabelOptions });\n }\n}\n\nexport class DrawBox {\n public box: Box\n\n public options: DrawBoxOptions\n\n constructor(\n box: IBoundingBox | IRect,\n options: IDrawBoxOptions = {},\n ) {\n this.box = new Box(box);\n this.options = new DrawBoxOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const { boxColor, lineWidth } = this.options;\n\n const {\n x, y, width, height,\n } = this.box;\n ctx.strokeStyle = boxColor;\n ctx.lineWidth = lineWidth;\n ctx.strokeRect(x, y, width, height);\n\n const { label } = this.options;\n if (label) {\n new DrawTextField([label], { x: x - (lineWidth / 2), y }, this.options.drawLabelOptions).draw(canvasArg);\n }\n }\n}\n", "import { Box, IBoundingBox, IRect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { round } from '../utils/index';\nimport { DrawBox } from './DrawBox';\n\nexport type TDrawDetectionsInput = IRect | IBoundingBox | FaceDetection | WithFaceDetection<{}>\n\nexport function drawDetections(\n canvasArg: string | HTMLCanvasElement,\n detections: TDrawDetectionsInput | Array,\n) {\n const detectionsArray = Array.isArray(detections) ? detections : [detections];\n\n detectionsArray.forEach((det) => {\n // eslint-disable-next-line no-nested-ternary\n const score = det instanceof FaceDetection\n ? det.score\n : (isWithFaceDetection(det) ? det.detection.score : undefined);\n\n // eslint-disable-next-line no-nested-ternary\n const box = det instanceof FaceDetection\n ? det.box\n : (isWithFaceDetection(det) ? det.detection.box : new Box(det));\n\n const label = score ? `${round(score)}` : undefined;\n new DrawBox(box, { label }).draw(canvasArg);\n });\n}\n", "import { env } from '../env/index';\n\nexport function isMediaLoaded(media: HTMLImageElement | HTMLVideoElement) : boolean {\n const { Image, Video } = env.getEnv();\n\n return (media instanceof Image && media.complete)\n || (media instanceof Video && media.readyState >= 3);\n}\n", "import { env } from '../env/index';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function awaitMediaLoaded(media: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement) {\n // eslint-disable-next-line consistent-return\n return new Promise((resolve, reject) => {\n if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) {\n return resolve(null);\n }\n\n function onError(e: Event) {\n if (!e.currentTarget) return;\n // eslint-disable-next-line no-use-before-define\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n reject(e);\n }\n\n function onLoad(e: Event) {\n if (!e.currentTarget) return;\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n resolve(e);\n }\n\n media.addEventListener('load', onLoad);\n media.addEventListener('error', onError);\n });\n}\n", "import { env } from '../env/index';\n\nexport function bufferToImage(buf: Blob): Promise {\n return new Promise((resolve, reject) => {\n if (!(buf instanceof Blob)) reject(new Error('bufferToImage - expected buf to be of type: Blob'));\n const reader = new FileReader();\n reader.onload = () => {\n if (typeof reader.result !== 'string') reject(new Error('bufferToImage - expected reader.result to be a string, in onload'));\n const img = env.getEnv().createImageElement();\n img.onload = () => resolve(img);\n img.onerror = reject;\n img.src = reader.result as string;\n };\n reader.onerror = reject;\n reader.readAsDataURL(buf);\n });\n}\n", "import { Dimensions, IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\n\nexport function getMediaDimensions(input: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | IDimensions): Dimensions {\n const { Image, Video } = env.getEnv();\n\n if (input instanceof Image) {\n return new Dimensions(input.naturalWidth, input.naturalHeight);\n }\n if (input instanceof Video) {\n return new Dimensions(input.videoWidth, input.videoHeight);\n }\n return new Dimensions(input.width, input.height);\n}\n", "import { IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function createCanvas({ width, height }: IDimensions): HTMLCanvasElement {\n const { createCanvasElement } = env.getEnv();\n const canvas = createCanvasElement();\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nexport function createCanvasFromMedia(media: HTMLImageElement | HTMLVideoElement | ImageData, dims?: IDimensions): HTMLCanvasElement {\n const { ImageData } = env.getEnv();\n\n if (!(media instanceof ImageData) && !isMediaLoaded(media)) {\n throw new Error('createCanvasFromMedia - media has not finished loading yet');\n }\n\n const { width, height } = dims || getMediaDimensions(media);\n const canvas = createCanvas({ width, height });\n\n if (media instanceof ImageData) {\n getContext2dOrThrow(canvas).putImageData(media, 0, 0);\n } else {\n getContext2dOrThrow(canvas).drawImage(media, 0, 0, width, height);\n }\n return canvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { env } from '../env/index';\nimport { isTensor4D } from '../utils/index';\n\nexport async function imageTensorToCanvas(\n imgTensor: tf.Tensor,\n canvas?: HTMLCanvasElement,\n): Promise {\n const targetCanvas = canvas || env.getEnv().createCanvasElement();\n\n const [height, width, numChannels] = imgTensor.shape.slice(isTensor4D(imgTensor) ? 1 : 0);\n const imgTensor3D = tf.tidy(() => imgTensor.as3D(height, width, numChannels).toInt());\n await tf.browser.toPixels(imgTensor3D, targetCanvas);\n\n imgTensor3D.dispose();\n\n return targetCanvas;\n}\n", "import { env } from '../env/index';\n\nexport function isMediaElement(input: any) {\n const { Image, Canvas, Video } = env.getEnv();\n\n return input instanceof Image\n || input instanceof Canvas\n || input instanceof Video;\n}\n", "import { env } from '../env/index';\nimport { createCanvas, createCanvasFromMedia } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function imageToSquare(input: HTMLImageElement | HTMLCanvasElement, inputSize: number, centerImage: boolean = false) {\n const { Image, Canvas } = env.getEnv();\n\n if (!(input instanceof Image || input instanceof Canvas)) {\n throw new Error('imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement');\n }\n\n if (inputSize <= 0) return createCanvas({ width: 1, height: 1 });\n const dims = getMediaDimensions(input);\n const scale = inputSize / Math.max(dims.height, dims.width);\n const width = scale * dims.width;\n const height = scale * dims.height;\n\n const targetCanvas = createCanvas({ width: inputSize, height: inputSize });\n const inputCanvas = input instanceof Canvas ? input : createCanvasFromMedia(input);\n\n const offset = Math.abs(width - height) / 2;\n const dx = centerImage && width < height ? offset : 0;\n const dy = centerImage && height < width ? offset : 0;\n if (inputCanvas.width > 0 && inputCanvas.height > 0) getContext2dOrThrow(targetCanvas).drawImage(inputCanvas, dx, dy, width, height);\n\n return targetCanvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Dimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { padToSquare } from '../ops/padToSquare';\nimport {\n computeReshapedDimensions, isTensor3D, isTensor4D, range,\n} from '../utils/index';\nimport { createCanvasFromMedia } from './createCanvas';\nimport { imageToSquare } from './imageToSquare';\nimport { TResolvedNetInput } from './types';\n\nexport class NetInput {\n private _imageTensors: Array = []\n\n private _canvases: HTMLCanvasElement[] = []\n\n private _batchSize: number\n\n private _treatAsBatchInput: boolean = false\n\n private _inputDimensions: number[][] = []\n\n private _inputSize: number\n\n constructor(\n inputs: Array,\n treatAsBatchInput: boolean = false,\n ) {\n if (!Array.isArray(inputs)) {\n throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${inputs}`);\n }\n\n this._treatAsBatchInput = treatAsBatchInput;\n this._batchSize = inputs.length;\n\n inputs.forEach((input, idx) => {\n if (isTensor3D(input)) {\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = input.shape;\n return;\n }\n\n if (isTensor4D(input)) {\n const batchSize = (input as any).shape[0];\n if (batchSize !== 1) {\n throw new Error(`NetInput - tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = (input as any).shape.slice(1);\n return;\n }\n\n const canvas = (input as any) instanceof env.getEnv().Canvas ? input : createCanvasFromMedia(input);\n this._canvases[idx] = canvas;\n this._inputDimensions[idx] = [canvas.height, canvas.width, 3];\n });\n }\n\n public get imageTensors(): Array {\n return this._imageTensors;\n }\n\n public get canvases(): HTMLCanvasElement[] {\n return this._canvases;\n }\n\n public get isBatchInput(): boolean {\n return this.batchSize > 1 || this._treatAsBatchInput;\n }\n\n public get batchSize(): number {\n return this._batchSize;\n }\n\n public get inputDimensions(): number[][] {\n return this._inputDimensions;\n }\n\n public get inputSize(): number | undefined {\n return this._inputSize;\n }\n\n public get reshapedInputDimensions(): Dimensions[] {\n return range(this.batchSize, 0, 1).map(\n (_, batchIdx) => this.getReshapedInputDimensions(batchIdx),\n );\n }\n\n public getInput(batchIdx: number): tf.Tensor3D | tf.Tensor4D | HTMLCanvasElement {\n return this.canvases[batchIdx] || this.imageTensors[batchIdx];\n }\n\n public getInputDimensions(batchIdx: number): number[] {\n return this._inputDimensions[batchIdx];\n }\n\n public getInputHeight(batchIdx: number): number {\n return this._inputDimensions[batchIdx][0];\n }\n\n public getInputWidth(batchIdx: number): number {\n return this._inputDimensions[batchIdx][1];\n }\n\n public getReshapedInputDimensions(batchIdx: number): Dimensions {\n if (typeof this.inputSize !== 'number') {\n throw new Error('getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet');\n }\n\n const width = this.getInputWidth(batchIdx);\n const height = this.getInputHeight(batchIdx);\n return computeReshapedDimensions({ width, height }, this.inputSize);\n }\n\n /**\n * Create a batch tensor from all input canvases and tensors\n * with size [batchSize, inputSize, inputSize, 3].\n *\n * @param inputSize Height and width of the tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The batch tensor.\n */\n public toBatchTensor(inputSize: number, isCenterInputs: boolean = true): tf.Tensor4D {\n this._inputSize = inputSize;\n\n return tf.tidy(() => {\n const inputTensors = range(this.batchSize, 0, 1).map((batchIdx) => {\n const input = this.getInput(batchIdx);\n\n if (input instanceof tf.Tensor) {\n // @ts-ignore: error TS2344: Type 'Rank.R4' does not satisfy the constraint 'Tensor'.\n let imgTensor = isTensor4D(input) ? input : input.expandDims();\n // @ts-ignore: error TS2344: Type 'Rank.R4' does not satisfy the constraint 'Tensor'.\n imgTensor = padToSquare(imgTensor, isCenterInputs);\n\n if (imgTensor.shape[1] !== inputSize || imgTensor.shape[2] !== inputSize) {\n imgTensor = tf.image.resizeBilinear(imgTensor, [inputSize, inputSize]);\n }\n\n return imgTensor.as3D(inputSize, inputSize, 3);\n }\n\n if (input instanceof env.getEnv().Canvas) {\n return tf.browser.fromPixels(imageToSquare(input, inputSize, isCenterInputs));\n }\n\n throw new Error(`toBatchTensor - at batchIdx ${batchIdx}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${input}`);\n });\n\n // const batchTensor = tf.stack(inputTensors.map(t => t.toFloat())).as4D(this.batchSize, inputSize, inputSize, 3)\n const batchTensor = tf.stack(inputTensors.map((t) => tf.cast(t, 'float32'))).as4D(this.batchSize, inputSize, inputSize, 3);\n // const batchTensor = tf.stack(inputTensors.map(t => tf.Tensor.as4D(tf.cast(t, 'float32'))), this.batchSize, inputSize, inputSize, 3);\n\n return batchTensor;\n });\n }\n}\n", "import { isTensor3D, isTensor4D } from '../utils/index';\nimport { awaitMediaLoaded } from './awaitMediaLoaded';\nimport { isMediaElement } from './isMediaElement';\nimport { NetInput } from './NetInput';\nimport { resolveInput } from './resolveInput';\nimport { TNetInput } from './types';\n\n/**\n * Validates the input to make sure, they are valid net inputs and awaits all media elements\n * to be finished loading.\n *\n * @param input The input, which can be a media element or an array of different media elements.\n * @returns A NetInput instance, which can be passed into one of the neural networks.\n */\nexport async function toNetInput(inputs: TNetInput): Promise {\n if (inputs instanceof NetInput) {\n return inputs;\n }\n\n const inputArgArray = Array.isArray(inputs)\n ? inputs\n : [inputs];\n\n if (!inputArgArray.length) {\n throw new Error('toNetInput - empty array passed as input');\n }\n\n const getIdxHint = (idx: number) => (Array.isArray(inputs) ? ` at input index ${idx}:` : '');\n\n const inputArray = inputArgArray.map(resolveInput);\n\n inputArray.forEach((input, i) => {\n if (!isMediaElement(input) && !isTensor3D(input) && !isTensor4D(input)) {\n if (typeof inputArgArray[i] === 'string') {\n throw new Error(`toNetInput -${getIdxHint(i)} string passed, but could not resolve HTMLElement for element id ${inputArgArray[i]}`);\n }\n\n throw new Error(`toNetInput -${getIdxHint(i)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);\n }\n\n if (isTensor4D(input)) {\n // if tf.Tensor4D is passed in the input array, the batch size has to be 1\n const batchSize = input.shape[0];\n if (batchSize !== 1) {\n throw new Error(`toNetInput -${getIdxHint(i)} tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n }\n });\n\n // wait for all media elements being loaded\n await Promise.all(\n inputArray.map((input) => isMediaElement(input) && awaitMediaLoaded(input)),\n );\n\n return new NetInput(inputArray, Array.isArray(inputs));\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { Rect } from '../classes/Rect';\nimport { env } from '../env/index';\nimport { createCanvas } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { imageTensorToCanvas } from './imageTensorToCanvas';\nimport { toNetInput } from './toNetInput';\nimport { TNetInput } from './types';\n\n/**\n * Extracts the image regions containing the detected faces.\n *\n * @param input The image that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns The Canvases of the corresponding image region for each detected face.\n */\nexport async function extractFaces(\n input: TNetInput,\n detections: Array,\n): Promise {\n const { Canvas } = env.getEnv();\n\n let canvas = input as HTMLCanvasElement;\n\n if (!(input instanceof Canvas)) {\n const netInput = await toNetInput(input);\n\n if (netInput.batchSize > 1) {\n throw new Error('extractFaces - batchSize > 1 not supported');\n }\n\n const tensorOrCanvas = netInput.getInput(0);\n canvas = tensorOrCanvas instanceof Canvas\n ? tensorOrCanvas\n : await imageTensorToCanvas(tensorOrCanvas);\n }\n\n const ctx = getContext2dOrThrow(canvas);\n const boxes = detections.map(\n (det) => (det instanceof FaceDetection\n ? det.forSize(canvas.width, canvas.height).box.floor()\n : det),\n )\n .map((box) => box.clipAtImageBorders(canvas.width, canvas.height));\n\n return boxes.map(({\n x, y, width, height,\n }) => {\n const faceImg = createCanvas({ width, height });\n if (width > 0 && height > 0) getContext2dOrThrow(faceImg).putImageData(ctx.getImageData(x, y, width, height), 0, 0);\n return faceImg;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isTensor3D, isTensor4D } from '../utils/index';\n\n/**\n * Extracts the tensors of the image regions containing the detected faces.\n * Useful if you want to compute the face descriptors for the face images.\n * Using this method is faster then extracting a canvas for each face and\n * converting them to tensors individually.\n *\n * @param imageTensor The image tensor that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns Tensors of the corresponding image region for each detected face.\n */\nexport async function extractFaceTensors(\n imageTensor: tf.Tensor3D | tf.Tensor4D,\n detections: Array,\n): Promise {\n if (!isTensor3D(imageTensor) && !isTensor4D(imageTensor)) {\n throw new Error('extractFaceTensors - expected image tensor to be 3D or 4D');\n }\n\n if (isTensor4D(imageTensor) && imageTensor.shape[0] > 1) {\n throw new Error('extractFaceTensors - batchSize > 1 not supported');\n }\n\n return tf.tidy(() => {\n const [imgHeight, imgWidth, numChannels] = imageTensor.shape.slice(isTensor4D(imageTensor) ? 1 : 0);\n\n const boxes = detections.map(\n (det) => (det instanceof FaceDetection\n ? det.forSize(imgWidth, imgHeight).box\n : det),\n )\n .map((box) => box.clipAtImageBorders(imgWidth, imgHeight));\n\n const faceTensors = boxes.map(({\n x, y, width, height,\n }) => tf.slice3d(imageTensor.as3D(imgHeight, imgWidth, numChannels), [y, x, 0], [height, width, numChannels]));\n\n return faceTensors;\n });\n}\n", "import { env } from '../env/index';\n\nexport async function fetchOrThrow(\n url: string,\n // eslint-disable-next-line no-undef\n init?: RequestInit,\n): Promise {\n const { fetch } = env.getEnv();\n const res = await fetch(url, init);\n if (!(res.status < 400)) {\n throw new Error(`failed to fetch: (${res.status}) ${res.statusText}, from url: ${res.url}`);\n }\n return res;\n}\n", "import { bufferToImage } from './bufferToImage';\nimport { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchImage(uri: string): Promise {\n const res = await fetchOrThrow(uri);\n const blob = await (res).blob();\n\n if (!blob.type.startsWith('image/')) {\n throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${blob.type}, for url: ${res.url}`);\n }\n return bufferToImage(blob);\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchJson(uri: string): Promise {\n return (await fetchOrThrow(uri)).json();\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchNetWeights(uri: string): Promise {\n return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());\n}\n", "export function getModelUris(uri: string | undefined, defaultModelName: string) {\n const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;\n\n if (!uri) {\n return {\n modelBaseUri: '',\n manifestUri: defaultManifestFilename,\n };\n }\n\n if (uri === '/') {\n return {\n modelBaseUri: '/',\n manifestUri: `/${defaultManifestFilename}`,\n };\n }\n // eslint-disable-next-line no-nested-ternary\n const protocol = uri.startsWith('http://') ? 'http://' : uri.startsWith('https://') ? 'https://' : '';\n uri = uri.replace(protocol, '');\n\n const parts = uri.split('/').filter((s) => s);\n\n const manifestFile = uri.endsWith('.json')\n ? parts[parts.length - 1]\n : defaultManifestFilename;\n\n let modelBaseUri = protocol + (uri.endsWith('.json') ? parts.slice(0, parts.length - 1) : parts).join('/');\n modelBaseUri = uri.startsWith('/') ? `/${modelBaseUri}` : modelBaseUri;\n\n return {\n modelBaseUri,\n manifestUri: modelBaseUri === '/' ? `/${manifestFile}` : `${modelBaseUri}/${manifestFile}`,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { getModelUris } from '../common/getModelUris';\nimport { fetchJson } from './fetchJson';\n\nexport async function loadWeightMap(\n uri: string | undefined,\n defaultModelName: string,\n): Promise {\n const { manifestUri, modelBaseUri } = getModelUris(uri, defaultModelName);\n const manifest = await fetchJson(manifestUri);\n // if (manifest['weightsManifest']) manifest = manifest['weightsManifest'];\n return tf.io.loadWeights(manifest, modelBaseUri);\n}\n", "import { IDimensions } from '../classes/index';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function matchDimensions(input: IDimensions, reference: IDimensions, useMediaDimensions: boolean = false) {\n const { width, height } = useMediaDimensions\n ? getMediaDimensions(reference)\n : reference;\n input.width = width;\n input.height = height;\n return { width, height };\n}\n", "import * as tf from '../dist/tfjs.esm';\n\nimport { ParamMapping } from './common/index';\nimport { getModelUris } from './common/getModelUris';\nimport { loadWeightMap } from './dom/index';\nimport { env } from './env/index';\n\nexport abstract class NeuralNetwork {\n constructor(name: string) {\n this._name = name;\n }\n\n protected _params: TNetParams | undefined = undefined\n\n protected _paramMappings: ParamMapping[] = []\n\n public _name: any;\n\n public get params(): TNetParams | undefined { return this._params; }\n\n public get paramMappings(): ParamMapping[] { return this._paramMappings; }\n\n public get isLoaded(): boolean { return !!this.params; }\n\n public getParamFromPath(paramPath: string): tf.Tensor {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n return obj[objProp];\n }\n\n public reassignParamFromPath(paramPath: string, tensor: tf.Tensor) {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n obj[objProp].dispose();\n obj[objProp] = tensor;\n }\n\n public getParamList() {\n return this._paramMappings.map(({ paramPath }) => ({\n path: paramPath,\n tensor: this.getParamFromPath(paramPath),\n }));\n }\n\n public getTrainableParams() {\n return this.getParamList().filter((param) => param.tensor instanceof tf.Variable);\n }\n\n public getFrozenParams() {\n return this.getParamList().filter((param) => !(param.tensor instanceof tf.Variable));\n }\n\n public variable() {\n this.getFrozenParams().forEach(({ path, tensor }) => {\n this.reassignParamFromPath(path, tensor.variable());\n });\n }\n\n public freeze() {\n this.getTrainableParams().forEach(({ path, tensor: variable }) => {\n const tensor = tf.tensor(variable.dataSync());\n variable.dispose();\n this.reassignParamFromPath(path, tensor);\n });\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.getParamList().forEach((param) => {\n if (throwOnRedispose && param.tensor.isDisposed) {\n throw new Error(`param tensor has already been disposed for path ${param.path}`);\n }\n param.tensor.dispose();\n });\n this._params = undefined;\n }\n\n public serializeParams(): Float32Array {\n return new Float32Array(\n this.getParamList()\n .map(({ tensor }) => Array.from(tensor.dataSync()) as number[])\n .reduce((flat, arr) => flat.concat(arr)),\n );\n }\n\n public async load(weightsOrUrl: Float32Array | string | undefined): Promise {\n if (weightsOrUrl instanceof Float32Array) {\n this.extractWeights(weightsOrUrl);\n return;\n }\n await this.loadFromUri(weightsOrUrl);\n }\n\n public async loadFromUri(uri: string | undefined) {\n if (uri && typeof uri !== 'string') {\n throw new Error(`${this._name}.loadFromUri - expected model uri`);\n }\n const weightMap = await loadWeightMap(uri, this.getDefaultModelName());\n this.loadFromWeightMap(weightMap);\n }\n\n public async loadFromDisk(filePath: string | undefined) {\n if (filePath && typeof filePath !== 'string') {\n throw new Error(`${this._name}.loadFromDisk - expected model file path`);\n }\n const { readFile } = env.getEnv();\n const { manifestUri, modelBaseUri } = getModelUris(filePath, this.getDefaultModelName());\n const fetchWeightsFromDisk = (filePaths: string[]) => Promise.all(filePaths.map((fp) => readFile(fp).then((buf) => buf.buffer)));\n const loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk);\n const manifest = JSON.parse((await readFile(manifestUri)).toString());\n const weightMap = await loadWeights(manifest, modelBaseUri);\n this.loadFromWeightMap(weightMap);\n }\n\n public loadFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { paramMappings, params } = this.extractParamsFromWeightMap(weightMap);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n public extractWeights(weights: Float32Array) {\n const { paramMappings, params } = this.extractParams(weights);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n private traversePropertyPath(paramPath: string) {\n if (!this.params) {\n throw new Error('traversePropertyPath - model has no loaded params');\n }\n\n const result = paramPath.split('/').reduce((res: { nextObj: any, obj?: any, objProp?: string }, objProp) => {\n // eslint-disable-next-line no-prototype-builtins\n if (!res.nextObj.hasOwnProperty(objProp)) {\n throw new Error(`traversePropertyPath - object does not have property ${objProp}, for path ${paramPath}`);\n }\n return { obj: res.nextObj, objProp, nextObj: res.nextObj[objProp] };\n }, { nextObj: this.params });\n\n const { obj, objProp } = result;\n if (!obj || !objProp || !(obj[objProp] instanceof tf.Tensor)) {\n throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${paramPath}`);\n }\n\n return { obj, objProp };\n }\n\n protected abstract getDefaultModelName(): string\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TNetParams, paramMappings: ParamMapping[] }\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParams(weights: Float32Array): { params: TNetParams, paramMappings: ParamMapping[] }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from './types';\n\nexport function depthwiseSeparableConv(\n x: tf.Tensor4D,\n params: SeparableConvParams,\n stride: [number, number],\n): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.separableConv2d(x, params.depthwise_filter, params.pointwise_filter, stride, 'same');\n out = tf.add(out, params.bias);\n return out;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, SeparableConvParams } from '../common/index';\nimport { depthwiseSeparableConv } from '../common/depthwiseSeparableConv';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function denseBlock3(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock3Params,\n isFirstLayer: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, [2, 2], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, [2, 2]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n });\n}\n\nexport function denseBlock4(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock4Params,\n isFirstLayer: boolean = false,\n isScaleDown: boolean = true,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, isScaleDown ? [2, 2] : [1, 1], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, isScaleDown ? [2, 2] : [1, 1]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n const in4 = tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n const out4 = depthwiseSeparableConv(in4, denseBlockParams.conv3, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, tf.add(out3, out4)))) as tf.Tensor4D;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\nexport function convLayer(\n x: tf.Tensor4D,\n params: ConvParams,\n padding: 'valid' | 'same' = 'same',\n withRelu: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out = tf.add(\n tf.conv2d(x, params.filters, [1, 1], padding),\n params.bias,\n ) as tf.Tensor4D;\n\n return withRelu ? tf.relu(out) : out;\n });\n}\n", "import { ParamMapping } from './types';\n\nexport function disposeUnusedWeightTensors(weightMap: any, paramMappings: ParamMapping[]) {\n Object.keys(weightMap).forEach((path) => {\n if (!paramMappings.some((pm) => pm.originalPath === path)) {\n weightMap[path].dispose();\n }\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, ExtractWeightsFunction, ParamMapping } from './types';\n\nexport function extractConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams => {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, FCParams, ParamMapping } from './types';\n\nexport function extractFCParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): FCParams => {\n const fc_weights = tf.tensor2d(extractWeights(channelsIn * channelsOut), [channelsIn, channelsOut]);\n const fc_bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return {\n weights: fc_weights,\n bias: fc_bias,\n };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n// eslint-disable-next-line no-unused-vars\nexport type ExtractWeightsFunction = (numWeights: number) => Float32Array\n\nexport type ParamMapping = {\n originalPath?: string\n paramPath: string\n}\n\nexport type ConvParams = {\n filters: tf.Tensor4D\n bias: tf.Tensor1D\n}\n\nexport type FCParams = {\n weights: tf.Tensor2D\n bias: tf.Tensor1D\n}\n\nexport class SeparableConvParams {\n // eslint-disable-next-line no-useless-constructor\n constructor(\n // eslint-disable-next-line no-unused-vars\n public depthwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public pointwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public bias: tf.Tensor1D,\n // eslint-disable-next-line no-empty-function\n ) {}\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, ParamMapping, SeparableConvParams } from './types';\n\nexport function extractSeparableConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (channelsIn: number, channelsOut: number, mappedPrefix: string): SeparableConvParams => {\n const depthwise_filter = tf.tensor4d(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1]);\n const pointwise_filter = tf.tensor4d(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut]);\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/depthwise_filter` },\n { paramPath: `${mappedPrefix}/pointwise_filter` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n\nexport function loadSeparableConvParamsFactory(\n // eslint-disable-next-line no-unused-vars\n extractWeightEntry: (originalPath: string, paramRank: number) => T,\n) {\n return (prefix: string): SeparableConvParams => {\n const depthwise_filter = extractWeightEntry(`${prefix}/depthwise_filter`, 4);\n const pointwise_filter = extractWeightEntry(`${prefix}/pointwise_filter`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n", "import { isTensor } from '../utils/index';\nimport { ParamMapping } from './types';\n\nexport function extractWeightEntryFactory(weightMap: any, paramMappings: ParamMapping[]) {\n return (originalPath: string, paramRank: number, mappedPath?: string) => {\n const tensor = weightMap[originalPath];\n\n if (!isTensor(tensor, paramRank)) {\n throw new Error(`expected weightMap[${originalPath}] to be a Tensor${paramRank}D, instead have ${tensor}`);\n }\n\n paramMappings.push(\n { originalPath, paramPath: mappedPath || originalPath },\n );\n\n return tensor;\n };\n}\n", "export function extractWeightsFactory(weights: Float32Array) {\n let remainingWeights = weights;\n\n function extractWeights(numWeights: number): Float32Array {\n const ret = remainingWeights.slice(0, numWeights);\n remainingWeights = remainingWeights.slice(numWeights);\n return ret;\n }\n\n function getRemainingWeights(): Float32Array {\n return remainingWeights;\n }\n\n return {\n extractWeights,\n getRemainingWeights,\n };\n}\n", "import {\n extractConvParamsFactory,\n extractSeparableConvParamsFactory,\n ExtractWeightsFunction,\n ParamMapping,\n} from '../common/index';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractDenseBlock3Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv0`)\n : extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/conv0`);\n const conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv1`);\n const conv2 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock4Params {\n const { conv0, conv1, conv2 } = extractDenseBlock3Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer);\n const conv3 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock4Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock4Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock4Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock4Params(64, 128, 'dense2');\n const dense3 = extractDenseBlock4Params(128, 256, 'dense3');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: {\n dense0, dense1, dense2, dense3,\n },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\n// eslint-disable-next-line no-unused-vars\nexport function loadConvParamsFactory(extractWeightEntry: (originalPath: string, paramRank: number) => T) {\n return (prefix: string): ConvParams => {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return { filters, bias };\n };\n}\n", "import { extractWeightEntryFactory, loadSeparableConvParamsFactory, ParamMapping } from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractDenseBlock3Params(prefix: string, isFirstLayer: boolean = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(prefix: string, isFirstLayer: boolean = false): DenseBlock4Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n const conv3 = extractSeparableConvParams(`${prefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock4Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock4Params('dense0', true),\n dense1: extractDenseBlock4Params('dense1'),\n dense2: extractDenseBlock4Params('dense2'),\n dense3: extractDenseBlock4Params('dense3'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock4 } from './denseBlock';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { FaceFeatureExtractorParams, IFaceFeatureExtractor } from './types';\n\nexport class FaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('FaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255)) as tf.Tensor4D;\n\n let out = denseBlock4(normalized, params.dense0, true);\n out = denseBlock4(out, params.dense1);\n out = denseBlock4(out, params.dense2);\n out = denseBlock4(out, params.dense3);\n out = tf.avgPool(out, [7, 7], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from './types';\n\nexport function fullyConnectedLayer(\n x: tf.Tensor2D,\n params: FCParams,\n): tf.Tensor2D {\n return tf.tidy(() => tf.add(\n tf.matMul(x, params.weights),\n params.bias,\n ));\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array, channelsIn: number, channelsOut: number): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const fc = extractFCParams(channelsIn, channelsOut, 'fc');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping,\n} from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: extractFcParams('fc'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function seperateWeightMaps(weightMap: tf.NamedTensorMap) {\n const featureExtractorMap: tf.NamedTensorMap = {};\n const classifierMap: tf.NamedTensorMap = {};\n\n Object.keys(weightMap).forEach((key) => {\n const map = key.startsWith('fc') ? classifierMap : featureExtractorMap;\n map[key] = weightMap[key];\n });\n\n return { featureExtractorMap, classifierMap };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { NetInput } from '../dom/index';\nimport {\n FaceFeatureExtractorParams,\n IFaceFeatureExtractor,\n TinyFaceFeatureExtractorParams,\n} from '../faceFeatureExtractor/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { NetParams } from './types';\nimport { seperateWeightMaps } from './util';\n\nexport abstract class FaceProcessor<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends NeuralNetwork {\n protected _faceFeatureExtractor: IFaceFeatureExtractor\n\n constructor(_name: string, faceFeatureExtractor: IFaceFeatureExtractor) {\n super(_name);\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): IFaceFeatureExtractor {\n return this._faceFeatureExtractor;\n }\n\n protected abstract getDefaultModelName(): string\n\n protected abstract getClassifierChannelsIn(): number\n\n protected abstract getClassifierChannelsOut(): number\n\n public runNet(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n return fullyConnectedLayer(bottleneckFeatures.as2D(bottleneckFeatures.shape[0], -1), params.fc);\n });\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights, this.getClassifierChannelsIn(), this.getClassifierChannelsOut());\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const cIn = this.getClassifierChannelsIn();\n const cOut = this.getClassifierChannelsOut();\n const classifierWeightSize = (cOut * cIn) + cOut;\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "export const FACE_EXPRESSION_LABELS = ['neutral', 'happy', 'sad', 'angry', 'fearful', 'disgusted', 'surprised'];\n\nexport class FaceExpressions {\n public neutral: number\n\n public happy: number\n\n public sad: number\n\n public angry: number\n\n public fearful: number\n\n public disgusted: number\n\n public surprised: number\n\n constructor(probabilities: number[] | Float32Array) {\n if (probabilities.length !== 7) {\n throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${probabilities.length}`);\n }\n\n FACE_EXPRESSION_LABELS.forEach((expression, idx) => {\n this[expression] = probabilities[idx];\n });\n }\n\n asSortedArray() {\n return FACE_EXPRESSION_LABELS\n .map((expression) => ({ expression, probability: this[expression] as number }))\n .sort((e0, e1) => e1.probability - e0.probability);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { FaceExpressions } from './FaceExpressions';\n\nexport class FaceExpressionNet extends FaceProcessor {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceExpressionNet', faceFeatureExtractor);\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n return tf.tidy(() => tf.softmax(this.runNet(input)));\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictExpressions(input: TNetInput) {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n const probabilitesByBatch = await Promise.all(tf.unstack(out).map(async (t) => {\n const data = await t.data();\n t.dispose();\n return data;\n }));\n out.dispose();\n\n const predictionsByBatch = probabilitesByBatch\n .map((probabilites) => new FaceExpressions(probabilites as Float32Array));\n\n return netInput.isBatchInput\n ? predictionsByBatch\n : predictionsByBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_expression_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n\n protected getClassifierChannelsOut(): number {\n return 7;\n }\n}\n", "import { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\n\nexport type WithFaceExpressions = TSource & {\n expressions: FaceExpressions\n}\n\nexport function isWithFaceExpressions(obj: any): obj is WithFaceExpressions<{}> {\n return obj.expressions instanceof FaceExpressions;\n}\n\nexport function extendWithFaceExpressions<\n TSource\n>(\n sourceObj: TSource,\n expressions: FaceExpressions,\n): WithFaceExpressions {\n const extension = { expressions };\n return { ...sourceObj, ...extension };\n}\n", "import { IPoint, Point } from '../classes/index';\nimport { FaceExpressions } from '../faceExpressionNet/index';\nimport { isWithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { round } from '../utils/index';\nimport { DrawTextField } from './DrawTextField';\n\nexport type DrawFaceExpressionsInput = FaceExpressions | WithFaceExpressions<{}>\n\nexport function drawFaceExpressions(\n canvasArg: string | HTMLCanvasElement,\n faceExpressions: DrawFaceExpressionsInput | Array,\n minConfidence = 0.1,\n textFieldAnchor?: IPoint,\n) {\n const faceExpressionsArray = Array.isArray(faceExpressions) ? faceExpressions : [faceExpressions];\n\n faceExpressionsArray.forEach((e) => {\n // eslint-disable-next-line no-nested-ternary\n const expr = e instanceof FaceExpressions\n ? e\n : (isWithFaceExpressions(e) ? e.expressions : undefined);\n if (!expr) {\n throw new Error('drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof');\n }\n\n const sorted = expr.asSortedArray();\n const resultsToDisplay = sorted.filter((exprLocal) => exprLocal.probability > minConfidence);\n\n const anchor = isWithFaceDetection(e)\n ? e.detection.box.bottomLeft\n : (textFieldAnchor || new Point(0, 0));\n\n const drawTextField = new DrawTextField(\n resultsToDisplay.map((exprLocal) => `${exprLocal.expression} (${round(exprLocal.probability)})`),\n anchor,\n );\n drawTextField.draw(canvasArg);\n });\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { isWithFaceDetection, WithFaceDetection } from './WithFaceDetection';\n\nexport type WithFaceLandmarks<\n TSource extends WithFaceDetection<{}>,\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68 > = TSource & {\n landmarks: TFaceLandmarks,\n unshiftedLandmarks: TFaceLandmarks,\n alignedRect: FaceDetection,\n angle: { roll: number | undefined, pitch: number | undefined, yaw: number | undefined },\n }\n\nexport function isWithFaceLandmarks(obj: any): obj is WithFaceLandmarks, FaceLandmarks> {\n return isWithFaceDetection(obj)\n // eslint-disable-next-line dot-notation\n && obj['landmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['unshiftedLandmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['alignedRect'] instanceof FaceDetection;\n}\n\nfunction calculateFaceAngle(mesh) {\n // returns the angle in the plane (in radians) between the positive x-axis and the ray from (0,0) to the point (x,y)\n const radians = (a1, a2, b1, b2) => (Math.atan2(b2 - a2, b1 - a1) % Math.PI);\n // convert radians to degrees\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (theta) => (theta * 180) / Math.PI;\n\n const angle = { roll: undefined, pitch: undefined, yaw: undefined };\n\n if (!mesh || !mesh._positions || mesh._positions.length !== 68) return angle;\n const pt = mesh._positions;\n\n // values are in radians in range of -pi/2 to pi/2 which is -90 to +90 degrees\n // value of 0 means center\n\n // roll is face lean from left to right\n // comparing x,y of outside corners of leftEye and rightEye\n angle.roll = -radians(pt[36]._x, pt[36]._y, pt[45]._x, pt[45]._y);\n\n // pitch is face turn from left right\n // comparing x distance of top of nose to left and right edge of face\n // precision is lacking since coordinates are not precise enough\n angle.pitch = radians(0, Math.abs(pt[0]._x - pt[30]._x) / pt[30]._x, Math.PI, Math.abs(pt[16]._x - pt[30]._x) / pt[30]._x);\n\n // yaw is face move from up to down\n // comparing size of the box around the face with top and bottom of detected landmarks\n // silly hack, but this gives us face compression on y-axis\n // e.g., tilting head up hides the forehead that doesn't have any landmarks so ratio drops\n const bottom = pt.reduce((prev, cur) => (prev < cur._y ? prev : cur._y), +Infinity);\n const top = pt.reduce((prev, cur) => (prev > cur._y ? prev : cur._y), -Infinity);\n angle.yaw = Math.PI * (mesh._imgDims._height / (top - bottom) / 1.40 - 1);\n\n return angle;\n}\n\nexport function extendWithFaceLandmarks<\n TSource extends WithFaceDetection<{}>,\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68 >(sourceObj: TSource, unshiftedLandmarks: TFaceLandmarks): WithFaceLandmarks {\n const { box: shift } = sourceObj.detection;\n const landmarks = unshiftedLandmarks.shiftBy(shift.x, shift.y);\n\n const rect = landmarks.align();\n const { imageDims } = sourceObj.detection;\n const alignedRect = new FaceDetection(sourceObj.detection.score, rect.rescale(imageDims.reverse()), imageDims);\n const angle = calculateFaceAngle(unshiftedLandmarks);\n\n const extension = {\n landmarks,\n unshiftedLandmarks,\n alignedRect,\n angle,\n };\n\n return { ...sourceObj, ...extension };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IPoint } from '../classes/index';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { drawContour } from './drawContour';\n\nexport interface IDrawFaceLandmarksOptions {\n drawLines?: boolean\n drawPoints?: boolean\n lineWidth?: number\n pointSize?: number\n lineColor?: string\n pointColor?: string\n}\n\nexport class DrawFaceLandmarksOptions {\n public drawLines: boolean\n\n public drawPoints: boolean\n\n public lineWidth: number\n\n public pointSize: number\n\n public lineColor: string\n\n public pointColor: string\n\n constructor(options: IDrawFaceLandmarksOptions = {}) {\n const {\n drawLines = true, drawPoints = true, lineWidth, lineColor, pointSize, pointColor,\n } = options;\n this.drawLines = drawLines;\n this.drawPoints = drawPoints;\n this.lineWidth = lineWidth || 1;\n this.pointSize = pointSize || 2;\n this.lineColor = lineColor || 'rgba(0, 255, 255, 1)';\n this.pointColor = pointColor || 'rgba(255, 0, 255, 1)';\n }\n}\n\nexport class DrawFaceLandmarks {\n public faceLandmarks: FaceLandmarks\n\n public options: DrawFaceLandmarksOptions\n\n constructor(\n faceLandmarks: FaceLandmarks,\n options: IDrawFaceLandmarksOptions = {},\n ) {\n this.faceLandmarks = faceLandmarks;\n this.options = new DrawFaceLandmarksOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const {\n drawLines, drawPoints, lineWidth, lineColor, pointSize, pointColor,\n } = this.options;\n\n if (drawLines && this.faceLandmarks instanceof FaceLandmarks68) {\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n drawContour(ctx, this.faceLandmarks.getJawOutline());\n drawContour(ctx, this.faceLandmarks.getLeftEyeBrow());\n drawContour(ctx, this.faceLandmarks.getRightEyeBrow());\n drawContour(ctx, this.faceLandmarks.getNose());\n drawContour(ctx, this.faceLandmarks.getLeftEye(), true);\n drawContour(ctx, this.faceLandmarks.getRightEye(), true);\n drawContour(ctx, this.faceLandmarks.getMouth(), true);\n }\n\n if (drawPoints) {\n ctx.strokeStyle = pointColor;\n ctx.fillStyle = pointColor;\n\n const drawPoint = (pt: IPoint) => {\n ctx.beginPath();\n ctx.arc(pt.x, pt.y, pointSize, 0, 2 * Math.PI);\n ctx.fill();\n };\n this.faceLandmarks.positions.forEach(drawPoint);\n }\n }\n}\n\nexport type DrawFaceLandmarksInput = FaceLandmarks | WithFaceLandmarks>\n\nexport function drawFaceLandmarks(\n canvasArg: string | HTMLCanvasElement,\n faceLandmarks: DrawFaceLandmarksInput | Array,\n) {\n const faceLandmarksArray = Array.isArray(faceLandmarks) ? faceLandmarks : [faceLandmarks];\n faceLandmarksArray.forEach((f) => {\n // eslint-disable-next-line no-nested-ternary\n const landmarks = f instanceof FaceLandmarks\n ? f\n : (isWithFaceLandmarks(f) ? f.landmarks : undefined);\n if (!landmarks) {\n throw new Error('drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof');\n }\n\n new DrawFaceLandmarks(landmarks).draw(canvasArg);\n });\n}\n", "import { extractConvParamsFactory, extractSeparableConvParamsFactory, extractWeightsFactory } from '../common/index';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractReductionBlockParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(channels: number, mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParams(weights: Float32Array, numMainBlocks: number): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const entry_flow_conv_in = extractConvParams(3, 32, 3, 'entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams(32, 64, 'entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams(64, 128, 'entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(128, `middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams(128, 256, 'exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams(256, 512, 'exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { entry_flow, middle_flow, exit_flow },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors,\n extractWeightEntryFactory,\n loadSeparableConvParamsFactory,\n ParamMapping,\n} from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractReductionBlockParams(mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(`${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(`${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n numMainBlocks: number,\n): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const entry_flow_conv_in = extractConvParams('entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams('entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams('entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(`middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams('exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams('exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params: { entry_flow, middle_flow, exit_flow }, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, depthwiseSeparableConv } from '../common/index';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { range } from '../utils/index';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction conv(x: tf.Tensor4D, params: ConvParams, stride: [number, number]): tf.Tensor4D {\n return tf.add(tf.conv2d(x, params.filters, stride, 'same'), params.bias);\n}\n\nfunction reductionBlock(x: tf.Tensor4D, params: ReductionBlockParams, isActivateInput: boolean = true): tf.Tensor4D {\n let out = isActivateInput ? tf.relu(x) : x;\n out = depthwiseSeparableConv(out, params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = tf.maxPool(out, [3, 3], [2, 2], 'same');\n out = tf.add(out, conv(x, params.expansion_conv, [2, 2]));\n return out;\n}\n\nfunction mainBlock(x: tf.Tensor4D, params: MainBlockParams): tf.Tensor4D {\n let out = depthwiseSeparableConv(tf.relu(x), params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv2, [1, 1]);\n out = tf.add(out, x);\n return out;\n}\n\nexport class TinyXception extends NeuralNetwork {\n private _numMainBlocks: number\n\n constructor(numMainBlocks: number) {\n super('TinyXception');\n this._numMainBlocks = numMainBlocks;\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n if (!params) {\n throw new Error('TinyXception - load model before inference');\n }\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(256)) as tf.Tensor4D;\n let out = tf.relu(conv(normalized, params.entry_flow.conv_in, [2, 2]));\n out = reductionBlock(out, params.entry_flow.reduction_block_0, false);\n out = reductionBlock(out, params.entry_flow.reduction_block_1);\n range(this._numMainBlocks, 0, 1).forEach((idx) => {\n out = mainBlock(out, params.middle_flow[`main_block_${idx}`]);\n });\n out = reductionBlock(out, params.exit_flow.reduction_block);\n out = tf.relu(depthwiseSeparableConv(out, params.exit_flow.separable_conv, [1, 1]));\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'tiny_xception_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this._numMainBlocks);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights, this._numMainBlocks);\n }\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const age = extractFCParams(512, 1, 'fc/age');\n const gender = extractFCParams(512, 2, 'fc/gender');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc: { age, gender } },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping,\n} from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: {\n age: extractFcParams('fc/age'),\n gender: extractFcParams('fc/gender'),\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from '../common/index';\n\n// eslint-disable-next-line no-shadow\nexport enum Gender {\n // eslint-disable-next-line no-unused-vars\n FEMALE = 'female',\n // eslint-disable-next-line no-unused-vars\n MALE = 'male'\n}\n\nexport type AgeAndGenderPrediction = {\n age: number\n gender: Gender\n genderProbability: number\n}\n\nexport type NetOutput = { age: tf.Tensor1D, gender: tf.Tensor2D }\n\nexport type NetParams = {\n fc: {\n age: FCParams\n gender: FCParams\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { seperateWeightMaps } from '../faceProcessor/util';\nimport { TinyXception } from '../xception/TinyXception';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport {\n AgeAndGenderPrediction, Gender, NetOutput, NetParams,\n} from './types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\n\nexport class AgeGenderNet extends NeuralNetwork {\n private _faceFeatureExtractor: TinyXception\n\n constructor(faceFeatureExtractor: TinyXception = new TinyXception(2)) {\n super('AgeGenderNet');\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): TinyXception {\n return this._faceFeatureExtractor;\n }\n\n public runNet(input: NetInput | tf.Tensor4D): NetOutput {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n\n const pooled = tf.avgPool(bottleneckFeatures, [7, 7], [2, 2], 'valid').as2D(bottleneckFeatures.shape[0], -1);\n const age = fullyConnectedLayer(pooled, params.fc.age).as1D();\n const gender = fullyConnectedLayer(pooled, params.fc.gender);\n return { age, gender };\n });\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): NetOutput {\n return tf.tidy(() => {\n const { age, gender } = this.runNet(input);\n return { age, gender: tf.softmax(gender) };\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictAgeAndGender(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n\n const ages = tf.unstack(out.age);\n const genders = tf.unstack(out.gender);\n const ageAndGenderTensors = ages.map((ageTensor, i) => ({\n ageTensor,\n genderTensor: genders[i],\n }));\n\n const predictionsByBatch = await Promise.all(\n ageAndGenderTensors.map(async ({ ageTensor, genderTensor }) => {\n const age = (await ageTensor.data())[0];\n const probMale = (await genderTensor.data())[0];\n const isMale = probMale > 0.5;\n const gender = isMale ? Gender.MALE : Gender.FEMALE;\n const genderProbability = isMale ? probMale : (1 - probMale);\n\n ageTensor.dispose();\n genderTensor.dispose();\n return { age, gender, genderProbability };\n }),\n );\n out.age.dispose();\n out.gender.dispose();\n\n return netInput.isBatchInput ? predictionsByBatch as AgeAndGenderPrediction[] : predictionsByBatch[0] as AgeAndGenderPrediction;\n }\n\n protected getDefaultModelName(): string {\n return 'age_gender_model';\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights);\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const classifierWeightSize = (512 * 1 + 1) + (512 * 2 + 2);\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { IDimensions, Point } from '../classes/index';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractorParams, TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { isEven } from '../utils/index';\n\nexport abstract class FaceLandmark68NetBase<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends FaceProcessor {\n public postProcess(output: tf.Tensor2D, inputSize: number, originalDimensions: IDimensions[]): tf.Tensor2D {\n const inputDimensions = originalDimensions.map(({ width, height }) => {\n const scale = inputSize / Math.max(height, width);\n return {\n width: width * scale,\n height: height * scale,\n };\n });\n\n const batchSize = inputDimensions.length;\n\n return tf.tidy(() => {\n const createInterleavedTensor = (fillX: number, fillY: number) => tf.stack([tf.fill([68], fillX, 'float32'), tf.fill([68], fillY, 'float32')], 1).as2D(1, 136).as1D();\n\n // eslint-disable-next-line no-unused-vars\n const getPadding = (batchIdx: number, cond: (w: number, h: number) => boolean): number => {\n const { width, height } = inputDimensions[batchIdx];\n return cond(width, height) ? Math.abs(width - height) / 2 : 0;\n };\n\n const getPaddingX = (batchIdx: number) => getPadding(batchIdx, (w, h) => w < h);\n const getPaddingY = (batchIdx: number) => getPadding(batchIdx, (w, h) => h < w);\n\n const landmarkTensors = output\n .mul(tf.fill([batchSize, 136], inputSize, 'float32'))\n .sub(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n getPaddingX(batchIdx),\n getPaddingY(batchIdx),\n ))))\n .div(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n inputDimensions[batchIdx].width,\n inputDimensions[batchIdx].height,\n ))));\n\n return landmarkTensors as tf.Tensor2D;\n });\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n return tf.tidy(() => {\n const out = this.runNet(input);\n return this.postProcess(\n out,\n input.inputSize as number,\n input.inputDimensions.map(([height, width]) => ({ height, width })),\n );\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async detectLandmarks(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const landmarkTensors = tf.tidy(\n () => tf.unstack(this.forwardInput(netInput)),\n );\n\n const landmarksForBatch = await Promise.all(landmarkTensors.map(\n async (landmarkTensor, batchIdx) => {\n const landmarksArray = Array.from(await landmarkTensor.data());\n const xCoords = landmarksArray.filter((_, i) => isEven(i));\n const yCoords = landmarksArray.filter((_, i) => !isEven(i));\n\n return new FaceLandmarks68(\n Array(68).fill(0).map((_, i) => new Point(xCoords[i] as number, yCoords[i] as number)),\n {\n height: netInput.getInputHeight(batchIdx),\n width: netInput.getInputWidth(batchIdx),\n },\n );\n },\n ));\n\n landmarkTensors.forEach((t) => t.dispose());\n\n return netInput.isBatchInput ? landmarksForBatch as FaceLandmarks68[] : landmarksForBatch[0] as FaceLandmarks68;\n }\n\n protected getClassifierChannelsOut(): number {\n return 136;\n }\n}\n", "import { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68Net extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceLandmark68Net', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMapTiny(\n weightMap: tf.NamedTensorMap,\n): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock3Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock3Params('dense0', true),\n dense1: extractDenseBlock3Params('dense1'),\n dense2: extractDenseBlock3Params('dense2'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsTiny(weights: Float32Array): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock3Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock3Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock3Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock3Params(64, 128, 'dense2');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { dense0, dense1, dense2 },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock3 } from './denseBlock';\nimport { extractParamsFromWeightMapTiny } from './extractParamsFromWeightMapTiny';\nimport { extractParamsTiny } from './extractParamsTiny';\nimport { IFaceFeatureExtractor, TinyFaceFeatureExtractorParams } from './types';\n\nexport class TinyFaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('TinyFaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyFaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255)) as tf.Tensor4D;\n\n let out = denseBlock3(normalized, params.dense0, true);\n out = denseBlock3(out, params.dense1);\n out = denseBlock3(out, params.dense2);\n out = tf.avgPool(out, [14, 14], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_tiny_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMapTiny(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParamsTiny(weights);\n }\n}\n", "import { TinyFaceFeatureExtractor } from '../faceFeatureExtractor/TinyFaceFeatureExtractor';\nimport { TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68TinyNet extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: TinyFaceFeatureExtractor = new TinyFaceFeatureExtractor()) {\n super('FaceLandmark68TinyNet', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_tiny_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 128;\n }\n}\n", "import { FaceLandmark68Net } from './FaceLandmark68Net';\n\nexport * from './FaceLandmark68Net';\nexport * from './FaceLandmark68TinyNet';\nexport class FaceLandmarkNet extends FaceLandmark68Net {}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ScaleLayerParams } from './types';\n\nexport function scale(x: tf.Tensor4D, params: ScaleLayerParams): tf.Tensor4D {\n return tf.add(tf.mul(x, params.weights), params.biases);\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { scale } from './scaleLayer';\nimport { ConvLayerParams } from './types';\n\nfunction convLayer(\n x: tf.Tensor4D,\n params: ConvLayerParams,\n strides: [number, number],\n withRelu: boolean,\n padding: 'valid' | 'same' = 'same',\n): tf.Tensor4D {\n const { filters, bias } = params.conv;\n\n let out = tf.conv2d(x, filters, strides, padding);\n out = tf.add(out, bias);\n out = scale(out, params.scale);\n return withRelu ? tf.relu(out) : out;\n}\n\nexport function conv(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], true);\n}\n\nexport function convNoRelu(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], false);\n}\n\nexport function convDown(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [2, 2], true, 'valid');\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ConvParams, extractWeightsFactory, ExtractWeightsFunction, ParamMapping,\n} from '../common/index';\nimport { isFloat } from '../utils/index';\nimport {\n ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams,\n} from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractFilterValues(numFilterValues: number, numFilters: number, filterSize: number): tf.Tensor4D {\n const weights = extractWeights(numFilterValues);\n const depth = weights.length / (numFilters * filterSize * filterSize);\n\n if (isFloat(depth)) {\n throw new Error(`depth has to be an integer: ${depth}, weights.length: ${weights.length}, numFilters: ${numFilters}, filterSize: ${filterSize}`);\n }\n\n return tf.tidy(\n () => tf.transpose(\n tf.tensor4d(weights, [numFilters, depth, filterSize, filterSize]),\n [2, 3, 1, 0],\n ),\n );\n }\n\n function extractConvParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams {\n const filters = extractFilterValues(numFilterValues, numFilters, filterSize);\n const bias = tf.tensor1d(extractWeights(numFilters));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n }\n\n function extractScaleLayerParams(numWeights: number, mappedPrefix: string): ScaleLayerParams {\n const weights = tf.tensor1d(extractWeights(numWeights));\n const biases = tf.tensor1d(extractWeights(numWeights));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/biases` },\n );\n\n return {\n weights,\n biases,\n };\n }\n\n function extractConvLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvLayerParams {\n const conv = extractConvParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv`);\n const scale = extractScaleLayerParams(numFilters, `${mappedPrefix}/scale`);\n\n return { conv, scale };\n }\n\n function extractResidualLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n isDown: boolean = false,\n ): ResidualLayerParams {\n const conv1 = extractConvLayerParams((isDown ? 0.5 : 1) * numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv1`);\n const conv2 = extractConvLayerParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv2`);\n\n return { conv1, conv2 };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const conv32_down = extractConvLayerParams(4704, 32, 7, 'conv32_down');\n const conv32_1 = extractResidualLayerParams(9216, 32, 3, 'conv32_1');\n const conv32_2 = extractResidualLayerParams(9216, 32, 3, 'conv32_2');\n const conv32_3 = extractResidualLayerParams(9216, 32, 3, 'conv32_3');\n\n const conv64_down = extractResidualLayerParams(36864, 64, 3, 'conv64_down', true);\n const conv64_1 = extractResidualLayerParams(36864, 64, 3, 'conv64_1');\n const conv64_2 = extractResidualLayerParams(36864, 64, 3, 'conv64_2');\n const conv64_3 = extractResidualLayerParams(36864, 64, 3, 'conv64_3');\n\n const conv128_down = extractResidualLayerParams(147456, 128, 3, 'conv128_down', true);\n const conv128_1 = extractResidualLayerParams(147456, 128, 3, 'conv128_1');\n const conv128_2 = extractResidualLayerParams(147456, 128, 3, 'conv128_2');\n\n const conv256_down = extractResidualLayerParams(589824, 256, 3, 'conv256_down', true);\n const conv256_1 = extractResidualLayerParams(589824, 256, 3, 'conv256_1');\n const conv256_2 = extractResidualLayerParams(589824, 256, 3, 'conv256_2');\n const conv256_down_out = extractResidualLayerParams(589824, 256, 3, 'conv256_down_out');\n\n const fc = tf.tidy(\n () => tf.transpose(tf.tensor2d(extractWeights(256 * 128), [128, 256]), [1, 0]),\n );\n paramMappings.push({ paramPath: 'fc' });\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from '../common/index';\nimport { isTensor2D } from '../utils/index';\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractScaleLayerParams(prefix: string): ScaleLayerParams {\n const weights = extractWeightEntry(`${prefix}/scale/weights`, 1);\n const biases = extractWeightEntry(`${prefix}/scale/biases`, 1);\n\n return { weights, biases };\n }\n\n function extractConvLayerParams(prefix: string): ConvLayerParams {\n const filters = extractWeightEntry(`${prefix}/conv/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/conv/bias`, 1);\n const scale = extractScaleLayerParams(prefix);\n\n return { conv: { filters, bias }, scale };\n }\n\n function extractResidualLayerParams(prefix: string): ResidualLayerParams {\n return {\n conv1: extractConvLayerParams(`${prefix}/conv1`),\n conv2: extractConvLayerParams(`${prefix}/conv2`),\n };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n const conv32_down = extractConvLayerParams('conv32_down');\n const conv32_1 = extractResidualLayerParams('conv32_1');\n const conv32_2 = extractResidualLayerParams('conv32_2');\n const conv32_3 = extractResidualLayerParams('conv32_3');\n\n const conv64_down = extractResidualLayerParams('conv64_down');\n const conv64_1 = extractResidualLayerParams('conv64_1');\n const conv64_2 = extractResidualLayerParams('conv64_2');\n const conv64_3 = extractResidualLayerParams('conv64_3');\n\n const conv128_down = extractResidualLayerParams('conv128_down');\n const conv128_1 = extractResidualLayerParams('conv128_1');\n const conv128_2 = extractResidualLayerParams('conv128_2');\n\n const conv256_down = extractResidualLayerParams('conv256_down');\n const conv256_1 = extractResidualLayerParams('conv256_1');\n const conv256_2 = extractResidualLayerParams('conv256_2');\n const conv256_down_out = extractResidualLayerParams('conv256_down_out');\n\n const { fc } = weightMap;\n paramMappings.push({ originalPath: 'fc', paramPath: 'fc' });\n\n if (!isTensor2D(fc)) {\n throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${fc}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { conv, convDown, convNoRelu } from './convLayer';\nimport { ResidualLayerParams } from './types';\n\nexport function residual(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = conv(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n out = tf.add(out, x);\n out = tf.relu(out);\n return out;\n}\n\nexport function residualDown(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = convDown(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n\n let pooled = tf.avgPool(x, 2, 2, 'valid') as tf.Tensor4D;\n const zeros = tf.zeros(pooled.shape);\n const isPad = pooled.shape[3] !== out.shape[3];\n const isAdjustShape = pooled.shape[1] !== out.shape[1] || pooled.shape[2] !== out.shape[2];\n\n if (isAdjustShape) {\n const padShapeX = [...out.shape] as [number, number, number, number];\n padShapeX[1] = 1;\n const zerosW = tf.zeros(padShapeX);\n out = tf.concat([out, zerosW], 1);\n\n const padShapeY = [...out.shape] as [number, number, number, number];\n padShapeY[2] = 1;\n const zerosH = tf.zeros(padShapeY);\n out = tf.concat([out, zerosH], 2);\n }\n\n pooled = isPad ? tf.concat([pooled, zeros], 3) : pooled;\n out = tf.add(pooled, out) as tf.Tensor4D;\n\n out = tf.relu(out);\n return out;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { convDown } from './convLayer';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { residual, residualDown } from './residualLayer';\nimport { NetParams } from './types';\n\nexport class FaceRecognitionNet extends NeuralNetwork {\n constructor() {\n super('FaceRecognitionNet');\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceRecognitionNet - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(150, true), 'float32');\n\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(256)) as tf.Tensor4D;\n\n let out = convDown(normalized, params.conv32_down);\n out = tf.maxPool(out, 3, 2, 'valid');\n\n out = residual(out, params.conv32_1);\n out = residual(out, params.conv32_2);\n out = residual(out, params.conv32_3);\n\n out = residualDown(out, params.conv64_down);\n out = residual(out, params.conv64_1);\n out = residual(out, params.conv64_2);\n out = residual(out, params.conv64_3);\n\n out = residualDown(out, params.conv128_down);\n out = residual(out, params.conv128_1);\n out = residual(out, params.conv128_2);\n\n out = residualDown(out, params.conv256_down);\n out = residual(out, params.conv256_1);\n out = residual(out, params.conv256_2);\n out = residualDown(out, params.conv256_down_out);\n\n const globalAvg = out.mean([1, 2]) as tf.Tensor2D;\n const fullyConnected = tf.matMul(globalAvg, params.fc);\n\n return fullyConnected;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async computeFaceDescriptor(input: TNetInput): Promise {\n if (input?.shape?.some((dim) => dim <= 0)) return new Float32Array(128);\n const netInput = await toNetInput(input);\n const faceDescriptorTensors = tf.tidy(\n () => tf.unstack(this.forwardInput(netInput)),\n );\n const faceDescriptorsForBatch = await Promise.all(faceDescriptorTensors.map((t) => t.data())) as Float32Array[];\n faceDescriptorTensors.forEach((t) => t.dispose());\n return netInput.isBatchInput ? faceDescriptorsForBatch : faceDescriptorsForBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_recognition_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { FaceRecognitionNet } from './FaceRecognitionNet';\n\nexport * from './FaceRecognitionNet';\n\nexport function createFaceRecognitionNet(weights: Float32Array) {\n const net = new FaceRecognitionNet();\n net.extractWeights(weights);\n return net;\n}\n", "export type WithFaceDescriptor = TSource & {\n descriptor: Float32Array\n}\n\nexport function extendWithFaceDescriptor<\n TSource\n>(\n sourceObj: TSource,\n descriptor: Float32Array,\n): WithFaceDescriptor {\n const extension = { descriptor };\n return { ...sourceObj, ...extension };\n}\n", "export type WithAge = TSource & {\n age: number\n}\n\nexport function isWithAge(obj: any): obj is WithAge<{}> {\n return typeof obj.age === 'number';\n}\n\nexport function extendWithAge<\n TSource\n>(\n sourceObj: TSource,\n age: number,\n): WithAge {\n const extension = { age };\n return { ...sourceObj, ...extension };\n}\n", "import { Gender } from '../ageGenderNet/types';\nimport { isValidProbablitiy } from '../utils/index';\n\nexport type WithGender = TSource & {\n gender: Gender\n genderProbability: number\n}\n\nexport function isWithGender(obj: any): obj is WithGender<{}> {\n return (obj.gender === Gender.MALE || obj.gender === Gender.FEMALE)\n && isValidProbablitiy(obj.genderProbability);\n}\n\nexport function extendWithGender<\n TSource\n>(\n sourceObj: TSource,\n gender: Gender,\n genderProbability: number,\n): WithGender {\n const extension = { gender, genderProbability };\n return { ...sourceObj, ...extension };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ExtractWeightsFunction, ParamMapping, ConvParams, extractWeightsFactory,\n} from '../common/index';\nimport {\n MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams,\n} from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractDepthwiseConvParams(numChannels: number, mappedPrefix: string): MobileNetV1.DepthwiseConvParams {\n const filters = tf.tensor4d(extractWeights(3 * 3 * numChannels), [3, 3, numChannels, 1]);\n const batch_norm_scale = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_offset = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_mean = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_variance = tf.tensor1d(extractWeights(numChannels));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/batch_norm_scale` },\n { paramPath: `${mappedPrefix}/batch_norm_offset` },\n { paramPath: `${mappedPrefix}/batch_norm_mean` },\n { paramPath: `${mappedPrefix}/batch_norm_variance` },\n );\n\n return {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n };\n }\n\n function extractConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n isPointwiseConv?: boolean,\n ): ConvParams {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/${isPointwiseConv ? 'batch_norm_offset' : 'bias'}` },\n );\n\n return { filters, bias };\n }\n\n function extractPointwiseConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): PointwiseConvParams {\n const {\n filters,\n bias,\n } = extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, true);\n\n return {\n filters,\n batch_norm_offset: bias,\n };\n }\n\n function extractConvPairParams(\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): MobileNetV1.ConvPairParams {\n const depthwise_conv = extractDepthwiseConvParams(channelsIn, `${mappedPrefix}/depthwise_conv`);\n const pointwise_conv = extractPointwiseConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/pointwise_conv`);\n\n return { depthwise_conv, pointwise_conv };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n const conv_0 = extractPointwiseConvParams(3, 32, 3, 'mobilenetv1/conv_0');\n const conv_1 = extractConvPairParams(32, 64, 'mobilenetv1/conv_1');\n const conv_2 = extractConvPairParams(64, 128, 'mobilenetv1/conv_2');\n const conv_3 = extractConvPairParams(128, 128, 'mobilenetv1/conv_3');\n const conv_4 = extractConvPairParams(128, 256, 'mobilenetv1/conv_4');\n const conv_5 = extractConvPairParams(256, 256, 'mobilenetv1/conv_5');\n const conv_6 = extractConvPairParams(256, 512, 'mobilenetv1/conv_6');\n const conv_7 = extractConvPairParams(512, 512, 'mobilenetv1/conv_7');\n const conv_8 = extractConvPairParams(512, 512, 'mobilenetv1/conv_8');\n const conv_9 = extractConvPairParams(512, 512, 'mobilenetv1/conv_9');\n const conv_10 = extractConvPairParams(512, 512, 'mobilenetv1/conv_10');\n const conv_11 = extractConvPairParams(512, 512, 'mobilenetv1/conv_11');\n const conv_12 = extractConvPairParams(512, 1024, 'mobilenetv1/conv_12');\n const conv_13 = extractConvPairParams(1024, 1024, 'mobilenetv1/conv_13');\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n conv_8,\n conv_9,\n conv_10,\n conv_11,\n conv_12,\n conv_13,\n };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n const conv_0 = extractPointwiseConvParams(1024, 256, 1, 'prediction_layer/conv_0');\n const conv_1 = extractPointwiseConvParams(256, 512, 3, 'prediction_layer/conv_1');\n const conv_2 = extractPointwiseConvParams(512, 128, 1, 'prediction_layer/conv_2');\n const conv_3 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_3');\n const conv_4 = extractPointwiseConvParams(256, 128, 1, 'prediction_layer/conv_4');\n const conv_5 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_5');\n const conv_6 = extractPointwiseConvParams(256, 64, 1, 'prediction_layer/conv_6');\n const conv_7 = extractPointwiseConvParams(64, 128, 3, 'prediction_layer/conv_7');\n const box_encoding_0_predictor = extractConvParams(512, 12, 1, 'prediction_layer/box_predictor_0/box_encoding_predictor');\n const class_predictor_0 = extractConvParams(512, 9, 1, 'prediction_layer/box_predictor_0/class_predictor');\n const box_encoding_1_predictor = extractConvParams(1024, 24, 1, 'prediction_layer/box_predictor_1/box_encoding_predictor');\n const class_predictor_1 = extractConvParams(1024, 18, 1, 'prediction_layer/box_predictor_1/class_predictor');\n const box_encoding_2_predictor = extractConvParams(512, 24, 1, 'prediction_layer/box_predictor_2/box_encoding_predictor');\n const class_predictor_2 = extractConvParams(512, 18, 1, 'prediction_layer/box_predictor_2/class_predictor');\n const box_encoding_3_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_3/box_encoding_predictor');\n const class_predictor_3 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_3/class_predictor');\n const box_encoding_4_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_4/box_encoding_predictor');\n const class_predictor_4 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_4/class_predictor');\n const box_encoding_5_predictor = extractConvParams(128, 24, 1, 'prediction_layer/box_predictor_5/box_encoding_predictor');\n const class_predictor_5 = extractConvParams(128, 18, 1, 'prediction_layer/box_predictor_5/class_predictor');\n\n const box_predictor_0 = {\n box_encoding_predictor: box_encoding_0_predictor,\n class_predictor: class_predictor_0,\n };\n const box_predictor_1 = {\n box_encoding_predictor: box_encoding_1_predictor,\n class_predictor: class_predictor_1,\n };\n const box_predictor_2 = {\n box_encoding_predictor: box_encoding_2_predictor,\n class_predictor: class_predictor_2,\n };\n const box_predictor_3 = {\n box_encoding_predictor: box_encoding_3_predictor,\n class_predictor: class_predictor_3,\n };\n const box_predictor_4 = {\n box_encoding_predictor: box_encoding_4_predictor,\n class_predictor: class_predictor_4,\n };\n const box_predictor_5 = {\n box_encoding_predictor: box_encoding_5_predictor,\n class_predictor: class_predictor_5,\n };\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n box_predictor_0,\n box_predictor_1,\n box_predictor_2,\n box_predictor_3,\n box_predictor_4,\n box_predictor_5,\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n const mobilenetv1 = extractMobilenetV1Params();\n const prediction_layer = extractPredictionLayerParams();\n const extra_dim = tf.tensor3d(\n extractWeights(5118 * 4),\n [1, 5118, 4],\n );\n const output_layer = {\n extra_dim,\n };\n paramMappings.push({ paramPath: 'output_layer/extra_dim' });\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n params: {\n mobilenetv1,\n prediction_layer,\n output_layer,\n },\n paramMappings,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ConvParams, disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping,\n} from '../common/index';\nimport { isTensor3D } from '../utils/index';\nimport {\n BoxPredictionParams, MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams,\n} from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractPointwiseConvParams(prefix: string, idx: number, mappedPrefix: string): PointwiseConvParams {\n const filters = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/weights`, 4, `${mappedPrefix}/filters`);\n const batch_norm_offset = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/convolution_bn_offset`, 1, `${mappedPrefix}/batch_norm_offset`);\n return { filters, batch_norm_offset };\n }\n\n function extractConvPairParams(idx: number): MobileNetV1.ConvPairParams {\n const mappedPrefix = `mobilenetv1/conv_${idx}`;\n const prefixDepthwiseConv = `MobilenetV1/Conv2d_${idx}_depthwise`;\n const mappedPrefixDepthwiseConv = `${mappedPrefix}/depthwise_conv`;\n const mappedPrefixPointwiseConv = `${mappedPrefix}/pointwise_conv`;\n\n const filters = extractWeightEntry(`${prefixDepthwiseConv}/depthwise_weights`, 4, `${mappedPrefixDepthwiseConv}/filters`);\n const batch_norm_scale = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/gamma`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_scale`);\n const batch_norm_offset = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/beta`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_offset`);\n const batch_norm_mean = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_mean`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_mean`);\n const batch_norm_variance = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_variance`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_variance`);\n\n return {\n depthwise_conv: {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n },\n pointwise_conv: extractPointwiseConvParams('MobilenetV1', idx, mappedPrefixPointwiseConv),\n };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n return {\n conv_0: extractPointwiseConvParams('MobilenetV1', 0, 'mobilenetv1/conv_0'),\n conv_1: extractConvPairParams(1),\n conv_2: extractConvPairParams(2),\n conv_3: extractConvPairParams(3),\n conv_4: extractConvPairParams(4),\n conv_5: extractConvPairParams(5),\n conv_6: extractConvPairParams(6),\n conv_7: extractConvPairParams(7),\n conv_8: extractConvPairParams(8),\n conv_9: extractConvPairParams(9),\n conv_10: extractConvPairParams(10),\n conv_11: extractConvPairParams(11),\n conv_12: extractConvPairParams(12),\n conv_13: extractConvPairParams(13),\n };\n }\n\n function extractConvParams(prefix: string, mappedPrefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/weights`, 4, `${mappedPrefix}/filters`);\n const bias = extractWeightEntry(`${prefix}/biases`, 1, `${mappedPrefix}/bias`);\n return { filters, bias };\n }\n\n function extractBoxPredictorParams(idx: number): BoxPredictionParams {\n const box_encoding_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/BoxEncodingPredictor`,\n `prediction_layer/box_predictor_${idx}/box_encoding_predictor`,\n );\n const class_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/ClassPredictor`,\n `prediction_layer/box_predictor_${idx}/class_predictor`,\n );\n return { box_encoding_predictor, class_predictor };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n return {\n conv_0: extractPointwiseConvParams('Prediction', 0, 'prediction_layer/conv_0'),\n conv_1: extractPointwiseConvParams('Prediction', 1, 'prediction_layer/conv_1'),\n conv_2: extractPointwiseConvParams('Prediction', 2, 'prediction_layer/conv_2'),\n conv_3: extractPointwiseConvParams('Prediction', 3, 'prediction_layer/conv_3'),\n conv_4: extractPointwiseConvParams('Prediction', 4, 'prediction_layer/conv_4'),\n conv_5: extractPointwiseConvParams('Prediction', 5, 'prediction_layer/conv_5'),\n conv_6: extractPointwiseConvParams('Prediction', 6, 'prediction_layer/conv_6'),\n conv_7: extractPointwiseConvParams('Prediction', 7, 'prediction_layer/conv_7'),\n box_predictor_0: extractBoxPredictorParams(0),\n box_predictor_1: extractBoxPredictorParams(1),\n box_predictor_2: extractBoxPredictorParams(2),\n box_predictor_3: extractBoxPredictorParams(3),\n box_predictor_4: extractBoxPredictorParams(4),\n box_predictor_5: extractBoxPredictorParams(5),\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n const extra_dim = weightMap['Output/extra_dim'];\n paramMappings.push({ originalPath: 'Output/extra_dim', paramPath: 'output_layer/extra_dim' });\n if (!isTensor3D(extra_dim)) {\n throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${extra_dim}`);\n }\n\n const params = {\n mobilenetv1: extractMobilenetV1Params(),\n prediction_layer: extractPredictionLayerParams(),\n output_layer: {\n extra_dim,\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { PointwiseConvParams } from './types';\n\nexport function pointwiseConvLayer(\n x: tf.Tensor4D,\n params: PointwiseConvParams,\n strides: [number, number],\n) {\n return tf.tidy(() => {\n let out = tf.conv2d(x, params.filters, strides, 'same');\n out = tf.add(out, params.batch_norm_offset);\n return tf.clipByValue(out, 0, 6);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { MobileNetV1 } from './types';\n\nconst epsilon = 0.0010000000474974513;\n\nfunction depthwiseConvLayer(\n x: tf.Tensor4D,\n params: MobileNetV1.DepthwiseConvParams,\n strides: [number, number],\n) {\n return tf.tidy(() => {\n let out = tf.depthwiseConv2d(x, params.filters, strides, 'same');\n out = tf.batchNorm(\n out,\n params.batch_norm_mean,\n params.batch_norm_variance,\n params.batch_norm_offset,\n params.batch_norm_scale,\n epsilon,\n );\n return tf.clipByValue(out, 0, 6);\n });\n}\n\nfunction getStridesForLayerIdx(layerIdx: number): [number, number] {\n return [2, 4, 6, 12].some((idx) => idx === layerIdx) ? [2, 2] : [1, 1];\n}\n\nexport function mobileNetV1(x: tf.Tensor4D, params: MobileNetV1.Params) {\n return tf.tidy(() => {\n let conv11;\n let out = pointwiseConvLayer(x, params.conv_0, [2, 2]);\n\n const convPairParams = [\n params.conv_1,\n params.conv_2,\n params.conv_3,\n params.conv_4,\n params.conv_5,\n params.conv_6,\n params.conv_7,\n params.conv_8,\n params.conv_9,\n params.conv_10,\n params.conv_11,\n params.conv_12,\n params.conv_13,\n ];\n\n convPairParams.forEach((param, i) => {\n const layerIdx = i + 1;\n const depthwiseConvStrides = getStridesForLayerIdx(layerIdx);\n out = depthwiseConvLayer(out, param.depthwise_conv, depthwiseConvStrides);\n out = pointwiseConvLayer(out, param.pointwise_conv, [1, 1]);\n if (layerIdx === 11) {\n conv11 = out;\n }\n });\n\n if (conv11 === null) {\n throw new Error('mobileNetV1 - output of conv layer 11 is null');\n }\n\n return {\n out,\n conv11: conv11 as any,\n };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nfunction IOU(boxes: tf.Tensor2D, i: number, j: number) {\n const boxesData = boxes.arraySync();\n const yminI = Math.min(boxesData[i][0], boxesData[i][2]);\n const xminI = Math.min(boxesData[i][1], boxesData[i][3]);\n const ymaxI = Math.max(boxesData[i][0], boxesData[i][2]);\n const xmaxI = Math.max(boxesData[i][1], boxesData[i][3]);\n const yminJ = Math.min(boxesData[j][0], boxesData[j][2]);\n const xminJ = Math.min(boxesData[j][1], boxesData[j][3]);\n const ymaxJ = Math.max(boxesData[j][0], boxesData[j][2]);\n const xmaxJ = Math.max(boxesData[j][1], boxesData[j][3]);\n const areaI = (ymaxI - yminI) * (xmaxI - xminI);\n const areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ);\n if (areaI <= 0 || areaJ <= 0) {\n return 0.0;\n }\n const intersectionYmin = Math.max(yminI, yminJ);\n const intersectionXmin = Math.max(xminI, xminJ);\n const intersectionYmax = Math.min(ymaxI, ymaxJ);\n const intersectionXmax = Math.min(xmaxI, xmaxJ);\n const intersectionArea = Math.max(intersectionYmax - intersectionYmin, 0.0)\n * Math.max(intersectionXmax - intersectionXmin, 0.0);\n return intersectionArea / (areaI + areaJ - intersectionArea);\n}\n\nexport function nonMaxSuppression(\n boxes: tf.Tensor2D,\n scores: number[],\n maxOutputSize: number,\n iouThreshold: number,\n scoreThreshold: number,\n): number[] {\n const numBoxes = boxes.shape[0];\n const outputSize = Math.min(\n maxOutputSize,\n numBoxes,\n );\n\n const candidates = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .filter((c) => c.score > scoreThreshold)\n .sort((c1, c2) => c2.score - c1.score);\n\n const suppressFunc = (x: number) => (x <= iouThreshold ? 1 : 0);\n const selected: number[] = [];\n\n candidates.forEach((c) => {\n if (selected.length >= outputSize) return;\n const originalScore = c.score;\n for (let j = selected.length - 1; j >= 0; --j) {\n const iou = IOU(boxes, c.boxIndex, selected[j]);\n if (iou === 0.0) continue;\n c.score *= suppressFunc(iou);\n if (c.score <= scoreThreshold) break;\n }\n if (originalScore === c.score) {\n selected.push(c.boxIndex);\n }\n });\n return selected;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { OutputLayerParams } from './types';\n\nfunction getCenterCoordinatesAndSizesLayer(x: tf.Tensor2D) {\n const vec = tf.unstack(tf.transpose(x, [1, 0]));\n\n const sizes = [\n tf.sub(vec[2], vec[0]),\n tf.sub(vec[3], vec[1]),\n ];\n const centers = [\n tf.add(vec[0], tf.div(sizes[0], tf.scalar(2))),\n tf.add(vec[1], tf.div(sizes[1], tf.scalar(2))),\n ];\n return {\n sizes,\n centers,\n };\n}\n\nfunction decodeBoxesLayer(x0: tf.Tensor2D, x1: tf.Tensor2D) {\n const {\n sizes,\n centers,\n } = getCenterCoordinatesAndSizesLayer(x0);\n\n const vec = tf.unstack(tf.transpose(x1, [1, 0]));\n const div0_out = tf.div(tf.mul(tf.exp(tf.div(vec[2], tf.scalar(5))), sizes[0]), tf.scalar(2));\n const add0_out = tf.add(tf.mul(tf.div(vec[0], tf.scalar(10)), sizes[0]), centers[0]);\n const div1_out = tf.div(tf.mul(tf.exp(tf.div(vec[3], tf.scalar(5))), sizes[1]), tf.scalar(2));\n const add1_out = tf.add(tf.mul(tf.div(vec[1], tf.scalar(10)), sizes[1]), centers[1]);\n\n return tf.transpose(\n tf.stack([\n tf.sub(add0_out, div0_out),\n tf.sub(add1_out, div1_out),\n tf.add(add0_out, div0_out),\n tf.add(add1_out, div1_out),\n ]),\n [1, 0],\n );\n}\n\nexport function outputLayer(\n boxPredictions: tf.Tensor4D,\n classPredictions: tf.Tensor4D,\n params: OutputLayerParams,\n) {\n return tf.tidy(() => {\n const batchSize = boxPredictions.shape[0];\n\n let boxes = decodeBoxesLayer(\n tf.reshape(tf.tile(params.extra_dim, [batchSize, 1, 1]), [-1, 4]) as tf.Tensor2D,\n tf.reshape(boxPredictions, [-1, 4]) as tf.Tensor2D,\n );\n boxes = tf.reshape(\n boxes,\n [batchSize, (boxes.shape[0] / batchSize), 4],\n );\n\n const scoresAndClasses = tf.sigmoid(tf.slice(classPredictions, [0, 0, 1], [-1, -1, -1]));\n let scores = tf.slice(scoresAndClasses, [0, 0, 0], [-1, -1, 1]) as tf.Tensor;\n\n scores = tf.reshape(\n scores,\n [batchSize, scores.shape[1] as number],\n );\n\n const boxesByBatch = tf.unstack(boxes) as tf.Tensor2D[];\n const scoresByBatch = tf.unstack(scores) as tf.Tensor1D[];\n\n return {\n boxes: boxesByBatch,\n scores: scoresByBatch,\n };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { convLayer } from '../common/index';\nimport { BoxPredictionParams } from './types';\n\nexport function boxPredictionLayer(\n x: tf.Tensor4D,\n params: BoxPredictionParams,\n) {\n return tf.tidy(() => {\n const batchSize = x.shape[0];\n const boxPredictionEncoding = tf.reshape(\n convLayer(x, params.box_encoding_predictor),\n [batchSize, -1, 1, 4],\n );\n const classPrediction = tf.reshape(\n convLayer(x, params.class_predictor),\n [batchSize, -1, 3],\n );\n return { boxPredictionEncoding, classPrediction };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { boxPredictionLayer } from './boxPredictionLayer';\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { PredictionLayerParams } from './types';\n\nexport function predictionLayer(\n x: tf.Tensor4D,\n conv11: tf.Tensor4D,\n params: PredictionLayerParams,\n) {\n return tf.tidy(() => {\n const conv0 = pointwiseConvLayer(x, params.conv_0, [1, 1]);\n const conv1 = pointwiseConvLayer(conv0, params.conv_1, [2, 2]);\n const conv2 = pointwiseConvLayer(conv1, params.conv_2, [1, 1]);\n const conv3 = pointwiseConvLayer(conv2, params.conv_3, [2, 2]);\n const conv4 = pointwiseConvLayer(conv3, params.conv_4, [1, 1]);\n const conv5 = pointwiseConvLayer(conv4, params.conv_5, [2, 2]);\n const conv6 = pointwiseConvLayer(conv5, params.conv_6, [1, 1]);\n const conv7 = pointwiseConvLayer(conv6, params.conv_7, [2, 2]);\n\n const boxPrediction0 = boxPredictionLayer(conv11, params.box_predictor_0);\n const boxPrediction1 = boxPredictionLayer(x, params.box_predictor_1);\n const boxPrediction2 = boxPredictionLayer(conv1, params.box_predictor_2);\n const boxPrediction3 = boxPredictionLayer(conv3, params.box_predictor_3);\n const boxPrediction4 = boxPredictionLayer(conv5, params.box_predictor_4);\n const boxPrediction5 = boxPredictionLayer(conv7, params.box_predictor_5);\n\n const boxPredictions = tf.concat([\n boxPrediction0.boxPredictionEncoding,\n boxPrediction1.boxPredictionEncoding,\n boxPrediction2.boxPredictionEncoding,\n boxPrediction3.boxPredictionEncoding,\n boxPrediction4.boxPredictionEncoding,\n boxPrediction5.boxPredictionEncoding,\n ], 1) as tf.Tensor4D;\n\n const classPredictions = tf.concat([\n boxPrediction0.classPrediction,\n boxPrediction1.classPrediction,\n boxPrediction2.classPrediction,\n boxPrediction3.classPrediction,\n boxPrediction4.classPrediction,\n boxPrediction5.classPrediction,\n ], 1) as tf.Tensor4D;\n\n return {\n boxPredictions,\n classPredictions,\n };\n });\n}\n", "export interface ISsdMobilenetv1Options {\n minConfidence?: number\n maxResults?: number\n}\n\nexport class SsdMobilenetv1Options {\n protected _name: string = 'SsdMobilenetv1Options'\n\n private _minConfidence: number\n\n private _maxResults: number\n\n constructor({ minConfidence, maxResults }: ISsdMobilenetv1Options = {}) {\n this._minConfidence = minConfidence || 0.5;\n this._maxResults = maxResults || 100;\n\n if (typeof this._minConfidence !== 'number' || this._minConfidence <= 0 || this._minConfidence >= 1) {\n throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);\n }\n\n if (typeof this._maxResults !== 'number') {\n throw new Error(`${this._name} - expected maxResults to be a number`);\n }\n }\n\n get minConfidence(): number { return this._minConfidence; }\n\n get maxResults(): number { return this._maxResults; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { mobileNetV1 } from './mobileNetV1';\nimport { nonMaxSuppression } from './nonMaxSuppression';\nimport { outputLayer } from './outputLayer';\nimport { predictionLayer } from './predictionLayer';\nimport { ISsdMobilenetv1Options, SsdMobilenetv1Options } from './SsdMobilenetv1Options';\nimport { NetParams } from './types';\n\nexport class SsdMobilenetv1 extends NeuralNetwork {\n constructor() {\n super('SsdMobilenetv1');\n }\n\n public forwardInput(input: NetInput) {\n const { params } = this;\n\n if (!params) {\n throw new Error('SsdMobilenetv1 - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(512, false), 'float32');\n const x = tf.sub(tf.mul(batchTensor, tf.scalar(0.007843137718737125)), tf.scalar(1)) as tf.Tensor4D;\n const features = mobileNetV1(x, params.mobilenetv1);\n\n const { boxPredictions, classPredictions } = predictionLayer(features.out, features.conv11, params.prediction_layer);\n\n return outputLayer(boxPredictions, classPredictions, params.output_layer);\n });\n }\n\n public async forward(input: TNetInput) {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async locateFaces(\n input: TNetInput,\n options: ISsdMobilenetv1Options = {},\n ): Promise {\n const { maxResults, minConfidence } = new SsdMobilenetv1Options(options);\n\n const netInput = await toNetInput(input);\n\n const {\n boxes: _boxes,\n scores: _scores,\n } = this.forwardInput(netInput);\n\n const boxes = _boxes[0];\n const scores = _scores[0];\n for (let i = 1; i < _boxes.length; i++) {\n _boxes[i].dispose();\n _scores[i].dispose();\n }\n\n const scoresData = Array.from(await scores.data());\n const iouThreshold = 0.5;\n const indices = nonMaxSuppression(\n boxes,\n scoresData as number[],\n maxResults,\n iouThreshold,\n minConfidence,\n );\n\n const reshapedDims = netInput.getReshapedInputDimensions(0);\n const inputSize = netInput.inputSize as number;\n const padX = inputSize / reshapedDims.width;\n const padY = inputSize / reshapedDims.height;\n\n const boxesData = boxes.arraySync();\n const results = indices\n .map((idx) => {\n const [top, bottom] = [\n Math.max(0, boxesData[idx][0]),\n Math.min(1.0, boxesData[idx][2]),\n ].map((val) => val * padY);\n const [left, right] = [\n Math.max(0, boxesData[idx][1]),\n Math.min(1.0, boxesData[idx][3]),\n ].map((val) => val * padX);\n return new FaceDetection(\n scoresData[idx] as number,\n new Rect(\n left,\n top,\n right - left,\n bottom - top,\n ),\n {\n height: netInput.getInputHeight(0),\n width: netInput.getInputWidth(0),\n },\n );\n });\n\n boxes.dispose();\n scores.dispose();\n return results;\n }\n\n protected getDefaultModelName(): string {\n return 'ssd_mobilenetv1_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { SsdMobilenetv1 } from './SsdMobilenetv1';\n\nexport * from './SsdMobilenetv1';\nexport * from './SsdMobilenetv1Options';\n\nexport function createSsdMobilenetv1(weights: Float32Array) {\n const net = new SsdMobilenetv1();\n net.extractWeights(weights);\n return net;\n}\n\nexport function createFaceDetectionNet(weights: Float32Array) {\n return createSsdMobilenetv1(weights);\n}\n\n// alias for backward compatibily\nexport class FaceDetectionNet extends SsdMobilenetv1 {}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(0.738768, 0.874946),\n new Point(2.42204, 2.65704),\n new Point(4.30971, 7.04493),\n new Point(10.246, 4.59428),\n new Point(12.6868, 11.8741),\n];\n\nexport const BOX_ANCHORS_SEPARABLE = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB_SEPARABLE: [number, number, number] = [117.001, 114.697, 97.404];\n\nexport const DEFAULT_MODEL_NAME = 'tiny_yolov2_model';\nexport const DEFAULT_MODEL_NAME_SEPARABLE_CONV = 'tiny_yolov2_separable_conv_model';\n", "import { Point } from '../classes/Point';\n\nexport type TinyYolov2Config = {\n withSeparableConvs: boolean\n iouThreshold: number\n anchors: Point[]\n classes: string[]\n meanRgb?: [number, number, number]\n withClassScores?: boolean,\n filterSizes?: number[]\n isFirstLayerConv2d?: boolean\n}\n\nconst isNumber = (arg: any) => typeof arg === 'number';\n\nexport function validateConfig(config: any) {\n if (!config) {\n throw new Error(`invalid config: ${config}`);\n }\n\n if (typeof config.withSeparableConvs !== 'boolean') {\n throw new Error(`config.withSeparableConvs has to be a boolean, have: ${config.withSeparableConvs}`);\n }\n\n if (!isNumber(config.iouThreshold) || config.iouThreshold < 0 || config.iouThreshold > 1.0) {\n throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${config.iouThreshold}`);\n }\n\n if (\n !Array.isArray(config.classes)\n || !config.classes.length\n || !config.classes.every((c: any) => typeof c === 'string')\n ) {\n throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(config.classes)}`);\n }\n\n if (\n !Array.isArray(config.anchors)\n || !config.anchors.length\n || !config.anchors.map((a: any) => a || {}).every((a: any) => isNumber(a.x) && isNumber(a.y))\n ) {\n throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(config.anchors)}`);\n }\n\n if (config.meanRgb && (\n !Array.isArray(config.meanRgb)\n || config.meanRgb.length !== 3\n || !config.meanRgb.every(isNumber)\n )) {\n throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(config.meanRgb)}`);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function leaky(x: tf.Tensor4D): tf.Tensor4D {\n return tf.tidy(() => {\n const min = tf.mul(x, tf.scalar(0.10000000149011612));\n return tf.add(tf.relu(tf.sub(x, min)), min);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { leaky } from './leaky';\nimport { ConvWithBatchNorm } from './types';\n\nexport function convWithBatchNorm(x: tf.Tensor4D, params: ConvWithBatchNorm): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.conv2d(out, params.conv.filters, [1, 1], 'valid');\n out = tf.sub(out, params.bn.sub);\n out = tf.mul(out, params.bn.truediv);\n out = tf.add(out, params.conv.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from '../common/types';\nimport { leaky } from './leaky';\n\nexport function depthwiseSeparableConv(x: tf.Tensor4D, params: SeparableConvParams): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.separableConv2d(out, params.depthwise_filter, params.pointwise_filter, [1, 1], 'valid');\n out = tf.add(out, params.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { extractConvParamsFactory } from '../common/index';\nimport { extractSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightsFactory } from '../common/extractWeightsFactory';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n\n function extractBatchNormParams(size: number, mappedPrefix: string): BatchNorm {\n const sub = tf.tensor1d(extractWeights(size));\n const truediv = tf.tensor1d(extractWeights(size));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/sub` },\n { paramPath: `${mappedPrefix}/truediv` },\n );\n return { sub, truediv };\n }\n\n function extractConvWithBatchNormParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv`);\n const bn = extractBatchNormParams(channelsOut, `${mappedPrefix}/bn`);\n return { conv, bn };\n }\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParams(\n weights: Float32Array,\n config: TinyYolov2Config,\n boxEncodingSize: number,\n filterSizes: number[],\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(extractWeights, paramMappings);\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = config.isFirstLayerConv2d\n ? extractConvParams(s0, s1, 3, 'conv0')\n : extractSeparableConvParams(s0, s1, 'conv0');\n const conv1 = extractSeparableConvParams(s1, s2, 'conv1');\n const conv2 = extractSeparableConvParams(s2, s3, 'conv2');\n const conv3 = extractSeparableConvParams(s3, s4, 'conv3');\n const conv4 = extractSeparableConvParams(s4, s5, 'conv4');\n const conv5 = extractSeparableConvParams(s5, s6, 'conv5');\n const conv6 = s7 ? extractSeparableConvParams(s6, s7, 'conv6') : undefined;\n const conv7 = s8 ? extractSeparableConvParams(s7, s8, 'conv7') : undefined;\n const conv8 = extractConvParams(s8 || s7 || s6, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n } else {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = extractConvWithBatchNormParams(s0, s1, 'conv0');\n const conv1 = extractConvWithBatchNormParams(s1, s2, 'conv1');\n const conv2 = extractConvWithBatchNormParams(s2, s3, 'conv2');\n const conv3 = extractConvWithBatchNormParams(s3, s4, 'conv3');\n const conv4 = extractConvWithBatchNormParams(s4, s5, 'conv4');\n const conv5 = extractConvWithBatchNormParams(s5, s6, 'conv5');\n const conv6 = extractConvWithBatchNormParams(s6, s7, 'conv6');\n const conv7 = extractConvWithBatchNormParams(s7, s8, 'conv7');\n const conv8 = extractConvParams(s8, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n }\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from '../common/index';\nimport { disposeUnusedWeightTensors } from '../common/disposeUnusedWeightTensors';\nimport { loadSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightEntryFactory } from '../common/extractWeightEntryFactory';\nimport { ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractBatchNormParams(prefix: string): BatchNorm {\n const sub = extractWeightEntry(`${prefix}/sub`, 1);\n const truediv = extractWeightEntry(`${prefix}/truediv`, 1);\n return { sub, truediv };\n }\n\n function extractConvParams(prefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { filters, bias };\n }\n\n function extractConvWithBatchNormParams(prefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(`${prefix}/conv`);\n const bn = extractBatchNormParams(`${prefix}/bn`);\n return { conv, bn };\n }\n\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n config: TinyYolov2Config,\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n // eslint-disable-next-line no-mixed-operators\n const numFilters = (config.filterSizes && config.filterSizes.length || 9);\n params = {\n conv0: config.isFirstLayerConv2d ? extractConvParams('conv0') : extractSeparableConvParams('conv0'),\n conv1: extractSeparableConvParams('conv1'),\n conv2: extractSeparableConvParams('conv2'),\n conv3: extractSeparableConvParams('conv3'),\n conv4: extractSeparableConvParams('conv4'),\n conv5: extractSeparableConvParams('conv5'),\n conv6: numFilters > 7 ? extractSeparableConvParams('conv6') : undefined,\n conv7: numFilters > 8 ? extractSeparableConvParams('conv7') : undefined,\n conv8: extractConvParams('conv8'),\n };\n } else {\n params = {\n conv0: extractConvWithBatchNormParams('conv0'),\n conv1: extractConvWithBatchNormParams('conv1'),\n conv2: extractConvWithBatchNormParams('conv2'),\n conv3: extractConvWithBatchNormParams('conv3'),\n conv4: extractConvWithBatchNormParams('conv4'),\n conv5: extractConvWithBatchNormParams('conv5'),\n conv6: extractConvWithBatchNormParams('conv6'),\n conv7: extractConvWithBatchNormParams('conv7'),\n conv8: extractConvParams('conv8'),\n };\n }\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "export interface ITinyYolov2Options {\n inputSize?: number\n scoreThreshold?: number\n}\n\nexport class TinyYolov2Options {\n protected _name: string = 'TinyYolov2Options'\n\n private _inputSize: number\n\n private _scoreThreshold: number\n\n constructor({ inputSize, scoreThreshold }: ITinyYolov2Options = {}) {\n this._inputSize = inputSize || 416;\n this._scoreThreshold = scoreThreshold || 0.5;\n\n if (typeof this._inputSize !== 'number' || this._inputSize % 32 !== 0) {\n throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);\n }\n\n if (typeof this._scoreThreshold !== 'number' || this._scoreThreshold <= 0 || this._scoreThreshold >= 1) {\n throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`);\n }\n }\n\n get inputSize(): number { return this._inputSize; }\n\n get scoreThreshold(): number { return this._scoreThreshold; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { BoundingBox } from '../classes/BoundingBox';\nimport { Dimensions } from '../classes/Dimensions';\nimport { ObjectDetection } from '../classes/ObjectDetection';\nimport { convLayer } from '../common/index';\nimport { ConvParams, SeparableConvParams } from '../common/types';\nimport { toNetInput } from '../dom/index';\nimport { NetInput } from '../dom/NetInput';\nimport { TNetInput } from '../dom/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { sigmoid } from '../ops/index';\nimport { nonMaxSuppression } from '../ops/nonMaxSuppression';\nimport { normalize } from '../ops/normalize';\nimport { TinyYolov2Config, validateConfig } from './config';\nimport { convWithBatchNorm } from './convWithBatchNorm';\nimport { depthwiseSeparableConv } from './depthwiseSeparableConv';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { leaky } from './leaky';\nimport { ITinyYolov2Options, TinyYolov2Options } from './TinyYolov2Options';\nimport { DefaultTinyYolov2NetParams, MobilenetParams, TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2Base extends NeuralNetwork {\n public static DEFAULT_FILTER_SIZES = [3, 16, 32, 64, 128, 256, 512, 1024, 1024];\n\n private _config: TinyYolov2Config\n\n constructor(config: TinyYolov2Config) {\n super('TinyYolov2');\n validateConfig(config);\n this._config = config;\n }\n\n public get config(): TinyYolov2Config {\n return this._config;\n }\n\n public get withClassScores(): boolean {\n return this.config.withClassScores || this.config.classes.length > 1;\n }\n\n public get boxEncodingSize(): number {\n return 5 + (this.withClassScores ? this.config.classes.length : 0);\n }\n\n public runTinyYolov2(x: tf.Tensor4D, params: DefaultTinyYolov2NetParams): tf.Tensor4D {\n let out = convWithBatchNorm(x, params.conv0);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = convWithBatchNorm(out, params.conv6);\n out = convWithBatchNorm(out, params.conv7);\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public runMobilenet(x: tf.Tensor4D, params: MobilenetParams): tf.Tensor4D {\n let out = this.config.isFirstLayerConv2d\n ? leaky(convLayer(x, params.conv0 as ConvParams, 'valid', false))\n : depthwiseSeparableConv(x, params.conv0 as SeparableConvParams);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = params.conv6 ? depthwiseSeparableConv(out, params.conv6) : out;\n out = params.conv7 ? depthwiseSeparableConv(out, params.conv7) : out;\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public forwardInput(input: NetInput, inputSize: number): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyYolov2 - load model before inference');\n }\n\n return tf.tidy(() => {\n let batchTensor = tf.cast(input.toBatchTensor(inputSize, false), 'float32');\n batchTensor = this.config.meanRgb\n ? normalize(batchTensor, this.config.meanRgb)\n : batchTensor;\n batchTensor = batchTensor.div(tf.scalar(256)) as tf.Tensor4D;\n return this.config.withSeparableConvs\n ? this.runMobilenet(batchTensor, params as MobilenetParams)\n : this.runTinyYolov2(batchTensor, params as DefaultTinyYolov2NetParams);\n });\n }\n\n public async forward(input: TNetInput, inputSize: number): Promise {\n return this.forwardInput(await toNetInput(input), inputSize);\n }\n\n public async detect(input: TNetInput, forwardParams: ITinyYolov2Options = {}): Promise {\n const { inputSize, scoreThreshold } = new TinyYolov2Options(forwardParams);\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput, inputSize);\n const out0 = tf.tidy(() => tf.unstack(out)[0].expandDims()) as tf.Tensor4D;\n const inputDimensions = {\n width: netInput.getInputWidth(0),\n height: netInput.getInputHeight(0),\n };\n\n const results = await this.extractBoxes(out0, netInput.getReshapedInputDimensions(0), scoreThreshold);\n out.dispose();\n out0.dispose();\n\n const boxes = results.map((res) => res.box);\n const scores = results.map((res) => res.score);\n const classScores = results.map((res) => res.classScore);\n const classNames = results.map((res) => this.config.classes[res.label]);\n\n const indices = nonMaxSuppression(\n boxes.map((box) => box.rescale(inputSize)),\n scores,\n this.config.iouThreshold,\n true,\n );\n\n const detections = indices.map((idx) => new ObjectDetection(\n scores[idx],\n classScores[idx],\n classNames[idx],\n boxes[idx],\n inputDimensions,\n ));\n return detections;\n }\n\n protected getDefaultModelName(): string {\n return '';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this.config);\n }\n\n protected extractParams(weights: Float32Array) {\n const filterSizes = this.config.filterSizes || TinyYolov2Base.DEFAULT_FILTER_SIZES;\n\n const numFilters = filterSizes ? filterSizes.length : undefined;\n if (numFilters !== 7 && numFilters !== 8 && numFilters !== 9) {\n throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${numFilters} filterSizes in config`);\n }\n return extractParams(weights, this.config, this.boxEncodingSize, filterSizes);\n }\n\n protected async extractBoxes(\n outputTensor: tf.Tensor4D,\n inputBlobDimensions: Dimensions,\n scoreThreshold?: number,\n ) {\n const { width, height } = inputBlobDimensions;\n const inputSize = Math.max(width, height);\n const correctionFactorX = inputSize / width;\n const correctionFactorY = inputSize / height;\n\n const numCells = outputTensor.shape[1];\n const numBoxes = this.config.anchors.length;\n\n const [boxesTensor, scoresTensor, classScoresTensor] = tf.tidy(() => {\n const reshaped = outputTensor.reshape([numCells, numCells, numBoxes, this.boxEncodingSize]);\n\n const boxes = reshaped.slice([0, 0, 0, 0], [numCells, numCells, numBoxes, 4]);\n const scores = reshaped.slice([0, 0, 0, 4], [numCells, numCells, numBoxes, 1]);\n const classScores = this.withClassScores\n ? tf.softmax(reshaped.slice([0, 0, 0, 5], [numCells, numCells, numBoxes, this.config.classes.length]), 3)\n : tf.scalar(0);\n return [boxes, scores, classScores];\n });\n\n const results = [] as any;\n const scoresData = await scoresTensor.array();\n const boxesData = await boxesTensor.array();\n for (let row = 0; row < numCells; row++) {\n for (let col = 0; col < numCells; col++) {\n for (let anchor = 0; anchor < numBoxes; anchor++) {\n const score = sigmoid(scoresData[row][col][anchor][0]);\n if (!scoreThreshold || score > scoreThreshold) {\n const ctX = ((col + sigmoid(boxesData[row][col][anchor][0])) / numCells) * correctionFactorX;\n const ctY = ((row + sigmoid(boxesData[row][col][anchor][1])) / numCells) * correctionFactorY;\n const widthLocal = ((Math.exp(boxesData[row][col][anchor][2]) * this.config.anchors[anchor].x) / numCells) * correctionFactorX;\n const heightLocal = ((Math.exp(boxesData[row][col][anchor][3]) * this.config.anchors[anchor].y) / numCells) * correctionFactorY;\n const x = (ctX - (widthLocal / 2));\n const y = (ctY - (heightLocal / 2));\n const pos = { row, col, anchor };\n const { classScore, label } = this.withClassScores\n ? await this.extractPredictedClass(classScoresTensor as tf.Tensor4D, pos)\n : { classScore: 1, label: 0 };\n results.push({\n box: new BoundingBox(x, y, x + widthLocal, y + heightLocal),\n score,\n classScore: score * classScore,\n label,\n ...pos,\n });\n }\n }\n }\n }\n\n boxesTensor.dispose();\n scoresTensor.dispose();\n classScoresTensor.dispose();\n return results;\n }\n\n private async extractPredictedClass(classesTensor: tf.Tensor4D, pos: { row: number, col: number, anchor: number }) {\n const { row, col, anchor } = pos;\n const classesData = await classesTensor.array();\n return Array(this.config.classes.length).fill(0)\n .map((_, i) => classesData[row][col][anchor][i])\n .map((classScore, label) => ({\n classScore,\n label,\n }))\n .reduce((max, curr) => (max.classScore > curr.classScore ? max : curr));\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/types';\nimport { TNetInput } from '../dom/types';\nimport {\n BOX_ANCHORS,\n BOX_ANCHORS_SEPARABLE,\n DEFAULT_MODEL_NAME,\n DEFAULT_MODEL_NAME_SEPARABLE_CONV,\n IOU_THRESHOLD,\n MEAN_RGB_SEPARABLE,\n} from './const';\nimport { TinyYolov2Base } from './TinyYolov2Base';\nimport { ITinyYolov2Options } from './TinyYolov2Options';\nimport { TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2 extends TinyYolov2Base {\n constructor(withSeparableConvs: boolean = true) {\n const config = {\n withSeparableConvs,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n ...(withSeparableConvs\n ? {\n anchors: BOX_ANCHORS_SEPARABLE,\n meanRgb: MEAN_RGB_SEPARABLE,\n }\n : {\n anchors: BOX_ANCHORS,\n withClassScores: true,\n }),\n };\n\n super(config);\n }\n\n public get withSeparableConvs(): boolean {\n return this.config.withSeparableConvs;\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected getDefaultModelName(): string {\n return this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME;\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { TinyYolov2 } from './TinyYolov2';\n\nexport * from './TinyYolov2Options';\nexport * from './config';\nexport * from './types';\nexport { TinyYolov2 };\n\nexport function createTinyYolov2(weights: Float32Array, withSeparableConvs: boolean = true) {\n const net = new TinyYolov2(withSeparableConvs);\n net.extractWeights(weights);\n return net;\n}\n", "import { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\n\nexport interface ITinyFaceDetectorOptions extends ITinyYolov2Options {}\n\nexport class TinyFaceDetectorOptions extends TinyYolov2Options {\n protected _name: string = 'TinyFaceDetectorOptions'\n}\n", "export class ComposableTask {\n public async then(\n // eslint-disable-next-line no-unused-vars\n onfulfilled: (value: T) => T | PromiseLike,\n ): Promise {\n return onfulfilled(await this.run());\n }\n\n public async run(): Promise {\n throw new Error('ComposableTask - run is not implemented');\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\n\nexport async function extractAllFacesAndComputeResults, TResult>(\n parentResults: TSource[],\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResults: (faces: Array) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment: (parentResult: WithFaceLandmarks) => FaceDetection = ({ alignedRect }) => alignedRect,\n) {\n const faceBoxes = parentResults.map((parentResult) => (isWithFaceLandmarks(parentResult)\n ? getRectForAlignment(parentResult)\n : parentResult.detection));\n const faces: Array = extractedFaces || (\n input instanceof tf.Tensor\n ? await extractFaceTensors(input, faceBoxes)\n : await extractFaces(input, faceBoxes)\n );\n\n const results = await computeResults(faces);\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return results;\n}\n\nexport async function extractSingleFaceAndComputeResult, TResult>(\n parentResult: TSource,\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResult: (face: HTMLCanvasElement | tf.Tensor3D) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment?: (parentResultLocal: WithFaceLandmarks) => FaceDetection,\n) {\n return extractAllFacesAndComputeResults(\n [parentResult],\n input,\n async (faces) => computeResult(faces[0]),\n extractedFaces,\n getRectForAlignment,\n );\n}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB: [number, number, number] = [117.001, 114.697, 97.404];\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/index';\nimport { TNetInput } from '../dom/index';\nimport { ITinyYolov2Options } from '../tinyYolov2/index';\nimport { TinyYolov2Base } from '../tinyYolov2/TinyYolov2Base';\nimport { TinyYolov2NetParams } from '../tinyYolov2/types';\nimport { BOX_ANCHORS, IOU_THRESHOLD, MEAN_RGB } from './const';\n\nexport class TinyFaceDetector extends TinyYolov2Base {\n constructor() {\n const config = {\n withSeparableConvs: true,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n anchors: BOX_ANCHORS,\n meanRgb: MEAN_RGB,\n isFirstLayerConv2d: true,\n filterSizes: [3, 16, 32, 64, 128, 256, 512],\n };\n\n super(config);\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected getDefaultModelName(): string {\n return 'tiny_face_detector_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { AgeGenderNet } from '../ageGenderNet/AgeGenderNet';\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressionNet } from '../faceExpressionNet/FaceExpressionNet';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { FaceRecognitionNet } from '../faceRecognitionNet/FaceRecognitionNet';\nimport { SsdMobilenetv1 } from '../ssdMobilenetv1/SsdMobilenetv1';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetector } from '../tinyFaceDetector/TinyFaceDetector';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { ITinyYolov2Options, TinyYolov2 } from '../tinyYolov2/index';\n\nexport const nets = {\n ssdMobilenetv1: new SsdMobilenetv1(),\n tinyFaceDetector: new TinyFaceDetector(),\n tinyYolov2: new TinyYolov2(),\n faceLandmark68Net: new FaceLandmark68Net(),\n faceLandmark68TinyNet: new FaceLandmark68TinyNet(),\n faceRecognitionNet: new FaceRecognitionNet(),\n faceExpressionNet: new FaceExpressionNet(),\n ageGenderNet: new AgeGenderNet(),\n};\n\n/**\n * Attempts to detect all faces in an image using SSD Mobilenetv1 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const ssdMobilenetv1 = (input: TNetInput, options: SsdMobilenetv1Options): Promise => nets.ssdMobilenetv1.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Face Detector.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyFaceDetectorOptions constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyFaceDetector = (input: TNetInput, options: TinyFaceDetectorOptions): Promise => nets.tinyFaceDetector.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Yolov2 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyYolov2Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyYolov2 = (input: TNetInput, options: ITinyYolov2Options): Promise => nets.tinyYolov2.locateFaces(input, options);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarks = (input: TNetInput): Promise => nets.faceLandmark68Net.detectLandmarks(input);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image\n * using a tinier version of the 68 point face landmark model, which is slightly\n * faster at inference, but also slightly less accurate.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarksTiny = (input: TNetInput): Promise => nets.faceLandmark68TinyNet.detectLandmarks(input);\n\n/**\n * Computes a 128 entry vector (face descriptor / face embeddings) from the face shown in an image,\n * which uniquely represents the features of that persons face. The computed face descriptor can\n * be used to measure the similarity between faces, by computing the euclidean distance of two\n * face descriptors.\n *\n * @param inputs The face image extracted from the aligned bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Face descriptor with 128 entries or array thereof in case of batch input.\n */\nexport const computeFaceDescriptor = (input: TNetInput): Promise => nets.faceRecognitionNet.computeFaceDescriptor(input);\n\n/**\n * Recognizes the facial expressions from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Facial expressions with corresponding probabilities or array thereof in case of batch input.\n */\nexport const recognizeFaceExpressions = (input: TNetInput): Promise => nets.faceExpressionNet.predictExpressions(input);\n\n/**\n * Predicts age and gender from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Predictions with age, gender and gender probability or array thereof in case of batch input.\n */\nexport const predictAgeAndGender = (input: TNetInput): Promise => nets.ageGenderNet.predictAgeAndGender(input);\n\nexport const loadSsdMobilenetv1Model = (url: string) => nets.ssdMobilenetv1.load(url);\nexport const loadTinyFaceDetectorModel = (url: string) => nets.tinyFaceDetector.load(url);\nexport const loadTinyYolov2Model = (url: string) => nets.tinyYolov2.load(url);\nexport const loadFaceLandmarkModel = (url: string) => nets.faceLandmark68Net.load(url);\nexport const loadFaceLandmarkTinyModel = (url: string) => nets.faceLandmark68TinyNet.load(url);\nexport const loadFaceRecognitionModel = (url: string) => nets.faceRecognitionNet.load(url);\nexport const loadFaceExpressionModel = (url: string) => nets.faceExpressionNet.load(url);\nexport const loadAgeGenderModel = (url: string) => nets.ageGenderNet.load(url);\n\n// backward compatibility\nexport const loadFaceDetectionModel = loadSsdMobilenetv1Model;\nexport const locateFaces = ssdMobilenetv1;\nexport const detectLandmarks = detectFaceLandmarks;\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderTask,\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\n\nexport class PredictFaceExpressionsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllFaceExpressionsTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictFaceExpressionsTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n\n const faceExpressionsByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map(\n (face) => nets.faceExpressionNet.predictExpressions(face) as Promise,\n )),\n this.extractedFaces,\n );\n\n return parentResults.map(\n (parentResult, i) => extendWithFaceExpressions(parentResult, faceExpressionsByFace[i]),\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictFaceExpressionsTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const faceExpressions = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceExpressionNet.predictExpressions(face) as Promise,\n this.extractedFaces,\n );\n\n return extendWithFaceExpressions(parentResult, faceExpressions);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictAllFaceExpressionsWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictAllFaceExpressionsTask {\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictSingleFaceExpressionsTask {\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { TNetInput } from '../dom/index';\nimport { extendWithAge, WithAge } from '../factories/WithAge';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { extendWithGender, WithGender } from '../factories/WithGender';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllFaceExpressionsTask,\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class PredictAgeAndGenderTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllAgeAndGenderTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictAgeAndGenderTaskBase>[], TSource[]> {\n public async run(): Promise>[]> {\n const parentResults = await this.parentTask;\n\n const ageAndGenderByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map(\n (face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise,\n )),\n this.extractedFaces,\n );\n\n return parentResults.map((parentResult, i) => {\n const { age, gender, genderProbability } = ageAndGenderByFace[i];\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n });\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictAgeAndGenderTaskBase> | undefined, TSource | undefined> {\n public async run(): Promise> | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const { age, gender, genderProbability } = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise,\n this.extractedFaces,\n );\n\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictAllAgeAndGenderWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictAllAgeAndGenderTask {\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictSingleAgeAndGenderTask {\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDescriptor, WithFaceDescriptor } from '../factories/WithFaceDescriptor';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\nimport {\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class ComputeFaceDescriptorsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n ) {\n super();\n }\n}\n\nexport class ComputeAllFaceDescriptorsTask<\n TSource extends WithFaceLandmarks>\n> extends ComputeFaceDescriptorsTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n\n const descriptors = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n (faces) => Promise.all(faces.map((face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise)),\n null,\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n\n return descriptors.map((descriptor, i) => extendWithFaceDescriptor(parentResults[i], descriptor));\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n\nexport class ComputeSingleFaceDescriptorTask<\n TSource extends WithFaceLandmarks>\n> extends ComputeFaceDescriptorsTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n const descriptor = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise,\n null,\n // eslint-disable-next-line no-shadow\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n\n return extendWithFaceDescriptor(parentResult, descriptor);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\nimport {\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class DetectFaceLandmarksTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected useTinyLandmarkNet: boolean,\n ) {\n super();\n }\n\n protected get landmarkNet(): FaceLandmark68Net | FaceLandmark68TinyNet {\n return this.useTinyLandmarkNet\n ? nets.faceLandmark68TinyNet\n : nets.faceLandmark68Net;\n }\n}\n\nexport class DetectAllFaceLandmarksTask<\n TSource extends WithFaceDetection<{}>\n> extends DetectFaceLandmarksTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n const detections = parentResults.map((res) => res.detection);\n\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, detections)\n : await extractFaces(this.input, detections);\n\n const faceLandmarksByFace = await Promise.all(faces.map(\n (face) => this.landmarkNet.detectLandmarks(face),\n )) as FaceLandmarks68[];\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return parentResults.map((parentResult, i) => extendWithFaceLandmarks(parentResult, faceLandmarksByFace[i]));\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class DetectSingleFaceLandmarksTask<\n TSource extends WithFaceDetection<{}>\n> extends DetectFaceLandmarksTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const { detection } = parentResult;\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, [detection])\n : await extractFaces(this.input, [detection]);\n\n const landmarks = await this.landmarkNet.detectLandmarks(faces[0]) as FaceLandmarks68;\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return extendWithFaceLandmarks(parentResult, landmarks);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { TinyYolov2Options } from '../tinyYolov2/index';\nimport { ComposableTask } from './ComposableTask';\nimport { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderTask, PredictSingleAgeAndGenderTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsTask, PredictSingleFaceExpressionsTask } from './PredictFaceExpressionsTask';\nimport { FaceDetectionOptions } from './types';\n\nexport class DetectFacesTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected options: FaceDetectionOptions = new SsdMobilenetv1Options(),\n ) {\n super();\n }\n}\n\nexport class DetectAllFacesTask extends DetectFacesTaskBase {\n public async run(): Promise {\n const { input, options } = this;\n\n let result;\n if (options instanceof TinyFaceDetectorOptions) result = nets.tinyFaceDetector.locateFaces(input, options);\n else if (options instanceof SsdMobilenetv1Options) result = nets.ssdMobilenetv1.locateFaces(input, options);\n else if (options instanceof TinyYolov2Options) result = nets.tinyYolov2.locateFaces(input, options);\n else throw new Error('detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options');\n\n return result;\n }\n\n private runAndExtendWithFaceDetections(): Promise[]> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise[]>(async (resolve) => {\n const detections = await this.run();\n resolve(detections.map((detection) => extendWithFaceDetection({}, detection)));\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet: boolean = false) {\n return new DetectAllFaceLandmarksTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n}\n\nexport class DetectSingleFaceTask extends DetectFacesTaskBase {\n public async run(): Promise {\n const faceDetections = await new DetectAllFacesTask(this.input, this.options);\n let faceDetectionWithHighestScore = faceDetections[0];\n faceDetections.forEach((faceDetection) => {\n if (faceDetection.score > faceDetectionWithHighestScore.score) faceDetectionWithHighestScore = faceDetection;\n });\n return faceDetectionWithHighestScore;\n }\n\n private runAndExtendWithFaceDetection(): Promise | undefined> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise | undefined>(async (resolve) => {\n const detection = await this.run();\n resolve(detection ? extendWithFaceDetection<{}>({}, detection) : undefined);\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet: boolean = false) {\n return new DetectSingleFaceLandmarksTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n}\n", "import { TNetInput } from '../dom/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { DetectAllFacesTask, DetectSingleFaceTask } from './DetectFacesTasks';\nimport { FaceDetectionOptions } from './types';\n\nexport function detectSingleFace(input: TNetInput, options: FaceDetectionOptions = new SsdMobilenetv1Options()): DetectSingleFaceTask {\n return new DetectSingleFaceTask(input, options);\n}\n\nexport function detectAllFaces(input: TNetInput, options: FaceDetectionOptions = new SsdMobilenetv1Options()): DetectAllFacesTask {\n return new DetectAllFacesTask(input, options);\n}\n", "import { TNetInput } from '../dom/index';\nimport { WithFaceDescriptor, WithFaceDetection, WithFaceLandmarks } from '../factories/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/index';\nimport { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\nimport { detectAllFaces } from './detectFaces';\n\n// export allFaces API for backward compatibility\n\nexport async function allFacesSsdMobilenetv1(\n input: TNetInput,\n minConfidence?: number,\n): Promise>>[]> {\n return detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? { minConfidence } : {}))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport async function allFacesTinyYolov2(\n input: TNetInput,\n forwardParams: ITinyYolov2Options = {},\n): Promise>>[]> {\n return detectAllFaces(input, new TinyYolov2Options(forwardParams))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport const allFaces = allFacesSsdMobilenetv1;\n", "export function euclideanDistance(arr1: number[] | Float32Array, arr2: number[] | Float32Array) {\n if (arr1.length !== arr2.length) throw new Error('euclideanDistance: arr1.length !== arr2.length');\n\n const desc1 = Array.from(arr1);\n const desc2 = Array.from(arr2);\n\n return Math.sqrt(\n desc1\n .map((val, i) => val - desc2[i])\n .reduce((res, diff) => res + (diff ** 2), 0),\n );\n}\n", "import { FaceMatch } from '../classes/FaceMatch';\nimport { LabeledFaceDescriptors } from '../classes/LabeledFaceDescriptors';\nimport { euclideanDistance } from '../euclideanDistance';\nimport { WithFaceDescriptor } from '../factories/index';\n\nexport class FaceMatcher {\n private _labeledDescriptors: LabeledFaceDescriptors[]\n\n private _distanceThreshold: number\n\n constructor(\n inputs: LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>,\n distanceThreshold: number = 0.6,\n ) {\n this._distanceThreshold = distanceThreshold;\n\n const inputArray = Array.isArray(inputs) ? inputs : [inputs];\n\n if (!inputArray.length) {\n throw new Error('FaceRecognizer.constructor - expected atleast one input');\n }\n\n let count = 1;\n const createUniqueLabel = () => `person ${count++}`;\n\n this._labeledDescriptors = inputArray.map((desc) => {\n if (desc instanceof LabeledFaceDescriptors) {\n return desc;\n }\n\n if (desc instanceof Float32Array) {\n return new LabeledFaceDescriptors(createUniqueLabel(), [desc]);\n }\n\n if (desc.descriptor && desc.descriptor instanceof Float32Array) {\n return new LabeledFaceDescriptors(createUniqueLabel(), [desc.descriptor]);\n }\n\n throw new Error('FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>');\n });\n }\n\n public get labeledDescriptors(): LabeledFaceDescriptors[] { return this._labeledDescriptors; }\n\n public get distanceThreshold(): number { return this._distanceThreshold; }\n\n public computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number {\n return descriptors\n .map((d) => euclideanDistance(d, queryDescriptor))\n .reduce((d1, d2) => d1 + d2, 0)\n / (descriptors.length || 1);\n }\n\n public matchDescriptor(queryDescriptor: Float32Array): FaceMatch {\n return this.labeledDescriptors\n .map(({ descriptors, label }) => new FaceMatch(\n label,\n this.computeMeanDistance(queryDescriptor, descriptors),\n ))\n .reduce((best, curr) => (best.distance < curr.distance ? best : curr));\n }\n\n public findBestMatch(queryDescriptor: Float32Array): FaceMatch {\n const bestMatch = this.matchDescriptor(queryDescriptor);\n return bestMatch.distance < this.distanceThreshold\n ? bestMatch\n : new FaceMatch('unknown', bestMatch.distance);\n }\n\n public toJSON(): any {\n return {\n distanceThreshold: this.distanceThreshold,\n labeledDescriptors: this.labeledDescriptors.map((ld) => ld.toJSON()),\n };\n }\n\n public static fromJSON(json: any): FaceMatcher {\n const labeledDescriptors = json.labeledDescriptors\n .map((ld: any) => LabeledFaceDescriptors.fromJSON(ld));\n return new FaceMatcher(labeledDescriptors, json.distanceThreshold);\n }\n}\n", "import { TinyFaceDetector } from './TinyFaceDetector';\n\nexport * from './TinyFaceDetector';\nexport * from './TinyFaceDetectorOptions';\n\nexport function createTinyFaceDetector(weights: Float32Array) {\n const net = new TinyFaceDetector();\n net.extractWeights(weights);\n return net;\n}\n", "import { Dimensions, IDimensions } from './classes/index';\nimport { FaceDetection } from './classes/FaceDetection';\nimport { FaceLandmarks } from './classes/FaceLandmarks';\nimport { extendWithFaceDetection, isWithFaceDetection } from './factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, isWithFaceLandmarks } from './factories/WithFaceLandmarks';\n\nexport function resizeResults(results: T, dimensions: IDimensions): T {\n const { width, height } = new Dimensions(dimensions.width, dimensions.height);\n\n if (width <= 0 || height <= 0) {\n throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({ width, height })}`);\n }\n\n if (Array.isArray(results)) {\n // return results.map(obj => resizeResults(obj, { width, height })) as any as T\n return (results as Array).map((obj) => resizeResults(obj, { width, height } as IDimensions)) as any as T;\n }\n\n if (isWithFaceLandmarks(results)) {\n const resizedDetection = results.detection.forSize(width, height);\n const resizedLandmarks = results.unshiftedLandmarks.forSize(resizedDetection.box.width, resizedDetection.box.height);\n return extendWithFaceLandmarks(extendWithFaceDetection(results, resizedDetection), resizedLandmarks);\n }\n\n if (isWithFaceDetection(results)) {\n return extendWithFaceDetection(results, results.detection.forSize(width, height));\n }\n\n if (results instanceof FaceLandmarks || results instanceof FaceDetection) {\n return (results as any).forSize(width, height);\n }\n\n return results;\n}\n", "import * as tf from '../dist/tfjs.esm';\nimport * as draw from './draw/index';\nimport * as utils from './utils/index';\nimport * as pkg from '../package.json';\n\nexport { tf, draw, utils };\n\nexport * from './ageGenderNet/index';\nexport * from './classes/index';\nexport * from './dom/index';\nexport * from './env/index';\nexport * from './faceExpressionNet/index';\nexport * from './faceLandmarkNet/index';\nexport * from './faceRecognitionNet/index';\nexport * from './factories/index';\nexport * from './globalApi/index';\nexport * from './ops/index';\nexport * from './ssdMobilenetv1/index';\nexport * from './tinyFaceDetector/index';\nexport * from './tinyYolov2/index';\nexport * from './euclideanDistance';\nexport * from './NeuralNetwork';\nexport * from './resizeResults';\n\nconst node = (typeof process !== 'undefined');\nconst browser = (typeof navigator !== 'undefined') && (typeof navigator.userAgent !== 'undefined');\nexport const version = { faceapi: pkg.version as string, node, browser };\n"], - "mappings": "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C,EAAG,IAAM,GAAU,EAAI,MCRtB,GAA+B,CAC1C,WAAY,GACZ,SAAU,CAAC,EAAc,EAAiB,IAAuB,CAC/D,GAAM,GAA2B,EAC3B,CAAC,KAAA,GAAQ,EACf,MAAO,CAAC,MAAO,IAAM,GAAM,EAAI,MCItB,GAA2C,CACtD,WAAY,GACZ,aAAc,CAAC,cACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAc,EAKrB,MAAO,CAAC,EAHK,IACJ,GAAoB,EAAI,MAMrC,YAA+C,EAAM,EAAiB,CAIpE,GAAM,GAAqB,GAAQ,EAAS,GAAU,IAChD,EAAW,GAAO,EAAG,GACvB,EAAa,GAAa,EAAS,GAAO,EAAG,UAC3C,EAAW,EAAS,KAAO,EAAW,KAC5C,OAAS,GAAI,EAAG,EAAI,EAAU,EAAE,EAC9B,EAAa,GAAW,EAAY,EAAI,GAE1C,EAAa,GAAW,EAAY,GAAK,EAAS,MAAO,SACzD,GAAM,GAAY,GAAU,GAC5B,MAAO,IAAM,EAAY,EAAU,GClC9B,GAAM,IAAkC,CAC7C,WAAY,GACZ,SAAW,GACF,EAAC,EAAG,IAAM,GAAU,MC+FzB,GAA4B,CAChC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAkB,IAC3B,GAAiB,GCxMnB,IAAuB,UAAU,IAAM,U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GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAgB,IACzB,GAAe,GE5TjB,GAAM,IAAmD,GAEnD,GAA2C,CAC/C,MAAO,GACP,UAAW,GACX,mBAAoB,GACpB,sBAAuB,GACvB,MAAO,GACP,QAAS,GACT,6BAA8B,IAO1B,YACF,EAAsB,EAAyB,CACjD,GAAS,GAAgB,EAGrB,YAA0B,EAAoB,CAClD,GAAI,CAAE,KAAgB,KAAW,CAC/B,GAAM,GAAS,GAAyB,GACxC,GAAI,IAAW,KACb,GAAS,GAAgB,MAEzB,OAAA,SAAQ,IAAI,0CAA2C,GAChD,KAGX,GAAM,GAAK,GAAS,GACpB,MAAI,GAAG,gBACL,OAAO,IAAS,GACT,GAAgB,IAGzB,GAAG,QAAQ,EAAG,YACd,EAAG,QAAQ,EAAG,cACd,EAAG,QAAQ,EAAG,OACd,EAAG,QAAQ,EAAG,QACd,EAAG,QAAQ,EAAG,qBACd,EAAG,QAAQ,EAAG,iBACd,EAAG,OAAO,EAAG,cACb,EAAG,OAAO,EAAG,WACb,EAAG,SAAS,EAAG,MAER,GAAS,IAGlB,YAAsB,EAAoB,CACxC,GAAI,MAAO,kBAAoB,aAAe,IAAiB,EAC7D,MA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", + "sources": ["../src/env/isNodejs.ts", "../node_modules/node-fetch/browser.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/tychei.js", "(disabled):crypto", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/index.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "../node_modules/string_decoder/lib/string_decoder.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/tychei.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/index.js", "(disabled):path", "(disabled):worker_threads", "(disabled):perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dense_bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/transform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ComplexAbs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ExpandDims_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LeakyRelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mean_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Neg_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/RealDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Select_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/zeros_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Scatter_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transform.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/arg_min_max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/dilation_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transform_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transform.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "../src/draw/index.ts", "../src/draw/drawContour.ts", "../src/utils/index.ts", "../src/classes/Dimensions.ts", "../src/classes/Point.ts", "../src/classes/Box.ts", "../src/classes/BoundingBox.ts", "../src/classes/ObjectDetection.ts", "../src/classes/FaceDetection.ts", "../src/ops/iou.ts", "../src/ops/minBbox.ts", "../src/ops/nonMaxSuppression.ts", "../src/ops/normalize.ts", "../src/ops/padToSquare.ts", "../src/ops/shuffleArray.ts", "../src/ops/index.ts", "../src/classes/Rect.ts", "../src/classes/FaceLandmarks.ts", "../src/classes/FaceLandmarks5.ts", "../src/classes/FaceLandmarks68.ts", "../src/classes/FaceMatch.ts", "../src/classes/LabeledBox.ts", "../src/classes/LabeledFaceDescriptors.ts", "../src/classes/PredictedBox.ts", "../src/factories/WithFaceDetection.ts", "../src/env/createBrowserEnv.ts", "../src/env/createFileSystem.ts", "../src/env/createNodejsEnv.ts", "../src/env/isBrowser.ts", "../src/env/index.ts", "../src/dom/resolveInput.ts", "../src/dom/getContext2dOrThrow.ts", "../src/draw/DrawTextField.ts", "../src/draw/DrawBox.ts", "../src/draw/drawDetections.ts", "../src/dom/isMediaLoaded.ts", "../src/dom/awaitMediaLoaded.ts", "../src/dom/bufferToImage.ts", "../src/dom/getMediaDimensions.ts", "../src/dom/createCanvas.ts", "../src/dom/imageTensorToCanvas.ts", "../src/dom/isMediaElement.ts", "../src/dom/imageToSquare.ts", "../src/dom/NetInput.ts", "../src/dom/toNetInput.ts", "../src/dom/extractFaces.ts", "../src/dom/extractFaceTensors.ts", "../src/dom/fetchOrThrow.ts", "../src/dom/fetchImage.ts", "../src/dom/fetchJson.ts", "../src/dom/fetchNetWeights.ts", "../src/common/getModelUris.ts", "../src/dom/loadWeightMap.ts", "../src/dom/matchDimensions.ts", "../src/NeuralNetwork.ts", "../src/common/depthwiseSeparableConv.ts", "../src/faceFeatureExtractor/denseBlock.ts", "../src/common/convLayer.ts", "../src/common/disposeUnusedWeightTensors.ts", "../src/common/extractConvParamsFactory.ts", "../src/common/extractFCParamsFactory.ts", "../src/common/types.ts", "../src/common/extractSeparableConvParamsFactory.ts", "../src/common/extractWeightEntryFactory.ts", "../src/common/extractWeightsFactory.ts", "../src/faceFeatureExtractor/extractorsFactory.ts", "../src/faceFeatureExtractor/extractParams.ts", "../src/common/loadConvParamsFactory.ts", "../src/faceFeatureExtractor/loadParamsFactory.ts", "../src/faceFeatureExtractor/extractParamsFromWeightMap.ts", "../src/faceFeatureExtractor/FaceFeatureExtractor.ts", "../src/common/fullyConnectedLayer.ts", "../src/faceProcessor/extractParams.ts", "../src/faceProcessor/extractParamsFromWeightMap.ts", "../src/faceProcessor/util.ts", "../src/faceProcessor/FaceProcessor.ts", "../src/faceExpressionNet/FaceExpressions.ts", "../src/faceExpressionNet/FaceExpressionNet.ts", "../src/factories/WithFaceExpressions.ts", "../src/draw/drawFaceExpressions.ts", "../src/factories/WithFaceLandmarks.ts", "../src/draw/DrawFaceLandmarks.ts", "../src/xception/extractParams.ts", "../src/xception/extractParamsFromWeightMap.ts", "../src/xception/TinyXception.ts", "../src/ageGenderNet/extractParams.ts", "../src/ageGenderNet/extractParamsFromWeightMap.ts", "../src/ageGenderNet/types.ts", "../src/ageGenderNet/AgeGenderNet.ts", "../src/faceLandmarkNet/FaceLandmark68NetBase.ts", "../src/faceLandmarkNet/FaceLandmark68Net.ts", "../src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts", "../src/faceFeatureExtractor/extractParamsTiny.ts", "../src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", "../src/faceLandmarkNet/FaceLandmark68TinyNet.ts", "../src/faceLandmarkNet/index.ts", "../src/faceRecognitionNet/scaleLayer.ts", "../src/faceRecognitionNet/convLayer.ts", "../src/faceRecognitionNet/extractParams.ts", "../src/faceRecognitionNet/extractParamsFromWeightMap.ts", "../src/faceRecognitionNet/residualLayer.ts", "../src/faceRecognitionNet/FaceRecognitionNet.ts", "../src/faceRecognitionNet/index.ts", "../src/factories/WithFaceDescriptor.ts", "../src/factories/WithAge.ts", "../src/factories/WithGender.ts", "../src/ssdMobilenetv1/extractParams.ts", "../src/ssdMobilenetv1/extractParamsFromWeightMap.ts", "../src/ssdMobilenetv1/pointwiseConvLayer.ts", "../src/ssdMobilenetv1/mobileNetV1.ts", "../src/ssdMobilenetv1/nonMaxSuppression.ts", "../src/ssdMobilenetv1/outputLayer.ts", "../src/ssdMobilenetv1/boxPredictionLayer.ts", "../src/ssdMobilenetv1/predictionLayer.ts", "../src/ssdMobilenetv1/SsdMobilenetv1Options.ts", "../src/ssdMobilenetv1/SsdMobilenetv1.ts", "../src/ssdMobilenetv1/index.ts", "../src/tinyYolov2/const.ts", "../src/tinyYolov2/config.ts", "../src/tinyYolov2/leaky.ts", "../src/tinyYolov2/convWithBatchNorm.ts", "../src/tinyYolov2/depthwiseSeparableConv.ts", "../src/tinyYolov2/extractParams.ts", "../src/tinyYolov2/extractParamsFromWeightMap.ts", "../src/tinyYolov2/TinyYolov2Options.ts", "../src/tinyYolov2/TinyYolov2Base.ts", "../src/tinyYolov2/TinyYolov2.ts", "../src/tinyYolov2/index.ts", "../src/tinyFaceDetector/TinyFaceDetectorOptions.ts", "../src/globalApi/ComposableTask.ts", "../src/globalApi/extractFacesAndComputeResults.ts", "../src/tinyFaceDetector/const.ts", "../src/tinyFaceDetector/TinyFaceDetector.ts", "../src/globalApi/nets.ts", "../src/globalApi/PredictFaceExpressionsTask.ts", "../src/globalApi/PredictAgeAndGenderTask.ts", "../src/globalApi/ComputeFaceDescriptorsTasks.ts", "../src/globalApi/DetectFaceLandmarksTasks.ts", "../src/globalApi/DetectFacesTasks.ts", "../src/globalApi/detectFaces.ts", "../src/globalApi/allFaces.ts", "../src/euclideanDistance.ts", "../src/globalApi/FaceMatcher.ts", "../src/tinyFaceDetector/index.ts", "../src/resizeResults.ts", "../src/index.ts"], + "sourcesContent": ["export function isNodejs(): boolean {\n return typeof global === 'object'\n && typeof require === 'function'\n && typeof module !== 'undefined'\n // issues with gatsby.js: module.exports is undefined\n // && !!module.exports\n && typeof process !== 'undefined' && !!process.version;\n}\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\n// Detect the global object, even if operating in strict mode.\n// http://stackoverflow.com/a/14387057/265298\nvar global = (0, eval)('this'),\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(typeof _scriptDir !== \"undefined\" && _scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){global.performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_MEMORY/65536,\"maximum\":2147483648/65536,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"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\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmTable=Module[\"asm\"][\"F\"];wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var ASM_CONSTS={8991:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! killThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in killThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cancelThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cancelThread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cleanupThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cleanupThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=tb;var headPtr=tb+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),tb+100>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],setThreadStatus:function(){},runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+56>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();var tb=_pthread_self();Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){spawnThread(e.data)}else if(cmd===\"cleanupThread\"){cleanupThread(d[\"thread\"])}else if(cmd===\"killThread\"){killThread(d[\"thread\"])}else if(cmd===\"cancelThread\"){cancelThread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"exitProcess\"){try{exit(d[\"returnCode\"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){if(ENVIRONMENT_IS_NODE)return require(\"os\").cpus().length;return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>=2;while(ch=GROWABLE_HEAP_U8()[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?GROWABLE_HEAP_F64()[buf++>>1]:GROWABLE_HEAP_I32()[buf]);++buf}return readAsmConstArgsArray}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension(\"WEBGL_multi_draw\"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(ext.indexOf(\"lose_context\")<0&&ext.indexOf(\"debug\")<0){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];var contextAttributes={\"alpha\":!!GROWABLE_HEAP_I32()[a+(0>>2)],\"depth\":!!GROWABLE_HEAP_I32()[a+(4>>2)],\"stencil\":!!GROWABLE_HEAP_I32()[a+(8>>2)],\"antialias\":!!GROWABLE_HEAP_I32()[a+(12>>2)],\"premultipliedAlpha\":!!GROWABLE_HEAP_I32()[a+(16>>2)],\"preserveDrawingBuffer\":!!GROWABLE_HEAP_I32()[a+(20>>2)],\"powerPreference\":__emscripten_webgl_power_preferences[powerPreference],\"failIfMajorPerformanceCaveat\":!!GROWABLE_HEAP_I32()[a+(28>>2)],majorVersion:GROWABLE_HEAP_I32()[a+(32>>2)],minorVersion:GROWABLE_HEAP_I32()[a+(36>>2)],enableExtensionsByDefault:GROWABLE_HEAP_I32()[a+(40>>2)],explicitSwapControl:GROWABLE_HEAP_I32()[a+(44>>2)],proxyContextToMainThread:GROWABLE_HEAP_I32()[a+(48>>2)],renderViaOffscreenBackBuffer:GROWABLE_HEAP_I32()[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.threadExitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! spawnThread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(64>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(100>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(76>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(172>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{spawnThread(threadParams)}return 0}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"x\":__emscripten_notify_thread_queue,\"b\":_abort,\"y\":_emscripten_asm_const_int,\"j\":_emscripten_conditional_set_current_thread_status,\"c\":_emscripten_futex_wait,\"d\":_emscripten_futex_wake,\"f\":_emscripten_get_now,\"p\":_emscripten_memcpy_big,\"z\":_emscripten_num_logical_cores,\"u\":_emscripten_receive_on_main_thread_js,\"q\":_emscripten_resize_heap,\"v\":_emscripten_set_canvas_element_size,\"i\":_emscripten_set_current_thread_status,\"t\":_emscripten_set_thread_name,\"w\":_emscripten_webgl_create_context,\"m\":_fd_close,\"n\":_fd_seek,\"g\":_fd_write,\"o\":initPthreadsJS,\"a\":wasmMemory||Module[\"wasmMemory\"],\"k\":_pthread_cleanup_pop,\"l\":_pthread_cleanup_push,\"h\":_pthread_create,\"s\":_sysconf};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _pthread_self=Module[\"_pthread_self\"]=function(){return(_pthread_self=Module[\"_pthread_self\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=function(){return(__emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var __emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=function(){return(__emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var __emscripten_thread_init=Module[\"__emscripten_thread_init\"]=function(){return(__emscripten_thread_init=Module[\"__emscripten_thread_init\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=function(){return(_emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module[\"__emscripten_allow_main_runtime_queued_calls\"]=9880;var __emscripten_main_thread_futex=Module[\"__emscripten_main_thread_futex\"]=11368;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){readyPromiseResolve(Module);postMessage({\"cmd\":\"loaded\"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exitProcess\",\"returnCode\":status});throw new ExitStatus(status)}else{}}if(noExitRuntime){}else{PThread.terminateAllThreads();EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run();\n\n\n return WasmBackendModuleThreadedSimd.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"g\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"m\"];removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _abort(){abort()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_size(){return HEAPU8.length}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}var asmLibraryArg={\"a\":_abort,\"d\":_emscripten_memcpy_big,\"e\":_emscripten_resize_heap,\"f\":_fd_close,\"c\":_fd_seek,\"b\":_fd_write};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"h\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"i\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"j\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"k\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"l\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"n\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"o\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"p\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"q\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"r\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"s\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"t\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"u\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"v\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"w\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"x\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"y\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"z\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};Module[\"cwrap\"]=cwrap;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n return WasmBackendModule.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:Module[\"_pthread_self\"]()})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance;moduleLoaded()})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;Module[\"__emscripten_thread_init\"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){if(ex instanceof Module[\"ExitStatus\"]){if(Module[\"getNoExitRuntime\"]()){}else{Module[\"PThread\"].threadExit(ex.status)}}else{Module[\"PThread\"].threadExit(-2);throw ex}}}}else if(e.data.cmd===\"cancel\"){if(Module[\"_pthread_self\"]()){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(Module[\"_pthread_self\"]()){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, "export * from './drawContour';\nexport * from './drawDetections';\nexport * from './drawFaceExpressions';\nexport * from './DrawBox';\nexport * from './DrawFaceLandmarks';\nexport * from './DrawTextField';\n", "import { Point } from '../classes/index';\n\nexport function drawContour(\n ctx: CanvasRenderingContext2D,\n points: Point[],\n isClosed: boolean = false,\n) {\n ctx.beginPath();\n\n points.slice(1).forEach(({ x, y }, prevIdx) => {\n const from = points[prevIdx];\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(x, y);\n });\n\n if (isClosed) {\n const from = points[points.length - 1];\n const to = points[0];\n if (!from || !to) {\n return;\n }\n\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(to.x, to.y);\n }\n\n ctx.stroke();\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Point } from '../classes/index';\nimport { Dimensions, IDimensions } from '../classes/Dimensions';\n\nexport function isTensor(tensor: any, dim: number) {\n return tensor instanceof tf.Tensor && tensor.shape.length === dim;\n}\n\nexport function isTensor1D(tensor: any): tensor is tf.Tensor1D {\n return isTensor(tensor, 1);\n}\n\nexport function isTensor2D(tensor: any): tensor is tf.Tensor2D {\n return isTensor(tensor, 2);\n}\n\nexport function isTensor3D(tensor: any): tensor is tf.Tensor3D {\n return isTensor(tensor, 3);\n}\n\nexport function isTensor4D(tensor: any): tensor is tf.Tensor4D {\n return isTensor(tensor, 4);\n}\n\nexport function isFloat(num: number) {\n return num % 1 !== 0;\n}\n\nexport function isEven(num: number) {\n return num % 2 === 0;\n}\n\nexport function round(num: number, prec: number = 2) {\n const f = 10 ** prec;\n return Math.floor(num * f) / f;\n}\n\nexport function isDimensions(obj: any): boolean {\n return obj && obj.width && obj.height;\n}\n\nexport function computeReshapedDimensions({ width, height }: IDimensions, inputSize: number) {\n const scale = inputSize / Math.max(height, width);\n return new Dimensions(Math.round(width * scale), Math.round(height * scale));\n}\n\nexport function getCenterPoint(pts: Point[]): Point {\n return pts.reduce((sum, pt) => sum.add(pt), new Point(0, 0))\n .div(new Point(pts.length, pts.length));\n}\n\nexport function range(num: number, start: number, step: number): number[] {\n return Array(num).fill(0).map((_, i) => start + (i * step));\n}\n\nexport function isValidNumber(num: any) {\n return !!num && (num !== Infinity) && (num !== -Infinity) && !Number.isNaN(num) || num === 0;\n}\n\nexport function isValidProbablitiy(num: any) {\n return isValidNumber(num) && num >= 0 && num <= 1.0;\n}\n", "import { isValidNumber } from '../utils/index';\n\nexport interface IDimensions {\n width: number\n height: number\n}\n\nexport class Dimensions implements IDimensions {\n private _width: number\n\n private _height: number\n\n constructor(width: number, height: number) {\n if (!isValidNumber(width) || !isValidNumber(height)) {\n throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({ width, height })}`);\n }\n\n this._width = width;\n this._height = height;\n }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public reverse(): Dimensions {\n return new Dimensions(1 / this.width, 1 / this.height);\n }\n}\n", "export interface IPoint {\n x: number\n y: number\n}\n\nexport class Point implements IPoint {\n private _x: number\n\n private _y: number\n\n constructor(x: number, y: number) {\n this._x = x;\n this._y = y;\n }\n\n get x(): number { return this._x; }\n\n get y(): number { return this._y; }\n\n public add(pt: IPoint): Point {\n return new Point(this.x + pt.x, this.y + pt.y);\n }\n\n public sub(pt: IPoint): Point {\n return new Point(this.x - pt.x, this.y - pt.y);\n }\n\n public mul(pt: IPoint): Point {\n return new Point(this.x * pt.x, this.y * pt.y);\n }\n\n public div(pt: IPoint): Point {\n return new Point(this.x / pt.x, this.y / pt.y);\n }\n\n public abs(): Point {\n return new Point(Math.abs(this.x), Math.abs(this.y));\n }\n\n public magnitude(): number {\n return Math.sqrt((this.x ** 2) + (this.y ** 2));\n }\n\n public floor(): Point {\n return new Point(Math.floor(this.x), Math.floor(this.y));\n }\n}\n", "import { isDimensions, isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { IDimensions } from './Dimensions';\nimport { Point } from './Point';\nimport { IRect } from './Rect';\n\nexport class Box implements IBoundingBox, IRect {\n public static isRect(rect: any): boolean {\n return !!rect && [rect.x, rect.y, rect.width, rect.height].every(isValidNumber);\n }\n\n public static assertIsValidBox(box: any, callee: string, allowNegativeDimensions: boolean = false) {\n if (!Box.isRect(box)) {\n throw new Error(`${callee} - invalid box: ${JSON.stringify(box)}, expected object with properties x, y, width, height`);\n }\n\n if (!allowNegativeDimensions && (box.width < 0 || box.height < 0)) {\n throw new Error(`${callee} - width (${box.width}) and height (${box.height}) must be positive numbers`);\n }\n }\n\n private _x: number\n\n private _y: number\n\n private _width: number\n\n private _height: number\n\n constructor(_box: IBoundingBox | IRect, allowNegativeDimensions: boolean = true) {\n const box = (_box || {}) as any;\n\n const isBbox = [box.left, box.top, box.right, box.bottom].every(isValidNumber);\n const isRect = [box.x, box.y, box.width, box.height].every(isValidNumber);\n\n if (!isRect && !isBbox) {\n throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(box)}`);\n }\n\n const [x, y, width, height] = isRect\n ? [box.x, box.y, box.width, box.height]\n : [box.left, box.top, box.right - box.left, box.bottom - box.top];\n\n Box.assertIsValidBox({\n x, y, width, height,\n }, 'Box.constructor', allowNegativeDimensions);\n\n this._x = x;\n this._y = y;\n this._width = width;\n this._height = height;\n }\n\n public get x(): number { return this._x; }\n\n public get y(): number { return this._y; }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public get left(): number { return this.x; }\n\n public get top(): number { return this.y; }\n\n public get right(): number { return this.x + this.width; }\n\n public get bottom(): number { return this.y + this.height; }\n\n public get area(): number { return this.width * this.height; }\n\n public get topLeft(): Point { return new Point(this.left, this.top); }\n\n public get topRight(): Point { return new Point(this.right, this.top); }\n\n public get bottomLeft(): Point { return new Point(this.left, this.bottom); }\n\n public get bottomRight(): Point { return new Point(this.right, this.bottom); }\n\n public round(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.round(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public floor(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.floor(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public toSquare(): Box {\n let {\n x, y, width, height,\n } = this;\n const diff = Math.abs(width - height);\n if (width < height) {\n x -= (diff / 2);\n width += diff;\n }\n if (height < width) {\n y -= (diff / 2);\n height += diff;\n }\n\n return new Box({\n x, y, width, height,\n });\n }\n\n public rescale(s: IDimensions | number): Box {\n const scaleX = isDimensions(s) ? (s as IDimensions).width : s as number;\n const scaleY = isDimensions(s) ? (s as IDimensions).height : s as number;\n return new Box({\n x: this.x * scaleX,\n y: this.y * scaleY,\n width: this.width * scaleX,\n height: this.height * scaleY,\n });\n }\n\n public pad(padX: number, padY: number): Box {\n const [x, y, width, height] = [\n this.x - (padX / 2),\n this.y - (padY / 2),\n this.width + padX,\n this.height + padY,\n ];\n return new Box({\n x, y, width, height,\n });\n }\n\n public clipAtImageBorders(imgWidth: number, imgHeight: number): Box {\n const {\n x, y, right, bottom,\n } = this;\n const clippedX = Math.max(x, 0);\n const clippedY = Math.max(y, 0);\n\n const newWidth = right - clippedX;\n const newHeight = bottom - clippedY;\n const clippedWidth = Math.min(newWidth, imgWidth - clippedX);\n const clippedHeight = Math.min(newHeight, imgHeight - clippedY);\n\n return (new Box({\n x: clippedX, y: clippedY, width: clippedWidth, height: clippedHeight,\n })).floor();\n }\n\n public shift(sx: number, sy: number): Box {\n const { width, height } = this;\n const x = this.x + sx;\n const y = this.y + sy;\n\n return new Box({\n x, y, width, height,\n });\n }\n\n public padAtBorders(imageHeight: number, imageWidth: number) {\n const w = this.width + 1;\n const h = this.height + 1;\n\n const dx = 1;\n const dy = 1;\n let edx = w;\n let edy = h;\n\n let x = this.left;\n let y = this.top;\n let ex = this.right;\n let ey = this.bottom;\n\n if (ex > imageWidth) {\n edx = -ex + imageWidth + w;\n ex = imageWidth;\n }\n if (ey > imageHeight) {\n edy = -ey + imageHeight + h;\n ey = imageHeight;\n }\n if (x < 1) {\n edy = 2 - x;\n x = 1;\n }\n if (y < 1) {\n edy = 2 - y;\n y = 1;\n }\n\n return {\n dy, edy, dx, edx, y, ey, x, ex, w, h,\n };\n }\n\n public calibrate(region: Box) {\n return new Box({\n left: this.left + (region.left * this.width),\n top: this.top + (region.top * this.height),\n right: this.right + (region.right * this.width),\n bottom: this.bottom + (region.bottom * this.height),\n }).toSquare().round();\n }\n}\n", "import { Box } from './Box';\n\nexport interface IBoundingBox {\n left: number\n top: number\n right: number\n bottom: number\n}\n\nexport class BoundingBox extends Box implements IBoundingBox {\n constructor(left: number, top: number, right: number, bottom: number, allowNegativeDimensions: boolean = false) {\n super({\n left, top, right, bottom,\n }, allowNegativeDimensions);\n }\n}\n", "import { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { IRect, Rect } from './Rect';\n\nexport class ObjectDetection {\n private _score: number\n\n private _classScore: number\n\n private _className: string\n\n private _box: Rect\n\n private _imageDims: Dimensions\n\n constructor(\n score: number,\n classScore: number,\n className: string,\n relativeBox: IRect,\n imageDims: IDimensions,\n ) {\n this._imageDims = new Dimensions(imageDims.width, imageDims.height);\n this._score = score;\n this._classScore = classScore;\n this._className = className;\n this._box = new Box(relativeBox).rescale(this._imageDims);\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n\n public get className(): string { return this._className; }\n\n public get box(): Box { return this._box; }\n\n public get imageDims(): Dimensions { return this._imageDims; }\n\n public get imageWidth(): number { return this.imageDims.width; }\n\n public get imageHeight(): number { return this.imageDims.height; }\n\n public get relativeBox(): Box { return new Box(this._box).rescale(this.imageDims.reverse()); }\n\n public forSize(width: number, height: number): ObjectDetection {\n return new ObjectDetection(\n this.score,\n this.classScore,\n this.className,\n this.relativeBox,\n { width, height },\n );\n }\n}\n", "import { Box } from './Box';\nimport { IDimensions } from './Dimensions';\nimport { ObjectDetection } from './ObjectDetection';\nimport { Rect } from './Rect';\n\nexport interface IFaceDetecion {\n score: number\n box: Box\n}\n\nexport class FaceDetection extends ObjectDetection implements IFaceDetecion {\n constructor(\n score: number,\n relativeBox: Rect,\n imageDims: IDimensions,\n ) {\n super(score, score, '', relativeBox, imageDims);\n }\n\n public forSize(width: number, height: number): FaceDetection {\n const { score, relativeBox, imageDims } = super.forSize(width, height);\n return new FaceDetection(score, relativeBox, imageDims);\n }\n}\n", "import { Box } from '../classes/Box';\n\nexport function iou(box1: Box, box2: Box, isIOU: boolean = true) {\n const width = Math.max(0.0, Math.min(box1.right, box2.right) - Math.max(box1.left, box2.left));\n const height = Math.max(0.0, Math.min(box1.bottom, box2.bottom) - Math.max(box1.top, box2.top));\n const interSection = width * height;\n\n return isIOU\n ? interSection / (box1.area + box2.area - interSection)\n : interSection / Math.min(box1.area, box2.area);\n}\n", "import { BoundingBox, IPoint } from '../classes/index';\n\nexport function minBbox(pts: IPoint[]): BoundingBox {\n const xs = pts.map((pt) => pt.x);\n const ys = pts.map((pt) => pt.y);\n const minX = xs.reduce((min, x) => (x < min ? x : min), Infinity);\n const minY = ys.reduce((min, y) => (y < min ? y : min), Infinity);\n const maxX = xs.reduce((max, x) => (max < x ? x : max), 0);\n const maxY = ys.reduce((max, y) => (max < y ? y : max), 0);\n\n return new BoundingBox(minX, minY, maxX, maxY);\n}\n", "import { Box } from '../classes/Box';\nimport { iou } from './iou';\n\nexport function nonMaxSuppression(\n boxes: Box[],\n scores: number[],\n iouThreshold: number,\n isIOU: boolean = true,\n): number[] {\n let indicesSortedByScore = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .sort((c1, c2) => c1.score - c2.score)\n .map((c) => c.boxIndex);\n\n const pick: number[] = [];\n\n while (indicesSortedByScore.length > 0) {\n const curr = indicesSortedByScore.pop() as number;\n pick.push(curr);\n\n const indices = indicesSortedByScore;\n\n const outputs: number[] = [];\n for (let i = 0; i < indices.length; i++) {\n const idx = indices[i];\n\n const currBox = boxes[curr];\n const idxBox = boxes[idx];\n\n outputs.push(iou(currBox, idxBox, isIOU));\n }\n\n indicesSortedByScore = indicesSortedByScore.filter(\n (_, j) => outputs[j] <= iouThreshold,\n );\n }\n\n return pick;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function normalize(x: tf.Tensor4D, meanRgb: number[]): tf.Tensor4D {\n return tf.tidy(() => {\n const [r, g, b] = meanRgb;\n const avg_r = tf.fill([...x.shape.slice(0, 3), 1], r, 'float32');\n const avg_g = tf.fill([...x.shape.slice(0, 3), 1], g, 'float32');\n const avg_b = tf.fill([...x.shape.slice(0, 3), 1], b, 'float32');\n const avg_rgb = tf.concat([avg_r, avg_g, avg_b], 3);\n\n return tf.sub(x, avg_rgb);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n/**\n * Pads the smaller dimension of an image tensor with zeros, such that width === height.\n *\n * @param imgTensor The image tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The padded tensor with width === height.\n */\nexport function padToSquare(\n imgTensor: tf.Tensor4D,\n isCenterImage: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const [height, width] = imgTensor.shape.slice(1);\n if (height === width) {\n return imgTensor;\n }\n\n const dimDiff = Math.abs(height - width);\n const paddingAmount = Math.round(dimDiff * (isCenterImage ? 0.5 : 1));\n const paddingAxis = height > width ? 2 : 1;\n\n const createPaddingTensor = (paddingAmountLocal: number): tf.Tensor => {\n const paddingTensorShape = imgTensor.shape.slice();\n paddingTensorShape[paddingAxis] = paddingAmountLocal;\n return tf.fill(paddingTensorShape, 0, 'float32');\n };\n\n const paddingTensorAppend = createPaddingTensor(paddingAmount);\n const remainingPaddingAmount = dimDiff - (paddingTensorAppend.shape[paddingAxis] as number);\n\n const paddingTensorPrepend = isCenterImage && remainingPaddingAmount\n ? createPaddingTensor(remainingPaddingAmount)\n : null;\n\n const tensorsToStack = [\n paddingTensorPrepend,\n imgTensor,\n paddingTensorAppend,\n ]\n .filter((t) => !!t)\n // .map((t: tf.Tensor) => t.toFloat()) as tf.Tensor4D[]\n .map((t: tf.Tensor) => tf.cast(t, 'float32')) as tf.Tensor4D[];\n return tf.concat(tensorsToStack, paddingAxis);\n });\n}\n", "export function shuffleArray(inputArray: any[]) {\n const array = inputArray.slice();\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const x = array[i];\n array[i] = array[j];\n array[j] = x;\n }\n return array;\n}\n", "export * from './iou';\nexport * from './minBbox';\nexport * from './nonMaxSuppression';\nexport * from './normalize';\nexport * from './padToSquare';\nexport * from './shuffleArray';\n\nexport function sigmoid(x: number) {\n return 1 / (1 + Math.exp(-x));\n}\n\nexport function inverseSigmoid(x: number) {\n return Math.log(x / (1 - x));\n}\n", "import { Box } from './Box';\n\nexport interface IRect {\n x: number\n y: number\n width: number\n height: number\n}\n\nexport class Rect extends Box implements IRect {\n constructor(x: number, y: number, width: number, height: number, allowNegativeDimensions: boolean = false) {\n super({\n x, y, width, height,\n }, allowNegativeDimensions);\n }\n}\n", "import { minBbox } from '../ops/index';\nimport { getCenterPoint } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { FaceDetection } from './FaceDetection';\nimport { Point } from './Point';\nimport { IRect, Rect } from './Rect';\n\n// face alignment constants\nconst relX = 0.5;\nconst relY = 0.43;\nconst relScale = 0.45;\n\nexport interface IFaceLandmarks {\n positions: Point[]\n shift: Point\n}\n\nexport class FaceLandmarks implements IFaceLandmarks {\n protected _shift: Point\n\n protected _positions: Point[]\n\n protected _imgDims: Dimensions\n\n constructor(\n relativeFaceLandmarkPositions: Point[],\n imgDims: IDimensions,\n shift: Point = new Point(0, 0),\n ) {\n const { width, height } = imgDims;\n this._imgDims = new Dimensions(width, height);\n this._shift = shift;\n this._positions = relativeFaceLandmarkPositions.map(\n (pt) => pt.mul(new Point(width, height)).add(shift),\n );\n }\n\n public get shift(): Point { return new Point(this._shift.x, this._shift.y); }\n\n public get imageWidth(): number { return this._imgDims.width; }\n\n public get imageHeight(): number { return this._imgDims.height; }\n\n public get positions(): Point[] { return this._positions; }\n\n public get relativePositions(): Point[] {\n return this._positions.map(\n (pt) => pt.sub(this._shift).div(new Point(this.imageWidth, this.imageHeight)),\n );\n }\n\n public forSize(width: number, height: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n { width, height },\n );\n }\n\n public shiftBy(x: number, y: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n this._imgDims,\n new Point(x, y),\n );\n }\n\n public shiftByPoint(pt: Point): T {\n return this.shiftBy(pt.x, pt.y);\n }\n\n /**\n * Aligns the face landmarks after face detection from the relative positions of the faces\n * bounding box, or it's current shift. This function should be used to align the face images\n * after face detection has been performed, before they are passed to the face recognition net.\n * This will make the computed face descriptor more accurate.\n *\n * @param detection (optional) The bounding box of the face or the face detection result. If\n * no argument was passed the position of the face landmarks are assumed to be relative to\n * it's current shift.\n * @returns The bounding box of the aligned face.\n */\n public align(\n detection?: FaceDetection | IRect | IBoundingBox | null,\n options: { useDlibAlignment?: boolean, minBoxPadding?: number } = { },\n ): Box {\n if (detection) {\n const box = detection instanceof FaceDetection\n ? detection.box.floor()\n : new Box(detection);\n\n return this.shiftBy(box.x, box.y).align(null, options);\n }\n\n const { useDlibAlignment, minBoxPadding } = { useDlibAlignment: false, minBoxPadding: 0.2, ...options };\n\n if (useDlibAlignment) {\n return this.alignDlib();\n }\n\n return this.alignMinBbox(minBoxPadding);\n }\n\n private alignDlib(): Box {\n const centers = this.getRefPointsForAlignment();\n\n const [leftEyeCenter, rightEyeCenter, mouthCenter] = centers;\n const distToMouth = (pt: Point) => mouthCenter.sub(pt).magnitude();\n const eyeToMouthDist = (distToMouth(leftEyeCenter) + distToMouth(rightEyeCenter)) / 2;\n\n const size = Math.floor(eyeToMouthDist / relScale);\n\n const refPoint = getCenterPoint(centers);\n // TODO: pad in case rectangle is out of image bounds\n const x = Math.floor(Math.max(0, refPoint.x - (relX * size)));\n const y = Math.floor(Math.max(0, refPoint.y - (relY * size)));\n\n return new Rect(x, y, Math.min(size, this.imageWidth + x), Math.min(size, this.imageHeight + y));\n }\n\n private alignMinBbox(padding: number): Box {\n const box = minBbox(this.positions);\n return box.pad(box.width * padding, box.height * padding);\n }\n\n protected getRefPointsForAlignment(): Point[] {\n throw new Error('getRefPointsForAlignment not implemented by base class');\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks5 extends FaceLandmarks {\n protected getRefPointsForAlignment(): Point[] {\n const pts = this.positions;\n return [\n pts[0],\n pts[1],\n getCenterPoint([pts[3], pts[4]]),\n ];\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks68 extends FaceLandmarks {\n public getJawOutline(): Point[] {\n return this.positions.slice(0, 17);\n }\n\n public getLeftEyeBrow(): Point[] {\n return this.positions.slice(17, 22);\n }\n\n public getRightEyeBrow(): Point[] {\n return this.positions.slice(22, 27);\n }\n\n public getNose(): Point[] {\n return this.positions.slice(27, 36);\n }\n\n public getLeftEye(): Point[] {\n return this.positions.slice(36, 42);\n }\n\n public getRightEye(): Point[] {\n return this.positions.slice(42, 48);\n }\n\n public getMouth(): Point[] {\n return this.positions.slice(48, 68);\n }\n\n protected getRefPointsForAlignment(): Point[] {\n return [\n this.getLeftEye(),\n this.getRightEye(),\n this.getMouth(),\n ].map(getCenterPoint);\n }\n}\n", "import { round } from '../utils/index';\n\nexport interface IFaceMatch {\n label: string\n distance: number\n}\n\nexport class FaceMatch implements IFaceMatch {\n private _label: string\n\n private _distance: number\n\n constructor(label: string, distance: number) {\n this._label = label;\n this._distance = distance;\n }\n\n public get label(): string { return this._label; }\n\n public get distance(): number { return this._distance; }\n\n public toString(withDistance: boolean = true): string {\n return `${this.label}${withDistance ? ` (${round(this.distance)})` : ''}`;\n }\n}\n", "import { isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { IRect } from './Rect';\n\nexport class LabeledBox extends Box {\n public static assertIsValidLabeledBox(box: any, callee: string) {\n Box.assertIsValidBox(box, callee);\n\n if (!isValidNumber(box.label)) {\n throw new Error(`${callee} - expected property label (${box.label}) to be a number`);\n }\n }\n\n private _label: number\n\n constructor(box: IBoundingBox | IRect | any, label: number) {\n super(box);\n this._label = label;\n }\n\n public get label(): number { return this._label; }\n}\n", "export class LabeledFaceDescriptors {\n private _label: string\n\n private _descriptors: Float32Array[]\n\n constructor(label: string, descriptors: Float32Array[]) {\n if (!(typeof label === 'string')) {\n throw new Error('LabeledFaceDescriptors - constructor expected label to be a string');\n }\n\n if (!Array.isArray(descriptors) || descriptors.some((desc) => !(desc instanceof Float32Array))) {\n throw new Error('LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array');\n }\n\n this._label = label;\n this._descriptors = descriptors;\n }\n\n public get label(): string { return this._label; }\n\n public get descriptors(): Float32Array[] { return this._descriptors; }\n\n public toJSON(): any {\n return {\n label: this.label,\n descriptors: this.descriptors.map((d) => Array.from(d)),\n };\n }\n\n public static fromJSON(json: any): LabeledFaceDescriptors {\n const descriptors = json.descriptors.map((d: any) => new Float32Array(d));\n return new LabeledFaceDescriptors(json.label, descriptors);\n }\n}\n", "import { isValidProbablitiy } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { LabeledBox } from './LabeledBox';\nimport { IRect } from './Rect';\n\nexport class PredictedBox extends LabeledBox {\n public static assertIsValidPredictedBox(box: any, callee: string) {\n LabeledBox.assertIsValidLabeledBox(box, callee);\n\n if (\n !isValidProbablitiy(box.score)\n || !isValidProbablitiy(box.classScore)\n ) {\n throw new Error(`${callee} - expected properties score (${box.score}) and (${box.classScore}) to be a number between [0, 1]`);\n }\n }\n\n private _score: number\n\n private _classScore: number\n\n constructor(box: IBoundingBox | IRect | any, label: number, score: number, classScore: number) {\n super(box, label);\n this._score = score;\n this._classScore = classScore;\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\n\nexport type WithFaceDetection = TSource & {\n detection: FaceDetection\n}\n\nexport function isWithFaceDetection(obj: any): obj is WithFaceDetection<{}> {\n return obj.detection instanceof FaceDetection;\n}\n\nexport function extendWithFaceDetection<\n TSource\n>(\n sourceObj: TSource,\n detection: FaceDetection,\n): WithFaceDetection {\n const extension = { detection };\n return { ...sourceObj, ...extension };\n}\n", "import { Environment } from './types';\n\nexport function createBrowserEnv(): Environment {\n const fetch = window.fetch;\n if (!fetch) throw new Error('fetch - missing fetch implementation for browser environment');\n\n const readFile = () => {\n throw new Error('readFile - filesystem not available for browser environment');\n };\n\n return {\n Canvas: HTMLCanvasElement,\n CanvasRenderingContext2D,\n Image: HTMLImageElement,\n ImageData,\n Video: HTMLVideoElement,\n createCanvasElement: () => document.createElement('canvas'),\n createImageElement: () => document.createElement('img'),\n fetch,\n readFile,\n };\n}\n", "import { FileSystem } from './types';\n\nexport function createFileSystem(fs?: any): FileSystem {\n let requireFsError = '';\n\n if (!fs) {\n try {\n // eslint-disable-next-line global-require\n fs = require('fs');\n } catch (err) {\n requireFsError = err.toString();\n }\n }\n\n const readFile = fs\n ? (filePath: string) => new Promise((resolve, reject) => {\n fs.readFile(filePath, (err: any, buffer: Buffer) => (err ? reject(err) : resolve(buffer)));\n })\n : () => {\n throw new Error(`readFile - failed to require fs in nodejs environment with error: ${requireFsError}`);\n };\n\n return {\n readFile,\n };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { createFileSystem } from './createFileSystem';\nimport { Environment } from './types';\n\nexport function createNodejsEnv(): Environment {\n // eslint-disable-next-line dot-notation\n const Canvas = global['Canvas'] || global.HTMLCanvasElement;\n const Image = global.Image || global.HTMLImageElement;\n\n const createCanvasElement = () => {\n if (Canvas) return new Canvas();\n throw new Error('createCanvasElement - missing Canvas implementation for nodejs environment');\n };\n\n const createImageElement = () => {\n if (Image) return new Image();\n throw new Error('createImageElement - missing Image implementation for nodejs environment');\n };\n\n const fetch = global.fetch;\n // if (!fetch) throw new Error('fetch - missing fetch implementation for nodejs environment');\n\n const fileSystem = createFileSystem();\n\n return {\n Canvas: Canvas || class {},\n CanvasRenderingContext2D: global.CanvasRenderingContext2D || class {},\n Image: Image || class {},\n ImageData: global.ImageData || class {},\n Video: global.HTMLVideoElement || class {},\n createCanvasElement,\n createImageElement,\n fetch,\n ...fileSystem,\n };\n}\n", "export function isBrowser(): boolean {\n return typeof window === 'object'\n && typeof document !== 'undefined'\n && typeof HTMLImageElement !== 'undefined'\n && typeof HTMLCanvasElement !== 'undefined'\n && typeof HTMLVideoElement !== 'undefined'\n && typeof ImageData !== 'undefined'\n && typeof CanvasRenderingContext2D !== 'undefined';\n}\n", "import { createBrowserEnv } from './createBrowserEnv';\nimport { createFileSystem } from './createFileSystem';\nimport { createNodejsEnv } from './createNodejsEnv';\nimport { isBrowser } from './isBrowser';\nimport { isNodejs } from './isNodejs';\nimport { Environment } from './types';\n\nlet environment: Environment | null;\n\nfunction getEnv(): Environment {\n if (!environment) {\n throw new Error('getEnv - environment is not defined, check isNodejs() and isBrowser()');\n }\n return environment;\n}\n\nfunction setEnv(env: Environment) {\n environment = env;\n}\n\nfunction initialize() {\n // check for isBrowser() first to prevent electron renderer process\n // to be initialized with wrong environment due to isNodejs() returning true\n if (isBrowser()) return setEnv(createBrowserEnv());\n if (isNodejs()) return setEnv(createNodejsEnv());\n return null;\n}\n\nfunction monkeyPatch(env: Partial) {\n if (!environment) {\n initialize();\n }\n\n if (!environment) {\n throw new Error('monkeyPatch - environment is not defined, check isNodejs() and isBrowser()');\n }\n\n const { Canvas = environment.Canvas, Image = environment.Image } = env;\n environment.Canvas = Canvas;\n environment.Image = Image;\n environment.createCanvasElement = env.createCanvasElement || (() => new Canvas());\n environment.createImageElement = env.createImageElement || (() => new Image());\n\n environment.ImageData = env.ImageData || environment.ImageData;\n environment.Video = env.Video || environment.Video;\n environment.fetch = env.fetch || environment.fetch;\n environment.readFile = env.readFile || environment.readFile;\n}\n\nexport const env = {\n getEnv,\n setEnv,\n initialize,\n createBrowserEnv,\n createFileSystem,\n createNodejsEnv,\n monkeyPatch,\n isBrowser,\n isNodejs,\n};\n\ninitialize();\n\nexport * from './types';\n", "import { env } from '../env/index';\n\nexport function resolveInput(arg: string | any) {\n if (!env.isNodejs() && typeof arg === 'string') {\n return document.getElementById(arg);\n }\n return arg;\n}\n", "import { env } from '../env/index';\nimport { resolveInput } from './resolveInput';\n\nexport function getContext2dOrThrow(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D): CanvasRenderingContext2D {\n const { Canvas, CanvasRenderingContext2D } = env.getEnv();\n\n if (canvasArg instanceof CanvasRenderingContext2D) {\n return canvasArg;\n }\n\n const canvas = resolveInput(canvasArg);\n\n if (!(canvas instanceof Canvas)) {\n throw new Error('resolveContext2d - expected canvas to be of instance of Canvas');\n }\n\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n throw new Error('resolveContext2d - canvas 2d context is null');\n }\n\n return ctx;\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IDimensions, IPoint } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { resolveInput } from '../dom/resolveInput';\n\n// eslint-disable-next-line no-shadow\nexport enum AnchorPosition {\n // eslint-disable-next-line no-unused-vars\n TOP_LEFT = 'TOP_LEFT',\n // eslint-disable-next-line no-unused-vars\n TOP_RIGHT = 'TOP_RIGHT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_LEFT = 'BOTTOM_LEFT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_RIGHT = 'BOTTOM_RIGHT'\n}\n\nexport interface IDrawTextFieldOptions {\n anchorPosition?: AnchorPosition\n backgroundColor?: string\n fontColor?: string\n fontSize?: number\n fontStyle?: string\n padding?: number\n}\n\nexport class DrawTextFieldOptions implements IDrawTextFieldOptions {\n public anchorPosition: AnchorPosition\n\n public backgroundColor: string\n\n public fontColor: string\n\n public fontSize: number\n\n public fontStyle: string\n\n public padding: number\n\n constructor(options: IDrawTextFieldOptions = {}) {\n const {\n anchorPosition, backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = options;\n this.anchorPosition = anchorPosition || AnchorPosition.TOP_LEFT;\n this.backgroundColor = backgroundColor || 'rgba(0, 0, 0, 0.5)';\n this.fontColor = fontColor || 'rgba(255, 255, 255, 1)';\n this.fontSize = fontSize || 14;\n this.fontStyle = fontStyle || 'Georgia';\n this.padding = padding || 4;\n }\n}\n\nexport class DrawTextField {\n public text: string[]\n\n public anchor : IPoint\n\n public options: DrawTextFieldOptions\n\n constructor(\n text: string | string[] | DrawTextField,\n anchor: IPoint,\n options: IDrawTextFieldOptions = {},\n ) {\n // eslint-disable-next-line no-nested-ternary\n this.text = typeof text === 'string'\n ? [text]\n : (text instanceof DrawTextField ? text.text : text);\n this.anchor = anchor;\n this.options = new DrawTextFieldOptions(options);\n }\n\n measureWidth(ctx: CanvasRenderingContext2D): number {\n const { padding } = this.options;\n return this.text.map((l) => ctx.measureText(l).width).reduce((w0, w1) => (w0 < w1 ? w1 : w0), 0) + (2 * padding);\n }\n\n measureHeight(): number {\n const { fontSize, padding } = this.options;\n return this.text.length * fontSize + (2 * padding);\n }\n\n getUpperLeft(ctx: CanvasRenderingContext2D, canvasDims?: IDimensions): IPoint {\n const { anchorPosition } = this.options;\n const isShiftLeft = anchorPosition === AnchorPosition.BOTTOM_RIGHT || anchorPosition === AnchorPosition.TOP_RIGHT;\n const isShiftTop = anchorPosition === AnchorPosition.BOTTOM_LEFT || anchorPosition === AnchorPosition.BOTTOM_RIGHT;\n\n const textFieldWidth = this.measureWidth(ctx);\n const textFieldHeight = this.measureHeight();\n const x = (isShiftLeft ? this.anchor.x - textFieldWidth : this.anchor.x);\n const y = isShiftTop ? this.anchor.y - textFieldHeight : this.anchor.y;\n\n // adjust anchor if text box exceeds canvas borders\n if (canvasDims) {\n const { width, height } = canvasDims;\n const newX = Math.max(Math.min(x, width - textFieldWidth), 0);\n const newY = Math.max(Math.min(y, height - textFieldHeight), 0);\n return { x: newX, y: newY };\n }\n return { x, y };\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const canvas = resolveInput(canvasArg);\n const ctx = getContext2dOrThrow(canvas);\n\n const {\n backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = this.options;\n\n ctx.font = `${fontSize}px ${fontStyle}`;\n const maxTextWidth = this.measureWidth(ctx);\n const textHeight = this.measureHeight();\n\n ctx.fillStyle = backgroundColor;\n const upperLeft = this.getUpperLeft(ctx, canvas);\n ctx.fillRect(upperLeft.x, upperLeft.y, maxTextWidth, textHeight);\n\n ctx.fillStyle = fontColor;\n this.text.forEach((textLine, i) => {\n const x = padding + upperLeft.x;\n const y = padding + upperLeft.y + ((i + 1) * fontSize);\n ctx.fillText(textLine, x, y);\n });\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { Box, IBoundingBox, IRect } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport {\n AnchorPosition, DrawTextField, DrawTextFieldOptions, IDrawTextFieldOptions,\n} from './DrawTextField';\n\nexport interface IDrawBoxOptions {\n boxColor?: string\n lineWidth?: number\n drawLabelOptions?: IDrawTextFieldOptions\n label?: string\n}\n\nexport class DrawBoxOptions {\n public boxColor: string\n\n public lineWidth: number\n\n public drawLabelOptions: DrawTextFieldOptions\n\n public label?: string\n\n constructor(options: IDrawBoxOptions = {}) {\n const {\n boxColor, lineWidth, label, drawLabelOptions,\n } = options;\n this.boxColor = boxColor || 'rgba(0, 0, 255, 1)';\n this.lineWidth = lineWidth || 2;\n this.label = label;\n\n const defaultDrawLabelOptions = {\n anchorPosition: AnchorPosition.BOTTOM_LEFT,\n backgroundColor: this.boxColor,\n };\n this.drawLabelOptions = new DrawTextFieldOptions({ ...defaultDrawLabelOptions, ...drawLabelOptions });\n }\n}\n\nexport class DrawBox {\n public box: Box\n\n public options: DrawBoxOptions\n\n constructor(\n box: IBoundingBox | IRect,\n options: IDrawBoxOptions = {},\n ) {\n this.box = new Box(box);\n this.options = new DrawBoxOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const { boxColor, lineWidth } = this.options;\n\n const {\n x, y, width, height,\n } = this.box;\n ctx.strokeStyle = boxColor;\n ctx.lineWidth = lineWidth;\n ctx.strokeRect(x, y, width, height);\n\n const { label } = this.options;\n if (label) {\n new DrawTextField([label], { x: x - (lineWidth / 2), y }, this.options.drawLabelOptions).draw(canvasArg);\n }\n }\n}\n", "import { Box, IBoundingBox, IRect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { round } from '../utils/index';\nimport { DrawBox } from './DrawBox';\n\nexport type TDrawDetectionsInput = IRect | IBoundingBox | FaceDetection | WithFaceDetection<{}>\n\nexport function drawDetections(\n canvasArg: string | HTMLCanvasElement,\n detections: TDrawDetectionsInput | Array,\n) {\n const detectionsArray = Array.isArray(detections) ? detections : [detections];\n\n detectionsArray.forEach((det) => {\n // eslint-disable-next-line no-nested-ternary\n const score = det instanceof FaceDetection\n ? det.score\n : (isWithFaceDetection(det) ? det.detection.score : undefined);\n\n // eslint-disable-next-line no-nested-ternary\n const box = det instanceof FaceDetection\n ? det.box\n : (isWithFaceDetection(det) ? det.detection.box : new Box(det));\n\n const label = score ? `${round(score)}` : undefined;\n new DrawBox(box, { label }).draw(canvasArg);\n });\n}\n", "import { env } from '../env/index';\n\nexport function isMediaLoaded(media: HTMLImageElement | HTMLVideoElement) : boolean {\n const { Image, Video } = env.getEnv();\n\n return (media instanceof Image && media.complete)\n || (media instanceof Video && media.readyState >= 3);\n}\n", "import { env } from '../env/index';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function awaitMediaLoaded(media: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement) {\n // eslint-disable-next-line consistent-return\n return new Promise((resolve, reject) => {\n if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) {\n return resolve(null);\n }\n\n function onError(e: Event) {\n if (!e.currentTarget) return;\n // eslint-disable-next-line no-use-before-define\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n reject(e);\n }\n\n function onLoad(e: Event) {\n if (!e.currentTarget) return;\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n resolve(e);\n }\n\n media.addEventListener('load', onLoad);\n media.addEventListener('error', onError);\n });\n}\n", "import { env } from '../env/index';\n\nexport function bufferToImage(buf: Blob): Promise {\n return new Promise((resolve, reject) => {\n if (!(buf instanceof Blob)) reject(new Error('bufferToImage - expected buf to be of type: Blob'));\n const reader = new FileReader();\n reader.onload = () => {\n if (typeof reader.result !== 'string') reject(new Error('bufferToImage - expected reader.result to be a string, in onload'));\n const img = env.getEnv().createImageElement();\n img.onload = () => resolve(img);\n img.onerror = reject;\n img.src = reader.result as string;\n };\n reader.onerror = reject;\n reader.readAsDataURL(buf);\n });\n}\n", "import { Dimensions, IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\n\nexport function getMediaDimensions(input: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | IDimensions): Dimensions {\n const { Image, Video } = env.getEnv();\n\n if (input instanceof Image) {\n return new Dimensions(input.naturalWidth, input.naturalHeight);\n }\n if (input instanceof Video) {\n return new Dimensions(input.videoWidth, input.videoHeight);\n }\n return new Dimensions(input.width, input.height);\n}\n", "import { IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function createCanvas({ width, height }: IDimensions): HTMLCanvasElement {\n const { createCanvasElement } = env.getEnv();\n const canvas = createCanvasElement();\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nexport function createCanvasFromMedia(media: HTMLImageElement | HTMLVideoElement | ImageData, dims?: IDimensions): HTMLCanvasElement {\n const { ImageData } = env.getEnv();\n\n if (!(media instanceof ImageData) && !isMediaLoaded(media)) {\n throw new Error('createCanvasFromMedia - media has not finished loading yet');\n }\n\n const { width, height } = dims || getMediaDimensions(media);\n const canvas = createCanvas({ width, height });\n\n if (media instanceof ImageData) {\n getContext2dOrThrow(canvas).putImageData(media, 0, 0);\n } else {\n getContext2dOrThrow(canvas).drawImage(media, 0, 0, width, height);\n }\n return canvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { env } from '../env/index';\nimport { isTensor4D } from '../utils/index';\n\nexport async function imageTensorToCanvas(\n imgTensor: tf.Tensor,\n canvas?: HTMLCanvasElement,\n): Promise {\n const targetCanvas = canvas || env.getEnv().createCanvasElement();\n\n const [height, width, numChannels] = imgTensor.shape.slice(isTensor4D(imgTensor) ? 1 : 0);\n const imgTensor3D = tf.tidy(() => imgTensor.as3D(height, width, numChannels).toInt());\n await tf.browser.toPixels(imgTensor3D, targetCanvas);\n\n imgTensor3D.dispose();\n\n return targetCanvas;\n}\n", "import { env } from '../env/index';\n\nexport function isMediaElement(input: any) {\n const { Image, Canvas, Video } = env.getEnv();\n\n return input instanceof Image\n || input instanceof Canvas\n || input instanceof Video;\n}\n", "import { env } from '../env/index';\nimport { createCanvas, createCanvasFromMedia } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function imageToSquare(input: HTMLImageElement | HTMLCanvasElement, inputSize: number, centerImage: boolean = false) {\n const { Image, Canvas } = env.getEnv();\n\n if (!(input instanceof Image || input instanceof Canvas)) {\n throw new Error('imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement');\n }\n\n if (inputSize <= 0) return createCanvas({ width: 1, height: 1 });\n const dims = getMediaDimensions(input);\n const scale = inputSize / Math.max(dims.height, dims.width);\n const width = scale * dims.width;\n const height = scale * dims.height;\n\n const targetCanvas = createCanvas({ width: inputSize, height: inputSize });\n const inputCanvas = input instanceof Canvas ? input : createCanvasFromMedia(input);\n\n const offset = Math.abs(width - height) / 2;\n const dx = centerImage && width < height ? offset : 0;\n const dy = centerImage && height < width ? offset : 0;\n if (inputCanvas.width > 0 && inputCanvas.height > 0) getContext2dOrThrow(targetCanvas).drawImage(inputCanvas, dx, dy, width, height);\n\n return targetCanvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Dimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { padToSquare } from '../ops/padToSquare';\nimport {\n computeReshapedDimensions, isTensor3D, isTensor4D, range,\n} from '../utils/index';\nimport { createCanvasFromMedia } from './createCanvas';\nimport { imageToSquare } from './imageToSquare';\nimport { TResolvedNetInput } from './types';\n\nexport class NetInput {\n private _imageTensors: Array = []\n\n private _canvases: HTMLCanvasElement[] = []\n\n private _batchSize: number\n\n private _treatAsBatchInput: boolean = false\n\n private _inputDimensions: number[][] = []\n\n private _inputSize: number\n\n constructor(\n inputs: Array,\n treatAsBatchInput: boolean = false,\n ) {\n if (!Array.isArray(inputs)) {\n throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${inputs}`);\n }\n\n this._treatAsBatchInput = treatAsBatchInput;\n this._batchSize = inputs.length;\n\n inputs.forEach((input, idx) => {\n if (isTensor3D(input)) {\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = input.shape;\n return;\n }\n\n if (isTensor4D(input)) {\n const batchSize = (input as any).shape[0];\n if (batchSize !== 1) {\n throw new Error(`NetInput - tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = (input as any).shape.slice(1);\n return;\n }\n\n const canvas = (input as any) instanceof env.getEnv().Canvas ? input : createCanvasFromMedia(input);\n this._canvases[idx] = canvas;\n this._inputDimensions[idx] = [canvas.height, canvas.width, 3];\n });\n }\n\n public get imageTensors(): Array {\n return this._imageTensors;\n }\n\n public get canvases(): HTMLCanvasElement[] {\n return this._canvases;\n }\n\n public get isBatchInput(): boolean {\n return this.batchSize > 1 || this._treatAsBatchInput;\n }\n\n public get batchSize(): number {\n return this._batchSize;\n }\n\n public get inputDimensions(): number[][] {\n return this._inputDimensions;\n }\n\n public get inputSize(): number | undefined {\n return this._inputSize;\n }\n\n public get reshapedInputDimensions(): Dimensions[] {\n return range(this.batchSize, 0, 1).map(\n (_, batchIdx) => this.getReshapedInputDimensions(batchIdx),\n );\n }\n\n public getInput(batchIdx: number): tf.Tensor3D | tf.Tensor4D | HTMLCanvasElement {\n return this.canvases[batchIdx] || this.imageTensors[batchIdx];\n }\n\n public getInputDimensions(batchIdx: number): number[] {\n return this._inputDimensions[batchIdx];\n }\n\n public getInputHeight(batchIdx: number): number {\n return this._inputDimensions[batchIdx][0];\n }\n\n public getInputWidth(batchIdx: number): number {\n return this._inputDimensions[batchIdx][1];\n }\n\n public getReshapedInputDimensions(batchIdx: number): Dimensions {\n if (typeof this.inputSize !== 'number') {\n throw new Error('getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet');\n }\n\n const width = this.getInputWidth(batchIdx);\n const height = this.getInputHeight(batchIdx);\n return computeReshapedDimensions({ width, height }, this.inputSize);\n }\n\n /**\n * Create a batch tensor from all input canvases and tensors\n * with size [batchSize, inputSize, inputSize, 3].\n *\n * @param inputSize Height and width of the tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The batch tensor.\n */\n public toBatchTensor(inputSize: number, isCenterInputs: boolean = true): tf.Tensor4D {\n this._inputSize = inputSize;\n\n return tf.tidy(() => {\n const inputTensors = range(this.batchSize, 0, 1).map((batchIdx) => {\n const input = this.getInput(batchIdx);\n\n if (input instanceof tf.Tensor) {\n // @ts-ignore: error TS2344: Type 'Rank.R4' does not satisfy the constraint 'Tensor'.\n let imgTensor = isTensor4D(input) ? input : input.expandDims();\n // @ts-ignore: error TS2344: Type 'Rank.R4' does not satisfy the constraint 'Tensor'.\n imgTensor = padToSquare(imgTensor, isCenterInputs);\n\n if (imgTensor.shape[1] !== inputSize || imgTensor.shape[2] !== inputSize) {\n imgTensor = tf.image.resizeBilinear(imgTensor, [inputSize, inputSize]);\n }\n\n return imgTensor.as3D(inputSize, inputSize, 3);\n }\n\n if (input instanceof env.getEnv().Canvas) {\n return tf.browser.fromPixels(imageToSquare(input, inputSize, isCenterInputs));\n }\n\n throw new Error(`toBatchTensor - at batchIdx ${batchIdx}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${input}`);\n });\n\n // const batchTensor = tf.stack(inputTensors.map(t => t.toFloat())).as4D(this.batchSize, inputSize, inputSize, 3)\n const batchTensor = tf.stack(inputTensors.map((t) => tf.cast(t, 'float32'))).as4D(this.batchSize, inputSize, inputSize, 3);\n // const batchTensor = tf.stack(inputTensors.map(t => tf.Tensor.as4D(tf.cast(t, 'float32'))), this.batchSize, inputSize, inputSize, 3);\n\n return batchTensor;\n });\n }\n}\n", "import { isTensor3D, isTensor4D } from '../utils/index';\nimport { awaitMediaLoaded } from './awaitMediaLoaded';\nimport { isMediaElement } from './isMediaElement';\nimport { NetInput } from './NetInput';\nimport { resolveInput } from './resolveInput';\nimport { TNetInput } from './types';\n\n/**\n * Validates the input to make sure, they are valid net inputs and awaits all media elements\n * to be finished loading.\n *\n * @param input The input, which can be a media element or an array of different media elements.\n * @returns A NetInput instance, which can be passed into one of the neural networks.\n */\nexport async function toNetInput(inputs: TNetInput): Promise {\n if (inputs instanceof NetInput) {\n return inputs;\n }\n\n const inputArgArray = Array.isArray(inputs)\n ? inputs\n : [inputs];\n\n if (!inputArgArray.length) {\n throw new Error('toNetInput - empty array passed as input');\n }\n\n const getIdxHint = (idx: number) => (Array.isArray(inputs) ? ` at input index ${idx}:` : '');\n\n const inputArray = inputArgArray.map(resolveInput);\n\n inputArray.forEach((input, i) => {\n if (!isMediaElement(input) && !isTensor3D(input) && !isTensor4D(input)) {\n if (typeof inputArgArray[i] === 'string') {\n throw new Error(`toNetInput -${getIdxHint(i)} string passed, but could not resolve HTMLElement for element id ${inputArgArray[i]}`);\n }\n\n throw new Error(`toNetInput -${getIdxHint(i)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);\n }\n\n if (isTensor4D(input)) {\n // if tf.Tensor4D is passed in the input array, the batch size has to be 1\n const batchSize = input.shape[0];\n if (batchSize !== 1) {\n throw new Error(`toNetInput -${getIdxHint(i)} tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n }\n });\n\n // wait for all media elements being loaded\n await Promise.all(\n inputArray.map((input) => isMediaElement(input) && awaitMediaLoaded(input)),\n );\n\n return new NetInput(inputArray, Array.isArray(inputs));\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { Rect } from '../classes/Rect';\nimport { env } from '../env/index';\nimport { createCanvas } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { imageTensorToCanvas } from './imageTensorToCanvas';\nimport { toNetInput } from './toNetInput';\nimport { TNetInput } from './types';\n\n/**\n * Extracts the image regions containing the detected faces.\n *\n * @param input The image that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns The Canvases of the corresponding image region for each detected face.\n */\nexport async function extractFaces(\n input: TNetInput,\n detections: Array,\n): Promise {\n const { Canvas } = env.getEnv();\n\n let canvas = input as HTMLCanvasElement;\n\n if (!(input instanceof Canvas)) {\n const netInput = await toNetInput(input);\n\n if (netInput.batchSize > 1) {\n throw new Error('extractFaces - batchSize > 1 not supported');\n }\n\n const tensorOrCanvas = netInput.getInput(0);\n canvas = tensorOrCanvas instanceof Canvas\n ? tensorOrCanvas\n : await imageTensorToCanvas(tensorOrCanvas);\n }\n\n const ctx = getContext2dOrThrow(canvas);\n const boxes = detections.map(\n (det) => (det instanceof FaceDetection\n ? det.forSize(canvas.width, canvas.height).box.floor()\n : det),\n )\n .map((box) => box.clipAtImageBorders(canvas.width, canvas.height));\n\n return boxes.map(({\n x, y, width, height,\n }) => {\n const faceImg = createCanvas({ width, height });\n if (width > 0 && height > 0) getContext2dOrThrow(faceImg).putImageData(ctx.getImageData(x, y, width, height), 0, 0);\n return faceImg;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isTensor3D, isTensor4D } from '../utils/index';\n\n/**\n * Extracts the tensors of the image regions containing the detected faces.\n * Useful if you want to compute the face descriptors for the face images.\n * Using this method is faster then extracting a canvas for each face and\n * converting them to tensors individually.\n *\n * @param imageTensor The image tensor that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns Tensors of the corresponding image region for each detected face.\n */\nexport async function extractFaceTensors(\n imageTensor: tf.Tensor3D | tf.Tensor4D,\n detections: Array,\n): Promise {\n if (!isTensor3D(imageTensor) && !isTensor4D(imageTensor)) {\n throw new Error('extractFaceTensors - expected image tensor to be 3D or 4D');\n }\n\n if (isTensor4D(imageTensor) && imageTensor.shape[0] > 1) {\n throw new Error('extractFaceTensors - batchSize > 1 not supported');\n }\n\n return tf.tidy(() => {\n const [imgHeight, imgWidth, numChannels] = imageTensor.shape.slice(isTensor4D(imageTensor) ? 1 : 0);\n\n const boxes = detections.map(\n (det) => (det instanceof FaceDetection\n ? det.forSize(imgWidth, imgHeight).box\n : det),\n )\n .map((box) => box.clipAtImageBorders(imgWidth, imgHeight));\n\n const faceTensors = boxes.map(({\n x, y, width, height,\n }) => tf.slice3d(imageTensor.as3D(imgHeight, imgWidth, numChannels), [y, x, 0], [height, width, numChannels]));\n\n return faceTensors;\n });\n}\n", "import { env } from '../env/index';\n\nexport async function fetchOrThrow(\n url: string,\n // eslint-disable-next-line no-undef\n init?: RequestInit,\n): Promise {\n const { fetch } = env.getEnv();\n const res = await fetch(url, init);\n if (!(res.status < 400)) {\n throw new Error(`failed to fetch: (${res.status}) ${res.statusText}, from url: ${res.url}`);\n }\n return res;\n}\n", "import { bufferToImage } from './bufferToImage';\nimport { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchImage(uri: string): Promise {\n const res = await fetchOrThrow(uri);\n const blob = await (res).blob();\n\n if (!blob.type.startsWith('image/')) {\n throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${blob.type}, for url: ${res.url}`);\n }\n return bufferToImage(blob);\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchJson(uri: string): Promise {\n return (await fetchOrThrow(uri)).json();\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchNetWeights(uri: string): Promise {\n return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());\n}\n", "export function getModelUris(uri: string | undefined, defaultModelName: string) {\n const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;\n\n if (!uri) {\n return {\n modelBaseUri: '',\n manifestUri: defaultManifestFilename,\n };\n }\n\n if (uri === '/') {\n return {\n modelBaseUri: '/',\n manifestUri: `/${defaultManifestFilename}`,\n };\n }\n // eslint-disable-next-line no-nested-ternary\n const protocol = uri.startsWith('http://') ? 'http://' : uri.startsWith('https://') ? 'https://' : '';\n uri = uri.replace(protocol, '');\n\n const parts = uri.split('/').filter((s) => s);\n\n const manifestFile = uri.endsWith('.json')\n ? parts[parts.length - 1]\n : defaultManifestFilename;\n\n let modelBaseUri = protocol + (uri.endsWith('.json') ? parts.slice(0, parts.length - 1) : parts).join('/');\n modelBaseUri = uri.startsWith('/') ? `/${modelBaseUri}` : modelBaseUri;\n\n return {\n modelBaseUri,\n manifestUri: modelBaseUri === '/' ? `/${manifestFile}` : `${modelBaseUri}/${manifestFile}`,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { getModelUris } from '../common/getModelUris';\nimport { fetchJson } from './fetchJson';\n\nexport async function loadWeightMap(\n uri: string | undefined,\n defaultModelName: string,\n): Promise {\n const { manifestUri, modelBaseUri } = getModelUris(uri, defaultModelName);\n const manifest = await fetchJson(manifestUri);\n // if (manifest['weightsManifest']) manifest = manifest['weightsManifest'];\n return tf.io.loadWeights(manifest, modelBaseUri);\n}\n", "import { IDimensions } from '../classes/index';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function matchDimensions(input: IDimensions, reference: IDimensions, useMediaDimensions: boolean = false) {\n const { width, height } = useMediaDimensions\n ? getMediaDimensions(reference)\n : reference;\n input.width = width;\n input.height = height;\n return { width, height };\n}\n", "import * as tf from '../dist/tfjs.esm';\n\nimport { ParamMapping } from './common/index';\nimport { getModelUris } from './common/getModelUris';\nimport { loadWeightMap } from './dom/index';\nimport { env } from './env/index';\n\nexport abstract class NeuralNetwork {\n constructor(name: string) {\n this._name = name;\n }\n\n protected _params: TNetParams | undefined = undefined\n\n protected _paramMappings: ParamMapping[] = []\n\n public _name: any;\n\n public get params(): TNetParams | undefined { return this._params; }\n\n public get paramMappings(): ParamMapping[] { return this._paramMappings; }\n\n public get isLoaded(): boolean { return !!this.params; }\n\n public getParamFromPath(paramPath: string): tf.Tensor {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n return obj[objProp];\n }\n\n public reassignParamFromPath(paramPath: string, tensor: tf.Tensor) {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n obj[objProp].dispose();\n obj[objProp] = tensor;\n }\n\n public getParamList() {\n return this._paramMappings.map(({ paramPath }) => ({\n path: paramPath,\n tensor: this.getParamFromPath(paramPath),\n }));\n }\n\n public getTrainableParams() {\n return this.getParamList().filter((param) => param.tensor instanceof tf.Variable);\n }\n\n public getFrozenParams() {\n return this.getParamList().filter((param) => !(param.tensor instanceof tf.Variable));\n }\n\n public variable() {\n this.getFrozenParams().forEach(({ path, tensor }) => {\n this.reassignParamFromPath(path, tensor.variable());\n });\n }\n\n public freeze() {\n this.getTrainableParams().forEach(({ path, tensor: variable }) => {\n const tensor = tf.tensor(variable.dataSync());\n variable.dispose();\n this.reassignParamFromPath(path, tensor);\n });\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.getParamList().forEach((param) => {\n if (throwOnRedispose && param.tensor.isDisposed) {\n throw new Error(`param tensor has already been disposed for path ${param.path}`);\n }\n param.tensor.dispose();\n });\n this._params = undefined;\n }\n\n public serializeParams(): Float32Array {\n return new Float32Array(\n this.getParamList()\n .map(({ tensor }) => Array.from(tensor.dataSync()) as number[])\n .reduce((flat, arr) => flat.concat(arr)),\n );\n }\n\n public async load(weightsOrUrl: Float32Array | string | undefined): Promise {\n if (weightsOrUrl instanceof Float32Array) {\n this.extractWeights(weightsOrUrl);\n return;\n }\n await this.loadFromUri(weightsOrUrl);\n }\n\n public async loadFromUri(uri: string | undefined) {\n if (uri && typeof uri !== 'string') {\n throw new Error(`${this._name}.loadFromUri - expected model uri`);\n }\n const weightMap = await loadWeightMap(uri, this.getDefaultModelName());\n this.loadFromWeightMap(weightMap);\n }\n\n public async loadFromDisk(filePath: string | undefined) {\n if (filePath && typeof filePath !== 'string') {\n throw new Error(`${this._name}.loadFromDisk - expected model file path`);\n }\n const { readFile } = env.getEnv();\n const { manifestUri, modelBaseUri } = getModelUris(filePath, this.getDefaultModelName());\n const fetchWeightsFromDisk = (filePaths: string[]) => Promise.all(filePaths.map((fp) => readFile(fp).then((buf) => buf.buffer)));\n const loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk);\n const manifest = JSON.parse((await readFile(manifestUri)).toString());\n const weightMap = await loadWeights(manifest, modelBaseUri);\n this.loadFromWeightMap(weightMap);\n }\n\n public loadFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { paramMappings, params } = this.extractParamsFromWeightMap(weightMap);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n public extractWeights(weights: Float32Array) {\n const { paramMappings, params } = this.extractParams(weights);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n private traversePropertyPath(paramPath: string) {\n if (!this.params) {\n throw new Error('traversePropertyPath - model has no loaded params');\n }\n\n const result = paramPath.split('/').reduce((res: { nextObj: any, obj?: any, objProp?: string }, objProp) => {\n // eslint-disable-next-line no-prototype-builtins\n if (!res.nextObj.hasOwnProperty(objProp)) {\n throw new Error(`traversePropertyPath - object does not have property ${objProp}, for path ${paramPath}`);\n }\n return { obj: res.nextObj, objProp, nextObj: res.nextObj[objProp] };\n }, { nextObj: this.params });\n\n const { obj, objProp } = result;\n if (!obj || !objProp || !(obj[objProp] instanceof tf.Tensor)) {\n throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${paramPath}`);\n }\n\n return { obj, objProp };\n }\n\n protected abstract getDefaultModelName(): string\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TNetParams, paramMappings: ParamMapping[] }\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParams(weights: Float32Array): { params: TNetParams, paramMappings: ParamMapping[] }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from './types';\n\nexport function depthwiseSeparableConv(\n x: tf.Tensor4D,\n params: SeparableConvParams,\n stride: [number, number],\n): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.separableConv2d(x, params.depthwise_filter, params.pointwise_filter, stride, 'same');\n out = tf.add(out, params.bias);\n return out;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, SeparableConvParams } from '../common/index';\nimport { depthwiseSeparableConv } from '../common/depthwiseSeparableConv';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function denseBlock3(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock3Params,\n isFirstLayer: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, [2, 2], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, [2, 2]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n });\n}\n\nexport function denseBlock4(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock4Params,\n isFirstLayer: boolean = false,\n isScaleDown: boolean = true,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, isScaleDown ? [2, 2] : [1, 1], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, isScaleDown ? [2, 2] : [1, 1]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n const in4 = tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n const out4 = depthwiseSeparableConv(in4, denseBlockParams.conv3, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, tf.add(out3, out4)))) as tf.Tensor4D;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\nexport function convLayer(\n x: tf.Tensor4D,\n params: ConvParams,\n padding: 'valid' | 'same' = 'same',\n withRelu: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out = tf.add(\n tf.conv2d(x, params.filters, [1, 1], padding),\n params.bias,\n ) as tf.Tensor4D;\n\n return withRelu ? tf.relu(out) : out;\n });\n}\n", "import { ParamMapping } from './types';\n\nexport function disposeUnusedWeightTensors(weightMap: any, paramMappings: ParamMapping[]) {\n Object.keys(weightMap).forEach((path) => {\n if (!paramMappings.some((pm) => pm.originalPath === path)) {\n weightMap[path].dispose();\n }\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, ExtractWeightsFunction, ParamMapping } from './types';\n\nexport function extractConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams => {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, FCParams, ParamMapping } from './types';\n\nexport function extractFCParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): FCParams => {\n const fc_weights = tf.tensor2d(extractWeights(channelsIn * channelsOut), [channelsIn, channelsOut]);\n const fc_bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return {\n weights: fc_weights,\n bias: fc_bias,\n };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n// eslint-disable-next-line no-unused-vars\nexport type ExtractWeightsFunction = (numWeights: number) => Float32Array\n\nexport type ParamMapping = {\n originalPath?: string\n paramPath: string\n}\n\nexport type ConvParams = {\n filters: tf.Tensor4D\n bias: tf.Tensor1D\n}\n\nexport type FCParams = {\n weights: tf.Tensor2D\n bias: tf.Tensor1D\n}\n\nexport class SeparableConvParams {\n // eslint-disable-next-line no-useless-constructor\n constructor(\n // eslint-disable-next-line no-unused-vars\n public depthwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public pointwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public bias: tf.Tensor1D,\n // eslint-disable-next-line no-empty-function\n ) {}\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, ParamMapping, SeparableConvParams } from './types';\n\nexport function extractSeparableConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (channelsIn: number, channelsOut: number, mappedPrefix: string): SeparableConvParams => {\n const depthwise_filter = tf.tensor4d(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1]);\n const pointwise_filter = tf.tensor4d(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut]);\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/depthwise_filter` },\n { paramPath: `${mappedPrefix}/pointwise_filter` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n\nexport function loadSeparableConvParamsFactory(\n // eslint-disable-next-line no-unused-vars\n extractWeightEntry: (originalPath: string, paramRank: number) => T,\n) {\n return (prefix: string): SeparableConvParams => {\n const depthwise_filter = extractWeightEntry(`${prefix}/depthwise_filter`, 4);\n const pointwise_filter = extractWeightEntry(`${prefix}/pointwise_filter`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n", "import { isTensor } from '../utils/index';\nimport { ParamMapping } from './types';\n\nexport function extractWeightEntryFactory(weightMap: any, paramMappings: ParamMapping[]) {\n return (originalPath: string, paramRank: number, mappedPath?: string) => {\n const tensor = weightMap[originalPath];\n\n if (!isTensor(tensor, paramRank)) {\n throw new Error(`expected weightMap[${originalPath}] to be a Tensor${paramRank}D, instead have ${tensor}`);\n }\n\n paramMappings.push(\n { originalPath, paramPath: mappedPath || originalPath },\n );\n\n return tensor;\n };\n}\n", "export function extractWeightsFactory(weights: Float32Array) {\n let remainingWeights = weights;\n\n function extractWeights(numWeights: number): Float32Array {\n const ret = remainingWeights.slice(0, numWeights);\n remainingWeights = remainingWeights.slice(numWeights);\n return ret;\n }\n\n function getRemainingWeights(): Float32Array {\n return remainingWeights;\n }\n\n return {\n extractWeights,\n getRemainingWeights,\n };\n}\n", "import {\n extractConvParamsFactory,\n extractSeparableConvParamsFactory,\n ExtractWeightsFunction,\n ParamMapping,\n} from '../common/index';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractDenseBlock3Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv0`)\n : extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/conv0`);\n const conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv1`);\n const conv2 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock4Params {\n const { conv0, conv1, conv2 } = extractDenseBlock3Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer);\n const conv3 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock4Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock4Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock4Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock4Params(64, 128, 'dense2');\n const dense3 = extractDenseBlock4Params(128, 256, 'dense3');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: {\n dense0, dense1, dense2, dense3,\n },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\n// eslint-disable-next-line no-unused-vars\nexport function loadConvParamsFactory(extractWeightEntry: (originalPath: string, paramRank: number) => T) {\n return (prefix: string): ConvParams => {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return { filters, bias };\n };\n}\n", "import { extractWeightEntryFactory, loadSeparableConvParamsFactory, ParamMapping } from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractDenseBlock3Params(prefix: string, isFirstLayer: boolean = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(prefix: string, isFirstLayer: boolean = false): DenseBlock4Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n const conv3 = extractSeparableConvParams(`${prefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock4Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock4Params('dense0', true),\n dense1: extractDenseBlock4Params('dense1'),\n dense2: extractDenseBlock4Params('dense2'),\n dense3: extractDenseBlock4Params('dense3'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock4 } from './denseBlock';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { FaceFeatureExtractorParams, IFaceFeatureExtractor } from './types';\n\nexport class FaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('FaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255)) as tf.Tensor4D;\n\n let out = denseBlock4(normalized, params.dense0, true);\n out = denseBlock4(out, params.dense1);\n out = denseBlock4(out, params.dense2);\n out = denseBlock4(out, params.dense3);\n out = tf.avgPool(out, [7, 7], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from './types';\n\nexport function fullyConnectedLayer(\n x: tf.Tensor2D,\n params: FCParams,\n): tf.Tensor2D {\n return tf.tidy(() => tf.add(\n tf.matMul(x, params.weights),\n params.bias,\n ));\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array, channelsIn: number, channelsOut: number): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const fc = extractFCParams(channelsIn, channelsOut, 'fc');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping,\n} from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: extractFcParams('fc'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function seperateWeightMaps(weightMap: tf.NamedTensorMap) {\n const featureExtractorMap: tf.NamedTensorMap = {};\n const classifierMap: tf.NamedTensorMap = {};\n\n Object.keys(weightMap).forEach((key) => {\n const map = key.startsWith('fc') ? classifierMap : featureExtractorMap;\n map[key] = weightMap[key];\n });\n\n return { featureExtractorMap, classifierMap };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { NetInput } from '../dom/index';\nimport {\n FaceFeatureExtractorParams,\n IFaceFeatureExtractor,\n TinyFaceFeatureExtractorParams,\n} from '../faceFeatureExtractor/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { NetParams } from './types';\nimport { seperateWeightMaps } from './util';\n\nexport abstract class FaceProcessor<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends NeuralNetwork {\n protected _faceFeatureExtractor: IFaceFeatureExtractor\n\n constructor(_name: string, faceFeatureExtractor: IFaceFeatureExtractor) {\n super(_name);\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): IFaceFeatureExtractor {\n return this._faceFeatureExtractor;\n }\n\n protected abstract getDefaultModelName(): string\n\n protected abstract getClassifierChannelsIn(): number\n\n protected abstract getClassifierChannelsOut(): number\n\n public runNet(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n return fullyConnectedLayer(bottleneckFeatures.as2D(bottleneckFeatures.shape[0], -1), params.fc);\n });\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights, this.getClassifierChannelsIn(), this.getClassifierChannelsOut());\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const cIn = this.getClassifierChannelsIn();\n const cOut = this.getClassifierChannelsOut();\n const classifierWeightSize = (cOut * cIn) + cOut;\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "export const FACE_EXPRESSION_LABELS = ['neutral', 'happy', 'sad', 'angry', 'fearful', 'disgusted', 'surprised'];\n\nexport class FaceExpressions {\n public neutral: number\n\n public happy: number\n\n public sad: number\n\n public angry: number\n\n public fearful: number\n\n public disgusted: number\n\n public surprised: number\n\n constructor(probabilities: number[] | Float32Array) {\n if (probabilities.length !== 7) {\n throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${probabilities.length}`);\n }\n\n FACE_EXPRESSION_LABELS.forEach((expression, idx) => {\n this[expression] = probabilities[idx];\n });\n }\n\n asSortedArray() {\n return FACE_EXPRESSION_LABELS\n .map((expression) => ({ expression, probability: this[expression] as number }))\n .sort((e0, e1) => e1.probability - e0.probability);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { FaceExpressions } from './FaceExpressions';\n\nexport class FaceExpressionNet extends FaceProcessor {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceExpressionNet', faceFeatureExtractor);\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n return tf.tidy(() => tf.softmax(this.runNet(input)));\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictExpressions(input: TNetInput) {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n const probabilitesByBatch = await Promise.all(tf.unstack(out).map(async (t) => {\n const data = await t.data();\n t.dispose();\n return data;\n }));\n out.dispose();\n\n const predictionsByBatch = probabilitesByBatch\n .map((probabilites) => new FaceExpressions(probabilites as Float32Array));\n\n return netInput.isBatchInput\n ? predictionsByBatch\n : predictionsByBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_expression_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n\n protected getClassifierChannelsOut(): number {\n return 7;\n }\n}\n", "import { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\n\nexport type WithFaceExpressions = TSource & {\n expressions: FaceExpressions\n}\n\nexport function isWithFaceExpressions(obj: any): obj is WithFaceExpressions<{}> {\n return obj.expressions instanceof FaceExpressions;\n}\n\nexport function extendWithFaceExpressions<\n TSource\n>(\n sourceObj: TSource,\n expressions: FaceExpressions,\n): WithFaceExpressions {\n const extension = { expressions };\n return { ...sourceObj, ...extension };\n}\n", "import { IPoint, Point } from '../classes/index';\nimport { FaceExpressions } from '../faceExpressionNet/index';\nimport { isWithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { round } from '../utils/index';\nimport { DrawTextField } from './DrawTextField';\n\nexport type DrawFaceExpressionsInput = FaceExpressions | WithFaceExpressions<{}>\n\nexport function drawFaceExpressions(\n canvasArg: string | HTMLCanvasElement,\n faceExpressions: DrawFaceExpressionsInput | Array,\n minConfidence = 0.1,\n textFieldAnchor?: IPoint,\n) {\n const faceExpressionsArray = Array.isArray(faceExpressions) ? faceExpressions : [faceExpressions];\n\n faceExpressionsArray.forEach((e) => {\n // eslint-disable-next-line no-nested-ternary\n const expr = e instanceof FaceExpressions\n ? e\n : (isWithFaceExpressions(e) ? e.expressions : undefined);\n if (!expr) {\n throw new Error('drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof');\n }\n\n const sorted = expr.asSortedArray();\n const resultsToDisplay = sorted.filter((exprLocal) => exprLocal.probability > minConfidence);\n\n const anchor = isWithFaceDetection(e)\n ? e.detection.box.bottomLeft\n : (textFieldAnchor || new Point(0, 0));\n\n const drawTextField = new DrawTextField(\n resultsToDisplay.map((exprLocal) => `${exprLocal.expression} (${round(exprLocal.probability)})`),\n anchor,\n );\n drawTextField.draw(canvasArg);\n });\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { isWithFaceDetection, WithFaceDetection } from './WithFaceDetection';\n\nexport type WithFaceLandmarks<\n TSource extends WithFaceDetection<{}>,\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68 > = TSource & {\n landmarks: TFaceLandmarks,\n unshiftedLandmarks: TFaceLandmarks,\n alignedRect: FaceDetection,\n angle: { roll: number | undefined, pitch: number | undefined, yaw: number | undefined },\n }\n\nexport function isWithFaceLandmarks(obj: any): obj is WithFaceLandmarks, FaceLandmarks> {\n return isWithFaceDetection(obj)\n // eslint-disable-next-line dot-notation\n && obj['landmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['unshiftedLandmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['alignedRect'] instanceof FaceDetection;\n}\n\nfunction calculateFaceAngle(mesh) {\n // returns the angle in the plane (in radians) between the positive x-axis and the ray from (0,0) to the point (x,y)\n const radians = (a1, a2, b1, b2) => (Math.atan2(b2 - a2, b1 - a1) % Math.PI);\n // convert radians to degrees\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (theta) => (theta * 180) / Math.PI;\n\n const angle = { roll: undefined, pitch: undefined, yaw: undefined };\n\n if (!mesh || !mesh._positions || mesh._positions.length !== 68) return angle;\n const pt = mesh._positions;\n\n // values are in radians in range of -pi/2 to pi/2 which is -90 to +90 degrees\n // value of 0 means center\n\n // roll is face lean from left to right\n // comparing x,y of outside corners of leftEye and rightEye\n angle.roll = -radians(pt[36]._x, pt[36]._y, pt[45]._x, pt[45]._y);\n\n // pitch is face turn from left right\n // comparing x distance of top of nose to left and right edge of face\n // precision is lacking since coordinates are not precise enough\n angle.pitch = radians(0, Math.abs(pt[0]._x - pt[30]._x) / pt[30]._x, Math.PI, Math.abs(pt[16]._x - pt[30]._x) / pt[30]._x);\n\n // yaw is face move from up to down\n // comparing size of the box around the face with top and bottom of detected landmarks\n // silly hack, but this gives us face compression on y-axis\n // e.g., tilting head up hides the forehead that doesn't have any landmarks so ratio drops\n const bottom = pt.reduce((prev, cur) => (prev < cur._y ? prev : cur._y), +Infinity);\n const top = pt.reduce((prev, cur) => (prev > cur._y ? prev : cur._y), -Infinity);\n angle.yaw = Math.PI * (mesh._imgDims._height / (top - bottom) / 1.40 - 1);\n\n return angle;\n}\n\nexport function extendWithFaceLandmarks<\n TSource extends WithFaceDetection<{}>,\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68 >(sourceObj: TSource, unshiftedLandmarks: TFaceLandmarks): WithFaceLandmarks {\n const { box: shift } = sourceObj.detection;\n const landmarks = unshiftedLandmarks.shiftBy(shift.x, shift.y);\n\n const rect = landmarks.align();\n const { imageDims } = sourceObj.detection;\n const alignedRect = new FaceDetection(sourceObj.detection.score, rect.rescale(imageDims.reverse()), imageDims);\n const angle = calculateFaceAngle(unshiftedLandmarks);\n\n const extension = {\n landmarks,\n unshiftedLandmarks,\n alignedRect,\n angle,\n };\n\n return { ...sourceObj, ...extension };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IPoint } from '../classes/index';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { drawContour } from './drawContour';\n\nexport interface IDrawFaceLandmarksOptions {\n drawLines?: boolean\n drawPoints?: boolean\n lineWidth?: number\n pointSize?: number\n lineColor?: string\n pointColor?: string\n}\n\nexport class DrawFaceLandmarksOptions {\n public drawLines: boolean\n\n public drawPoints: boolean\n\n public lineWidth: number\n\n public pointSize: number\n\n public lineColor: string\n\n public pointColor: string\n\n constructor(options: IDrawFaceLandmarksOptions = {}) {\n const {\n drawLines = true, drawPoints = true, lineWidth, lineColor, pointSize, pointColor,\n } = options;\n this.drawLines = drawLines;\n this.drawPoints = drawPoints;\n this.lineWidth = lineWidth || 1;\n this.pointSize = pointSize || 2;\n this.lineColor = lineColor || 'rgba(0, 255, 255, 1)';\n this.pointColor = pointColor || 'rgba(255, 0, 255, 1)';\n }\n}\n\nexport class DrawFaceLandmarks {\n public faceLandmarks: FaceLandmarks\n\n public options: DrawFaceLandmarksOptions\n\n constructor(\n faceLandmarks: FaceLandmarks,\n options: IDrawFaceLandmarksOptions = {},\n ) {\n this.faceLandmarks = faceLandmarks;\n this.options = new DrawFaceLandmarksOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const {\n drawLines, drawPoints, lineWidth, lineColor, pointSize, pointColor,\n } = this.options;\n\n if (drawLines && this.faceLandmarks instanceof FaceLandmarks68) {\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n drawContour(ctx, this.faceLandmarks.getJawOutline());\n drawContour(ctx, this.faceLandmarks.getLeftEyeBrow());\n drawContour(ctx, this.faceLandmarks.getRightEyeBrow());\n drawContour(ctx, this.faceLandmarks.getNose());\n drawContour(ctx, this.faceLandmarks.getLeftEye(), true);\n drawContour(ctx, this.faceLandmarks.getRightEye(), true);\n drawContour(ctx, this.faceLandmarks.getMouth(), true);\n }\n\n if (drawPoints) {\n ctx.strokeStyle = pointColor;\n ctx.fillStyle = pointColor;\n\n const drawPoint = (pt: IPoint) => {\n ctx.beginPath();\n ctx.arc(pt.x, pt.y, pointSize, 0, 2 * Math.PI);\n ctx.fill();\n };\n this.faceLandmarks.positions.forEach(drawPoint);\n }\n }\n}\n\nexport type DrawFaceLandmarksInput = FaceLandmarks | WithFaceLandmarks>\n\nexport function drawFaceLandmarks(\n canvasArg: string | HTMLCanvasElement,\n faceLandmarks: DrawFaceLandmarksInput | Array,\n) {\n const faceLandmarksArray = Array.isArray(faceLandmarks) ? faceLandmarks : [faceLandmarks];\n faceLandmarksArray.forEach((f) => {\n // eslint-disable-next-line no-nested-ternary\n const landmarks = f instanceof FaceLandmarks\n ? f\n : (isWithFaceLandmarks(f) ? f.landmarks : undefined);\n if (!landmarks) {\n throw new Error('drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof');\n }\n\n new DrawFaceLandmarks(landmarks).draw(canvasArg);\n });\n}\n", "import { extractConvParamsFactory, extractSeparableConvParamsFactory, extractWeightsFactory } from '../common/index';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractReductionBlockParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(channels: number, mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParams(weights: Float32Array, numMainBlocks: number): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const entry_flow_conv_in = extractConvParams(3, 32, 3, 'entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams(32, 64, 'entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams(64, 128, 'entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(128, `middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams(128, 256, 'exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams(256, 512, 'exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { entry_flow, middle_flow, exit_flow },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors,\n extractWeightEntryFactory,\n loadSeparableConvParamsFactory,\n ParamMapping,\n} from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractReductionBlockParams(mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(`${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(`${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n numMainBlocks: number,\n): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const entry_flow_conv_in = extractConvParams('entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams('entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams('entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(`middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams('exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams('exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params: { entry_flow, middle_flow, exit_flow }, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, depthwiseSeparableConv } from '../common/index';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { range } from '../utils/index';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction conv(x: tf.Tensor4D, params: ConvParams, stride: [number, number]): tf.Tensor4D {\n return tf.add(tf.conv2d(x, params.filters, stride, 'same'), params.bias);\n}\n\nfunction reductionBlock(x: tf.Tensor4D, params: ReductionBlockParams, isActivateInput: boolean = true): tf.Tensor4D {\n let out = isActivateInput ? tf.relu(x) : x;\n out = depthwiseSeparableConv(out, params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = tf.maxPool(out, [3, 3], [2, 2], 'same');\n out = tf.add(out, conv(x, params.expansion_conv, [2, 2]));\n return out;\n}\n\nfunction mainBlock(x: tf.Tensor4D, params: MainBlockParams): tf.Tensor4D {\n let out = depthwiseSeparableConv(tf.relu(x), params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv2, [1, 1]);\n out = tf.add(out, x);\n return out;\n}\n\nexport class TinyXception extends NeuralNetwork {\n private _numMainBlocks: number\n\n constructor(numMainBlocks: number) {\n super('TinyXception');\n this._numMainBlocks = numMainBlocks;\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n if (!params) {\n throw new Error('TinyXception - load model before inference');\n }\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(256)) as tf.Tensor4D;\n let out = tf.relu(conv(normalized, params.entry_flow.conv_in, [2, 2]));\n out = reductionBlock(out, params.entry_flow.reduction_block_0, false);\n out = reductionBlock(out, params.entry_flow.reduction_block_1);\n range(this._numMainBlocks, 0, 1).forEach((idx) => {\n out = mainBlock(out, params.middle_flow[`main_block_${idx}`]);\n });\n out = reductionBlock(out, params.exit_flow.reduction_block);\n out = tf.relu(depthwiseSeparableConv(out, params.exit_flow.separable_conv, [1, 1]));\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'tiny_xception_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this._numMainBlocks);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights, this._numMainBlocks);\n }\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const age = extractFCParams(512, 1, 'fc/age');\n const gender = extractFCParams(512, 2, 'fc/gender');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc: { age, gender } },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping,\n} from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: {\n age: extractFcParams('fc/age'),\n gender: extractFcParams('fc/gender'),\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from '../common/index';\n\n// eslint-disable-next-line no-shadow\nexport enum Gender {\n // eslint-disable-next-line no-unused-vars\n FEMALE = 'female',\n // eslint-disable-next-line no-unused-vars\n MALE = 'male'\n}\n\nexport type AgeAndGenderPrediction = {\n age: number\n gender: Gender\n genderProbability: number\n}\n\nexport type NetOutput = { age: tf.Tensor1D, gender: tf.Tensor2D }\n\nexport type NetParams = {\n fc: {\n age: FCParams\n gender: FCParams\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { seperateWeightMaps } from '../faceProcessor/util';\nimport { TinyXception } from '../xception/TinyXception';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport {\n AgeAndGenderPrediction, Gender, NetOutput, NetParams,\n} from './types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\n\nexport class AgeGenderNet extends NeuralNetwork {\n private _faceFeatureExtractor: TinyXception\n\n constructor(faceFeatureExtractor: TinyXception = new TinyXception(2)) {\n super('AgeGenderNet');\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): TinyXception {\n return this._faceFeatureExtractor;\n }\n\n public runNet(input: NetInput | tf.Tensor4D): NetOutput {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n\n const pooled = tf.avgPool(bottleneckFeatures, [7, 7], [2, 2], 'valid').as2D(bottleneckFeatures.shape[0], -1);\n const age = fullyConnectedLayer(pooled, params.fc.age).as1D();\n const gender = fullyConnectedLayer(pooled, params.fc.gender);\n return { age, gender };\n });\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): NetOutput {\n return tf.tidy(() => {\n const { age, gender } = this.runNet(input);\n return { age, gender: tf.softmax(gender) };\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictAgeAndGender(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n\n const ages = tf.unstack(out.age);\n const genders = tf.unstack(out.gender);\n const ageAndGenderTensors = ages.map((ageTensor, i) => ({\n ageTensor,\n genderTensor: genders[i],\n }));\n\n const predictionsByBatch = await Promise.all(\n ageAndGenderTensors.map(async ({ ageTensor, genderTensor }) => {\n const age = (await ageTensor.data())[0];\n const probMale = (await genderTensor.data())[0];\n const isMale = probMale > 0.5;\n const gender = isMale ? Gender.MALE : Gender.FEMALE;\n const genderProbability = isMale ? probMale : (1 - probMale);\n\n ageTensor.dispose();\n genderTensor.dispose();\n return { age, gender, genderProbability };\n }),\n );\n out.age.dispose();\n out.gender.dispose();\n\n return netInput.isBatchInput ? predictionsByBatch as AgeAndGenderPrediction[] : predictionsByBatch[0] as AgeAndGenderPrediction;\n }\n\n protected getDefaultModelName(): string {\n return 'age_gender_model';\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights);\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const classifierWeightSize = (512 * 1 + 1) + (512 * 2 + 2);\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { IDimensions, Point } from '../classes/index';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractorParams, TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { isEven } from '../utils/index';\n\nexport abstract class FaceLandmark68NetBase<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends FaceProcessor {\n public postProcess(output: tf.Tensor2D, inputSize: number, originalDimensions: IDimensions[]): tf.Tensor2D {\n const inputDimensions = originalDimensions.map(({ width, height }) => {\n const scale = inputSize / Math.max(height, width);\n return {\n width: width * scale,\n height: height * scale,\n };\n });\n\n const batchSize = inputDimensions.length;\n\n return tf.tidy(() => {\n const createInterleavedTensor = (fillX: number, fillY: number) => tf.stack([tf.fill([68], fillX, 'float32'), tf.fill([68], fillY, 'float32')], 1).as2D(1, 136).as1D();\n\n // eslint-disable-next-line no-unused-vars\n const getPadding = (batchIdx: number, cond: (w: number, h: number) => boolean): number => {\n const { width, height } = inputDimensions[batchIdx];\n return cond(width, height) ? Math.abs(width - height) / 2 : 0;\n };\n\n const getPaddingX = (batchIdx: number) => getPadding(batchIdx, (w, h) => w < h);\n const getPaddingY = (batchIdx: number) => getPadding(batchIdx, (w, h) => h < w);\n\n const landmarkTensors = output\n .mul(tf.fill([batchSize, 136], inputSize, 'float32'))\n .sub(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n getPaddingX(batchIdx),\n getPaddingY(batchIdx),\n ))))\n .div(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n inputDimensions[batchIdx].width,\n inputDimensions[batchIdx].height,\n ))));\n\n return landmarkTensors as tf.Tensor2D;\n });\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n return tf.tidy(() => {\n const out = this.runNet(input);\n return this.postProcess(\n out,\n input.inputSize as number,\n input.inputDimensions.map(([height, width]) => ({ height, width })),\n );\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async detectLandmarks(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const landmarkTensors = tf.tidy(\n () => tf.unstack(this.forwardInput(netInput)),\n );\n\n const landmarksForBatch = await Promise.all(landmarkTensors.map(\n async (landmarkTensor, batchIdx) => {\n const landmarksArray = Array.from(await landmarkTensor.data());\n const xCoords = landmarksArray.filter((_, i) => isEven(i));\n const yCoords = landmarksArray.filter((_, i) => !isEven(i));\n\n return new FaceLandmarks68(\n Array(68).fill(0).map((_, i) => new Point(xCoords[i] as number, yCoords[i] as number)),\n {\n height: netInput.getInputHeight(batchIdx),\n width: netInput.getInputWidth(batchIdx),\n },\n );\n },\n ));\n\n landmarkTensors.forEach((t) => t.dispose());\n\n return netInput.isBatchInput ? landmarksForBatch as FaceLandmarks68[] : landmarksForBatch[0] as FaceLandmarks68;\n }\n\n protected getClassifierChannelsOut(): number {\n return 136;\n }\n}\n", "import { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68Net extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceLandmark68Net', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMapTiny(\n weightMap: tf.NamedTensorMap,\n): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock3Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock3Params('dense0', true),\n dense1: extractDenseBlock3Params('dense1'),\n dense2: extractDenseBlock3Params('dense2'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsTiny(weights: Float32Array): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock3Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock3Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock3Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock3Params(64, 128, 'dense2');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { dense0, dense1, dense2 },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock3 } from './denseBlock';\nimport { extractParamsFromWeightMapTiny } from './extractParamsFromWeightMapTiny';\nimport { extractParamsTiny } from './extractParamsTiny';\nimport { IFaceFeatureExtractor, TinyFaceFeatureExtractorParams } from './types';\n\nexport class TinyFaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('TinyFaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyFaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255)) as tf.Tensor4D;\n\n let out = denseBlock3(normalized, params.dense0, true);\n out = denseBlock3(out, params.dense1);\n out = denseBlock3(out, params.dense2);\n out = tf.avgPool(out, [14, 14], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_tiny_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMapTiny(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParamsTiny(weights);\n }\n}\n", "import { TinyFaceFeatureExtractor } from '../faceFeatureExtractor/TinyFaceFeatureExtractor';\nimport { TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68TinyNet extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: TinyFaceFeatureExtractor = new TinyFaceFeatureExtractor()) {\n super('FaceLandmark68TinyNet', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_tiny_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 128;\n }\n}\n", "import { FaceLandmark68Net } from './FaceLandmark68Net';\n\nexport * from './FaceLandmark68Net';\nexport * from './FaceLandmark68TinyNet';\nexport class FaceLandmarkNet extends FaceLandmark68Net {}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ScaleLayerParams } from './types';\n\nexport function scale(x: tf.Tensor4D, params: ScaleLayerParams): tf.Tensor4D {\n return tf.add(tf.mul(x, params.weights), params.biases);\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { scale } from './scaleLayer';\nimport { ConvLayerParams } from './types';\n\nfunction convLayer(\n x: tf.Tensor4D,\n params: ConvLayerParams,\n strides: [number, number],\n withRelu: boolean,\n padding: 'valid' | 'same' = 'same',\n): tf.Tensor4D {\n const { filters, bias } = params.conv;\n\n let out = tf.conv2d(x, filters, strides, padding);\n out = tf.add(out, bias);\n out = scale(out, params.scale);\n return withRelu ? tf.relu(out) : out;\n}\n\nexport function conv(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], true);\n}\n\nexport function convNoRelu(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], false);\n}\n\nexport function convDown(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [2, 2], true, 'valid');\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ConvParams, extractWeightsFactory, ExtractWeightsFunction, ParamMapping,\n} from '../common/index';\nimport { isFloat } from '../utils/index';\nimport {\n ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams,\n} from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractFilterValues(numFilterValues: number, numFilters: number, filterSize: number): tf.Tensor4D {\n const weights = extractWeights(numFilterValues);\n const depth = weights.length / (numFilters * filterSize * filterSize);\n\n if (isFloat(depth)) {\n throw new Error(`depth has to be an integer: ${depth}, weights.length: ${weights.length}, numFilters: ${numFilters}, filterSize: ${filterSize}`);\n }\n\n return tf.tidy(\n () => tf.transpose(\n tf.tensor4d(weights, [numFilters, depth, filterSize, filterSize]),\n [2, 3, 1, 0],\n ),\n );\n }\n\n function extractConvParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams {\n const filters = extractFilterValues(numFilterValues, numFilters, filterSize);\n const bias = tf.tensor1d(extractWeights(numFilters));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n }\n\n function extractScaleLayerParams(numWeights: number, mappedPrefix: string): ScaleLayerParams {\n const weights = tf.tensor1d(extractWeights(numWeights));\n const biases = tf.tensor1d(extractWeights(numWeights));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/biases` },\n );\n\n return {\n weights,\n biases,\n };\n }\n\n function extractConvLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvLayerParams {\n const conv = extractConvParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv`);\n const scale = extractScaleLayerParams(numFilters, `${mappedPrefix}/scale`);\n\n return { conv, scale };\n }\n\n function extractResidualLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n isDown: boolean = false,\n ): ResidualLayerParams {\n const conv1 = extractConvLayerParams((isDown ? 0.5 : 1) * numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv1`);\n const conv2 = extractConvLayerParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv2`);\n\n return { conv1, conv2 };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const conv32_down = extractConvLayerParams(4704, 32, 7, 'conv32_down');\n const conv32_1 = extractResidualLayerParams(9216, 32, 3, 'conv32_1');\n const conv32_2 = extractResidualLayerParams(9216, 32, 3, 'conv32_2');\n const conv32_3 = extractResidualLayerParams(9216, 32, 3, 'conv32_3');\n\n const conv64_down = extractResidualLayerParams(36864, 64, 3, 'conv64_down', true);\n const conv64_1 = extractResidualLayerParams(36864, 64, 3, 'conv64_1');\n const conv64_2 = extractResidualLayerParams(36864, 64, 3, 'conv64_2');\n const conv64_3 = extractResidualLayerParams(36864, 64, 3, 'conv64_3');\n\n const conv128_down = extractResidualLayerParams(147456, 128, 3, 'conv128_down', true);\n const conv128_1 = extractResidualLayerParams(147456, 128, 3, 'conv128_1');\n const conv128_2 = extractResidualLayerParams(147456, 128, 3, 'conv128_2');\n\n const conv256_down = extractResidualLayerParams(589824, 256, 3, 'conv256_down', true);\n const conv256_1 = extractResidualLayerParams(589824, 256, 3, 'conv256_1');\n const conv256_2 = extractResidualLayerParams(589824, 256, 3, 'conv256_2');\n const conv256_down_out = extractResidualLayerParams(589824, 256, 3, 'conv256_down_out');\n\n const fc = tf.tidy(\n () => tf.transpose(tf.tensor2d(extractWeights(256 * 128), [128, 256]), [1, 0]),\n );\n paramMappings.push({ paramPath: 'fc' });\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from '../common/index';\nimport { isTensor2D } from '../utils/index';\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractScaleLayerParams(prefix: string): ScaleLayerParams {\n const weights = extractWeightEntry(`${prefix}/scale/weights`, 1);\n const biases = extractWeightEntry(`${prefix}/scale/biases`, 1);\n\n return { weights, biases };\n }\n\n function extractConvLayerParams(prefix: string): ConvLayerParams {\n const filters = extractWeightEntry(`${prefix}/conv/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/conv/bias`, 1);\n const scale = extractScaleLayerParams(prefix);\n\n return { conv: { filters, bias }, scale };\n }\n\n function extractResidualLayerParams(prefix: string): ResidualLayerParams {\n return {\n conv1: extractConvLayerParams(`${prefix}/conv1`),\n conv2: extractConvLayerParams(`${prefix}/conv2`),\n };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n const conv32_down = extractConvLayerParams('conv32_down');\n const conv32_1 = extractResidualLayerParams('conv32_1');\n const conv32_2 = extractResidualLayerParams('conv32_2');\n const conv32_3 = extractResidualLayerParams('conv32_3');\n\n const conv64_down = extractResidualLayerParams('conv64_down');\n const conv64_1 = extractResidualLayerParams('conv64_1');\n const conv64_2 = extractResidualLayerParams('conv64_2');\n const conv64_3 = extractResidualLayerParams('conv64_3');\n\n const conv128_down = extractResidualLayerParams('conv128_down');\n const conv128_1 = extractResidualLayerParams('conv128_1');\n const conv128_2 = extractResidualLayerParams('conv128_2');\n\n const conv256_down = extractResidualLayerParams('conv256_down');\n const conv256_1 = extractResidualLayerParams('conv256_1');\n const conv256_2 = extractResidualLayerParams('conv256_2');\n const conv256_down_out = extractResidualLayerParams('conv256_down_out');\n\n const { fc } = weightMap;\n paramMappings.push({ originalPath: 'fc', paramPath: 'fc' });\n\n if (!isTensor2D(fc)) {\n throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${fc}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { conv, convDown, convNoRelu } from './convLayer';\nimport { ResidualLayerParams } from './types';\n\nexport function residual(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = conv(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n out = tf.add(out, x);\n out = tf.relu(out);\n return out;\n}\n\nexport function residualDown(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = convDown(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n\n let pooled = tf.avgPool(x, 2, 2, 'valid') as tf.Tensor4D;\n const zeros = tf.zeros(pooled.shape);\n const isPad = pooled.shape[3] !== out.shape[3];\n const isAdjustShape = pooled.shape[1] !== out.shape[1] || pooled.shape[2] !== out.shape[2];\n\n if (isAdjustShape) {\n const padShapeX = [...out.shape] as [number, number, number, number];\n padShapeX[1] = 1;\n const zerosW = tf.zeros(padShapeX);\n out = tf.concat([out, zerosW], 1);\n\n const padShapeY = [...out.shape] as [number, number, number, number];\n padShapeY[2] = 1;\n const zerosH = tf.zeros(padShapeY);\n out = tf.concat([out, zerosH], 2);\n }\n\n pooled = isPad ? tf.concat([pooled, zeros], 3) : pooled;\n out = tf.add(pooled, out) as tf.Tensor4D;\n\n out = tf.relu(out);\n return out;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { convDown } from './convLayer';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { residual, residualDown } from './residualLayer';\nimport { NetParams } from './types';\n\nexport class FaceRecognitionNet extends NeuralNetwork {\n constructor() {\n super('FaceRecognitionNet');\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceRecognitionNet - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(150, true), 'float32');\n\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(256)) as tf.Tensor4D;\n\n let out = convDown(normalized, params.conv32_down);\n out = tf.maxPool(out, 3, 2, 'valid');\n\n out = residual(out, params.conv32_1);\n out = residual(out, params.conv32_2);\n out = residual(out, params.conv32_3);\n\n out = residualDown(out, params.conv64_down);\n out = residual(out, params.conv64_1);\n out = residual(out, params.conv64_2);\n out = residual(out, params.conv64_3);\n\n out = residualDown(out, params.conv128_down);\n out = residual(out, params.conv128_1);\n out = residual(out, params.conv128_2);\n\n out = residualDown(out, params.conv256_down);\n out = residual(out, params.conv256_1);\n out = residual(out, params.conv256_2);\n out = residualDown(out, params.conv256_down_out);\n\n const globalAvg = out.mean([1, 2]) as tf.Tensor2D;\n const fullyConnected = tf.matMul(globalAvg, params.fc);\n\n return fullyConnected;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async computeFaceDescriptor(input: TNetInput): Promise {\n if (input?.shape?.some((dim) => dim <= 0)) return new Float32Array(128);\n const netInput = await toNetInput(input);\n const faceDescriptorTensors = tf.tidy(\n () => tf.unstack(this.forwardInput(netInput)),\n );\n const faceDescriptorsForBatch = await Promise.all(faceDescriptorTensors.map((t) => t.data())) as Float32Array[];\n faceDescriptorTensors.forEach((t) => t.dispose());\n return netInput.isBatchInput ? faceDescriptorsForBatch : faceDescriptorsForBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_recognition_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { FaceRecognitionNet } from './FaceRecognitionNet';\n\nexport * from './FaceRecognitionNet';\n\nexport function createFaceRecognitionNet(weights: Float32Array) {\n const net = new FaceRecognitionNet();\n net.extractWeights(weights);\n return net;\n}\n", "export type WithFaceDescriptor = TSource & {\n descriptor: Float32Array\n}\n\nexport function extendWithFaceDescriptor<\n TSource\n>(\n sourceObj: TSource,\n descriptor: Float32Array,\n): WithFaceDescriptor {\n const extension = { descriptor };\n return { ...sourceObj, ...extension };\n}\n", "export type WithAge = TSource & {\n age: number\n}\n\nexport function isWithAge(obj: any): obj is WithAge<{}> {\n return typeof obj.age === 'number';\n}\n\nexport function extendWithAge<\n TSource\n>(\n sourceObj: TSource,\n age: number,\n): WithAge {\n const extension = { age };\n return { ...sourceObj, ...extension };\n}\n", "import { Gender } from '../ageGenderNet/types';\nimport { isValidProbablitiy } from '../utils/index';\n\nexport type WithGender = TSource & {\n gender: Gender\n genderProbability: number\n}\n\nexport function isWithGender(obj: any): obj is WithGender<{}> {\n return (obj.gender === Gender.MALE || obj.gender === Gender.FEMALE)\n && isValidProbablitiy(obj.genderProbability);\n}\n\nexport function extendWithGender<\n TSource\n>(\n sourceObj: TSource,\n gender: Gender,\n genderProbability: number,\n): WithGender {\n const extension = { gender, genderProbability };\n return { ...sourceObj, ...extension };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ExtractWeightsFunction, ParamMapping, ConvParams, extractWeightsFactory,\n} from '../common/index';\nimport {\n MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams,\n} from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractDepthwiseConvParams(numChannels: number, mappedPrefix: string): MobileNetV1.DepthwiseConvParams {\n const filters = tf.tensor4d(extractWeights(3 * 3 * numChannels), [3, 3, numChannels, 1]);\n const batch_norm_scale = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_offset = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_mean = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_variance = tf.tensor1d(extractWeights(numChannels));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/batch_norm_scale` },\n { paramPath: `${mappedPrefix}/batch_norm_offset` },\n { paramPath: `${mappedPrefix}/batch_norm_mean` },\n { paramPath: `${mappedPrefix}/batch_norm_variance` },\n );\n\n return {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n };\n }\n\n function extractConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n isPointwiseConv?: boolean,\n ): ConvParams {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/${isPointwiseConv ? 'batch_norm_offset' : 'bias'}` },\n );\n\n return { filters, bias };\n }\n\n function extractPointwiseConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): PointwiseConvParams {\n const {\n filters,\n bias,\n } = extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, true);\n\n return {\n filters,\n batch_norm_offset: bias,\n };\n }\n\n function extractConvPairParams(\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): MobileNetV1.ConvPairParams {\n const depthwise_conv = extractDepthwiseConvParams(channelsIn, `${mappedPrefix}/depthwise_conv`);\n const pointwise_conv = extractPointwiseConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/pointwise_conv`);\n\n return { depthwise_conv, pointwise_conv };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n const conv_0 = extractPointwiseConvParams(3, 32, 3, 'mobilenetv1/conv_0');\n const conv_1 = extractConvPairParams(32, 64, 'mobilenetv1/conv_1');\n const conv_2 = extractConvPairParams(64, 128, 'mobilenetv1/conv_2');\n const conv_3 = extractConvPairParams(128, 128, 'mobilenetv1/conv_3');\n const conv_4 = extractConvPairParams(128, 256, 'mobilenetv1/conv_4');\n const conv_5 = extractConvPairParams(256, 256, 'mobilenetv1/conv_5');\n const conv_6 = extractConvPairParams(256, 512, 'mobilenetv1/conv_6');\n const conv_7 = extractConvPairParams(512, 512, 'mobilenetv1/conv_7');\n const conv_8 = extractConvPairParams(512, 512, 'mobilenetv1/conv_8');\n const conv_9 = extractConvPairParams(512, 512, 'mobilenetv1/conv_9');\n const conv_10 = extractConvPairParams(512, 512, 'mobilenetv1/conv_10');\n const conv_11 = extractConvPairParams(512, 512, 'mobilenetv1/conv_11');\n const conv_12 = extractConvPairParams(512, 1024, 'mobilenetv1/conv_12');\n const conv_13 = extractConvPairParams(1024, 1024, 'mobilenetv1/conv_13');\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n conv_8,\n conv_9,\n conv_10,\n conv_11,\n conv_12,\n conv_13,\n };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n const conv_0 = extractPointwiseConvParams(1024, 256, 1, 'prediction_layer/conv_0');\n const conv_1 = extractPointwiseConvParams(256, 512, 3, 'prediction_layer/conv_1');\n const conv_2 = extractPointwiseConvParams(512, 128, 1, 'prediction_layer/conv_2');\n const conv_3 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_3');\n const conv_4 = extractPointwiseConvParams(256, 128, 1, 'prediction_layer/conv_4');\n const conv_5 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_5');\n const conv_6 = extractPointwiseConvParams(256, 64, 1, 'prediction_layer/conv_6');\n const conv_7 = extractPointwiseConvParams(64, 128, 3, 'prediction_layer/conv_7');\n const box_encoding_0_predictor = extractConvParams(512, 12, 1, 'prediction_layer/box_predictor_0/box_encoding_predictor');\n const class_predictor_0 = extractConvParams(512, 9, 1, 'prediction_layer/box_predictor_0/class_predictor');\n const box_encoding_1_predictor = extractConvParams(1024, 24, 1, 'prediction_layer/box_predictor_1/box_encoding_predictor');\n const class_predictor_1 = extractConvParams(1024, 18, 1, 'prediction_layer/box_predictor_1/class_predictor');\n const box_encoding_2_predictor = extractConvParams(512, 24, 1, 'prediction_layer/box_predictor_2/box_encoding_predictor');\n const class_predictor_2 = extractConvParams(512, 18, 1, 'prediction_layer/box_predictor_2/class_predictor');\n const box_encoding_3_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_3/box_encoding_predictor');\n const class_predictor_3 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_3/class_predictor');\n const box_encoding_4_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_4/box_encoding_predictor');\n const class_predictor_4 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_4/class_predictor');\n const box_encoding_5_predictor = extractConvParams(128, 24, 1, 'prediction_layer/box_predictor_5/box_encoding_predictor');\n const class_predictor_5 = extractConvParams(128, 18, 1, 'prediction_layer/box_predictor_5/class_predictor');\n\n const box_predictor_0 = {\n box_encoding_predictor: box_encoding_0_predictor,\n class_predictor: class_predictor_0,\n };\n const box_predictor_1 = {\n box_encoding_predictor: box_encoding_1_predictor,\n class_predictor: class_predictor_1,\n };\n const box_predictor_2 = {\n box_encoding_predictor: box_encoding_2_predictor,\n class_predictor: class_predictor_2,\n };\n const box_predictor_3 = {\n box_encoding_predictor: box_encoding_3_predictor,\n class_predictor: class_predictor_3,\n };\n const box_predictor_4 = {\n box_encoding_predictor: box_encoding_4_predictor,\n class_predictor: class_predictor_4,\n };\n const box_predictor_5 = {\n box_encoding_predictor: box_encoding_5_predictor,\n class_predictor: class_predictor_5,\n };\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n box_predictor_0,\n box_predictor_1,\n box_predictor_2,\n box_predictor_3,\n box_predictor_4,\n box_predictor_5,\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n const mobilenetv1 = extractMobilenetV1Params();\n const prediction_layer = extractPredictionLayerParams();\n const extra_dim = tf.tensor3d(\n extractWeights(5118 * 4),\n [1, 5118, 4],\n );\n const output_layer = {\n extra_dim,\n };\n paramMappings.push({ paramPath: 'output_layer/extra_dim' });\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n params: {\n mobilenetv1,\n prediction_layer,\n output_layer,\n },\n paramMappings,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ConvParams, disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping,\n} from '../common/index';\nimport { isTensor3D } from '../utils/index';\nimport {\n BoxPredictionParams, MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams,\n} from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractPointwiseConvParams(prefix: string, idx: number, mappedPrefix: string): PointwiseConvParams {\n const filters = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/weights`, 4, `${mappedPrefix}/filters`);\n const batch_norm_offset = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/convolution_bn_offset`, 1, `${mappedPrefix}/batch_norm_offset`);\n return { filters, batch_norm_offset };\n }\n\n function extractConvPairParams(idx: number): MobileNetV1.ConvPairParams {\n const mappedPrefix = `mobilenetv1/conv_${idx}`;\n const prefixDepthwiseConv = `MobilenetV1/Conv2d_${idx}_depthwise`;\n const mappedPrefixDepthwiseConv = `${mappedPrefix}/depthwise_conv`;\n const mappedPrefixPointwiseConv = `${mappedPrefix}/pointwise_conv`;\n\n const filters = extractWeightEntry(`${prefixDepthwiseConv}/depthwise_weights`, 4, `${mappedPrefixDepthwiseConv}/filters`);\n const batch_norm_scale = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/gamma`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_scale`);\n const batch_norm_offset = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/beta`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_offset`);\n const batch_norm_mean = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_mean`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_mean`);\n const batch_norm_variance = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_variance`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_variance`);\n\n return {\n depthwise_conv: {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n },\n pointwise_conv: extractPointwiseConvParams('MobilenetV1', idx, mappedPrefixPointwiseConv),\n };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n return {\n conv_0: extractPointwiseConvParams('MobilenetV1', 0, 'mobilenetv1/conv_0'),\n conv_1: extractConvPairParams(1),\n conv_2: extractConvPairParams(2),\n conv_3: extractConvPairParams(3),\n conv_4: extractConvPairParams(4),\n conv_5: extractConvPairParams(5),\n conv_6: extractConvPairParams(6),\n conv_7: extractConvPairParams(7),\n conv_8: extractConvPairParams(8),\n conv_9: extractConvPairParams(9),\n conv_10: extractConvPairParams(10),\n conv_11: extractConvPairParams(11),\n conv_12: extractConvPairParams(12),\n conv_13: extractConvPairParams(13),\n };\n }\n\n function extractConvParams(prefix: string, mappedPrefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/weights`, 4, `${mappedPrefix}/filters`);\n const bias = extractWeightEntry(`${prefix}/biases`, 1, `${mappedPrefix}/bias`);\n return { filters, bias };\n }\n\n function extractBoxPredictorParams(idx: number): BoxPredictionParams {\n const box_encoding_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/BoxEncodingPredictor`,\n `prediction_layer/box_predictor_${idx}/box_encoding_predictor`,\n );\n const class_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/ClassPredictor`,\n `prediction_layer/box_predictor_${idx}/class_predictor`,\n );\n return { box_encoding_predictor, class_predictor };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n return {\n conv_0: extractPointwiseConvParams('Prediction', 0, 'prediction_layer/conv_0'),\n conv_1: extractPointwiseConvParams('Prediction', 1, 'prediction_layer/conv_1'),\n conv_2: extractPointwiseConvParams('Prediction', 2, 'prediction_layer/conv_2'),\n conv_3: extractPointwiseConvParams('Prediction', 3, 'prediction_layer/conv_3'),\n conv_4: extractPointwiseConvParams('Prediction', 4, 'prediction_layer/conv_4'),\n conv_5: extractPointwiseConvParams('Prediction', 5, 'prediction_layer/conv_5'),\n conv_6: extractPointwiseConvParams('Prediction', 6, 'prediction_layer/conv_6'),\n conv_7: extractPointwiseConvParams('Prediction', 7, 'prediction_layer/conv_7'),\n box_predictor_0: extractBoxPredictorParams(0),\n box_predictor_1: extractBoxPredictorParams(1),\n box_predictor_2: extractBoxPredictorParams(2),\n box_predictor_3: extractBoxPredictorParams(3),\n box_predictor_4: extractBoxPredictorParams(4),\n box_predictor_5: extractBoxPredictorParams(5),\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n const extra_dim = weightMap['Output/extra_dim'];\n paramMappings.push({ originalPath: 'Output/extra_dim', paramPath: 'output_layer/extra_dim' });\n if (!isTensor3D(extra_dim)) {\n throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${extra_dim}`);\n }\n\n const params = {\n mobilenetv1: extractMobilenetV1Params(),\n prediction_layer: extractPredictionLayerParams(),\n output_layer: {\n extra_dim,\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { PointwiseConvParams } from './types';\n\nexport function pointwiseConvLayer(\n x: tf.Tensor4D,\n params: PointwiseConvParams,\n strides: [number, number],\n) {\n return tf.tidy(() => {\n let out = tf.conv2d(x, params.filters, strides, 'same');\n out = tf.add(out, params.batch_norm_offset);\n return tf.clipByValue(out, 0, 6);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { MobileNetV1 } from './types';\n\nconst epsilon = 0.0010000000474974513;\n\nfunction depthwiseConvLayer(\n x: tf.Tensor4D,\n params: MobileNetV1.DepthwiseConvParams,\n strides: [number, number],\n) {\n return tf.tidy(() => {\n let out = tf.depthwiseConv2d(x, params.filters, strides, 'same');\n out = tf.batchNorm(\n out,\n params.batch_norm_mean,\n params.batch_norm_variance,\n params.batch_norm_offset,\n params.batch_norm_scale,\n epsilon,\n );\n return tf.clipByValue(out, 0, 6);\n });\n}\n\nfunction getStridesForLayerIdx(layerIdx: number): [number, number] {\n return [2, 4, 6, 12].some((idx) => idx === layerIdx) ? [2, 2] : [1, 1];\n}\n\nexport function mobileNetV1(x: tf.Tensor4D, params: MobileNetV1.Params) {\n return tf.tidy(() => {\n let conv11;\n let out = pointwiseConvLayer(x, params.conv_0, [2, 2]);\n\n const convPairParams = [\n params.conv_1,\n params.conv_2,\n params.conv_3,\n params.conv_4,\n params.conv_5,\n params.conv_6,\n params.conv_7,\n params.conv_8,\n params.conv_9,\n params.conv_10,\n params.conv_11,\n params.conv_12,\n params.conv_13,\n ];\n\n convPairParams.forEach((param, i) => {\n const layerIdx = i + 1;\n const depthwiseConvStrides = getStridesForLayerIdx(layerIdx);\n out = depthwiseConvLayer(out, param.depthwise_conv, depthwiseConvStrides);\n out = pointwiseConvLayer(out, param.pointwise_conv, [1, 1]);\n if (layerIdx === 11) {\n conv11 = out;\n }\n });\n\n if (conv11 === null) {\n throw new Error('mobileNetV1 - output of conv layer 11 is null');\n }\n\n return {\n out,\n conv11: conv11 as any,\n };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nfunction IOU(boxes: tf.Tensor2D, i: number, j: number) {\n const boxesData = boxes.arraySync();\n const yminI = Math.min(boxesData[i][0], boxesData[i][2]);\n const xminI = Math.min(boxesData[i][1], boxesData[i][3]);\n const ymaxI = Math.max(boxesData[i][0], boxesData[i][2]);\n const xmaxI = Math.max(boxesData[i][1], boxesData[i][3]);\n const yminJ = Math.min(boxesData[j][0], boxesData[j][2]);\n const xminJ = Math.min(boxesData[j][1], boxesData[j][3]);\n const ymaxJ = Math.max(boxesData[j][0], boxesData[j][2]);\n const xmaxJ = Math.max(boxesData[j][1], boxesData[j][3]);\n const areaI = (ymaxI - yminI) * (xmaxI - xminI);\n const areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ);\n if (areaI <= 0 || areaJ <= 0) {\n return 0.0;\n }\n const intersectionYmin = Math.max(yminI, yminJ);\n const intersectionXmin = Math.max(xminI, xminJ);\n const intersectionYmax = Math.min(ymaxI, ymaxJ);\n const intersectionXmax = Math.min(xmaxI, xmaxJ);\n const intersectionArea = Math.max(intersectionYmax - intersectionYmin, 0.0)\n * Math.max(intersectionXmax - intersectionXmin, 0.0);\n return intersectionArea / (areaI + areaJ - intersectionArea);\n}\n\nexport function nonMaxSuppression(\n boxes: tf.Tensor2D,\n scores: number[],\n maxOutputSize: number,\n iouThreshold: number,\n scoreThreshold: number,\n): number[] {\n const numBoxes = boxes.shape[0];\n const outputSize = Math.min(\n maxOutputSize,\n numBoxes,\n );\n\n const candidates = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .filter((c) => c.score > scoreThreshold)\n .sort((c1, c2) => c2.score - c1.score);\n\n const suppressFunc = (x: number) => (x <= iouThreshold ? 1 : 0);\n const selected: number[] = [];\n\n candidates.forEach((c) => {\n if (selected.length >= outputSize) return;\n const originalScore = c.score;\n for (let j = selected.length - 1; j >= 0; --j) {\n const iou = IOU(boxes, c.boxIndex, selected[j]);\n if (iou === 0.0) continue;\n c.score *= suppressFunc(iou);\n if (c.score <= scoreThreshold) break;\n }\n if (originalScore === c.score) {\n selected.push(c.boxIndex);\n }\n });\n return selected;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { OutputLayerParams } from './types';\n\nfunction getCenterCoordinatesAndSizesLayer(x: tf.Tensor2D) {\n const vec = tf.unstack(tf.transpose(x, [1, 0]));\n\n const sizes = [\n tf.sub(vec[2], vec[0]),\n tf.sub(vec[3], vec[1]),\n ];\n const centers = [\n tf.add(vec[0], tf.div(sizes[0], tf.scalar(2))),\n tf.add(vec[1], tf.div(sizes[1], tf.scalar(2))),\n ];\n return {\n sizes,\n centers,\n };\n}\n\nfunction decodeBoxesLayer(x0: tf.Tensor2D, x1: tf.Tensor2D) {\n const {\n sizes,\n centers,\n } = getCenterCoordinatesAndSizesLayer(x0);\n\n const vec = tf.unstack(tf.transpose(x1, [1, 0]));\n const div0_out = tf.div(tf.mul(tf.exp(tf.div(vec[2], tf.scalar(5))), sizes[0]), tf.scalar(2));\n const add0_out = tf.add(tf.mul(tf.div(vec[0], tf.scalar(10)), sizes[0]), centers[0]);\n const div1_out = tf.div(tf.mul(tf.exp(tf.div(vec[3], tf.scalar(5))), sizes[1]), tf.scalar(2));\n const add1_out = tf.add(tf.mul(tf.div(vec[1], tf.scalar(10)), sizes[1]), centers[1]);\n\n return tf.transpose(\n tf.stack([\n tf.sub(add0_out, div0_out),\n tf.sub(add1_out, div1_out),\n tf.add(add0_out, div0_out),\n tf.add(add1_out, div1_out),\n ]),\n [1, 0],\n );\n}\n\nexport function outputLayer(\n boxPredictions: tf.Tensor4D,\n classPredictions: tf.Tensor4D,\n params: OutputLayerParams,\n) {\n return tf.tidy(() => {\n const batchSize = boxPredictions.shape[0];\n\n let boxes = decodeBoxesLayer(\n tf.reshape(tf.tile(params.extra_dim, [batchSize, 1, 1]), [-1, 4]) as tf.Tensor2D,\n tf.reshape(boxPredictions, [-1, 4]) as tf.Tensor2D,\n );\n boxes = tf.reshape(\n boxes,\n [batchSize, (boxes.shape[0] / batchSize), 4],\n );\n\n const scoresAndClasses = tf.sigmoid(tf.slice(classPredictions, [0, 0, 1], [-1, -1, -1]));\n let scores = tf.slice(scoresAndClasses, [0, 0, 0], [-1, -1, 1]) as tf.Tensor;\n\n scores = tf.reshape(\n scores,\n [batchSize, scores.shape[1] as number],\n );\n\n const boxesByBatch = tf.unstack(boxes) as tf.Tensor2D[];\n const scoresByBatch = tf.unstack(scores) as tf.Tensor1D[];\n\n return {\n boxes: boxesByBatch,\n scores: scoresByBatch,\n };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { convLayer } from '../common/index';\nimport { BoxPredictionParams } from './types';\n\nexport function boxPredictionLayer(\n x: tf.Tensor4D,\n params: BoxPredictionParams,\n) {\n return tf.tidy(() => {\n const batchSize = x.shape[0];\n const boxPredictionEncoding = tf.reshape(\n convLayer(x, params.box_encoding_predictor),\n [batchSize, -1, 1, 4],\n );\n const classPrediction = tf.reshape(\n convLayer(x, params.class_predictor),\n [batchSize, -1, 3],\n );\n return { boxPredictionEncoding, classPrediction };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { boxPredictionLayer } from './boxPredictionLayer';\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { PredictionLayerParams } from './types';\n\nexport function predictionLayer(\n x: tf.Tensor4D,\n conv11: tf.Tensor4D,\n params: PredictionLayerParams,\n) {\n return tf.tidy(() => {\n const conv0 = pointwiseConvLayer(x, params.conv_0, [1, 1]);\n const conv1 = pointwiseConvLayer(conv0, params.conv_1, [2, 2]);\n const conv2 = pointwiseConvLayer(conv1, params.conv_2, [1, 1]);\n const conv3 = pointwiseConvLayer(conv2, params.conv_3, [2, 2]);\n const conv4 = pointwiseConvLayer(conv3, params.conv_4, [1, 1]);\n const conv5 = pointwiseConvLayer(conv4, params.conv_5, [2, 2]);\n const conv6 = pointwiseConvLayer(conv5, params.conv_6, [1, 1]);\n const conv7 = pointwiseConvLayer(conv6, params.conv_7, [2, 2]);\n\n const boxPrediction0 = boxPredictionLayer(conv11, params.box_predictor_0);\n const boxPrediction1 = boxPredictionLayer(x, params.box_predictor_1);\n const boxPrediction2 = boxPredictionLayer(conv1, params.box_predictor_2);\n const boxPrediction3 = boxPredictionLayer(conv3, params.box_predictor_3);\n const boxPrediction4 = boxPredictionLayer(conv5, params.box_predictor_4);\n const boxPrediction5 = boxPredictionLayer(conv7, params.box_predictor_5);\n\n const boxPredictions = tf.concat([\n boxPrediction0.boxPredictionEncoding,\n boxPrediction1.boxPredictionEncoding,\n boxPrediction2.boxPredictionEncoding,\n boxPrediction3.boxPredictionEncoding,\n boxPrediction4.boxPredictionEncoding,\n boxPrediction5.boxPredictionEncoding,\n ], 1) as tf.Tensor4D;\n\n const classPredictions = tf.concat([\n boxPrediction0.classPrediction,\n boxPrediction1.classPrediction,\n boxPrediction2.classPrediction,\n boxPrediction3.classPrediction,\n boxPrediction4.classPrediction,\n boxPrediction5.classPrediction,\n ], 1) as tf.Tensor4D;\n\n return {\n boxPredictions,\n classPredictions,\n };\n });\n}\n", "export interface ISsdMobilenetv1Options {\n minConfidence?: number\n maxResults?: number\n}\n\nexport class SsdMobilenetv1Options {\n protected _name: string = 'SsdMobilenetv1Options'\n\n private _minConfidence: number\n\n private _maxResults: number\n\n constructor({ minConfidence, maxResults }: ISsdMobilenetv1Options = {}) {\n this._minConfidence = minConfidence || 0.5;\n this._maxResults = maxResults || 100;\n\n if (typeof this._minConfidence !== 'number' || this._minConfidence <= 0 || this._minConfidence >= 1) {\n throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);\n }\n\n if (typeof this._maxResults !== 'number') {\n throw new Error(`${this._name} - expected maxResults to be a number`);\n }\n }\n\n get minConfidence(): number { return this._minConfidence; }\n\n get maxResults(): number { return this._maxResults; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { mobileNetV1 } from './mobileNetV1';\nimport { nonMaxSuppression } from './nonMaxSuppression';\nimport { outputLayer } from './outputLayer';\nimport { predictionLayer } from './predictionLayer';\nimport { ISsdMobilenetv1Options, SsdMobilenetv1Options } from './SsdMobilenetv1Options';\nimport { NetParams } from './types';\n\nexport class SsdMobilenetv1 extends NeuralNetwork {\n constructor() {\n super('SsdMobilenetv1');\n }\n\n public forwardInput(input: NetInput) {\n const { params } = this;\n\n if (!params) {\n throw new Error('SsdMobilenetv1 - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(512, false), 'float32');\n const x = tf.sub(tf.mul(batchTensor, tf.scalar(0.007843137718737125)), tf.scalar(1)) as tf.Tensor4D;\n const features = mobileNetV1(x, params.mobilenetv1);\n\n const { boxPredictions, classPredictions } = predictionLayer(features.out, features.conv11, params.prediction_layer);\n\n return outputLayer(boxPredictions, classPredictions, params.output_layer);\n });\n }\n\n public async forward(input: TNetInput) {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async locateFaces(\n input: TNetInput,\n options: ISsdMobilenetv1Options = {},\n ): Promise {\n const { maxResults, minConfidence } = new SsdMobilenetv1Options(options);\n\n const netInput = await toNetInput(input);\n\n const {\n boxes: _boxes,\n scores: _scores,\n } = this.forwardInput(netInput);\n\n const boxes = _boxes[0];\n const scores = _scores[0];\n for (let i = 1; i < _boxes.length; i++) {\n _boxes[i].dispose();\n _scores[i].dispose();\n }\n\n const scoresData = Array.from(await scores.data());\n const iouThreshold = 0.5;\n const indices = nonMaxSuppression(\n boxes,\n scoresData as number[],\n maxResults,\n iouThreshold,\n minConfidence,\n );\n\n const reshapedDims = netInput.getReshapedInputDimensions(0);\n const inputSize = netInput.inputSize as number;\n const padX = inputSize / reshapedDims.width;\n const padY = inputSize / reshapedDims.height;\n\n const boxesData = boxes.arraySync();\n const results = indices\n .map((idx) => {\n const [top, bottom] = [\n Math.max(0, boxesData[idx][0]),\n Math.min(1.0, boxesData[idx][2]),\n ].map((val) => val * padY);\n const [left, right] = [\n Math.max(0, boxesData[idx][1]),\n Math.min(1.0, boxesData[idx][3]),\n ].map((val) => val * padX);\n return new FaceDetection(\n scoresData[idx] as number,\n new Rect(\n left,\n top,\n right - left,\n bottom - top,\n ),\n {\n height: netInput.getInputHeight(0),\n width: netInput.getInputWidth(0),\n },\n );\n });\n\n boxes.dispose();\n scores.dispose();\n return results;\n }\n\n protected getDefaultModelName(): string {\n return 'ssd_mobilenetv1_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { SsdMobilenetv1 } from './SsdMobilenetv1';\n\nexport * from './SsdMobilenetv1';\nexport * from './SsdMobilenetv1Options';\n\nexport function createSsdMobilenetv1(weights: Float32Array) {\n const net = new SsdMobilenetv1();\n net.extractWeights(weights);\n return net;\n}\n\nexport function createFaceDetectionNet(weights: Float32Array) {\n return createSsdMobilenetv1(weights);\n}\n\n// alias for backward compatibily\nexport class FaceDetectionNet extends SsdMobilenetv1 {}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(0.738768, 0.874946),\n new Point(2.42204, 2.65704),\n new Point(4.30971, 7.04493),\n new Point(10.246, 4.59428),\n new Point(12.6868, 11.8741),\n];\n\nexport const BOX_ANCHORS_SEPARABLE = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB_SEPARABLE: [number, number, number] = [117.001, 114.697, 97.404];\n\nexport const DEFAULT_MODEL_NAME = 'tiny_yolov2_model';\nexport const DEFAULT_MODEL_NAME_SEPARABLE_CONV = 'tiny_yolov2_separable_conv_model';\n", "import { Point } from '../classes/Point';\n\nexport type TinyYolov2Config = {\n withSeparableConvs: boolean\n iouThreshold: number\n anchors: Point[]\n classes: string[]\n meanRgb?: [number, number, number]\n withClassScores?: boolean,\n filterSizes?: number[]\n isFirstLayerConv2d?: boolean\n}\n\nconst isNumber = (arg: any) => typeof arg === 'number';\n\nexport function validateConfig(config: any) {\n if (!config) {\n throw new Error(`invalid config: ${config}`);\n }\n\n if (typeof config.withSeparableConvs !== 'boolean') {\n throw new Error(`config.withSeparableConvs has to be a boolean, have: ${config.withSeparableConvs}`);\n }\n\n if (!isNumber(config.iouThreshold) || config.iouThreshold < 0 || config.iouThreshold > 1.0) {\n throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${config.iouThreshold}`);\n }\n\n if (\n !Array.isArray(config.classes)\n || !config.classes.length\n || !config.classes.every((c: any) => typeof c === 'string')\n ) {\n throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(config.classes)}`);\n }\n\n if (\n !Array.isArray(config.anchors)\n || !config.anchors.length\n || !config.anchors.map((a: any) => a || {}).every((a: any) => isNumber(a.x) && isNumber(a.y))\n ) {\n throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(config.anchors)}`);\n }\n\n if (config.meanRgb && (\n !Array.isArray(config.meanRgb)\n || config.meanRgb.length !== 3\n || !config.meanRgb.every(isNumber)\n )) {\n throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(config.meanRgb)}`);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function leaky(x: tf.Tensor4D): tf.Tensor4D {\n return tf.tidy(() => {\n const min = tf.mul(x, tf.scalar(0.10000000149011612));\n return tf.add(tf.relu(tf.sub(x, min)), min);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { leaky } from './leaky';\nimport { ConvWithBatchNorm } from './types';\n\nexport function convWithBatchNorm(x: tf.Tensor4D, params: ConvWithBatchNorm): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.conv2d(out, params.conv.filters, [1, 1], 'valid');\n out = tf.sub(out, params.bn.sub);\n out = tf.mul(out, params.bn.truediv);\n out = tf.add(out, params.conv.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from '../common/types';\nimport { leaky } from './leaky';\n\nexport function depthwiseSeparableConv(x: tf.Tensor4D, params: SeparableConvParams): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.separableConv2d(out, params.depthwise_filter, params.pointwise_filter, [1, 1], 'valid');\n out = tf.add(out, params.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { extractConvParamsFactory } from '../common/index';\nimport { extractSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightsFactory } from '../common/extractWeightsFactory';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n\n function extractBatchNormParams(size: number, mappedPrefix: string): BatchNorm {\n const sub = tf.tensor1d(extractWeights(size));\n const truediv = tf.tensor1d(extractWeights(size));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/sub` },\n { paramPath: `${mappedPrefix}/truediv` },\n );\n return { sub, truediv };\n }\n\n function extractConvWithBatchNormParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv`);\n const bn = extractBatchNormParams(channelsOut, `${mappedPrefix}/bn`);\n return { conv, bn };\n }\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParams(\n weights: Float32Array,\n config: TinyYolov2Config,\n boxEncodingSize: number,\n filterSizes: number[],\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(extractWeights, paramMappings);\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = config.isFirstLayerConv2d\n ? extractConvParams(s0, s1, 3, 'conv0')\n : extractSeparableConvParams(s0, s1, 'conv0');\n const conv1 = extractSeparableConvParams(s1, s2, 'conv1');\n const conv2 = extractSeparableConvParams(s2, s3, 'conv2');\n const conv3 = extractSeparableConvParams(s3, s4, 'conv3');\n const conv4 = extractSeparableConvParams(s4, s5, 'conv4');\n const conv5 = extractSeparableConvParams(s5, s6, 'conv5');\n const conv6 = s7 ? extractSeparableConvParams(s6, s7, 'conv6') : undefined;\n const conv7 = s8 ? extractSeparableConvParams(s7, s8, 'conv7') : undefined;\n const conv8 = extractConvParams(s8 || s7 || s6, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n } else {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = extractConvWithBatchNormParams(s0, s1, 'conv0');\n const conv1 = extractConvWithBatchNormParams(s1, s2, 'conv1');\n const conv2 = extractConvWithBatchNormParams(s2, s3, 'conv2');\n const conv3 = extractConvWithBatchNormParams(s3, s4, 'conv3');\n const conv4 = extractConvWithBatchNormParams(s4, s5, 'conv4');\n const conv5 = extractConvWithBatchNormParams(s5, s6, 'conv5');\n const conv6 = extractConvWithBatchNormParams(s6, s7, 'conv6');\n const conv7 = extractConvWithBatchNormParams(s7, s8, 'conv7');\n const conv8 = extractConvParams(s8, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n }\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from '../common/index';\nimport { disposeUnusedWeightTensors } from '../common/disposeUnusedWeightTensors';\nimport { loadSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightEntryFactory } from '../common/extractWeightEntryFactory';\nimport { ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractBatchNormParams(prefix: string): BatchNorm {\n const sub = extractWeightEntry(`${prefix}/sub`, 1);\n const truediv = extractWeightEntry(`${prefix}/truediv`, 1);\n return { sub, truediv };\n }\n\n function extractConvParams(prefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { filters, bias };\n }\n\n function extractConvWithBatchNormParams(prefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(`${prefix}/conv`);\n const bn = extractBatchNormParams(`${prefix}/bn`);\n return { conv, bn };\n }\n\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n config: TinyYolov2Config,\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n // eslint-disable-next-line no-mixed-operators\n const numFilters = (config.filterSizes && config.filterSizes.length || 9);\n params = {\n conv0: config.isFirstLayerConv2d ? extractConvParams('conv0') : extractSeparableConvParams('conv0'),\n conv1: extractSeparableConvParams('conv1'),\n conv2: extractSeparableConvParams('conv2'),\n conv3: extractSeparableConvParams('conv3'),\n conv4: extractSeparableConvParams('conv4'),\n conv5: extractSeparableConvParams('conv5'),\n conv6: numFilters > 7 ? extractSeparableConvParams('conv6') : undefined,\n conv7: numFilters > 8 ? extractSeparableConvParams('conv7') : undefined,\n conv8: extractConvParams('conv8'),\n };\n } else {\n params = {\n conv0: extractConvWithBatchNormParams('conv0'),\n conv1: extractConvWithBatchNormParams('conv1'),\n conv2: extractConvWithBatchNormParams('conv2'),\n conv3: extractConvWithBatchNormParams('conv3'),\n conv4: extractConvWithBatchNormParams('conv4'),\n conv5: extractConvWithBatchNormParams('conv5'),\n conv6: extractConvWithBatchNormParams('conv6'),\n conv7: extractConvWithBatchNormParams('conv7'),\n conv8: extractConvParams('conv8'),\n };\n }\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "export interface ITinyYolov2Options {\n inputSize?: number\n scoreThreshold?: number\n}\n\nexport class TinyYolov2Options {\n protected _name: string = 'TinyYolov2Options'\n\n private _inputSize: number\n\n private _scoreThreshold: number\n\n constructor({ inputSize, scoreThreshold }: ITinyYolov2Options = {}) {\n this._inputSize = inputSize || 416;\n this._scoreThreshold = scoreThreshold || 0.5;\n\n if (typeof this._inputSize !== 'number' || this._inputSize % 32 !== 0) {\n throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);\n }\n\n if (typeof this._scoreThreshold !== 'number' || this._scoreThreshold <= 0 || this._scoreThreshold >= 1) {\n throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`);\n }\n }\n\n get inputSize(): number { return this._inputSize; }\n\n get scoreThreshold(): number { return this._scoreThreshold; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { BoundingBox } from '../classes/BoundingBox';\nimport { Dimensions } from '../classes/Dimensions';\nimport { ObjectDetection } from '../classes/ObjectDetection';\nimport { convLayer } from '../common/index';\nimport { ConvParams, SeparableConvParams } from '../common/types';\nimport { toNetInput } from '../dom/index';\nimport { NetInput } from '../dom/NetInput';\nimport { TNetInput } from '../dom/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { sigmoid } from '../ops/index';\nimport { nonMaxSuppression } from '../ops/nonMaxSuppression';\nimport { normalize } from '../ops/normalize';\nimport { TinyYolov2Config, validateConfig } from './config';\nimport { convWithBatchNorm } from './convWithBatchNorm';\nimport { depthwiseSeparableConv } from './depthwiseSeparableConv';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { leaky } from './leaky';\nimport { ITinyYolov2Options, TinyYolov2Options } from './TinyYolov2Options';\nimport { DefaultTinyYolov2NetParams, MobilenetParams, TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2Base extends NeuralNetwork {\n public static DEFAULT_FILTER_SIZES = [3, 16, 32, 64, 128, 256, 512, 1024, 1024];\n\n private _config: TinyYolov2Config\n\n constructor(config: TinyYolov2Config) {\n super('TinyYolov2');\n validateConfig(config);\n this._config = config;\n }\n\n public get config(): TinyYolov2Config {\n return this._config;\n }\n\n public get withClassScores(): boolean {\n return this.config.withClassScores || this.config.classes.length > 1;\n }\n\n public get boxEncodingSize(): number {\n return 5 + (this.withClassScores ? this.config.classes.length : 0);\n }\n\n public runTinyYolov2(x: tf.Tensor4D, params: DefaultTinyYolov2NetParams): tf.Tensor4D {\n let out = convWithBatchNorm(x, params.conv0);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = convWithBatchNorm(out, params.conv6);\n out = convWithBatchNorm(out, params.conv7);\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public runMobilenet(x: tf.Tensor4D, params: MobilenetParams): tf.Tensor4D {\n let out = this.config.isFirstLayerConv2d\n ? leaky(convLayer(x, params.conv0 as ConvParams, 'valid', false))\n : depthwiseSeparableConv(x, params.conv0 as SeparableConvParams);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = params.conv6 ? depthwiseSeparableConv(out, params.conv6) : out;\n out = params.conv7 ? depthwiseSeparableConv(out, params.conv7) : out;\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public forwardInput(input: NetInput, inputSize: number): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyYolov2 - load model before inference');\n }\n\n return tf.tidy(() => {\n let batchTensor = tf.cast(input.toBatchTensor(inputSize, false), 'float32');\n batchTensor = this.config.meanRgb\n ? normalize(batchTensor, this.config.meanRgb)\n : batchTensor;\n batchTensor = batchTensor.div(tf.scalar(256)) as tf.Tensor4D;\n return this.config.withSeparableConvs\n ? this.runMobilenet(batchTensor, params as MobilenetParams)\n : this.runTinyYolov2(batchTensor, params as DefaultTinyYolov2NetParams);\n });\n }\n\n public async forward(input: TNetInput, inputSize: number): Promise {\n return this.forwardInput(await toNetInput(input), inputSize);\n }\n\n public async detect(input: TNetInput, forwardParams: ITinyYolov2Options = {}): Promise {\n const { inputSize, scoreThreshold } = new TinyYolov2Options(forwardParams);\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput, inputSize);\n const out0 = tf.tidy(() => tf.unstack(out)[0].expandDims()) as tf.Tensor4D;\n const inputDimensions = {\n width: netInput.getInputWidth(0),\n height: netInput.getInputHeight(0),\n };\n\n const results = await this.extractBoxes(out0, netInput.getReshapedInputDimensions(0), scoreThreshold);\n out.dispose();\n out0.dispose();\n\n const boxes = results.map((res) => res.box);\n const scores = results.map((res) => res.score);\n const classScores = results.map((res) => res.classScore);\n const classNames = results.map((res) => this.config.classes[res.label]);\n\n const indices = nonMaxSuppression(\n boxes.map((box) => box.rescale(inputSize)),\n scores,\n this.config.iouThreshold,\n true,\n );\n\n const detections = indices.map((idx) => new ObjectDetection(\n scores[idx],\n classScores[idx],\n classNames[idx],\n boxes[idx],\n inputDimensions,\n ));\n return detections;\n }\n\n protected getDefaultModelName(): string {\n return '';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this.config);\n }\n\n protected extractParams(weights: Float32Array) {\n const filterSizes = this.config.filterSizes || TinyYolov2Base.DEFAULT_FILTER_SIZES;\n\n const numFilters = filterSizes ? filterSizes.length : undefined;\n if (numFilters !== 7 && numFilters !== 8 && numFilters !== 9) {\n throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${numFilters} filterSizes in config`);\n }\n return extractParams(weights, this.config, this.boxEncodingSize, filterSizes);\n }\n\n protected async extractBoxes(\n outputTensor: tf.Tensor4D,\n inputBlobDimensions: Dimensions,\n scoreThreshold?: number,\n ) {\n const { width, height } = inputBlobDimensions;\n const inputSize = Math.max(width, height);\n const correctionFactorX = inputSize / width;\n const correctionFactorY = inputSize / height;\n\n const numCells = outputTensor.shape[1];\n const numBoxes = this.config.anchors.length;\n\n const [boxesTensor, scoresTensor, classScoresTensor] = tf.tidy(() => {\n const reshaped = outputTensor.reshape([numCells, numCells, numBoxes, this.boxEncodingSize]);\n\n const boxes = reshaped.slice([0, 0, 0, 0], [numCells, numCells, numBoxes, 4]);\n const scores = reshaped.slice([0, 0, 0, 4], [numCells, numCells, numBoxes, 1]);\n const classScores = this.withClassScores\n ? tf.softmax(reshaped.slice([0, 0, 0, 5], [numCells, numCells, numBoxes, this.config.classes.length]), 3)\n : tf.scalar(0);\n return [boxes, scores, classScores];\n });\n\n const results = [] as any;\n const scoresData = await scoresTensor.array();\n const boxesData = await boxesTensor.array();\n for (let row = 0; row < numCells; row++) {\n for (let col = 0; col < numCells; col++) {\n for (let anchor = 0; anchor < numBoxes; anchor++) {\n const score = sigmoid(scoresData[row][col][anchor][0]);\n if (!scoreThreshold || score > scoreThreshold) {\n const ctX = ((col + sigmoid(boxesData[row][col][anchor][0])) / numCells) * correctionFactorX;\n const ctY = ((row + sigmoid(boxesData[row][col][anchor][1])) / numCells) * correctionFactorY;\n const widthLocal = ((Math.exp(boxesData[row][col][anchor][2]) * this.config.anchors[anchor].x) / numCells) * correctionFactorX;\n const heightLocal = ((Math.exp(boxesData[row][col][anchor][3]) * this.config.anchors[anchor].y) / numCells) * correctionFactorY;\n const x = (ctX - (widthLocal / 2));\n const y = (ctY - (heightLocal / 2));\n const pos = { row, col, anchor };\n const { classScore, label } = this.withClassScores\n ? await this.extractPredictedClass(classScoresTensor as tf.Tensor4D, pos)\n : { classScore: 1, label: 0 };\n results.push({\n box: new BoundingBox(x, y, x + widthLocal, y + heightLocal),\n score,\n classScore: score * classScore,\n label,\n ...pos,\n });\n }\n }\n }\n }\n\n boxesTensor.dispose();\n scoresTensor.dispose();\n classScoresTensor.dispose();\n return results;\n }\n\n private async extractPredictedClass(classesTensor: tf.Tensor4D, pos: { row: number, col: number, anchor: number }) {\n const { row, col, anchor } = pos;\n const classesData = await classesTensor.array();\n return Array(this.config.classes.length).fill(0)\n .map((_, i) => classesData[row][col][anchor][i])\n .map((classScore, label) => ({\n classScore,\n label,\n }))\n .reduce((max, curr) => (max.classScore > curr.classScore ? max : curr));\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/types';\nimport { TNetInput } from '../dom/types';\nimport {\n BOX_ANCHORS,\n BOX_ANCHORS_SEPARABLE,\n DEFAULT_MODEL_NAME,\n DEFAULT_MODEL_NAME_SEPARABLE_CONV,\n IOU_THRESHOLD,\n MEAN_RGB_SEPARABLE,\n} from './const';\nimport { TinyYolov2Base } from './TinyYolov2Base';\nimport { ITinyYolov2Options } from './TinyYolov2Options';\nimport { TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2 extends TinyYolov2Base {\n constructor(withSeparableConvs: boolean = true) {\n const config = {\n withSeparableConvs,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n ...(withSeparableConvs\n ? {\n anchors: BOX_ANCHORS_SEPARABLE,\n meanRgb: MEAN_RGB_SEPARABLE,\n }\n : {\n anchors: BOX_ANCHORS,\n withClassScores: true,\n }),\n };\n\n super(config);\n }\n\n public get withSeparableConvs(): boolean {\n return this.config.withSeparableConvs;\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected getDefaultModelName(): string {\n return this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME;\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { TinyYolov2 } from './TinyYolov2';\n\nexport * from './TinyYolov2Options';\nexport * from './config';\nexport * from './types';\nexport { TinyYolov2 };\n\nexport function createTinyYolov2(weights: Float32Array, withSeparableConvs: boolean = true) {\n const net = new TinyYolov2(withSeparableConvs);\n net.extractWeights(weights);\n return net;\n}\n", "import { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\n\nexport interface ITinyFaceDetectorOptions extends ITinyYolov2Options {}\n\nexport class TinyFaceDetectorOptions extends TinyYolov2Options {\n protected _name: string = 'TinyFaceDetectorOptions'\n}\n", "export class ComposableTask {\n public async then(\n // eslint-disable-next-line no-unused-vars\n onfulfilled: (value: T) => T | PromiseLike,\n ): Promise {\n return onfulfilled(await this.run());\n }\n\n public async run(): Promise {\n throw new Error('ComposableTask - run is not implemented');\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\n\nexport async function extractAllFacesAndComputeResults, TResult>(\n parentResults: TSource[],\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResults: (faces: Array) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment: (parentResult: WithFaceLandmarks) => FaceDetection = ({ alignedRect }) => alignedRect,\n) {\n const faceBoxes = parentResults.map((parentResult) => (isWithFaceLandmarks(parentResult)\n ? getRectForAlignment(parentResult)\n : parentResult.detection));\n const faces: Array = extractedFaces || (\n input instanceof tf.Tensor\n ? await extractFaceTensors(input, faceBoxes)\n : await extractFaces(input, faceBoxes)\n );\n\n const results = await computeResults(faces);\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return results;\n}\n\nexport async function extractSingleFaceAndComputeResult, TResult>(\n parentResult: TSource,\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResult: (face: HTMLCanvasElement | tf.Tensor3D) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment?: (parentResultLocal: WithFaceLandmarks) => FaceDetection,\n) {\n return extractAllFacesAndComputeResults(\n [parentResult],\n input,\n async (faces) => computeResult(faces[0]),\n extractedFaces,\n getRectForAlignment,\n );\n}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB: [number, number, number] = [117.001, 114.697, 97.404];\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/index';\nimport { TNetInput } from '../dom/index';\nimport { ITinyYolov2Options } from '../tinyYolov2/index';\nimport { TinyYolov2Base } from '../tinyYolov2/TinyYolov2Base';\nimport { TinyYolov2NetParams } from '../tinyYolov2/types';\nimport { BOX_ANCHORS, IOU_THRESHOLD, MEAN_RGB } from './const';\n\nexport class TinyFaceDetector extends TinyYolov2Base {\n constructor() {\n const config = {\n withSeparableConvs: true,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n anchors: BOX_ANCHORS,\n meanRgb: MEAN_RGB,\n isFirstLayerConv2d: true,\n filterSizes: [3, 16, 32, 64, 128, 256, 512],\n };\n\n super(config);\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected getDefaultModelName(): string {\n return 'tiny_face_detector_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { AgeGenderNet } from '../ageGenderNet/AgeGenderNet';\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressionNet } from '../faceExpressionNet/FaceExpressionNet';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { FaceRecognitionNet } from '../faceRecognitionNet/FaceRecognitionNet';\nimport { SsdMobilenetv1 } from '../ssdMobilenetv1/SsdMobilenetv1';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetector } from '../tinyFaceDetector/TinyFaceDetector';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { ITinyYolov2Options, TinyYolov2 } from '../tinyYolov2/index';\n\nexport const nets = {\n ssdMobilenetv1: new SsdMobilenetv1(),\n tinyFaceDetector: new TinyFaceDetector(),\n tinyYolov2: new TinyYolov2(),\n faceLandmark68Net: new FaceLandmark68Net(),\n faceLandmark68TinyNet: new FaceLandmark68TinyNet(),\n faceRecognitionNet: new FaceRecognitionNet(),\n faceExpressionNet: new FaceExpressionNet(),\n ageGenderNet: new AgeGenderNet(),\n};\n\n/**\n * Attempts to detect all faces in an image using SSD Mobilenetv1 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const ssdMobilenetv1 = (input: TNetInput, options: SsdMobilenetv1Options): Promise => nets.ssdMobilenetv1.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Face Detector.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyFaceDetectorOptions constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyFaceDetector = (input: TNetInput, options: TinyFaceDetectorOptions): Promise => nets.tinyFaceDetector.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Yolov2 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyYolov2Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyYolov2 = (input: TNetInput, options: ITinyYolov2Options): Promise => nets.tinyYolov2.locateFaces(input, options);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarks = (input: TNetInput): Promise => nets.faceLandmark68Net.detectLandmarks(input);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image\n * using a tinier version of the 68 point face landmark model, which is slightly\n * faster at inference, but also slightly less accurate.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarksTiny = (input: TNetInput): Promise => nets.faceLandmark68TinyNet.detectLandmarks(input);\n\n/**\n * Computes a 128 entry vector (face descriptor / face embeddings) from the face shown in an image,\n * which uniquely represents the features of that persons face. The computed face descriptor can\n * be used to measure the similarity between faces, by computing the euclidean distance of two\n * face descriptors.\n *\n * @param inputs The face image extracted from the aligned bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Face descriptor with 128 entries or array thereof in case of batch input.\n */\nexport const computeFaceDescriptor = (input: TNetInput): Promise => nets.faceRecognitionNet.computeFaceDescriptor(input);\n\n/**\n * Recognizes the facial expressions from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Facial expressions with corresponding probabilities or array thereof in case of batch input.\n */\nexport const recognizeFaceExpressions = (input: TNetInput): Promise => nets.faceExpressionNet.predictExpressions(input);\n\n/**\n * Predicts age and gender from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Predictions with age, gender and gender probability or array thereof in case of batch input.\n */\nexport const predictAgeAndGender = (input: TNetInput): Promise => nets.ageGenderNet.predictAgeAndGender(input);\n\nexport const loadSsdMobilenetv1Model = (url: string) => nets.ssdMobilenetv1.load(url);\nexport const loadTinyFaceDetectorModel = (url: string) => nets.tinyFaceDetector.load(url);\nexport const loadTinyYolov2Model = (url: string) => nets.tinyYolov2.load(url);\nexport const loadFaceLandmarkModel = (url: string) => nets.faceLandmark68Net.load(url);\nexport const loadFaceLandmarkTinyModel = (url: string) => nets.faceLandmark68TinyNet.load(url);\nexport const loadFaceRecognitionModel = (url: string) => nets.faceRecognitionNet.load(url);\nexport const loadFaceExpressionModel = (url: string) => nets.faceExpressionNet.load(url);\nexport const loadAgeGenderModel = (url: string) => nets.ageGenderNet.load(url);\n\n// backward compatibility\nexport const loadFaceDetectionModel = loadSsdMobilenetv1Model;\nexport const locateFaces = ssdMobilenetv1;\nexport const detectLandmarks = detectFaceLandmarks;\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderTask,\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\n\nexport class PredictFaceExpressionsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllFaceExpressionsTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictFaceExpressionsTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n\n const faceExpressionsByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map(\n (face) => nets.faceExpressionNet.predictExpressions(face) as Promise,\n )),\n this.extractedFaces,\n );\n\n return parentResults.map(\n (parentResult, i) => extendWithFaceExpressions(parentResult, faceExpressionsByFace[i]),\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictFaceExpressionsTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const faceExpressions = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceExpressionNet.predictExpressions(face) as Promise,\n this.extractedFaces,\n );\n\n return extendWithFaceExpressions(parentResult, faceExpressions);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictAllFaceExpressionsWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictAllFaceExpressionsTask {\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictSingleFaceExpressionsTask {\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { TNetInput } from '../dom/index';\nimport { extendWithAge, WithAge } from '../factories/WithAge';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { extendWithGender, WithGender } from '../factories/WithGender';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllFaceExpressionsTask,\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class PredictAgeAndGenderTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllAgeAndGenderTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictAgeAndGenderTaskBase>[], TSource[]> {\n public async run(): Promise>[]> {\n const parentResults = await this.parentTask;\n\n const ageAndGenderByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map(\n (face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise,\n )),\n this.extractedFaces,\n );\n\n return parentResults.map((parentResult, i) => {\n const { age, gender, genderProbability } = ageAndGenderByFace[i];\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n });\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictAgeAndGenderTaskBase> | undefined, TSource | undefined> {\n public async run(): Promise> | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const { age, gender, genderProbability } = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise,\n this.extractedFaces,\n );\n\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictAllAgeAndGenderWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictAllAgeAndGenderTask {\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictSingleAgeAndGenderTask {\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDescriptor, WithFaceDescriptor } from '../factories/WithFaceDescriptor';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\nimport {\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class ComputeFaceDescriptorsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n ) {\n super();\n }\n}\n\nexport class ComputeAllFaceDescriptorsTask<\n TSource extends WithFaceLandmarks>\n> extends ComputeFaceDescriptorsTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n\n const descriptors = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n (faces) => Promise.all(faces.map((face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise)),\n null,\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n\n return descriptors.map((descriptor, i) => extendWithFaceDescriptor(parentResults[i], descriptor));\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n\nexport class ComputeSingleFaceDescriptorTask<\n TSource extends WithFaceLandmarks>\n> extends ComputeFaceDescriptorsTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n const descriptor = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise,\n null,\n // eslint-disable-next-line no-shadow\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n\n return extendWithFaceDescriptor(parentResult, descriptor);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\nimport {\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class DetectFaceLandmarksTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected useTinyLandmarkNet: boolean,\n ) {\n super();\n }\n\n protected get landmarkNet(): FaceLandmark68Net | FaceLandmark68TinyNet {\n return this.useTinyLandmarkNet\n ? nets.faceLandmark68TinyNet\n : nets.faceLandmark68Net;\n }\n}\n\nexport class DetectAllFaceLandmarksTask<\n TSource extends WithFaceDetection<{}>\n> extends DetectFaceLandmarksTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n const detections = parentResults.map((res) => res.detection);\n\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, detections)\n : await extractFaces(this.input, detections);\n\n const faceLandmarksByFace = await Promise.all(faces.map(\n (face) => this.landmarkNet.detectLandmarks(face),\n )) as FaceLandmarks68[];\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return parentResults.map((parentResult, i) => extendWithFaceLandmarks(parentResult, faceLandmarksByFace[i]));\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class DetectSingleFaceLandmarksTask<\n TSource extends WithFaceDetection<{}>\n> extends DetectFaceLandmarksTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const { detection } = parentResult;\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, [detection])\n : await extractFaces(this.input, [detection]);\n\n const landmarks = await this.landmarkNet.detectLandmarks(faces[0]) as FaceLandmarks68;\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return extendWithFaceLandmarks(parentResult, landmarks);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { TinyYolov2Options } from '../tinyYolov2/index';\nimport { ComposableTask } from './ComposableTask';\nimport { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderTask, PredictSingleAgeAndGenderTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsTask, PredictSingleFaceExpressionsTask } from './PredictFaceExpressionsTask';\nimport { FaceDetectionOptions } from './types';\n\nexport class DetectFacesTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected options: FaceDetectionOptions = new SsdMobilenetv1Options(),\n ) {\n super();\n }\n}\n\nexport class DetectAllFacesTask extends DetectFacesTaskBase {\n public async run(): Promise {\n const { input, options } = this;\n\n let result;\n if (options instanceof TinyFaceDetectorOptions) result = nets.tinyFaceDetector.locateFaces(input, options);\n else if (options instanceof SsdMobilenetv1Options) result = nets.ssdMobilenetv1.locateFaces(input, options);\n else if (options instanceof TinyYolov2Options) result = nets.tinyYolov2.locateFaces(input, options);\n else throw new Error('detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options');\n\n return result;\n }\n\n private runAndExtendWithFaceDetections(): Promise[]> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise[]>(async (resolve) => {\n const detections = await this.run();\n resolve(detections.map((detection) => extendWithFaceDetection({}, detection)));\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet: boolean = false) {\n return new DetectAllFaceLandmarksTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n}\n\nexport class DetectSingleFaceTask extends DetectFacesTaskBase {\n public async run(): Promise {\n const faceDetections = await new DetectAllFacesTask(this.input, this.options);\n let faceDetectionWithHighestScore = faceDetections[0];\n faceDetections.forEach((faceDetection) => {\n if (faceDetection.score > faceDetectionWithHighestScore.score) faceDetectionWithHighestScore = faceDetection;\n });\n return faceDetectionWithHighestScore;\n }\n\n private runAndExtendWithFaceDetection(): Promise | undefined> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise | undefined>(async (resolve) => {\n const detection = await this.run();\n resolve(detection ? extendWithFaceDetection<{}>({}, detection) : undefined);\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet: boolean = false) {\n return new DetectSingleFaceLandmarksTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n}\n", "import { TNetInput } from '../dom/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { DetectAllFacesTask, DetectSingleFaceTask } from './DetectFacesTasks';\nimport { FaceDetectionOptions } from './types';\n\nexport function detectSingleFace(input: TNetInput, options: FaceDetectionOptions = new SsdMobilenetv1Options()): DetectSingleFaceTask {\n return new DetectSingleFaceTask(input, options);\n}\n\nexport function detectAllFaces(input: TNetInput, options: FaceDetectionOptions = new SsdMobilenetv1Options()): DetectAllFacesTask {\n return new DetectAllFacesTask(input, options);\n}\n", "import { TNetInput } from '../dom/index';\nimport { WithFaceDescriptor, WithFaceDetection, WithFaceLandmarks } from '../factories/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/index';\nimport { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\nimport { detectAllFaces } from './detectFaces';\n\n// export allFaces API for backward compatibility\n\nexport async function allFacesSsdMobilenetv1(\n input: TNetInput,\n minConfidence?: number,\n): Promise>>[]> {\n return detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? { minConfidence } : {}))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport async function allFacesTinyYolov2(\n input: TNetInput,\n forwardParams: ITinyYolov2Options = {},\n): Promise>>[]> {\n return detectAllFaces(input, new TinyYolov2Options(forwardParams))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport const allFaces = allFacesSsdMobilenetv1;\n", "export function euclideanDistance(arr1: number[] | Float32Array, arr2: number[] | Float32Array) {\n if (arr1.length !== arr2.length) throw new Error('euclideanDistance: arr1.length !== arr2.length');\n\n const desc1 = Array.from(arr1);\n const desc2 = Array.from(arr2);\n\n return Math.sqrt(\n desc1\n .map((val, i) => val - desc2[i])\n .reduce((res, diff) => res + (diff ** 2), 0),\n );\n}\n", "import { FaceMatch } from '../classes/FaceMatch';\nimport { LabeledFaceDescriptors } from '../classes/LabeledFaceDescriptors';\nimport { euclideanDistance } from '../euclideanDistance';\nimport { WithFaceDescriptor } from '../factories/index';\n\nexport class FaceMatcher {\n private _labeledDescriptors: LabeledFaceDescriptors[]\n\n private _distanceThreshold: number\n\n constructor(\n inputs: LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>,\n distanceThreshold: number = 0.6,\n ) {\n this._distanceThreshold = distanceThreshold;\n\n const inputArray = Array.isArray(inputs) ? inputs : [inputs];\n\n if (!inputArray.length) {\n throw new Error('FaceRecognizer.constructor - expected atleast one input');\n }\n\n let count = 1;\n const createUniqueLabel = () => `person ${count++}`;\n\n this._labeledDescriptors = inputArray.map((desc) => {\n if (desc instanceof LabeledFaceDescriptors) {\n return desc;\n }\n\n if (desc instanceof Float32Array) {\n return new LabeledFaceDescriptors(createUniqueLabel(), [desc]);\n }\n\n if (desc.descriptor && desc.descriptor instanceof Float32Array) {\n return new LabeledFaceDescriptors(createUniqueLabel(), [desc.descriptor]);\n }\n\n throw new Error('FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>');\n });\n }\n\n public get labeledDescriptors(): LabeledFaceDescriptors[] { return this._labeledDescriptors; }\n\n public get distanceThreshold(): number { return this._distanceThreshold; }\n\n public computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number {\n return descriptors\n .map((d) => euclideanDistance(d, queryDescriptor))\n .reduce((d1, d2) => d1 + d2, 0)\n / (descriptors.length || 1);\n }\n\n public matchDescriptor(queryDescriptor: Float32Array): FaceMatch {\n return this.labeledDescriptors\n .map(({ descriptors, label }) => new FaceMatch(\n label,\n this.computeMeanDistance(queryDescriptor, descriptors),\n ))\n .reduce((best, curr) => (best.distance < curr.distance ? best : curr));\n }\n\n public findBestMatch(queryDescriptor: Float32Array): FaceMatch {\n const bestMatch = this.matchDescriptor(queryDescriptor);\n return bestMatch.distance < this.distanceThreshold\n ? bestMatch\n : new FaceMatch('unknown', bestMatch.distance);\n }\n\n public toJSON(): any {\n return {\n distanceThreshold: this.distanceThreshold,\n labeledDescriptors: this.labeledDescriptors.map((ld) => ld.toJSON()),\n };\n }\n\n public static fromJSON(json: any): FaceMatcher {\n const labeledDescriptors = json.labeledDescriptors\n .map((ld: any) => LabeledFaceDescriptors.fromJSON(ld));\n return new FaceMatcher(labeledDescriptors, json.distanceThreshold);\n }\n}\n", "import { TinyFaceDetector } from './TinyFaceDetector';\n\nexport * from './TinyFaceDetector';\nexport * from './TinyFaceDetectorOptions';\n\nexport function createTinyFaceDetector(weights: Float32Array) {\n const net = new TinyFaceDetector();\n net.extractWeights(weights);\n return net;\n}\n", "import { Dimensions, IDimensions } from './classes/index';\nimport { FaceDetection } from './classes/FaceDetection';\nimport { FaceLandmarks } from './classes/FaceLandmarks';\nimport { extendWithFaceDetection, isWithFaceDetection } from './factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, isWithFaceLandmarks } from './factories/WithFaceLandmarks';\n\nexport function resizeResults(results: T, dimensions: IDimensions): T {\n const { width, height } = new Dimensions(dimensions.width, dimensions.height);\n\n if (width <= 0 || height <= 0) {\n throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({ width, height })}`);\n }\n\n if (Array.isArray(results)) {\n // return results.map(obj => resizeResults(obj, { width, height })) as any as T\n return (results as Array).map((obj) => resizeResults(obj, { width, height } as IDimensions)) as any as T;\n }\n\n if (isWithFaceLandmarks(results)) {\n const resizedDetection = results.detection.forSize(width, height);\n const resizedLandmarks = results.unshiftedLandmarks.forSize(resizedDetection.box.width, resizedDetection.box.height);\n return extendWithFaceLandmarks(extendWithFaceDetection(results, resizedDetection), resizedLandmarks);\n }\n\n if (isWithFaceDetection(results)) {\n return extendWithFaceDetection(results, results.detection.forSize(width, height));\n }\n\n if (results instanceof FaceLandmarks || results instanceof FaceDetection) {\n return (results as any).forSize(width, height);\n }\n\n return results;\n}\n", "import * as tf from '../dist/tfjs.esm';\nimport * as draw from './draw/index';\nimport * as utils from './utils/index';\nimport * as pkg from '../package.json';\n\nexport { tf, draw, utils };\n\nexport * from './ageGenderNet/index';\nexport * from './classes/index';\nexport * from './dom/index';\nexport * from './env/index';\nexport * from './faceExpressionNet/index';\nexport * from './faceLandmarkNet/index';\nexport * from './faceRecognitionNet/index';\nexport * from './factories/index';\nexport * from './globalApi/index';\nexport * from './ops/index';\nexport * from './ssdMobilenetv1/index';\nexport * from './tinyFaceDetector/index';\nexport * from './tinyYolov2/index';\nexport * from './euclideanDistance';\nexport * from './NeuralNetwork';\nexport * from './resizeResults';\n\nconst node = (typeof process !== 'undefined');\nconst browser = (typeof navigator !== 'undefined') && (typeof navigator.userAgent !== 'undefined');\nexport const version = { faceapi: pkg.version as string, node, browser };\n"], + "mappings": "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AAS,GAAI,EAAG,EAAI,EAAU,EAAE,EAC9B,EAAa,GAAW,EAAY,EAAI,GAE1C,EAAa,GAAW,EAAY,GAAK,EAAS,MAAO,SACzD,GAAM,GAAY,GAAU,GAC5B,MAAO,IAAM,EAAY,EAAU,GClC9B,GAAM,IAAkC,CAC7C,WAAY,GACZ,SAAW,GACF,EAAC,EAAG,IAAM,GAAU,MC+FzB,GAA4B,CAChC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAkB,IAC3B,GAAiB,GCxMnB,IAAuB,UAAU,IAAM,UAAA,CACrC,MAAA,MAAK,kBACE,GAAI,OCFb,IAAuB,UAAU,KAAO,UAAA,CACtC,MAAA,MAAK,kBACE,GAAK,OCFd,IAAuB,UAAU,MAAQ,UAAA,CACvC,MAAA,MAAK,kBACE,GAAM,OCHf,IAAuB,UAAU,IAAM,SACnC,EAAoB,CACtB,MAAA,MAAK,kBACE,EAAI,KAAM,ICHnB,IAAuB,UAAU,IAAM,SAC1B,EAAwB,EAAkB,CACrD,MAAA,MAAK,kBACE,GAAI,KAAM,EAAM,ICHzB,IAAuB,UAAU,IAAM,SAC1B,EAAwB,EAAkB,CACrD,MAAA,MAAK,kBACE,GAAI,KAAM,EAAM,ICJzB,IAAuB,UAAU,OAAS,SACtC,EAAa,CACf,MAAA,MAAK,kBACE,GA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,CAAC,OAAQ,CAAC,EAAG,EAAY,EAAG,GAAI,QAAA,IACvC,EACF,GAAI,CAAC,OAAQ,CAAC,GAAS,QAAA,EAAS,MAAO,CAAC,KAAM,EAAG,SAAU,MAC/D,EAAI,KAAK,GACT,EAAc,KAAK,GACnB,EAAc,KAAK,GACnB,EAAc,KAAK,GACnB,EAAc,KAAK,GACnB,EAAc,KAAK,GAGrB,GAAM,GAAS,GAAK,CAAC,OAAQ,EAAK,QAAA,EAAS,MAAO,CAAC,KAAM,KAEzD,MAAA,GAAc,QAAQ,GAAK,EAAQ,8BAA8B,IAE1D,EAGF,GAAM,IAAyC,CACpD,WAAY,GACZ,YAAa,MACb,WAAY,IC4FR,GAAgC,CACpC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAgB,IACzB,GAAe,GE9TjB,GAAM,IAAmD,GAEnD,GAA2C,C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,KC6DR,IAAgC,CACpC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IAGF,OAAW,KAAgB,KACzB,GAAe,GEvUjB,GAAM,KAAU,QCyCH,IAAU,CACrB,YAAa,GACb,mBAAoB,GACpB,qBAAsB,GACtB,YAAa,GACb,cAAe,GACf,iBAAkB,GAClB,KAAQ,KCjCE,GAAZ,AAAA,UAAY,EAAQ,CAClB,EAAA,EAAA,QAAA,GAAA,UACA,EAAA,EAAA,MAAA,GAAA,QACA,EAAA,EAAA,KAAA,GAAA,OACA,EAAA,EAAA,OAAA,GAAA,SACA,EAAA,EAAA,UAAA,GAAA,cALU,IAAA,IAAQ,KASpB,GAAY,IAAZ,AAAA,UAAY,EAAiB,CAC3B,EAAA,EAAA,OAAA,GAAA,SACA,EAAA,EAAA,KAAA,GAAA,OACA,EAAA,EAAA,MAAA,GAAA,QACA,EAAA,E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", "names": [] } diff --git a/dist/face-api.esm.json b/dist/face-api.esm.json deleted file mode 100644 index 89a45d2..0000000 --- a/dist/face-api.esm.json +++ /dev/null @@ -1,3194 +0,0 @@ -{ - "inputs": { - "dist/tfjs.esm.js": { - "bytes": 1047769, - "imports": [] - }, - "src/draw/drawContour.ts": { - "bytes": 539, - "imports": [] - }, - "src/classes/Dimensions.ts": { - "bytes": 745, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/utils/index.ts": { - "bytes": 1793, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/Point.ts": { - "bytes": 925, - "imports": [] - }, - "src/classes/Box.ts": { - "bytes": 5690, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Point.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/BoundingBox.ts": { - "bytes": 402, - "imports": [ - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/ObjectDetection.ts": { - "bytes": 1424, - "imports": [ - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceDetection.ts": { - "bytes": 656, - "imports": [ - { - "path": "src/classes/ObjectDetection.ts", - "kind": "import-statement" - } - ] - }, - "src/ops/iou.ts": { - "bytes": 473, - "imports": [] - }, - "src/ops/minBbox.ts": { - "bytes": 498, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ops/nonMaxSuppression.ts": { - "bytes": 924, - "imports": [ - { - "path": "src/ops/iou.ts", - "kind": "import-statement" - } - ] - }, - "src/ops/normalize.ts": { - "bytes": 483, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ops/padToSquare.ts": { - "bytes": 1684, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ops/shuffleArray.ts": { - "bytes": 273, - "imports": [] - }, - "src/ops/index.ts": { - "bytes": 331, - "imports": [ - { - "path": "src/ops/iou.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/minBbox.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/nonMaxSuppression.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/normalize.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/padToSquare.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/shuffleArray.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/Rect.ts": { - "bytes": 359, - "imports": [ - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceLandmarks.ts": { - "bytes": 4199, - "imports": [ - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Point.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Rect.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceLandmarks5.ts": { - "bytes": 360, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceLandmarks68.ts": { - "bytes": 915, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceMatch.ts": { - "bytes": 578, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/LabeledBox.ts": { - "bytes": 645, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/LabeledFaceDescriptors.ts": { - "bytes": 1072, - "imports": [] - }, - "src/classes/PredictedBox.ts": { - "bytes": 952, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledBox.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/index.ts": { - "bytes": 436, - "imports": [ - { - "path": "src/classes/BoundingBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks5.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks68.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceMatch.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledFaceDescriptors.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/ObjectDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Point.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/PredictedBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Rect.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceDetection.ts": { - "bytes": 486, - "imports": [ - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - } - ] - }, - "src/env/createBrowserEnv.ts": { - "bytes": 636, - "imports": [] - }, - "src/env/createFileSystem.ts": { - "bytes": 654, - "imports": [] - }, - "src/env/createNodejsEnv.ts": { - "bytes": 1202, - "imports": [ - { - "path": "src/env/createFileSystem.ts", - "kind": "import-statement" - } - ] - }, - "src/env/isBrowser.ts": { - "bytes": 354, - "imports": [] - }, - "src/env/isNodejs.ts": { - "bytes": 295, - "imports": [] - }, - "src/env/types.ts": { - "bytes": 570, - "imports": [] - }, - "src/env/index.ts": { - "bytes": 1817, - "imports": [ - { - "path": "src/env/createBrowserEnv.ts", - "kind": "import-statement" - }, - { - "path": "src/env/createFileSystem.ts", - "kind": "import-statement" - }, - { - "path": "src/env/createNodejsEnv.ts", - "kind": "import-statement" - }, - { - "path": "src/env/isBrowser.ts", - "kind": "import-statement" - }, - { - "path": "src/env/isNodejs.ts", - "kind": "import-statement" - }, - { - "path": "src/env/types.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/resolveInput.ts": { - "bytes": 200, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/getContext2dOrThrow.ts": { - "bytes": 673, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/DrawTextField.ts": { - "bytes": 4094, - "imports": [ - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/DrawBox.ts": { - "bytes": 1831, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawTextField.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/drawDetections.ts": { - "bytes": 1128, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawBox.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/isMediaLoaded.ts": { - "bytes": 277, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/awaitMediaLoaded.ts": { - "bytes": 963, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaLoaded.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/bufferToImage.ts": { - "bytes": 687, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/getMediaDimensions.ts": { - "bytes": 529, - "imports": [ - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/createCanvas.ts": { - "bytes": 1139, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaLoaded.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/imageTensorToCanvas.ts": { - "bytes": 615, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/isMediaElement.ts": { - "bytes": 228, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/imageToSquare.ts": { - "bytes": 1296, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/NetInput.ts": { - "bytes": 5508, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/padToSquare.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageToSquare.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/toNetInput.ts": { - "bytes": 2115, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/awaitMediaLoaded.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaElement.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/NetInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/extractFaces.ts": { - "bytes": 1804, - "imports": [ - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageTensorToCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/toNetInput.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/extractFaceTensors.ts": { - "bytes": 1730, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchOrThrow.ts": { - "bytes": 390, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchImage.ts": { - "bytes": 451, - "imports": [ - { - "path": "src/dom/bufferToImage.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchJson.ts": { - "bytes": 155, - "imports": [ - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchNetWeights.ts": { - "bytes": 200, - "imports": [ - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - } - ] - }, - "src/common/getModelUris.ts": { - "bytes": 1052, - "imports": [] - }, - "src/dom/loadWeightMap.ts": { - "bytes": 552, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/getModelUris.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchJson.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/matchDimensions.ts": { - "bytes": 401, - "imports": [ - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/types.ts": { - "bytes": 383, - "imports": [] - }, - "src/dom/index.ts": { - "bytes": 696, - "imports": [ - { - "path": "src/dom/awaitMediaLoaded.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/bufferToImage.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/extractFaces.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/extractFaceTensors.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchImage.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchJson.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchNetWeights.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageTensorToCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageToSquare.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaElement.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaLoaded.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/loadWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/matchDimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/NetInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/toNetInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/types.ts", - "kind": "import-statement" - } - ] - }, - "src/NeuralNetwork.ts": { - "bytes": 5291, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/getModelUris.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/common/depthwiseSeparableConv.ts": { - "bytes": 414, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/denseBlock.ts": { - "bytes": 2038, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/depthwiseSeparableConv.ts", - "kind": "import-statement" - } - ] - }, - "src/common/convLayer.ts": { - "bytes": 428, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/common/disposeUnusedWeightTensors.ts": { - "bytes": 290, - "imports": [] - }, - "src/common/extractConvParamsFactory.ts": { - "bytes": 766, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/common/extractFCParamsFactory.ts": { - "bytes": 711, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/common/types.ts": { - "bytes": 797, - "imports": [] - }, - "src/common/extractSeparableConvParamsFactory.ts": { - "bytes": 1533, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/types.ts", - "kind": "import-statement" - } - ] - }, - "src/common/extractWeightEntryFactory.ts": { - "bytes": 579, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/common/extractWeightsFactory.ts": { - "bytes": 441, - "imports": [] - }, - "src/common/index.ts": { - "bytes": 399, - "imports": [ - { - "path": "src/common/convLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/common/depthwiseSeparableConv.ts", - "kind": "import-statement" - }, - { - "path": "src/common/disposeUnusedWeightTensors.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractFCParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractSeparableConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightEntryFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/getModelUris.ts", - "kind": "import-statement" - }, - { - "path": "src/common/types.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractorsFactory.ts": { - "bytes": 1587, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParams.ts": { - "bytes": 1030, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractorsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/common/loadConvParamsFactory.ts": { - "bytes": 466, - "imports": [] - }, - "src/faceFeatureExtractor/loadParamsFactory.ts": { - "bytes": 1547, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/common/loadConvParamsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParamsFromWeightMap.ts": { - "bytes": 838, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/loadParamsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/FaceFeatureExtractor.ts": { - "bytes": 1806, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/denseBlock.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParamsFromWeightMap.ts", - "kind": "import-statement" - } - ] - }, - "src/common/fullyConnectedLayer.ts": { - "bytes": 263, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/faceProcessor/extractParams.ts": { - "bytes": 759, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceProcessor/extractParamsFromWeightMap.ts": { - "bytes": 823, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceProcessor/util.ts": { - "bytes": 421, - "imports": [] - }, - "src/faceProcessor/FaceProcessor.ts": { - "bytes": 3034, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/fullyConnectedLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/util.ts", - "kind": "import-statement" - } - ] - }, - "src/faceExpressionNet/FaceExpressions.ts": { - "bytes": 869, - "imports": [] - }, - "src/faceExpressionNet/FaceExpressionNet.ts": { - "bytes": 1664, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/FaceFeatureExtractor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/FaceProcessor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/FaceExpressions.ts", - "kind": "import-statement" - } - ] - }, - "src/faceExpressionNet/index.ts": { - "bytes": 72, - "imports": [ - { - "path": "src/faceExpressionNet/FaceExpressionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/FaceExpressions.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceExpressions.ts": { - "bytes": 524, - "imports": [ - { - "path": "src/faceExpressionNet/FaceExpressions.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/drawFaceExpressions.ts": { - "bytes": 1612, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawTextField.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceLandmarks.ts": { - "bytes": 3592, - "imports": [ - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/DrawFaceLandmarks.ts": { - "bytes": 3528, - "imports": [ - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks68.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/drawContour.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/index.ts": { - "bytes": 201, - "imports": [ - { - "path": "src/draw/drawContour.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/drawDetections.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/drawFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawBox.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawTextField.ts", - "kind": "import-statement" - } - ] - }, - "package.json": { - "bytes": 2040, - "imports": [] - }, - "src/xception/extractParams.ts": { - "bytes": 3440, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/xception/extractParamsFromWeightMap.ts": { - "bytes": 3130, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/common/loadConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/xception/TinyXception.ts": { - "bytes": 3143, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/xception/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/xception/extractParamsFromWeightMap.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/extractParams.ts": { - "bytes": 778, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/extractParamsFromWeightMap.ts": { - "bytes": 891, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/types.ts": { - "bytes": 525, - "imports": [] - }, - "src/ageGenderNet/AgeGenderNet.ts": { - "bytes": 4269, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/fullyConnectedLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/util.ts", - "kind": "import-statement" - }, - { - "path": "src/xception/TinyXception.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/types.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/index.ts": { - "bytes": 57, - "imports": [ - { - "path": "src/ageGenderNet/AgeGenderNet.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/types.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/FaceLandmark68NetBase.ts": { - "bytes": 3717, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks68.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/FaceProcessor.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/FaceLandmark68Net.ts": { - "bytes": 622, - "imports": [ - { - "path": "src/faceFeatureExtractor/FaceFeatureExtractor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68NetBase.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts": { - "bytes": 802, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/loadParamsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParamsTiny.ts": { - "bytes": 960, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractorsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts": { - "bytes": 1816, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/denseBlock.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParamsTiny.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/FaceLandmark68TinyNet.ts": { - "bytes": 659, - "imports": [ - { - "path": "src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68NetBase.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/index.ts": { - "bytes": 194, - "imports": [ - { - "path": "src/faceLandmarkNet/FaceLandmark68Net.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68Net.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68TinyNet.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/scaleLayer.ts": { - "bytes": 229, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/convLayer.ts": { - "bytes": 850, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/scaleLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/extractParams.ts": { - "bytes": 4907, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/extractParamsFromWeightMap.ts": { - "bytes": 3098, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/residualLayer.ts": { - "bytes": 1342, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/convLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/FaceRecognitionNet.ts": { - "bytes": 2959, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/convLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/residualLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/index.ts": { - "bytes": 252, - "imports": [ - { - "path": "src/faceRecognitionNet/FaceRecognitionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/FaceRecognitionNet.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceDescriptor.ts": { - "bytes": 301, - "imports": [] - }, - "src/factories/WithAge.ts": { - "bytes": 334, - "imports": [] - }, - "src/factories/WithGender.ts": { - "bytes": 618, - "imports": [ - { - "path": "src/ageGenderNet/types.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/index.ts": { - "bytes": 208, - "imports": [ - { - "path": "src/factories/WithFaceDescriptor.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithAge.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithGender.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/extractParams.ts": { - "bytes": 8330, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/extractParamsFromWeightMap.ts": { - "bytes": 5775, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/pointwiseConvLayer.ts": { - "bytes": 391, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/mobileNetV1.ts": { - "bytes": 1811, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/pointwiseConvLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/nonMaxSuppression.ts": { - "bytes": 2170, - "imports": [] - }, - "src/ssdMobilenetv1/outputLayer.ts": { - "bytes": 2183, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/boxPredictionLayer.ts": { - "bytes": 598, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/predictionLayer.ts": { - "bytes": 2055, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/boxPredictionLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/pointwiseConvLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/SsdMobilenetv1Options.ts": { - "bytes": 881, - "imports": [] - }, - "src/ssdMobilenetv1/SsdMobilenetv1.ts": { - "bytes": 3652, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/mobileNetV1.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/nonMaxSuppression.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/outputLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/predictionLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/index.ts": { - "bytes": 471, - "imports": [ - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/const.ts": { - "bytes": 704, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/config.ts": { - "bytes": 1701, - "imports": [] - }, - "src/tinyYolov2/leaky.ts": { - "bytes": 238, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/convWithBatchNorm.ts": { - "bytes": 530, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/leaky.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/depthwiseSeparableConv.ts": { - "bytes": 500, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/leaky.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/extractParams.ts": { - "bytes": 3911, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractSeparableConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/extractParamsFromWeightMap.ts": { - "bytes": 3282, - "imports": [ - { - "path": "src/common/disposeUnusedWeightTensors.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractSeparableConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightEntryFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/TinyYolov2Options.ts": { - "bytes": 913, - "imports": [] - }, - "src/tinyYolov2/TinyYolov2Base.ts": { - "bytes": 9606, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/BoundingBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/ObjectDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/nonMaxSuppression.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/normalize.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/config.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/convWithBatchNorm.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/depthwiseSeparableConv.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/leaky.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Options.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/TinyYolov2.ts": { - "bytes": 1801, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/const.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Base.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/types.ts": { - "bytes": 952, - "imports": [] - }, - "src/tinyYolov2/index.ts": { - "bytes": 347, - "imports": [ - { - "path": "src/tinyYolov2/TinyYolov2.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Options.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/config.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/types.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/TinyFaceDetectorOptions.ts": { - "bytes": 272, - "imports": [ - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/ComposableTask.ts": { - "bytes": 322, - "imports": [] - }, - "src/globalApi/extractFacesAndComputeResults.ts": { - "bytes": 2037, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/const.ts": { - "bytes": 354, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/TinyFaceDetector.ts": { - "bytes": 1470, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Base.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/const.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/nets.ts": { - "bytes": 6336, - "imports": [ - { - "path": "src/ageGenderNet/AgeGenderNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/FaceExpressionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68Net.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68TinyNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/FaceRecognitionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetector.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/PredictFaceExpressionsTask.ts": { - "bytes": 3827, - "imports": [ - { - "path": "src/factories/WithFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/extractFacesAndComputeResults.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/PredictAgeAndGenderTask.ts": { - "bytes": 4008, - "imports": [ - { - "path": "src/factories/WithAge.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithGender.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/extractFacesAndComputeResults.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/ComputeFaceDescriptorsTasks.ts": { - "bytes": 3215, - "imports": [ - { - "path": "src/factories/WithFaceDescriptor.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/extractFacesAndComputeResults.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/DetectFaceLandmarksTasks.ts": { - "bytes": 4002, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/DetectFacesTasks.ts": { - "bytes": 4124, - "imports": [ - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetectorOptions.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFaceLandmarksTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/detectFaces.ts": { - "bytes": 624, - "imports": [ - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFacesTasks.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/allFaces.ts": { - "bytes": 1056, - "imports": [ - { - "path": "src/ssdMobilenetv1/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/detectFaces.ts", - "kind": "import-statement" - } - ] - }, - "src/euclideanDistance.ts": { - "bytes": 398, - "imports": [] - }, - "src/globalApi/FaceMatcher.ts": { - "bytes": 2992, - "imports": [ - { - "path": "src/classes/FaceMatch.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledFaceDescriptors.ts", - "kind": "import-statement" - }, - { - "path": "src/euclideanDistance.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/types.ts": { - "bytes": 556, - "imports": [] - }, - "src/globalApi/index.ts": { - "bytes": 300, - "imports": [ - { - "path": "src/globalApi/allFaces.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/detectFaces.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFacesTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFaceLandmarksTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/FaceMatcher.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/types.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/index.ts": { - "bytes": 285, - "imports": [ - { - "path": "src/tinyFaceDetector/TinyFaceDetector.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetector.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetectorOptions.ts", - "kind": "import-statement" - } - ] - }, - "src/resizeResults.ts": { - "bytes": 1519, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/index.ts": { - "bytes": 987, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/draw/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "package.json", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/index.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - }, - { - "path": "src/euclideanDistance.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/resizeResults.ts", - "kind": "import-statement" - } - ] - } - }, - "outputs": { - "dist/face-api.esm.js.map": { - "imports": [], - "exports": [], - "inputs": {}, - "bytes": 1466666 - }, - "dist/face-api.esm.js": { - "imports": [], - "exports": [ - "AgeGenderNet", - "BoundingBox", - "Box", - "ComposableTask", - "ComputeAllFaceDescriptorsTask", - "ComputeFaceDescriptorsTaskBase", - "ComputeSingleFaceDescriptorTask", - "DetectAllFaceLandmarksTask", - "DetectAllFacesTask", - "DetectFaceLandmarksTaskBase", - "DetectFacesTaskBase", - "DetectSingleFaceLandmarksTask", - "DetectSingleFaceTask", - "Dimensions", - "FACE_EXPRESSION_LABELS", - "FaceDetection", - "FaceDetectionNet", - "FaceExpressionNet", - "FaceExpressions", - "FaceLandmark68Net", - "FaceLandmark68TinyNet", - "FaceLandmarkNet", - "FaceLandmarks", - "FaceLandmarks5", - "FaceLandmarks68", - "FaceMatch", - "FaceMatcher", - "FaceRecognitionNet", - "Gender", - "LabeledBox", - "LabeledFaceDescriptors", - "NetInput", - "NeuralNetwork", - "ObjectDetection", - "Point", - "PredictedBox", - "Rect", - "SsdMobilenetv1", - "SsdMobilenetv1Options", - "TinyFaceDetector", - "TinyFaceDetectorOptions", - "TinyYolov2", - "TinyYolov2Options", - "allFaces", - "allFacesSsdMobilenetv1", - "allFacesTinyYolov2", - "awaitMediaLoaded", - "bufferToImage", - "computeFaceDescriptor", - "createCanvas", - "createCanvasFromMedia", - "createFaceDetectionNet", - "createFaceRecognitionNet", - "createSsdMobilenetv1", - "createTinyFaceDetector", - "createTinyYolov2", - "detectAllFaces", - "detectFaceLandmarks", - "detectFaceLandmarksTiny", - "detectLandmarks", - "detectSingleFace", - "draw", - "env", - "euclideanDistance", - "extendWithAge", - "extendWithFaceDescriptor", - "extendWithFaceDetection", - "extendWithFaceExpressions", - "extendWithFaceLandmarks", - "extendWithGender", - "extractFaceTensors", - "extractFaces", - "fetchImage", - "fetchJson", - "fetchNetWeights", - "fetchOrThrow", - "getContext2dOrThrow", - "getMediaDimensions", - "imageTensorToCanvas", - "imageToSquare", - "inverseSigmoid", - "iou", - "isMediaElement", - "isMediaLoaded", - "isWithAge", - "isWithFaceDetection", - "isWithFaceExpressions", - "isWithFaceLandmarks", - "isWithGender", - "loadAgeGenderModel", - "loadFaceDetectionModel", - "loadFaceExpressionModel", - "loadFaceLandmarkModel", - "loadFaceLandmarkTinyModel", - "loadFaceRecognitionModel", - "loadSsdMobilenetv1Model", - "loadTinyFaceDetectorModel", - "loadTinyYolov2Model", - "loadWeightMap", - "locateFaces", - "matchDimensions", - "minBbox", - "nets", - "nonMaxSuppression", - "normalize", - "padToSquare", - "predictAgeAndGender", - "recognizeFaceExpressions", - "resizeResults", - "resolveInput", - "shuffleArray", - "sigmoid", - "ssdMobilenetv1", - "tf", - "tinyFaceDetector", - "tinyYolov2", - "toNetInput", - "utils", - "validateConfig", - "version" - ], - "entryPoint": "src/index.ts", - "inputs": { - "src/env/isNodejs.ts": { - "bytesInOutput": 181 - }, - "dist/tfjs.esm.js": { - "bytesInOutput": 1039186 - }, - "src/draw/index.ts": { - "bytesInOutput": 280 - }, - "src/draw/drawContour.ts": { - "bytesInOutput": 213 - }, - "src/utils/index.ts": { - "bytesInOutput": 997 - }, - "src/classes/Dimensions.ts": { - "bytesInOutput": 337 - }, - "src/classes/Point.ts": { - "bytesInOutput": 440 - }, - "src/classes/Box.ts": { - "bytesInOutput": 2661 - }, - "src/classes/BoundingBox.ts": { - "bytesInOutput": 93 - }, - "src/classes/index.ts": { - "bytesInOutput": 0 - }, - "src/classes/ObjectDetection.ts": { - "bytesInOutput": 627 - }, - "src/classes/FaceDetection.ts": { - "bytesInOutput": 155 - }, - "src/ops/iou.ts": { - "bytesInOutput": 215 - }, - "src/ops/index.ts": { - "bytesInOutput": 82 - }, - "src/ops/minBbox.ts": { - "bytesInOutput": 204 - }, - "src/ops/nonMaxSuppression.ts": { - "bytesInOutput": 282 - }, - "src/ops/normalize.ts": { - "bytesInOutput": 209 - }, - "src/ops/padToSquare.ts": { - "bytesInOutput": 295 - }, - "src/ops/shuffleArray.ts": { - "bytesInOutput": 133 - }, - "src/classes/Rect.ts": { - "bytesInOutput": 88 - }, - "src/classes/FaceLandmarks.ts": { - "bytesInOutput": 1408 - }, - "src/classes/FaceLandmarks5.ts": { - "bytesInOutput": 108 - }, - "src/classes/FaceLandmarks68.ts": { - "bytesInOutput": 465 - }, - "src/classes/FaceMatch.ts": { - "bytesInOutput": 201 - }, - "src/classes/LabeledBox.ts": { - "bytesInOutput": 252 - }, - "src/classes/LabeledFaceDescriptors.ts": { - "bytesInOutput": 595 - }, - "src/classes/PredictedBox.ts": { - "bytesInOutput": 385 - }, - "src/factories/WithFaceDetection.ts": { - "bytesInOutput": 95 - }, - "src/env/createBrowserEnv.ts": { - "bytesInOutput": 445 - }, - "src/env/createFileSystem.ts": { - "bytesInOutput": 247 - }, - "src/env/createNodejsEnv.ts": { - "bytesInOutput": 600 - }, - "src/env/isBrowser.ts": { - "bytesInOutput": 267 - }, - "src/env/index.ts": { - "bytesInOutput": 820 - }, - "src/dom/resolveInput.ts": { - "bytesInOutput": 85 - }, - "src/dom/getContext2dOrThrow.ts": { - "bytesInOutput": 314 - }, - "src/draw/DrawTextField.ts": { - "bytesInOutput": 1485 - }, - "src/draw/DrawBox.ts": { - "bytesInOutput": 583 - }, - "src/draw/drawDetections.ts": { - "bytesInOutput": 224 - }, - "src/dom/isMediaLoaded.ts": { - "bytesInOutput": 115 - }, - "src/dom/awaitMediaLoaded.ts": { - "bytesInOutput": 424 - }, - "src/dom/index.ts": { - "bytesInOutput": 0 - }, - "src/dom/bufferToImage.ts": { - "bytesInOutput": 387 - }, - "src/dom/getMediaDimensions.ts": { - "bytesInOutput": 184 - }, - "src/dom/createCanvas.ts": { - "bytesInOutput": 393 - }, - "src/dom/imageTensorToCanvas.ts": { - "bytesInOutput": 174 - }, - "src/dom/isMediaElement.ts": { - "bytesInOutput": 111 - }, - "src/dom/imageToSquare.ts": { - "bytesInOutput": 444 - }, - "src/dom/NetInput.ts": { - "bytesInOutput": 2173 - }, - "src/dom/toNetInput.ts": { - "bytesInOutput": 776 - }, - "src/dom/extractFaces.ts": { - "bytesInOutput": 490 - }, - "src/dom/extractFaceTensors.ts": { - "bytesInOutput": 418 - }, - "src/dom/fetchOrThrow.ts": { - "bytesInOutput": 177 - }, - "src/dom/fetchImage.ts": { - "bytesInOutput": 219 - }, - "src/dom/fetchJson.ts": { - "bytesInOutput": 48 - }, - "src/dom/fetchNetWeights.ts": { - "bytesInOutput": 80 - }, - "src/common/getModelUris.ts": { - "bytesInOutput": 473 - }, - "src/dom/loadWeightMap.ts": { - "bytesInOutput": 106 - }, - "src/dom/matchDimensions.ts": { - "bytesInOutput": 102 - }, - "src/NeuralNetwork.ts": { - "bytesInOutput": 2607 - }, - "src/common/depthwiseSeparableConv.ts": { - "bytesInOutput": 117 - }, - "src/faceFeatureExtractor/denseBlock.ts": { - "bytesInOutput": 468 - }, - "src/common/convLayer.ts": { - "bytesInOutput": 104 - }, - "src/common/index.ts": { - "bytesInOutput": 0 - }, - "src/common/disposeUnusedWeightTensors.ts": { - "bytesInOutput": 92 - }, - "src/common/extractConvParamsFactory.ts": { - "bytesInOutput": 163 - }, - "src/common/extractFCParamsFactory.ts": { - "bytesInOutput": 153 - }, - "src/common/types.ts": { - "bytesInOutput": 94 - }, - "src/common/extractSeparableConvParamsFactory.ts": { - "bytesInOutput": 355 - }, - "src/common/extractWeightEntryFactory.ts": { - "bytesInOutput": 189 - }, - "src/common/extractWeightsFactory.ts": { - "bytesInOutput": 147 - }, - "src/faceFeatureExtractor/extractorsFactory.ts": { - "bytesInOutput": 377 - }, - "src/faceFeatureExtractor/extractParams.ts": { - "bytesInOutput": 344 - }, - "src/common/loadConvParamsFactory.ts": { - "bytesInOutput": 97 - }, - "src/faceFeatureExtractor/loadParamsFactory.ts": { - "bytesInOutput": 389 - }, - "src/faceFeatureExtractor/extractParamsFromWeightMap.ts": { - "bytesInOutput": 186 - }, - "src/faceFeatureExtractor/FaceFeatureExtractor.ts": { - "bytesInOutput": 583 - }, - "src/common/fullyConnectedLayer.ts": { - "bytesInOutput": 57 - }, - "src/faceProcessor/extractParams.ts": { - "bytesInOutput": 215 - }, - "src/faceProcessor/extractParamsFromWeightMap.ts": { - "bytesInOutput": 179 - }, - "src/faceProcessor/util.ts": { - "bytesInOutput": 144 - }, - "src/faceProcessor/FaceProcessor.ts": { - "bytesInOutput": 1018 - }, - "src/faceExpressionNet/FaceExpressions.ts": { - "bytesInOutput": 369 - }, - "src/faceExpressionNet/FaceExpressionNet.ts": { - "bytesInOutput": 533 - }, - "src/faceExpressionNet/index.ts": { - "bytesInOutput": 0 - }, - "src/factories/WithFaceExpressions.ts": { - "bytesInOutput": 99 - }, - "src/draw/drawFaceExpressions.ts": { - "bytesInOutput": 422 - }, - "src/factories/WithFaceLandmarks.ts": { - "bytesInOutput": 835 - }, - "src/draw/DrawFaceLandmarks.ts": { - "bytesInOutput": 1228 - }, - "package.json": { - "bytesInOutput": 15 - }, - "src/xception/extractParams.ts": { - "bytesInOutput": 1237 - }, - "src/xception/extractParamsFromWeightMap.ts": { - "bytesInOutput": 1051 - }, - "src/xception/TinyXception.ts": { - "bytesInOutput": 1194 - }, - "src/ageGenderNet/extractParams.ts": { - "bytesInOutput": 259 - }, - "src/ageGenderNet/extractParamsFromWeightMap.ts": { - "bytesInOutput": 211 - }, - "src/ageGenderNet/types.ts": { - "bytesInOutput": 67 - }, - "src/ageGenderNet/AgeGenderNet.ts": { - "bytesInOutput": 1633 - }, - "src/ageGenderNet/index.ts": { - "bytesInOutput": 0 - }, - "src/index.ts": { - "bytesInOutput": 149 - }, - "src/faceLandmarkNet/FaceLandmark68NetBase.ts": { - "bytesInOutput": 1118 - }, - "src/faceLandmarkNet/FaceLandmark68Net.ts": { - "bytesInOutput": 167 - }, - "src/faceLandmarkNet/index.ts": { - "bytesInOutput": 26 - }, - "src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts": { - "bytesInOutput": 167 - }, - "src/faceFeatureExtractor/extractParamsTiny.ts": { - "bytesInOutput": 313 - }, - "src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts": { - "bytesInOutput": 581 - }, - "src/faceLandmarkNet/FaceLandmark68TinyNet.ts": { - "bytesInOutput": 176 - }, - "src/faceRecognitionNet/scaleLayer.ts": { - "bytesInOutput": 51 - }, - "src/faceRecognitionNet/convLayer.ts": { - "bytesInOutput": 246 - }, - "src/faceRecognitionNet/extractParams.ts": { - "bytesInOutput": 1725 - }, - "src/faceRecognitionNet/extractParamsFromWeightMap.ts": { - "bytesInOutput": 1117 - }, - "src/faceRecognitionNet/residualLayer.ts": { - "bytesInOutput": 397 - }, - "src/faceRecognitionNet/FaceRecognitionNet.ts": { - "bytesInOutput": 1106 - }, - "src/faceRecognitionNet/index.ts": { - "bytesInOutput": 58 - }, - "src/factories/WithFaceDescriptor.ts": { - "bytesInOutput": 48 - }, - "src/factories/index.ts": { - "bytesInOutput": 0 - }, - "src/factories/WithAge.ts": { - "bytesInOutput": 87 - }, - "src/factories/WithGender.ts": { - "bytesInOutput": 156 - }, - "src/ssdMobilenetv1/extractParams.ts": { - "bytesInOutput": 3495 - }, - "src/ssdMobilenetv1/extractParamsFromWeightMap.ts": { - "bytesInOutput": 2467 - }, - "src/ssdMobilenetv1/pointwiseConvLayer.ts": { - "bytesInOutput": 110 - }, - "src/ssdMobilenetv1/mobileNetV1.ts": { - "bytesInOutput": 659 - }, - "src/ssdMobilenetv1/nonMaxSuppression.ts": { - "bytesInOutput": 794 - }, - "src/ssdMobilenetv1/outputLayer.ts": { - "bytesInOutput": 670 - }, - "src/ssdMobilenetv1/boxPredictionLayer.ts": { - "bytesInOutput": 185 - }, - "src/ssdMobilenetv1/predictionLayer.ts": { - "bytesInOutput": 695 - }, - "src/ssdMobilenetv1/SsdMobilenetv1Options.ts": { - "bytesInOutput": 519 - }, - "src/ssdMobilenetv1/SsdMobilenetv1.ts": { - "bytesInOutput": 1176 - }, - "src/ssdMobilenetv1/index.ts": { - "bytesInOutput": 112 - }, - "src/tinyYolov2/const.ts": { - "bytesInOutput": 358 - }, - "src/tinyYolov2/config.ts": { - "bytesInOutput": 1012 - }, - "src/tinyYolov2/leaky.ts": { - "bytesInOutput": 89 - }, - "src/tinyYolov2/convWithBatchNorm.ts": { - "bytesInOutput": 177 - }, - "src/tinyYolov2/depthwiseSeparableConv.ts": { - "bytesInOutput": 158 - }, - "src/tinyYolov2/extractParams.ts": { - "bytesInOutput": 1237 - }, - "src/tinyYolov2/extractParamsFromWeightMap.ts": { - "bytesInOutput": 976 - }, - "src/tinyYolov2/TinyYolov2Options.ts": { - "bytesInOutput": 556 - }, - "src/tinyYolov2/TinyYolov2Base.ts": { - "bytesInOutput": 3499 - }, - "src/tinyYolov2/TinyYolov2.ts": { - "bytesInOutput": 546 - }, - "src/tinyYolov2/index.ts": { - "bytesInOutput": 66 - }, - "src/tinyFaceDetector/TinyFaceDetectorOptions.ts": { - "bytesInOutput": 97 - }, - "src/globalApi/ComposableTask.ts": { - "bytesInOutput": 127 - }, - "src/globalApi/extractFacesAndComputeResults.ts": { - "bytesInOutput": 272 - }, - "src/tinyFaceDetector/const.ts": { - "bytesInOutput": 173 - }, - "src/tinyFaceDetector/TinyFaceDetector.ts": { - "bytesInOutput": 496 - }, - "src/globalApi/nets.ts": { - "bytesInOutput": 877 - }, - "src/globalApi/PredictFaceExpressionsTask.ts": { - "bytesInOutput": 854 - }, - "src/globalApi/PredictAgeAndGenderTask.ts": { - "bytesInOutput": 959 - }, - "src/globalApi/ComputeFaceDescriptorsTasks.ts": { - "bytesInOutput": 754 - }, - "src/globalApi/DetectFaceLandmarksTasks.ts": { - "bytesInOutput": 1093 - }, - "src/globalApi/DetectFacesTasks.ts": { - "bytesInOutput": 1340 - }, - "src/globalApi/detectFaces.ts": { - "bytesInOutput": 87 - }, - "src/globalApi/allFaces.ts": { - "bytesInOutput": 212 - }, - "src/globalApi/index.ts": { - "bytesInOutput": 0 - }, - "src/euclideanDistance.ts": { - "bytesInOutput": 205 - }, - "src/globalApi/FaceMatcher.ts": { - "bytesInOutput": 1333 - }, - "src/tinyFaceDetector/index.ts": { - "bytesInOutput": 58 - }, - "src/resizeResults.ts": { - "bytesInOutput": 446 - } - }, - "bytes": 1127203 - } - } -} diff --git a/dist/face-api.js b/dist/face-api.js index 248ac16..b94fe8b 100644 --- a/dist/face-api.js +++ b/dist/face-api.js @@ -5,43 +5,43 @@ author: ' */ -var faceapi=(()=>{var tE=Object.create,bd=Object.defineProperty,nE=Object.getPrototypeOf,aE=Object.prototype.hasOwnProperty,rE=Object.getOwnPropertyNames,sE=Object.getOwnPropertyDescriptor;var e0=e=>bd(e,"__esModule",{value:!0});var iE=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),Ju=(e,t)=>{for(var n in t)bd(e,n,{get:t[n],enumerable:!0})},oE=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of rE(t))!aE.call(e,a)&&a!=="default"&&bd(e,a,{get:()=>t[a],enumerable:!(n=sE(t,a))||n.enumerable});return e},lE=e=>oE(e0(bd(e!=null?tE(nE(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var eC=iE((fre,Z2)=>{e0(fre);Ju(fre,{isNodejs:()=>gre});function gre(){return typeof global=="object"&&!0&&typeof Z2!="undefined"&&typeof process!="undefined"&&!!process.version}});var Lre={};Ju(Lre,{AgeGenderNet:()=>Dp,BoundingBox:()=>ao,Box:()=>it,ComposableTask:()=>ia,ComputeAllFaceDescriptorsTask:()=>Rr,ComputeFaceDescriptorsTaskBase:()=>Wp,ComputeSingleFaceDescriptorTask:()=>Mr,DetectAllFaceLandmarksTask:()=>Up,DetectAllFacesTask:()=>Wu,DetectFaceLandmarksTaskBase:()=>Vp,DetectFacesTaskBase:()=>Hp,DetectSingleFaceLandmarksTask:()=>Gp,DetectSingleFaceTask:()=>jp,Dimensions:()=>un,FACE_EXPRESSION_LABELS:()=>$f,FaceDetection:()=>mt,FaceDetectionNet:()=>Dw,FaceExpressionNet:()=>Ap,FaceExpressions:()=>Ar,FaceLandmark68Net:()=>co,FaceLandmark68TinyNet:()=>Mp,FaceLandmarkNet:()=>Ew,FaceLandmarks:()=>jn,FaceLandmarks5:()=>fw,FaceLandmarks68:()=>so,FaceMatch:()=>Cu,FaceMatcher:()=>Kp,FaceRecognitionNet:()=>po,Gender:()=>cr,LabeledBox:()=>_u,LabeledFaceDescriptors:()=>or,NetInput:()=>ur,NeuralNetwork:()=>Zt,ObjectDetection:()=>Fr,Point:()=>De,PredictedBox:()=>gw,Rect:()=>ro,SsdMobilenetv1:()=>Ns,SsdMobilenetv1Options:()=>sa,TinyFaceDetector:()=>go,TinyFaceDetectorOptions:()=>Bp,TinyYolov2:()=>mo,TinyYolov2Options:()=>Ba,allFaces:()=>i_,allFacesSsdMobilenetv1:()=>Bw,allFacesTinyYolov2:()=>s_,awaitMediaLoaded:()=>bf,bufferToImage:()=>xf,computeFaceDescriptor:()=>HC,createCanvas:()=>ks,createCanvasFromMedia:()=>Fu,createFaceDetectionNet:()=>EC,createFaceRecognitionNet:()=>vC,createSsdMobilenetv1:()=>$w,createTinyFaceDetector:()=>o_,createTinyYolov2:()=>LC,detectAllFaces:()=>qp,detectFaceLandmarks:()=>Pw,detectFaceLandmarksTiny:()=>GC,detectLandmarks:()=>a_,detectSingleFace:()=>r_,draw:()=>Rf,env:()=>tt,euclideanDistance:()=>Lf,extendWithAge:()=>Lp,extendWithFaceDescriptor:()=>Op,extendWithFaceDetection:()=>bs,extendWithFaceExpressions:()=>$p,extendWithFaceLandmarks:()=>uo,extendWithGender:()=>zp,extractFaceTensors:()=>oo,extractFaces:()=>io,fetchImage:()=>tC,fetchJson:()=>kf,fetchNetWeights:()=>nC,fetchOrThrow:()=>Is,getContext2dOrThrow:()=>bn,getMediaDimensions:()=>ws,imageTensorToCanvas:()=>vf,imageToSquare:()=>wf,inverseSigmoid:()=>Q2,iou:()=>df,isMediaElement:()=>Sp,isMediaLoaded:()=>Eu,isWithAge:()=>wC,isWithFaceDetection:()=>La,isWithFaceExpressions:()=>Df,isWithFaceLandmarks:()=>Ts,isWithGender:()=>kC,loadAgeGenderModel:()=>e_,loadFaceDetectionModel:()=>t_,loadFaceExpressionModel:()=>ZC,loadFaceLandmarkModel:()=>YC,loadFaceLandmarkTinyModel:()=>JC,loadFaceRecognitionModel:()=>QC,loadSsdMobilenetv1Model:()=>Ow,loadTinyFaceDetectorModel:()=>KC,loadTinyYolov2Model:()=>XC,loadWeightMap:()=>Tf,locateFaces:()=>n_,matchDimensions:()=>aC,minBbox:()=>hf,nets:()=>Qe,nonMaxSuppression:()=>mf,normalize:()=>wa,padToSquare:()=>ff,predictAgeAndGender:()=>qC,recognizeFaceExpressions:()=>jC,resizeResults:()=>Ww,resolveInput:()=>xs,shuffleArray:()=>J2,sigmoid:()=>Su,ssdMobilenetv1:()=>Mw,tf:()=>xd,tinyFaceDetector:()=>VC,tinyYolov2:()=>UC,toNetInput:()=>ht,utils:()=>uf,validateConfig:()=>Of,version:()=>l_});var xd={};Ju(xd,{Abs:()=>Po,Acos:()=>Oo,Acosh:()=>Lo,AdadeltaOptimizer:()=>qh,AdagradOptimizer:()=>Kh,AdamOptimizer:()=>Xh,AdamaxOptimizer:()=>Yh,Add:()=>Hr,AddN:()=>As,All:()=>Sd,Any:()=>Cd,ArgMax:()=>$s,ArgMin:()=>nc,Asin:()=>zo,Asinh:()=>Bo,Atan:()=>Wo,Atan2:()=>Uo,Atanh:()=>Vo,AvgPool:()=>Ds,AvgPool3D:()=>ac,AvgPool3DGrad:()=>Ed,AvgPoolGrad:()=>_d,BackendWasm:()=>X2,BatchMatMul:()=>Rs,BatchToSpaceND:()=>rc,Bincount:()=>Fd,BroadcastTo:()=>m0,Callback:()=>KI,CallbackList:()=>j1,Cast:()=>Ms,Ceil:()=>Ps,ClipByValue:()=>jr,Complex:()=>Ad,ComplexAbs:()=>sc,Concat:()=>Go,Conv2D:()=>Os,Conv2DBackpropFilter:()=>$d,Conv2DBackpropInput:()=>Ls,Conv3D:()=>ic,Conv3DBackpropFilterV2:()=>Dd,Conv3DBackpropInputV2:()=>Rd,Cos:()=>zs,Cosh:()=>Ho,CropAndResize:()=>jo,Cumsum:()=>Bs,CustomCallback:()=>K1,DataStorage:()=>kd,DenseBincount:()=>Md,DepthToSpace:()=>qo,DepthwiseConv2dNative:()=>Ws,DepthwiseConv2dNativeBackpropFilter:()=>Pd,DepthwiseConv2dNativeBackpropInput:()=>Od,Diag:()=>Ld,Dilation2D:()=>oc,Dilation2DBackpropFilter:()=>Bd,Dilation2DBackpropInput:()=>zd,ENV:()=>ry,EarlyStopping:()=>YI,Elu:()=>Ko,EluGrad:()=>Wd,Environment:()=>d0,Equal:()=>Yo,Erf:()=>Xo,Exp:()=>Us,ExpandDims:()=>Jo,Expm1:()=>Qo,FFT:()=>Vd,Fill:()=>lc,FlipLeftRight:()=>Zo,Floor:()=>Gs,FloorDiv:()=>Hs,FromPixels:()=>nh,FusedBatchNorm:()=>js,FusedConv2D:()=>Ti,FusedDepthwiseConv2D:()=>Ni,GatherNd:()=>tl,GatherV2:()=>el,GraphModel:()=>ST,Greater:()=>nl,GreaterEqual:()=>qs,History:()=>q1,IFFT:()=>Ud,Identity:()=>Ks,Imag:()=>Gd,InputSpec:()=>Xt,IsFinite:()=>al,IsInf:()=>rl,IsNan:()=>sl,KernelBackend:()=>Zu,LRN:()=>pc,LRNGrad:()=>jd,LayerVariable:()=>W1,LayersModel:()=>Tr,LeakyRelu:()=>Xs,Less:()=>il,LessEqual:()=>ol,LinSpace:()=>Hd,Log:()=>Ys,Log1p:()=>ll,LogSoftmax:()=>f0,LogicalAnd:()=>ul,LogicalNot:()=>uc,LogicalOr:()=>cc,Max:()=>Js,MaxPool:()=>Zs,MaxPool3D:()=>dc,MaxPool3DGrad:()=>Kd,MaxPoolGrad:()=>qd,MaxPoolWithArgmax:()=>Xd,Maximum:()=>Qs,Mean:()=>ei,Min:()=>ti,Minimum:()=>ni,MirrorPad:()=>hc,Mod:()=>cl,MomentumOptimizer:()=>Jh,Multinomial:()=>Yd,Multiply:()=>ai,Neg:()=>pl,NonMaxSuppressionV3:()=>hl,NonMaxSuppressionV4:()=>ml,NonMaxSuppressionV5:()=>fl,NotEqual:()=>dl,OP_SCOPE_SUFFIX:()=>S0,OneHot:()=>ri,OnesLike:()=>gl,Optimizer:()=>wr,Pack:()=>yl,PadV2:()=>si,Pool:()=>QE,Pow:()=>ii,Prelu:()=>oi,Prod:()=>bl,RMSPropOptimizer:()=>Qh,RNN:()=>nr,Range:()=>mc,Rank:()=>py,Real:()=>Jd,RealDiv:()=>Vs,Reciprocal:()=>xl,Reduction:()=>mn,Relu:()=>li,Relu6:()=>ci,Reshape:()=>vl,ResizeBilinear:()=>ui,ResizeBilinearGrad:()=>Zd,ResizeNearestNeighbor:()=>fc,ResizeNearestNeighborGrad:()=>Qd,Reverse:()=>pi,RotateWithOffset:()=>Rl,Round:()=>di,Rsqrt:()=>hi,SGDOptimizer:()=>Uc,ScatterNd:()=>wl,Select:()=>kl,Selu:()=>Il,Sequential:()=>su,Sigmoid:()=>fi,Sign:()=>Sl,Sin:()=>mi,Sinh:()=>Nl,Slice:()=>Tl,Softmax:()=>bi,Softplus:()=>Cl,SpaceToBatchND:()=>gc,SparseToDense:()=>eh,SplitV:()=>_l,Sqrt:()=>gi,Square:()=>yc,SquaredDifference:()=>xi,Step:()=>Kr,StridedSlice:()=>El,Sub:()=>vi,Sum:()=>yi,SymbolicTensor:()=>Aa,Tan:()=>Fl,Tanh:()=>wi,Tensor:()=>Ee,TensorBuffer:()=>Ot,Tile:()=>qr,TopK:()=>Al,Transpose:()=>ki,Unique:()=>th,Unpack:()=>$l,UnsortedSegmentSum:()=>bc,Variable:()=>Xr,ZerosLike:()=>Dl,_FusedMatMul:()=>Ii,abs:()=>Lt,acos:()=>Py,acosh:()=>Oy,add:()=>J,addN:()=>lk,all:()=>yh,any:()=>Ec,argMax:()=>Fc,argMin:()=>Ly,asin:()=>zy,asinh:()=>By,atan:()=>Wy,atan2:()=>Vy,atanh:()=>Uy,avgPool:()=>Zn,avgPool3d:()=>jy,backend:()=>ok,backend_util:()=>_,basicLSTMCell:()=>C$,batchNorm:()=>br,batchNorm2d:()=>dk,batchNorm3d:()=>hk,batchNorm4d:()=>mk,batchToSpaceND:()=>$c,bincount:()=>fk,booleanMaskAsync:()=>AM,broadcastTo:()=>Dc,browser:()=>Ei,buffer:()=>Le,callbacks:()=>b4,cast:()=>ue,ceil:()=>qy,clipByValue:()=>qt,clone:()=>Zr,complex:()=>Yr,concat:()=>Je,concat1d:()=>gk,concat2d:()=>yk,concat3d:()=>bk,concat4d:()=>xk,constraints:()=>m1,conv1d:()=>xh,conv2d:()=>Ft,conv2dTranspose:()=>vh,conv3d:()=>Xy,conv3dTranspose:()=>X$,copyRegisteredKernels:()=>tF,cos:()=>Rc,cosh:()=>wh,cosineWindow:()=>wb,cumsum:()=>kh,customGrad:()=>Ka,data:()=>_T,denseBincount:()=>wk,deprecationWarn:()=>My,depthToSpace:()=>Yy,depthwiseConv2d:()=>ns,deregisterOp:()=>v4,device_util:()=>uh,diag:()=>aD,dilation2d:()=>Jy,disableDeprecationWarnings:()=>zA,dispose:()=>Ae,disposeVariables:()=>BA,div:()=>xe,divNoNan:()=>Qy,dot:()=>kk,dropout:()=>Uk,elu:()=>Gl,enableDebugMode:()=>LA,enableProdMode:()=>OA,enclosingPowerOfTwo:()=>Gk,engine:()=>Ha,env:()=>ee,equal:()=>as,erf:()=>Zy,exp:()=>hn,expandDims:()=>Mn,expm1:()=>eb,eye:()=>tb,fft:()=>Wc,fill:()=>Cn,findBackend:()=>qA,findBackendFactory:()=>KA,floor:()=>Hl,floorDiv:()=>gh,fused:()=>is,gather:()=>$i,gatherND:()=>Vk,gather_util:()=>_y,getBackend:()=>HA,getGradient:()=>ly,getKernel:()=>ah,getKernelsForBackend:()=>rh,grad:()=>$D,grads:()=>DD,greater:()=>ha,greaterEqual:()=>rs,ifft:()=>Jl,imag:()=>Ih,image:()=>Ja,inTopKAsync:()=>VM,initializers:()=>w1,input:()=>R1,io:()=>Ht,irfft:()=>Lh,isFinite:()=>Ik,isInf:()=>Tk,isNaN:()=>Nk,keep:()=>jt,kernel_impls:()=>Qa,layers:()=>D1,leakyRelu:()=>Mc,less:()=>Th,lessEqual:()=>Di,linalg:()=>n1,linspace:()=>Sk,loadGraphModel:()=>xV,loadLayersModel:()=>LW,localResponseNormalization:()=>nb,log:()=>Pn,log1p:()=>Nh,logSigmoid:()=>_k,logSoftmax:()=>Ch,logSumExp:()=>sb,logicalAnd:()=>ma,logicalNot:()=>Pc,logicalOr:()=>_h,logicalXor:()=>$k,losses:()=>aO,matMul:()=>ze,math:()=>V0,max:()=>ea,maxPool:()=>At,maxPool3d:()=>ib,maxPoolWithArgmax:()=>Dk,maximum:()=>Xa,mean:()=>St,memory:()=>mh,metrics:()=>HI,min:()=>ql,minimum:()=>Kl,mirrorPad:()=>ob,mod:()=>lb,model:()=>PW,models:()=>jI,moments:()=>Eh,movingAverage:()=>RM,mul:()=>L,multiRNNCell:()=>lR,multinomial:()=>Rk,neg:()=>Nt,nextFrame:()=>Zh,norm:()=>Vh,notEqual:()=>Mi,oneHot:()=>Bl,ones:()=>Ya,onesLike:()=>On,op:()=>P,outerProduct:()=>hR,pad:()=>ta,pad1d:()=>gR,pad2d:()=>bR,pad3d:()=>vR,pad4d:()=>kR,pool:()=>Mk,pow:()=>xr,prelu:()=>Lc,print:()=>P0,prod:()=>Fh,profile:()=>WA,rand:()=>AR,randomGamma:()=>MR,randomNormal:()=>Pk,randomUniform:()=>Xl,range:()=>Ah,ready:()=>GA,real:()=>zc,reciprocal:()=>pb,registerBackend:()=>fh,registerCallbackConstructor:()=>zW,registerGradient:()=>g0,registerKernel:()=>vc,registerOp:()=>x4,regularizers:()=>qI,relu:()=>qe,relu6:()=>$h,removeBackend:()=>jA,reshape:()=>U,reverse:()=>Ln,reverse1d:()=>GR,reverse2d:()=>jR,reverse3d:()=>KR,reverse4d:()=>YR,rfft:()=>Vc,round:()=>db,rsqrt:()=>Dh,scalar:()=>pe,scatterND:()=>Wk,scatter_util:()=>Ey,selu:()=>Rh,separableConv2d:()=>Pi,sequential:()=>OW,serialization:()=>re,setBackend:()=>UA,setPlatform:()=>XA,setWasmPath:()=>ore,setWasmPaths:()=>lre,setdiff1dAsync:()=>Ok,sigmoid:()=>da,sign:()=>hb,signal:()=>nO,sin:()=>Mh,sinh:()=>Ph,slice:()=>We,slice1d:()=>Oh,slice2d:()=>mb,slice3d:()=>Yl,slice4d:()=>Bc,slice_util:()=>dn,softmax:()=>Na,softplus:()=>jl,spaceToBatchND:()=>Oc,sparseToDense:()=>vb,spectral:()=>tO,split:()=>zn,sqrt:()=>an,square:()=>lt,squaredDifference:()=>zh,squeeze:()=>ss,stack:()=>$t,step:()=>Ql,stridedSlice:()=>fb,sub:()=>me,sum:()=>Se,sumOutType:()=>lh,tan:()=>gb,tanh:()=>Ul,tensor:()=>Jn,tensor1d:()=>Ze,tensor2d:()=>Sa,tensor3d:()=>dh,tensor4d:()=>Ca,tensor5d:()=>kM,tensor6d:()=>IM,tensor_util:()=>Ta,test_util:()=>ak,tidy:()=>D,tile:()=>qa,time:()=>VA,topk:()=>yb,train:()=>Li,transpose:()=>Ve,truncatedNormal:()=>Bh,unique:()=>Wh,unregisterGradient:()=>eF,unregisterKernel:()=>ZE,unsortedSegmentSum:()=>bb,unstack:()=>ut,upcastType:()=>pa,util:()=>w,valueAndGrad:()=>RD,valueAndGrads:()=>MD,variable:()=>Lk,variableGrads:()=>Ck,version:()=>fee,version_converter:()=>CT,version_core:()=>ik,version_layers:()=>Im,version_wasm:()=>ure,where:()=>Sn,whereAsync:()=>xb,zeros:()=>xt,zerosLike:()=>Ge});var uE=Object.create,vd=Object.defineProperty,cE=Object.getPrototypeOf,pE=Object.prototype.hasOwnProperty,dE=Object.getOwnPropertyNames,hE=Object.getOwnPropertyDescriptor,mE=e=>vd(e,"__esModule",{value:!0}),pn=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),Oe=(e,t)=>{for(var n in t)vd(e,n,{get:t[n],enumerable:!0})},fE=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of dE(t))!pE.call(e,a)&&a!=="default"&&vd(e,a,{get:()=>t[a],enumerable:!(n=hE(t,a))||n.enumerable});return e},Do=e=>fE(mE(vd(e!=null?uE(cE(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e),gE=pn(()=>{}),yE=pn((e,t)=>{(function(n,a,r){function s(c){var u=this,p=l();u.next=function(){var d=2091639*u.s0+u.c*23283064365386963e-26;return u.s0=u.s1,u.s1=u.s2,u.s2=d-(u.c=d|0)},u.c=1,u.s0=p(" "),u.s1=p(" "),u.s2=p(" "),u.s0-=p(c),u.s0<0&&(u.s0+=1),u.s1-=p(c),u.s1<0&&(u.s1+=1),u.s2-=p(c),u.s2<0&&(u.s2+=1),p=null}function i(c,u){return u.c=c.c,u.s0=c.s0,u.s1=c.s1,u.s2=c.s2,u}function o(c,u){var p=new s(c),d=u&&u.state,h=p.next;return h.int32=function(){return p.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,d&&(typeof d=="object"&&i(d,p),h.state=function(){return i(p,{})}),h}function l(){var c=4022871197,u=function(p){p=p.toString();for(var d=0;d>>0,h-=c,h*=c,c=h>>>0,h-=c,c+=h*4294967296}return(c>>>0)*23283064365386963e-26};return u}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),bE=pn((e,t)=>{(function(n,a,r){function s(l){var c=this,u="";c.x=0,c.y=0,c.z=0,c.w=0,c.next=function(){var d=c.x^c.x<<11;return c.x=c.y,c.y=c.z,c.z=c.w,c.w^=c.w>>>19^d^d>>>8},l===(l|0)?c.x=l:u+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(typeof p=="object"&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),xE=pn((e,t)=>{(function(n,a,r){function s(l){var c=this,u="";c.next=function(){var d=c.x^c.x>>>2;return c.x=c.y,c.y=c.z,c.z=c.w,c.w=c.v,(c.d=c.d+362437|0)+(c.v=c.v^c.v<<4^(d^d<<1))|0},c.x=0,c.y=0,c.z=0,c.w=0,c.v=0,l===(l|0)?c.x=l:u+=l;for(var p=0;p>>4),c.next()}function i(l,c){return c.x=l.x,c.y=l.y,c.z=l.z,c.w=l.w,c.v=l.v,c.d=l.d,c}function o(l,c){var u=new s(l),p=c&&c.state,d=function(){return(u.next()>>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(typeof p=="object"&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),vE=pn((e,t)=>{(function(n,a,r){function s(l){var c=this;c.next=function(){var p=c.x,d=c.i,h,m,f;return h=p[d],h^=h>>>7,m=h^h<<24,h=p[d+1&7],m^=h^h>>>10,h=p[d+3&7],m^=h^h>>>3,h=p[d+4&7],m^=h^h<<7,h=p[d+7&7],h=h^h<<13,m^=h^h<<9,p[d]=m,c.i=d+1&7,m};function u(p,d){var h,m,f=[];if(d===(d|0))m=f[0]=d;else for(d=""+d,h=0;h0;--h)p.next()}u(c,l)}function i(l,c){return c.x=l.x.slice(),c.i=l.i,c}function o(l,c){l==null&&(l=+new Date);var u=new s(l),p=c&&c.state,d=function(){return(u.next()>>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(p.x&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),wE=pn((e,t)=>{(function(n,a,r){function s(l){var c=this;c.next=function(){var p=c.w,d=c.X,h=c.i,m,f;return c.w=p=p+1640531527|0,f=d[h+34&127],m=d[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=d[h]=f^m,c.i=h,f+(p^p>>>16)|0};function u(p,d){var h,m,f,g,y,b=[],x=128;for(d===(d|0)?(m=d,d=null):(d=d+"\0",m=0,x=Math.max(x,d.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(y=y+1640531527|0,h=b[g&127]^=m+y,f=h==0?f+1:0);for(f>=128&&(b[(d&&d.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=b[f+34&127],h=b[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,b[f]=m^h;p.w=y,p.X=b,p.i=f}u(c,l)}function i(l,c){return c.i=l.i,c.w=l.w,c.X=l.X.slice(),c}function o(l,c){l==null&&(l=+new Date);var u=new s(l),p=c&&c.state,d=function(){return(u.next()>>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(p.X&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),kE=pn((e,t)=>{(function(n,a,r){function s(l){var c=this,u="";c.next=function(){var d=c.b,h=c.c,m=c.d,f=c.a;return d=d<<25^d>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-d|0,c.b=d=d<<20^d>>>12^h,c.c=h=h-m|0,c.d=m<<16^h>>>16^f,c.a=f-d|0},c.a=0,c.b=0,c.c=2654435769|0,c.d=1367130551,l===Math.floor(l)?(c.a=l/4294967296|0,c.b=l|0):u+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(typeof p=="object"&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),IE=pn(()=>{}),TE=pn((e,t)=>{(function(n,a){var r=this,s=256,i=6,o=52,l="random",c=a.pow(s,i),u=a.pow(2,o),p=u*2,d=s-1,h;function m(N,T,S){var A=[];T=T==!0?{entropy:!0}:T||{};var $=b(y(T.entropy?[N,v(n)]:N==null?x():N,3),A),R=new f(A),B=function(){for(var V=R.g(i),W=c,G=0;V=p;)V/=2,W/=2,G>>>=1;return(V+G)/W};return B.int32=function(){return R.g(4)|0},B.quick=function(){return R.g(4)/4294967296},B.double=B,b(v(R.S),n),(T.pass||S||function(V,W,G,H){return H&&(H.S&&g(H,R),V.state=function(){return g(R,{})}),G?(a[l]=V,W):V})(B,$,"global"in T?T.global:this==a,T.state)}a["seed"+l]=m;function f(N){var T,S=N.length,A=this,$=0,R=A.i=A.j=0,B=A.S=[];for(S||(N=[S++]);${var n=yE(),a=bE(),r=xE(),s=vE(),i=wE(),o=kE(),l=TE();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),NE=pn(()=>{}),Qu=pn(()=>{}),SE=pn(()=>{}),CE=pn(()=>{}),_E=pn((e,t)=>{var n=function(){var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};function s(){return Z.buffer!=Be&&tn(Z.buffer),wn}function i(){return Z.buffer!=Be&&tn(Z.buffer),It}function o(){return Z.buffer!=Be&&tn(Z.buffer),kn}function l(){return Z.buffer!=Be&&tn(Z.buffer),Xn}function c(){return Z.buffer!=Be&&tn(Z.buffer),cn}var u=typeof r!="undefined"?r:{},p,d;u.ready=new Promise(function(I,C){p=I,d=C});var h={},m;for(m in u)u.hasOwnProperty(m)&&(h[m]=u[m]);var f=[],g="./this.program",y=function(I,C){throw C},b=!1,x=!1,v=!1,N=!1;b=typeof window=="object",x=typeof importScripts=="function",v=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",N=!b&&!v&&!x;var T=u.ENVIRONMENT_IS_PTHREAD||!1;T&&(Be=u.buffer);var S="";function A(I){return u.locateFile?u.locateFile(I,S):S+I}var $,R,B,V,W,G;if(v){x?S=Qu().dirname(S)+"/":S=__dirname+"/",$=function(I,C){return W||(W=require("fs")),G||(G=Qu()),I=G.normalize(I),W.readFileSync(I,C?null:"utf8")},B=function(I){var C=$(I,!0);return C.buffer||(C=new Uint8Array(C)),fe(C.buffer),C},process.argv.length>1&&(g=process.argv[1].replace(/\\/g,"/")),f=process.argv.slice(2),process.on("uncaughtException",function(I){if(!(I instanceof Yu))throw I}),process.on("unhandledRejection",hr),y=function(I){process.exit(I)},u.inspect=function(){return"[Emscripten Module object]"};var H;try{H=SE()}catch(I){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),I}global.Worker=H.Worker}else N?(typeof read!="undefined"&&($=function(I){return read(I)}),B=function(I){var C;return typeof readbuffer=="function"?new Uint8Array(readbuffer(I)):(C=read(I,"binary"),fe(typeof C=="object"),C)},typeof scriptArgs!="undefined"?f=scriptArgs:typeof arguments!="undefined"&&(f=arguments),typeof quit=="function"&&(y=function(I){quit(I)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(b||x)&&(x?S=self.location.href:typeof document!="undefined"&&document.currentScript&&(S=document.currentScript.src),typeof a!="undefined"&&a&&(S=a),S.indexOf("blob:")!==0?S=S.substr(0,S.lastIndexOf("/")+1):S="",v?($=function(I,C){return W||(W=require("fs")),G||(G=Qu()),I=G.normalize(I),W.readFileSync(I,C?null:"utf8")},B=function(I){var C=$(I,!0);return C.buffer||(C=new Uint8Array(C)),fe(C.buffer),C}):($=function(I){var C=new XMLHttpRequest;return C.open("GET",I,!1),C.send(null),C.responseText},x&&(B=function(I){var C=new XMLHttpRequest;return C.open("GET",I,!1),C.responseType="arraybuffer",C.send(null),new Uint8Array(C.response)}),R=function(I,C,O){var j=new XMLHttpRequest;j.open("GET",I,!0),j.responseType="arraybuffer",j.onload=function(){if(j.status==200||j.status==0&&j.response){C(j.response);return}O()},j.onerror=O,j.send(null)}),V=function(I){document.title=I});v&&typeof performance=="undefined"&&(global.performance=CE().performance);var X=u.print||console.log.bind(console),q=u.printErr||console.warn.bind(console);for(m in h)h.hasOwnProperty(m)&&(u[m]=h[m]);h=null,u.arguments&&(f=u.arguments),u.thisProgram&&(g=u.thisProgram),u.quit&&(y=u.quit);var te=Atomics.load,Q=Atomics.store,se=Atomics.compareExchange,ne;u.wasmBinary&&(ne=u.wasmBinary);var ie=u.noExitRuntime||!0;typeof WebAssembly!="object"&&hr("no native wasm support detected");var Z,de,oe=!1,ge;function fe(I,C){I||hr("Assertion failed: "+C)}function we(I){var C=u["_"+I];return fe(C,"Cannot call unknown function "+I+", make sure it is exported"),C}function Te(I,C,O,j,he){var le={string:function(Nn){var $o=0;if(Nn!=null&&Nn!==0){var Zw=(Nn.length<<2)+1;$o=Eo(Zw),at(Nn,$o,Zw)}return $o},array:function(Nn){var $o=Eo(Nn.length);return Xe(Nn,$o),$o}};function ce(Nn){return C==="string"?Fe(Nn):C==="boolean"?Boolean(Nn):Nn}var be=we(I),rt=[],Ut=0;if(j)for(var Mt=0;Mt=j);){var le=I[C++];if(!le)return he;if(!(le&128)){he+=String.fromCharCode(le);continue}var ce=I[C++]&63;if((le&224)==192){he+=String.fromCharCode((le&31)<<6|ce);continue}var be=I[C++]&63;if((le&240)==224?le=(le&15)<<12|ce<<6|be:le=(le&7)<<18|ce<<12|be<<6|I[C++]&63,le<65536)he+=String.fromCharCode(le);else{var rt=le-65536;he+=String.fromCharCode(55296|rt>>10,56320|rt&1023)}}return he}function Fe(I,C){return I?Re(i(),I,C):""}function nt(I,C,O,j){if(!(j>0))return 0;for(var he=O,le=O+j-1,ce=0;ce=55296&&be<=57343){var rt=I.charCodeAt(++ce);be=65536+((be&1023)<<10)|rt&1023}if(be<=127){if(O>=le)break;C[O++]=be}else if(be<=2047){if(O+1>=le)break;C[O++]=192|be>>6,C[O++]=128|be&63}else if(be<=65535){if(O+2>=le)break;C[O++]=224|be>>12,C[O++]=128|be>>6&63,C[O++]=128|be&63}else{if(O+3>=le)break;C[O++]=240|be>>18,C[O++]=128|be>>12&63,C[O++]=128|be>>6&63,C[O++]=128|be&63}}return C[O]=0,O-he}function at(I,C,O){return nt(I,i(),C,O)}function ot(I){for(var C=0,O=0;O=55296&&j<=57343&&(j=65536+((j&1023)<<10)|I.charCodeAt(++O)&1023),j<=127?++C:j<=2047?C+=2:j<=65535?C+=3:C+=4}return C}function Xe(I,C){s().set(I,C)}function ft(I,C){return I%C>0&&(I+=C-I%C),I}var Be,wn,It,Kn,en,kn,Xn,Rn,cn;function tn(I){Be=I,u.HEAP8=wn=new Int8Array(I),u.HEAP16=Kn=new Int16Array(I),u.HEAP32=kn=new Int32Array(I),u.HEAPU8=It=new Uint8Array(I),u.HEAPU16=en=new Uint16Array(I),u.HEAPU32=Xn=new Uint32Array(I),u.HEAPF32=Rn=new Float32Array(I),u.HEAPF64=cn=new Float64Array(I)}var Wa=u.INITIAL_MEMORY||16777216;if(T)Z=u.wasmMemory,Be=u.buffer;else if(u.wasmMemory)Z=u.wasmMemory;else if(Z=new WebAssembly.Memory({initial:Wa/65536,maximum:2147483648/65536,shared:!0}),!(Z.buffer instanceof SharedArrayBuffer))throw q("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),v&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");Z&&(Be=Z.buffer),Wa=Be.byteLength,tn(Be);var oa,la=[],Pr=[],pr=[],Or=[],wo=[],Ia=!1,Xp=!1;T||Pr.push({func:function(){pd()}}),T&&(Ia=!0);function zf(){if(!T){if(u.preRun)for(typeof u.preRun=="function"&&(u.preRun=[u.preRun]);u.preRun.length;)Qp(u.preRun.shift());Io(la)}}function Yp(){Ia=!0,Io(Pr)}function Bf(){T||Io(pr)}function Jp(){T||(Xp=!0)}function In(){if(!T){if(u.postRun)for(typeof u.postRun=="function"&&(u.postRun=[u.postRun]);u.postRun.length;)Wf(u.postRun.shift());Io(wo)}}function Qp(I){la.unshift(I)}function Wf(I){wo.unshift(I)}var dr=0,Lr=null,Ss=null;function Vf(I){fe(!T,"addRunDependency cannot be used in a pthread worker"),dr++,u.monitorRunDependencies&&u.monitorRunDependencies(dr)}function Uf(I){if(dr--,u.monitorRunDependencies&&u.monitorRunDependencies(dr),dr==0&&(Lr!==null&&(clearInterval(Lr),Lr=null),Ss)){var C=Ss;Ss=null,C()}}u.preloadedImages={},u.preloadedAudios={};function hr(I){u.onAbort&&u.onAbort(I),T&&console.error("Pthread aborting at "+new Error().stack),I+="",q(I),oe=!0,ge=1,I="abort("+I+"). Build with -s ASSERTIONS=1 for more info.";var C=new WebAssembly.RuntimeError(I);throw d(C),C}function Zp(I,C){return String.prototype.startsWith?I.startsWith(C):I.indexOf(C)===0}var ko="data:application/octet-stream;base64,";function ed(I){return Zp(I,ko)}var Gf="file://";function td(I){return Zp(I,Gf)}var Tn="tfjs-backend-wasm-threaded-simd.wasm";ed(Tn)||(Tn=A(Tn));function Hf(I){try{if(I==Tn&&ne)return new Uint8Array(ne);if(B)return B(I);throw"both async and sync fetching of the wasm failed"}catch(C){hr(C)}}function nd(){if(!ne&&(b||x)){if(typeof fetch=="function"&&!td(Tn))return fetch(Tn,{credentials:"same-origin"}).then(function(I){if(!I.ok)throw"failed to load wasm binary file at '"+Tn+"'";return I.arrayBuffer()}).catch(function(){return Hf(Tn)});if(R)return new Promise(function(I,C){R(Tn,function(O){I(new Uint8Array(O))},C)})}return Promise.resolve().then(function(){return Hf(Tn)})}function jf(){var I={a:Pg};function C(ce,be){var rt=ce.exports;if(u.asm=rt,oa=u.asm.F,de=be,!T){var Ut=ke.unusedWorkers.length;ke.unusedWorkers.forEach(function(Mt){ke.loadWasmModuleToWorker(Mt,function(){--Ut||Uf("wasm-instantiate")})})}}T||Vf("wasm-instantiate");function O(ce){C(ce.instance,ce.module)}function j(ce){return nd().then(function(be){return WebAssembly.instantiate(be,I)}).then(ce,function(be){q("failed to asynchronously prepare wasm: "+be),hr(be)})}function he(){return!ne&&typeof WebAssembly.instantiateStreaming=="function"&&!ed(Tn)&&!td(Tn)&&typeof fetch=="function"?fetch(Tn,{credentials:"same-origin"}).then(function(ce){var be=WebAssembly.instantiateStreaming(ce,I);return be.then(O,function(rt){return q("wasm streaming compile failed: "+rt),q("falling back to ArrayBuffer instantiation"),j(O)})}):j(O)}if(u.instantiateWasm)try{var le=u.instantiateWasm(I,C);return le}catch(ce){return q("Module.instantiateWasm callback failed with error: "+ce),!1}return he().catch(d),{}}var ad={8991:function(I,C){setTimeout(function(){qw(I,C)},0)}};function qf(){ke.initRuntime()}function Io(I){for(;I.length>0;){var C=I.shift();if(typeof C=="function"){C(u);continue}var O=C.func;typeof O=="number"?C.arg===void 0?oa.get(O)():oa.get(O)(C.arg):O(C.arg===void 0?null:C.arg)}}function To(I,C){if(I<=0||I>s().length||I&!0||C<0)return-28;if(C==0)return 0;C>=2147483647&&(C=Infinity);var O=Atomics.load(o(),Fo>>2),j=0;if(O==I){var he=Atomics.compareExchange(o(),Fo>>2,O,0);if(he==O&&(--C,j=1,C<=0))return 1}var le=Atomics.notify(o(),I>>2,C);if(le>=0)return le+j;throw"Atomics.notify returned an unexpected value "+le}u._emscripten_futex_wake=To;function Kf(I){if(T)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!I)throw"Internal Error! Null pthread_ptr in killThread!";o()[I+12>>2]=0;var C=ke.pthreads[I];C.worker.terminate(),ke.freeThreadData(C),ke.runningWorkers.splice(ke.runningWorkers.indexOf(C.worker),1),C.worker.pthread=void 0}function Xf(I){if(T)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!I)throw"Internal Error! Null pthread_ptr in cancelThread!";var C=ke.pthreads[I];C.worker.postMessage({cmd:"cancel"})}function Yf(I){if(T)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!I)throw"Internal Error! Null pthread_ptr in cleanupThread!";o()[I+12>>2]=0;var C=ke.pthreads[I];if(C){var O=C.worker;ke.returnWorkerToPool(O)}}var ke={unusedWorkers:[],runningWorkers:[],initMainThreadBlock:function(){for(var I=8,C=0;C>2]=I;var O=I+152;o()[O>>2]=O;for(var j=_s(512),C=0;C<128;++C)l()[j/4+C]=0;Atomics.store(l(),I+100>>2,j),Atomics.store(l(),I+40>>2,I),gd(I,!x,1),jw(I)},initWorker:function(){},pthreads:{},threadExitHandlers:[],setThreadStatus:function(){},runExitHandlers:function(){for(;ke.threadExitHandlers.length>0;)ke.threadExitHandlers.pop()();T&&Co()&&Hw()},threadExit:function(I){var C=Co();C&&(Atomics.store(l(),C+4>>2,I),Atomics.store(l(),C+0>>2,1),Atomics.store(l(),C+56>>2,1),Atomics.store(l(),C+60>>2,0),ke.runExitHandlers(),To(C+0,2147483647),gd(0,0,0),T&&postMessage({cmd:"exit"}))},threadCancel:function(){ke.runExitHandlers();var I=Co();Atomics.store(l(),I+4>>2,-1),Atomics.store(l(),I+0>>2,1),To(I+0,2147483647),gd(0,0,0),postMessage({cmd:"cancelDone"})},terminateAllThreads:function(){for(var I in ke.pthreads){var C=ke.pthreads[I];C&&C.worker&&ke.returnWorkerToPool(C.worker)}ke.pthreads={};for(var O=0;O>2];o()[I.threadInfoStruct+100>>2]=0,Ku(C),Ku(I.threadInfoStruct)}I.threadInfoStruct=0,I.allocatedOwnStack&&I.stackBase&&Ku(I.stackBase),I.stackBase=0,I.worker&&(I.worker.pthread=null)}},returnWorkerToPool:function(I){ke.runWithoutMainThreadQueuedCalls(function(){delete ke.pthreads[I.pthread.threadInfoStruct],ke.unusedWorkers.push(I),ke.runningWorkers.splice(ke.runningWorkers.indexOf(I),1),ke.freeThreadData(I.pthread),I.pthread=void 0})},runWithoutMainThreadQueuedCalls:function(I){o()[Qw>>2]=0;try{I()}finally{o()[Qw>>2]=1}},receiveObjectTransfer:function(I){},loadWasmModuleToWorker:function(I,C){I.onmessage=function(O){var j=O.data,he=j.cmd;if(I.pthread&&(ke.currentProxiedOperationCallerThread=I.pthread.threadInfoStruct),j.targetThread&&j.targetThread!=Co()){var le=ke.pthreads[j.targetThread];le?le.worker.postMessage(O.data,j.transferList):console.error('Internal error! Worker sent a message "'+he+'" to target pthread '+j.targetThread+", but that thread no longer exists!"),ke.currentProxiedOperationCallerThread=void 0;return}if(he==="processQueuedMainThreadWork")Jg();else if(he==="spawnThread")ud(O.data);else if(he==="cleanupThread")Yf(j.thread);else if(he==="killThread")Kf(j.thread);else if(he==="cancelThread")Xf(j.thread);else if(he==="loaded")I.loaded=!0,C&&C(I),I.runPthread&&(I.runPthread(),delete I.runPthread);else if(he==="print")X("Thread "+j.threadId+": "+j.text);else if(he==="printErr")q("Thread "+j.threadId+": "+j.text);else if(he==="alert")alert("Thread "+j.threadId+": "+j.text);else if(he==="exit"){var ce=I.pthread&&Atomics.load(l(),I.pthread.threadInfoStruct+64>>2);ce&&ke.returnWorkerToPool(I)}else if(he==="exitProcess")try{eE(j.returnCode)}catch(be){if(be instanceof Yu)return;throw be}else he==="cancelDone"?ke.returnWorkerToPool(I):he==="objectTransfer"?ke.receiveObjectTransfer(O.data):O.data.target==="setimmediate"?I.postMessage(O.data):q("worker sent an unknown command "+he);ke.currentProxiedOperationCallerThread=void 0},I.onerror=function(O){q("pthread sent an error! "+O.filename+":"+O.lineno+": "+O.message)},v&&(I.on("message",function(O){I.onmessage({data:O})}),I.on("error",function(O){I.onerror(O)}),I.on("exit",function(O){})),I.postMessage({cmd:"load",urlOrBlob:u.mainScriptUrlOrBlob||a,wasmMemory:Z,wasmModule:de})},allocateUnusedWorker:function(){var I=A("tfjs-backend-wasm-threaded-simd.worker.js");ke.unusedWorkers.push(new Worker(I))},getNewWorker:function(){return ke.unusedWorkers.length==0&&(ke.allocateUnusedWorker(),ke.loadWasmModuleToWorker(ke.unusedWorkers[0])),ke.unusedWorkers.length>0?ke.unusedWorkers.pop():null},busySpinWait:function(I){for(var C=performance.now()+I;performance.now()>2]=I,I}function ag(I,C){if(T)return zr(1,1,I,C)}function rg(I,C){if(I==C)postMessage({cmd:"processQueuedMainThreadWork"});else if(T)postMessage({targetThread:I,cmd:"processThreadQueue"});else{var O=ke.pthreads[I],j=O&&O.worker;if(!j)return;j.postMessage({cmd:"processThreadQueue"})}return 1}function sg(){hr()}function ig(I,C,O){var j=pg(C,O);return ad[I].apply(null,j)}function og(I,C){}function lg(I,C,O){if(I<=0||I>s().length||I&!0)return-28;if(b){if(Atomics.load(o(),I>>2)!=C)return-6;for(var j=performance.now(),he=j+O,le=Atomics.exchange(o(),Fo>>2,I);;){if(j=performance.now(),j>he)return le=Atomics.exchange(o(),Fo>>2,0),-73;if(le=Atomics.exchange(o(),Fo>>2,0),le==0)break;if(Jg(),Atomics.load(o(),I>>2)!=C)return-6;le=Atomics.exchange(o(),Fo>>2,I)}return 0}else{var ce=Atomics.wait(o(),I>>2,C,O);if(ce==="timed-out")return-73;if(ce==="not-equal")return-6;if(ce==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ce}}function ug(I,C,O){i().copyWithin(I,C,C+O)}function cg(){return v?require("os").cpus().length:navigator.hardwareConcurrency}function zr(I,C){for(var O=arguments.length-2,j=Xu(),he=O,le=Eo(he*8),ce=le>>3,be=0;be>=2;O=i()[I++];){var j=O<105;j&&C&1&&C++,Uu.push(j?c()[C++>>1]:o()[C]),++C}return Uu}function dg(I,C,O){Vu.length=C;for(var j=O>>3,he=0;he>>16),tn(Z.buffer),1}catch(C){}}function fg(I){var C=hg();if(I<=C)return!1;var O=2147483648;if(I>O)return!1;for(var j=1;j<=4;j*=2){var he=C*(1+.2/j);he=Math.min(he,I+100663296);var le=Math.min(O,ft(Math.max(I,he),65536)),ce=mg(le);if(ce)return!0}return!1}var Pe={inEventHandler:0,removeAllEventListeners:function(){for(var I=Pe.eventHandlers.length-1;I>=0;--I)Pe._removeHandler(I);Pe.eventHandlers=[],Pe.deferredCalls=[]},registerRemoveEventListeners:function(){Pe.removeEventListenersRegistered||(Or.push(Pe.removeAllEventListeners),Pe.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(I,C,O){function j(ce,be){if(ce.length!=be.length)return!1;for(var rt in ce)if(ce[rt]!=be[rt])return!1;return!0}for(var he in Pe.deferredCalls){var le=Pe.deferredCalls[he];if(le.targetFunction==I&&j(le.argsList,O))return}Pe.deferredCalls.push({targetFunction:I,precedence:C,argsList:O}),Pe.deferredCalls.sort(function(ce,be){return ce.precedence>2]=O,o()[ce+4>>2]=j,o()[ce+8>>2]=he,Qg(0,I,637534208,C,j,ce),_o(le)},getTargetThreadForEventCallback:function(I){switch(I){case 1:return 0;case 2:return ke.currentProxiedOperationCallerThread;default:return I}},getNodeNameForTarget:function(I){return I?I==window?"#window":I==screen?"#screen":I&&I.nodeName?I.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function gg(I){var C=ot(I)+1,O=_s(C);return at(I,O,C),O}function yg(I,C,O,j){var he=Xu(),le=Eo(12),ce=0;C&&(ce=gg(C)),o()[le>>2]=ce,o()[le+4>>2]=O,o()[le+8>>2]=j,Qg(0,I,657457152,0,ce,le),_o(he)}function bg(I,C,O,j){C=C?Fe(C):"",yg(I,C,O,j)}function xg(I){return I>2?Fe(I):I}var vg=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function wg(I){I=xg(I);var C=vg[I]||(typeof document!="undefined"?document.querySelector(I):void 0);return C}function Gu(I){return wg(I)}function rd(I,C,O){var j=Gu(I);if(!j)return-4;if(j.canvasSharedPtr&&(o()[j.canvasSharedPtr>>2]=C,o()[j.canvasSharedPtr+4>>2]=O),j.offscreenCanvas||!j.controlTransferredOffscreen){j.offscreenCanvas&&(j=j.offscreenCanvas);var he=!1;if(j.GLctxObject&&j.GLctxObject.GLctx){var le=j.GLctxObject.GLctx.getParameter(2978);he=le[0]===0&&le[1]===0&&le[2]===j.width&&le[3]===j.height}j.width=C,j.height=O,he&&j.GLctxObject.GLctx.viewport(0,0,C,O)}else if(j.canvasSharedPtr){var ce=o()[j.canvasSharedPtr+8>>2];return bg(ce,I,C,O),1}else return-4;return 0}function sd(I,C,O){return T?zr(2,1,I,C,O):rd(I,C,O)}function kg(I,C,O){var j=Gu(I);return j?rd(I,C,O):sd(I,C,O)}function Ig(I){}function Tg(I,C){}function Ng(I){var C=I.getExtension("ANGLE_instanced_arrays");if(C)return I.vertexAttribDivisor=function(O,j){C.vertexAttribDivisorANGLE(O,j)},I.drawArraysInstanced=function(O,j,he,le){C.drawArraysInstancedANGLE(O,j,he,le)},I.drawElementsInstanced=function(O,j,he,le,ce){C.drawElementsInstancedANGLE(O,j,he,le,ce)},1}function Sg(I){var C=I.getExtension("OES_vertex_array_object");if(C)return I.createVertexArray=function(){return C.createVertexArrayOES()},I.deleteVertexArray=function(O){C.deleteVertexArrayOES(O)},I.bindVertexArray=function(O){C.bindVertexArrayOES(O)},I.isVertexArray=function(O){return C.isVertexArrayOES(O)},1}function Cg(I){var C=I.getExtension("WEBGL_draw_buffers");if(C)return I.drawBuffers=function(O,j){C.drawBuffersWEBGL(O,j)},1}function _g(I){return!!(I.multiDrawWebgl=I.getExtension("WEBGL_multi_draw"))}var et={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,recordError:function(I){et.lastError||(et.lastError=I)},getNewId:function(I){for(var C=et.counter++,O=I.length;O>2]:-1;he+=Fe(o()[O+le*4>>2],ce<0?void 0:ce)}return he},createContext:function(I,C){var O=I.getContext("webgl",C);if(!O)return 0;var j=et.registerContext(O,C);return j},registerContext:function(I,C){var O=_s(8);o()[O+4>>2]=Co();var j={handle:O,attributes:C,version:C.majorVersion,GLctx:I};return I.canvas&&(I.canvas.GLctxObject=j),et.contexts[O]=j,(typeof C.enableExtensionsByDefault=="undefined"||C.enableExtensionsByDefault)&&et.initExtensions(j),O},makeContextCurrent:function(I){return et.currentContext=et.contexts[I],u.ctx=Br=et.currentContext&&et.currentContext.GLctx,!(I&&!Br)},getContext:function(I){return et.contexts[I]},deleteContext:function(I){et.currentContext===et.contexts[I]&&(et.currentContext=null),typeof Pe=="object"&&Pe.removeAllHandlersOnTarget(et.contexts[I].GLctx.canvas),et.contexts[I]&&et.contexts[I].GLctx.canvas&&(et.contexts[I].GLctx.canvas.GLctxObject=void 0),Ku(et.contexts[I].handle),et.contexts[I]=null},initExtensions:function(I){if(I||(I=et.currentContext),!I.initExtensionsDone){I.initExtensionsDone=!0;var C=I.GLctx;Ng(C),Sg(C),Cg(C),C.disjointTimerQueryExt=C.getExtension("EXT_disjoint_timer_query"),_g(C);var O=C.getSupportedExtensions()||[];O.forEach(function(j){j.indexOf("lose_context")<0&&j.indexOf("debug")<0&&C.getExtension(j)})}},populateUniformTable:function(I){for(var C=et.programs[I],O=et.programInfos[I]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1},j=O.uniforms,he=Br.getProgramParameter(C,35718),le=0;le>2,j=o()[O+(24>>2)],he={alpha:!!o()[O+(0>>2)],depth:!!o()[O+(4>>2)],stencil:!!o()[O+(8>>2)],antialias:!!o()[O+(12>>2)],premultipliedAlpha:!!o()[O+(16>>2)],preserveDrawingBuffer:!!o()[O+(20>>2)],powerPreference:Eg[j],failIfMajorPerformanceCaveat:!!o()[O+(28>>2)],majorVersion:o()[O+(32>>2)],minorVersion:o()[O+(36>>2)],enableExtensionsByDefault:o()[O+(40>>2)],explicitSwapControl:o()[O+(44>>2)],proxyContextToMainThread:o()[O+(48>>2)],renderViaOffscreenBackBuffer:o()[O+(52>>2)]},le=Gu(I);if(!le||he.explicitSwapControl)return 0;var ce=et.createContext(le,he);return ce}function Ag(I,C){return Fg(I,C)}var No={mappings:{},buffers:[null,[],[]],printChar:function(I,C){var O=No.buffers[I];C===0||C===10?((I===1?X:q)(Re(O,0)),O.length=0):O.push(C)},varargs:void 0,get:function(){No.varargs+=4;var I=o()[No.varargs-4>>2];return I},getStr:function(I){var C=Fe(I);return C},get64:function(I,C){return I}};function id(I){return T?zr(3,1,I):0}function od(I,C,O,j,he){if(T)return zr(4,1,I,C,O,j,he)}function ld(I,C,O,j){if(T)return zr(5,1,I,C,O,j);for(var he=0,le=0;le>2],be=o()[C+(le*8+4)>>2],rt=0;rt>2]=he,0}function $g(I){var C=ke.threadExitHandlers.pop();I&&C()}function Dg(I,C){ke.threadExitHandlers.push(function(){oa.get(I)(C)})}function ud(I){if(T)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var C=ke.getNewWorker();if(C.pthread!==void 0)throw"Internal error!";if(!I.pthread_ptr)throw"Internal error, no pthread ptr!";ke.runningWorkers.push(C);for(var O=_s(128*4),j=0;j<128;++j)o()[O+j*4>>2]=0;var he=I.stackBase+I.stackSize,le=ke.pthreads[I.pthread_ptr]={worker:C,stackBase:I.stackBase,stackSize:I.stackSize,allocatedOwnStack:I.allocatedOwnStack,threadInfoStruct:I.pthread_ptr},ce=le.threadInfoStruct>>2;Atomics.store(l(),ce+(64>>2),I.detached),Atomics.store(l(),ce+(100>>2),O),Atomics.store(l(),ce+(40>>2),le.threadInfoStruct),Atomics.store(l(),ce+(80>>2),I.stackSize),Atomics.store(l(),ce+(76>>2),he),Atomics.store(l(),ce+(104>>2),I.stackSize),Atomics.store(l(),ce+(104+8>>2),he),Atomics.store(l(),ce+(104+12>>2),I.detached);var be=Gw(),rt=be+40;Atomics.store(l(),ce+(172>>2),rt),C.pthread=le;var Ut={cmd:"run",start_routine:I.startRoutine,arg:I.arg,threadInfoStruct:I.pthread_ptr,stackBase:I.stackBase,stackSize:I.stackSize};C.runPthread=function(){Ut.time=performance.now(),C.postMessage(Ut,I.transferList)},C.loaded&&(C.runPthread(),delete C.runPthread)}function Rg(I,C,O,j){if(typeof SharedArrayBuffer=="undefined")return q("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;if(!I)return q("pthread_create called with a null thread pointer!"),28;var he=[],le=0;if(T&&(he.length===0||le))return Kw(687865856,I,C,O,j);if(le)return le;var ce=0,be=0,rt=0;C&&C!=-1?(ce=o()[C>>2],ce+=81920,be=o()[C+8>>2],rt=o()[C+12>>2]!==0):ce=2097152;var Ut=be==0;Ut?be=Jw(16,ce):(be-=ce,fe(be>0));for(var Mt=_s(228),Vr=0;Vr<228>>2;++Vr)l()[(Mt>>2)+Vr]=0;o()[I>>2]=Mt,o()[Mt+12>>2]=Mt;var Ao=Mt+152;o()[Ao>>2]=Ao;var Nn={stackBase:be,stackSize:ce,allocatedOwnStack:Ut,detached:rt,startRoutine:O,pthread_ptr:Mt,arg:j,transferList:he};return T?(Nn.cmd="spawnThread",postMessage(Nn,he)):ud(Nn),0}function cd(I){if(T)return zr(6,1,I);switch(I){case 30:return 16384;case 85:var C=2147483648;return C/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return ng(28),-1}T||ke.initMainThreadBlock();var Br,Mg=[null,ag,sd,id,od,ld,cd],Pg={e:eg,r:tg,x:rg,b:sg,y:ig,j:og,c:lg,d:To,f:Cs,p:ug,z:cg,u:dg,q:fg,v:kg,i:Ig,t:Tg,w:Ag,m:id,n:od,g:ld,o:qf,a:Z||u.wasmMemory,k:$g,l:Dg,h:Rg,s:cd},Vw=jf(),pd=u.___wasm_call_ctors=function(){return(pd=u.___wasm_call_ctors=u.asm.A).apply(null,arguments)},Og=u._init=function(){return(Og=u._init=u.asm.B).apply(null,arguments)},Lg=u._register_tensor=function(){return(Lg=u._register_tensor=u.asm.C).apply(null,arguments)},zg=u._dispose_data=function(){return(zg=u._dispose_data=u.asm.D).apply(null,arguments)},Bg=u._dispose=function(){return(Bg=u._dispose=u.asm.E).apply(null,arguments)},Wg=u._Abs=function(){return(Wg=u._Abs=u.asm.G).apply(null,arguments)},Vg=u._Add=function(){return(Vg=u._Add=u.asm.H).apply(null,arguments)},Ug=u._AddN=function(){return(Ug=u._AddN=u.asm.I).apply(null,arguments)},Gg=u._ArgMax=function(){return(Gg=u._ArgMax=u.asm.J).apply(null,arguments)},Hg=u._AvgPool=function(){return(Hg=u._AvgPool=u.asm.K).apply(null,arguments)},jg=u._BatchMatMul=function(){return(jg=u._BatchMatMul=u.asm.L).apply(null,arguments)},qg=u._Ceil=function(){return(qg=u._Ceil=u.asm.M).apply(null,arguments)},Kg=u._ClipByValue=function(){return(Kg=u._ClipByValue=u.asm.N).apply(null,arguments)},Xg=u._Conv2D=function(){return(Xg=u._Conv2D=u.asm.O).apply(null,arguments)},dd=u._Conv2DBackpropInput=function(){return(dd=u._Conv2DBackpropInput=u.asm.P).apply(null,arguments)},hd=u._Cos=function(){return(hd=u._Cos=u.asm.Q).apply(null,arguments)},Hu=u._CropAndResize=function(){return(Hu=u._CropAndResize=u.asm.R).apply(null,arguments)},So=u._Cumsum=function(){return(So=u._Cumsum=u.asm.S).apply(null,arguments)},Yg=u._DepthToSpace=function(){return(Yg=u._DepthToSpace=u.asm.T).apply(null,arguments)},ju=u._DepthwiseConv2dNative=function(){return(ju=u._DepthwiseConv2dNative=u.asm.U).apply(null,arguments)},K=u._Equal=function(){return(K=u._Equal=u.asm.V).apply(null,arguments)},ae=u._Exp=function(){return(ae=u._Exp=u.asm.W).apply(null,arguments)},Ne=u._FlipLeftRight=function(){return(Ne=u._FlipLeftRight=u.asm.X).apply(null,arguments)},Ye=u._Floor=function(){return(Ye=u._Floor=u.asm.Y).apply(null,arguments)},_t=u._FloorDiv=function(){return(_t=u._FloorDiv=u.asm.Z).apply(null,arguments)},yt=u._FusedBatchNorm=function(){return(yt=u._FusedBatchNorm=u.asm._).apply(null,arguments)},Ue=u._FusedConv2D=function(){return(Ue=u._FusedConv2D=u.asm.$).apply(null,arguments)},He=u._FusedDepthwiseConv2D=function(){return(He=u._FusedDepthwiseConv2D=u.asm.aa).apply(null,arguments)},nn=u._Gather=function(){return(nn=u._Gather=u.asm.ba).apply(null,arguments)},mr=u._GatherNd=function(){return(mr=u._GatherNd=u.asm.ca).apply(null,arguments)},fr=u._Greater=function(){return(fr=u._Greater=u.asm.da).apply(null,arguments)},md=u._GreaterEqual=function(){return(md=u._GreaterEqual=u.asm.ea).apply(null,arguments)},qu=u._LeakyRelu=function(){return(qu=u._LeakyRelu=u.asm.fa).apply(null,arguments)},Yn=u._Less=function(){return(Yn=u._Less=u.asm.ga).apply(null,arguments)},Wr=u._LessEqual=function(){return(Wr=u._LessEqual=u.asm.ha).apply(null,arguments)},fd=u._Log=function(){return(fd=u._Log=u.asm.ia).apply(null,arguments)},u_=u._LogicalAnd=function(){return(u_=u._LogicalAnd=u.asm.ja).apply(null,arguments)},c_=u._Max=function(){return(c_=u._Max=u.asm.ka).apply(null,arguments)},p_=u._MaxPool=function(){return(p_=u._MaxPool=u.asm.la).apply(null,arguments)},d_=u._Maximum=function(){return(d_=u._Maximum=u.asm.ma).apply(null,arguments)},h_=u._Mean=function(){return(h_=u._Mean=u.asm.na).apply(null,arguments)},m_=u._Min=function(){return(m_=u._Min=u.asm.oa).apply(null,arguments)},f_=u._Minimum=function(){return(f_=u._Minimum=u.asm.pa).apply(null,arguments)},g_=u._Multiply=function(){return(g_=u._Multiply=u.asm.qa).apply(null,arguments)},y_=u._Neg=function(){return(y_=u._Neg=u.asm.ra).apply(null,arguments)},b_=u._NonMaxSuppressionV3=function(){return(b_=u._NonMaxSuppressionV3=u.asm.sa).apply(null,arguments)},x_=u._NonMaxSuppressionV4=function(){return(x_=u._NonMaxSuppressionV4=u.asm.ta).apply(null,arguments)},v_=u._NonMaxSuppressionV5=function(){return(v_=u._NonMaxSuppressionV5=u.asm.ua).apply(null,arguments)},w_=u._NotEqual=function(){return(w_=u._NotEqual=u.asm.va).apply(null,arguments)},k_=u._OneHot=function(){return(k_=u._OneHot=u.asm.wa).apply(null,arguments)},I_=u._PadV2=function(){return(I_=u._PadV2=u.asm.xa).apply(null,arguments)},T_=u._Pow=function(){return(T_=u._Pow=u.asm.ya).apply(null,arguments)},N_=u._Prelu=function(){return(N_=u._Prelu=u.asm.za).apply(null,arguments)},S_=u._Prod=function(){return(S_=u._Prod=u.asm.Aa).apply(null,arguments)},C_=u._RealDiv=function(){return(C_=u._RealDiv=u.asm.Ba).apply(null,arguments)},__=u._Relu=function(){return(__=u._Relu=u.asm.Ca).apply(null,arguments)},E_=u._Relu6=function(){return(E_=u._Relu6=u.asm.Da).apply(null,arguments)},F_=u._ResizeBilinear=function(){return(F_=u._ResizeBilinear=u.asm.Ea).apply(null,arguments)},A_=u._Reverse=function(){return(A_=u._Reverse=u.asm.Fa).apply(null,arguments)},$_=u._RotateWithOffset=function(){return($_=u._RotateWithOffset=u.asm.Ga).apply(null,arguments)},D_=u._Round=function(){return(D_=u._Round=u.asm.Ha).apply(null,arguments)},R_=u._Rsqrt=function(){return(R_=u._Rsqrt=u.asm.Ia).apply(null,arguments)},M_=u._ScatterNd=function(){return(M_=u._ScatterNd=u.asm.Ja).apply(null,arguments)},P_=u._SelectV2=function(){return(P_=u._SelectV2=u.asm.Ka).apply(null,arguments)},O_=u._Sigmoid=function(){return(O_=u._Sigmoid=u.asm.La).apply(null,arguments)},L_=u._Sin=function(){return(L_=u._Sin=u.asm.Ma).apply(null,arguments)},z_=u._Softmax=function(){return(z_=u._Softmax=u.asm.Na).apply(null,arguments)},B_=u._Sqrt=function(){return(B_=u._Sqrt=u.asm.Oa).apply(null,arguments)},W_=u._Square=function(){return(W_=u._Square=u.asm.Pa).apply(null,arguments)},V_=u._SquaredDifference=function(){return(V_=u._SquaredDifference=u.asm.Qa).apply(null,arguments)},U_=u._Step=function(){return(U_=u._Step=u.asm.Ra).apply(null,arguments)},G_=u._StridedSlice=function(){return(G_=u._StridedSlice=u.asm.Sa).apply(null,arguments)},H_=u._Sub=function(){return(H_=u._Sub=u.asm.Ta).apply(null,arguments)},j_=u._Sum=function(){return(j_=u._Sum=u.asm.Ua).apply(null,arguments)},q_=u._Tanh=function(){return(q_=u._Tanh=u.asm.Va).apply(null,arguments)},K_=u._Tile=function(){return(K_=u._Tile=u.asm.Wa).apply(null,arguments)},X_=u._TopK=function(){return(X_=u._TopK=u.asm.Xa).apply(null,arguments)},Y_=u._Transpose=function(){return(Y_=u._Transpose=u.asm.Ya).apply(null,arguments)},J_=u.__FusedMatMul=function(){return(J_=u.__FusedMatMul=u.asm.Za).apply(null,arguments)},_s=u._malloc=function(){return(_s=u._malloc=u.asm._a).apply(null,arguments)},Ku=u._free=function(){return(Ku=u._free=u.asm.$a).apply(null,arguments)},Uw=u.___errno_location=function(){return(Uw=u.___errno_location=u.asm.ab).apply(null,arguments)},Gw=u._emscripten_get_global_libc=function(){return(Gw=u._emscripten_get_global_libc=u.asm.bb).apply(null,arguments)},Co=u._pthread_self=function(){return(Co=u._pthread_self=u.asm.cb).apply(null,arguments)},Hw=u.___pthread_tsd_run_dtors=function(){return(Hw=u.___pthread_tsd_run_dtors=u.asm.db).apply(null,arguments)},Jg=u._emscripten_main_thread_process_queued_calls=function(){return(Jg=u._emscripten_main_thread_process_queued_calls=u.asm.eb).apply(null,arguments)},Q_=u._emscripten_current_thread_process_queued_calls=function(){return(Q_=u._emscripten_current_thread_process_queued_calls=u.asm.fb).apply(null,arguments)},jw=u._emscripten_register_main_browser_thread_id=function(){return(jw=u._emscripten_register_main_browser_thread_id=u.asm.gb).apply(null,arguments)},qw=u.__emscripten_do_dispatch_to_thread=function(){return(qw=u.__emscripten_do_dispatch_to_thread=u.asm.hb).apply(null,arguments)},Kw=u._emscripten_sync_run_in_main_thread_4=function(){return(Kw=u._emscripten_sync_run_in_main_thread_4=u.asm.ib).apply(null,arguments)},Xw=u._emscripten_run_in_main_runtime_thread_js=function(){return(Xw=u._emscripten_run_in_main_runtime_thread_js=u.asm.jb).apply(null,arguments)},Qg=u.__emscripten_call_on_thread=function(){return(Qg=u.__emscripten_call_on_thread=u.asm.kb).apply(null,arguments)},Z_=u._emscripten_tls_init=function(){return(Z_=u._emscripten_tls_init=u.asm.lb).apply(null,arguments)},gd=u.__emscripten_thread_init=function(){return(gd=u.__emscripten_thread_init=u.asm.mb).apply(null,arguments)},Xu=u.stackSave=function(){return(Xu=u.stackSave=u.asm.nb).apply(null,arguments)},_o=u.stackRestore=function(){return(_o=u.stackRestore=u.asm.ob).apply(null,arguments)},Eo=u.stackAlloc=function(){return(Eo=u.stackAlloc=u.asm.pb).apply(null,arguments)},Yw=u._emscripten_stack_set_limits=function(){return(Yw=u._emscripten_stack_set_limits=u.asm.qb).apply(null,arguments)},Jw=u._memalign=function(){return(Jw=u._memalign=u.asm.rb).apply(null,arguments)},Qw=u.__emscripten_allow_main_runtime_queued_calls=9880,Fo=u.__emscripten_main_thread_futex=11368;u.cwrap=_e,u.PThread=ke,u.PThread=ke,u.wasmMemory=Z,u.ExitStatus=Yu;var yd;function Yu(I){this.name="ExitStatus",this.message="Program terminated with exit("+I+")",this.status=I}Ss=function I(){yd||Zg(),yd||(Ss=I)};function Zg(I){if(I=I||f,dr>0)return;if(T){p(u),postMessage({cmd:"loaded"});return}if(zf(),dr>0)return;function C(){yd||(yd=!0,u.calledRun=!0,!oe&&(Yp(),Bf(),p(u),u.onRuntimeInitialized&&u.onRuntimeInitialized(),In()))}u.setStatus?(u.setStatus("Running..."),setTimeout(function(){setTimeout(function(){u.setStatus("")},1),C()},1)):C()}u.run=Zg;function eE(I,C){if(!(C&&ie&&I===0)){if(!C&&T)throw postMessage({cmd:"exitProcess",returnCode:I}),new Yu(I);ie||(ke.terminateAllThreads(),ge=I,Jp(),u.onExit&&u.onExit(I),oe=!0),y(I,new Yu(I))}}if(u.preInit)for(typeof u.preInit=="function"&&(u.preInit=[u.preInit]);u.preInit.length>0;)u.preInit.pop()();return T&&(ie=!1,ke.initWorker()),Zg(),r.ready}}();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModuleThreadedSimd=n)}),EE=pn((e,t)=>{var n=function(){var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};var s=typeof r!="undefined"?r:{},i,o;s.ready=new Promise(function(K,ae){i=K,o=ae});var l={},c;for(c in s)s.hasOwnProperty(c)&&(l[c]=s[c]);var u=[],p="./this.program",d=function(K,ae){throw ae},h=!1,m=!1,f=!1,g=!1;h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g=!h&&!f&&!m;var y="";function b(K){return s.locateFile?s.locateFile(K,y):y+K}var x,v,N,T,S,A;f?(m?y=Qu().dirname(y)+"/":y=__dirname+"/",x=function(K,ae){return S||(S=require("fs")),A||(A=Qu()),K=A.normalize(K),S.readFileSync(K,ae?null:"utf8")},N=function(K){var ae=x(K,!0);return ae.buffer||(ae=new Uint8Array(ae)),X(ae.buffer),ae},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),u=process.argv.slice(2),process.on("uncaughtException",function(K){if(!(K instanceof Yg))throw K}),process.on("unhandledRejection",Ia),d=function(K){process.exit(K)},s.inspect=function(){return"[Emscripten Module object]"}):g?(typeof read!="undefined"&&(x=function(K){return read(K)}),N=function(K){var ae;return typeof readbuffer=="function"?new Uint8Array(readbuffer(K)):(ae=read(K,"binary"),X(typeof ae=="object"),ae)},typeof scriptArgs!="undefined"?u=scriptArgs:typeof arguments!="undefined"&&(u=arguments),typeof quit=="function"&&(d=function(K){quit(K)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(h||m)&&(m?y=self.location.href:typeof document!="undefined"&&document.currentScript&&(y=document.currentScript.src),a&&(y=a),y.indexOf("blob:")!==0?y=y.substr(0,y.lastIndexOf("/")+1):y="",x=function(K){var ae=new XMLHttpRequest;return ae.open("GET",K,!1),ae.send(null),ae.responseText},m&&(N=function(K){var ae=new XMLHttpRequest;return ae.open("GET",K,!1),ae.responseType="arraybuffer",ae.send(null),new Uint8Array(ae.response)}),v=function(K,ae,Ne){var Ye=new XMLHttpRequest;Ye.open("GET",K,!0),Ye.responseType="arraybuffer",Ye.onload=function(){if(Ye.status==200||Ye.status==0&&Ye.response){ae(Ye.response);return}Ne()},Ye.onerror=Ne,Ye.send(null)},T=function(K){document.title=K});var $=s.print||console.log.bind(console),R=s.printErr||console.warn.bind(console);for(c in l)l.hasOwnProperty(c)&&(s[c]=l[c]);l=null,s.arguments&&(u=s.arguments),s.thisProgram&&(p=s.thisProgram),s.quit&&(d=s.quit);var B;s.wasmBinary&&(B=s.wasmBinary);var V=s.noExitRuntime||!0;typeof WebAssembly!="object"&&Ia("no native wasm support detected");var W,G=!1,H;function X(K,ae){K||Ia("Assertion failed: "+ae)}function q(K){var ae=s["_"+K];return X(ae,"Cannot call unknown function "+K+", make sure it is exported"),ae}function te(K,ae,Ne,Ye,_t){var yt={string:function(Yn){var Wr=0;if(Yn!=null&&Yn!==0){var fd=(Yn.length<<2)+1;Wr=Hu(fd),de(Yn,Wr,fd)}return Wr},array:function(Yn){var Wr=Hu(Yn.length);return oe(Yn,Wr),Wr}};function Ue(Yn){return ae==="string"?ie(Yn):ae==="boolean"?Boolean(Yn):Yn}var He=q(K),nn=[],mr=0;if(Ye)for(var fr=0;fr=Ye);)++_t;if(_t-ae>16&&K.subarray&&se)return se.decode(K.subarray(ae,_t));for(var yt="";ae<_t;){var Ue=K[ae++];if(!(Ue&128)){yt+=String.fromCharCode(Ue);continue}var He=K[ae++]&63;if((Ue&224)==192){yt+=String.fromCharCode((Ue&31)<<6|He);continue}var nn=K[ae++]&63;if((Ue&240)==224?Ue=(Ue&15)<<12|He<<6|nn:Ue=(Ue&7)<<18|He<<12|nn<<6|K[ae++]&63,Ue<65536)yt+=String.fromCharCode(Ue);else{var mr=Ue-65536;yt+=String.fromCharCode(55296|mr>>10,56320|mr&1023)}}return yt}function ie(K,ae){return K?ne(Te,K,ae):""}function Z(K,ae,Ne,Ye){if(!(Ye>0))return 0;for(var _t=Ne,yt=Ne+Ye-1,Ue=0;Ue=55296&&He<=57343){var nn=K.charCodeAt(++Ue);He=65536+((He&1023)<<10)|nn&1023}if(He<=127){if(Ne>=yt)break;ae[Ne++]=He}else if(He<=2047){if(Ne+1>=yt)break;ae[Ne++]=192|He>>6,ae[Ne++]=128|He&63}else if(He<=65535){if(Ne+2>=yt)break;ae[Ne++]=224|He>>12,ae[Ne++]=128|He>>6&63,ae[Ne++]=128|He&63}else{if(Ne+3>=yt)break;ae[Ne++]=240|He>>18,ae[Ne++]=128|He>>12&63,ae[Ne++]=128|He>>6&63,ae[Ne++]=128|He&63}}return ae[Ne]=0,Ne-_t}function de(K,ae,Ne){return Z(K,Te,ae,Ne)}function oe(K,ae){we.set(K,ae)}function ge(K,ae){return K%ae>0&&(K+=ae-K%ae),K}var fe,we,Te,_e,Re,Fe,nt,at,ot;function Xe(K){fe=K,s.HEAP8=we=new Int8Array(K),s.HEAP16=_e=new Int16Array(K),s.HEAP32=Fe=new Int32Array(K),s.HEAPU8=Te=new Uint8Array(K),s.HEAPU16=Re=new Uint16Array(K),s.HEAPU32=nt=new Uint32Array(K),s.HEAPF32=at=new Float32Array(K),s.HEAPF64=ot=new Float64Array(K)}var ft=s.INITIAL_MEMORY||16777216,Be,wn=[],It=[],Kn=[],en=[],kn=!1;It.push({func:function(){nd()}});function Xn(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)Wa(s.preRun.shift());Lr(wn)}function Rn(){kn=!0,Lr(It)}function cn(){Lr(Kn)}function tn(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)oa(s.postRun.shift());Lr(en)}function Wa(K){wn.unshift(K)}function oa(K){en.unshift(K)}var la=0,Pr=null,pr=null;function Or(K){la++,s.monitorRunDependencies&&s.monitorRunDependencies(la)}function wo(K){if(la--,s.monitorRunDependencies&&s.monitorRunDependencies(la),la==0&&(Pr!==null&&(clearInterval(Pr),Pr=null),pr)){var ae=pr;pr=null,ae()}}s.preloadedImages={},s.preloadedAudios={};function Ia(K){s.onAbort&&s.onAbort(K),K+="",R(K),G=!0,H=1,K="abort("+K+"). Build with -s ASSERTIONS=1 for more info.";var ae=new WebAssembly.RuntimeError(K);throw o(ae),ae}function Xp(K,ae){return String.prototype.startsWith?K.startsWith(ae):K.indexOf(ae)===0}var zf="data:application/octet-stream;base64,";function Yp(K){return Xp(K,zf)}var Bf="file://";function Jp(K){return Xp(K,Bf)}var In="tfjs-backend-wasm.wasm";Yp(In)||(In=b(In));function Qp(K){try{if(K==In&&B)return new Uint8Array(B);if(N)return N(K);throw"both async and sync fetching of the wasm failed"}catch(ae){Ia(ae)}}function Wf(){if(!B&&(h||m)){if(typeof fetch=="function"&&!Jp(In))return fetch(In,{credentials:"same-origin"}).then(function(K){if(!K.ok)throw"failed to load wasm binary file at '"+In+"'";return K.arrayBuffer()}).catch(function(){return Qp(In)});if(v)return new Promise(function(K,ae){v(In,function(Ne){K(new Uint8Array(Ne))},ae)})}return Promise.resolve().then(function(){return Qp(In)})}function dr(){var K={a:Tn};function ae(Ue,He){var nn=Ue.exports;s.asm=nn,W=s.asm.g,Xe(W.buffer),Be=s.asm.m,wo("wasm-instantiate")}Or("wasm-instantiate");function Ne(Ue){ae(Ue.instance)}function Ye(Ue){return Wf().then(function(He){return WebAssembly.instantiate(He,K)}).then(Ue,function(He){R("failed to asynchronously prepare wasm: "+He),Ia(He)})}function _t(){return!B&&typeof WebAssembly.instantiateStreaming=="function"&&!Yp(In)&&!Jp(In)&&typeof fetch=="function"?fetch(In,{credentials:"same-origin"}).then(function(Ue){var He=WebAssembly.instantiateStreaming(Ue,K);return He.then(Ne,function(nn){return R("wasm streaming compile failed: "+nn),R("falling back to ArrayBuffer instantiation"),Ye(Ne)})}):Ye(Ne)}if(s.instantiateWasm)try{var yt=s.instantiateWasm(K,ae);return yt}catch(Ue){return R("Module.instantiateWasm callback failed with error: "+Ue),!1}return _t().catch(o),{}}function Lr(K){for(;K.length>0;){var ae=K.shift();if(typeof ae=="function"){ae(s);continue}var Ne=ae.func;typeof Ne=="number"?ae.arg===void 0?Be.get(Ne)():Be.get(Ne)(ae.arg):Ne(ae.arg===void 0?null:ae.arg)}}function Ss(){Ia()}function Vf(K,ae,Ne){Te.copyWithin(K,ae,ae+Ne)}function Uf(){return Te.length}function hr(K){try{return W.grow(K-fe.byteLength+65535>>>16),Xe(W.buffer),1}catch(ae){}}function Zp(K){var ae=Uf(),Ne=2147483648;if(K>Ne)return!1;for(var Ye=1;Ye<=4;Ye*=2){var _t=ae*(1+.2/Ye);_t=Math.min(_t,K+100663296);var yt=Math.min(Ne,ge(Math.max(K,_t),65536)),Ue=hr(yt);if(Ue)return!0}return!1}var ko={mappings:{},buffers:[null,[],[]],printChar:function(K,ae){var Ne=ko.buffers[K];ae===0||ae===10?((K===1?$:R)(ne(Ne,0)),Ne.length=0):Ne.push(ae)},varargs:void 0,get:function(){ko.varargs+=4;var K=Fe[ko.varargs-4>>2];return K},getStr:function(K){var ae=ie(K);return ae},get64:function(K,ae){return K}};function ed(K){return 0}function Gf(K,ae,Ne,Ye,_t){}function td(K,ae,Ne,Ye){for(var _t=0,yt=0;yt>2],He=Fe[ae+(yt*8+4)>>2],nn=0;nn>2]=_t,0}var Tn={a:Ss,d:Vf,e:Zp,f:ed,c:Gf,b:td},Hf=dr(),nd=s.___wasm_call_ctors=function(){return(nd=s.___wasm_call_ctors=s.asm.h).apply(null,arguments)},jf=s._init=function(){return(jf=s._init=s.asm.i).apply(null,arguments)},ad=s._register_tensor=function(){return(ad=s._register_tensor=s.asm.j).apply(null,arguments)},qf=s._dispose_data=function(){return(qf=s._dispose_data=s.asm.k).apply(null,arguments)},Io=s._dispose=function(){return(Io=s._dispose=s.asm.l).apply(null,arguments)},To=s._Abs=function(){return(To=s._Abs=s.asm.n).apply(null,arguments)},Kf=s._Add=function(){return(Kf=s._Add=s.asm.o).apply(null,arguments)},Xf=s._AddN=function(){return(Xf=s._AddN=s.asm.p).apply(null,arguments)},Yf=s._ArgMax=function(){return(Yf=s._ArgMax=s.asm.q).apply(null,arguments)},ke=s._AvgPool=function(){return(ke=s._AvgPool=s.asm.r).apply(null,arguments)},Jf=s._BatchMatMul=function(){return(Jf=s._BatchMatMul=s.asm.s).apply(null,arguments)},Qf=s._Ceil=function(){return(Qf=s._Ceil=s.asm.t).apply(null,arguments)},Zf=s._ClipByValue=function(){return(Zf=s._ClipByValue=s.asm.u).apply(null,arguments)},eg=s._Conv2D=function(){return(eg=s._Conv2D=s.asm.v).apply(null,arguments)},tg=s._Conv2DBackpropInput=function(){return(tg=s._Conv2DBackpropInput=s.asm.w).apply(null,arguments)},Cs=s._Cos=function(){return(Cs=s._Cos=s.asm.x).apply(null,arguments)},ng=s._CropAndResize=function(){return(ng=s._CropAndResize=s.asm.y).apply(null,arguments)},ag=s._Cumsum=function(){return(ag=s._Cumsum=s.asm.z).apply(null,arguments)},rg=s._DepthToSpace=function(){return(rg=s._DepthToSpace=s.asm.A).apply(null,arguments)},sg=s._DepthwiseConv2dNative=function(){return(sg=s._DepthwiseConv2dNative=s.asm.B).apply(null,arguments)},ig=s._Equal=function(){return(ig=s._Equal=s.asm.C).apply(null,arguments)},og=s._Exp=function(){return(og=s._Exp=s.asm.D).apply(null,arguments)},lg=s._FlipLeftRight=function(){return(lg=s._FlipLeftRight=s.asm.E).apply(null,arguments)},ug=s._Floor=function(){return(ug=s._Floor=s.asm.F).apply(null,arguments)},cg=s._FloorDiv=function(){return(cg=s._FloorDiv=s.asm.G).apply(null,arguments)},zr=s._FusedBatchNorm=function(){return(zr=s._FusedBatchNorm=s.asm.H).apply(null,arguments)},Vu=s._FusedConv2D=function(){return(Vu=s._FusedConv2D=s.asm.I).apply(null,arguments)},Uu=s._FusedDepthwiseConv2D=function(){return(Uu=s._FusedDepthwiseConv2D=s.asm.J).apply(null,arguments)},pg=s._Gather=function(){return(pg=s._Gather=s.asm.K).apply(null,arguments)},dg=s._GatherNd=function(){return(dg=s._GatherNd=s.asm.L).apply(null,arguments)},hg=s._Greater=function(){return(hg=s._Greater=s.asm.M).apply(null,arguments)},mg=s._GreaterEqual=function(){return(mg=s._GreaterEqual=s.asm.N).apply(null,arguments)},fg=s._LeakyRelu=function(){return(fg=s._LeakyRelu=s.asm.O).apply(null,arguments)},Pe=s._Less=function(){return(Pe=s._Less=s.asm.P).apply(null,arguments)},gg=s._LessEqual=function(){return(gg=s._LessEqual=s.asm.Q).apply(null,arguments)},yg=s._Log=function(){return(yg=s._Log=s.asm.R).apply(null,arguments)},bg=s._LogicalAnd=function(){return(bg=s._LogicalAnd=s.asm.S).apply(null,arguments)},xg=s._Max=function(){return(xg=s._Max=s.asm.T).apply(null,arguments)},vg=s._MaxPool=function(){return(vg=s._MaxPool=s.asm.U).apply(null,arguments)},wg=s._Maximum=function(){return(wg=s._Maximum=s.asm.V).apply(null,arguments)},Gu=s._Mean=function(){return(Gu=s._Mean=s.asm.W).apply(null,arguments)},rd=s._Min=function(){return(rd=s._Min=s.asm.X).apply(null,arguments)},sd=s._Minimum=function(){return(sd=s._Minimum=s.asm.Y).apply(null,arguments)},kg=s._Multiply=function(){return(kg=s._Multiply=s.asm.Z).apply(null,arguments)},Ig=s._Neg=function(){return(Ig=s._Neg=s.asm._).apply(null,arguments)},Tg=s._NonMaxSuppressionV3=function(){return(Tg=s._NonMaxSuppressionV3=s.asm.$).apply(null,arguments)},Ng=s._NonMaxSuppressionV4=function(){return(Ng=s._NonMaxSuppressionV4=s.asm.aa).apply(null,arguments)},Sg=s._NonMaxSuppressionV5=function(){return(Sg=s._NonMaxSuppressionV5=s.asm.ba).apply(null,arguments)},Cg=s._NotEqual=function(){return(Cg=s._NotEqual=s.asm.ca).apply(null,arguments)},_g=s._OneHot=function(){return(_g=s._OneHot=s.asm.da).apply(null,arguments)},et=s._PadV2=function(){return(et=s._PadV2=s.asm.ea).apply(null,arguments)},Eg=s._Pow=function(){return(Eg=s._Pow=s.asm.fa).apply(null,arguments)},Fg=s._Prelu=function(){return(Fg=s._Prelu=s.asm.ga).apply(null,arguments)},Ag=s._Prod=function(){return(Ag=s._Prod=s.asm.ha).apply(null,arguments)},No=s._RealDiv=function(){return(No=s._RealDiv=s.asm.ia).apply(null,arguments)},id=s._Relu=function(){return(id=s._Relu=s.asm.ja).apply(null,arguments)},od=s._Relu6=function(){return(od=s._Relu6=s.asm.ka).apply(null,arguments)},ld=s._ResizeBilinear=function(){return(ld=s._ResizeBilinear=s.asm.la).apply(null,arguments)},$g=s._Reverse=function(){return($g=s._Reverse=s.asm.ma).apply(null,arguments)},Dg=s._RotateWithOffset=function(){return(Dg=s._RotateWithOffset=s.asm.na).apply(null,arguments)},ud=s._Round=function(){return(ud=s._Round=s.asm.oa).apply(null,arguments)},Rg=s._Rsqrt=function(){return(Rg=s._Rsqrt=s.asm.pa).apply(null,arguments)},cd=s._ScatterNd=function(){return(cd=s._ScatterNd=s.asm.qa).apply(null,arguments)},Br=s._SelectV2=function(){return(Br=s._SelectV2=s.asm.ra).apply(null,arguments)},Mg=s._Sigmoid=function(){return(Mg=s._Sigmoid=s.asm.sa).apply(null,arguments)},Pg=s._Sin=function(){return(Pg=s._Sin=s.asm.ta).apply(null,arguments)},Vw=s._Softmax=function(){return(Vw=s._Softmax=s.asm.ua).apply(null,arguments)},pd=s._Sqrt=function(){return(pd=s._Sqrt=s.asm.va).apply(null,arguments)},Og=s._Square=function(){return(Og=s._Square=s.asm.wa).apply(null,arguments)},Lg=s._SquaredDifference=function(){return(Lg=s._SquaredDifference=s.asm.xa).apply(null,arguments)},zg=s._Step=function(){return(zg=s._Step=s.asm.ya).apply(null,arguments)},Bg=s._StridedSlice=function(){return(Bg=s._StridedSlice=s.asm.za).apply(null,arguments)},Wg=s._Sub=function(){return(Wg=s._Sub=s.asm.Aa).apply(null,arguments)},Vg=s._Sum=function(){return(Vg=s._Sum=s.asm.Ba).apply(null,arguments)},Ug=s._Tanh=function(){return(Ug=s._Tanh=s.asm.Ca).apply(null,arguments)},Gg=s._Tile=function(){return(Gg=s._Tile=s.asm.Da).apply(null,arguments)},Hg=s._TopK=function(){return(Hg=s._TopK=s.asm.Ea).apply(null,arguments)},jg=s._Transpose=function(){return(jg=s._Transpose=s.asm.Fa).apply(null,arguments)},qg=s.__FusedMatMul=function(){return(qg=s.__FusedMatMul=s.asm.Ga).apply(null,arguments)},Kg=s._malloc=function(){return(Kg=s._malloc=s.asm.Ha).apply(null,arguments)},Xg=s._free=function(){return(Xg=s._free=s.asm.Ia).apply(null,arguments)},dd=s.stackSave=function(){return(dd=s.stackSave=s.asm.Ja).apply(null,arguments)},hd=s.stackRestore=function(){return(hd=s.stackRestore=s.asm.Ka).apply(null,arguments)},Hu=s.stackAlloc=function(){return(Hu=s.stackAlloc=s.asm.La).apply(null,arguments)};s.cwrap=Q;var So;function Yg(K){this.name="ExitStatus",this.message="Program terminated with exit("+K+")",this.status=K}pr=function K(){So||ju(),So||(pr=K)};function ju(K){if(K=K||u,la>0||(Xn(),la>0))return;function ae(){So||(So=!0,s.calledRun=!0,!G&&(Rn(),cn(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),tn()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),ae()},1)):ae()}if(s.run=ju,s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();return ju(),r.ready}}();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModule=n)}),FE=1e-7,AE=1e-4,kd=class{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}},Zu=class{refCount(e){return ua("refCount")}incRef(e){return ua("incRef")}timerAvailable(){return!0}time(e){return ua("time")}read(e){return ua("read")}readSync(e){return ua("readSync")}numDataIds(){return ua("numDataIds")}disposeData(e,t){return ua("disposeData")}write(e,t,n){return ua("write")}move(e,t,n,a,r){return ua("move")}memory(){return ua("memory")}floatPrecision(){return ua("floatPrecision")}epsilon(){return this.floatPrecision()===32?FE:AE}dispose(){return ua("dispose")}};function ua(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function t0(e){let t=e.length,n=0,a=0;for(;t>0;)a=Math.random()*t|0,t--,n=e[t],e[t]=e[a],e[a]=n}function $E(e,t){if(e.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${e.length}Second array length was ${t.length}`);let n=e.length,a,r,s=0;for(;n>0;)s=Math.random()*n|0,n--,a=e[n],r=t[n],e[n]=e[s],t[n]=t[s],e[s]=a,t[s]=r}function ec(e,t,n){return Math.max(e,Math.min(t,n))}function DE(e){return e%2==0?e:e+1}function RE(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function Es(e){F(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Fs(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||ln(e)&&!n)for(let a=0;a0,n){return new Promise((a,r)=>{let s=0,i=()=>{if(e()){a();return}s++;let o=t(s);if(n!=null&&s>=n){r();return}setTimeout(i,o)};i()})}function VE(e,t){let n=1,a=-1;for(let s=0;s=0)n*=e[s];else if(e[s]===-1){if(a!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${a} and dim ${s}`);a=s}else if(e[s]<0)throw Error(`Shapes can not be < 0. Found ${e[s]} at dim ${s}`);if(a===-1){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(n===0)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%n!=0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${n}`);let r=e.slice();return r[a]=t/n,r}function ca(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),F(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),F(e.every(a=>Gt(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function n0(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:ca(t,e).sort(),i=0;for(let o=0;oo)&&e[o]===1&&(n.push(e[o]),a.push(o)),s[i]<=o&&i++}e[o]!==1&&(n.push(e[o]),a.push(o))}return{newShape:n,keptDims:a}}function a0(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return n}function r0(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else if(e==="string")n=new Array(t);else throw new Error(`Unknown data type ${e}`);return n}function s0(e,t){for(let n=0;nt+=n.length),t}function Ur(e){return typeof e=="string"||e instanceof String}function l0(e){return typeof e=="boolean"}function u0(e){return typeof e=="number"}function Id(e){return Array.isArray(e)?Id(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":u0(e)?"float32":Ur(e)?"string":l0(e)?"bool":"float32"}function Gr(e){return!!(e&&e.constructor&&e.call&&e.apply)}function Td(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function c0(e,t,n){let a=new Array;if(t.length===1){let r=t[0];for(let s=0;so*l);for(let o=0;oa*r);if(n===0)return[];if(n!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}.`);return c0(0,e,t)}function ty(e,t){let n=Nd(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return Mo(e,new Float32Array(n));if(t==="int32")return Mo(e,new Int32Array(n));if(t==="bool")return Mo(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function ny(e){e.forEach(t=>{F(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function HE(e,t,n){if(t===0)return 0;if(t===1)return e[0];let a=e[e.length-1];for(let r=0;r{let[n,a]=t.split(":");this.urlFlags[n]=KE(n,a)})}};function qE(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(XE(t,a[0],a[1]),a.join("="))),t}function XE(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function KE(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function ee(){return ry}var ry=null;function YE(e){ry=e}var sy;function h0(){if(sy==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");sy=e}return sy}function JE(){let e=h0();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function iy(e,t){let n=JE();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var Po="Abs",Oo="Acos",Lo="Acosh",Hr="Add",As="AddN",Sd="All",Cd="Any",$s="ArgMax",nc="ArgMin",zo="Asin",Bo="Asinh",Wo="Atan",Vo="Atanh",Uo="Atan2",Ds="AvgPool",_d="AvgPoolGrad",ac="AvgPool3D",Ed="AvgPool3DGrad",Rs="BatchMatMul",rc="BatchToSpaceND",Fd="Bincount",m0="BroadcastTo",Ms="Cast",Ps="Ceil",jr="ClipByValue",Ad="Complex",sc="ComplexAbs",Go="Concat",Os="Conv2D",$d="Conv2DBackpropFilter",Ls="Conv2DBackpropInput",ic="Conv3D",Dd="Conv3DBackpropFilterV2",Rd="Conv3DBackpropInputV2",zs="Cos",Ho="Cosh",Bs="Cumsum",jo="CropAndResize",Md="DenseBincount",qo="DepthToSpace",Ws="DepthwiseConv2dNative",Pd="DepthwiseConv2dNativeBackpropFilter",Od="DepthwiseConv2dNativeBackpropInput",Ld="Diag",oc="Dilation2D",zd="Dilation2DBackpropInput",Bd="Dilation2DBackpropFilter",Vs="RealDiv",Ko="Elu",Wd="EluGrad",Xo="Erf",Yo="Equal",Us="Exp",Jo="ExpandDims",Qo="Expm1",Vd="FFT",lc="Fill",Zo="FlipLeftRight",Gs="Floor",Hs="FloorDiv",js="FusedBatchNorm",el="GatherV2",tl="GatherNd",nl="Greater",qs="GreaterEqual",Ks="Identity",Ud="IFFT",Gd="Imag",al="IsFinite",rl="IsInf",sl="IsNan",Xs="LeakyRelu",il="Less",ol="LessEqual",Hd="LinSpace",Ys="Log",ll="Log1p",ul="LogicalAnd",uc="LogicalNot",cc="LogicalOr",f0="LogSoftmax",pc="LRN",jd="LRNGrad",Js="Max",Qs="Maximum",Zs="MaxPool",qd="MaxPoolGrad",dc="MaxPool3D",Kd="MaxPool3DGrad",Xd="MaxPoolWithArgmax",ei="Mean",ti="Min",ni="Minimum",hc="MirrorPad",cl="Mod",Yd="Multinomial",ai="Multiply",pl="Neg",dl="NotEqual",hl="NonMaxSuppressionV3",ml="NonMaxSuppressionV4",fl="NonMaxSuppressionV5",gl="OnesLike",ri="OneHot",yl="Pack",si="PadV2",QE="Pool",ii="Pow",oi="Prelu",bl="Prod",mc="Range",Jd="Real",xl="Reciprocal",li="Relu",vl="Reshape",fc="ResizeNearestNeighbor",Qd="ResizeNearestNeighborGrad",ui="ResizeBilinear",Zd="ResizeBilinearGrad",ci="Relu6",pi="Reverse",di="Round",hi="Rsqrt",wl="ScatterNd",kl="Select",Il="Selu",Tl="Slice",mi="Sin",Nl="Sinh",Sl="Sign",fi="Sigmoid",Cl="Softplus",gi="Sqrt",yi="Sum",gc="SpaceToBatchND",_l="SplitV",bi="Softmax",xi="SquaredDifference",yc="Square",vi="Sub",eh="SparseToDense",El="StridedSlice",Fl="Tan",wi="Tanh",qr="Tile",Al="TopK",ki="Transpose",th="Unique",$l="Unpack",bc="UnsortedSegmentSum",Dl="ZerosLike",Kr="Step",nh="FromPixels",Rl="RotateWithOffset",Ii="_FusedMatMul",Ti="FusedConv2D",Ni="FusedDepthwiseConv2D",Ml=iy("kernelRegistry",()=>new Map),xc=iy("gradRegistry",()=>new Map);function ah(e,t){let n=oy(e,t);return Ml.get(n)}function ly(e){return xc.get(e)}function rh(e){let t=Ml.entries(),n=[];for(;;){let{done:a,value:r}=t.next();if(a)break;let[s,i]=r,[o]=s.split("_");o===e&&n.push(i)}return n}function vc(e){let{kernelName:t,backendName:n}=e,a=oy(t,n);Ml.has(a)&&console.warn(`The kernel '${t}' for backend '${n}' is already registered`),Ml.set(a,e)}function g0(e){let{kernelName:t}=e;xc.has(t)&&ee().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${t}'`),xc.set(t,e)}function ZE(e,t){let n=oy(e,t);if(!Ml.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Ml.delete(n)}function eF(e){if(!xc.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);xc.delete(e)}function tF(e,t){rh(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});vc(a)})}function oy(e,t){return`${t}_${e}`}var w={};Oe(w,{arraysEqual:()=>gr,assert:()=>F,assertNonNegativeIntegerDimensions:()=>ny,assertNonNull:()=>Es,assertShapesMatch:()=>on,bytesFromStringArray:()=>o0,bytesPerElement:()=>ey,checkConversionForErrors:()=>s0,clamp:()=>ec,computeStrides:()=>Ro,createScalarValue:()=>nF,createShuffledIndices:()=>BE,decodeString:()=>ih,distSquared:()=>PE,encodeString:()=>kc,fetch:()=>aF,flatten:()=>Fs,getArrayFromDType:()=>r0,getTypedArrayFromDType:()=>a0,hasEncodingLoss:()=>UE,indexToLoc:()=>jE,inferDtype:()=>Id,inferFromImplicitShape:()=>VE,isBoolean:()=>l0,isFunction:()=>Gr,isInt:()=>Gt,isNumber:()=>u0,isPromise:()=>ay,isScalarShape:()=>OE,isString:()=>Ur,isTypedArray:()=>ln,isValidDtype:()=>i0,locToIndex:()=>HE,makeOnesTypedArray:()=>ty,makeZerosNestedTypedArray:()=>GE,makeZerosTypedArray:()=>Nd,nearestDivisor:()=>Td,nearestLargerEven:()=>DE,now:()=>wc,parseAxisParam:()=>ca,randUniform:()=>ME,repeatedTry:()=>WE,rightPad:()=>tc,shuffle:()=>t0,shuffleCombo:()=>$E,sizeFromShape:()=>Pt,sizeToSquarishShape:()=>zE,squeezeShape:()=>n0,sum:()=>RE,tanh:()=>LE,toNestedArray:()=>Mo,toTypedArray:()=>sh});function nF(e,t){return t==="string"?kc(e):sh([e],t)}function rF(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function sh(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=Fs(e)),ee().getBool("DEBUG")&&s0(e,t),rF(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){let n=new Uint8Array(e.length);for(let a=0;a{a=n()},s,i=wc();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:wc()-i})}if(ee().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{sF(c,l.dtype,e)})}return{kernelName:e,outputs:a,inputs:t,timeMs:s.then(o=>o.kernelMs),extraInfo:s.then(o=>o.getExtraProfileInfo!=null?o.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:n,timeMs:a,inputs:r,extraInfo:s}=e;n.forEach(i=>{Promise.all([i.data(),a,s]).then(o=>{this.logger.logKernelProfile(t,i,o[0],o[1],r,o[2])})})}};function sF(e,t,n){if(t!=="float32")return!1;for(let a=0;a0?m:""} `}}console.log(`%c${o} %c${i} %c${l}D ${u} %c${c} %c${p} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function lF(e,t,n){let a={},r={};for(let l=0;la[f.id]=!0),h=!0,r[c.id]=!0;break}if(h)break}}let s={};s[n.id]=!0;let i={};for(let l=e.length-1;l>=0;l--){let c=e[l],u=c.inputs;for(let p=0;p=0;r--){let s=t[r],i=[];if(s.outputs.forEach(l=>{let c=e[l.id];c!=null?i.push(c):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let o=s.gradient(i);for(let l in s.inputs){if(!(l in o))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(o)}.`);let c=n(()=>o[l]());if(c.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${c.dtype}'`);let u=s.inputs[l];if(!gr(c.shape,u.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${c.shape}', which does not match the shape of the input '${u.shape}'`);if(e[u.id]==null)e[u.id]=c;else{let p=e[u.id];e[u.id]=a(p,c),p.dispose()}}}}var y0=20,Ic=3,uy=7;function pF(e,t,n,a){let r=Ro(t),s=cF(e,t,n,r),i=t.length,o=oh(e,t,n,r,s),l=["Tensor"];return a&&(l.push(` dtype: ${n}`),l.push(` rank: ${i}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(o.map(c=>" "+c).join(` +var faceapi=(()=>{var iF=Object.create,vd=Object.defineProperty,oF=Object.getPrototypeOf,lF=Object.prototype.hasOwnProperty,uF=Object.getOwnPropertyNames,cF=Object.getOwnPropertyDescriptor;var n0=e=>vd(e,"__esModule",{value:!0});var pF=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),Ju=(e,t)=>{for(var n in t)vd(e,n,{get:t[n],enumerable:!0})},dF=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of uF(t))!lF.call(e,a)&&a!=="default"&&vd(e,a,{get:()=>t[a],enumerable:!(n=cF(t,a))||n.enumerable});return e},hF=e=>dF(n0(vd(e!=null?iF(oF(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var sC=pF((Qre,rC)=>{n0(Qre);Ju(Qre,{isNodejs:()=>Zre});function Zre(){return typeof global=="object"&&!0&&typeof rC!="undefined"&&typeof process!="undefined"&&!!process.version}});var wse={};Ju(wse,{AgeGenderNet:()=>Rp,BoundingBox:()=>ao,Box:()=>ot,ComposableTask:()=>ia,ComputeAllFaceDescriptorsTask:()=>Mr,ComputeFaceDescriptorsTaskBase:()=>Up,ComputeSingleFaceDescriptorTask:()=>Rr,DetectAllFaceLandmarksTask:()=>Hp,DetectAllFacesTask:()=>Bu,DetectFaceLandmarksTaskBase:()=>Gp,DetectFacesTaskBase:()=>qp,DetectSingleFaceLandmarksTask:()=>jp,DetectSingleFaceTask:()=>Xp,Dimensions:()=>cn,FACE_EXPRESSION_LABELS:()=>Ef,FaceDetection:()=>ft,FaceDetectionNet:()=>Rw,FaceExpressionNet:()=>Dp,FaceExpressions:()=>Er,FaceLandmark68Net:()=>co,FaceLandmark68TinyNet:()=>Op,FaceLandmarkNet:()=>Ew,FaceLandmarks:()=>jn,FaceLandmarks5:()=>gw,FaceLandmarks68:()=>so,FaceMatch:()=>Cu,FaceMatcher:()=>Yp,FaceRecognitionNet:()=>po,Gender:()=>cr,LabeledBox:()=>Au,LabeledFaceDescriptors:()=>or,NetInput:()=>ur,NeuralNetwork:()=>en,ObjectDetection:()=>_r,Point:()=>De,PredictedBox:()=>yw,Rect:()=>ro,SsdMobilenetv1:()=>Ts,SsdMobilenetv1Options:()=>sa,TinyFaceDetector:()=>go,TinyFaceDetectorOptions:()=>Vp,TinyYolov2:()=>mo,TinyYolov2Options:()=>Ba,allFaces:()=>pA,allFacesSsdMobilenetv1:()=>Vw,allFacesTinyYolov2:()=>cA,awaitMediaLoaded:()=>yf,bufferToImage:()=>bf,computeFaceDescriptor:()=>YC,createCanvas:()=>ks,createCanvasFromMedia:()=>_u,createFaceDetectionNet:()=>MC,createFaceRecognitionNet:()=>TC,createSsdMobilenetv1:()=>Mw,createTinyFaceDetector:()=>dA,createTinyYolov2:()=>UC,detectAllFaces:()=>Kp,detectFaceLandmarks:()=>Lw,detectFaceLandmarksTiny:()=>KC,detectLandmarks:()=>lA,detectSingleFace:()=>uA,draw:()=>Cw,env:()=>nt,euclideanDistance:()=>Pf,extendWithAge:()=>Wp,extendWithFaceDescriptor:()=>zp,extendWithFaceDetection:()=>bs,extendWithFaceExpressions:()=>Mp,extendWithFaceLandmarks:()=>uo,extendWithGender:()=>Bp,extractFaceTensors:()=>oo,extractFaces:()=>io,fetchImage:()=>iC,fetchJson:()=>wf,fetchNetWeights:()=>oC,fetchOrThrow:()=>Is,getContext2dOrThrow:()=>bn,getMediaDimensions:()=>ws,imageTensorToCanvas:()=>xf,imageToSquare:()=>vf,inverseSigmoid:()=>aC,iou:()=>pf,isMediaElement:()=>Ap,isMediaLoaded:()=>Fu,isWithAge:()=>SC,isWithFaceDetection:()=>za,isWithFaceExpressions:()=>$f,isWithFaceLandmarks:()=>Ns,isWithGender:()=>CC,loadAgeGenderModel:()=>sA,loadFaceDetectionModel:()=>iA,loadFaceExpressionModel:()=>rA,loadFaceLandmarkModel:()=>tA,loadFaceLandmarkTinyModel:()=>nA,loadFaceRecognitionModel:()=>aA,loadSsdMobilenetv1Model:()=>zw,loadTinyFaceDetectorModel:()=>ZC,loadTinyYolov2Model:()=>eA,loadWeightMap:()=>If,locateFaces:()=>oA,matchDimensions:()=>lC,minBbox:()=>df,nets:()=>Qe,nonMaxSuppression:()=>hf,normalize:()=>wa,padToSquare:()=>mf,predictAgeAndGender:()=>QC,recognizeFaceExpressions:()=>JC,resizeResults:()=>Uw,resolveInput:()=>xs,shuffleArray:()=>nC,sigmoid:()=>Su,ssdMobilenetv1:()=>Ow,tf:()=>Qg,tinyFaceDetector:()=>qC,tinyYolov2:()=>XC,toNetInput:()=>mt,utils:()=>dw,validateConfig:()=>Rf,version:()=>hA});var Qg={};Ju(Qg,{Abs:()=>Po,Acos:()=>Oo,Acosh:()=>Lo,AdadeltaOptimizer:()=>qh,AdagradOptimizer:()=>Xh,AdamOptimizer:()=>Kh,AdamaxOptimizer:()=>Yh,Add:()=>Hr,AddN:()=>Es,All:()=>Sd,Any:()=>Cd,ArgMax:()=>$s,ArgMin:()=>nc,Asin:()=>zo,Asinh:()=>Wo,Atan:()=>Bo,Atan2:()=>Uo,Atanh:()=>Vo,AvgPool:()=>Ds,AvgPool3D:()=>ac,AvgPool3DGrad:()=>Fd,AvgPoolGrad:()=>Ad,BackendWasm:()=>eC,BatchMatMul:()=>Ms,BatchToSpaceND:()=>rc,Bincount:()=>_d,BroadcastTo:()=>y0,Callback:()=>QI,CallbackList:()=>Yk,Cast:()=>Rs,Ceil:()=>Ps,ClipByValue:()=>jr,Complex:()=>Ed,ComplexAbs:()=>sc,Concat:()=>Go,Conv2D:()=>Os,Conv2DBackpropFilter:()=>$d,Conv2DBackpropInput:()=>Ls,Conv3D:()=>ic,Conv3DBackpropFilterV2:()=>Dd,Conv3DBackpropInputV2:()=>Md,Cos:()=>zs,Cosh:()=>Ho,CropAndResize:()=>jo,Cumsum:()=>Ws,CustomCallback:()=>Qk,DataStorage:()=>kd,DenseBincount:()=>Rd,DepthToSpace:()=>qo,DepthwiseConv2dNative:()=>Bs,DepthwiseConv2dNativeBackpropFilter:()=>Pd,DepthwiseConv2dNativeBackpropInput:()=>Od,Diag:()=>Ld,Dilation2D:()=>oc,Dilation2DBackpropFilter:()=>Wd,Dilation2DBackpropInput:()=>zd,ENV:()=>ry,EarlyStopping:()=>eN,Elu:()=>Xo,EluGrad:()=>Bd,Environment:()=>f0,Equal:()=>Yo,Erf:()=>Ko,Exp:()=>Us,ExpandDims:()=>Jo,Expm1:()=>Qo,FFT:()=>Vd,Fill:()=>lc,FlipLeftRight:()=>Zo,Floor:()=>Gs,FloorDiv:()=>Hs,FromPixels:()=>ah,FusedBatchNorm:()=>js,FusedConv2D:()=>Ni,FusedDepthwiseConv2D:()=>Ti,GatherNd:()=>tl,GatherV2:()=>el,GraphModel:()=>_N,Greater:()=>nl,GreaterEqual:()=>qs,History:()=>Jk,IFFT:()=>Ud,Identity:()=>Xs,Imag:()=>Gd,InputSpec:()=>Yt,IsFinite:()=>al,IsInf:()=>rl,IsNan:()=>sl,KernelBackend:()=>Zu,LRN:()=>pc,LRNGrad:()=>jd,LayerVariable:()=>Hk,LayersModel:()=>Nr,LeakyRelu:()=>Ks,Less:()=>il,LessEqual:()=>ol,LinSpace:()=>Hd,Log:()=>Ys,Log1p:()=>ll,LogSoftmax:()=>b0,LogicalAnd:()=>ul,LogicalNot:()=>uc,LogicalOr:()=>cc,Max:()=>Js,MaxPool:()=>Zs,MaxPool3D:()=>dc,MaxPool3DGrad:()=>Xd,MaxPoolGrad:()=>qd,MaxPoolWithArgmax:()=>Kd,Maximum:()=>Qs,Mean:()=>ei,Min:()=>ti,Minimum:()=>ni,MirrorPad:()=>hc,Mod:()=>cl,MomentumOptimizer:()=>Jh,Multinomial:()=>Yd,Multiply:()=>ai,Neg:()=>pl,NonMaxSuppressionV3:()=>hl,NonMaxSuppressionV4:()=>ml,NonMaxSuppressionV5:()=>fl,NotEqual:()=>dl,OP_SCOPE_SUFFIX:()=>F0,OneHot:()=>ri,OnesLike:()=>gl,Optimizer:()=>wr,Pack:()=>yl,PadV2:()=>si,Pool:()=>b_,Pow:()=>ii,Prelu:()=>oi,Prod:()=>bl,RMSPropOptimizer:()=>Qh,RNN:()=>nr,Range:()=>mc,Rank:()=>py,Real:()=>Jd,RealDiv:()=>Vs,Reciprocal:()=>xl,Reduction:()=>mn,Relu:()=>li,Relu6:()=>ci,Reshape:()=>vl,ResizeBilinear:()=>ui,ResizeBilinearGrad:()=>Zd,ResizeNearestNeighbor:()=>fc,ResizeNearestNeighborGrad:()=>Qd,Reverse:()=>pi,RotateWithOffset:()=>Ml,Round:()=>di,Rsqrt:()=>hi,SGDOptimizer:()=>Gc,ScatterNd:()=>wl,Select:()=>kl,Selu:()=>Il,Sequential:()=>su,Sigmoid:()=>fi,Sign:()=>Sl,Sin:()=>mi,Sinh:()=>Tl,Slice:()=>Nl,Softmax:()=>bi,Softplus:()=>Cl,SpaceToBatchND:()=>gc,SparseToDense:()=>eh,SplitV:()=>Al,Sqrt:()=>gi,Square:()=>yc,SquaredDifference:()=>xi,Step:()=>Xr,StridedSlice:()=>Fl,Sub:()=>vi,Sum:()=>yi,SymbolicTensor:()=>$a,Tan:()=>_l,Tanh:()=>wi,Tensor:()=>Fe,TensorBuffer:()=>Lt,Tile:()=>qr,TopK:()=>El,Transform:()=>th,Transpose:()=>ki,Unique:()=>nh,Unpack:()=>$l,UnsortedSegmentSum:()=>bc,Variable:()=>Kr,ZerosLike:()=>Dl,_FusedMatMul:()=>Ii,abs:()=>zt,acos:()=>Py,acosh:()=>Oy,add:()=>J,addN:()=>d1,all:()=>yh,any:()=>_c,argMax:()=>Ec,argMin:()=>Ly,asin:()=>zy,asinh:()=>Wy,atan:()=>By,atan2:()=>Vy,atanh:()=>Uy,avgPool:()=>Zn,avgPool3d:()=>jy,backend:()=>p1,backend_util:()=>E,basicLSTMCell:()=>J$,batchNorm:()=>br,batchNorm2d:()=>g1,batchNorm3d:()=>y1,batchNorm4d:()=>b1,batchToSpaceND:()=>Dc,bincount:()=>x1,booleanMaskAsync:()=>tP,broadcastTo:()=>Mc,browser:()=>Fi,buffer:()=>Le,callbacks:()=>G4,cast:()=>ue,ceil:()=>qy,clipByValue:()=>Xt,clone:()=>Zr,complex:()=>Yr,concat:()=>Je,concat1d:()=>v1,concat2d:()=>w1,concat3d:()=>k1,concat4d:()=>I1,constraints:()=>bk,conv1d:()=>xh,conv2d:()=>Et,conv2dTranspose:()=>vh,conv3d:()=>Ky,conv3dTranspose:()=>xD,copyRegisteredKernels:()=>w_,cos:()=>Rc,cosh:()=>wh,cosineWindow:()=>wb,cumsum:()=>kh,customGrad:()=>Xa,data:()=>$N,denseBincount:()=>T1,deprecationWarn:()=>Ry,depthToSpace:()=>Yy,depthwiseConv2d:()=>ns,deregisterOp:()=>j4,device_util:()=>Cc,diag:()=>CD,dilation2d:()=>Jy,disableDeprecationWarnings:()=>u$,dispose:()=>Ee,disposeVariables:()=>c$,div:()=>xe,divNoNan:()=>Qy,dot:()=>S1,dropout:()=>q1,elu:()=>Gl,enableDebugMode:()=>l$,enableProdMode:()=>o$,enclosingPowerOfTwo:()=>X1,engine:()=>Ha,env:()=>Z,equal:()=>as,erf:()=>Zy,exp:()=>hn,expandDims:()=>Rn,expm1:()=>eb,eye:()=>tb,fft:()=>Vc,fill:()=>Cn,findBackend:()=>y$,findBackendFactory:()=>b$,floor:()=>Hl,floorDiv:()=>gh,fused:()=>is,gather:()=>$i,gatherND:()=>j1,gather_util:()=>Ay,getBackend:()=>f$,getGradient:()=>ly,getKernel:()=>rh,getKernelsForBackend:()=>sh,grad:()=>nM,grads:()=>aM,greater:()=>ha,greaterEqual:()=>rs,ifft:()=>Jl,imag:()=>Ih,image:()=>Ja,inTopKAsync:()=>dP,initializers:()=>Tk,input:()=>Lk,io:()=>jt,irfft:()=>Lh,isFinite:()=>C1,isInf:()=>A1,isNaN:()=>F1,keep:()=>qt,kernel_impls:()=>Qa,layers:()=>Ok,leakyRelu:()=>Pc,less:()=>Nh,lessEqual:()=>Di,linalg:()=>ik,linspace:()=>_1,loadGraphModel:()=>HV,loadLayersModel:()=>c4,localResponseNormalization:()=>nb,log:()=>Pn,log1p:()=>Th,logSigmoid:()=>$1,logSoftmax:()=>Ch,logSumExp:()=>sb,logicalAnd:()=>ma,logicalNot:()=>Oc,logicalOr:()=>Ah,logicalXor:()=>P1,losses:()=>FO,matMul:()=>ze,math:()=>H0,max:()=>ea,maxPool:()=>$t,maxPool3d:()=>ib,maxPoolWithArgmax:()=>O1,maximum:()=>Ka,mean:()=>Ct,memory:()=>mh,metrics:()=>KI,min:()=>ql,minimum:()=>Xl,mirrorPad:()=>ob,mod:()=>lb,model:()=>l4,models:()=>YI,moments:()=>Fh,movingAverage:()=>rP,mul:()=>B,multiRNNCell:()=>$M,multinomial:()=>L1,neg:()=>St,nextFrame:()=>Zh,norm:()=>Vh,notEqual:()=>Ri,oneHot:()=>Wl,ones:()=>Ya,onesLike:()=>On,op:()=>O,outerProduct:()=>OM,pad:()=>ta,pad1d:()=>WM,pad2d:()=>VM,pad3d:()=>GM,pad4d:()=>jM,pool:()=>z1,pow:()=>xr,prelu:()=>zc,print:()=>z0,prod:()=>_h,profile:()=>p$,rand:()=>tR,randomGamma:()=>sR,randomNormal:()=>W1,randomUniform:()=>Kl,range:()=>Eh,ready:()=>m$,real:()=>Wc,reciprocal:()=>pb,registerBackend:()=>fh,registerCallbackConstructor:()=>p4,registerGradient:()=>x0,registerKernel:()=>vc,registerOp:()=>H4,regularizers:()=>JI,relu:()=>qe,relu6:()=>$h,removeBackend:()=>g$,reshape:()=>H,reverse:()=>Ln,reverse1d:()=>mR,reverse2d:()=>gR,reverse3d:()=>bR,reverse4d:()=>vR,rfft:()=>Uc,round:()=>db,rsqrt:()=>Dh,scalar:()=>ce,scatterND:()=>H1,scatter_util:()=>Fy,selu:()=>Mh,separableConv2d:()=>Pi,sequential:()=>u4,serialization:()=>re,setBackend:()=>h$,setPlatform:()=>x$,setWasmPath:()=>Gre,setWasmPaths:()=>Hre,setdiff1dAsync:()=>B1,sigmoid:()=>da,sign:()=>hb,signal:()=>AO,sin:()=>Rh,sinh:()=>Ph,slice:()=>Be,slice1d:()=>Oh,slice2d:()=>mb,slice3d:()=>Yl,slice4d:()=>Bc,slice_util:()=>dn,softmax:()=>Sa,softplus:()=>jl,spaceToBatchND:()=>Lc,sparseToDense:()=>vb,spectral:()=>CO,split:()=>zn,sqrt:()=>rn,square:()=>ut,squaredDifference:()=>zh,squeeze:()=>ss,stack:()=>Dt,step:()=>Ql,stridedSlice:()=>fb,sub:()=>me,sum:()=>Se,sumOutType:()=>uh,tan:()=>gb,tanh:()=>Ul,tensor:()=>Jn,tensor1d:()=>Ze,tensor2d:()=>Ca,tensor3d:()=>dh,tensor4d:()=>Aa,tensor5d:()=>jR,tensor6d:()=>qR,tensor_util:()=>Na,test_util:()=>o1,tidy:()=>M,tile:()=>qa,time:()=>d$,topk:()=>yb,train:()=>Li,transpose:()=>Ve,truncatedNormal:()=>Wh,unique:()=>Bh,unregisterGradient:()=>v_,unregisterKernel:()=>x_,unsortedSegmentSum:()=>bb,unstack:()=>ct,upcastType:()=>pa,util:()=>I,valueAndGrad:()=>rM,valueAndGrads:()=>sM,variable:()=>V1,variableGrads:()=>E1,version:()=>Qee,version_converter:()=>EN,version_core:()=>c1,version_layers:()=>Im,version_wasm:()=>jre,where:()=>Sn,whereAsync:()=>xb,zeros:()=>vt,zerosLike:()=>Ge});var mF=Object.create,wd=Object.defineProperty,fF=Object.getPrototypeOf,gF=Object.prototype.hasOwnProperty,yF=Object.getOwnPropertyNames,bF=Object.getOwnPropertyDescriptor,xF=e=>wd(e,"__esModule",{value:!0}),tt=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),Oe=(e,t)=>{for(var n in t)wd(e,n,{get:t[n],enumerable:!0})},vF=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of yF(t))!gF.call(e,a)&&a!=="default"&&wd(e,a,{get:()=>t[a],enumerable:!(n=bF(t,a))||n.enumerable});return e},Do=e=>vF(xF(wd(e!=null?mF(fF(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e),wF=tt(()=>{}),kF=tt((e,t)=>{(function(n,a,r){function s(u){var c=this,p=l();c.next=function(){var d=2091639*c.s0+c.c*23283064365386963e-26;return c.s0=c.s1,c.s1=c.s2,c.s2=d-(c.c=d|0)},c.c=1,c.s0=p(" "),c.s1=p(" "),c.s2=p(" "),c.s0-=p(u),c.s0<0&&(c.s0+=1),c.s1-=p(u),c.s1<0&&(c.s1+=1),c.s2-=p(u),c.s2<0&&(c.s2+=1),p=null}function i(u,c){return c.c=u.c,c.s0=u.s0,c.s1=u.s1,c.s2=u.s2,c}function o(u,c){var p=new s(u),d=c&&c.state,h=p.next;return h.int32=function(){return p.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,d&&(typeof d=="object"&&i(d,p),h.state=function(){return i(p,{})}),h}function l(){var u=4022871197,c=function(p){p=p.toString();for(var d=0;d>>0,h-=u,h*=u,u=h>>>0,h-=u,u+=h*4294967296}return(u>>>0)*23283064365386963e-26};return c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),IF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this,c="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var d=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^d^d>>>8},l===(l|0)?u.x=l:c+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),NF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this,c="";u.next=function(){var d=u.x^u.x>>>2;return u.x=u.y,u.y=u.z,u.z=u.w,u.w=u.v,(u.d=u.d+362437|0)+(u.v=u.v^u.v<<4^(d^d<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:c+=l;for(var p=0;p>>4),u.next()}function i(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u.v=l.v,u.d=l.d,u}function o(l,u){var c=new s(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),TF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var p=u.x,d=u.i,h,m,f;return h=p[d],h^=h>>>7,m=h^h<<24,h=p[d+1&7],m^=h^h>>>10,h=p[d+3&7],m^=h^h>>>3,h=p[d+4&7],m^=h^h<<7,h=p[d+7&7],h=h^h<<13,m^=h^h<<9,p[d]=m,u.i=d+1&7,m};function c(p,d){var h,m,f=[];if(d===(d|0))m=f[0]=d;else for(d=""+d,h=0;h0;--h)p.next()}c(u,l)}function i(l,u){return u.x=l.x.slice(),u.i=l.i,u}function o(l,u){l==null&&(l=+new Date);var c=new s(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(p.x&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),SF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var p=u.w,d=u.X,h=u.i,m,f;return u.w=p=p+1640531527|0,f=d[h+34&127],m=d[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=d[h]=f^m,u.i=h,f+(p^p>>>16)|0};function c(p,d){var h,m,f,g,y,b=[],x=128;for(d===(d|0)?(m=d,d=null):(d=d+"\0",m=0,x=Math.max(x,d.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(y=y+1640531527|0,h=b[g&127]^=m+y,f=h==0?f+1:0);for(f>=128&&(b[(d&&d.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=b[f+34&127],h=b[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,b[f]=m^h;p.w=y,p.X=b,p.i=f}c(u,l)}function i(l,u){return u.i=l.i,u.w=l.w,u.X=l.X.slice(),u}function o(l,u){l==null&&(l=+new Date);var c=new s(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(p.X&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),CF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this,c="";u.next=function(){var d=u.b,h=u.c,m=u.d,f=u.a;return d=d<<25^d>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-d|0,u.b=d=d<<20^d>>>12^h,u.c=h=h-m|0,u.d=m<<16^h>>>16^f,u.a=f-d|0},u.a=0,u.b=0,u.c=2654435769|0,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):c+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),Zg=tt(()=>{}),AF=tt((e,t)=>{(function(n,a){var r=this,s=256,i=6,o=52,l="random",u=a.pow(s,i),c=a.pow(2,o),p=c*2,d=s-1,h;function m(k,w,S){var A=[];w=w==!0?{entropy:!0}:w||{};var F=b(y(w.entropy?[k,v(n)]:k==null?x():k,3),A),D=new f(A),R=function(){for(var L=D.g(i),W=u,U=0;L=p;)L/=2,W/=2,U>>>=1;return(L+U)/W};return R.int32=function(){return D.g(4)|0},R.quick=function(){return D.g(4)/4294967296},R.double=R,b(v(D.S),n),(w.pass||S||function(L,W,U,G){return G&&(G.S&&g(G,D),L.state=function(){return g(D,{})}),U?(a[l]=L,W):L})(R,F,"global"in w?w.global:this==a,w.state)}a["seed"+l]=m;function f(k){var w,S=k.length,A=this,F=0,D=A.i=A.j=0,R=A.S=[];for(S||(k=[S++]);F{var n=kF(),a=IF(),r=NF(),s=TF(),i=SF(),o=CF(),l=AF();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),_F=tt((e,t)=>{(function(n,a,r){function s(u){var c=this,p=l();c.next=function(){var d=2091639*c.s0+c.c*23283064365386963e-26;return c.s0=c.s1,c.s1=c.s2,c.s2=d-(c.c=d|0)},c.c=1,c.s0=p(" "),c.s1=p(" "),c.s2=p(" "),c.s0-=p(u),c.s0<0&&(c.s0+=1),c.s1-=p(u),c.s1<0&&(c.s1+=1),c.s2-=p(u),c.s2<0&&(c.s2+=1),p=null}function i(u,c){return c.c=u.c,c.s0=u.s0,c.s1=u.s1,c.s2=u.s2,c}function o(u,c){var p=new s(u),d=c&&c.state,h=p.next;return h.int32=function(){return p.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,d&&(typeof d=="object"&&i(d,p),h.state=function(){return i(p,{})}),h}function l(){var u=4022871197,c=function(p){p=p.toString();for(var d=0;d>>0,h-=u,h*=u,u=h>>>0,h-=u,u+=h*4294967296}return(u>>>0)*23283064365386963e-26};return c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),EF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this,c="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var d=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^d^d>>>8},l===(l|0)?u.x=l:c+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),$F=tt((e,t)=>{(function(n,a,r){function s(l){var u=this,c="";u.next=function(){var d=u.x^u.x>>>2;return u.x=u.y,u.y=u.z,u.z=u.w,u.w=u.v,(u.d=u.d+362437|0)+(u.v=u.v^u.v<<4^(d^d<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:c+=l;for(var p=0;p>>4),u.next()}function i(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u.v=l.v,u.d=l.d,u}function o(l,u){var c=new s(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),DF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var p=u.x,d=u.i,h,m,f;return h=p[d],h^=h>>>7,m=h^h<<24,h=p[d+1&7],m^=h^h>>>10,h=p[d+3&7],m^=h^h>>>3,h=p[d+4&7],m^=h^h<<7,h=p[d+7&7],h=h^h<<13,m^=h^h<<9,p[d]=m,u.i=d+1&7,m};function c(p,d){var h,m,f=[];if(d===(d|0))m=f[0]=d;else for(d=""+d,h=0;h0;--h)p.next()}c(u,l)}function i(l,u){return u.x=l.x.slice(),u.i=l.i,u}function o(l,u){l==null&&(l=+new Date);var c=new s(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(p.x&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),MF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var p=u.w,d=u.X,h=u.i,m,f;return u.w=p=p+1640531527|0,f=d[h+34&127],m=d[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=d[h]=f^m,u.i=h,f+(p^p>>>16)|0};function c(p,d){var h,m,f,g,y,b=[],x=128;for(d===(d|0)?(m=d,d=null):(d=d+"\0",m=0,x=Math.max(x,d.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(y=y+1640531527|0,h=b[g&127]^=m+y,f=h==0?f+1:0);for(f>=128&&(b[(d&&d.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=b[f+34&127],h=b[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,b[f]=m^h;p.w=y,p.X=b,p.i=f}c(u,l)}function i(l,u){return u.i=l.i,u.w=l.w,u.X=l.X.slice(),u}function o(l,u){l==null&&(l=+new Date);var c=new s(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(p.X&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),RF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this,c="";u.next=function(){var d=u.b,h=u.c,m=u.d,f=u.a;return d=d<<25^d>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-d|0,u.b=d=d<<20^d>>>12^h,u.c=h=h-m|0,u.d=m<<16^h>>>16^f,u.a=f-d|0},u.a=0,u.b=0,u.c=2654435769|0,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):c+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),PF=tt((e,t)=>{(function(n,a){var r=(0,eval)("this"),s=256,i=6,o=52,l="random",u=a.pow(s,i),c=a.pow(2,o),p=c*2,d=s-1,h;function m(k,w,S){var A=[];w=w==!0?{entropy:!0}:w||{};var F=b(y(w.entropy?[k,v(n)]:k==null?x():k,3),A),D=new f(A),R=function(){for(var L=D.g(i),W=u,U=0;L=p;)L/=2,W/=2,U>>>=1;return(L+U)/W};return R.int32=function(){return D.g(4)|0},R.quick=function(){return D.g(4)/4294967296},R.double=R,b(v(D.S),n),(w.pass||S||function(L,W,U,G){return G&&(G.S&&g(G,D),L.state=function(){return g(D,{})}),U?(a[l]=L,W):L})(R,F,"global"in w?w.global:this==a,w.state)}a["seed"+l]=m;function f(k){var w,S=k.length,A=this,F=0,D=A.i=A.j=0,R=A.S=[];for(S||(k=[S++]);F{var n=_F(),a=EF(),r=$F(),s=DF(),i=MF(),o=RF(),l=PF();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),OF=tt(()=>{}),LF=tt((e,t)=>{(function(n,a,r){function s(u){var c=this,p=l();c.next=function(){var d=2091639*c.s0+c.c*23283064365386963e-26;return c.s0=c.s1,c.s1=c.s2,c.s2=d-(c.c=d|0)},c.c=1,c.s0=p(" "),c.s1=p(" "),c.s2=p(" "),c.s0-=p(u),c.s0<0&&(c.s0+=1),c.s1-=p(u),c.s1<0&&(c.s1+=1),c.s2-=p(u),c.s2<0&&(c.s2+=1),p=null}function i(u,c){return c.c=u.c,c.s0=u.s0,c.s1=u.s1,c.s2=u.s2,c}function o(u,c){var p=new s(u),d=c&&c.state,h=p.next;return h.int32=function(){return p.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,d&&(typeof d=="object"&&i(d,p),h.state=function(){return i(p,{})}),h}function l(){var u=4022871197,c=function(p){p=p.toString();for(var d=0;d>>0,h-=u,h*=u,u=h>>>0,h-=u,u+=h*4294967296}return(u>>>0)*23283064365386963e-26};return c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),zF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this,c="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var d=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^d^d>>>8},l===(l|0)?u.x=l:c+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),WF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this,c="";u.next=function(){var d=u.x^u.x>>>2;return u.x=u.y,u.y=u.z,u.z=u.w,u.w=u.v,(u.d=u.d+362437|0)+(u.v=u.v^u.v<<4^(d^d<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:c+=l;for(var p=0;p>>4),u.next()}function i(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u.v=l.v,u.d=l.d,u}function o(l,u){var c=new s(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),BF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var p=u.x,d=u.i,h,m,f;return h=p[d],h^=h>>>7,m=h^h<<24,h=p[d+1&7],m^=h^h>>>10,h=p[d+3&7],m^=h^h>>>3,h=p[d+4&7],m^=h^h<<7,h=p[d+7&7],h=h^h<<13,m^=h^h<<9,p[d]=m,u.i=d+1&7,m};function c(p,d){var h,m,f=[];if(d===(d|0))m=f[0]=d;else for(d=""+d,h=0;h0;--h)p.next()}c(u,l)}function i(l,u){return u.x=l.x.slice(),u.i=l.i,u}function o(l,u){l==null&&(l=+new Date);var c=new s(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(p.x&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),VF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var p=u.w,d=u.X,h=u.i,m,f;return u.w=p=p+1640531527|0,f=d[h+34&127],m=d[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=d[h]=f^m,u.i=h,f+(p^p>>>16)|0};function c(p,d){var h,m,f,g,y,b=[],x=128;for(d===(d|0)?(m=d,d=null):(d=d+"\0",m=0,x=Math.max(x,d.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(y=y+1640531527|0,h=b[g&127]^=m+y,f=h==0?f+1:0);for(f>=128&&(b[(d&&d.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=b[f+34&127],h=b[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,b[f]=m^h;p.w=y,p.X=b,p.i=f}c(u,l)}function i(l,u){return u.i=l.i,u.w=l.w,u.X=l.X.slice(),u}function o(l,u){l==null&&(l=+new Date);var c=new s(l),p=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(p.X&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),UF=tt((e,t)=>{(function(n,a,r){function s(l){var u=this,c="";u.next=function(){var d=u.b,h=u.c,m=u.d,f=u.a;return d=d<<25^d>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-d|0,u.b=d=d<<20^d>>>12^h,u.c=h=h-m|0,u.d=m<<16^h>>>16^f,u.a=f-d|0},u.a=0,u.b=0,u.c=2654435769|0,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):c+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=c.next,d.quick=d,p&&(typeof p=="object"&&i(p,c),d.state=function(){return i(c,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),GF=tt((e,t)=>{(function(n,a){var r=this,s=256,i=6,o=52,l="random",u=a.pow(s,i),c=a.pow(2,o),p=c*2,d=s-1,h;function m(k,w,S){var A=[];w=w==!0?{entropy:!0}:w||{};var F=b(y(w.entropy?[k,v(n)]:k==null?x():k,3),A),D=new f(A),R=function(){for(var L=D.g(i),W=u,U=0;L=p;)L/=2,W/=2,U>>>=1;return(L+U)/W};return R.int32=function(){return D.g(4)|0},R.quick=function(){return D.g(4)/4294967296},R.double=R,b(v(D.S),n),(w.pass||S||function(L,W,U,G){return G&&(G.S&&g(G,D),L.state=function(){return g(D,{})}),U?(a[l]=L,W):L})(R,F,"global"in w?w.global:this==a,w.state)}a["seed"+l]=m;function f(k){var w,S=k.length,A=this,F=0,D=A.i=A.j=0,R=A.S=[];for(S||(k=[S++]);F{var n=LF(),a=zF(),r=WF(),s=BF(),i=VF(),o=UF(),l=GF();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),Qu=tt(()=>{}),jF=tt(()=>{}),qF=tt(()=>{}),XF=tt((e,t)=>{var n=function(){var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};function s(){return ee.buffer!=We&&nn(ee.buffer),wn}function i(){return ee.buffer!=We&&nn(ee.buffer),Nt}function o(){return ee.buffer!=We&&nn(ee.buffer),kn}function l(){return ee.buffer!=We&&nn(ee.buffer),Kn}function u(){return ee.buffer!=We&&nn(ee.buffer),pn}var c=typeof r!="undefined"?r:{},p,d;c.ready=new Promise(function(T,C){p=T,d=C});var h={},m;for(m in c)c.hasOwnProperty(m)&&(h[m]=c[m]);var f=[],g="./this.program",y=function(T,C){throw C},b=!1,x=!1,v=!1,k=!1;b=typeof window=="object",x=typeof importScripts=="function",v=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",k=!b&&!v&&!x;var w=c.ENVIRONMENT_IS_PTHREAD||!1;w&&(We=c.buffer);var S="";function A(T){return c.locateFile?c.locateFile(T,S):S+T}var F,D,R,L,W,U;if(v){x?S=Qu().dirname(S)+"/":S=__dirname+"/",F=function(T,C){return W||(W=require("fs")),U||(U=Qu()),T=U.normalize(T),W.readFileSync(T,C?null:"utf8")},R=function(T){var C=F(T,!0);return C.buffer||(C=new Uint8Array(C)),fe(C.buffer),C},process.argv.length>1&&(g=process.argv[1].replace(/\\/g,"/")),f=process.argv.slice(2),process.on("uncaughtException",function(T){if(!(T instanceof Yu))throw T}),process.on("unhandledRejection",hr),y=function(T){process.exit(T)},c.inspect=function(){return"[Emscripten Module object]"};var G;try{G=jF()}catch(T){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),T}global.Worker=G.Worker}else k?(typeof read!="undefined"&&(F=function(T){return read(T)}),R=function(T){var C;return typeof readbuffer=="function"?new Uint8Array(readbuffer(T)):(C=read(T,"binary"),fe(typeof C=="object"),C)},typeof scriptArgs!="undefined"?f=scriptArgs:typeof arguments!="undefined"&&(f=arguments),typeof quit=="function"&&(y=function(T){quit(T)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(b||x)&&(x?S=self.location.href:typeof document!="undefined"&&document.currentScript&&(S=document.currentScript.src),typeof a!="undefined"&&a&&(S=a),S.indexOf("blob:")!==0?S=S.substr(0,S.lastIndexOf("/")+1):S="",v?(F=function(T,C){return W||(W=require("fs")),U||(U=Qu()),T=U.normalize(T),W.readFileSync(T,C?null:"utf8")},R=function(T){var C=F(T,!0);return C.buffer||(C=new Uint8Array(C)),fe(C.buffer),C}):(F=function(T){var C=new XMLHttpRequest;return C.open("GET",T,!1),C.send(null),C.responseText},x&&(R=function(T){var C=new XMLHttpRequest;return C.open("GET",T,!1),C.responseType="arraybuffer",C.send(null),new Uint8Array(C.response)}),D=function(T,C,z){var q=new XMLHttpRequest;q.open("GET",T,!0),q.responseType="arraybuffer",q.onload=function(){if(q.status==200||q.status==0&&q.response){C(q.response);return}z()},q.onerror=z,q.send(null)}),L=function(T){document.title=T});v&&typeof performance=="undefined"&&(global.performance=qF().performance);var X=c.print||console.log.bind(console),j=c.printErr||console.warn.bind(console);for(m in h)h.hasOwnProperty(m)&&(c[m]=h[m]);h=null,c.arguments&&(f=c.arguments),c.thisProgram&&(g=c.thisProgram),c.quit&&(y=c.quit);var te=Atomics.load,Q=Atomics.store,se=Atomics.compareExchange,ne;c.wasmBinary&&(ne=c.wasmBinary);var ie=c.noExitRuntime||!0;typeof WebAssembly!="object"&&hr("no native wasm support detected");var ee,de,oe=!1,ge;function fe(T,C){T||hr("Assertion failed: "+C)}function we(T){var C=c["_"+T];return fe(C,"Cannot call unknown function "+T+", make sure it is exported"),C}function Ne(T,C,z,q,he){var le={string:function(Tn){var $o=0;if(Tn!=null&&Tn!==0){var t0=(Tn.length<<2)+1;$o=Fo(t0),rt(Tn,$o,t0)}return $o},array:function(Tn){var $o=Fo(Tn.length);return Ke(Tn,$o),$o}};function pe(Tn){return C==="string"?_e(Tn):C==="boolean"?Boolean(Tn):Tn}var be=we(T),st=[],Gt=0;if(q)for(var Pt=0;Pt=q);){var le=T[C++];if(!le)return he;if(!(le&128)){he+=String.fromCharCode(le);continue}var pe=T[C++]&63;if((le&224)==192){he+=String.fromCharCode((le&31)<<6|pe);continue}var be=T[C++]&63;if((le&240)==224?le=(le&15)<<12|pe<<6|be:le=(le&7)<<18|pe<<12|be<<6|T[C++]&63,le<65536)he+=String.fromCharCode(le);else{var st=le-65536;he+=String.fromCharCode(55296|st>>10,56320|st&1023)}}return he}function _e(T,C){return T?Me(i(),T,C):""}function at(T,C,z,q){if(!(q>0))return 0;for(var he=z,le=z+q-1,pe=0;pe=55296&&be<=57343){var st=T.charCodeAt(++pe);be=65536+((be&1023)<<10)|st&1023}if(be<=127){if(z>=le)break;C[z++]=be}else if(be<=2047){if(z+1>=le)break;C[z++]=192|be>>6,C[z++]=128|be&63}else if(be<=65535){if(z+2>=le)break;C[z++]=224|be>>12,C[z++]=128|be>>6&63,C[z++]=128|be&63}else{if(z+3>=le)break;C[z++]=240|be>>18,C[z++]=128|be>>12&63,C[z++]=128|be>>6&63,C[z++]=128|be&63}}return C[z]=0,z-he}function rt(T,C,z){return at(T,i(),C,z)}function lt(T){for(var C=0,z=0;z=55296&&q<=57343&&(q=65536+((q&1023)<<10)|T.charCodeAt(++z)&1023),q<=127?++C:q<=2047?C+=2:q<=65535?C+=3:C+=4}return C}function Ke(T,C){s().set(T,C)}function gt(T,C){return T%C>0&&(T+=C-T%C),T}var We,wn,Nt,Xn,tn,kn,Kn,Mn,pn;function nn(T){We=T,c.HEAP8=wn=new Int8Array(T),c.HEAP16=Xn=new Int16Array(T),c.HEAP32=kn=new Int32Array(T),c.HEAPU8=Nt=new Uint8Array(T),c.HEAPU16=tn=new Uint16Array(T),c.HEAPU32=Kn=new Uint32Array(T),c.HEAPF32=Mn=new Float32Array(T),c.HEAPF64=pn=new Float64Array(T)}var Va=c.INITIAL_MEMORY||16777216;if(w)ee=c.wasmMemory,We=c.buffer;else if(c.wasmMemory)ee=c.wasmMemory;else if(ee=new WebAssembly.Memory({initial:Va/65536,maximum:2147483648/65536,shared:!0}),!(ee.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"),v&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");ee&&(We=ee.buffer),Va=We.byteLength,nn(We);var oa,la=[],Pr=[],pr=[],Or=[],wo=[],Ia=!1,Jp=!1;w||Pr.push({func:function(){hd()}}),w&&(Ia=!0);function Of(){if(!w){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)ed(c.preRun.shift());Io(la)}}function Qp(){Ia=!0,Io(Pr)}function Lf(){w||Io(pr)}function Zp(){w||(Jp=!0)}function In(){if(!w){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)zf(c.postRun.shift());Io(wo)}}function ed(T){la.unshift(T)}function zf(T){wo.unshift(T)}var dr=0,Lr=null,Ss=null;function Wf(T){fe(!w,"addRunDependency cannot be used in a pthread worker"),dr++,c.monitorRunDependencies&&c.monitorRunDependencies(dr)}function Bf(T){if(dr--,c.monitorRunDependencies&&c.monitorRunDependencies(dr),dr==0&&(Lr!==null&&(clearInterval(Lr),Lr=null),Ss)){var C=Ss;Ss=null,C()}}c.preloadedImages={},c.preloadedAudios={};function hr(T){c.onAbort&&c.onAbort(T),w&&console.error("Pthread aborting at "+new Error().stack),T+="",j(T),oe=!0,ge=1,T="abort("+T+"). Build with -s ASSERTIONS=1 for more info.";var C=new WebAssembly.RuntimeError(T);throw d(C),C}function td(T,C){return String.prototype.startsWith?T.startsWith(C):T.indexOf(C)===0}var ko="data:application/octet-stream;base64,";function nd(T){return td(T,ko)}var Vf="file://";function ad(T){return td(T,Vf)}var Nn="tfjs-backend-wasm-threaded-simd.wasm";nd(Nn)||(Nn=A(Nn));function Uf(T){try{if(T==Nn&&ne)return new Uint8Array(ne);if(R)return R(T);throw"both async and sync fetching of the wasm failed"}catch(C){hr(C)}}function rd(){if(!ne&&(b||x)){if(typeof fetch=="function"&&!ad(Nn))return fetch(Nn,{credentials:"same-origin"}).then(function(T){if(!T.ok)throw"failed to load wasm binary file at '"+Nn+"'";return T.arrayBuffer()}).catch(function(){return Uf(Nn)});if(D)return new Promise(function(T,C){D(Nn,function(z){T(new Uint8Array(z))},C)})}return Promise.resolve().then(function(){return Uf(Nn)})}function Gf(){var T={a:Mg};function C(pe,be){var st=pe.exports;if(c.asm=st,oa=c.asm.F,de=be,!w){var Gt=ke.unusedWorkers.length;ke.unusedWorkers.forEach(function(Pt){ke.loadWasmModuleToWorker(Pt,function(){--Gt||Bf("wasm-instantiate")})})}}w||Wf("wasm-instantiate");function z(pe){C(pe.instance,pe.module)}function q(pe){return rd().then(function(be){return WebAssembly.instantiate(be,T)}).then(pe,function(be){j("failed to asynchronously prepare wasm: "+be),hr(be)})}function he(){return!ne&&typeof WebAssembly.instantiateStreaming=="function"&&!nd(Nn)&&!ad(Nn)&&typeof fetch=="function"?fetch(Nn,{credentials:"same-origin"}).then(function(pe){var be=WebAssembly.instantiateStreaming(pe,T);return be.then(z,function(st){return j("wasm streaming compile failed: "+st),j("falling back to ArrayBuffer instantiation"),q(z)})}):q(z)}if(c.instantiateWasm)try{var le=c.instantiateWasm(T,C);return le}catch(pe){return j("Module.instantiateWasm callback failed with error: "+pe),!1}return he().catch(d),{}}var sd={8991:function(T,C){setTimeout(function(){Kw(T,C)},0)}};function Hf(){ke.initRuntime()}function Io(T){for(;T.length>0;){var C=T.shift();if(typeof C=="function"){C(c);continue}var z=C.func;typeof z=="number"?C.arg===void 0?oa.get(z)():oa.get(z)(C.arg):z(C.arg===void 0?null:C.arg)}}function No(T,C){if(T<=0||T>s().length||T&!0||C<0)return-28;if(C==0)return 0;C>=2147483647&&(C=Infinity);var z=Atomics.load(o(),_o>>2),q=0;if(z==T){var he=Atomics.compareExchange(o(),_o>>2,z,0);if(he==z&&(--C,q=1,C<=0))return 1}var le=Atomics.notify(o(),T>>2,C);if(le>=0)return le+q;throw"Atomics.notify returned an unexpected value "+le}c._emscripten_futex_wake=No;function jf(T){if(w)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!T)throw"Internal Error! Null pthread_ptr in killThread!";o()[T+12>>2]=0;var C=ke.pthreads[T];C.worker.terminate(),ke.freeThreadData(C),ke.runningWorkers.splice(ke.runningWorkers.indexOf(C.worker),1),C.worker.pthread=void 0}function qf(T){if(w)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!T)throw"Internal Error! Null pthread_ptr in cancelThread!";var C=ke.pthreads[T];C.worker.postMessage({cmd:"cancel"})}function Xf(T){if(w)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!T)throw"Internal Error! Null pthread_ptr in cleanupThread!";o()[T+12>>2]=0;var C=ke.pthreads[T];if(C){var z=C.worker;ke.returnWorkerToPool(z)}}var ke={unusedWorkers:[],runningWorkers:[],initMainThreadBlock:function(){for(var T=8,C=0;C>2]=T;var z=T+152;o()[z>>2]=z;for(var q=As(512),C=0;C<128;++C)l()[q/4+C]=0;Atomics.store(l(),T+100>>2,q),Atomics.store(l(),T+40>>2,T),bd(T,!x,1),Xw(T)},initWorker:function(){},pthreads:{},threadExitHandlers:[],setThreadStatus:function(){},runExitHandlers:function(){for(;ke.threadExitHandlers.length>0;)ke.threadExitHandlers.pop()();w&&Co()&&qw()},threadExit:function(T){var C=Co();C&&(Atomics.store(l(),C+4>>2,T),Atomics.store(l(),C+0>>2,1),Atomics.store(l(),C+56>>2,1),Atomics.store(l(),C+60>>2,0),ke.runExitHandlers(),No(C+0,2147483647),bd(0,0,0),w&&postMessage({cmd:"exit"}))},threadCancel:function(){ke.runExitHandlers();var T=Co();Atomics.store(l(),T+4>>2,-1),Atomics.store(l(),T+0>>2,1),No(T+0,2147483647),bd(0,0,0),postMessage({cmd:"cancelDone"})},terminateAllThreads:function(){for(var T in ke.pthreads){var C=ke.pthreads[T];C&&C.worker&&ke.returnWorkerToPool(C.worker)}ke.pthreads={};for(var z=0;z>2];o()[T.threadInfoStruct+100>>2]=0,Xu(C),Xu(T.threadInfoStruct)}T.threadInfoStruct=0,T.allocatedOwnStack&&T.stackBase&&Xu(T.stackBase),T.stackBase=0,T.worker&&(T.worker.pthread=null)}},returnWorkerToPool:function(T){ke.runWithoutMainThreadQueuedCalls(function(){delete ke.pthreads[T.pthread.threadInfoStruct],ke.unusedWorkers.push(T),ke.runningWorkers.splice(ke.runningWorkers.indexOf(T),1),ke.freeThreadData(T.pthread),T.pthread=void 0})},runWithoutMainThreadQueuedCalls:function(T){o()[e0>>2]=0;try{T()}finally{o()[e0>>2]=1}},receiveObjectTransfer:function(T){},loadWasmModuleToWorker:function(T,C){T.onmessage=function(z){var q=z.data,he=q.cmd;if(T.pthread&&(ke.currentProxiedOperationCallerThread=T.pthread.threadInfoStruct),q.targetThread&&q.targetThread!=Co()){var le=ke.pthreads[q.targetThread];le?le.worker.postMessage(z.data,q.transferList):console.error('Internal error! Worker sent a message "'+he+'" to target pthread '+q.targetThread+", but that thread no longer exists!"),ke.currentProxiedOperationCallerThread=void 0;return}if(he==="processQueuedMainThreadWork")Kg();else if(he==="spawnThread")pd(z.data);else if(he==="cleanupThread")Xf(q.thread);else if(he==="killThread")jf(q.thread);else if(he==="cancelThread")qf(q.thread);else if(he==="loaded")T.loaded=!0,C&&C(T),T.runPthread&&(T.runPthread(),delete T.runPthread);else if(he==="print")X("Thread "+q.threadId+": "+q.text);else if(he==="printErr")j("Thread "+q.threadId+": "+q.text);else if(he==="alert")alert("Thread "+q.threadId+": "+q.text);else if(he==="exit"){var pe=T.pthread&&Atomics.load(l(),T.pthread.threadInfoStruct+64>>2);pe&&ke.returnWorkerToPool(T)}else if(he==="exitProcess")try{sF(q.returnCode)}catch(be){if(be instanceof Yu)return;throw be}else he==="cancelDone"?ke.returnWorkerToPool(T):he==="objectTransfer"?ke.receiveObjectTransfer(z.data):z.data.target==="setimmediate"?T.postMessage(z.data):j("worker sent an unknown command "+he);ke.currentProxiedOperationCallerThread=void 0},T.onerror=function(z){j("pthread sent an error! "+z.filename+":"+z.lineno+": "+z.message)},v&&(T.on("message",function(z){T.onmessage({data:z})}),T.on("error",function(z){T.onerror(z)}),T.on("exit",function(z){})),T.postMessage({cmd:"load",urlOrBlob:c.mainScriptUrlOrBlob||a,wasmMemory:ee,wasmModule:de})},allocateUnusedWorker:function(){var T=A("tfjs-backend-wasm-threaded-simd.worker.js");ke.unusedWorkers.push(new Worker(T))},getNewWorker:function(){return ke.unusedWorkers.length==0&&(ke.allocateUnusedWorker(),ke.loadWasmModuleToWorker(ke.unusedWorkers[0])),ke.unusedWorkers.length>0?ke.unusedWorkers.pop():null},busySpinWait:function(T){for(var C=performance.now()+T;performance.now()>2]=T,T}function tg(T,C){if(w)return zr(1,1,T,C)}function ng(T,C){if(T==C)postMessage({cmd:"processQueuedMainThreadWork"});else if(w)postMessage({targetThread:T,cmd:"processThreadQueue"});else{var z=ke.pthreads[T],q=z&&z.worker;if(!q)return;q.postMessage({cmd:"processThreadQueue"})}return 1}function ag(){hr()}function rg(T,C,z){var q=ug(C,z);return sd[T].apply(null,q)}function sg(T,C){}function ig(T,C,z){if(T<=0||T>s().length||T&!0)return-28;if(b){if(Atomics.load(o(),T>>2)!=C)return-6;for(var q=performance.now(),he=q+z,le=Atomics.exchange(o(),_o>>2,T);;){if(q=performance.now(),q>he)return le=Atomics.exchange(o(),_o>>2,0),-73;if(le=Atomics.exchange(o(),_o>>2,0),le==0)break;if(Kg(),Atomics.load(o(),T>>2)!=C)return-6;le=Atomics.exchange(o(),_o>>2,T)}return 0}else{var pe=Atomics.wait(o(),T>>2,C,z);if(pe==="timed-out")return-73;if(pe==="not-equal")return-6;if(pe==="ok")return 0;throw"Atomics.wait returned an unexpected value "+pe}}function og(T,C,z){i().copyWithin(T,C,C+z)}function lg(){return v?require("os").cpus().length:navigator.hardwareConcurrency}function zr(T,C){for(var z=arguments.length-2,q=Ku(),he=z,le=Fo(he*8),pe=le>>3,be=0;be>=2;z=i()[T++];){var q=z<105;q&&C&1&&C++,Uu.push(q?u()[C++>>1]:o()[C]),++C}return Uu}function cg(T,C,z){Vu.length=C;for(var q=z>>3,he=0;he>>16),nn(ee.buffer),1}catch(C){}}function hg(T){var C=pg();if(T<=C)return!1;var z=2147483648;if(T>z)return!1;for(var q=1;q<=4;q*=2){var he=C*(1+.2/q);he=Math.min(he,T+100663296);var le=Math.min(z,gt(Math.max(T,he),65536)),pe=dg(le);if(pe)return!0}return!1}var Pe={inEventHandler:0,removeAllEventListeners:function(){for(var T=Pe.eventHandlers.length-1;T>=0;--T)Pe._removeHandler(T);Pe.eventHandlers=[],Pe.deferredCalls=[]},registerRemoveEventListeners:function(){Pe.removeEventListenersRegistered||(Or.push(Pe.removeAllEventListeners),Pe.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(T,C,z){function q(pe,be){if(pe.length!=be.length)return!1;for(var st in pe)if(pe[st]!=be[st])return!1;return!0}for(var he in Pe.deferredCalls){var le=Pe.deferredCalls[he];if(le.targetFunction==T&&q(le.argsList,z))return}Pe.deferredCalls.push({targetFunction:T,precedence:C,argsList:z}),Pe.deferredCalls.sort(function(pe,be){return pe.precedence>2]=z,o()[pe+4>>2]=q,o()[pe+8>>2]=he,Yg(0,T,637534208,C,q,pe),Ao(le)},getTargetThreadForEventCallback:function(T){switch(T){case 1:return 0;case 2:return ke.currentProxiedOperationCallerThread;default:return T}},getNodeNameForTarget:function(T){return T?T==window?"#window":T==screen?"#screen":T&&T.nodeName?T.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function mg(T){var C=lt(T)+1,z=As(C);return rt(T,z,C),z}function fg(T,C,z,q){var he=Ku(),le=Fo(12),pe=0;C&&(pe=mg(C)),o()[le>>2]=pe,o()[le+4>>2]=z,o()[le+8>>2]=q,Yg(0,T,657457152,0,pe,le),Ao(he)}function gg(T,C,z,q){C=C?_e(C):"",fg(T,C,z,q)}function yg(T){return T>2?_e(T):T}var bg=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function xg(T){T=yg(T);var C=bg[T]||(typeof document!="undefined"?document.querySelector(T):void 0);return C}function Gu(T){return xg(T)}function id(T,C,z){var q=Gu(T);if(!q)return-4;if(q.canvasSharedPtr&&(o()[q.canvasSharedPtr>>2]=C,o()[q.canvasSharedPtr+4>>2]=z),q.offscreenCanvas||!q.controlTransferredOffscreen){q.offscreenCanvas&&(q=q.offscreenCanvas);var he=!1;if(q.GLctxObject&&q.GLctxObject.GLctx){var le=q.GLctxObject.GLctx.getParameter(2978);he=le[0]===0&&le[1]===0&&le[2]===q.width&&le[3]===q.height}q.width=C,q.height=z,he&&q.GLctxObject.GLctx.viewport(0,0,C,z)}else if(q.canvasSharedPtr){var pe=o()[q.canvasSharedPtr+8>>2];return gg(pe,T,C,z),1}else return-4;return 0}function od(T,C,z){return w?zr(2,1,T,C,z):id(T,C,z)}function vg(T,C,z){var q=Gu(T);return q?id(T,C,z):od(T,C,z)}function wg(T){}function kg(T,C){}function Ig(T){var C=T.getExtension("ANGLE_instanced_arrays");if(C)return T.vertexAttribDivisor=function(z,q){C.vertexAttribDivisorANGLE(z,q)},T.drawArraysInstanced=function(z,q,he,le){C.drawArraysInstancedANGLE(z,q,he,le)},T.drawElementsInstanced=function(z,q,he,le,pe){C.drawElementsInstancedANGLE(z,q,he,le,pe)},1}function Ng(T){var C=T.getExtension("OES_vertex_array_object");if(C)return T.createVertexArray=function(){return C.createVertexArrayOES()},T.deleteVertexArray=function(z){C.deleteVertexArrayOES(z)},T.bindVertexArray=function(z){C.bindVertexArrayOES(z)},T.isVertexArray=function(z){return C.isVertexArrayOES(z)},1}function Tg(T){var C=T.getExtension("WEBGL_draw_buffers");if(C)return T.drawBuffers=function(z,q){C.drawBuffersWEBGL(z,q)},1}function Sg(T){return!!(T.multiDrawWebgl=T.getExtension("WEBGL_multi_draw"))}var et={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,recordError:function(T){et.lastError||(et.lastError=T)},getNewId:function(T){for(var C=et.counter++,z=T.length;z>2]:-1;he+=_e(o()[z+le*4>>2],pe<0?void 0:pe)}return he},createContext:function(T,C){var z=T.getContext("webgl",C);if(!z)return 0;var q=et.registerContext(z,C);return q},registerContext:function(T,C){var z=As(8);o()[z+4>>2]=Co();var q={handle:z,attributes:C,version:C.majorVersion,GLctx:T};return T.canvas&&(T.canvas.GLctxObject=q),et.contexts[z]=q,(typeof C.enableExtensionsByDefault=="undefined"||C.enableExtensionsByDefault)&&et.initExtensions(q),z},makeContextCurrent:function(T){return et.currentContext=et.contexts[T],c.ctx=Wr=et.currentContext&&et.currentContext.GLctx,!(T&&!Wr)},getContext:function(T){return et.contexts[T]},deleteContext:function(T){et.currentContext===et.contexts[T]&&(et.currentContext=null),typeof Pe=="object"&&Pe.removeAllHandlersOnTarget(et.contexts[T].GLctx.canvas),et.contexts[T]&&et.contexts[T].GLctx.canvas&&(et.contexts[T].GLctx.canvas.GLctxObject=void 0),Xu(et.contexts[T].handle),et.contexts[T]=null},initExtensions:function(T){if(T||(T=et.currentContext),!T.initExtensionsDone){T.initExtensionsDone=!0;var C=T.GLctx;Ig(C),Ng(C),Tg(C),C.disjointTimerQueryExt=C.getExtension("EXT_disjoint_timer_query"),Sg(C);var z=C.getSupportedExtensions()||[];z.forEach(function(q){q.indexOf("lose_context")<0&&q.indexOf("debug")<0&&C.getExtension(q)})}},populateUniformTable:function(T){for(var C=et.programs[T],z=et.programInfos[T]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1},q=z.uniforms,he=Wr.getProgramParameter(C,35718),le=0;le>2,q=o()[z+(24>>2)],he={alpha:!!o()[z+(0>>2)],depth:!!o()[z+(4>>2)],stencil:!!o()[z+(8>>2)],antialias:!!o()[z+(12>>2)],premultipliedAlpha:!!o()[z+(16>>2)],preserveDrawingBuffer:!!o()[z+(20>>2)],powerPreference:Cg[q],failIfMajorPerformanceCaveat:!!o()[z+(28>>2)],majorVersion:o()[z+(32>>2)],minorVersion:o()[z+(36>>2)],enableExtensionsByDefault:o()[z+(40>>2)],explicitSwapControl:o()[z+(44>>2)],proxyContextToMainThread:o()[z+(48>>2)],renderViaOffscreenBackBuffer:o()[z+(52>>2)]},le=Gu(T);if(!le||he.explicitSwapControl)return 0;var pe=et.createContext(le,he);return pe}function Fg(T,C){return Ag(T,C)}var To={mappings:{},buffers:[null,[],[]],printChar:function(T,C){var z=To.buffers[T];C===0||C===10?((T===1?X:j)(Me(z,0)),z.length=0):z.push(C)},varargs:void 0,get:function(){To.varargs+=4;var T=o()[To.varargs-4>>2];return T},getStr:function(T){var C=_e(T);return C},get64:function(T,C){return T}};function ld(T){return w?zr(3,1,T):0}function ud(T,C,z,q,he){if(w)return zr(4,1,T,C,z,q,he)}function cd(T,C,z,q){if(w)return zr(5,1,T,C,z,q);for(var he=0,le=0;le>2],be=o()[C+(le*8+4)>>2],st=0;st>2]=he,0}function _g(T){var C=ke.threadExitHandlers.pop();T&&C()}function Eg(T,C){ke.threadExitHandlers.push(function(){oa.get(T)(C)})}function pd(T){if(w)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var C=ke.getNewWorker();if(C.pthread!==void 0)throw"Internal error!";if(!T.pthread_ptr)throw"Internal error, no pthread ptr!";ke.runningWorkers.push(C);for(var z=As(128*4),q=0;q<128;++q)o()[z+q*4>>2]=0;var he=T.stackBase+T.stackSize,le=ke.pthreads[T.pthread_ptr]={worker:C,stackBase:T.stackBase,stackSize:T.stackSize,allocatedOwnStack:T.allocatedOwnStack,threadInfoStruct:T.pthread_ptr},pe=le.threadInfoStruct>>2;Atomics.store(l(),pe+(64>>2),T.detached),Atomics.store(l(),pe+(100>>2),z),Atomics.store(l(),pe+(40>>2),le.threadInfoStruct),Atomics.store(l(),pe+(80>>2),T.stackSize),Atomics.store(l(),pe+(76>>2),he),Atomics.store(l(),pe+(104>>2),T.stackSize),Atomics.store(l(),pe+(104+8>>2),he),Atomics.store(l(),pe+(104+12>>2),T.detached);var be=jw(),st=be+40;Atomics.store(l(),pe+(172>>2),st),C.pthread=le;var Gt={cmd:"run",start_routine:T.startRoutine,arg:T.arg,threadInfoStruct:T.pthread_ptr,stackBase:T.stackBase,stackSize:T.stackSize};C.runPthread=function(){Gt.time=performance.now(),C.postMessage(Gt,T.transferList)},C.loaded&&(C.runPthread(),delete C.runPthread)}function $g(T,C,z,q){if(typeof SharedArrayBuffer=="undefined")return j("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;if(!T)return j("pthread_create called with a null thread pointer!"),28;var he=[],le=0;if(w&&(he.length===0||le))return Yw(687865856,T,C,z,q);if(le)return le;var pe=0,be=0,st=0;C&&C!=-1?(pe=o()[C>>2],pe+=81920,be=o()[C+8>>2],st=o()[C+12>>2]!==0):pe=2097152;var Gt=be==0;Gt?be=Zw(16,pe):(be-=pe,fe(be>0));for(var Pt=As(228),Vr=0;Vr<228>>2;++Vr)l()[(Pt>>2)+Vr]=0;o()[T>>2]=Pt,o()[Pt+12>>2]=Pt;var Eo=Pt+152;o()[Eo>>2]=Eo;var Tn={stackBase:be,stackSize:pe,allocatedOwnStack:Gt,detached:st,startRoutine:z,pthread_ptr:Pt,arg:q,transferList:he};return w?(Tn.cmd="spawnThread",postMessage(Tn,he)):pd(Tn),0}function dd(T){if(w)return zr(6,1,T);switch(T){case 30:return 16384;case 85:var C=2147483648;return C/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return eg(28),-1}w||ke.initMainThreadBlock();var Wr,Dg=[null,tg,od,ld,ud,cd,dd],Mg={e:Qf,r:Zf,x:ng,b:ag,y:rg,j:sg,c:ig,d:No,f:Cs,p:og,z:lg,u:cg,q:hg,v:vg,i:wg,t:kg,w:Fg,m:ld,n:ud,g:cd,o:Hf,a:ee||c.wasmMemory,k:_g,l:Eg,h:$g,s:dd},Gw=Gf(),hd=c.___wasm_call_ctors=function(){return(hd=c.___wasm_call_ctors=c.asm.A).apply(null,arguments)},Rg=c._init=function(){return(Rg=c._init=c.asm.B).apply(null,arguments)},Pg=c._register_tensor=function(){return(Pg=c._register_tensor=c.asm.C).apply(null,arguments)},Og=c._dispose_data=function(){return(Og=c._dispose_data=c.asm.D).apply(null,arguments)},Lg=c._dispose=function(){return(Lg=c._dispose=c.asm.E).apply(null,arguments)},zg=c._Abs=function(){return(zg=c._Abs=c.asm.G).apply(null,arguments)},Wg=c._Add=function(){return(Wg=c._Add=c.asm.H).apply(null,arguments)},Bg=c._AddN=function(){return(Bg=c._AddN=c.asm.I).apply(null,arguments)},Vg=c._ArgMax=function(){return(Vg=c._ArgMax=c.asm.J).apply(null,arguments)},Ug=c._AvgPool=function(){return(Ug=c._AvgPool=c.asm.K).apply(null,arguments)},Gg=c._BatchMatMul=function(){return(Gg=c._BatchMatMul=c.asm.L).apply(null,arguments)},Hg=c._Ceil=function(){return(Hg=c._Ceil=c.asm.M).apply(null,arguments)},jg=c._ClipByValue=function(){return(jg=c._ClipByValue=c.asm.N).apply(null,arguments)},qg=c._Conv2D=function(){return(qg=c._Conv2D=c.asm.O).apply(null,arguments)},md=c._Conv2DBackpropInput=function(){return(md=c._Conv2DBackpropInput=c.asm.P).apply(null,arguments)},fd=c._Cos=function(){return(fd=c._Cos=c.asm.Q).apply(null,arguments)},Hu=c._CropAndResize=function(){return(Hu=c._CropAndResize=c.asm.R).apply(null,arguments)},So=c._Cumsum=function(){return(So=c._Cumsum=c.asm.S).apply(null,arguments)},Xg=c._DepthToSpace=function(){return(Xg=c._DepthToSpace=c.asm.T).apply(null,arguments)},ju=c._DepthwiseConv2dNative=function(){return(ju=c._DepthwiseConv2dNative=c.asm.U).apply(null,arguments)},K=c._Equal=function(){return(K=c._Equal=c.asm.V).apply(null,arguments)},ae=c._Exp=function(){return(ae=c._Exp=c.asm.W).apply(null,arguments)},Te=c._FlipLeftRight=function(){return(Te=c._FlipLeftRight=c.asm.X).apply(null,arguments)},Ye=c._Floor=function(){return(Ye=c._Floor=c.asm.Y).apply(null,arguments)},Ft=c._FloorDiv=function(){return(Ft=c._FloorDiv=c.asm.Z).apply(null,arguments)},bt=c._FusedBatchNorm=function(){return(bt=c._FusedBatchNorm=c.asm._).apply(null,arguments)},Ue=c._FusedConv2D=function(){return(Ue=c._FusedConv2D=c.asm.$).apply(null,arguments)},He=c._FusedDepthwiseConv2D=function(){return(He=c._FusedDepthwiseConv2D=c.asm.aa).apply(null,arguments)},an=c._Gather=function(){return(an=c._Gather=c.asm.ba).apply(null,arguments)},mr=c._GatherNd=function(){return(mr=c._GatherNd=c.asm.ca).apply(null,arguments)},fr=c._Greater=function(){return(fr=c._Greater=c.asm.da).apply(null,arguments)},gd=c._GreaterEqual=function(){return(gd=c._GreaterEqual=c.asm.ea).apply(null,arguments)},qu=c._LeakyRelu=function(){return(qu=c._LeakyRelu=c.asm.fa).apply(null,arguments)},Yn=c._Less=function(){return(Yn=c._Less=c.asm.ga).apply(null,arguments)},Br=c._LessEqual=function(){return(Br=c._LessEqual=c.asm.ha).apply(null,arguments)},yd=c._Log=function(){return(yd=c._Log=c.asm.ia).apply(null,arguments)},mA=c._LogicalAnd=function(){return(mA=c._LogicalAnd=c.asm.ja).apply(null,arguments)},fA=c._Max=function(){return(fA=c._Max=c.asm.ka).apply(null,arguments)},gA=c._MaxPool=function(){return(gA=c._MaxPool=c.asm.la).apply(null,arguments)},yA=c._Maximum=function(){return(yA=c._Maximum=c.asm.ma).apply(null,arguments)},bA=c._Mean=function(){return(bA=c._Mean=c.asm.na).apply(null,arguments)},xA=c._Min=function(){return(xA=c._Min=c.asm.oa).apply(null,arguments)},vA=c._Minimum=function(){return(vA=c._Minimum=c.asm.pa).apply(null,arguments)},wA=c._Multiply=function(){return(wA=c._Multiply=c.asm.qa).apply(null,arguments)},kA=c._Neg=function(){return(kA=c._Neg=c.asm.ra).apply(null,arguments)},IA=c._NonMaxSuppressionV3=function(){return(IA=c._NonMaxSuppressionV3=c.asm.sa).apply(null,arguments)},NA=c._NonMaxSuppressionV4=function(){return(NA=c._NonMaxSuppressionV4=c.asm.ta).apply(null,arguments)},TA=c._NonMaxSuppressionV5=function(){return(TA=c._NonMaxSuppressionV5=c.asm.ua).apply(null,arguments)},SA=c._NotEqual=function(){return(SA=c._NotEqual=c.asm.va).apply(null,arguments)},CA=c._OneHot=function(){return(CA=c._OneHot=c.asm.wa).apply(null,arguments)},AA=c._PadV2=function(){return(AA=c._PadV2=c.asm.xa).apply(null,arguments)},FA=c._Pow=function(){return(FA=c._Pow=c.asm.ya).apply(null,arguments)},_A=c._Prelu=function(){return(_A=c._Prelu=c.asm.za).apply(null,arguments)},EA=c._Prod=function(){return(EA=c._Prod=c.asm.Aa).apply(null,arguments)},$A=c._RealDiv=function(){return($A=c._RealDiv=c.asm.Ba).apply(null,arguments)},DA=c._Relu=function(){return(DA=c._Relu=c.asm.Ca).apply(null,arguments)},MA=c._Relu6=function(){return(MA=c._Relu6=c.asm.Da).apply(null,arguments)},RA=c._ResizeBilinear=function(){return(RA=c._ResizeBilinear=c.asm.Ea).apply(null,arguments)},PA=c._Reverse=function(){return(PA=c._Reverse=c.asm.Fa).apply(null,arguments)},OA=c._RotateWithOffset=function(){return(OA=c._RotateWithOffset=c.asm.Ga).apply(null,arguments)},LA=c._Round=function(){return(LA=c._Round=c.asm.Ha).apply(null,arguments)},zA=c._Rsqrt=function(){return(zA=c._Rsqrt=c.asm.Ia).apply(null,arguments)},WA=c._ScatterNd=function(){return(WA=c._ScatterNd=c.asm.Ja).apply(null,arguments)},BA=c._SelectV2=function(){return(BA=c._SelectV2=c.asm.Ka).apply(null,arguments)},VA=c._Sigmoid=function(){return(VA=c._Sigmoid=c.asm.La).apply(null,arguments)},UA=c._Sin=function(){return(UA=c._Sin=c.asm.Ma).apply(null,arguments)},GA=c._Softmax=function(){return(GA=c._Softmax=c.asm.Na).apply(null,arguments)},HA=c._Sqrt=function(){return(HA=c._Sqrt=c.asm.Oa).apply(null,arguments)},jA=c._Square=function(){return(jA=c._Square=c.asm.Pa).apply(null,arguments)},qA=c._SquaredDifference=function(){return(qA=c._SquaredDifference=c.asm.Qa).apply(null,arguments)},XA=c._Step=function(){return(XA=c._Step=c.asm.Ra).apply(null,arguments)},KA=c._StridedSlice=function(){return(KA=c._StridedSlice=c.asm.Sa).apply(null,arguments)},YA=c._Sub=function(){return(YA=c._Sub=c.asm.Ta).apply(null,arguments)},JA=c._Sum=function(){return(JA=c._Sum=c.asm.Ua).apply(null,arguments)},QA=c._Tanh=function(){return(QA=c._Tanh=c.asm.Va).apply(null,arguments)},ZA=c._Tile=function(){return(ZA=c._Tile=c.asm.Wa).apply(null,arguments)},eF=c._TopK=function(){return(eF=c._TopK=c.asm.Xa).apply(null,arguments)},tF=c._Transpose=function(){return(tF=c._Transpose=c.asm.Ya).apply(null,arguments)},nF=c.__FusedMatMul=function(){return(nF=c.__FusedMatMul=c.asm.Za).apply(null,arguments)},As=c._malloc=function(){return(As=c._malloc=c.asm._a).apply(null,arguments)},Xu=c._free=function(){return(Xu=c._free=c.asm.$a).apply(null,arguments)},Hw=c.___errno_location=function(){return(Hw=c.___errno_location=c.asm.ab).apply(null,arguments)},jw=c._emscripten_get_global_libc=function(){return(jw=c._emscripten_get_global_libc=c.asm.bb).apply(null,arguments)},Co=c._pthread_self=function(){return(Co=c._pthread_self=c.asm.cb).apply(null,arguments)},qw=c.___pthread_tsd_run_dtors=function(){return(qw=c.___pthread_tsd_run_dtors=c.asm.db).apply(null,arguments)},Kg=c._emscripten_main_thread_process_queued_calls=function(){return(Kg=c._emscripten_main_thread_process_queued_calls=c.asm.eb).apply(null,arguments)},aF=c._emscripten_current_thread_process_queued_calls=function(){return(aF=c._emscripten_current_thread_process_queued_calls=c.asm.fb).apply(null,arguments)},Xw=c._emscripten_register_main_browser_thread_id=function(){return(Xw=c._emscripten_register_main_browser_thread_id=c.asm.gb).apply(null,arguments)},Kw=c.__emscripten_do_dispatch_to_thread=function(){return(Kw=c.__emscripten_do_dispatch_to_thread=c.asm.hb).apply(null,arguments)},Yw=c._emscripten_sync_run_in_main_thread_4=function(){return(Yw=c._emscripten_sync_run_in_main_thread_4=c.asm.ib).apply(null,arguments)},Jw=c._emscripten_run_in_main_runtime_thread_js=function(){return(Jw=c._emscripten_run_in_main_runtime_thread_js=c.asm.jb).apply(null,arguments)},Yg=c.__emscripten_call_on_thread=function(){return(Yg=c.__emscripten_call_on_thread=c.asm.kb).apply(null,arguments)},rF=c._emscripten_tls_init=function(){return(rF=c._emscripten_tls_init=c.asm.lb).apply(null,arguments)},bd=c.__emscripten_thread_init=function(){return(bd=c.__emscripten_thread_init=c.asm.mb).apply(null,arguments)},Ku=c.stackSave=function(){return(Ku=c.stackSave=c.asm.nb).apply(null,arguments)},Ao=c.stackRestore=function(){return(Ao=c.stackRestore=c.asm.ob).apply(null,arguments)},Fo=c.stackAlloc=function(){return(Fo=c.stackAlloc=c.asm.pb).apply(null,arguments)},Qw=c._emscripten_stack_set_limits=function(){return(Qw=c._emscripten_stack_set_limits=c.asm.qb).apply(null,arguments)},Zw=c._memalign=function(){return(Zw=c._memalign=c.asm.rb).apply(null,arguments)},e0=c.__emscripten_allow_main_runtime_queued_calls=9880,_o=c.__emscripten_main_thread_futex=11368;c.cwrap=Ae,c.PThread=ke,c.PThread=ke,c.wasmMemory=ee,c.ExitStatus=Yu;var xd;function Yu(T){this.name="ExitStatus",this.message="Program terminated with exit("+T+")",this.status=T}Ss=function T(){xd||Jg(),xd||(Ss=T)};function Jg(T){if(T=T||f,dr>0)return;if(w){p(c),postMessage({cmd:"loaded"});return}if(Of(),dr>0)return;function C(){xd||(xd=!0,c.calledRun=!0,!oe&&(Qp(),Lf(),p(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),In()))}c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1),C()},1)):C()}c.run=Jg;function sF(T,C){if(!(C&&ie&&T===0)){if(!C&&w)throw postMessage({cmd:"exitProcess",returnCode:T}),new Yu(T);ie||(ke.terminateAllThreads(),ge=T,Zp(),c.onExit&&c.onExit(T),oe=!0),y(T,new Yu(T))}}if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();return w&&(ie=!1,ke.initWorker()),Jg(),r.ready}}();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModuleThreadedSimd=n)}),KF=tt((e,t)=>{var n=function(){var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};var s=typeof r!="undefined"?r:{},i,o;s.ready=new Promise(function(K,ae){i=K,o=ae});var l={},u;for(u in s)s.hasOwnProperty(u)&&(l[u]=s[u]);var c=[],p="./this.program",d=function(K,ae){throw ae},h=!1,m=!1,f=!1,g=!1;h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g=!h&&!f&&!m;var y="";function b(K){return s.locateFile?s.locateFile(K,y):y+K}var x,v,k,w,S,A;f?(m?y=Qu().dirname(y)+"/":y=__dirname+"/",x=function(K,ae){return S||(S=require("fs")),A||(A=Qu()),K=A.normalize(K),S.readFileSync(K,ae?null:"utf8")},k=function(K){var ae=x(K,!0);return ae.buffer||(ae=new Uint8Array(ae)),X(ae.buffer),ae},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),c=process.argv.slice(2),process.on("uncaughtException",function(K){if(!(K instanceof Xg))throw K}),process.on("unhandledRejection",Ia),d=function(K){process.exit(K)},s.inspect=function(){return"[Emscripten Module object]"}):g?(typeof read!="undefined"&&(x=function(K){return read(K)}),k=function(K){var ae;return typeof readbuffer=="function"?new Uint8Array(readbuffer(K)):(ae=read(K,"binary"),X(typeof ae=="object"),ae)},typeof scriptArgs!="undefined"?c=scriptArgs:typeof arguments!="undefined"&&(c=arguments),typeof quit=="function"&&(d=function(K){quit(K)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(h||m)&&(m?y=self.location.href:typeof document!="undefined"&&document.currentScript&&(y=document.currentScript.src),a&&(y=a),y.indexOf("blob:")!==0?y=y.substr(0,y.lastIndexOf("/")+1):y="",x=function(K){var ae=new XMLHttpRequest;return ae.open("GET",K,!1),ae.send(null),ae.responseText},m&&(k=function(K){var ae=new XMLHttpRequest;return ae.open("GET",K,!1),ae.responseType="arraybuffer",ae.send(null),new Uint8Array(ae.response)}),v=function(K,ae,Te){var Ye=new XMLHttpRequest;Ye.open("GET",K,!0),Ye.responseType="arraybuffer",Ye.onload=function(){if(Ye.status==200||Ye.status==0&&Ye.response){ae(Ye.response);return}Te()},Ye.onerror=Te,Ye.send(null)},w=function(K){document.title=K});var F=s.print||console.log.bind(console),D=s.printErr||console.warn.bind(console);for(u in l)l.hasOwnProperty(u)&&(s[u]=l[u]);l=null,s.arguments&&(c=s.arguments),s.thisProgram&&(p=s.thisProgram),s.quit&&(d=s.quit);var R;s.wasmBinary&&(R=s.wasmBinary);var L=s.noExitRuntime||!0;typeof WebAssembly!="object"&&Ia("no native wasm support detected");var W,U=!1,G;function X(K,ae){K||Ia("Assertion failed: "+ae)}function j(K){var ae=s["_"+K];return X(ae,"Cannot call unknown function "+K+", make sure it is exported"),ae}function te(K,ae,Te,Ye,Ft){var bt={string:function(Yn){var Br=0;if(Yn!=null&&Yn!==0){var yd=(Yn.length<<2)+1;Br=Hu(yd),de(Yn,Br,yd)}return Br},array:function(Yn){var Br=Hu(Yn.length);return oe(Yn,Br),Br}};function Ue(Yn){return ae==="string"?ie(Yn):ae==="boolean"?Boolean(Yn):Yn}var He=j(K),an=[],mr=0;if(Ye)for(var fr=0;fr=Ye);)++Ft;if(Ft-ae>16&&K.subarray&&se)return se.decode(K.subarray(ae,Ft));for(var bt="";ae>10,56320|mr&1023)}}return bt}function ie(K,ae){return K?ne(Ne,K,ae):""}function ee(K,ae,Te,Ye){if(!(Ye>0))return 0;for(var Ft=Te,bt=Te+Ye-1,Ue=0;Ue=55296&&He<=57343){var an=K.charCodeAt(++Ue);He=65536+((He&1023)<<10)|an&1023}if(He<=127){if(Te>=bt)break;ae[Te++]=He}else if(He<=2047){if(Te+1>=bt)break;ae[Te++]=192|He>>6,ae[Te++]=128|He&63}else if(He<=65535){if(Te+2>=bt)break;ae[Te++]=224|He>>12,ae[Te++]=128|He>>6&63,ae[Te++]=128|He&63}else{if(Te+3>=bt)break;ae[Te++]=240|He>>18,ae[Te++]=128|He>>12&63,ae[Te++]=128|He>>6&63,ae[Te++]=128|He&63}}return ae[Te]=0,Te-Ft}function de(K,ae,Te){return ee(K,Ne,ae,Te)}function oe(K,ae){we.set(K,ae)}function ge(K,ae){return K%ae>0&&(K+=ae-K%ae),K}var fe,we,Ne,Ae,Me,_e,at,rt,lt;function Ke(K){fe=K,s.HEAP8=we=new Int8Array(K),s.HEAP16=Ae=new Int16Array(K),s.HEAP32=_e=new Int32Array(K),s.HEAPU8=Ne=new Uint8Array(K),s.HEAPU16=Me=new Uint16Array(K),s.HEAPU32=at=new Uint32Array(K),s.HEAPF32=rt=new Float32Array(K),s.HEAPF64=lt=new Float64Array(K)}var gt=s.INITIAL_MEMORY||16777216,We,wn=[],Nt=[],Xn=[],tn=[],kn=!1;Nt.push({func:function(){rd()}});function Kn(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)Va(s.preRun.shift());Lr(wn)}function Mn(){kn=!0,Lr(Nt)}function pn(){Lr(Xn)}function nn(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)oa(s.postRun.shift());Lr(tn)}function Va(K){wn.unshift(K)}function oa(K){tn.unshift(K)}var la=0,Pr=null,pr=null;function Or(K){la++,s.monitorRunDependencies&&s.monitorRunDependencies(la)}function wo(K){if(la--,s.monitorRunDependencies&&s.monitorRunDependencies(la),la==0&&(Pr!==null&&(clearInterval(Pr),Pr=null),pr)){var ae=pr;pr=null,ae()}}s.preloadedImages={},s.preloadedAudios={};function Ia(K){s.onAbort&&s.onAbort(K),K+="",D(K),U=!0,G=1,K="abort("+K+"). Build with -s ASSERTIONS=1 for more info.";var ae=new WebAssembly.RuntimeError(K);throw o(ae),ae}function Jp(K,ae){return String.prototype.startsWith?K.startsWith(ae):K.indexOf(ae)===0}var Of="data:application/octet-stream;base64,";function Qp(K){return Jp(K,Of)}var Lf="file://";function Zp(K){return Jp(K,Lf)}var In="tfjs-backend-wasm.wasm";Qp(In)||(In=b(In));function ed(K){try{if(K==In&&R)return new Uint8Array(R);if(k)return k(K);throw"both async and sync fetching of the wasm failed"}catch(ae){Ia(ae)}}function zf(){if(!R&&(h||m)){if(typeof fetch=="function"&&!Zp(In))return fetch(In,{credentials:"same-origin"}).then(function(K){if(!K.ok)throw"failed to load wasm binary file at '"+In+"'";return K.arrayBuffer()}).catch(function(){return ed(In)});if(v)return new Promise(function(K,ae){v(In,function(Te){K(new Uint8Array(Te))},ae)})}return Promise.resolve().then(function(){return ed(In)})}function dr(){var K={a:Nn};function ae(Ue,He){var an=Ue.exports;s.asm=an,W=s.asm.g,Ke(W.buffer),We=s.asm.m,wo("wasm-instantiate")}Or("wasm-instantiate");function Te(Ue){ae(Ue.instance)}function Ye(Ue){return zf().then(function(He){return WebAssembly.instantiate(He,K)}).then(Ue,function(He){D("failed to asynchronously prepare wasm: "+He),Ia(He)})}function Ft(){return!R&&typeof WebAssembly.instantiateStreaming=="function"&&!Qp(In)&&!Zp(In)&&typeof fetch=="function"?fetch(In,{credentials:"same-origin"}).then(function(Ue){var He=WebAssembly.instantiateStreaming(Ue,K);return He.then(Te,function(an){return D("wasm streaming compile failed: "+an),D("falling back to ArrayBuffer instantiation"),Ye(Te)})}):Ye(Te)}if(s.instantiateWasm)try{var bt=s.instantiateWasm(K,ae);return bt}catch(Ue){return D("Module.instantiateWasm callback failed with error: "+Ue),!1}return Ft().catch(o),{}}function Lr(K){for(;K.length>0;){var ae=K.shift();if(typeof ae=="function"){ae(s);continue}var Te=ae.func;typeof Te=="number"?ae.arg===void 0?We.get(Te)():We.get(Te)(ae.arg):Te(ae.arg===void 0?null:ae.arg)}}function Ss(){Ia()}function Wf(K,ae,Te){Ne.copyWithin(K,ae,ae+Te)}function Bf(){return Ne.length}function hr(K){try{return W.grow(K-fe.byteLength+65535>>>16),Ke(W.buffer),1}catch(ae){}}function td(K){var ae=Bf(),Te=2147483648;if(K>Te)return!1;for(var Ye=1;Ye<=4;Ye*=2){var Ft=ae*(1+.2/Ye);Ft=Math.min(Ft,K+100663296);var bt=Math.min(Te,ge(Math.max(K,Ft),65536)),Ue=hr(bt);if(Ue)return!0}return!1}var ko={mappings:{},buffers:[null,[],[]],printChar:function(K,ae){var Te=ko.buffers[K];ae===0||ae===10?((K===1?F:D)(ne(Te,0)),Te.length=0):Te.push(ae)},varargs:void 0,get:function(){ko.varargs+=4;var K=_e[ko.varargs-4>>2];return K},getStr:function(K){var ae=ie(K);return ae},get64:function(K,ae){return K}};function nd(K){return 0}function Vf(K,ae,Te,Ye,Ft){}function ad(K,ae,Te,Ye){for(var Ft=0,bt=0;bt>2],He=_e[ae+(bt*8+4)>>2],an=0;an>2]=Ft,0}var Nn={a:Ss,d:Wf,e:td,f:nd,c:Vf,b:ad},Uf=dr(),rd=s.___wasm_call_ctors=function(){return(rd=s.___wasm_call_ctors=s.asm.h).apply(null,arguments)},Gf=s._init=function(){return(Gf=s._init=s.asm.i).apply(null,arguments)},sd=s._register_tensor=function(){return(sd=s._register_tensor=s.asm.j).apply(null,arguments)},Hf=s._dispose_data=function(){return(Hf=s._dispose_data=s.asm.k).apply(null,arguments)},Io=s._dispose=function(){return(Io=s._dispose=s.asm.l).apply(null,arguments)},No=s._Abs=function(){return(No=s._Abs=s.asm.n).apply(null,arguments)},jf=s._Add=function(){return(jf=s._Add=s.asm.o).apply(null,arguments)},qf=s._AddN=function(){return(qf=s._AddN=s.asm.p).apply(null,arguments)},Xf=s._ArgMax=function(){return(Xf=s._ArgMax=s.asm.q).apply(null,arguments)},ke=s._AvgPool=function(){return(ke=s._AvgPool=s.asm.r).apply(null,arguments)},Kf=s._BatchMatMul=function(){return(Kf=s._BatchMatMul=s.asm.s).apply(null,arguments)},Yf=s._Ceil=function(){return(Yf=s._Ceil=s.asm.t).apply(null,arguments)},Jf=s._ClipByValue=function(){return(Jf=s._ClipByValue=s.asm.u).apply(null,arguments)},Qf=s._Conv2D=function(){return(Qf=s._Conv2D=s.asm.v).apply(null,arguments)},Zf=s._Conv2DBackpropInput=function(){return(Zf=s._Conv2DBackpropInput=s.asm.w).apply(null,arguments)},Cs=s._Cos=function(){return(Cs=s._Cos=s.asm.x).apply(null,arguments)},eg=s._CropAndResize=function(){return(eg=s._CropAndResize=s.asm.y).apply(null,arguments)},tg=s._Cumsum=function(){return(tg=s._Cumsum=s.asm.z).apply(null,arguments)},ng=s._DepthToSpace=function(){return(ng=s._DepthToSpace=s.asm.A).apply(null,arguments)},ag=s._DepthwiseConv2dNative=function(){return(ag=s._DepthwiseConv2dNative=s.asm.B).apply(null,arguments)},rg=s._Equal=function(){return(rg=s._Equal=s.asm.C).apply(null,arguments)},sg=s._Exp=function(){return(sg=s._Exp=s.asm.D).apply(null,arguments)},ig=s._FlipLeftRight=function(){return(ig=s._FlipLeftRight=s.asm.E).apply(null,arguments)},og=s._Floor=function(){return(og=s._Floor=s.asm.F).apply(null,arguments)},lg=s._FloorDiv=function(){return(lg=s._FloorDiv=s.asm.G).apply(null,arguments)},zr=s._FusedBatchNorm=function(){return(zr=s._FusedBatchNorm=s.asm.H).apply(null,arguments)},Vu=s._FusedConv2D=function(){return(Vu=s._FusedConv2D=s.asm.I).apply(null,arguments)},Uu=s._FusedDepthwiseConv2D=function(){return(Uu=s._FusedDepthwiseConv2D=s.asm.J).apply(null,arguments)},ug=s._Gather=function(){return(ug=s._Gather=s.asm.K).apply(null,arguments)},cg=s._GatherNd=function(){return(cg=s._GatherNd=s.asm.L).apply(null,arguments)},pg=s._Greater=function(){return(pg=s._Greater=s.asm.M).apply(null,arguments)},dg=s._GreaterEqual=function(){return(dg=s._GreaterEqual=s.asm.N).apply(null,arguments)},hg=s._LeakyRelu=function(){return(hg=s._LeakyRelu=s.asm.O).apply(null,arguments)},Pe=s._Less=function(){return(Pe=s._Less=s.asm.P).apply(null,arguments)},mg=s._LessEqual=function(){return(mg=s._LessEqual=s.asm.Q).apply(null,arguments)},fg=s._Log=function(){return(fg=s._Log=s.asm.R).apply(null,arguments)},gg=s._LogicalAnd=function(){return(gg=s._LogicalAnd=s.asm.S).apply(null,arguments)},yg=s._Max=function(){return(yg=s._Max=s.asm.T).apply(null,arguments)},bg=s._MaxPool=function(){return(bg=s._MaxPool=s.asm.U).apply(null,arguments)},xg=s._Maximum=function(){return(xg=s._Maximum=s.asm.V).apply(null,arguments)},Gu=s._Mean=function(){return(Gu=s._Mean=s.asm.W).apply(null,arguments)},id=s._Min=function(){return(id=s._Min=s.asm.X).apply(null,arguments)},od=s._Minimum=function(){return(od=s._Minimum=s.asm.Y).apply(null,arguments)},vg=s._Multiply=function(){return(vg=s._Multiply=s.asm.Z).apply(null,arguments)},wg=s._Neg=function(){return(wg=s._Neg=s.asm._).apply(null,arguments)},kg=s._NonMaxSuppressionV3=function(){return(kg=s._NonMaxSuppressionV3=s.asm.$).apply(null,arguments)},Ig=s._NonMaxSuppressionV4=function(){return(Ig=s._NonMaxSuppressionV4=s.asm.aa).apply(null,arguments)},Ng=s._NonMaxSuppressionV5=function(){return(Ng=s._NonMaxSuppressionV5=s.asm.ba).apply(null,arguments)},Tg=s._NotEqual=function(){return(Tg=s._NotEqual=s.asm.ca).apply(null,arguments)},Sg=s._OneHot=function(){return(Sg=s._OneHot=s.asm.da).apply(null,arguments)},et=s._PadV2=function(){return(et=s._PadV2=s.asm.ea).apply(null,arguments)},Cg=s._Pow=function(){return(Cg=s._Pow=s.asm.fa).apply(null,arguments)},Ag=s._Prelu=function(){return(Ag=s._Prelu=s.asm.ga).apply(null,arguments)},Fg=s._Prod=function(){return(Fg=s._Prod=s.asm.ha).apply(null,arguments)},To=s._RealDiv=function(){return(To=s._RealDiv=s.asm.ia).apply(null,arguments)},ld=s._Relu=function(){return(ld=s._Relu=s.asm.ja).apply(null,arguments)},ud=s._Relu6=function(){return(ud=s._Relu6=s.asm.ka).apply(null,arguments)},cd=s._ResizeBilinear=function(){return(cd=s._ResizeBilinear=s.asm.la).apply(null,arguments)},_g=s._Reverse=function(){return(_g=s._Reverse=s.asm.ma).apply(null,arguments)},Eg=s._RotateWithOffset=function(){return(Eg=s._RotateWithOffset=s.asm.na).apply(null,arguments)},pd=s._Round=function(){return(pd=s._Round=s.asm.oa).apply(null,arguments)},$g=s._Rsqrt=function(){return($g=s._Rsqrt=s.asm.pa).apply(null,arguments)},dd=s._ScatterNd=function(){return(dd=s._ScatterNd=s.asm.qa).apply(null,arguments)},Wr=s._SelectV2=function(){return(Wr=s._SelectV2=s.asm.ra).apply(null,arguments)},Dg=s._Sigmoid=function(){return(Dg=s._Sigmoid=s.asm.sa).apply(null,arguments)},Mg=s._Sin=function(){return(Mg=s._Sin=s.asm.ta).apply(null,arguments)},Gw=s._Softmax=function(){return(Gw=s._Softmax=s.asm.ua).apply(null,arguments)},hd=s._Sqrt=function(){return(hd=s._Sqrt=s.asm.va).apply(null,arguments)},Rg=s._Square=function(){return(Rg=s._Square=s.asm.wa).apply(null,arguments)},Pg=s._SquaredDifference=function(){return(Pg=s._SquaredDifference=s.asm.xa).apply(null,arguments)},Og=s._Step=function(){return(Og=s._Step=s.asm.ya).apply(null,arguments)},Lg=s._StridedSlice=function(){return(Lg=s._StridedSlice=s.asm.za).apply(null,arguments)},zg=s._Sub=function(){return(zg=s._Sub=s.asm.Aa).apply(null,arguments)},Wg=s._Sum=function(){return(Wg=s._Sum=s.asm.Ba).apply(null,arguments)},Bg=s._Tanh=function(){return(Bg=s._Tanh=s.asm.Ca).apply(null,arguments)},Vg=s._Tile=function(){return(Vg=s._Tile=s.asm.Da).apply(null,arguments)},Ug=s._TopK=function(){return(Ug=s._TopK=s.asm.Ea).apply(null,arguments)},Gg=s._Transpose=function(){return(Gg=s._Transpose=s.asm.Fa).apply(null,arguments)},Hg=s.__FusedMatMul=function(){return(Hg=s.__FusedMatMul=s.asm.Ga).apply(null,arguments)},jg=s._malloc=function(){return(jg=s._malloc=s.asm.Ha).apply(null,arguments)},qg=s._free=function(){return(qg=s._free=s.asm.Ia).apply(null,arguments)},md=s.stackSave=function(){return(md=s.stackSave=s.asm.Ja).apply(null,arguments)},fd=s.stackRestore=function(){return(fd=s.stackRestore=s.asm.Ka).apply(null,arguments)},Hu=s.stackAlloc=function(){return(Hu=s.stackAlloc=s.asm.La).apply(null,arguments)};s.cwrap=Q;var So;function Xg(K){this.name="ExitStatus",this.message="Program terminated with exit("+K+")",this.status=K}pr=function K(){So||ju(),So||(pr=K)};function ju(K){if(K=K||c,la>0||(Kn(),la>0))return;function ae(){So||(So=!0,s.calledRun=!0,!U&&(Mn(),pn(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),nn()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),ae()},1)):ae()}if(s.run=ju,s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();return ju(),r.ready}}();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModule=n)}),YF=1e-7,JF=1e-4,kd=class{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}},Zu=class{refCount(e){return ua("refCount")}incRef(e){return ua("incRef")}timerAvailable(){return!0}time(e){return ua("time")}read(e){return ua("read")}readSync(e){return ua("readSync")}numDataIds(){return ua("numDataIds")}disposeData(e,t){return ua("disposeData")}write(e,t,n){return ua("write")}move(e,t,n,a,r){return ua("move")}memory(){return ua("memory")}floatPrecision(){return ua("floatPrecision")}epsilon(){return this.floatPrecision()===32?YF:JF}dispose(){return ua("dispose")}};function ua(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function r0(e){let t=e.length,n=0,a=0;for(;t>0;)a=Math.random()*t|0,t--,n=e[t],e[t]=e[a],e[a]=n}function QF(e,t){if(e.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${e.length}Second array length was ${t.length}`);let n=e.length,a,r,s=0;for(;n>0;)s=Math.random()*n|0,n--,a=e[n],r=t[n],e[n]=e[s],t[n]=t[s],e[s]=a,t[s]=r}function ec(e,t,n){return Math.max(e,Math.min(t,n))}function ZF(e){return e%2==0?e:e+1}function e_(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function Fs(e){$(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function _s(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||un(e)&&!n)for(let a=0;a0,n){return new Promise((a,r)=>{let s=0,i=()=>{if(e()){a();return}s++;let o=t(s);if(n!=null&&s>=n){r();return}setTimeout(i,o)};i()})}function l_(e,t){let n=1,a=-1;for(let s=0;s=0)n*=e[s];else if(e[s]===-1){if(a!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${a} and dim ${s}`);a=s}else if(e[s]<0)throw Error(`Shapes can not be < 0. Found ${e[s]} at dim ${s}`);if(a===-1){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(n===0)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%n!=0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${n}`);let r=e.slice();return r[a]=t/n,r}function ca(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),$(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),$(e.every(a=>Ht(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function s0(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:ca(t,e).sort(),i=0;for(let o=0;oo)&&e[o]===1&&(n.push(e[o]),a.push(o)),s[i]<=o&&i++}e[o]!==1&&(n.push(e[o]),a.push(o))}return{newShape:n,keptDims:a}}function i0(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return n}function o0(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else if(e==="string")n=new Array(t);else throw new Error(`Unknown data type ${e}`);return n}function l0(e,t){for(let n=0;nt+=n.length),t}function Ur(e){return typeof e=="string"||e instanceof String}function p0(e){return typeof e=="boolean"}function d0(e){return typeof e=="number"}function Id(e){return Array.isArray(e)?Id(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":d0(e)?"float32":Ur(e)?"string":p0(e)?"bool":"float32"}function Gr(e){return!!(e&&e.constructor&&e.call&&e.apply)}function Nd(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function h0(e,t,n){let a=new Array;if(t.length===1){let r=t[0];for(let s=0;so*l);for(let o=0;oa*r);if(n===0)return[];if(n!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}.`);return h0(0,e,t)}function ty(e,t){let n=Td(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return Ro(e,new Float32Array(n));if(t==="int32")return Ro(e,new Int32Array(n));if(t==="bool")return Ro(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function ny(e){e.forEach(t=>{$(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function p_(e,t,n){if(t===0)return 0;if(t===1)return e[0];let a=e[e.length-1];for(let r=0;r{let[n,a]=t.split(":");this.urlFlags[n]=m_(n,a)})}};function h_(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(f_(t,a[0],a[1]),a.join("="))),t}function f_(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function m_(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function Z(){return ry}var ry=null;function g_(e){ry=e}var sy;function g0(){if(sy==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");sy=e}return sy}function y_(){let e=g0();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function iy(e,t){let n=y_();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var Po="Abs",Oo="Acos",Lo="Acosh",Hr="Add",Es="AddN",Sd="All",Cd="Any",$s="ArgMax",nc="ArgMin",zo="Asin",Wo="Asinh",Bo="Atan",Vo="Atanh",Uo="Atan2",Ds="AvgPool",Ad="AvgPoolGrad",ac="AvgPool3D",Fd="AvgPool3DGrad",Ms="BatchMatMul",rc="BatchToSpaceND",_d="Bincount",y0="BroadcastTo",Rs="Cast",Ps="Ceil",jr="ClipByValue",Ed="Complex",sc="ComplexAbs",Go="Concat",Os="Conv2D",$d="Conv2DBackpropFilter",Ls="Conv2DBackpropInput",ic="Conv3D",Dd="Conv3DBackpropFilterV2",Md="Conv3DBackpropInputV2",zs="Cos",Ho="Cosh",Ws="Cumsum",jo="CropAndResize",Rd="DenseBincount",qo="DepthToSpace",Bs="DepthwiseConv2dNative",Pd="DepthwiseConv2dNativeBackpropFilter",Od="DepthwiseConv2dNativeBackpropInput",Ld="Diag",oc="Dilation2D",zd="Dilation2DBackpropInput",Wd="Dilation2DBackpropFilter",Vs="RealDiv",Xo="Elu",Bd="EluGrad",Ko="Erf",Yo="Equal",Us="Exp",Jo="ExpandDims",Qo="Expm1",Vd="FFT",lc="Fill",Zo="FlipLeftRight",Gs="Floor",Hs="FloorDiv",js="FusedBatchNorm",el="GatherV2",tl="GatherNd",nl="Greater",qs="GreaterEqual",Xs="Identity",Ud="IFFT",Gd="Imag",al="IsFinite",rl="IsInf",sl="IsNan",Ks="LeakyRelu",il="Less",ol="LessEqual",Hd="LinSpace",Ys="Log",ll="Log1p",ul="LogicalAnd",uc="LogicalNot",cc="LogicalOr",b0="LogSoftmax",pc="LRN",jd="LRNGrad",Js="Max",Qs="Maximum",Zs="MaxPool",qd="MaxPoolGrad",dc="MaxPool3D",Xd="MaxPool3DGrad",Kd="MaxPoolWithArgmax",ei="Mean",ti="Min",ni="Minimum",hc="MirrorPad",cl="Mod",Yd="Multinomial",ai="Multiply",pl="Neg",dl="NotEqual",hl="NonMaxSuppressionV3",ml="NonMaxSuppressionV4",fl="NonMaxSuppressionV5",gl="OnesLike",ri="OneHot",yl="Pack",si="PadV2",b_="Pool",ii="Pow",oi="Prelu",bl="Prod",mc="Range",Jd="Real",xl="Reciprocal",li="Relu",vl="Reshape",fc="ResizeNearestNeighbor",Qd="ResizeNearestNeighborGrad",ui="ResizeBilinear",Zd="ResizeBilinearGrad",ci="Relu6",pi="Reverse",di="Round",hi="Rsqrt",wl="ScatterNd",kl="Select",Il="Selu",Nl="Slice",mi="Sin",Tl="Sinh",Sl="Sign",fi="Sigmoid",Cl="Softplus",gi="Sqrt",yi="Sum",gc="SpaceToBatchND",Al="SplitV",bi="Softmax",xi="SquaredDifference",yc="Square",vi="Sub",eh="SparseToDense",Fl="StridedSlice",_l="Tan",wi="Tanh",qr="Tile",El="TopK",th="Transform",ki="Transpose",nh="Unique",$l="Unpack",bc="UnsortedSegmentSum",Dl="ZerosLike",Xr="Step",ah="FromPixels",Ml="RotateWithOffset",Ii="_FusedMatMul",Ni="FusedConv2D",Ti="FusedDepthwiseConv2D",Rl=iy("kernelRegistry",()=>new Map),xc=iy("gradRegistry",()=>new Map);function rh(e,t){let n=oy(e,t);return Rl.get(n)}function ly(e){return xc.get(e)}function sh(e){let t=Rl.entries(),n=[];for(;;){let{done:a,value:r}=t.next();if(a)break;let[s,i]=r,[o]=s.split("_");o===e&&n.push(i)}return n}function vc(e){let{kernelName:t,backendName:n}=e,a=oy(t,n);Rl.has(a)&&console.warn(`The kernel '${t}' for backend '${n}' is already registered`),Rl.set(a,e)}function x0(e){let{kernelName:t}=e;xc.has(t)&&Z().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${t}'`),xc.set(t,e)}function x_(e,t){let n=oy(e,t);if(!Rl.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Rl.delete(n)}function v_(e){if(!xc.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);xc.delete(e)}function w_(e,t){sh(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});vc(a)})}function oy(e,t){return`${t}_${e}`}var I={};Oe(I,{arraysEqual:()=>gr,assert:()=>$,assertNonNegativeIntegerDimensions:()=>ny,assertNonNull:()=>Fs,assertShapesMatch:()=>ln,bytesFromStringArray:()=>c0,bytesPerElement:()=>ey,checkConversionForErrors:()=>l0,clamp:()=>ec,computeStrides:()=>Mo,createScalarValue:()=>k_,createShuffledIndices:()=>i_,decodeString:()=>oh,distSquared:()=>n_,encodeString:()=>kc,fetch:()=>I_,flatten:()=>_s,getArrayFromDType:()=>o0,getTypedArrayFromDType:()=>i0,hasEncodingLoss:()=>u_,indexToLoc:()=>d_,inferDtype:()=>Id,inferFromImplicitShape:()=>l_,isBoolean:()=>p0,isFunction:()=>Gr,isInt:()=>Ht,isNumber:()=>d0,isPromise:()=>ay,isScalarShape:()=>a_,isString:()=>Ur,isTypedArray:()=>un,isValidDtype:()=>u0,locToIndex:()=>p_,makeOnesTypedArray:()=>ty,makeZerosNestedTypedArray:()=>c_,makeZerosTypedArray:()=>Td,nearestDivisor:()=>Nd,nearestLargerEven:()=>ZF,now:()=>wc,parseAxisParam:()=>ca,randUniform:()=>t_,repeatedTry:()=>o_,rightPad:()=>tc,shuffle:()=>r0,shuffleCombo:()=>QF,sizeFromShape:()=>Ot,sizeToSquarishShape:()=>s_,squeezeShape:()=>s0,sum:()=>e_,tanh:()=>r_,toNestedArray:()=>Ro,toTypedArray:()=>ih});function k_(e,t){return t==="string"?kc(e):ih([e],t)}function N_(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function ih(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=_s(e)),Z().getBool("DEBUG")&&l0(e,t),N_(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){let n=new Uint8Array(e.length);for(let a=0;a{a=n()},s,i=wc();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:wc()-i})}if(Z().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{T_(u,l.dtype,e)})}return{kernelName:e,outputs:a,inputs:t,timeMs:s.then(o=>o.kernelMs),extraInfo:s.then(o=>o.getExtraProfileInfo!=null?o.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:n,timeMs:a,inputs:r,extraInfo:s}=e;n.forEach(i=>{Promise.all([i.data(),a,s]).then(o=>{this.logger.logKernelProfile(t,i,o[0],o[1],r,o[2])})})}};function T_(e,t,n){if(t!=="float32")return!1;for(let a=0;a0?m:""} `}}console.log(`%c${o} %c${i} %c${l}D ${c} %c${u} %c${p} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function A_(e,t,n){let a={},r={};for(let l=0;la[f.id]=!0),h=!0,r[u.id]=!0;break}if(h)break}}let s={};s[n.id]=!0;let i={};for(let l=e.length-1;l>=0;l--){let u=e[l],c=u.inputs;for(let p=0;p=0;r--){let s=t[r],i=[];if(s.outputs.forEach(l=>{let u=e[l.id];u!=null?i.push(u):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let o=s.gradient(i);for(let l in s.inputs){if(!(l in o))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(o)}.`);let u=n(()=>o[l]());if(u.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${u.dtype}'`);let c=s.inputs[l];if(!gr(u.shape,c.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${u.shape}', which does not match the shape of the input '${c.shape}'`);if(e[c.id]==null)e[c.id]=u;else{let p=e[c.id];e[c.id]=a(p,u),p.dispose()}}}}var v0=20,Ic=3,uy=7;function E_(e,t,n,a){let r=Mo(t),s=__(e,t,n,r),i=t.length,o=lh(e,t,n,r,s),l=["Tensor"];return a&&(l.push(` dtype: ${n}`),l.push(` rank: ${i}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(o.map(u=>" "+u).join(` `)),l.join(` -`)}function cF(e,t,n,a){let r=Pt(t),s=a[a.length-1],i=new Array(s).fill(0),o=t.length,l=n==="complex64"?Nc(e):e;if(o>1)for(let c=0;cy0){let g=Ic*i,y=Array.from(e.slice(0,g)),b=Array.from(e.slice((o-Ic)*i,o*i));return n==="complex64"&&(y=Nc(y),b=Nc(b)),["["+y.map((x,v)=>Tc(x,r[v],n)).join(", ")+", ..., "+b.map((x,v)=>Tc(x,r[o-Ic+v],n)).join(", ")+"]"]}let f=n==="complex64"?Nc(e):Array.from(e);return["["+f.map((g,y)=>Tc(g,r[y],n)).join(", ")+"]"]}let c=t.slice(1),u=a.slice(1),p=a[0]*i,d=[];if(o>y0){for(let f=0;f1)for(let u=0;uv0){let g=Ic*i,y=Array.from(e.slice(0,g)),b=Array.from(e.slice((o-Ic)*i,o*i));return n==="complex64"&&(y=Tc(y),b=Tc(b)),["["+y.map((x,v)=>Nc(x,r[v],n)).join(", ")+", ..., "+b.map((x,v)=>Nc(x,r[o-Ic+v],n)).join(", ")+"]"]}let f=n==="complex64"?Tc(e):Array.from(e);return["["+f.map((g,y)=>Nc(g,r[y],n)).join(", ")+"]"]}let u=t.slice(1),c=a.slice(1),p=a[0]*i,d=[];if(o>v0){for(let f=0;f`Length of values '${a}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||r0(t,this.size),this.strides=Ro(e)}set(e,...t){t.length===0&&(t=[0]),F(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${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=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(r)}t++}let n=e[e.length-1];for(let a=0;aih(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}dataSync(){this.throwIfDisposed();let e=Va().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>ih(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 Va().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Va().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Pl.print(this,e)}clone(){return this.throwIfDisposed(),Pl.clone(this)}toString(e=!1){let t=this.dataSync();return pF(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Pl.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Va().makeVariable(this,e,t,n)}};Object.defineProperty(Ee,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Y(){return iy("Tensor",()=>Ee)}Y();var Xr=class extends Ee{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(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!gr(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Va().disposeTensor(this),this.dataId=e.dataId,Va().incRef(this,null)}dispose(){Va().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Xr,Symbol.hasInstance,{value:e=>e instanceof Ee&&e.assign!=null&&e.assign instanceof Function});var Ta={};Oe(Ta,{assertTypesMatch:()=>x0,getTensorsInContainer:()=>cy,isTensorInList:()=>gF,makeTypesMatch:()=>Tt});var py;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(py||(py={}));var dy;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(dy||(dy={}));var hy;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(hy||(hy={}));var my;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(my||(my={}));var fy;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(fy||(fy={}));var yF={float32:my,int32:dy,bool:hy,complex64:fy};function pa(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return yF[e][t]}function lh(e){return pa(e,"int32")}function Tt(e,t){if(e.dtype===t.dtype)return[e,t];let n=pa(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function x0(e,t){F(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function gF(e,t){return t.some(n=>n.id===e.id)}function cy(e){let t=[],n=new Set;return v0(e,t,n),t}function v0(e,t,n){if(e==null)return;if(e instanceof Ee){t.push(e);return}if(!bF(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),v0(s,t,n))}}function bF(e){return Array.isArray(e)||typeof e=="object"}function gy(e){return e.kernelName!=null}var w0=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},Sc=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new w0}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){rh(e).forEach(t=>{t.disposeFunc!=null&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let n=t.factory();if(n&&!(n instanceof Zu)&&typeof n.then=="function"){let a=++this.pendingBackendInitId,r=n.then(s=>a(athis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(n),()=>this.endScope(a),()=>(a=t(),a instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),a))}scopedRun(e,t,n){e();try{let a=n();return t(),a}catch(a){throw t(),a}}nextTensorId(){return Sc.nextTensorId++}nextVariableId(){return Sc.nextVariableId++}clone(e){let t=M.runKernel(Ks,{x:e}),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return M.runKernel(Ms,o,l)}}),r=[];return this.addTapeNode(this.state.activeScope.name,n,[t],a,r,{}),t}runKernel(e,t,n){if(ah(e,this.backendName)==null)throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,n){let a=this.backend.numDataIds(),r=0;n.forEach(o=>{r+=o.dtype==="complex64"?3:1});let s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=a-t-r-s;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e){let t,n=[],a=this.isTapeOn(),r=this.state.numBytes,s=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let o,l=gy(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(gy(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=ah(h,this.backendName);F(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let y=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let b=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,y,b);let x=b.map(v=>{if(v.rank!=null)return v;let{dataId:N,shape:T,dtype:S}=v;return this.makeTensorFromDataId(N,T,S)});if(a){let v=this.getTensorsForGradient(h,m,x);n=this.saveTensorsForBackwardMode(v)}return x}}else{let{forwardFunc:h}=e,m=f=>{!a||(n=f.map(g=>this.keep(this.clone(g))))};i=()=>{let f=this.backend.numDataIds();o=this.tidy(()=>h(this.backend,m));let g=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,f,g),g}}let{inputs:c,attrs:u}=e,p=gy(e)?null:e.backwardsFunc,d;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(d=this.profiler.profileKernel(l,c,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(d),t=d.outputs)}),a&&this.addTapeNode(l,c,t,p,n,u),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(h=>c[h]!=null?c[h].shape:null),outputShapes:t.map(h=>h.shape),kernelTimeMs:d.timeMs,extraInfo:d.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(t=>this.keep(this.clone(t)))}getTensorsForGradient(e,t,n){let a=ly(e);if(a!=null){let r=a.inputsToSave||[],s=a.outputsToSave||[],i;a.saveAllInputs?(F(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(l=>t[l])):i=r.map(l=>t[l]);let o=n.filter((l,c)=>s[c]);return i.concat(o)}return[]}makeTensor(e,t,n,a){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",a=a||this.backend;let r=e;n==="string"&&Ur(e[0])&&(r=e.map(o=>kc(o)));let s=a.write(r,t,n),i=new Ee(t,n,s,this.nextTensorId());if(this.trackTensor(i,a),n==="string"){let o=this.state.tensorInfo.get(s),l=o0(r);this.state.numBytes+=l-o.bytes,o.bytes=l}return i}makeTensorFromDataId(e,t,n,a){n=n||"float32";let r=new Ee(t,n,e,this.nextTensorId());return this.trackTensor(r,a),r}makeVariable(e,t=!0,n,a){n=n||this.nextVariableId().toString(),a!=null&&a!==e.dtype&&(e=e.cast(a));let r=new Xr(e,t,n,this.nextTensorId());if(this.state.registeredVariables[r.name]!=null)throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}trackTensor(e,t){this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++;let n=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(n=e.size*ey(e.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n})),e instanceof Xr||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,e.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),e.dtype!=="complex64"&&e.dtype!=="string"){let n=e.size*ey(e.dtype);this.state.numBytes-=n}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(a=>a.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let a of this.state.activeProfile.kernels)a.kernelTimeMs=await a.kernelTimeMs,a.extraInfo=await a.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,n,a,r,s){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:r},o=ly(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((c,u)=>{if(c==null){let p=n[u],d=Nd(p.size,p.dtype);return this.makeTensor(d,p.shape,p.dtype)}return c}),a(l.length>1?l:l[0],r,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=cy(e),n=new Set(t.map(r=>r.id));for(let r=0;r{!r.kept&&r.scopeId===a.id&&this.track(r)})}gradients(e,t,n,a=!1){if(F(t.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let r=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));F(r instanceof Ee,()=>"The result y returned by f() must be a tensor.");let s=lF(this.state.activeTape,t,r);if(!a&&s.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let i={};i[r.id]=n==null?xF(r.shape):n,uF(i,s,l=>this.tidy(l),vF);let o=t.map(l=>i[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let c of l.saved)c.dispose()}),this.state.activeTape=null),{value:r,grads:o}})}customGrad(e){return F(Gr(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{F(t.every(i=>i instanceof Ee),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,a={};t.forEach((i,o)=>{a[o]=i});let r=(i,o)=>(n=e(...t,o),F(n.value instanceof Ee,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),F(Gr(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),s=(i,o)=>{let l=n.gradFunc(i,o),c=Array.isArray(l)?l:[l];F(c.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),F(c.every(p=>p instanceof Ee),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let u={};return c.forEach((p,d)=>{u[d]=()=>p}),u};return this.runKernelFunc({forwardFunc:r,backwardsFunc:s,inputs:a})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}async time(e){let t=wc(),n=await this.backend.time(e);return n.wallMs=wc()-t,n}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new w0;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Sc.nextTensorId=0;Sc.nextVariableId=0;function xF(e){let t=ty(Pt(e),"float32");return M.makeTensor(t,e,"float32")}function k0(){let e=h0();if(e._tfengine==null){let t=new d0(e);e._tfengine=new Sc(t)}return YE(e._tfengine.ENV),hF(()=>e._tfengine),e._tfengine}var M=k0();function vF(e,t){let n={a:e,b:t};return M.runKernel(Hr,n)}var uh={};Oe(uh,{isBrowser:()=>I0,isMobile:()=>wF});function kF(){return typeof navigator!="undefined"&&navigator!=null}function wF(){if(kF()){let e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))}return!1}function I0(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Ua=ee();Ua.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});Ua.registerFlag("IS_BROWSER",()=>I0());Ua.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Ua.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Ua.registerFlag("PROD",()=>!1);Ua.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Ua.getBool("DEBUG"));Ua.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Ua.registerFlag("IS_TEST",()=>!1);Ua.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);function Ga(e,t){let n=e;if(ln(e))return t==="string"?[]:[e.length];if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||ln(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&ee().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&T0(e,a,[]),a}function T0(e,t,n){if(n=n||[],!Array.isArray(e)&&!ln(e)){F(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}F(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),F(e.length===t[0],()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);let a=t.slice(1);for(let r=0;r=0&&(r=a),N0(a,r,t,n),e==null||!ln(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){let o=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${o}'`)}let s=Ga(e,r);!ln(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?sh(e,r):Fs(e,[],!0);return M.makeTensor(i,s,r)}function Cc(e,t,n,a="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((r,s)=>E(r,`${t}[${s}]`,n,a))}var S0="__op";function P(e){let t=Object.keys(e);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let n=t[0],a=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n=n+S0;let r=(...s)=>{M.startScope(n);try{let i=a(...s);return ay(i)&&console.error("Cannot return a Promise inside of tidy."),M.endScope(i),i}catch(i){throw M.endScope(null),i}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}function IF(e,t){let n=E(e,"real","complex"),a=E(t,"imag","complex");on(n.shape,a.shape,`real and imag shapes, ${n.shape} and ${a.shape}, must match in call to tf.complex().`);let r={real:n,imag:a};return M.runKernel(Ad,r)}var Yr=P({complex_:IF});function Jr(e,t,n,a){if(a==null&&(a=Id(e)),a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!ln(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(t!=null){ny(t);let r=Pt(t),s=Pt(n);F(r===s,()=>`Based on the provided shape, [${t}], the tensor should have ${r} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `)}}return!ln(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?sh(e,a):Fs(e,[],!0),M.makeTensor(e,t,a)}function Jn(e,t,n){let a=Ga(e,n);return Jr(e,t,a,n)}var yy={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},ch=4;async function NF(e,t){let n=[],a=[],r=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let d=await l.bytes(),h=d.reduce((g,y)=>g+y.length,0)+ch*d.length,m=new Uint8Array(h),f=0;for(let g=0;g{if(t+=s.byteLength,n.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let a=new Uint8Array(t),r=0;return n.forEach(s=>{a.set(new Uint8Array(s.buffer),r),r+=s.byteLength}),a.buffer}var by=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function _0(e){return by?Buffer.byteLength(e):new Blob([e]).size}function CF(e){if(by)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{t+=r.byteLength});let n=new Uint8Array(t),a=0;return e.forEach(r=>{n.set(new Uint8Array(r),a),a+=r.byteLength}),n.buffer}function E0(e){let t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);let n=e.split(t);return n[n.length-1]}function _c(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:_0(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:_0(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function EF(){let e=n=>{let a=n<<13,r=0;for(;(a&8388608)==0;)r-=8388608,a<<=1;return a&=~8388608,r+=947912704,a|r},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let n=1024;n<2048;n++)t[n]=939524096+(n-1024<<13);return t}function FF(){let e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}function AF(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function SF(){let e=EF(),t=FF(),n=AF();return a=>{let r=new ArrayBuffer(4*a.length),s=new Uint32Array(r);for(let i=0;i>10]+(o&1023)]+t[o>>10];s[i]=l}return new Float32Array(r)}}var Et=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Et.instance==null&&(Et.instance=new Et),Et.instance}static registerSaveRouter(e){Et.getInstance().saveRouters.push(e)}static registerLoadRouter(e){Et.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return Et.getHandlers(e,"save")}static getLoadHandlers(e,t){return Et.getHandlers(e,"load",t)}static getHandlers(e,t,n){let a=[];return(t==="load"?Et.getInstance().loadRouters:Et.getInstance().saveRouters).forEach(r=>{let s=r(e,n);s!==null&&a.push(s)}),a}},$F=e=>Et.registerSaveRouter(e),DF=e=>Et.registerLoadRouter(e),RF=e=>Et.getSaveHandlers(e),MF=(e,t)=>Et.getLoadHandlers(e,t),vy="tensorflowjs",wy=1,Si="models_store",Qr="model_info_store";function F0(){if(!ee().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e=typeof window=="undefined"?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function ky(e){let t=e.result;t.createObjectStore(Si,{keyPath:"modelPath"}),t.createObjectStore(Qr,{keyPath:"modelPath"})}var Ci=class{constructor(e){if(this.indexedDB=F0(),e==null||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((n,a)=>{let r=this.indexedDB.open(vy,wy);r.onupgradeneeded=()=>ky(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(Si,"readonly"),o=i.objectStore(Si).get(this.modelPath);o.onsuccess=()=>{if(o.result==null)return s.close(),a(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(o.result.modelArtifacts)},o.onerror=l=>(s.close(),a(o.error)),i.oncomplete=()=>s.close()}else{let i=_c(t),o=s.transaction(Qr,"readwrite"),l=o.objectStore(Qr),c=l.put({modelPath:this.modelPath,modelArtifactsInfo:i}),u;c.onsuccess=()=>{u=s.transaction(Si,"readwrite");let p=u.objectStore(Si).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});p.onsuccess=()=>n({modelArtifactsInfo:i}),p.onerror=d=>{l=o.objectStore(Qr);let h=l.delete(this.modelPath);h.onsuccess=()=>(s.close(),a(p.error)),h.onerror=m=>(s.close(),a(p.error))}},c.onerror=p=>(s.close(),a(c.error)),o.oncomplete=()=>{u==null?s.close():u.oncomplete=()=>s.close()}}},r.onerror=s=>a(r.error)})}};Ci.URL_SCHEME="indexeddb://";var A0=e=>ee().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Ci.URL_SCHEME)?PF(e.slice(Ci.URL_SCHEME.length)):null;Et.registerSaveRouter(A0);Et.registerLoadRouter(A0);function PF(e){return new Ci(e)}function OF(e){return e.startsWith(Ci.URL_SCHEME)?e.slice(Ci.URL_SCHEME.length):e}var LF=class{constructor(){this.indexedDB=F0()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(vy,wy);n.onupgradeneeded=()=>ky(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(Qr,"readonly"),s=r.objectStore(Qr).getAll();s.onsuccess=()=>{let i={};for(let o of s.result)i[o.modelPath]=o.modelArtifactsInfo;e(i)},s.onerror=i=>(a.close(),t(s.error)),r.oncomplete=()=>a.close()},n.onerror=a=>t(n.error)})}async removeModel(e){return e=OF(e),new Promise((t,n)=>{let a=this.indexedDB.open(vy,wy);a.onupgradeneeded=()=>ky(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(Qr,"readwrite"),i=s.objectStore(Qr),o=i.get(e),l;o.onsuccess=()=>{if(o.result==null)return r.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let c=i.delete(e),u=()=>{l=r.transaction(Si,"readwrite");let p=l.objectStore(Si).delete(e);p.onsuccess=()=>t(o.result.modelArtifactsInfo),p.onerror=d=>n(o.error)};c.onsuccess=u,c.onerror=p=>(u(),r.close(),n(o.error))}},o.onerror=c=>(r.close(),n(o.error)),s.oncomplete=()=>{l==null?r.close():l.oncomplete=()=>r.close()}},a.onerror=r=>n(a.error)})}},yr="/",Ol="tensorflowjs_models",$0="info",zF="model_topology",BF="weight_specs",WF="weight_data",VF="model_metadata";function D0(e){return{info:[Ol,e,$0].join(yr),topology:[Ol,e,zF].join(yr),weightSpecs:[Ol,e,BF].join(yr),weightData:[Ol,e,WF].join(yr),modelMetadata:[Ol,e,VF].join(yr)}}function UF(e){let t=e.split(yr);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(yr)}function GF(e){return e.startsWith(_i.URL_SCHEME)?e.slice(_i.URL_SCHEME.length):e}var _i=class{constructor(e){if(!ee().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=D0(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),a=_c(e);try{this.LS.setItem(this.keys.info,JSON.stringify(a)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,CF(e.weightData));let r={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};return e.signature!=null&&(r.signature=e.signature),e.userDefinedMetadata!=null&&(r.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(r.modelInitializer=e.modelInitializer),this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:a}}catch(r){throw this.LS.removeItem(this.keys.info),this.LS.removeItem(this.keys.topology),this.LS.removeItem(this.keys.weightSpecs),this.LS.removeItem(this.keys.weightData),this.LS.removeItem(this.keys.modelMetadata),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${a.modelTopologyBytes}, weightSpecsBytes=${a.weightSpecsBytes}, weightDataBytes=${a.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=n;let a=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(a==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=a;let r=this.LS.getItem(this.keys.modelMetadata);if(r!=null){let i=JSON.parse(r);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=_F(s),t}};_i.URL_SCHEME="localstorage://";var R0=e=>ee().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(_i.URL_SCHEME)?HF(e.slice(_i.URL_SCHEME.length)):null;Et.registerSaveRouter(R0);Et.registerLoadRouter(R0);function HF(e){return new _i(e)}var jF=class{constructor(){F(ee().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),F(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=Ol+yr,n=yr+$0;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(Ll)&&(e=e.slice(0,e.indexOf(Ll))),F(e.length>0,()=>"scheme must not be an empty string.");let n=Qn.getInstance();F(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=this.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}};function ph(e){if(e.indexOf(Ll)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Qn.getSchemes().join(",")}`);return{scheme:e.split(Ll)[0],path:e.split(Ll)[1]}}async function M0(e,t,n=!1){F(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=Et.getLoadHandlers(e);F(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),F(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=Et.getSaveHandlers(t);F(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),F(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=ph(e).scheme,l=ph(e).path,c=o===ph(e).scheme,u=await r.load();n&&c&&await Qn.getManager(o).removeModel(l);let p=await i.save(u);return n&&!c&&await Qn.getManager(o).removeModel(l),p.modelArtifactsInfo}async function qF(){let e=Qn.getSchemes(),t={};for(let n of e){let a=await Qn.getManager(n).listModels();for(let r in a){let s=n+Ll+r;t[s]=a[r]}}return t}async function KF(e){let t=ph(e);return Qn.getManager(t.scheme).removeModel(t.path)}async function XF(e,t){return M0(e,t,!1)}async function YF(e,t){return M0(e,t,!0)}var JF=class{fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}};if(ee().get("IS_BROWSER")){ee().setPlatform("browser",new JF);try{Qn.registerManager(_i.URL_SCHEME,new jF)}catch(e){}try{Qn.registerManager(Ci.URL_SCHEME,new LF)}catch(e){}}var QF={importFetch:()=>gE()},Iy,ZF=class{constructor(){this.util=require("util"),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return ee().global.fetch!=null?ee().global.fetch(e,t):(Iy==null&&(Iy=QF.importFetch()),Iy(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};ee().get("IS_NODE")&&ee().setPlatform("node",new ZF);function Le(e,t="float32",n){return t=t||"float32",ny(e),new Ot(e,t,n)}function eA(e,t){let n=E(e,"x","cast");if(!i0(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&n.dtype!=="string"||t!=="string"&&n.dtype==="string")throw new Error("Only strings can be casted to strings");let a={x:n},r={dtype:t};return M.runKernel(Ms,a,r)}var ue=P({cast_:eA});function tA(e){let t={x:E(e,"x","clone","string_or_numeric")};return M.runKernel(Ks,t)}var Zr=P({clone_:tA});function P0(e,t=!1){console.log(e.toString(t))}k0();var nA={buffer:Le,cast:ue,clone:Zr,print:P0};mF(nA);var Ht={};Oe(Ht,{browserFiles:()=>aA,browserHTTPRequest:()=>sA,concatenateArrayBuffers:()=>xy,copyModel:()=>XF,decodeWeights:()=>C0,encodeWeights:()=>NF,fromMemory:()=>iA,getLoadHandlers:()=>MF,getModelArtifactsInfoForJSON:()=>_c,getSaveHandlers:()=>RF,http:()=>Ny,isHTTPScheme:()=>Ty,listModels:()=>qF,loadWeights:()=>rA,moveModel:()=>YF,registerLoadRouter:()=>DF,registerSaveRouter:()=>$F,removeModel:()=>KF,weightsLoaderFactory:()=>O0,withSaveHandler:()=>oA});var lA="model",uA=".json",cA=".weights.bin";function L0(e){return new Promise(t=>setTimeout(t)).then(e)}var zl=class{constructor(e){if(!ee().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(zl.URL_SCHEME)&&(e=e.slice(zl.URL_SCHEME.length)),(e==null||e.length===0)&&(e=lA),this.modelTopologyFileName=e+uA,this.weightDataFileName=e+cA}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer);let r=window.URL.createObjectURL(new Blob([JSON.stringify(a)],{type:"application/json"})),s=this.jsonAnchor==null?document.createElement("a"):this.jsonAnchor;if(s.download=this.modelTopologyFileName,s.href=r,await L0(()=>s.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await L0(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:_c(e)}}}};zl.URL_SCHEME="downloads://";var pA=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){let e=this.files[0],t=this.files.slice(1);return new Promise((n,a)=>{let r=new FileReader;r.onload=s=>{let i=JSON.parse(s.target.result),o=i.modelTopology;if(o==null){a(new Error(`modelTopology field is missing from file ${e.name}`));return}t.length===0&&n({modelTopology:o});let l=i.weightsManifest;if(l==null){a(new Error(`weightManifest field is missing from file ${e.name}`));return}let c;try{c=this.checkManifestAndWeightFiles(l,t)}catch(h){a(h);return}let u=[],p=[],d=[];l.forEach(h=>{h.paths.forEach(m=>{p.push(m),d.push(null)}),u.push(...h.weights)}),l.forEach(h=>{h.paths.forEach(m=>{let f=new FileReader;f.onload=g=>{let y=g.target.result,b=p.indexOf(m);if(d[b]=y,d.indexOf(null)===-1){let x={modelTopology:o,weightSpecs:u,weightData:xy(d),format:i.format,generatedBy:i.generatedBy,convertedBy:i.convertedBy};i.signature!=null&&(x.signature=i.signature),i.userDefinedMetadata!=null&&(x.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(x.modelInitializer=i.modelInitializer),n(x)}},f.onerror=g=>a(`Failed to weights data from file of path '${m}'.`),f.readAsArrayBuffer(c[m])})})},r.onerror=s=>a(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),r.readAsText(e)})}checkManifestAndWeightFiles(e,t){let n=[],a=t.map(s=>E0(s.name)),r={};for(let s of e)s.paths.forEach(i=>{let o=E0(i);if(n.indexOf(o)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${o}'`);if(n.push(o),a.indexOf(o)===-1)throw new Error(`Weight file with basename '${o}' is not provided.`);r[i]=t[a.indexOf(o)]});if(n.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${n.length}) and the number of weight files provided (${t.length}).`);return r}},hA=e=>ee().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(zl.URL_SCHEME)?dA(e.slice(zl.URL_SCHEME.length)):null;Et.registerSaveRouter(hA);function dA(e="model"){return new zl(e)}function aA(e){return new pA(e)}function z0(e,t,n,a){i(e),n=n==null?0:n,a=a==null?1:a,o(n,a);let r=0,s=l=>(l.then(c=>{let u=n+ ++r/e.length*(a-n);return t(u),c}),l);function i(l){F(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(l,c){F(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),F(c>=0&&c<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${c}`),F(c>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${c}`)}return Promise.all(e.map(s))}async function B0(e,t){t==null&&(t={});let n=t.fetchFunc==null?ee().platform.fetch:t.fetchFunc,a=e.map(c=>n(c,t.requestInit,{isBinary:!0})),r=0,s=.5,i=(t.onProgress==null?await Promise.all(a):await z0(a,t.onProgress,r,s)).map(c=>c.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await z0(i,t.onProgress,o,l)}async function rA(e,t="",n,a){return O0(r=>B0(r,{requestInit:a}))(e,t,n)}function O0(e){return async(t,n="",a)=>{let r=t.map(()=>!1),s={},i=a!=null?a.map(()=>!1):[],o=[];if(t.forEach((h,m)=>{let f=0;h.weights.forEach(g=>{let y="quantization"in g?g.quantization.dtype:g.dtype,b=yy[y]*Pt(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:b})};a!=null?a.forEach((v,N)=>{v===g.name&&(x(),i[N]=!0)}):x(),o.push(g.name),f+=b})}),!i.every(h=>h)){let h=a.filter((m,f)=>!i[f]);throw new Error(`Could not find weights in manifest with names: ${h.join(", ")}. -Manifest JSON has weights with names: ${o.join(", ")}.`)}let l=r.reduce((h,m,f)=>(m&&h.push(f),h),[]),c=[];l.forEach(h=>{t[h].paths.forEach(m=>{let f=n+(n.endsWith("/")?"":"/")+m;c.push(f)})});let u=await e(c),p={},d=0;return l.forEach(h=>{let m=t[h].paths.length,f=0;for(let x=0;x{let v=g.slice(x.groupOffset,x.groupOffset+x.sizeBytes),N=C0(v,[x.manifestEntry]);for(let T in N)p[T]=N[T]}),d+=m}),p}}var mA="application/octet-stream",fA="application/json",Sy=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(F(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=ee().platform.fetch,F(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&F(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer),t.body.append("model.json",new Blob([JSON.stringify(a)],{type:fA}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:mA}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:_c(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async load(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(h){let m=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?m+=" 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.":m+=" Please make sure the server is serving valid JSON for this request.",new Error(m)}let n=t.modelTopology,a=t.weightsManifest,r=t.generatedBy,s=t.convertedBy,i=t.format,o=t.signature,l=t.userDefinedMetadata;if(n==null&&a==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let c,u;a!=null&&([c,u]=await this.loadWeights(a));let p={modelTopology:n,weightSpecs:c,weightData:u,generatedBy:r,convertedBy:s,format:i};o!=null&&(p.signature=o),l!=null&&(p.userDefinedMetadata=l);let d=t.modelInitializer;return d&&(p.modelInitializer=d),p}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=gA(t),r=this.weightPathPrefix||n,s=[];for(let c of e)s.push(...c.weights);let i=[],o=[];for(let c of e)for(let u of c.paths)this.weightUrlConverter!=null?o.push(this.weightUrlConverter(u)):i.push(r+u+a);this.weightUrlConverter&&i.push(...await Promise.all(o));let l=await B0(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,xy(l)]}};Sy.URL_SCHEME_REGEX=/^https?:\/\//;function gA(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function Ty(e){return e.match(Sy.URL_SCHEME_REGEX)!=null}var W0=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>Ty(a)):n=Ty(e),n)return Ny(e,t)}return null};Et.registerSaveRouter(W0);Et.registerLoadRouter(W0);function Ny(e,t){return new Sy(e,t)}function sA(e,t){return Ny(e,t)}var Cy=class{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}},yA=class{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}};function iA(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new Cy(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Cy({modelTopology:e})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Cy({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function oA(e){return new yA(e)}var V0={};Oe(V0,{confusionMatrix:()=>bA});function xA(e,t,n=!1,a=!1){let r=E(e,"a","matMul"),s=E(t,"b","matMul");[r,s]=Tt(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return M.runKernel(Rs,i,o)}var ze=P({matMul_:xA});function vA(e,t,n=1,a=0){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let r={indices:E(e,"indices","oneHot","int32")},s={depth:t,onValue:n,offValue:a};return M.runKernel(ri,r,s)}var Bl=P({oneHot_:vA});function wA(e,t){let n=E(e,"x","transpose");if(t==null&&(t=n.shape.map((s,i)=>i).reverse()),F(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(s=>{F(s>=0&&s`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let a={x:n},r={perm:t};return M.runKernel(ki,a,r)}var Ve=P({transpose_:wA});function kA(e,t,n){let a=E(e,"labels","confusionMatrix"),r=E(t,"predictions","confusionMatrix");F(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),F(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),F(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),F(a.shape[0]===r.shape[0],()=>`Mismatch in the number of examples: ${a.shape[0]} vs. ${r.shape[0]}. Labels and predictions should have the same number of elements.`),F(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=Bl(ue(a,"int32"),n),i=Bl(ue(r,"int32"),n),o=Ve(s),l=ze(o,i);return ue(l,"int32")}var bA=P({confusionMatrix_:kA}),Ei={};Oe(Ei,{fromPixels:()=>TA,toPixels:()=>IA});function dh(e,t,n){if(Es(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=Ga(e,n);if(a.length!==3&&a.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return Jr(e,t,a,n)}var Wl;function NA(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,a=!1,r=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)a=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)r=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)s=!0;else if(e.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap)o=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(r){let d=2;if(r&&e.readyState element.")}if(ah(nh,M.backendName)!=null){let d={pixels:e},h={numChannels:t};return M.runKernel(nh,d,h)}let[l,c]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height],u;i?u=e.getContext("2d").getImageData(0,0,l,c).data:a||n?u=e.data:(s||r||o)&&(Wl==null&&(Wl=document.createElement("canvas").getContext("2d")),Wl.canvas.width=l,Wl.canvas.height=c,Wl.drawImage(e,0,0,l,c),u=Wl.getImageData(0,0,l,c).data);let p;if(t===4)p=new Int32Array(u);else{let d=l*c;p=new Int32Array(d*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(n.dtype!=="float32"&&n.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);let i=await n.data(),o=n.dtype==="float32"?255:1,l=new Uint8ClampedArray(r*a*4);for(let c=0;c1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${h}.`)}else if(n.dtype==="int32"&&(h<0||h>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${h}.`);s===1?(u[0]=h*o,u[1]=h*o,u[2]=h*o):u[d]=h*o}let p=c*4;l[p+0]=Math.round(u[0]),l[p+1]=Math.round(u[1]),l[p+2]=Math.round(u[2]),l[p+3]=Math.round(u[3])}if(t!=null){t.width=r,t.height=a;let c=t.getContext("2d"),u=new ImageData(l,r,a);c.putImageData(u,0,0)}return n!==e&&n.dispose(),l}var TA=P({fromPixels_:NA}),_y={};Oe(_y,{prepareAndValidate:()=>U0});function U0(e,t){let n=e.shape.length,a=t.shape.length;if(n<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${n}.`);if(a<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${a}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[a-1]>n)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[a-1]} vs. ${n}`);if(Pt(e.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);let r=t.shape,s=r[r.length-1],i=1;for(let p=0;pp/c),1].slice(0,s);return[l,i,c,u]}var Ey={};Oe(Ey,{calculateShapes:()=>G0,validateInput:()=>Ay,validateUpdateShape:()=>Fy});function Fy(e,t,n){let a=t.rank>1?t.shape[t.rank-1]:1,r=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${n.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${a}, and batchDim: ${r}.`;if(n.rank1?t.shape[a-1]:1,s=n.length,i=1;for(let p=r;pSA,computeFlatOffset:()=>_A,computeOutShape:()=>H0,getNormalizedAxes:()=>q0,isSliceContinous:()=>CA,maskToAxes:()=>hh,parseSliceParams:()=>Z0,sliceInfo:()=>EA,startForAxis:()=>J0,startIndicesWithElidedDims:()=>K0,stopForAxis:()=>Q0,stopIndicesWithElidedDims:()=>X0,stridesForAxis:()=>Y0,stridesWithElidedDims:()=>j0});function SA(e,t,n){let a=e.shape.length;F(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),F(a===n.length,()=>`Error in slice${a}D: Length of size ${n} must match the rank of the array (${a}).`);for(let r=0;r`Error in slice${a}D: begin[${r}] + size[${r}] (${t[r]+n[r]}) would overflow input.shape[${r}] (${e.shape[r]})`)}function hh(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function H0(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;u=K0(i,h,m,a,e),p=X0(o,h,m,r,e),d=j0(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=ek(t,n,o),c=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=ek(t,n,o),c=a[l];e&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),i=ec(0,i,l-1),i}function Q0(e,t,n,a,r,s){let i=t[r],o=n[r]||1;(e&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),o>0?i=ec(0,i,l):i=ec(-1,i,l-1),i}function CA(e,t,n){let a=n.length;for(let r=0;r1){a=r;break}for(let r=a+1;r0||n[r]!==e[r])return!1;return!0}function _A(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{F(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return n==null?s=new Array(r).fill(-1):typeof n=="number"?s=[n,...new Array(r-1).fill(-1)]:n.lengthi>=0?i:(F(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${o}.`),e.shape[o]-a[o])),[a,s]}function EA(e,t,n,a,r,s,i,o,l){let c=t.slice(),u=n.slice(),p=a;a==null&&(p=new Array(c.length));let d=hh(i);if(d.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(i!==0&&o!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(i!==0&&l!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let h=e.length-c.length,m=hh(o),f=e.slice();m.forEach(T=>{c[T]=0,u[T]=1,f.splice(T,0,1)});let{begin:g,end:y,strides:b}=q0(f,d,h,c,u,p,r,s,i);c=g,u=y,p=b;let x=hh(l);x.forEach(T=>{u[T]=c[T]+1,p[T]=1});let v=H0(c,u,p),N=v.filter((T,S)=>x.indexOf(S)===-1);return{nonStrided:p.every(T=>T===1),$begin:c,$end:u,$strides:p,size:v,newShape:f,outShape:N}}var re={};Oe(re,{Serializable:()=>nk,SerializationMap:()=>Fi,registerClass:()=>es});var nk=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Fi=class{constructor(){this.classNameMap={}}static getMap(){return Fi.instance==null&&(Fi.instance=new Fi),Fi.instance}static register(e){Fi.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function es(e){F(e.className!=null,()=>"Class being registered does not have the static className property defined."),F(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),F(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Fi.register(e)}var ak={};Oe(ak,{TEST_EPSILON_FLOAT16:()=>rk,encodeStrings:()=>sk,expectArrayBuffersEqual:()=>MA,expectArraysClose:()=>FA,expectArraysEqual:()=>$A,expectNumbersClose:()=>DA,expectPromiseToFail:()=>AA,expectValuesInRange:()=>RA,testEpsilon:()=>$y});var PA=.001,rk=.1;function FA(e,t,n){return n==null&&(n=$y()),Dy(e,t,(a,r)=>Ry(a,r,n))}function $y(){return M.backend.floatPrecision()===32?PA:rk}function Dy(e,t,n){let a=!0;if((ln(e)||ln(t))&&(a=!1),ln(e)&&ln(t)&&(a=!0),a){let i=e.constructor.name,o=t.constructor.name;if(i!==o)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${o}`)}if(Array.isArray(e)&&Array.isArray(t)){let i=Ga(e),o=Ga(t);if(!gr(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=ln(e)?e:Fs(e),s=ln(t)?t:Fs(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}. +`;return d[d.length-1]=" "+d[d.length-1]+"]"+(s?"":m),d}function Tc(e){let t=[];for(let n=0;n`Length of values '${a}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||o0(t,this.size),this.strides=Mo(e)}set(e,...t){t.length===0&&(t=[0]),$(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${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=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(r)}t++}let n=e[e.length-1];for(let a=0;aoh(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}dataSync(){this.throwIfDisposed();let e=Ua().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>oh(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 Ua().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Ua().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Pl.print(this,e)}clone(){return this.throwIfDisposed(),Pl.clone(this)}toString(e=!1){let t=this.dataSync();return E_(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Pl.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Ua().makeVariable(this,e,t,n)}};Object.defineProperty(Fe,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Y(){return iy("Tensor",()=>Fe)}Y();var Kr=class extends Fe{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(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!gr(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Ua().disposeTensor(this),this.dataId=e.dataId,Ua().incRef(this,null)}dispose(){Ua().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Kr,Symbol.hasInstance,{value:e=>e instanceof Fe&&e.assign!=null&&e.assign instanceof Function});var Na={};Oe(Na,{assertTypesMatch:()=>k0,getTensorsInContainer:()=>cy,isTensorInList:()=>P_,makeTypesMatch:()=>Tt});var py;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(py||(py={}));var dy;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(dy||(dy={}));var hy;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(hy||(hy={}));var my;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(my||(my={}));var fy;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(fy||(fy={}));var O_={float32:my,int32:dy,bool:hy,complex64:fy};function pa(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return O_[e][t]}function uh(e){return pa(e,"int32")}function Tt(e,t){if(e.dtype===t.dtype)return[e,t];let n=pa(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function k0(e,t){$(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function P_(e,t){return t.some(n=>n.id===e.id)}function cy(e){let t=[],n=new Set;return I0(e,t,n),t}function I0(e,t,n){if(e==null)return;if(e instanceof Fe){t.push(e);return}if(!L_(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),I0(s,t,n))}}function L_(e){return Array.isArray(e)||typeof e=="object"}function gy(e){return e.kernelName!=null}var N0=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},Sc=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new N0}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){sh(e).forEach(t=>{t.disposeFunc!=null&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let n=t.factory();if(n&&!(n instanceof Zu)&&typeof n.then=="function"){let a=++this.pendingBackendInitId,r=n.then(s=>a(athis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(n),()=>this.endScope(a),()=>(a=t(),a instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),a))}scopedRun(e,t,n){e();try{let a=n();return t(),a}catch(a){throw t(),a}}nextTensorId(){return Sc.nextTensorId++}nextVariableId(){return Sc.nextVariableId++}clone(e){let t=P.runKernel(Xs,{x:e}),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return P.runKernel(Rs,o,l)}}),r=[];return this.addTapeNode(this.state.activeScope.name,n,[t],a,r,{}),t}runKernel(e,t,n){if(rh(e,this.backendName)==null)throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,n){let a=this.backend.numDataIds(),r=0;n.forEach(o=>{r+=o.dtype==="complex64"?3:1});let s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=a-t-r-s;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e){let t,n=[],a=this.isTapeOn(),r=this.state.numBytes,s=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let o,l=gy(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(gy(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=rh(h,this.backendName);$(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let y=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let b=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,y,b);let x=b.map(v=>{if(v.rank!=null)return v;let{dataId:k,shape:w,dtype:S}=v;return this.makeTensorFromDataId(k,w,S)});if(a){let v=this.getTensorsForGradient(h,m,x);n=this.saveTensorsForBackwardMode(v)}return x}}else{let{forwardFunc:h}=e,m=f=>{!a||(n=f.map(g=>this.keep(this.clone(g))))};i=()=>{let f=this.backend.numDataIds();o=this.tidy(()=>h(this.backend,m));let g=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,f,g),g}}let{inputs:u,attrs:c}=e,p=gy(e)?null:e.backwardsFunc,d;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(d=this.profiler.profileKernel(l,u,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(d),t=d.outputs)}),a&&this.addTapeNode(l,u,t,p,n,c),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(u).map(h=>u[h]!=null?u[h].shape:null),outputShapes:t.map(h=>h.shape),kernelTimeMs:d.timeMs,extraInfo:d.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(t=>this.keep(this.clone(t)))}getTensorsForGradient(e,t,n){let a=ly(e);if(a!=null){let r=a.inputsToSave||[],s=a.outputsToSave||[],i;a.saveAllInputs?($(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(l=>t[l])):i=r.map(l=>t[l]);let o=n.filter((l,u)=>s[u]);return i.concat(o)}return[]}makeTensor(e,t,n,a){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",a=a||this.backend;let r=e;n==="string"&&Ur(e[0])&&(r=e.map(o=>kc(o)));let s=a.write(r,t,n),i=new Fe(t,n,s,this.nextTensorId());if(this.trackTensor(i,a),n==="string"){let o=this.state.tensorInfo.get(s),l=c0(r);this.state.numBytes+=l-o.bytes,o.bytes=l}return i}makeTensorFromDataId(e,t,n,a){n=n||"float32";let r=new Fe(t,n,e,this.nextTensorId());return this.trackTensor(r,a),r}makeVariable(e,t=!0,n,a){n=n||this.nextVariableId().toString(),a!=null&&a!==e.dtype&&(e=e.cast(a));let r=new Kr(e,t,n,this.nextTensorId());if(this.state.registeredVariables[r.name]!=null)throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}trackTensor(e,t){this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++;let n=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(n=e.size*ey(e.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n})),e instanceof Kr||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,e.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),e.dtype!=="complex64"&&e.dtype!=="string"){let n=e.size*ey(e.dtype);this.state.numBytes-=n}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(a=>a.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let a of this.state.activeProfile.kernels)a.kernelTimeMs=await a.kernelTimeMs,a.extraInfo=await a.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,n,a,r,s){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:r},o=ly(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((u,c)=>{if(u==null){let p=n[c],d=Td(p.size,p.dtype);return this.makeTensor(d,p.shape,p.dtype)}return u}),a(l.length>1?l:l[0],r,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=cy(e),n=new Set(t.map(r=>r.id));for(let r=0;r{!r.kept&&r.scopeId===a.id&&this.track(r)})}gradients(e,t,n,a=!1){if($(t.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let r=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));$(r instanceof Fe,()=>"The result y returned by f() must be a tensor.");let s=A_(this.state.activeTape,t,r);if(!a&&s.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let i={};i[r.id]=n==null?z_(r.shape):n,F_(i,s,l=>this.tidy(l),W_);let o=t.map(l=>i[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let u of l.saved)u.dispose()}),this.state.activeTape=null),{value:r,grads:o}})}customGrad(e){return $(Gr(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{$(t.every(i=>i instanceof Fe),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,a={};t.forEach((i,o)=>{a[o]=i});let r=(i,o)=>(n=e(...t,o),$(n.value instanceof Fe,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),$(Gr(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),s=(i,o)=>{let l=n.gradFunc(i,o),u=Array.isArray(l)?l:[l];$(u.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),$(u.every(p=>p instanceof Fe),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let c={};return u.forEach((p,d)=>{c[d]=()=>p}),c};return this.runKernelFunc({forwardFunc:r,backwardsFunc:s,inputs:a})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}async time(e){let t=wc(),n=await this.backend.time(e);return n.wallMs=wc()-t,n}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new N0;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Sc.nextTensorId=0;Sc.nextVariableId=0;function z_(e){let t=ty(Ot(e),"float32");return P.makeTensor(t,e,"float32")}function T0(){let e=g0();if(e._tfengine==null){let t=new f0(e);e._tfengine=new Sc(t)}return g_(e._tfengine.ENV),D_(()=>e._tfengine),e._tfengine}var P=T0();function W_(e,t){let n={a:e,b:t};return P.runKernel(Hr,n)}var Cc={};Oe(Cc,{isBrowser:()=>S0,isMobile:()=>B_});function V_(){return typeof navigator!="undefined"&&navigator!=null}function B_(){if(V_()){let e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))}return!1}function S0(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Ta=Z();Ta.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});Ta.registerFlag("IS_BROWSER",()=>S0());Ta.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Ta.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Ta.registerFlag("PROD",()=>!1);Ta.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Ta.getBool("DEBUG"));Ta.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Ta.registerFlag("IS_TEST",()=>!1);Ta.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);Ta.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);function Ga(e,t){let n=e;if(un(e))return t==="string"?[]:[e.length];if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||un(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&Z().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&C0(e,a,[]),a}function C0(e,t,n){if(n=n||[],!Array.isArray(e)&&!un(e)){$(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}$(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),$(e.length===t[0],()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);let a=t.slice(1);for(let r=0;r=0&&(r=a),A0(a,r,t,n),e==null||!un(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){let o=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${o}'`)}let s=Ga(e,r);!un(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?ih(e,r):_s(e,[],!0);return P.makeTensor(i,s,r)}function Ac(e,t,n,a="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((r,s)=>_(r,`${t}[${s}]`,n,a))}var F0="__op";function O(e){let t=Object.keys(e);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let n=t[0],a=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n=n+F0;let r=(...s)=>{P.startScope(n);try{let i=a(...s);return ay(i)&&console.error("Cannot return a Promise inside of tidy."),P.endScope(i),i}catch(i){throw P.endScope(null),i}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}function U_(e,t){let n=_(e,"real","complex"),a=_(t,"imag","complex");ln(n.shape,a.shape,`real and imag shapes, ${n.shape} and ${a.shape}, must match in call to tf.complex().`);let r={real:n,imag:a};return P.runKernel(Ed,r)}var Yr=O({complex_:U_});function Jr(e,t,n,a){if(a==null&&(a=Id(e)),a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!un(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(t!=null){ny(t);let r=Ot(t),s=Ot(n);$(r===s,()=>`Based on the provided shape, [${t}], the tensor should have ${r} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `)}}return!un(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?ih(e,a):_s(e,[],!0),P.makeTensor(e,t,a)}function Jn(e,t,n){let a=Ga(e,n);return Jr(e,t,a,n)}var yy={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},ch=4;async function H_(e,t){let n=[],a=[],r=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let d=await l.bytes(),h=d.reduce((g,y)=>g+y.length,0)+ch*d.length,m=new Uint8Array(h),f=0;for(let g=0;g{if(t+=s.byteLength,n.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let a=new Uint8Array(t),r=0;return n.forEach(s=>{a.set(new Uint8Array(s.buffer),r),r+=s.byteLength}),a.buffer}var by=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function E0(e){return by?Buffer.byteLength(e):new Blob([e]).size}function q_(e){if(by)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{t+=r.byteLength});let n=new Uint8Array(t),a=0;return e.forEach(r=>{n.set(new Uint8Array(r),a),a+=r.byteLength}),n.buffer}function $0(e){let t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);let n=e.split(t);return n[n.length-1]}function Fc(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:E0(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:E0(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function K_(){let e=n=>{let a=n<<13,r=0;for(;(a&8388608)==0;)r-=8388608,a<<=1;return a&=~8388608,r+=947912704,a|r},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let n=1024;n<2048;n++)t[n]=939524096+(n-1024<<13);return t}function Y_(){let e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}function J_(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function j_(){let e=K_(),t=Y_(),n=J_();return a=>{let r=new ArrayBuffer(4*a.length),s=new Uint32Array(r);for(let i=0;i>10]+(o&1023)]+t[o>>10];s[i]=l}return new Float32Array(r)}}var _t=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return _t.instance==null&&(_t.instance=new _t),_t.instance}static registerSaveRouter(e){_t.getInstance().saveRouters.push(e)}static registerLoadRouter(e){_t.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return _t.getHandlers(e,"save")}static getLoadHandlers(e,t){return _t.getHandlers(e,"load",t)}static getHandlers(e,t,n){let a=[];return(t==="load"?_t.getInstance().loadRouters:_t.getInstance().saveRouters).forEach(r=>{let s=r(e,n);s!==null&&a.push(s)}),a}},Q_=e=>_t.registerSaveRouter(e),Z_=e=>_t.registerLoadRouter(e),eE=e=>_t.getSaveHandlers(e),tE=(e,t)=>_t.getLoadHandlers(e,t),vy="tensorflowjs",wy=1,Si="models_store",Qr="model_info_store";function D0(){if(!Z().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e=typeof window=="undefined"?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function ky(e){let t=e.result;t.createObjectStore(Si,{keyPath:"modelPath"}),t.createObjectStore(Qr,{keyPath:"modelPath"})}var Ci=class{constructor(e){if(this.indexedDB=D0(),e==null||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((n,a)=>{let r=this.indexedDB.open(vy,wy);r.onupgradeneeded=()=>ky(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(Si,"readonly"),o=i.objectStore(Si).get(this.modelPath);o.onsuccess=()=>{if(o.result==null)return s.close(),a(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(o.result.modelArtifacts)},o.onerror=l=>(s.close(),a(o.error)),i.oncomplete=()=>s.close()}else{let i=Fc(t),o=s.transaction(Qr,"readwrite"),l=o.objectStore(Qr),u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i}),c;u.onsuccess=()=>{c=s.transaction(Si,"readwrite");let p=c.objectStore(Si).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});p.onsuccess=()=>n({modelArtifactsInfo:i}),p.onerror=d=>{l=o.objectStore(Qr);let h=l.delete(this.modelPath);h.onsuccess=()=>(s.close(),a(p.error)),h.onerror=m=>(s.close(),a(p.error))}},u.onerror=p=>(s.close(),a(u.error)),o.oncomplete=()=>{c==null?s.close():c.oncomplete=()=>s.close()}}},r.onerror=s=>a(r.error)})}};Ci.URL_SCHEME="indexeddb://";var M0=e=>Z().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Ci.URL_SCHEME)?nE(e.slice(Ci.URL_SCHEME.length)):null;_t.registerSaveRouter(M0);_t.registerLoadRouter(M0);function nE(e){return new Ci(e)}function aE(e){return e.startsWith(Ci.URL_SCHEME)?e.slice(Ci.URL_SCHEME.length):e}var rE=class{constructor(){this.indexedDB=D0()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(vy,wy);n.onupgradeneeded=()=>ky(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(Qr,"readonly"),s=r.objectStore(Qr).getAll();s.onsuccess=()=>{let i={};for(let o of s.result)i[o.modelPath]=o.modelArtifactsInfo;e(i)},s.onerror=i=>(a.close(),t(s.error)),r.oncomplete=()=>a.close()},n.onerror=a=>t(n.error)})}async removeModel(e){return e=aE(e),new Promise((t,n)=>{let a=this.indexedDB.open(vy,wy);a.onupgradeneeded=()=>ky(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(Qr,"readwrite"),i=s.objectStore(Qr),o=i.get(e),l;o.onsuccess=()=>{if(o.result==null)return r.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let u=i.delete(e),c=()=>{l=r.transaction(Si,"readwrite");let p=l.objectStore(Si).delete(e);p.onsuccess=()=>t(o.result.modelArtifactsInfo),p.onerror=d=>n(o.error)};u.onsuccess=c,u.onerror=p=>(c(),r.close(),n(o.error))}},o.onerror=u=>(r.close(),n(o.error)),s.oncomplete=()=>{l==null?r.close():l.oncomplete=()=>r.close()}},a.onerror=r=>n(a.error)})}},yr="/",Ol="tensorflowjs_models",R0="info",sE="model_topology",iE="weight_specs",oE="weight_data",lE="model_metadata";function P0(e){return{info:[Ol,e,R0].join(yr),topology:[Ol,e,sE].join(yr),weightSpecs:[Ol,e,iE].join(yr),weightData:[Ol,e,oE].join(yr),modelMetadata:[Ol,e,lE].join(yr)}}function uE(e){let t=e.split(yr);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(yr)}function cE(e){return e.startsWith(Ai.URL_SCHEME)?e.slice(Ai.URL_SCHEME.length):e}var Ai=class{constructor(e){if(!Z().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=P0(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),a=Fc(e);try{this.LS.setItem(this.keys.info,JSON.stringify(a)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,q_(e.weightData));let r={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};return e.signature!=null&&(r.signature=e.signature),e.userDefinedMetadata!=null&&(r.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(r.modelInitializer=e.modelInitializer),this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:a}}catch(r){throw this.LS.removeItem(this.keys.info),this.LS.removeItem(this.keys.topology),this.LS.removeItem(this.keys.weightSpecs),this.LS.removeItem(this.keys.weightData),this.LS.removeItem(this.keys.modelMetadata),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${a.modelTopologyBytes}, weightSpecsBytes=${a.weightSpecsBytes}, weightDataBytes=${a.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=n;let a=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(a==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=a;let r=this.LS.getItem(this.keys.modelMetadata);if(r!=null){let i=JSON.parse(r);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=X_(s),t}};Ai.URL_SCHEME="localstorage://";var O0=e=>Z().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Ai.URL_SCHEME)?pE(e.slice(Ai.URL_SCHEME.length)):null;_t.registerSaveRouter(O0);_t.registerLoadRouter(O0);function pE(e){return new Ai(e)}var dE=class{constructor(){$(Z().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),$(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=Ol+yr,n=yr+R0;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(Ll)&&(e=e.slice(0,e.indexOf(Ll))),$(e.length>0,()=>"scheme must not be an empty string.");let n=Qn.getInstance();$(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=this.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}};function ph(e){if(e.indexOf(Ll)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Qn.getSchemes().join(",")}`);return{scheme:e.split(Ll)[0],path:e.split(Ll)[1]}}async function L0(e,t,n=!1){$(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=_t.getLoadHandlers(e);$(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),$(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=_t.getSaveHandlers(t);$(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),$(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=ph(e).scheme,l=ph(e).path,u=o===ph(e).scheme,c=await r.load();n&&u&&await Qn.getManager(o).removeModel(l);let p=await i.save(c);return n&&!u&&await Qn.getManager(o).removeModel(l),p.modelArtifactsInfo}async function hE(){let e=Qn.getSchemes(),t={};for(let n of e){let a=await Qn.getManager(n).listModels();for(let r in a){let s=n+Ll+r;t[s]=a[r]}}return t}async function mE(e){let t=ph(e);return Qn.getManager(t.scheme).removeModel(t.path)}async function fE(e,t){return L0(e,t,!1)}async function gE(e,t){return L0(e,t,!0)}var yE=class{fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}};if(Z().get("IS_BROWSER")){Z().setPlatform("browser",new yE);try{Qn.registerManager(Ai.URL_SCHEME,new dE)}catch(e){}try{Qn.registerManager(Ci.URL_SCHEME,new rE)}catch(e){}}var bE={importFetch:()=>wF()},Iy,xE=class{constructor(){this.util=require("util"),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return Z().global.fetch!=null?Z().global.fetch(e,t):(Iy==null&&(Iy=bE.importFetch()),Iy(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};Z().get("IS_NODE")&&Z().setPlatform("node",new xE);function Le(e,t="float32",n){return t=t||"float32",ny(e),new Lt(e,t,n)}function vE(e,t){let n=_(e,"x","cast");if(!u0(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&n.dtype!=="string"||t!=="string"&&n.dtype==="string")throw new Error("Only strings can be casted to strings");let a={x:n},r={dtype:t};return P.runKernel(Rs,a,r)}var ue=O({cast_:vE});function wE(e){let t={x:_(e,"x","clone","string_or_numeric")};return P.runKernel(Xs,t)}var Zr=O({clone_:wE});function z0(e,t=!1){console.log(e.toString(t))}T0();var kE={buffer:Le,cast:ue,clone:Zr,print:z0};M_(kE);var jt={};Oe(jt,{browserFiles:()=>IE,browserHTTPRequest:()=>TE,concatenateArrayBuffers:()=>xy,copyModel:()=>fE,decodeWeights:()=>_0,encodeWeights:()=>H_,fromMemory:()=>SE,getLoadHandlers:()=>tE,getModelArtifactsInfoForJSON:()=>Fc,getSaveHandlers:()=>eE,http:()=>Ty,isHTTPScheme:()=>Ny,listModels:()=>hE,loadWeights:()=>NE,moveModel:()=>gE,registerLoadRouter:()=>Z_,registerSaveRouter:()=>Q_,removeModel:()=>mE,weightsLoaderFactory:()=>W0,withSaveHandler:()=>CE});var AE="model",FE=".json",_E=".weights.bin";function B0(e){return new Promise(t=>setTimeout(t)).then(e)}var zl=class{constructor(e){if(!Z().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(zl.URL_SCHEME)&&(e=e.slice(zl.URL_SCHEME.length)),(e==null||e.length===0)&&(e=AE),this.modelTopologyFileName=e+FE,this.weightDataFileName=e+_E}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer);let r=window.URL.createObjectURL(new Blob([JSON.stringify(a)],{type:"application/json"})),s=this.jsonAnchor==null?document.createElement("a"):this.jsonAnchor;if(s.download=this.modelTopologyFileName,s.href=r,await B0(()=>s.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await B0(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Fc(e)}}}};zl.URL_SCHEME="downloads://";var EE=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){let e=this.files[0],t=this.files.slice(1);return new Promise((n,a)=>{let r=new FileReader;r.onload=s=>{let i=JSON.parse(s.target.result),o=i.modelTopology;if(o==null){a(new Error(`modelTopology field is missing from file ${e.name}`));return}t.length===0&&n({modelTopology:o});let l=i.weightsManifest;if(l==null){a(new Error(`weightManifest field is missing from file ${e.name}`));return}let u;try{u=this.checkManifestAndWeightFiles(l,t)}catch(h){a(h);return}let c=[],p=[],d=[];l.forEach(h=>{h.paths.forEach(m=>{p.push(m),d.push(null)}),c.push(...h.weights)}),l.forEach(h=>{h.paths.forEach(m=>{let f=new FileReader;f.onload=g=>{let y=g.target.result,b=p.indexOf(m);if(d[b]=y,d.indexOf(null)===-1){let x={modelTopology:o,weightSpecs:c,weightData:xy(d),format:i.format,generatedBy:i.generatedBy,convertedBy:i.convertedBy};i.signature!=null&&(x.signature=i.signature),i.userDefinedMetadata!=null&&(x.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(x.modelInitializer=i.modelInitializer),n(x)}},f.onerror=g=>a(`Failed to weights data from file of path '${m}'.`),f.readAsArrayBuffer(u[m])})})},r.onerror=s=>a(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),r.readAsText(e)})}checkManifestAndWeightFiles(e,t){let n=[],a=t.map(s=>$0(s.name)),r={};for(let s of e)s.paths.forEach(i=>{let o=$0(i);if(n.indexOf(o)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${o}'`);if(n.push(o),a.indexOf(o)===-1)throw new Error(`Weight file with basename '${o}' is not provided.`);r[i]=t[a.indexOf(o)]});if(n.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${n.length}) and the number of weight files provided (${t.length}).`);return r}},DE=e=>Z().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(zl.URL_SCHEME)?$E(e.slice(zl.URL_SCHEME.length)):null;_t.registerSaveRouter(DE);function $E(e="model"){return new zl(e)}function IE(e){return new EE(e)}function V0(e,t,n,a){i(e),n=n==null?0:n,a=a==null?1:a,o(n,a);let r=0,s=l=>(l.then(u=>{let c=n+ ++r/e.length*(a-n);return t(c),u}),l);function i(l){$(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(l,u){$(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),$(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${u}`),$(u>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${u}`)}return Promise.all(e.map(s))}async function U0(e,t){t==null&&(t={});let n=t.fetchFunc==null?Z().platform.fetch:t.fetchFunc,a=e.map(u=>n(u,t.requestInit,{isBinary:!0})),r=0,s=.5,i=(t.onProgress==null?await Promise.all(a):await V0(a,t.onProgress,r,s)).map(u=>u.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await V0(i,t.onProgress,o,l)}async function NE(e,t="",n,a){return W0(r=>U0(r,{requestInit:a}))(e,t,n)}function W0(e){return async(t,n="",a)=>{let r=t.map(()=>!1),s={},i=a!=null?a.map(()=>!1):[],o=[];if(t.forEach((h,m)=>{let f=0;h.weights.forEach(g=>{let y="quantization"in g?g.quantization.dtype:g.dtype,b=yy[y]*Ot(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:b})};a!=null?a.forEach((v,k)=>{v===g.name&&(x(),i[k]=!0)}):x(),o.push(g.name),f+=b})}),!i.every(h=>h)){let h=a.filter((m,f)=>!i[f]);throw new Error(`Could not find weights in manifest with names: ${h.join(", ")}. +Manifest JSON has weights with names: ${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 c=await e(u),p={},d=0;return l.forEach(h=>{let m=t[h].paths.length,f=0;for(let x=0;x{let v=g.slice(x.groupOffset,x.groupOffset+x.sizeBytes),k=_0(v,[x.manifestEntry]);for(let w in k)p[w]=k[w]}),d+=m}),p}}var ME="application/octet-stream",RE="application/json",Sy=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?($(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=Z().platform.fetch,$(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&$(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer),t.body.append("model.json",new Blob([JSON.stringify(a)],{type:RE}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:ME}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:Fc(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async load(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(h){let m=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?m+=" 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.":m+=" Please make sure the server is serving valid JSON for this request.",new Error(m)}let n=t.modelTopology,a=t.weightsManifest,r=t.generatedBy,s=t.convertedBy,i=t.format,o=t.signature,l=t.userDefinedMetadata;if(n==null&&a==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let u,c;a!=null&&([u,c]=await this.loadWeights(a));let p={modelTopology:n,weightSpecs:u,weightData:c,generatedBy:r,convertedBy:s,format:i};o!=null&&(p.signature=o),l!=null&&(p.userDefinedMetadata=l);let d=t.modelInitializer;return d&&(p.modelInitializer=d),p}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=PE(t),r=this.weightPathPrefix||n,s=[];for(let u of e)s.push(...u.weights);let i=[],o=[];for(let u of e)for(let c of u.paths)this.weightUrlConverter!=null?o.push(this.weightUrlConverter(c)):i.push(r+c+a);this.weightUrlConverter&&i.push(...await Promise.all(o));let l=await U0(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,xy(l)]}};Sy.URL_SCHEME_REGEX=/^https?:\/\//;function PE(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function Ny(e){return e.match(Sy.URL_SCHEME_REGEX)!=null}var G0=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>Ny(a)):n=Ny(e),n)return Ty(e,t)}return null};_t.registerSaveRouter(G0);_t.registerLoadRouter(G0);function Ty(e,t){return new Sy(e,t)}function TE(e,t){return Ty(e,t)}var Cy=class{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}},OE=class{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}};function SE(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new Cy(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Cy({modelTopology:e})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Cy({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function CE(e){return new OE(e)}var H0={};Oe(H0,{confusionMatrix:()=>LE});function zE(e,t,n=!1,a=!1){let r=_(e,"a","matMul"),s=_(t,"b","matMul");[r,s]=Tt(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return P.runKernel(Ms,i,o)}var ze=O({matMul_:zE});function WE(e,t,n=1,a=0){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let r={indices:_(e,"indices","oneHot","int32")},s={depth:t,onValue:n,offValue:a};return P.runKernel(ri,r,s)}var Wl=O({oneHot_:WE});function BE(e,t){let n=_(e,"x","transpose");if(t==null&&(t=n.shape.map((s,i)=>i).reverse()),$(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(s=>{$(s>=0&&s`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let a={x:n},r={perm:t};return P.runKernel(ki,a,r)}var Ve=O({transpose_:BE});function VE(e,t,n){let a=_(e,"labels","confusionMatrix"),r=_(t,"predictions","confusionMatrix");$(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),$(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),$(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),$(a.shape[0]===r.shape[0],()=>`Mismatch in the number of examples: ${a.shape[0]} vs. ${r.shape[0]}. Labels and predictions should have the same number of elements.`),$(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=Wl(ue(a,"int32"),n),i=Wl(ue(r,"int32"),n),o=Ve(s),l=ze(o,i);return ue(l,"int32")}var LE=O({confusionMatrix_:VE}),Fi={};Oe(Fi,{fromPixels:()=>HE,fromPixelsAsync:()=>UE,toPixels:()=>GE});function dh(e,t,n){if(Fs(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=Ga(e,n);if(a.length!==3&&a.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return Jr(e,t,a,n)}var Bl;function j0(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,a=!1,r=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)a=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)r=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)s=!0;else if(e.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap)o=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(r){let d=2;if(r&&e.readyState element.")}if(rh(ah,P.backendName)!=null){let d={pixels:e},h={numChannels:t};return P.runKernel(ah,d,h)}let[l,u]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height],c;i?c=e.getContext("2d").getImageData(0,0,l,u).data:a||n?c=e.data:(s||r||o)&&(Bl==null&&(Bl=document.createElement("canvas").getContext("2d")),Bl.canvas.width=l,Bl.canvas.height=u,Bl.drawImage(e,0,0,l,u),c=Bl.getImageData(0,0,l,u).data);let p;if(t===4)p=new Int32Array(c);else{let d=l*u;p=new Int32Array(d*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(n.dtype!=="float32"&&n.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);let i=await n.data(),o=n.dtype==="float32"?255:1,l=new Uint8ClampedArray(r*a*4);for(let u=0;u1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${h}.`)}else if(n.dtype==="int32"&&(h<0||h>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${h}.`);s===1?(c[0]=h*o,c[1]=h*o,c[2]=h*o):c[d]=h*o}let p=u*4;l[p+0]=Math.round(c[0]),l[p+1]=Math.round(c[1]),l[p+2]=Math.round(c[2]),l[p+3]=Math.round(c[3])}if(t!=null){t.width=r,t.height=a;let u=t.getContext("2d"),c=new ImageData(l,r,a);u.putImageData(c,0,0)}return n!==e&&n.dispose(),l}var HE=O({fromPixels_:j0}),Ay={};Oe(Ay,{prepareAndValidate:()=>q0});function q0(e,t){let n=e.shape.length,a=t.shape.length;if(n<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${n}.`);if(a<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${a}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[a-1]>n)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[a-1]} vs. ${n}`);if(Ot(e.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);let r=t.shape,s=r[r.length-1],i=1;for(let p=0;pp/u),1].slice(0,s);return[l,i,u,c]}var Fy={};Oe(Fy,{calculateShapes:()=>X0,validateInput:()=>Ey,validateUpdateShape:()=>_y});function _y(e,t,n){let a=t.rank>1?t.shape[t.rank-1]:1,r=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${n.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${a}, and batchDim: ${r}.`;if(n.rank1?t.shape[a-1]:1,s=n.length,i=1;for(let p=r;pYE,computeFlatOffset:()=>QE,computeOutShape:()=>K0,getNormalizedAxes:()=>J0,isSliceContinous:()=>JE,maskToAxes:()=>hh,parseSliceParams:()=>a1,sliceInfo:()=>ZE,startForAxis:()=>t1,startIndicesWithElidedDims:()=>Q0,stopForAxis:()=>n1,stopIndicesWithElidedDims:()=>Z0,stridesForAxis:()=>e1,stridesWithElidedDims:()=>Y0});function YE(e,t,n){let a=e.shape.length;$(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),$(a===n.length,()=>`Error in slice${a}D: Length of size ${n} must match the rank of the array (${a}).`);for(let r=0;r`Error in slice${a}D: begin[${r}] + size[${r}] (${t[r]+n[r]}) would overflow input.shape[${r}] (${e.shape[r]})`)}function hh(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function K0(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;c=Q0(i,h,m,a,e),p=Z0(o,h,m,r,e),d=Y0(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=r1(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=r1(t,n,o),u=a[l];e&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),i=ec(0,i,l-1),i}function n1(e,t,n,a,r,s){let i=t[r],o=n[r]||1;(e&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),o>0?i=ec(0,i,l):i=ec(-1,i,l-1),i}function JE(e,t,n){let a=n.length;for(let r=0;r1){a=r;break}for(let r=a+1;r0||n[r]!==e[r])return!1;return!0}function QE(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{$(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return n==null?s=new Array(r).fill(-1):typeof n=="number"?s=[n,...new Array(r-1).fill(-1)]:n.lengthi>=0?i:($(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${o}.`),e.shape[o]-a[o])),[a,s]}function ZE(e,t,n,a,r,s,i,o,l){let u=t.slice(),c=n.slice(),p=a;a==null&&(p=new Array(u.length));let d=hh(i);if(d.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(i!==0&&o!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(i!==0&&l!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let h=e.length-u.length,m=hh(o),f=e.slice();m.forEach(w=>{u[w]=0,c[w]=1,f.splice(w,0,1)});let{begin:g,end:y,strides:b}=J0(f,d,h,u,c,p,r,s,i);u=g,c=y,p=b;let x=hh(l);x.forEach(w=>{c[w]=u[w]+1,p[w]=1});let v=K0(u,c,p),k=v.filter((w,S)=>x.indexOf(S)===-1);return{nonStrided:p.every(w=>w===1),$begin:u,$end:c,$strides:p,size:v,newShape:f,outShape:k}}var re={};Oe(re,{Serializable:()=>i1,SerializationMap:()=>_i,registerClass:()=>es});var i1=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},_i=class{constructor(){this.classNameMap={}}static getMap(){return _i.instance==null&&(_i.instance=new _i),_i.instance}static register(e){_i.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function es(e){$(e.className!=null,()=>"Class being registered does not have the static className property defined."),$(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),$(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),_i.register(e)}var o1={};Oe(o1,{TEST_EPSILON_FLOAT16:()=>l1,encodeStrings:()=>u1,expectArrayBuffersEqual:()=>s$,expectArraysClose:()=>e$,expectArraysEqual:()=>n$,expectNumbersClose:()=>a$,expectPromiseToFail:()=>t$,expectValuesInRange:()=>r$,testEpsilon:()=>$y});var i$=.001,l1=.1;function e$(e,t,n){return n==null&&(n=$y()),Dy(e,t,(a,r)=>My(a,r,n))}function $y(){return P.backend.floatPrecision()===32?i$:l1}function Dy(e,t,n){let a=!0;if((un(e)||un(t))&&(a=!1),un(e)&&un(t)&&(a=!0),a){let i=e.constructor.name,o=t.constructor.name;if(i!==o)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${o}`)}if(Array.isArray(e)&&Array.isArray(t)){let i=Ga(e),o=Ga(t);if(!gr(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=un(e)?e:_s(e),s=un(t)?t:_s(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}. Actual: ${r}. Expected: ${s}.`);for(let i=0;it.fail(),()=>t())}function $A(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Ur(e)||Ur(e[0])||Ur(t)||Ur(t[0])?Dy(e,n,(a,r)=>a==r):Dy(e,t,(a,r)=>Ry(a,r,0))}function DA(e,t,n){if(n==null&&(n=$y()),!Ry(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`)}function Ry(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function RA(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function MA(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}function sk(e){for(let t=0;tt.dispose())}function jt(e){return M.keep(e)}function VA(e){return M.time(e)}function UA(e){return M.setBackend(e)}function GA(){return M.ready()}function HA(){return M.backendName}function jA(e){M.removeBackend(e)}function qA(e){return M.findBackend(e)}function KA(e){return M.findBackendFactory(e)}function fh(e,t,n=1){return M.registerBackend(e,t,n)}function ok(){return M.backend}function XA(e,t){ee().setPlatform(e,t)}function YA(e,t){let n=E(e,"a","add"),a=E(t,"b","add");[n,a]=Tt(n,a);let r={a:n,b:a};return M.runKernel(Hr,r)}var J=P({add_:YA});function JA(e,t){let n=E(e,"a","floorDiv"),a=E(t,"b","floorDiv");[n,a]=Tt(n,a);let r={a:n,b:a};return M.runKernel(Hs,r)}var gh=P({floorDiv_:JA});function QA(e,t){let n=E(e,"a","div"),a=E(t,"b","div");if([n,a]=Tt(n,a),n.dtype==="int32"&&a.dtype==="int32")return gh(n,a);let r={a:n,b:a},s={};return M.runKernel(Vs,r,s)}var xe=P({div_:QA});function ZA(e,t){let n=E(e,"a","mul"),a=E(t,"b","mul");[n,a]=Tt(n,a);let r={a:n,b:a};return M.runKernel(ai,r)}var L=P({mul_:ZA});function e$(e){let t=E(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return M.runKernel(sc,n)}else{let n={x:t};return M.runKernel(Po,n)}}var Lt=P({abs_:e$});function t$(e){let t={x:E(e,"x","acos")};return M.runKernel(Oo,t)}var Py=P({acos_:t$});function n$(e){let t={x:E(e,"x","acosh")};return M.runKernel(Lo,t)}var Oy=P({acosh_:n$});function a$(e){F(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),F(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((r,s)=>E(r,`tensors${s}`,"addN")),n=t[0];t.forEach(r=>{if(r.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(r=>{if(!gr(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return M.runKernel(As,a)}var lk=P({addN_:a$});function r$(e,t=null,n=!1){let a={x:E(e,"x","all","bool")},r={axis:t,keepDims:n};return M.runKernel(Sd,a,r)}var yh=P({all_:r$});function s$(e,t=null,n=!1){let a={x:E(e,"x","any","bool")},r={axis:t,keepDims:n};return M.runKernel(Cd,a,r)}var Ec=P({any_:s$});function i$(e,t=0){let n={x:E(e,"x","argMax")},a={axis:t};return M.runKernel($s,n,a)}var Fc=P({argMax_:i$});function o$(e,t=0){let n={x:E(e,"x","argMin")},a={axis:t};return M.runKernel(nc,n,a)}var Ly=P({argMin_:o$});function l$(e){let t={x:E(e,"x","asin")};return M.runKernel(zo,t)}var zy=P({asin_:l$});function u$(e){let t={x:E(e,"x","asinh")};return M.runKernel(Bo,t)}var By=P({asinh_:u$});function c$(e){let t={x:E(e,"x","atan")};return M.runKernel(Wo,t)}var Wy=P({atan_:c$});function p$(e,t){let n=E(e,"a","atan2"),a=E(t,"b","atan2");[n,a]=Tt(n,a);let r={a:n,b:a};return M.runKernel(Uo,r)}var Vy=P({atan2_:p$});function d$(e){let t={x:E(e,"x","atanh")};return M.runKernel(Vo,t)}var Uy=P({atanh_:d$});function h$(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=uk(r);return Ac(e,o,n,s,a,null,null,l)}function ck(e,t,n,a,r,s,i="channelsLast"){let[o,l]=bh(t),c;if(i==="channelsLast")c=[o,l,e[3],e[3]];else if(i==="channelsFirst")c=[o,l,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return Ac(e,c,n,a,r,s,!1,i)}function m$(e,t,n,a,r,s,i="NDHWC"){let[o,l,c]=Gy(t),u,p;if(i==="NDHWC")p="channelsLast",u=[o,l,c,e[4],e[4]];else if(i==="NCDHW")p="channelsFirst",u=[o,l,c,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return pk(e,u,n,a,r,!1,p,s)}function Ac(e,t,n,a,r,s,i=!1,o="channelsLast"){let[l,c,u,p]=[-1,-1,-1,-1];if(o==="channelsLast")[l,c,u,p]=e;else if(o==="channelsFirst")[l,p,c,u]=e;else throw new Error(`Unknown dataFormat ${o}`);let[d,h,,m]=t,[f,g]=bh(n),[y,b]=bh(a),x=Vl(d,y),v=Vl(h,b),{padInfo:N,outHeight:T,outWidth:S}=f$(r,c,u,f,g,x,v,s,o),A=i?m*p:m,$;return o==="channelsFirst"?$=[l,A,T,S]:o==="channelsLast"&&($=[l,T,S,A]),{batchSize:l,dataFormat:o,inHeight:c,inWidth:u,inChannels:p,outHeight:T,outWidth:S,outChannels:A,padInfo:N,strideHeight:f,strideWidth:g,filterHeight:d,filterWidth:h,effectiveFilterHeight:x,effectiveFilterWidth:v,dilationHeight:y,dilationWidth:b,inShape:e,outShape:$,filterShape:t}}function pk(e,t,n,a,r,s=!1,i="channelsLast",o){let[l,c,u,p,d]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,c,u,p,d]=e;else if(i==="channelsFirst")[l,d,c,u,p]=e;else throw new Error(`Unknown dataFormat ${i}`);let[h,m,f,,g]=t,[y,b,x]=Gy(n),[v,N,T]=Gy(a),S=Vl(h,v),A=Vl(m,N),$=Vl(f,T),{padInfo:R,outDepth:B,outHeight:V,outWidth:W}=g$(r,c,u,p,y,b,x,S,A,$,o),G=s?g*d:g,H;return i==="channelsFirst"?H=[l,G,B,V,W]:i==="channelsLast"&&(H=[l,B,V,W,G]),{batchSize:l,dataFormat:i,inDepth:c,inHeight:u,inWidth:p,inChannels:d,outDepth:B,outHeight:V,outWidth:W,outChannels:G,padInfo:R,strideDepth:y,strideHeight:b,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:S,effectiveFilterHeight:A,effectiveFilterWidth:$,dilationDepth:v,dilationHeight:N,dilationWidth:T,inShape:e,outShape:H,filterShape:t}}function y$(e,t,n,a,r){a==null&&(a=Hy(e,t,n));let s=e[0],i=e[1],o=Ai((s-t+2*a)/n+1,r),l=Ai((i-t+2*a)/n+1,r);return[o,l]}function b$(e,t,n,a,r,s){r==null&&(r=Hy(e,t,a));let i=e[0],o=e[1],l=e[2],c=Ai((i-t+2*r)/a+1,s),u=Ai((o-t+2*r)/a+1,s),p=Ai((l-t+2*r)/a+1,s);return[c,u,p,n]}function Hy(e,t,n,a=1){let r=Vl(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function bh(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function Gy(e){return typeof e=="number"?[e,e,e]:e}function Vl(e,t){return t<=1?e:e+(e-1)*(t-1)}function f$(e,t,n,a,r,s,i,o,l){let c,u,p;if(typeof e=="number"){c={top:e,bottom:e,left:e,right:e,type:e===0?"VALID":"NUMBER"};let d=y$([t,n],s,a,e,o);u=d[0],p=d[1]}else if(e==="same"){u=Math.ceil(t/a),p=Math.ceil(n/r);let d=Math.max(0,(u-1)*a+s-t),h=Math.max(0,(p-1)*r+i-n),m=Math.floor(d/2),f=d-m,g=Math.floor(h/2),y=h-g;c={top:m,bottom:f,left:g,right:y,type:"SAME"}}else if(e==="valid")c={top:0,bottom:0,left:0,right:0,type:"VALID"},u=Math.ceil((t-s+1)/a),p=Math.ceil((n-i+1)/r);else if(typeof e=="object"){let d=l==="channelsLast"?e[1][0]:e[2][0],h=l==="channelsLast"?e[1][1]:e[2][1],m=l==="channelsLast"?e[2][0]:e[3][0],f=l==="channelsLast"?e[2][1]:e[3][1];c={top:d,bottom:h,left:m,right:f,type:d===0&&h===0&&m===0&&f===0?"VALID":"EXPLICIT"},u=Ai((t-s+d+h)/a+1,o),p=Ai((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:c,outHeight:u,outWidth:p}}function g$(e,t,n,a,r,s,i,o,l,c,u){let p,d,h,m;if(typeof e=="number"){p={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=b$([t,n,a,1],o,1,r,e,u);d=f[0],h=f[1],m=f[2]}else if(e==="same"){d=Math.ceil(t/r),h=Math.ceil(n/s),m=Math.ceil(a/i);let f=(d-1)*r+o-t,g=(h-1)*s+l-n,y=(m-1)*i+c-a,b=Math.floor(f/2),x=f-b,v=Math.floor(g/2),N=g-v,T=Math.floor(y/2),S=y-T;p={top:v,bottom:N,left:T,right:S,front:b,back:x,type:"SAME"}}else if(e==="valid")p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},d=Math.ceil((t-o+1)/r),h=Math.ceil((n-l+1)/s),m=Math.ceil((a-c+1)/i);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:p,outDepth:d,outHeight:h,outWidth:m}}function Ai(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function ts(e){let[t,n,a]=bh(e);return t===1&&n===1&&a===1}function ja(e,t){return ts(e)||ts(t)}function uk(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function x$(e,t){let n={x:E(e,"x","reshape","string_or_numeric")},a={shape:t};return M.runKernel(vl,n,a)}var U=P({reshape_:x$});function v$(e,t,n,a,r){let s=E(e,"x","avgPool","float32"),i=1;F(ja(n,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`);let o=s,l=!1;s.rank===3&&(l=!0,o=U(s,[1,s.shape[0],s.shape[1],s.shape[2]])),F(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),r!=null&&F(Gt(a),()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r},p=M.runKernel(Ds,c,u);return p=ue(p,s.dtype),l?U(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Zn=P({avgPool_:v$});function w$(e,t,n,a,r,s="NDHWC"){let i=E(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=U(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),F(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),F(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),r!=null&&F(Gt(a),()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},p=M.runKernel(ac,c,u);return p=ue(p,o.dtype),l?U(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var jy=P({avgPool3d_:w$});function k$(e,t=0){F(e.length>=1,()=>"Pass at least one tensor to concat");let n=Cc(e,"tensors","concat","string_or_numeric");if(n[0].dtype==="complex64"&&n.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor - with dtype ${s.dtype}. `)}),n.length===1)return Zr(n[0]);let a=n,r={axis:t};return M.runKernel(Go,a,r)}var Je=P({concat_:k$});function I$(e){let t={x:E(e,"x","sigmoid")};return M.runKernel(fi,t)}var da=P({sigmoid_:I$});function T$(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 M.runKernel(Tl,r,s)}var We=P({slice_:T$});function N$(e){let t={x:E(e,"x","tanh")};return M.runKernel(wi,t)}var Ul=P({tanh_:N$});function S$(e,t,n,a,r,s){let i=E(e,"forgetBias","basicLSTMCell"),o=E(t,"lstmKernel","basicLSTMCell"),l=E(n,"lstmBias","basicLSTMCell"),c=E(a,"data","basicLSTMCell"),u=E(r,"c","basicLSTMCell"),p=E(s,"h","basicLSTMCell"),d=Je([c,p],1),h=ze(d,o),m=J(h,l),f=m.shape[0],g=m.shape[1]/4,y=[f,g],b=We(m,[0,0],y),x=We(m,[0,g],y),v=We(m,[0,g*2],y),N=We(m,[0,g*3],y),T=J(L(da(b),Ul(x)),L(u,da(J(i,v)))),S=L(Ul(T),da(N));return[T,S]}var C$=P({basicLSTMCell_:S$});function _$(e,t,n){let a=E(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);F(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),F(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),F(a.shape[0]%r==0,()=>`input tensor batch is ${a.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${r}`);let s={x:a},i={blockShape:t,crops:n};return M.runKernel(rc,s,i)}var $c=P({batchToSpaceND_:_$});function E$(e){let t;return e.rank===0||e.rank===1?t=U(e,[1,1,1,e.size]):e.rank===2?t=U(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=U(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function F$(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"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;a!=null&&(u=E(a,"offset","batchNorm")),F(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),F(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),F(c==null||o.rank===c.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let p={x:E$(i),scale:c,offset:u,mean:o,variance:l},d={varianceEpsilon:s},h=M.runKernel(js,p,d);return U(h,i.shape)}var br=P({batchNorm_:F$});function A$(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;return a!=null&&(u=E(a,"offset","batchNorm")),F(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),F(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`),F(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),c!=null&&F(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${c.rank}.`),u!=null&&F(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${u.rank}.`),br(i,o,l,u,c,s)}var dk=P({batchNorm2d_:A$});function $$(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;return a!=null&&(u=E(a,"offset","batchNorm")),F(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),F(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`),F(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),c!=null&&F(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${c.rank}.`),u!=null&&F(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${u.rank}.`),br(i,o,l,u,c,s)}var hk=P({batchNorm3d_:$$});function D$(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;return a!=null&&(u=E(a,"offset","batchNorm")),F(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),F(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`),F(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),c!=null&&F(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${c.rank}.`),u!=null&&F(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${u.rank}.`),br(i,o,l,u,c,s)}var mk=P({batchNorm4d_:D$});function R$(e,t,n){let a=E(e,"x","bincount"),r=E(t,"weights","bincount");F(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),F(n>=0,()=>`size must be non-negative, but got ${n}.`),F(r.size===a.size||r.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${a.shape}, weights shape: ${r.shape}.`);let s={x:a,weights:r},i={size:n};return M.runKernel(Fd,s,i)}var fk=P({bincount_:R$});function M$(e,t){let n=E(e,"broadcastTo","x"),a=n.shape;if(t.some(l=>!(l>0)||l%1!=0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthn.rank){let l=n.shape.slice();for(;l.length=0;l--)if(r[l]===t[l])s[l]=1;else if(n.shape[l]!==1)throw new Error(`broadcastTo(): [${a}] cannot be broadcast to [${t}].`);if(s.map((l,c)=>l>1?c:-1).filter(l=>l>=0).length===0)return Zr(n);let i={x:n},o={reps:s};return M.runKernel(qr,i,o)}var Dc=P({broadcastTo_:M$});function P$(e){let t={x:E(e,"x","ceil")};return M.runKernel(Ps,t)}var qy=P({ceil_:P$});function O$(e,t,n){let a=E(e,"x","clipByValue");F(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`);let r={x:a},s={clipValueMin:t,clipValueMax:n};return M.runKernel(jr,r,s)}var qt=P({clipByValue_:O$});function L$(e){return Je(e,0)}var gk=P({concat1d_:L$});function z$(e,t){return Je(e,t)}var yk=P({concat2d_:z$});function B$(e,t){return Je(e,t)}var bk=P({concat3d_:B$});function W$(e,t){return Je(e,t)}var xk=P({concat4d_:W$});function V$(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","conv2d"),l=E(t,"filter","conv2d"),c=o,u=!1;o.rank===3&&(u=!0,c=U(o,[1,o.shape[0],o.shape[1],o.shape[2]])),F(c.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${c.rank}.`),F(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),i!=null&&F(Gt(a),()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`);let p=r==="NHWC"?c.shape[3]:c.shape[1];F(p===l.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${l.shape[2]}.`),F(ja(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let d={x:c,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=M.runKernel(Os,d,h);return u?U(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Ft=P({conv2d_:V$});function U$(e,t,n,a,r="NWC",s=1,i){let o=E(e,"x","conv1d"),l=E(t,"filter","conv1d"),c=o,u=!1;o.rank===2&&(u=!0,c=U(o,[1,o.shape[0],o.shape[1]])),F(c.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${c.rank}.`),F(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),i!=null&&F(Gt(a),()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`),F(c.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${c.shape[2]}) must match input depth for filter ${l.shape[1]}.`),F(ja(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),F(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let p=U(l,[1,l.shape[0],l.shape[1],l.shape[2]]),d=U(c,[c.shape[0],1,c.shape[1],c.shape[2]]),h=Ft(d,p,[1,n],a,"NHWC",[1,s],i);return u?U(h,[h.shape[2],h.shape[3]]):U(h,[h.shape[0],h.shape[2],h.shape[3]])}var xh=P({conv1d_:U$});function G$(e,t,n,a,r,s="NHWC",i){F(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let o=e,l=t,c=!1;t.rank===3&&(c=!0,l=U(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),F(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),F(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),F(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);let u=s==="NHWC"?o[3]:o[1],p=s==="NHWC"?l.shape[3]:l.shape[1];F(u===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${u}) must match input depth for filter ${n.shape[2]}.`),F(p===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${n.shape[3]}.`),i!=null&&F(Gt(r),()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`);let d={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=M.runKernel(Ls,d,h);return c?U(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Ky=P({conv2DBackpropInput_:G$});function H$(e,t,n,a,r,s){let i=E(e,"x","conv2dTranspose"),o=E(t,"filter","conv2dTranspose");return Ky(n,i,o,a,r,"NHWC",s)}var vh=P({conv2dTranspose_:H$});function j$(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=E(e,"x","conv3d"),o=E(t,"filter","conv3d"),l=i,c=!1;i.rank===4&&(c=!0,l=U(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),F(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),F(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),F(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),F(ja(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),F(r==="NDHWC",()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`);let u={x:l,filter:o},p={strides:n,pad:a,dataFormat:r,dilations:s},d=M.runKernel(ic,u,p);return c?U(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Xy=P({conv3d_:j$});function q$(e,t,n,a,r){F(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let s=e,i=t,o=!1;t.rank===4&&(o=!0,i=U(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,e[0],e[1],e[2],e[3]]);let l=s[4],c=i.shape[4];F(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),F(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),F(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),F(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),F(c===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${c}) must match output depth for filter ${n.shape[4]}.`);let u={dy:i,filter:n},p={pad:r,strides:a,inputShape:s},d=M.runKernel(Rd,u,p);return o?U(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var vk=P({conv3DBackpropInput_:q$});function K$(e,t,n,a,r){let s=E(e,"x","conv3dTranspose"),i=E(t,"filter","conv3dTranspose");return vk(n,s,i,a,r)}var X$=P({conv3dTranspose_:K$});function Y$(e){let t={x:E(e,"x","cos")};return M.runKernel(zs,t)}var Rc=P({cos_:Y$});function J$(e){let t={x:E(e,"x","cosh")};return M.runKernel(Ho,t)}var wh=P({cosh_:J$});function Q$(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return M.runKernel(Bs,r,s)}var kh=P({cumsum_:Q$});function Z$(e,t,n,a=!1){let r=E(e,"x","denseBincount"),s=E(t,"weights","denseBincount");F(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),F(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),F(n>=0,()=>`size must be non-negative, but got ${n}.`),F(s.size===r.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${r.shape}, weights shape: ${s.shape}.`);let i={x:r,weights:s},o={size:n,binaryOutput:a};return M.runKernel(Md,i,o)}var wk=P({denseBincount_:Z$});function eD(e,t,n="NHWC"){let a=E(e,"x","depthToSpace"),r=n==="NHWC"?a.shape[1]:a.shape[2],s=n==="NHWC"?a.shape[2]:a.shape[3],i=n==="NHWC"?a.shape[3]:a.shape[1];F(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying +Expected: ${s}.`)}}function t$(e,t){e().then(()=>t.fail(),()=>t())}function n$(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Ur(e)||Ur(e[0])||Ur(t)||Ur(t[0])?Dy(e,n,(a,r)=>a==r):Dy(e,t,(a,r)=>My(a,r,0))}function a$(e,t,n){if(n==null&&(n=$y()),!My(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`)}function My(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function r$(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function s$(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}function u1(e){for(let t=0;tt.dispose())}function qt(e){return P.keep(e)}function d$(e){return P.time(e)}function h$(e){return P.setBackend(e)}function m$(){return P.ready()}function f$(){return P.backendName}function g$(e){P.removeBackend(e)}function y$(e){return P.findBackend(e)}function b$(e){return P.findBackendFactory(e)}function fh(e,t,n=1){return P.registerBackend(e,t,n)}function p1(){return P.backend}function x$(e,t){Z().setPlatform(e,t)}function v$(e,t){let n=_(e,"a","add"),a=_(t,"b","add");[n,a]=Tt(n,a);let r={a:n,b:a};return P.runKernel(Hr,r)}var J=O({add_:v$});function w$(e,t){let n=_(e,"a","floorDiv"),a=_(t,"b","floorDiv");[n,a]=Tt(n,a);let r={a:n,b:a};return P.runKernel(Hs,r)}var gh=O({floorDiv_:w$});function k$(e,t){let n=_(e,"a","div"),a=_(t,"b","div");if([n,a]=Tt(n,a),n.dtype==="int32"&&a.dtype==="int32")return gh(n,a);let r={a:n,b:a},s={};return P.runKernel(Vs,r,s)}var xe=O({div_:k$});function I$(e,t){let n=_(e,"a","mul"),a=_(t,"b","mul");[n,a]=Tt(n,a);let r={a:n,b:a};return P.runKernel(ai,r)}var B=O({mul_:I$});function N$(e){let t=_(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return P.runKernel(sc,n)}else{let n={x:t};return P.runKernel(Po,n)}}var zt=O({abs_:N$});function T$(e){let t={x:_(e,"x","acos")};return P.runKernel(Oo,t)}var Py=O({acos_:T$});function S$(e){let t={x:_(e,"x","acosh")};return P.runKernel(Lo,t)}var Oy=O({acosh_:S$});function C$(e){$(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),$(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((r,s)=>_(r,`tensors${s}`,"addN")),n=t[0];t.forEach(r=>{if(r.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(r=>{if(!gr(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return P.runKernel(Es,a)}var d1=O({addN_:C$});function A$(e,t=null,n=!1){let a={x:_(e,"x","all","bool")},r={axis:t,keepDims:n};return P.runKernel(Sd,a,r)}var yh=O({all_:A$});function F$(e,t=null,n=!1){let a={x:_(e,"x","any","bool")},r={axis:t,keepDims:n};return P.runKernel(Cd,a,r)}var _c=O({any_:F$});function _$(e,t=0){let n={x:_(e,"x","argMax")},a={axis:t};return P.runKernel($s,n,a)}var Ec=O({argMax_:_$});function E$(e,t=0){let n={x:_(e,"x","argMin")},a={axis:t};return P.runKernel(nc,n,a)}var Ly=O({argMin_:E$});function $$(e){let t={x:_(e,"x","asin")};return P.runKernel(zo,t)}var zy=O({asin_:$$});function D$(e){let t={x:_(e,"x","asinh")};return P.runKernel(Wo,t)}var Wy=O({asinh_:D$});function M$(e){let t={x:_(e,"x","atan")};return P.runKernel(Bo,t)}var By=O({atan_:M$});function R$(e,t){let n=_(e,"a","atan2"),a=_(t,"b","atan2");[n,a]=Tt(n,a);let r={a:n,b:a};return P.runKernel(Uo,r)}var Vy=O({atan2_:R$});function P$(e){let t={x:_(e,"x","atanh")};return P.runKernel(Vo,t)}var Uy=O({atanh_:P$});function O$(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=h1(r);return $c(e,o,n,s,a,null,null,l)}function m1(e,t,n,a,r,s,i="channelsLast"){let[o,l]=bh(t),u;if(i==="channelsLast")u=[o,l,e[3],e[3]];else if(i==="channelsFirst")u=[o,l,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return $c(e,u,n,a,r,s,!1,i)}function L$(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=Gy(t),c,p;if(i==="NDHWC")p="channelsLast",c=[o,l,u,e[4],e[4]];else if(i==="NCDHW")p="channelsFirst",c=[o,l,u,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return f1(e,c,n,a,r,!1,p,s)}function $c(e,t,n,a,r,s,i=!1,o="channelsLast"){let[l,u,c,p]=[-1,-1,-1,-1];if(o==="channelsLast")[l,u,c,p]=e;else if(o==="channelsFirst")[l,p,u,c]=e;else throw new Error(`Unknown dataFormat ${o}`);let[d,h,,m]=t,[f,g]=bh(n),[y,b]=bh(a),x=Vl(d,y),v=Vl(h,b),{padInfo:k,outHeight:w,outWidth:S}=z$(r,u,c,f,g,x,v,s,o),A=i?m*p:m,F;return o==="channelsFirst"?F=[l,A,w,S]:o==="channelsLast"&&(F=[l,w,S,A]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:c,inChannels:p,outHeight:w,outWidth:S,outChannels:A,padInfo:k,strideHeight:f,strideWidth:g,filterHeight:d,filterWidth:h,effectiveFilterHeight:x,effectiveFilterWidth:v,dilationHeight:y,dilationWidth:b,inShape:e,outShape:F,filterShape:t}}function f1(e,t,n,a,r,s=!1,i="channelsLast",o){let[l,u,c,p,d]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,u,c,p,d]=e;else if(i==="channelsFirst")[l,d,u,c,p]=e;else throw new Error(`Unknown dataFormat ${i}`);let[h,m,f,,g]=t,[y,b,x]=Gy(n),[v,k,w]=Gy(a),S=Vl(h,v),A=Vl(m,k),F=Vl(f,w),{padInfo:D,outDepth:R,outHeight:L,outWidth:W}=W$(r,u,c,p,y,b,x,S,A,F,o),U=s?g*d:g,G;return i==="channelsFirst"?G=[l,U,R,L,W]:i==="channelsLast"&&(G=[l,R,L,W,U]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:c,inWidth:p,inChannels:d,outDepth:R,outHeight:L,outWidth:W,outChannels:U,padInfo:D,strideDepth:y,strideHeight:b,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:S,effectiveFilterHeight:A,effectiveFilterWidth:F,dilationDepth:v,dilationHeight:k,dilationWidth:w,inShape:e,outShape:G,filterShape:t}}function B$(e,t,n,a,r){a==null&&(a=Hy(e,t,n));let s=e[0],i=e[1],o=Ei((s-t+2*a)/n+1,r),l=Ei((i-t+2*a)/n+1,r);return[o,l]}function V$(e,t,n,a,r,s){r==null&&(r=Hy(e,t,a));let i=e[0],o=e[1],l=e[2],u=Ei((i-t+2*r)/a+1,s),c=Ei((o-t+2*r)/a+1,s),p=Ei((l-t+2*r)/a+1,s);return[u,c,p,n]}function Hy(e,t,n,a=1){let r=Vl(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function bh(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function Gy(e){return typeof e=="number"?[e,e,e]:e}function Vl(e,t){return t<=1?e:e+(e-1)*(t-1)}function z$(e,t,n,a,r,s,i,o,l){let u,c,p;if(typeof e=="number"){u={top:e,bottom:e,left:e,right:e,type:e===0?"VALID":"NUMBER"};let d=B$([t,n],s,a,e,o);c=d[0],p=d[1]}else if(e==="same"){c=Math.ceil(t/a),p=Math.ceil(n/r);let d=Math.max(0,(c-1)*a+s-t),h=Math.max(0,(p-1)*r+i-n),m=Math.floor(d/2),f=d-m,g=Math.floor(h/2),y=h-g;u={top:m,bottom:f,left:g,right:y,type:"SAME"}}else if(e==="valid")u={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((t-s+1)/a),p=Math.ceil((n-i+1)/r);else if(typeof e=="object"){let d=l==="channelsLast"?e[1][0]:e[2][0],h=l==="channelsLast"?e[1][1]:e[2][1],m=l==="channelsLast"?e[2][0]:e[3][0],f=l==="channelsLast"?e[2][1]:e[3][1];u={top:d,bottom:h,left:m,right:f,type:d===0&&h===0&&m===0&&f===0?"VALID":"EXPLICIT"},c=Ei((t-s+d+h)/a+1,o),p=Ei((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:c,outWidth:p}}function W$(e,t,n,a,r,s,i,o,l,u,c){let p,d,h,m;if(typeof e=="number"){p={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=V$([t,n,a,1],o,1,r,e,c);d=f[0],h=f[1],m=f[2]}else if(e==="same"){d=Math.ceil(t/r),h=Math.ceil(n/s),m=Math.ceil(a/i);let f=(d-1)*r+o-t,g=(h-1)*s+l-n,y=(m-1)*i+u-a,b=Math.floor(f/2),x=f-b,v=Math.floor(g/2),k=g-v,w=Math.floor(y/2),S=y-w;p={top:v,bottom:k,left:w,right:S,front:b,back:x,type:"SAME"}}else if(e==="valid")p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},d=Math.ceil((t-o+1)/r),h=Math.ceil((n-l+1)/s),m=Math.ceil((a-u+1)/i);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:p,outDepth:d,outHeight:h,outWidth:m}}function Ei(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function ts(e){let[t,n,a]=bh(e);return t===1&&n===1&&a===1}function ja(e,t){return ts(e)||ts(t)}function h1(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function U$(e,t){let n={x:_(e,"x","reshape","string_or_numeric")},a={shape:t};return P.runKernel(vl,n,a)}var H=O({reshape_:U$});function G$(e,t,n,a,r){let s=_(e,"x","avgPool","float32"),i=1;$(ja(n,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`);let o=s,l=!1;s.rank===3&&(l=!0,o=H(s,[1,s.shape[0],s.shape[1],s.shape[2]])),$(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),r!=null&&$(Ht(a),()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let u={x:o},c={filterSize:t,strides:n,pad:a,dimRoundingMode:r},p=P.runKernel(Ds,u,c);return p=ue(p,s.dtype),l?H(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Zn=O({avgPool_:G$});function H$(e,t,n,a,r,s="NDHWC"){let i=_(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=H(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),$(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),$(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),r!=null&&$(Ht(a),()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let u={x:o},c={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},p=P.runKernel(ac,u,c);return p=ue(p,o.dtype),l?H(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var jy=O({avgPool3d_:H$});function j$(e,t=0){$(e.length>=1,()=>"Pass at least one tensor to concat");let n=Ac(e,"tensors","concat","string_or_numeric");if(n[0].dtype==="complex64"&&n.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor + with dtype ${s.dtype}. `)}),n.length===1)return Zr(n[0]);let a=n,r={axis:t};return P.runKernel(Go,a,r)}var Je=O({concat_:j$});function q$(e){let t={x:_(e,"x","sigmoid")};return P.runKernel(fi,t)}var da=O({sigmoid_:q$});function X$(e,t,n){let a=_(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(Nl,r,s)}var Be=O({slice_:X$});function K$(e){let t={x:_(e,"x","tanh")};return P.runKernel(wi,t)}var Ul=O({tanh_:K$});function Y$(e,t,n,a,r,s){let i=_(e,"forgetBias","basicLSTMCell"),o=_(t,"lstmKernel","basicLSTMCell"),l=_(n,"lstmBias","basicLSTMCell"),u=_(a,"data","basicLSTMCell"),c=_(r,"c","basicLSTMCell"),p=_(s,"h","basicLSTMCell"),d=Je([u,p],1),h=ze(d,o),m=J(h,l),f=m.shape[0],g=m.shape[1]/4,y=[f,g],b=Be(m,[0,0],y),x=Be(m,[0,g],y),v=Be(m,[0,g*2],y),k=Be(m,[0,g*3],y),w=J(B(da(b),Ul(x)),B(c,da(J(i,v)))),S=B(Ul(w),da(k));return[w,S]}var J$=O({basicLSTMCell_:Y$});function Q$(e,t,n){let a=_(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);$(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),$(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),$(a.shape[0]%r==0,()=>`input tensor batch is ${a.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${r}`);let s={x:a},i={blockShape:t,crops:n};return P.runKernel(rc,s,i)}var Dc=O({batchToSpaceND_:Q$});function Z$(e){let t;return e.rank===0||e.rank===1?t=H(e,[1,1,1,e.size]):e.rank===2?t=H(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=H(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function eD(e,t,n,a,r,s){s==null&&(s=.001);let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let c;a!=null&&(c=_(a,"offset","batchNorm")),$(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),$(c==null||o.rank===c.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),$(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let p={x:Z$(i),scale:u,offset:c,mean:o,variance:l},d={varianceEpsilon:s},h=P.runKernel(js,p,d);return H(h,i.shape)}var br=O({batchNorm_:eD});function tD(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let c;return a!=null&&(c=_(a,"offset","batchNorm")),$(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),$(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`),$(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),u!=null&&$(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`),c!=null&&$(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`),br(i,o,l,c,u,s)}var g1=O({batchNorm2d_:tD});function nD(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let c;return a!=null&&(c=_(a,"offset","batchNorm")),$(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),$(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`),$(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),u!=null&&$(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`),c!=null&&$(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`),br(i,o,l,c,u,s)}var y1=O({batchNorm3d_:nD});function aD(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let c;return a!=null&&(c=_(a,"offset","batchNorm")),$(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),$(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`),$(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),u!=null&&$(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`),c!=null&&$(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`),br(i,o,l,c,u,s)}var b1=O({batchNorm4d_:aD});function rD(e,t,n){let a=_(e,"x","bincount"),r=_(t,"weights","bincount");$(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),$(n>=0,()=>`size must be non-negative, but got ${n}.`),$(r.size===a.size||r.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${a.shape}, weights shape: ${r.shape}.`);let s={x:a,weights:r},i={size:n};return P.runKernel(_d,s,i)}var x1=O({bincount_:rD});function sD(e,t){let n=_(e,"broadcastTo","x"),a=n.shape;if(t.some(l=>!(l>0)||l%1!=0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthn.rank){let l=n.shape.slice();for(;l.length=0;l--)if(r[l]===t[l])s[l]=1;else if(n.shape[l]!==1)throw new Error(`broadcastTo(): [${a}] cannot be broadcast to [${t}].`);if(s.map((l,u)=>l>1?u:-1).filter(l=>l>=0).length===0)return Zr(n);let i={x:n},o={reps:s};return P.runKernel(qr,i,o)}var Mc=O({broadcastTo_:sD});function iD(e){let t={x:_(e,"x","ceil")};return P.runKernel(Ps,t)}var qy=O({ceil_:iD});function oD(e,t,n){let a=_(e,"x","clipByValue");$(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`);let r={x:a},s={clipValueMin:t,clipValueMax:n};return P.runKernel(jr,r,s)}var Xt=O({clipByValue_:oD});function lD(e){return Je(e,0)}var v1=O({concat1d_:lD});function uD(e,t){return Je(e,t)}var w1=O({concat2d_:uD});function cD(e,t){return Je(e,t)}var k1=O({concat3d_:cD});function pD(e,t){return Je(e,t)}var I1=O({concat4d_:pD});function dD(e,t,n,a,r="NHWC",s=[1,1],i){let o=_(e,"x","conv2d"),l=_(t,"filter","conv2d"),u=o,c=!1;o.rank===3&&(c=!0,u=H(o,[1,o.shape[0],o.shape[1],o.shape[2]])),$(u.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`),$(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),i!=null&&$(Ht(a),()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`);let p=r==="NHWC"?u.shape[3]:u.shape[1];$(p===l.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${l.shape[2]}.`),$(ja(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let d={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=P.runKernel(Os,d,h);return c?H(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Et=O({conv2d_:dD});function hD(e,t,n,a,r="NWC",s=1,i){let o=_(e,"x","conv1d"),l=_(t,"filter","conv1d"),u=o,c=!1;o.rank===2&&(c=!0,u=H(o,[1,o.shape[0],o.shape[1]])),$(u.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`),$(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),i!=null&&$(Ht(a),()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`),$(u.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`),$(ja(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),$(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let p=H(l,[1,l.shape[0],l.shape[1],l.shape[2]]),d=H(u,[u.shape[0],1,u.shape[1],u.shape[2]]),h=Et(d,p,[1,n],a,"NHWC",[1,s],i);return c?H(h,[h.shape[2],h.shape[3]]):H(h,[h.shape[0],h.shape[2],h.shape[3]])}var xh=O({conv1d_:hD});function mD(e,t,n,a,r,s="NHWC",i){$(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let o=e,l=t,u=!1;t.rank===3&&(u=!0,l=H(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),$(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),$(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),$(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);let c=s==="NHWC"?o[3]:o[1],p=s==="NHWC"?l.shape[3]:l.shape[1];$(c===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${n.shape[2]}.`),$(p===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${n.shape[3]}.`),i!=null&&$(Ht(r),()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`);let d={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=P.runKernel(Ls,d,h);return u?H(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Xy=O({conv2DBackpropInput_:mD});function fD(e,t,n,a,r,s){let i=_(e,"x","conv2dTranspose"),o=_(t,"filter","conv2dTranspose");return Xy(n,i,o,a,r,"NHWC",s)}var vh=O({conv2dTranspose_:fD});function gD(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=_(e,"x","conv3d"),o=_(t,"filter","conv3d"),l=i,u=!1;i.rank===4&&(u=!0,l=H(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),$(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),$(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),$(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),$(ja(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),$(r==="NDHWC",()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`);let c={x:l,filter:o},p={strides:n,pad:a,dataFormat:r,dilations:s},d=P.runKernel(ic,c,p);return u?H(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Ky=O({conv3d_:gD});function yD(e,t,n,a,r){$(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let s=e,i=t,o=!1;t.rank===4&&(o=!0,i=H(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,e[0],e[1],e[2],e[3]]);let l=s[4],u=i.shape[4];$(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),$(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),$(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),$(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),$(u===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${n.shape[4]}.`);let c={dy:i,filter:n},p={pad:r,strides:a,inputShape:s},d=P.runKernel(Md,c,p);return o?H(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var N1=O({conv3DBackpropInput_:yD});function bD(e,t,n,a,r){let s=_(e,"x","conv3dTranspose"),i=_(t,"filter","conv3dTranspose");return N1(n,s,i,a,r)}var xD=O({conv3dTranspose_:bD});function vD(e){let t={x:_(e,"x","cos")};return P.runKernel(zs,t)}var Rc=O({cos_:vD});function wD(e){let t={x:_(e,"x","cosh")};return P.runKernel(Ho,t)}var wh=O({cosh_:wD});function kD(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return P.runKernel(Ws,r,s)}var kh=O({cumsum_:kD});function ID(e,t,n,a=!1){let r=_(e,"x","denseBincount"),s=_(t,"weights","denseBincount");$(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),$(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),$(n>=0,()=>`size must be non-negative, but got ${n}.`),$(s.size===r.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${r.shape}, weights shape: ${s.shape}.`);let i={x:r,weights:s},o={size:n,binaryOutput:a};return P.runKernel(Rd,i,o)}var T1=O({denseBincount_:ID});function ND(e,t,n="NHWC"){let a=_(e,"x","depthToSpace"),r=n==="NHWC"?a.shape[1]:a.shape[2],s=n==="NHWC"?a.shape[2]:a.shape[3],i=n==="NHWC"?a.shape[3]:a.shape[1];$(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${r} and ${t} for depthToSpace with input shape - ${a.shape}`),F(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying + ${a.shape}`),$(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${t} for depthToSpace with input shape - ${a.shape}`),F(i%(t*t)==0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${a.shape}`);let o={x:a},l={blockSize:t,dataFormat:n};return M.runKernel(qo,o,l)}var Yy=P({depthToSpace_:eD});function tD(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","depthwiseConv2d"),l=E(t,"filter","depthwiseConv2d"),c=o,u=!1;o.rank===3&&(u=!0,c=U(o,[1,o.shape[0],o.shape[1],o.shape[2]])),F(c.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${c.rank}.`),F(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`),F(c.shape[3]===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${c.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),i!=null&&F(Gt(a),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`);let p={x:c,filter:l},d={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},h=M.runKernel(Ws,p,d);return u?U(h,[h.shape[1],h.shape[2],h.shape[3]]):h}var ns=P({depthwiseConv2d_:tD});function nD(e){let t={x:E(e,"x","diag")};return M.runKernel(Ld,t)}var aD=P({diag_:nD});function rD(e,t,n,a,r=[1,1],s="NHWC"){let i=E(e,"x","dilation2d"),o=E(t,"filter","dilation2d");F(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),F(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),F(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,c=!1;i.rank===3&&(l=U(i,[1,i.shape[0],i.shape[1],i.shape[2]]),c=!0);let u={x:l,filter:o},p={strides:n,pad:a,dilations:r},d=M.runKernel(oc,u,p);return c?U(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Jy=P({dilation2d_:rD});function sD(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function zt(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function bt(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;r"The first dimension of `a` must match the size of `condition`."),s.rank!==1&&on(s.shape,l.shape,"Error in where: ");let c={condition:s,t:o,e:l};return M.runKernel(kl,c)}var Sn=P({where_:oD});function lD(e){let t={x:E(e,"x","zerosLike")};return M.runKernel(Dl,t)}var Ge=P({zerosLike_:lD});function uD(e,t){let n=E(e,"a","div"),a=E(t,"b","div");[n,a]=Tt(n,a);let r=xe(n,a),s=Ge(r),i=as(a,s);return Sn(i,s,r)}var Qy=P({divNoNan_:uD});function cD(e,t){let n=E(e,"t1","dot"),a=E(t,"t2","dot");F((n.rank===1||n.rank===2)&&(a.rank===1||a.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${a.rank}.`);let r=n.rank===1?n.size:n.shape[1],s=a.rank===1?a.size:a.shape[0];if(F(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=U(n,[1,-1]),o=U(a,[-1,1]),l=ze(i,o);return U(l,[])}else if(n.rank===1&&a.rank===2){let i=U(n,[1,-1]),o=U(a,[a.shape[0],a.shape[1]]),l=ze(i,o);return U(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=U(a,[-1,1]),o=ze(n,i);return U(o,[o.size])}else{let i=U(a,[a.shape[0],a.shape[1]]);return ze(n,i)}}var kk=P({dot_:cD});function pD(e){let t={x:E(e,"x","elu")};return M.runKernel(Ko,t)}var Gl=P({elu_:pD});function dD(e){let t=E(e,"x","erf");F(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=ue(t,"float32"));let n={x:t};return M.runKernel(Xo,n)}var Zy=P({erf_:dD});function hD(e){let t={x:E(e,"x","exp")};return M.runKernel(Us,t)}var hn=P({exp_:hD});function mD(e,t=0){let n=E(e,"x","expandDims","string_or_numeric");F(t<=n.rank,()=>"Axis must be <= rank of the tensor");let a={input:n},r={dim:t};return M.runKernel(Jo,a,r)}var Mn=P({expandDims_:mD});function fD(e){let t={x:E(e,"x","expm1")};return M.runKernel(Qo,t)}var eb=P({expm1_:fD});function gD(e,t){let n=E(e,"x","tile","string_or_numeric");F(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`);let a={x:n},r={reps:t};return M.runKernel(qr,a,r)}var qa=P({tile_:gD});function yD(e,t,n,a="float32"){t==null&&(t=e);let r=Le([e,t],a),s=e<=t?e:t;for(let o=0;o`Error in localResponseNormalization: x must be rank 3 or 4 but got - rank ${s.rank}.`),F(Gt(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=U(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},c={depthRadius:t,bias:n,alpha:a,beta:r},u=M.runKernel(pc,l,c);return o?U(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var nb=P({localResponseNormalization_:ED});function FD(e){let t={x:E(e,"x","log")};return M.runKernel(Ys,t)}var Pn=P({log_:FD});function AD(e){let t={x:E(e,"x","log1p")};return M.runKernel(ll,t)}var Nh=P({log1p_:AD});function $D(e){return F(Gr(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 M.tidy(()=>{let{value:s,grads:i}=M.gradients(()=>e(a),[a],r);return r!=null&&on(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Sh(i),i[0]})}}function DD(e){return F(Gr(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{F(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=Cc(t,"args","tf.grads","string_or_numeric"),r=n!=null?E(n,"dy","tf.grads"):null;return M.tidy(()=>{let{value:s,grads:i}=M.gradients(()=>e(...a),a,r);return r!=null&&on(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Sh(i),i})}}function RD(e){return F(Gr(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{F(t instanceof Ee,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),F(n==null||n instanceof Ee,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=M.gradients(()=>e(t),[t],n);return Sh(a),{grad:a[0],value:r}}}function MD(e){return F(Gr(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{F(Array.isArray(t)&&t.every(r=>r instanceof Ee),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),F(n==null||n instanceof Ee,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=M.gradients(()=>e(...t),t,n);return n!=null&&on(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Sh(a.grads),a}}function Ck(e,t){F(Gr(e),()=>"The f passed in variableGrads(f) must be a function"),F(t==null||Array.isArray(t)&&t.every(c=>c instanceof Xr),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let c in M.registeredVariables)t.push(M.registeredVariables[c])}let a=n?t.filter(c=>!c.trainable):null,r=t.length;t=t.filter(c=>c.trainable),F(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${r} variables is trainable.`);let s=!0,{value:i,grads:o}=M.gradients(e,t,null,s);F(o.some(c=>c!=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()."),F(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let l={};return t.forEach((c,u)=>{o[u]!=null&&(l[c.name]=o[u])}),a!=null&&a.forEach(c=>l[c.name]=null),{value:i,grads:l}}function Ka(e){return M.customGrad(e)}function Sh(e){if(e.filter(t=>t==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that - the f you passed encloses all operations that lead from x to y.`)}function PD(e){let t={x:E(e,"x","neg")};return M.runKernel(pl,t)}var Nt=P({neg_:PD});function OD(e){let t={x:E(e,"x","softplus")};return M.runKernel(Cl,t)}var jl=P({softplus_:OD});function LD(e){let t=E(e,"x","logSigmoid");return Ka(n=>({value:Nt(jl(Nt(n))),gradFunc:a=>L(a,da(Nt(n)))}))(t)}var _k=P({logSigmoid_:LD});function zD(e,t=null,n=!1){let a={x:E(e,"x","max")},r={reductionIndices:t,keepDims:n};return M.runKernel(Js,a,r)}var ea=P({max_:zD});function BD(e,t){let n=E(e,"a","sub"),a=E(t,"b","sub");[n,a]=Tt(n,a);let r={a:n,b:a};return M.runKernel(vi,r)}var me=P({sub_:BD});function WD(e,t=null,n=!1){let a=E(e,"x","sum");a.dtype==="bool"&&(a=ue(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return M.runKernel(yi,r,s)}var Se=P({sum_:WD});function VD(e,t=-1){let n=E(e,"logits","logSoftmax");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and axis was ${t}`);return Ka((a,r)=>{let s=!0,i=ea(a,t,!0),o=me(a,i),l=me(ue(o,"float32"),Pn(Se(hn(o),t,s)));return r([l]),{value:l,gradFunc:(c,u)=>{let[p]=u,d=!0,h=hn(p);return me(c,L(Se(c,t,d),h))}}})(n)}var Ch=P({logSoftmax_:VD});function ab(e,t){for(let n=0;ne[s]);return[n,r]}function Ri(e,t){let n=t.map(a=>1);return Ek(e,n,t)}function UD(e,t,n){F(ab(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function Ak(e,t){if(ab(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function rb(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function GD(e,t){let n=[];for(let a=t-e;a`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),F(ja(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),r!=null&&F(Gt(a),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r},p=M.runKernel(Zs,c,u);return l?U(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var At=P({maxPool_:YD});function JD(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=U(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),F(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),F(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),r!=null&&F(Gt(a),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},p=M.runKernel(dc,c,u);return l?U(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var ib=P({maxPool3d_:JD});function QD(e,t,n,a,r=!1){let s={x:E(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=M.runKernel(Xd,s,i);return{result:o[0],indexes:o[1]}}var Dk=P({maxPoolWithArgmax_:QD});function ZD(e,t){let n=E(e,"a","maximum"),a=E(t,"b","maximum");[n,a]=Tt(n,a),n.dtype==="bool"&&(n=ue(n,"int32"),a=ue(a,"int32")),bt(n.shape,a.shape);let r={a:n,b:a};return M.runKernel(Qs,r)}var Xa=P({maximum_:ZD});function eR(e,t=null,n=!1){let a={x:E(e,"x","mean")},r={axis:t,keepDims:n};return M.runKernel(ei,a,r)}var St=P({mean_:eR});function tR(e,t=null,n=!1){let a={x:E(e,"x","min")},r={axis:t,keepDims:n};return M.runKernel(ti,a,r)}var ql=P({min_:tR});function nR(e,t){let n=E(e,"a","minimum"),a=E(t,"b","minimum");[n,a]=Tt(n,a),n.dtype==="bool"&&(n=ue(n,"int32"),a=ue(a,"int32")),bt(n.shape,a.shape);let r={a:n,b:a};return M.runKernel(ni,r)}var Kl=P({minimum_:nR});function aR(e,t,n){F(n==="reflect"||n==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`);let a=E(e,"x","mirrorPad");if(a.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");F(t.length===a.rank,()=>`Padding doesn't match input. Must be ${a.rank}. Got ${t.length}.`);let r=n==="reflect"?1:0;for(let o=0;o"Invalid number of paddings. Must be length of 2 each."),F(t[o][0]>=0&&t[o][0]<=a.shape[o]-r&&t[o][1]>=0&&t[o][1]<=a.shape[o]-r,()=>`Padding in dimension ${o} cannot be greater than or equal to ${a.shape[o]-r} or less than 0 for input of shape ${a.shape}`);let s={paddings:t,mode:n},i={x:a};return M.runKernel(hc,i,s)}var ob=P({mirrorPad_:aR});function rR(e,t){let n=E(e,"a","mod"),a=E(t,"b","mod");[n,a]=Tt(n,a);let r={a:n,b:a};return M.runKernel(cl,r)}var lb=P({mod_:rR});function sR(e){let t=E(e,"x","square"),n={};return M.runKernel("Square",{x:t},n)}var lt=P({square_:sR});function iR(e,t=null,n=!1){e=E(e,"x","moments");let a=ca(t,e.shape),r=St(e,a,n),s=r.shape;n||(s=Ri(r.shape,a));let i=lt(me(ue(e,"float32"),U(r,s))),o=St(i,a,n);return{mean:r,variance:o}}var Eh=P({moments_:iR});function oR(e,t,n,a){let r=E(t,"data","multiRNNCell"),s=Cc(n,"c","multiRNNCell"),i=Cc(a,"h","multiRNNCell"),o=r,l=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();let o={logits:i===1?U(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},c=M.runKernel(Yd,o,l);return i===1?U(c,[c.size]):c}var Rk=P({multinomial_:uR});function cR(e,t){let n=E(e,"a","notEqual"),a=E(t,"b","notEqual");[n,a]=Tt(n,a),bt(n.shape,a.shape);let r={a:n,b:a};return M.runKernel(dl,r)}var Mi=P({notEqual_:cR});function xt(e,t="float32"){if(t==="complex64"){let a=xt(e,"float32"),r=xt(e,"float32");return Yr(a,r)}let n=Nd(Pt(e),t);return M.makeTensor(n,e,t)}function Ya(e,t="float32"){if(t==="complex64"){let a=Ya(e,"float32"),r=xt(e,"float32");return Yr(a,r)}let n=ty(Pt(e),t);return M.makeTensor(n,e,t)}function pR(e){let t={x:E(e,"x","onesLike")};return M.runKernel(gl,t)}var On=P({onesLike_:pR});function dR(e,t){let n=E(e,"v1","outerProduct"),a=E(t,"v2","outerProduct");F(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=U(n,[-1,1]),s=U(a,[1,-1]);return ze(r,s)}var hR=P({outerProduct_:dR});function mR(e,t,n=0){let a=E(e,"x","pad");if(a.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let r={paddings:t,constantValue:n},s={x:a};return M.runKernel(si,s,r)}var ta=P({pad_:mR});function fR(e,t,n=0){return F(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),ta(e,[t],n)}var gR=P({pad1d_:fR});function yR(e,t,n=0){return F(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ta(e,t,n)}var bR=P({pad2d_:yR});function xR(e,t,n=0){return F(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ta(e,t,n)}var vR=P({pad3d_:xR});function wR(e,t,n=0){return F(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ta(e,t,n)}var kR=P({pad4d_:wR});function IR(e,t,n){let a=E(e,"x","spaceToBatchND");F(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),F(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),F(a.shape.reduce((i,o,l)=>l>0&&l<=t.length?i&&(o+n[l-1][0]+n[l-1][1])%t[l-1]==0:i,!0),()=>`input spatial dimensions ${a.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`);let r={x:a},s={blockShape:t,paddings:n};return M.runKernel(gc,r,s)}var Oc=P({spaceToBatchND_:IR});function SR(e,t,n,a,r,s){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let i=E(e,"x","maxPool"),o=i,l=!1;i.rank===3&&(l=!0,o=U(i,[1,i.shape[0],i.shape[1],i.shape[2]])),F(ja(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let c=ck(o.shape,t,s,r,a),u=[c.dilationHeight,c.dilationWidth],p;a==="same"?p=NR([c.filterHeight,c.filterWidth],u):p=[[0,0],[0,0]];let d=u[0]===1&&u[1]===1,[h,m]=TR([c.inHeight,c.inWidth],u,p),f=d?a:"valid",g=d?o:Oc(o,u,h),y=(n==="avg"?()=>Zn(g,t,s,f):()=>At(g,t,s,f))(),b=d?y:$c(y,u,m);return l?U(b,[b.shape[1],b.shape[2],b.shape[3]]):b}function TR(e,t,n){let a=n.map(u=>u[0]),r=n.map(u=>u[1]),s=e.concat(a,r),i=t.map((u,p)=>(u-s[p]%u)%u),o=r.map((u,p)=>u+i[p]),l=t.map((u,p)=>[a[p],o[p]]),c=t.map((u,p)=>[0,i[p]]);return[l,c]}function NR(e,t){let n=e.map((s,i)=>s+(s-1)*(t[i]-1)).map(s=>s-1),a=n.map(s=>Math.floor(s/2)),r=n.map((s,i)=>s-a[i]);return n.map((s,i)=>[a[i],r[i]])}var Mk=P({pool_:SR});function CR(e,t){let n=E(e,"base","pow"),a=E(t,"exp","pow");[n,a]=Tt(n,a);let r={a:n,b:a};return M.runKernel(ii,r)}var xr=P({pow_:CR});function _R(e,t){let n=E(e,"x","prelu"),a=E(t,"alpha","prelu"),r={x:n,alpha:a};return M.runKernel(oi,r)}var Lc=P({prelu_:_R});function ER(e,t=null,n=!1){let a=E(e,"x","prod");a.dtype==="bool"&&(a=ue(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return M.runKernel(bl,r,s)}var Fh=P({prod_:ER});function FR(e,t,n){let a=Pt(e),r=null;if(n==null||n==="float32")r=new Float32Array(a);else if(n==="int32")r=new Int32Array(a);else if(n==="bool")r=new Uint8Array(a);else throw new Error(`Unknown data type ${n}`);for(let s=0;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}},$R=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=ub.alea(r.toString()),this.randn=new cb(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(),rthis.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(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=ub.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function RR(e,t,n=1,a="float32",r){if(n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new $R(t,n,a,r),i=Le(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),Ln(t,0)}var GR=P({reverse1d_:UR});function HR(e,t){let n=E(e,"x","reverse");return F(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),Ln(n,t)}var jR=P({reverse2d_:HR});function qR(e,t){let n=E(e,"x","reverse");return F(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),Ln(n,t)}var KR=P({reverse3d_:qR});function XR(e,t){let n=E(e,"x","reverse");return F(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),Ln(n,t)}var YR=P({reverse4d_:XR});function JR(e){let t={x:E(e,"x","round")};return M.runKernel(di,t)}var db=P({round_:JR});function QR(e){let t={x:E(e,"x","rsqrt")};return M.runKernel(hi,t)}var Dh=P({rsqrt_:QR});function pe(e,t){if((ln(e)&&t!=="string"||Array.isArray(e))&&t!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(t==="string"&&ln(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return Jr(e,[],[],t)}function ZR(e){let t={x:E(e,"x","selu")};return M.runKernel(Il,t)}var Rh=P({selu_:ZR});function eM(e,t,n,a,r,s=[1,1],i="NHWC"){let o=E(e,"x","separableConv2d"),l=E(t,"depthwiseFilter","separableConv2d"),c=E(n,"pointwiseFilter","separableConv2d"),u=o,p=!1;if(o.rank===3&&(p=!0,u=U(o,[1,o.shape[0],o.shape[1],o.shape[2]])),i==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");F(u.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${u.rank}.`),F(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),F(c.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),F(c.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${c.shape[0]}.`),F(c.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${c.shape[1]}.`);let d=l.shape[2],h=l.shape[3];F(c.shape[2]===d*h,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${d*h}, but got ${c.shape[2]}.`);let m=ns(u,l,a,r,i,s),f=Ft(m,c,1,"valid",i);return p?U(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Pi=P({separableConv2d_:eM});async function tM(e,t){let n=E(e,"x","setdiff1d"),a=E(t,"y","setdiff1d");F(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),F(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),F(a.rank===1,()=>`y should be 1D tensor, but got y (${a.shape}).`);let r=await n.data(),s=await a.data(),i=new Set(s),o=0;for(let u=0;u`slice1d expects a rank-1 tensor, but got a rank-${a.rank} tensor`),We(a,[t],[n])}var Oh=P({slice1d_:sM});function iM(e,t,n){let a=E(e,"x","slice2d");return F(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),We(a,t,n)}var mb=P({slice2d_:iM});function oM(e,t,n){let a=E(e,"x","slice3d");return F(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),We(a,t,n)}var Yl=P({slice3d_:oM});function lM(e,t,n){let a=E(e,"x","slice4d");return F(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),We(a,t,n)}var Bc=P({slice4d_:lM});function uM(e,t=-1){let n=E(e,"logits","softmax","float32");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and dim was ${t}`);let a={logits:n},r={dim:t};return M.runKernel(bi,a,r)}var Na=P({softmax_:uM});function cM(e){F(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return M.runKernel(Vd,t)}var Wc=P({fft_:cM});function pM(e){F(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return M.runKernel(Ud,t)}var Jl=P({ifft_:pM});function dM(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=U(e,[n,t]);a=Jl(r)}else{let r=[n,2*(t-1)],s=U(zc(e),[n,t]),i=U(Ih(e),[n,t]),o=Ln(We(s,[0,1],[n,t-2]),1),l=L(Ln(We(i,[0,1],[n,t-2]),1),pe(-1)),c=Je([s,o],1),u=Je([i,l],1),p=U(Yr(c,u),[r[0],r[1]]);a=Jl(p)}if(a=zc(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=U(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var Lh=P({irfft_:dM});function hM(e,t,n=0){let a={x:E(e,"x","split")},r={numOrSizeSplits:t,axis:n};return M.runKernel(_l,a,r)}var zn=P({split_:hM});function mM(e,t){F(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1],a=e.size/n,r;if(t!=null&&t0),f=e.shape.map(g=>g);f[e.shape.length-1]=t,r=We(e,m,f),n=t}else if(t!=null&&t>n){let m=e.shape.map(f=>f);m[e.shape.length-1]=t-n,r=Je([e,xt(m)],e.shape.length-1),n=t}else r=e;let s=Ge(r),i=U(Yr(r,s),[a,n]),o=Wc(i),l=Math.floor(n/2)+1,c=zc(o),u=Ih(o),p=zn(c,[l,n-l],c.shape.length-1),d=zn(u,[l,n-l],u.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,U(Yr(p[0],d[0]),h)}var Vc=P({rfft_:mM});function fM(e){let t={x:E(e,"x","sqrt")};return M.runKernel(gi,t)}var an=P({sqrt_:fM});function gM(e,t){let n=E(e,"a","squaredDifference"),a=E(t,"b","squaredDifference");[n,a]=Tt(n,a),bt(n.shape,a.shape);let r={a:n,b:a},s={};return M.runKernel(xi,r,s)}var zh=P({squaredDifference_:gM});function yM(e,t){let n=E(e,"x","squeeze");return U(n,n0(n.shape,t).newShape)}var ss=P({squeeze_:yM});function bM(e,t=0){let n=Cc(e,"tensors","stack","string_or_numeric");F(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&F(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return M.runKernel(yl,a,r)}var $t=P({stack_:bM});function xM(e,t=0){let n={x:E(e,"x","step")},a={alpha:t};return M.runKernel(Kr,n,a)}var Ql=P({step_:xM});function vM(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let c={x:E(e,"x","stridedSlice")},u={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return M.runKernel(El,c,u)}var fb=P({stridedSlice_:vM});function wM(e){let t={x:E(e,"x","tan")};return M.runKernel(Fl,t)}var gb=P({tan_:wM});function Ze(e,t){Es(e);let n=Ga(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Jr(e,null,n,t)}function Sa(e,t,n){if(Es(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=Ga(e,n);if(a.length!==2&&a.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return Jr(e,t,a,n)}function Ca(e,t,n){if(Es(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=Ga(e,n);if(a.length!==4&&a.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return Jr(e,t,a,n)}function kM(e,t,n){if(Es(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=Ga(e,n);if(a.length!==5&&a.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return Jr(e,t,a,n)}function IM(e,t,n){if(Es(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=Ga(e,n);if(a.length!==6&&a.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||a,Jr(e,t,a,n)}function TM(e,t=1,n=!0){let a=E(e,"x","topk");if(a.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let r=a.shape[a.shape.length-1];if(t>r)throw new Error(`'k' passed to topk() must be <= the last dimension (${r}) but got ${t}`);let s={x:a},i={k:t,sorted:n},[o,l]=M.runKernel(Al,s,i);return{values:o,indices:l}}var yb=P({topk_:TM});function NM(e,t=0,n=1,a,r){if(a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new cb(t,n,a,!0,r),i=Le(e,a);for(let o=0;o0,()=>"The input tensor must be at least 1D");let a={x:n},r={axis:t},[s,i]=M.runKernel(th,a,r);return{values:s,indices:i}}var Wh=P({unique_:SM});function CM(e,t,n){let a=E(e,"x","unsortedSegmentSum"),r=E(t,"segmentIds","unsortedSegmentSum","int32");F(Gt(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return M.runKernel(bc,s,i)}var bb=P({unsortedSegmentSum_:CM});function _M(e,t=0){let n=E(e,"x","unstack","string_or_numeric");F(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`);let a={value:n},r={axis:t};return M.runKernel($l,a,r)}var ut=P({unstack_:_M});function Lk(e,t=!0,n,a){return M.makeVariable(e,t,n,a)}function zk(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),on(o.slice(s,s+i),r.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let f=s;f"Shape mismatch in v and x");let l=pe(1),c=me(l,o),u=L(me(i,s),c);if(r){F(a!=null,()=>"When using zeroDebias: true, step is required.");let p=E(a,"step","movingAverage");u=xe(u,me(l,xr(o,p)))}return J(s,u)}var RM=P({movingAverage_:DM});function MM(e,t,n){let a=E(e,"indices","scatterND","int32"),r=E(t,"updates","scatterND");Ay(r,a,n);let s={indices:a,updates:r},i={shape:n};return M.runKernel(wl,s,i)}var Wk=P({scatterND_:MM});function PM(e,t,n,a){if(e.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);let r=e.rank>0?e.shape[0]:1,s=e.rank>1?e.shape[1]:1;if(n.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${n.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===r))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${r}]`);if(t.dtype!==a.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function OM(e,t,n,a=0){let r=E(e,"sparseIndices","sparseToDense","int32"),s=E(t,"sparseValues","sparseToDense"),i=E(a,"defaultValue","sparseToDense",s.dtype);PM(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return M.runKernel(eh,o,l)}var vb=P({sparseToDense_:OM});function LM(e,t){let n=E(t,"indices","gatherND","int32"),a={params:E(e,"x","gatherND"),indices:n};return M.runKernel(tl,a)}var Vk=P({gatherND_:LM});function zM(e,t){if(t==null)return e.shape.slice();if(gr(e.shape,t))return t;if(e.shape.length===t.length){let n=[];for(let a=0;a`x has to be a floating point tensor since it's going to be scaled, but got a ${r.dtype} tensor instead.`),F(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof Ee?r.clone():r;let s=zM(r,n),i=1-t,o=xe(Hl(J(Xl(s,0,1,"float32",a),i)),i);return L(r,o)}var Uk=P({dropout_:BM});function Gk(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function wb(e,t,n){let a=1-e%2,r=new Float32Array(e);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${a.rank}`),F(a.rank-1===r.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${a.rank} and targets rank ${r.rank}`),on(a.shape.slice(0,a.shape.length-1),r.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=a.shape[a.shape.length-1];F(n>0&&n<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${n}`);let i=await a.data(),o=await r.data(),[l,c]=[i.length/s,s],u=a0("bool",l);for(let p=0;pg.value-f.value),u[p]=0;for(let f=0;fUM,depthwiseConv2d:()=>GM,matMul:()=>HM});function jM(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=U(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=U(t,[1,t.shape[0],t.shape[1],t.shape[2]])),F(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),F(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),F(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);let c=s==="NHWC"?o.shape[3]:o.shape[1],u=s==="NHWC"?l.shape[3]:l.shape[1];F(c===n[2],()=>`Error in conv2dDerFilter: depth of input ${c}) must match input depth in filter (${n[2]}.`),F(u===n[3],()=>`Error in conv2dDerFilter: depth of dy (${u}) must match output depth for filter (${n[3]}).`),i!=null&&F(Gt(r),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`);let p={x:o,dy:l},d={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return M.runKernel($d,p,d)}var kb=P({conv2DBackpropFilter_:jM});function Uh(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return L(e,Ql(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function Gh(e,t){let n=t,a=zt(e.shape,t.shape);return a.length>0&&(n=Se(n,a)),U(n,e.shape)}function Hh(e,t,n,a){if(t==="linear")return e;if(t==="relu")return qe(e);if(t==="elu")return Gl(e);if(t==="relu6")return $h(e);if(t==="prelu")return Lc(e,n);if(t==="leakyrelu")return Mc(e,a);throw new Error(`Unknown fused activation ${t}.`)}var jh=(e,t)=>!(e>0)||t==="linear";function qM({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:c,leakyreluAlpha:u}){if(l=l||"linear",jh(M.state.gradientDepth,l)===!1){let N=Ft(e,t,n,a,r,s,i);return o!=null&&(N=J(N,o)),Hh(N,l,c,u)}let p=E(e,"x","conv2d"),d=E(t,"filter","conv2d"),h=p,m=!1;p.rank===3&&(m=!0,h=U(p,[1,p.shape[0],p.shape[1],p.shape[2]])),F(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),F(d.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${d.rank}.`),i!=null&&F(Gt(a),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`),F(h.shape[3]===d.shape[2],()=>`Error in conv2d: depth of input (${h.shape[3]}) must match input depth for filter ${d.shape[2]}.`),F(ja(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),F(r==="NHWC",()=>`Error in conv2d: got dataFormat of ${r} but only NHWC is currently supported.`);let f=Ac(h.shape,d.shape,n,s,a,i),g;o!=null&&(g=E(o,"bias","fused conv2d"),[g]=Tt(g,p),bt(f.outShape,g.shape));let y;c!=null&&(y=E(c,"prelu weights","fused conv2d"));let b=(N,T)=>{let[S,A,$,R]=T,B=Uh(N,$,l);F(ts(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let V=Ky(A.shape,B,S,n,a),W=kb(A,B,S.shape,n,a),G=[V,W];if(R!=null){let H=Gh(R,B);G.push(H)}return G},x={x:h,filter:d,bias:g,preluActivationWeights:y},v={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:u};return o==null?Ka((N,T,S)=>{let A=M.runKernel(Ti,x,v);return S([T,N,A]),m&&(A=U(A,[A.shape[1],A.shape[2],A.shape[3]])),{value:A,gradFunc:b}})(h,d):Ka((N,T,S,A)=>{let $=M.runKernel(Ti,x,v);return A([T,N,$,S]),m&&($=U($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:b}})(h,d,g)}var UM=P({fusedConv2d_:qM});function KM(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=U(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=U(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let c={x:o,dy:l},u={strides:a,pad:r,dimRoundingMode:i,dilations:s,filterShape:n};return M.runKernel(Pd,c,u)}var Hk=P({depthwiseConv2dNativeBackpropFilter_:KM});function XM(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=U(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let c={dy:o,filter:n},u={strides:a,pad:r,dimRoundingMode:i,dilations:s,inputShape:e},p=M.runKernel(Od,c,u);return l?U(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var jk=P({depthwiseConv2dNativeBackpropInput_:XM});function YM({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:c,leakyreluAlpha:u}){if(jh(M.state.gradientDepth,l)===!1){let N=ns(e,t,n,a,r,s,i);return o!=null&&(N=J(N,o)),Hh(N,l,c,u)}let p=E(e,"x","depthwiseConv2d"),d=E(t,"filter","depthwiseConv2d"),h=p,m=!1;p.rank===3&&(m=!0,h=U(p,[1,p.shape[0],p.shape[1],p.shape[2]])),F(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),F(d.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${d.rank}.`),F(h.shape[3]===d.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${d.shape[2]}.`),s==null&&(s=[1,1]),F(ja(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),i!=null&&F(Gt(a),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${i} but got pad ${a}.`);let f=Ac(h.shape,d.shape,n,s,a,i,!0),g;o!=null&&(g=E(o,"bias","fused conv2d"),[g]=Tt(g,p),bt(f.outShape,g.shape));let y;c!=null&&(y=E(c,"prelu weights","fused depthwiseConv2d"));let b=(N,T)=>{F(ts(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[S,A,$,R]=T,B=Uh(N,$,l),V=jk(A.shape,B,S,n,a,s,i),W=Hk(A,B,S.shape,n,a,s,i);if(R!=null){let G=Gh(g,B);return[V,W,G]}return[V,W]},x={x:h,filter:d,bias:g,preluActivationWeights:y},v={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:u};return o==null?Ka((N,T,S)=>{let A=M.runKernel(Ni,x,v);return S([T,N,A]),m&&(A=U(A,[A.shape[1],A.shape[2],A.shape[3]])),{value:A,gradFunc:b}})(h,d):Ka((N,T,S,A)=>{let $=M.runKernel(Ni,x,v);return A([T,N,$,S]),m&&($=U($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:b}})(h,d,g)}var GM=P({fusedDepthwiseConv2d_:YM});function JM({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o}){if(jh(M.state.gradientDepth,s)===!1){let R=ze(e,t,n,a);return r!=null&&(R=J(R,r)),Hh(R,s,i,o)}let l=E(e,"a","fused matMul"),c=E(t,"b","fused matMul");[l,c]=Tt(l,c);let u=n?l.shape[l.rank-2]:l.shape[l.rank-1],p=a?c.shape[c.rank-1]:c.shape[c.rank-2],d=n?l.shape[l.rank-1]:l.shape[l.rank-2],h=a?c.shape[c.rank-2]:c.shape[c.rank-1],m=l.shape.slice(0,-2),f=c.shape.slice(0,-2),g=Pt(m),y=Pt(f);F(l.rank>=2&&c.rank>=2&&l.rank===c.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${l.rank} and ${c.rank}.`),F(gr(m,f),()=>`Error in fused matMul: outer dimensions (${m}) and (${f}) of Tensors with shapes ${l.shape} and ${c.shape} must match.`),F(u===p,()=>`Error in fused matMul: inner shapes (${u}) and (${p}) of Tensors with shapes ${l.shape} and ${c.shape} and transposeA=${n} and transposeB=${a} must match.`);let b=l.shape.slice(0,-2).concat([d,h]),x=n?U(l,[g,u,d]):U(l,[g,d,u]),v=a?U(c,[y,h,p]):U(c,[y,p,h]),N;r!=null&&(N=E(r,"bias","fused matMul"),[N]=Tt(N,l),bt(b,N.shape));let T;i!=null&&(T=E(i,"prelu weights","fused matMul"));let S=(R,B)=>{let[V,W,G,H]=B,X=Uh(U(R,G.shape),G,s),q,te;if(!n&&!a?(q=ze(X,W,!1,!0),te=ze(V,X,!0,!1)):!n&&a?(q=ze(X,W,!1,!1),te=ze(X,V,!0,!1)):n&&!a?(q=ze(W,X,!1,!0),te=ze(V,X,!1,!1)):(q=ze(W,X,!0,!0),te=ze(X,V,!0,!0)),r!=null){let Q=Gh(H,X);return[q,te,Q]}else return[q,te]},A={a:x,b:v,bias:N,preluActivationWeights:T},$={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?Ka((R,B,V)=>{let W=M.runKernel(Ii,A,$);return V([R,B,W]),{value:U(W,b),gradFunc:S}})(x,v):Ka((R,B,V,W)=>{let G=M.runKernel(Ii,A,$);return W([R,B,G,V]),{value:U(G,b),gradFunc:S}})(x,v,N)}var HM=P({fusedMatMul_:JM});function QM(e){return wb(e,.54,.46)}var ZM=P({hammingWindow_:QM});function eP(e){return wb(e,.5,.5)}var qk=P({hannWindow_:eP});function tP(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(We(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),F(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${c},4] but had shape ${o.shape}.`),F(l.rank===1&&l.shape[0]===c,()=>`Error in cropAndResize: boxInd must be have size [${c}] but had shape ${o.shape}.`),F(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),F(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),F(r==="bilinear"||r==="nearest",()=>`method must be bilinear or nearest, but was ${r}`);let u={image:i,boxes:o,boxInd:l},p={method:r,extrapolationValue:s,cropSize:a};return M.runKernel(jo,u,p)}var sP=P({cropAndResize_:rP});function iP(e){let t=E(e,"image","flipLeftRight","float32");F(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return M.runKernel(Zo,n,{})}var oP=P({flipLeftRight_:iP});function lP(e,t,n=0,a=.5){let r=E(e,"image","rotateWithOffset","float32");F(r.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${r.rank}.`);let s={image:r},i={radians:t,fillValue:n,center:a};return M.runKernel(Rl,s,i)}var uP=P({rotateWithOffset_:lP});function Zl(e,t,n,a,r,s){a==null&&(a=.5),r==null&&(r=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=e.shape[0];return n=Math.min(n,i),F(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),F(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),F(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),F(t.rank===1,()=>"scores must be a 1D tensor"),F(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),F(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function cP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppression"),i=E(t,"scores","nonMaxSuppression"),o=Zl(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l={maxOutputSize:n,iouThreshold:a,scoreThreshold:r};return M.runKernel(hl,{boxes:s,scores:i},l)}var pP=P({nonMaxSuppression_:cP});function hP(e,t,n){let a=dP(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function dP(e,t,n){return fP(e,t,n||mP)}function mP(e,t){return e>t?1:e>>1);let o=n(t,e[s]);o>0?a=s+1:(r=s,i=!o)}return i?a:-a-1}function Xk(e,t,n,a,r){return Ib(e,t,n,a,r,0)}function Yk(e,t,n,a,r,s){return Ib(e,t,n,a,r,0,!1,s,!0)}function Jk(e,t,n,a,r,s){return Ib(e,t,n,a,r,s,!0)}function Ib(e,t,n,a,r,s,i=!1,o=!1,l=!1){let c=[];for(let g=0;gr&&c.push({score:t[g],boxIndex:g,suppressBeginIndex:0});c.sort(Qk);let u=s>0?-.5/s:0,p=[],d=[];for(;p.length0;){let g=c.pop(),{score:y,boxIndex:b,suppressBeginIndex:x}=g;if(y=x;--N){let T=gP(e,b,p[N]);if(T>=a){v=!0;break}if(g.score=g.score*yP(a,u,T),g.score<=r)break}g.suppressBeginIndex=p.length,v||(g.score===y?(p.push(b),d.push(g.score)):g.score>r&&hP(c,g,Qk))}let h=p.length,m=n-h;o&&m>0&&(p.push(...new Array(m).fill(0)),d.push(...new Array(m).fill(0)));let f={selectedIndices:p};return i&&(f.selectedScores=d),l&&(f.validOutputs=h),f}function gP(e,t,n){let a=e.subarray(t*4,t*4+4),r=e.subarray(n*4,n*4+4),s=Math.min(a[0],a[2]),i=Math.min(a[1],a[3]),o=Math.max(a[0],a[2]),l=Math.max(a[1],a[3]),c=Math.min(r[0],r[2]),u=Math.min(r[1],r[3]),p=Math.max(r[0],r[2]),d=Math.max(r[1],r[3]),h=(o-s)*(l-i),m=(p-c)*(d-u);if(h<=0||m<=0)return 0;let f=Math.max(s,c),g=Math.max(i,u),y=Math.min(o,p),b=Math.min(l,d),x=Math.max(y-f,0)*Math.max(b-g,0);return x/(h+m-x)}function yP(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function Qk(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function bP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppressionAsync"),i=E(t,"scores","nonMaxSuppressionAsync"),o=Zl(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l=await Promise.all([s.data(),i.data()]),c=l[0],u=l[1],{selectedIndices:p}=Xk(c,u,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),Ze(p,"int32")}var xP=bP;function vP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=Zl(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let c={boxes:i,scores:o},u={maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s},p=M.runKernel(fl,c,u);return{selectedIndices:p[0],selectedScores:p[1]}}var wP=P({nonMaxSuppressionWithScore_:vP});async function kP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=Zl(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let c=await Promise.all([i.data(),o.data()]),u=c[0],p=c[1],{selectedIndices:d,selectedScores:h}=Jk(u,p,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ze(d,"int32"),selectedScores:Ze(h)}}var IP=kP;function TP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=Zl(i,o,n,a,r,null),c=l.maxOutputSize,u=l.iouThreshold,p=l.scoreThreshold,d={boxes:i,scores:o},h={maxOutputSize:c,iouThreshold:u,scoreThreshold:p,padToMaxOutputSize:s},m=M.runKernel(ml,d,h);return{selectedIndices:m[0],validOutputs:m[1]}}var NP=P({nonMaxSuppressionPadded_:TP});async function SP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=Zl(i,o,n,a,r,null),c=l.maxOutputSize,u=l.iouThreshold,p=l.scoreThreshold,[d,h]=await Promise.all([i.data(),o.data()]),{selectedIndices:m,validOutputs:f}=Yk(d,h,c,u,p,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ze(m,"int32"),validOutputs:pe(f,"int32")}}var CP=SP;function _P(e,t,n=!1,a=!1){let r=E(e,"images","resizeBilinear");F(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),F(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),F(a===!1||n===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=U(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},c=M.runKernel(ui,o,l);return i?U(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Zk=P({resizeBilinear_:_P});function EP(e,t,n=!1,a=!1){let r=E(e,"images","resizeNearestNeighbor");F(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),F(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),F(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),F(a===!1||n===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=U(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},c=M.runKernel(fc,o,l);return i?U(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var e1=P({resizeNearestNeighbor_:EP});function FP(e,t,n){F(t%1==0,()=>`bandPart(): numLower must be an integer, got ${t}.`),F(n%1==0,()=>`bandPart(): numUpper must be an integer, got ${n}.`);let a=E(e,"a","bandPart");F(a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${a.rank}.`);let r=a.shape,[s,i]=a.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(n<=i))throw new Error(`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),n<0&&(n=i);let o=U(Ah(0,s,1,"int32"),[-1,1]),l=Ah(0,i,1,"int32"),c=me(o,l),u=ma(Di(c,pe(+t,"int32")),rs(c,pe(-n,"int32"))),p=xt([s,i],a.dtype);return U($t(ut(U(a,[-1,s,i])).map(d=>Sn(u,d,p))),r)}var AP=P({bandPart_:FP});function $P(e){let t;if(Array.isArray(e)){t=!1,F(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let r=e[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[s].shape[0]} vs. ${r})`)}else t=!0,e=zn(e,e.shape[0],0).map(r=>ss(r,[0]));F(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);let n=[],a=e;for(let r=0;r{let s=a[r];if(r>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return t1(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,c)=>l*c),a=ut(U(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[c,u]=t1(l,t);r.push(c),s.push(u)});let i=U($t(r,0),e.shape),o=U($t(s,0),e.shape);return[i,o]}}function t1(e,t=!1){return M.tidy(()=>{F(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);let n=e.shape[0],a=e.shape[1],r=tb(n),s=Zr(e),i=Sa([[1]],[1,1]),o=Zr(i),l=n>=a?a:n;for(let c=0;c{let h=We(s,[c,c],[n-c,1]),m=Vh(h),f=We(s,[c,c],[1,1]),g=Sn(ha(f,0),Sa([[-1]]),Sa([[1]])),y=me(f,L(g,m)),b=xe(h,y);b.shape[0]===1?o=Zr(i):o=Je([i,We(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let x=Nt(xe(ze(g,y),m)),v=We(s,[c,0],[n-c,a]),N=L(x,o),T=Ve(o);if(c===0)s=me(v,ze(N,ze(T,v)));else{let $=me(v,ze(N,ze(T,v)));s=Je([We(s,[0,0],[c,a]),$],0)}let S=Ve(N),A=We(r,[0,c],[n,r.shape[1]-c]);if(c===0)r=me(A,ze(ze(A,o),S));else{let $=me(A,ze(ze(A,o),S));r=Je([We(r,[0,0],[n,c]),$],1)}return[o,s,r]}),Ae([u,p,d])}return!t&&n>a&&(r=We(r,[0,0],[n,a]),s=We(s,[0,0],[a,a])),[r,s]})}var MP=P({qr_:RP}),mn;(function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(mn||(mn={}));function PP(e,t,n=mn.SUM_BY_NONZERO_WEIGHTS){let a=E(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=E(t,"weights","computeWeightedLoss"));let s=r==null?a:L(a,r);if(n===mn.NONE)return s;if(n===mn.SUM)return Se(s);if(n===mn.MEAN){if(r==null)return St(s);{let i=a.size/r.size,o=xe(Se(s),Se(r));return i>1?xe(o,pe(i)):o}}if(n===mn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return xe(Se(s),pe(a.size));{let i=L(r,Ya(a.shape)),o=ue(Se(Mi(i,pe(0))),"float32");return xe(Se(s),o)}}throw Error(`Unknown reduction: ${n}`)}var vr=P({computeWeightedLoss_:PP});function OP(e,t,n,a=mn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","absoluteDifference"),s=E(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=E(n,"weights","absoluteDifference")),on(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(me(r,s));return vr(o,i,a)}var LP=P({absoluteDifference_:OP});function zP(e,t,n,a,r=mn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","cosineDistance"),i=E(t,"predictions","cosineDistance"),o=null;a!=null&&(o=E(a,"weights","cosineDistance")),on(s.shape,i.shape,"Error in cosineDistance: ");let l=pe(1),c=me(l,Se(L(s,i),n,!0));return vr(c,o,r)}var BP=P({cosineDistance_:zP});function WP(e,t,n,a=mn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","hingeLoss"),s=E(t,"predictions","hingeLoss"),i=null;n!=null&&(i=E(n,"weights","hingeLoss")),on(r.shape,s.shape,"Error in hingeLoss: ");let o=pe(1);r=me(L(pe(2),r),o);let l=qe(me(o,L(r,s)));return vr(l,i,a)}var VP=P({hingeLoss_:WP});function UP(e,t,n,a=1,r=mn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","huberLoss"),i=E(t,"predictions","huberLoss"),o=null;n!=null&&(o=E(n,"weights","huberLoss")),on(s.shape,i.shape,"Error in huberLoss: ");let l=pe(a),c=Lt(me(i,s)),u=Kl(c,l),p=me(c,u),d=J(L(pe(.5),lt(u)),L(l,p));return vr(d,o,r)}var GP=P({huberLoss_:UP});function HP(e,t,n,a=1e-7,r=mn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","logLoss"),i=E(t,"predictions","logLoss"),o=null;n!=null&&(o=E(n,"weights","logLoss")),on(s.shape,i.shape,"Error in logLoss: ");let l=pe(1),c=pe(a),u=Nt(L(s,Pn(J(i,c)))),p=L(me(l,s),Pn(J(me(l,i),c))),d=me(u,p);return vr(d,o,r)}var jP=P({logLoss_:HP});function qP(e,t,n,a=mn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","meanSquaredError"),s=E(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=E(n,"weights","meanSquaredError")),on(r.shape,s.shape,"Error in meanSquaredError: ");let o=zh(r,s);return vr(o,i,a)}var KP=P({meanSquaredError_:qP});function XP(e,t){let n=E(e,"labels","sigmoidCrossEntropyWithLogits"),a=E(t,"logits","sigmoidCrossEntropyWithLogits");on(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=qe(a),s=L(a,n),i=Nh(hn(Nt(Lt(a))));return J(me(r,s),i)}function YP(e,t,n,a=0,r=mn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"multiClassLabels","sigmoidCrossEntropy"),i=E(t,"logits","sigmoidCrossEntropy"),o=null;if(n!=null&&(o=E(n,"weights","sigmoidCrossEntropy")),on(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let c=pe(a),u=pe(1),p=pe(.5);s=J(L(s,me(u,c)),L(p,c))}let l=XP(s,i);return vr(l,o,r)}var JP=P({sigmoidCrossEntropy_:YP});function QP(e,t,n=-1){if(n===-1&&(n=t.rank-1),n!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${n}`);return Ka((a,r,s)=>{let i=sb(r,[n],!0),o=me(ue(r,"float32"),i);s([a,o]);let l=Nt(L(o,a));return{value:Se(l,[n]),gradFunc:(c,u)=>{let[p,d]=u,h=Ri(c.shape,[n]);return[L(U(c,h),me(ue(p,"float32"),hn(d))),L(U(c,h),me(hn(d),ue(p,"float32")))]}}})(e,t)}function ZP(e,t,n,a=0,r=mn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"onehotLabels","softmaxCrossEntropy"),i=E(t,"logits","softmaxCrossEntropy"),o=null;if(n!=null&&(o=E(n,"weights","softmaxCrossEntropy")),on(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let c=pe(a),u=pe(1),p=pe(s.shape[1]);s=J(L(s,me(u,c)),xe(c,p))}let l=QP(s,i);return vr(l,o,r)}var eO=P({softmaxCrossEntropy_:ZP}),tO={fft:Wc,ifft:Jl,rfft:Vc,irfft:Lh},nO={hammingWindow:ZM,hannWindow:qk,frame:Kk,stft:aP},Ja={flipLeftRight:oP,resizeNearestNeighbor:e1,resizeBilinear:Zk,rotateWithOffset:uP,cropAndResize:sP,nonMaxSuppression:pP,nonMaxSuppressionAsync:xP,nonMaxSuppressionWithScore:wP,nonMaxSuppressionWithScoreAsync:IP,nonMaxSuppressionPadded:NP,nonMaxSuppressionPaddedAsync:CP},n1={bandPart:AP,gramSchmidt:DP,qr:MP},aO={absoluteDifference:LP,computeWeightedLoss:vr,cosineDistance:BP,hingeLoss:VP,huberLoss:GP,logLoss:jP,meanSquaredError:KP,sigmoidCrossEntropy:JP,softmaxCrossEntropy:eO},wr=class extends nk{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 Ae(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 Ck(e,t)}dispose(){this.iterations_!=null&&Ae(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:pe(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}};Object.defineProperty(wr,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var qh=class extends wr{constructor(e,t,n=null){super();this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=M.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:D(()=>Ge(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:D(()=>Ge(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedGrads[n].variable,o=this.accumulatedUpdates[n].variable;D(()=>{let l=J(L(i,this.rho),L(lt(s),1-this.rho)),c=L(xe(an(J(o,this.epsilon)),an(J(i,this.epsilon))),s),u=J(L(o,this.rho),L(lt(c),1-this.rho));i.assign(l),o.assign(u);let p=J(L(c,-this.learningRate),a);a.assign(p)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Ae(this.accumulatedGrads.map(e=>e.variable)),Ae(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=e.length/2,n=!1;this.accumulatedGrads=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedUpdates=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}};qh.className="Adadelta";es(qh);var Kh=class extends wr{constructor(e,t=.1){super();this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t];if(this.accumulatedGrads[n]==null){let i=!1;this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:D(()=>Cn(a.shape,this.initialAccumulatorValue).variable(i))}}let r=Array.isArray(e)?e[n].tensor:e[t];if(r==null)return;let s=this.accumulatedGrads[n].variable;D(()=>{let i=J(s,lt(r));s.assign(i);let o=J(L(xe(r,an(J(i,M.backend.epsilon()))),-this.learningRate),a);a.assign(o)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Ae(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulatedGrads=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}};Kh.className="Adagrad";es(Kh);var Xh=class extends wr{constructor(e,t,n,a=null){super();this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],D(()=>{this.accBeta1=pe(t).variable(),this.accBeta2=pe(n).variable()}),a==null&&(this.epsilon=M.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);D(()=>{let n=me(1,this.accBeta1),a=me(1,this.accBeta2);t.forEach((r,s)=>{let i=M.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:D(()=>Ge(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:D(()=>Ge(i).variable(o))});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let c=this.accumulatedFirstMoment[s].variable,u=this.accumulatedSecondMoment[s].variable,p=J(L(c,this.beta1),L(l,1-this.beta1)),d=J(L(u,this.beta2),L(lt(l),1-this.beta2)),h=xe(p,n),m=xe(d,a);c.assign(p),u.assign(d);let f=J(L(xe(h,J(an(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(L(this.accBeta1,this.beta1)),this.accBeta2.assign(L(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Ae(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&Ae(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),D(()=>{this.accBeta1.assign(xr(this.beta1,this.iterations_+1)),this.accBeta2.assign(xr(this.beta2,this.iterations_+1))});let t=e.length/2,n=!1;this.accumulatedFirstMoment=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}};Xh.className="Adam";es(Xh);var Yh=class extends wr{constructor(e,t,n,a=null,r=0){super();this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.decay=r,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],D(()=>{this.iteration=pe(0).variable(),this.accBeta1=pe(t).variable()}),a==null&&(this.epsilon=M.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);D(()=>{let n=me(1,this.accBeta1),a=xe(-this.learningRate,J(L(this.iteration,this.decay),1));t.forEach((r,s)=>{let i=M.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:Ge(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:Ge(i).variable(o)});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let c=this.accumulatedFirstMoment[s].variable,u=this.accumulatedWeightedInfNorm[s].variable,p=J(L(c,this.beta1),L(l,1-this.beta1)),d=L(u,this.beta2),h=Lt(l),m=Xa(d,h);c.assign(p),u.assign(m);let f=J(L(xe(a,n),xe(p,J(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(J(this.iteration,1)),this.accBeta1.assign(L(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Ae(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&Ae(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}};Yh.className="Adamax";es(Yh);var Uc=class extends wr{constructor(e){super();this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=Array.isArray(e)?e[n].tensor:e[t];if(a==null)return;let r=M.registeredVariables[t];D(()=>{let s=J(L(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=jt(pe(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}};Uc.className="SGD";es(Uc);var Jh=class extends Uc{constructor(e,t,n=!1){super(e);this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=pe(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t];if(this.accumulations[n]==null){let i=!1;this.accumulations[n]={originalName:`${t}/momentum`,variable:D(()=>Ge(a).variable(i))}}let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&D(()=>{let i,o=J(L(this.m,r),s);this.useNesterov?i=J(L(this.c,J(s,L(o,this.m))),a):i=J(L(this.c,o),a),r.assign(o),a.assign(i)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Ae(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulations=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}};Jh.className="Momentum";es(Jh);var Qh=class extends wr{constructor(e,t=.9,n=0,a=null,r=!1){super();if(this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=a,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=r,a==null&&(this.epsilon=M.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:D(()=>Ge(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:D(()=>Ge(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:D(()=>Ge(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;D(()=>{let l=J(L(i,this.decay),L(lt(s),1-this.decay));if(this.centered){let c=this.accumulatedMeanGrads[n].variable,u=J(L(c,this.decay),L(s,1-this.decay)),p=xe(L(s,this.learningRate),an(me(l,J(lt(u),this.epsilon)))),d=J(L(o,this.momentum),p);i.assign(l),c.assign(u),o.assign(d);let h=me(a,d);a.assign(h)}else{let c=J(L(i,this.decay),L(lt(s),1-this.decay)),u=J(L(o,this.momentum),xe(L(s,this.learningRate),an(J(c,this.epsilon))));i.assign(c),o.assign(u);let p=me(a,u);a.assign(p)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Ae(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Ae(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&Ae(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedMoments=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}};Qh.className="RMSProp";es(Qh);var Oi=class{static sgd(e){return new Uc(e)}static momentum(e,t,n=!1){return new Jh(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new Qh(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new Xh(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new qh(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new Yh(e,t,n,a,r)}static adagrad(e,t=.1){return new Kh(e,t)}},Li={sgd:Oi.sgd,momentum:Oi.momentum,adadelta:Oi.adadelta,adagrad:Oi.adagrad,rmsprop:Oi.rmsprop,adamax:Oi.adamax,adam:Oi.adam},rO=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function Zh(){return new Promise(e=>rO(()=>e()))}var _={};Oe(_,{ERF_A1:()=>fO,ERF_A2:()=>gO,ERF_A3:()=>yO,ERF_A4:()=>bO,ERF_A5:()=>xO,ERF_P:()=>mO,PARALLELIZE_THRESHOLD:()=>Tb,SELU_SCALE:()=>r1,SELU_SCALEALPHA:()=>a1,applyActivation:()=>Hh,assertAndGetBroadcastShape:()=>bt,assertAxesAreInnerMostDims:()=>UD,assertParamsConsistent:()=>sO,assignToTypedArray:()=>CO,axesAreInnerMostDims:()=>ab,calculateShapes:()=>G0,combineLocations:()=>Ek,complexWithEvenIndex:()=>TO,complexWithOddIndex:()=>NO,computeConv2DInfo:()=>Ac,computeConv3DInfo:()=>pk,computeDefaultPad:()=>Hy,computeDilation2DInfo:()=>h$,computeOptimalWindowSize:()=>oO,computeOutAndReduceShapes:()=>Fk,computeOutShape:()=>iO,computePool2DInfo:()=>ck,computePool3DInfo:()=>m$,convertConv2DDataFormat:()=>uk,eitherStridesOrDilationsAreOne:()=>ja,expandShapeToKeepDim:()=>Ri,exponent:()=>EO,exponents:()=>_O,fromStringArrayToUint8:()=>$O,fromUint8ToStringArray:()=>AO,getAxesPermutation:()=>Ak,getBroadcastDims:()=>sD,getComplexWithIndex:()=>SO,getFusedBiasGradient:()=>Gh,getFusedDyActivation:()=>Uh,getImageCenter:()=>lO,getInnerMostAxes:()=>GD,getPermuted:()=>cO,getReductionAxes:()=>zt,getReshaped:()=>uO,getReshapedPermuted:()=>pO,getSliceBeginCoords:()=>dO,getSliceSize:()=>hO,getUndoAxesPermutation:()=>rb,log:()=>wO,mergeRealAndImagArrays:()=>kO,prepareAndValidate:()=>U0,prepareSplitSize:()=>FO,segment_util:()=>s1,shouldFuse:()=>jh,slice_util:()=>dn,splitRealAndImagArrays:()=>IO,tupleValuesAreOne:()=>ts,upcastType:()=>pa,validateInput:()=>Ay,validateUpdateShape:()=>Fy,warn:()=>vO});function sO(e,t){let n=e[0].length;e.forEach((r,s)=>{F(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),F(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`);let a=e[0];e.forEach((r,s)=>{for(let i=0;i`Error in concat${n}D: Shape of tensors[${s}] (${r}) does not match the shape of the rest (${a}) along the non-concatenated axis ${s}.`)})}function iO(e,t){let n=e[0].slice();for(let a=1;a=t*2+1||i%2==1?s.push(i):r.push(i);a.push(...r),a.push(0),a.push(...s)}return a}function pO(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s"Number of splits must evenly divide the axis."),a=new Array(t).fill(e.shape[n]/t);else{let r=t.reduce((i,o)=>(o===-1&&(i+=1),i),0);F(r<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((o,l)=>l>0?o+l:o);t[s]=e.shape[n]-i}F(e.shape[n]===t.reduce((i,o)=>i+o),()=>"The sum of sizes must match the size of the axis dimension."),a=t}return a}var s1={};Oe(s1,{collectGatherOpShapeInfo:()=>MO,computeOutShape:()=>RO,segOpComputeOptimalWindowSize:()=>DO});function DO(e,t){let n=!1,a;for(e<=Tb?(a=e,n=!0):a=Td(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=Td(e,a+1);return a}function RO(e,t,n){let a=[],r=e.length;for(let s=0;sr))throw new Error(`Expect batchDims in the range of [-${r}, ${r}], but got ${a}`);if(a<0&&(a+=r),a>s)throw new Error(`batchDims (${a}) must be less than rank(x) ( - ${s}).`);if(nih(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function $O(e){return e.map(t=>kc(t))}var Qa={};Oe(Qa,{nonMaxSuppressionV3Impl:()=>Xk,nonMaxSuppressionV4Impl:()=>Yk,nonMaxSuppressionV5Impl:()=>Jk,whereImpl:()=>zk});var i1={kernelName:Po,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,Ql(ue(n,"float32"),-1))}}},PO={kernelName:Oo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=lt(ue(n,"float32")),r=an(me(pe(1),a));return Nt(xe(e,r))}}}},OO={kernelName:Lo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=an(me(lt(ue(n,"float32")),1));return xe(e,a)}}}},LO={kernelName:Hr,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=bt(n.shape,a.shape);return{a:()=>{let s=e,i=zt(n.shape,r);return i.length>0&&(s=Se(s,i)),U(s,n.shape)},b:()=>{let s=e,i=zt(a.shape,r);return i.length>0&&(s=Se(s,i)),U(s,a.shape)}}}},zO={kernelName:As,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},BO={kernelName:$s,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Ge(n)}}},WO={kernelName:nc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Ge(n)}}},VO={kernelName:zo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,an(me(pe(1),lt(ue(n,"float32")))))}}},UO={kernelName:Bo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=an(J(pe(1),lt(ue(n,"float32"))));return xe(e,a)}}}},GO={kernelName:Uo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=bt(n.shape,a.shape);return{a:()=>{let s=J(lt(n),lt(a)),i=L(e,xe(a,s)),o=zt(n.shape,r);return o.length>0&&(i=Se(i,o)),U(i,n.shape)},b:()=>{let s=J(lt(n),lt(a)),i=Nt(L(e,xe(n,s))),o=zt(a.shape,r);return o.length>0&&(i=Se(i,o)),U(i,a.shape)}}}},HO={kernelName:Wo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,J(lt(ue(n,"float32")),1))}}},jO={kernelName:Vo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,me(pe(1),lt(ue(n,"float32"))))}}};function qO(e,t,n,a,r,s){let i=E(e,"dy","avgPool3dGrad"),o=E(t,"input","avgPool3dGrad"),l=i,c=o,u=!1;o.rank===4&&(u=!0,l=U(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),c=U(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),F(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),F(c.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${c.rank}.`),s!=null&&F(Gt(r),()=>`Error in avgPool3dGrad: pad must be an integer when using, dimRoundingMode ${s} but got pad ${r}.`);let p={dy:l,input:c},d={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=M.runKernel(Ed,p,d);return u?U(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var KO=P({avgPool3dGrad_:qO}),XO={kernelName:ac,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>KO(e,a,r,s,i,o)}}};function YO(e,t,n,a,r){let s=E(e,"dy","avgPoolGrad"),i=E(t,"input","avgPoolGrad");F(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let o=i,l=s,c=!1;i.rank===3&&(c=!0,o=U(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=U(s,[1,s.shape[0],s.shape[1],s.shape[2]])),F(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),F(o.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`);let u={dy:l,input:o},p={filterSize:n,strides:a,pad:r},d=M.runKernel(_d,u,p);return c?U(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var JO=P({avgPoolGrad_:YO}),QO={kernelName:Ds,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>JO(e,a,r,s,i)}}},ZO={kernelName:Rs,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>ze(e,r,!1,!0),b:()=>ze(a,e,!0,!1)}:!s&&i?{a:()=>ze(e,r,!1,!1),b:()=>ze(e,a,!0,!1)}:s&&!i?{a:()=>ze(r,e,!1,!0),b:()=>ze(a,e,!1,!1)}:{a:()=>ze(r,e,!0,!0),b:()=>ze(e,a,!0,!0)}}},eL={kernelName:rc,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>Oc(e,a,r)}}},tL={kernelName:m0,gradFunc:(e,t,n)=>{let a=n,r=a.inputShape,s=a.shape,i=Array.from(s);for(let l=r.length-1;l>=0;l--)if(r[l]===s[l])i[l]=1;else if(r[l]!==1)throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${s}].`);let o=[];for(let l=0;l1&&o.push(l);return{x:()=>Se(e,o,!0)}}},nL={kernelName:Ms,gradFunc:e=>({x:()=>e.clone()})},aL={kernelName:Ps,gradFunc:e=>({x:()=>Ge(e)})},rL={kernelName:jr,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>Sn(ma(rs(a,r),Di(a,s)),e,Ge(e))}}},sL={kernelName:sc,inputsToSave:["x"],gradFunc:i1.gradFunc},iL={kernelName:Go,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=ca(r,t[0].shape)[0],i=a.map(o=>o[s]);return zn(e,i,s).map(o=>()=>o)}},oL={kernelName:Os,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return F(ts(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>Ky(a.shape,e,r,i,o,l),filter:()=>kb(a,e,r.shape,i,o,l)}}},lL={kernelName:Ls,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>Ft(e,r,s,i,o,1,l),filter:()=>kb(e,a,r.shape,s,i,o,l)}}};function uL(e,t,n,a,r){let s=e;e.rank===4&&(s=U(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=U(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),F(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),F(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),F(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),F(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),F(i.shape[4]===n[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${n[4]}).`);let o={x:s,dy:i},l={strides:a,pad:r,filterShape:n};return M.runKernel(Dd,o,l)}var cL=P({conv3DBackpropFilter_:uL}),pL={kernelName:ic,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;F(ts(a),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${a}'`);let[i,o]=t;return{x:()=>vk(i.shape,e,o,r,s),filter:()=>cL(i,e,o.shape,r,s)}}},dL={kernelName:zs,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(Nt(Mh(ue(n,"float32"))),e)}}},hL={kernelName:Ho,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(Ph(ue(n,"float32")),e)}}},mL={kernelName:Bs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=Ak([r],a.rank),l=kh(e,r,s,!i);return o!=null&&(l=Ve(l,o)),l}}}},fL={kernelName:Ws,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;F(ts(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,c]=t;return F(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),F(c.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${c.rank}.`),F(l.shape[3]===c.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),F(ja(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),i!=null&&F(Gt(s),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`),{x:()=>jk(l.shape,e,c,r,s,a,i),filter:()=>Hk(l,e,c.shape,r,s,a,i)}}},gL={kernelName:oc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,s={x:a,filter:r,dy:e},i={x:a,filter:r,dy:e};return{x:()=>M.runKernel(zd,s,n),filter:()=>M.runKernel(Bd,i,n)}}},yL={kernelName:Ko,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>M.runKernel(Wd,a)}}},bL={kernelName:Xo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=L(hn(Nt(lt(n))),2/Math.sqrt(Math.PI));return{x:()=>L(e,a)}}},xL={kernelName:Us,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,n)}}},vL={kernelName:Jo,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>U(e,n.shape)}}},wL={kernelName:Qo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,hn(n))}}},kL={kernelName:Gs,gradFunc:e=>({x:()=>Ge(e)})},IL={kernelName:Hs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=bt(n.shape,a.shape);return{a:()=>{let s=xe(e,ue(a,"float32")),i=zt(n.shape,r);return i.length>0?U(Se(s,i),n.shape):s},b:()=>{let s=L(e,ue(n,"float32")),i=zt(a.shape,r);i.length>0&&(s=U(Se(s,i),a.shape));let o=lt(a);return Nt(xe(s,ue(o,"float32")))}}}},TL={kernelName:js,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?pe(1):o,c=zt(s.shape,r.shape),u=[];if(s.rank===1){for(let f=0;fs.rank===1?U(L(L(e,qa(U(h,[1,1,1,s.shape[0]]),u)),l),r.shape):U(L(L(e,h),l),r.shape),mean:()=>{let f=L(L(h,pe(-1)),d);return s.rank===1&&(f=Se(f,c)),U(f,s.shape)},variance:()=>{let f=L(L(m,p),d);return s.rank===1&&(f=Se(f,c)),U(f,s.shape)},scale:()=>{let f=L(p,h),g=L(e,f);return s.rank===1&&(g=Se(g,c)),U(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=Se(f,c)),U(f,s.shape)}}}},NL={kernelName:el,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s}=n,i=ca(s,a.shape)[0];return{x:()=>{let o=a.shape,l=r.size,c=o.slice(0,i),u=c.length,p=o.slice(s,o.length).slice(1),d=p.length,h=o1(0,u),m=o1(u+1,u+1+d),f=l1([c,[l],p]),g=U(e,f),y=U(r,[l]),b=l1([[u],h,m]),x=Ve(g,b),v=bb(x,y,a.shape[i]),N=rb(b);return v=Ve(v,N),v},indices:()=>r}}};function o1(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>Ge(n),b:()=>Ge(a)}}},CL={kernelName:Ks,gradFunc:e=>({x:()=>ue(e,"float32")})},_L={kernelName:al,gradFunc:e=>({x:()=>Ge(e)})},EL={kernelName:rl,gradFunc:e=>({x:()=>Ge(e)})},FL={kernelName:sl,gradFunc:e=>({x:()=>Ge(e)})},AL={kernelName:Xs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=ha(a,0);return{x:()=>Sn(s,e,L(e,r))}}},$L={kernelName:ll,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,J(n,1))}}},DL={kernelName:Ys,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,ue(n,"float32"))}}},RL={kernelName:f0,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=!0,i=hn(a);return me(e,L(Se(e,r,s),i))}}}};function ML(e,t,n,a=5,r=1,s=1,i=.5){let o={x:e,y:t,dy:n},l={depthRadius:a,bias:r,alpha:s,beta:i};return M.runKernel(jd,o,l)}var PL=P({localResponseNormalizationBackprop_:ML}),OL={kernelName:pc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>PL(a,r,e,s,i,o,l)}}};function u1(e,t,n,a){return t.rankL(e,ue(as(n,t),e.dtype))}}var c1={kernelName:Js,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=ca(r,s.shape),l=u1(e,i,s,o);return{x:()=>l.x()}}},LL={kernelName:Qs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>L(e,ue(rs(n,a),"float32")),b:()=>L(e,ue(Th(n,a),"float32"))}}};function zL(e,t,n,a,r,s,i){let o=E(e,"dy","maxPool3dGrad"),l=E(t,"input","maxPool3dGrad"),c=E(n,"output","maxPool3dGrad"),u=o,p=l,d=c,h=!1;l.rank===4&&(h=!0,u=U(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),p=U(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),d=U(c,[1,c.shape[0],c.shape[1],c.shape[2],c.shape[3]])),F(u.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`),F(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),F(d.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${d.rank}.`),i!=null&&F(Gt(s),()=>`Error in maxPool3dGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`);let m={dy:u,input:p,output:d},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=M.runKernel(Kd,m,f);return h?U(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var BL=P({maxPool3dGrad_:zL}),WL={kernelName:dc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>BL(e,a,r,s,i,o,l)}}};function VL(e,t,n,a,r,s,i){let o=E(e,"dy","maxPoolGrad"),l=E(t,"input","maxPoolGrad"),c=E(n,"output","maxPoolGrad");F(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),F(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),F(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),i!=null&&F(Gt(s),()=>`Error in maxPoolGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`);let u={dy:o,input:l,output:c},p={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return M.runKernel(qd,u,p)}var UL=P({maxPoolGrad_:VL}),GL={kernelName:Zs,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>UL(e,a,r,s,i,o)}}},HL={kernelName:ei,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=ca(r,a.shape),i=Fk(a.shape,s)[1],o=Pt(i);return{x:()=>{let l=a.shape.slice();s.forEach(u=>{l[u]=1});let c=U(e,l);return xe(L(c,Ya(a.shape,"float32")),o)}}}},jL={kernelName:ti,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=ca(r,s.shape),l=u1(e,i,s,o);return{x:()=>l.x()}}},qL={kernelName:ni,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>L(e,ue(Di(n,a),"float32")),b:()=>L(e,ue(ha(n,a),"float32"))}}},KL={kernelName:hc,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>We(e,s,a.shape)}}},XL={kernelName:cl,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=bt(n.shape,a.shape);return{a:()=>{let s=zt(n.shape,r);return s.length>0?U(Se(e,s),n.shape):e},b:()=>{let s=L(e,Nt(Hl(xe(n,a)))),i=zt(a.shape,r);return i.length>0?U(Se(s,i),a.shape):s}}}},YL={kernelName:ai,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=bt(n.shape,a.shape);return{a:()=>{let s=L(e,ue(a,"float32")),i=zt(n.shape,r);return i.length>0?U(Se(s,i),n.shape):s},b:()=>{let s=L(e,ue(n,"float32")),i=zt(a.shape,r);return i.length>0?U(Se(s,i),a.shape):s}}}},JL={kernelName:pl,gradFunc:e=>({x:()=>Nt(e)})},QL={kernelName:ri,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>xt(n.shape,"float32")}}},ZL={kernelName:gl,gradFunc:e=>({x:()=>Ge(e)})},e3={kernelName:yl,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return ut(e,a).map(r=>()=>r)}},p1={kernelName:si,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>We(e,s,a.shape)}}},t3={kernelName:ii,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=bt(s.shape,i.shape);return{a:()=>{let l=ue(i,"float32"),c=L(e,L(l,xr(s,me(l,pe(1))))),u=zt(s.shape,o);return u.length>0&&(c=Se(c,u)),U(c,s.shape)},b:()=>{let l=ha(s,0),c=Sn(l,Pn(s),Ge(s)),u=L(e,L(r,c)),p=zt(i.shape,o);return p.length>0&&(u=Se(u,p)),U(u,i.shape)}}}},n3={kernelName:oi,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=ha(n,0);return{x:()=>Sn(r,e,L(e,a)),alpha:()=>{let s=Sn(r,Ge(e),L(e,n)),i=zt(a.shape,e.shape);return i.length>0&&(s=Se(s,i)),U(s,a.shape)}}}},a3={kernelName:Vs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=bt(n.shape,a.shape);return{a:()=>{let s=xe(e,ue(a,"float32")),i=zt(n.shape,r);return i.length>0?U(Se(s,i),n.shape):s},b:()=>{let s=L(e,ue(n,"float32")),i=zt(a.shape,r);i.length>0&&(s=U(Se(s,i),a.shape));let o=lt(a);return Nt(xe(s,ue(o,"float32")))}}}},r3={kernelName:xl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,Nt(lt(n)))}}},s3={kernelName:ci,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=L(Di(n,6),Ql(n));return{x:()=>L(e,ue(a,"float32"))}}},i3={kernelName:li,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,ue(Ql(n),"float32"))}}},o3={kernelName:vl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>U(e,n.shape)}}},l3={kernelName:ui,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>M.runKernel(Zd,r,n)}}},u3={kernelName:fc,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>M.runKernel(Qd,r,n)}}},c3={kernelName:pi,gradFunc:(e,t,n)=>{let{dims:a}=n,r=ca(a,e.shape);return{x:()=>Ln(e,r)}}},p3={kernelName:di,gradFunc:e=>({x:()=>Ge(e)})},d3={kernelName:hi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Nt(xe(e,L(xr(n,1.5),2)))}}},h3={kernelName:kl,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>ue(Ge(n),"float32"),t:()=>L(e,ue(n,e.dtype)),e:()=>L(e,ue(Pc(n),e.dtype))}}},m3={kernelName:Il,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ha(n,pe(0)),r=pe(a1),s=pe(r1),i=L(e,s),o=L(L(e,r),hn(ue(n,"float32")));return Sn(a,i,o)}}}},f3={kernelName:fi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,L(n,me(pe(1),n)))}}},g3={kernelName:Sl,gradFunc:e=>({x:()=>Ge(e)})},y3={kernelName:mi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(Rc(ue(n,"float32")),e)}}},b3={kernelName:Nl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(wh(ue(n,"float32")),e)}}},x3={kernelName:Tl,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=Z0(a,r,s),c=[];for(let u=0;uta(e,c)}}},v3={kernelName:bi,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=L(e,a);return{logits:()=>me(i,L(Se(i,[r],s),a))}}},w3={kernelName:Cl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,da(n))}}},d1={kernelName:gc,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>$c(e,a,r)}}},h1={kernelName:_l,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Je(e,a)}}},k3={kernelName:gi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,L(an(ue(n,"float32")),2))}}},I3={kernelName:yc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,L(ue(n,"float32"),2))}}},T3={kernelName:xi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pe(2);return{a:()=>L(e,L(r,me(n,a))),b:()=>L(e,L(r,me(a,n)))}}},N3={kernelName:Kr,gradFunc:e=>({x:()=>Ge(e)})},S3={kernelName:vi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=bt(n.shape,a.shape);return{a:()=>{let s=e,i=zt(n.shape,r);return i.length>0&&(s=Se(s,i)),U(s,n.shape)},b:()=>{let s=e,i=zt(a.shape,r);return i.length>0&&(s=Se(s,i)),U(Nt(s),a.shape)}}}},C3={kernelName:yi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;ca(s,a.shape).forEach(l=>{r[l]=1});let i=U(e,r),o=L(i,Ya(a.shape,"float32"));return{x:()=>o}}},_3={kernelName:Fl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,lt(Rc(n)))}}},E3={kernelName:wi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(me(pe(1),lt(n)),e)}}},F3={kernelName:qr,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=Ge(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=rb(r);return{x:()=>Ve(e,s)}}},$3={kernelName:$l,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>$t(e,r)}}},R3={kernelName:bc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>D3(e,n)}}};function D3(e,t){let n=Xa(t,Ge(t)),a=$i(e,n),r=rs(t,pe(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>Ge(e)})},P3=[i1,PO,OO,LO,zO,BO,WO,VO,UO,GO,HO,jO,XO,QO,ZO,eL,tL,nL,aL,rL,sL,iL,lL,oL,pL,dL,hL,mL,fL,gL,a3,yL,bL,xL,vL,wL,IL,kL,TL,NL,SL,CL,_L,EL,FL,AL,$L,DL,RL,OL,c1,c1,LL,WL,GL,HL,jL,qL,KL,XL,YL,JL,QL,ZL,e3,p1,p1,t3,n3,r3,s3,i3,o3,l3,u3,c3,p3,d3,h3,m3,f3,g3,y3,b3,x3,v3,w3,d1,d1,h1,h1,k3,T3,I3,N3,S3,C3,_3,E3,F3,A3,$3,R3,M3];for(let e of P3)g0(e);Y().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};Y().prototype.acos=function(){return this.throwIfDisposed(),Py(this)};Y().prototype.acosh=function(){return this.throwIfDisposed(),Oy(this)};Y().prototype.add=function(e){return this.throwIfDisposed(),J(this,e)};Y().prototype.all=function(e,t){return this.throwIfDisposed(),yh(this,e,t)};Y().prototype.any=function(e,t){return this.throwIfDisposed(),Ec(this,e,t)};Y().prototype.argMax=function(e){return this.throwIfDisposed(),Fc(this,e)};Y().prototype.argMin=function(e){return this.throwIfDisposed(),Ly(this,e)};Y().prototype.asScalar=function(){return this.throwIfDisposed(),F(this.size===1,()=>"The array must have only 1 element."),U(this,[])};Y().prototype.asType=function(e){return this.throwIfDisposed(),ue(this,e)};Y().prototype.as1D=function(){return this.throwIfDisposed(),U(this,[this.size])};Y().prototype.as2D=function(e,t){return this.throwIfDisposed(),U(this,[e,t])};Y().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),U(this,[e,t,n])};Y().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),U(this,[e,t,n,a])};Y().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),U(this,[e,t,n,a,r])};Y().prototype.asin=function(){return this.throwIfDisposed(),zy(this)};Y().prototype.asinh=function(){return this.throwIfDisposed(),By(this)};Y().prototype.atan=function(){return this.throwIfDisposed(),Wy(this)};Y().prototype.atan2=function(e){return this.throwIfDisposed(),Vy(this,e)};Y().prototype.atanh=function(){return this.throwIfDisposed(),Uy(this)};Y().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),Zn(this,e,t,n,a)};Y().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),$c(this,e,t)};Y().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),br(this,e,t,n,a,r)};Y().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Dc(this,e)};Y().prototype.cast=function(e){return this.throwIfDisposed(),ue(this,e)};Y().prototype.ceil=function(){return this.throwIfDisposed(),qy(this)};Y().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),qt(this,e,t)};Y().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Ee&&(e=[e]),Je([this,...e],t)};Y().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),xh(this,e,t,n,a,r,s)};Y().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),vh(this,e,t,n,a,r)};Y().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Ft(this,e,t,n,a,r,s)};Y().prototype.cos=function(){return this.throwIfDisposed(),Rc(this)};Y().prototype.cosh=function(){return this.throwIfDisposed(),wh(this)};Y().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),kh(this,e,t,n)};Y().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),Yy(this,e,t)};Y().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),ns(this,e,t,n,a,r,s)};Y().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),Jy(this,e,t,n,a,r)};Y().prototype.divNoNan=function(e){return this.throwIfDisposed(),Qy(this,e)};Y().prototype.div=function(e){return this.throwIfDisposed(),xe(this,e)};Y().prototype.dot=function(e){return this.throwIfDisposed(),kk(this,e)};Y().prototype.elu=function(){return this.throwIfDisposed(),Gl(this)};Y().prototype.equal=function(e){return this.throwIfDisposed(),as(this,e)};Y().prototype.erf=function(){return this.throwIfDisposed(),Zy(this)};Y().prototype.exp=function(){return this.throwIfDisposed(),hn(this)};Y().prototype.expandDims=function(e){return this.throwIfDisposed(),Mn(this,e)};Y().prototype.expm1=function(){return this.throwIfDisposed(),eb(this)};Y().prototype.fft=function(){return this.throwIfDisposed(),Wc(this)};Y().prototype.flatten=function(){return this.throwIfDisposed(),U(this,[this.size])};Y().prototype.floor=function(){return this.throwIfDisposed(),Hl(this)};Y().prototype.floorDiv=function(e){return this.throwIfDisposed(),gh(this,e)};Y().prototype.gather=function(e,t){return this.throwIfDisposed(),$i(this,e,t)};Y().prototype.greaterEqual=function(e){return this.throwIfDisposed(),rs(this,e)};Y().prototype.greater=function(e){return this.throwIfDisposed(),ha(this,e)};Y().prototype.ifft=function(){return this.throwIfDisposed(),Jl(this)};Y().prototype.irfft=function(){return this.throwIfDisposed(),Lh(this)};Y().prototype.isFinite=function(){return this.throwIfDisposed(),Ik(this)};Y().prototype.isInf=function(){return this.throwIfDisposed(),Tk(this)};Y().prototype.isNaN=function(){return this.throwIfDisposed(),Nk(this)};Y().prototype.leakyRelu=function(e){return this.throwIfDisposed(),Mc(this,e)};Y().prototype.lessEqual=function(e){return this.throwIfDisposed(),Di(this,e)};Y().prototype.less=function(e){return this.throwIfDisposed(),Th(this,e)};Y().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),nb(this,e,t,n,a)};Y().prototype.logSigmoid=function(){return this.throwIfDisposed(),_k(this)};Y().prototype.logSoftmax=function(e){return this.throwIfDisposed(),Ch(this,e)};Y().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),sb(this,e,t)};Y().prototype.log=function(){return this.throwIfDisposed(),Pn(this)};Y().prototype.log1p=function(){return this.throwIfDisposed(),Nh(this)};Y().prototype.logicalAnd=function(e){return this.throwIfDisposed(),ma(this,e)};Y().prototype.logicalNot=function(){return this.throwIfDisposed(),Pc(this)};Y().prototype.logicalOr=function(e){return this.throwIfDisposed(),_h(this,e)};Y().prototype.logicalXor=function(e){return this.throwIfDisposed(),$k(this,e)};Y().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),ze(this,e,t,n)};Y().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),At(this,e,t,n,a)};Y().prototype.max=function(e,t){return this.throwIfDisposed(),ea(this,e,t)};Y().prototype.maximum=function(e){return this.throwIfDisposed(),Xa(this,e)};Y().prototype.mean=function(e,t){return this.throwIfDisposed(),St(this,e,t)};Y().prototype.min=function(e,t){return this.throwIfDisposed(),ql(this,e,t)};Y().prototype.minimum=function(e){return this.throwIfDisposed(),Kl(this,e)};Y().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),ob(this,e,t)};Y().prototype.mod=function(e){return this.throwIfDisposed(),lb(this,e)};Y().prototype.mul=function(e){return this.throwIfDisposed(),L(this,e)};Y().prototype.neg=function(){return this.throwIfDisposed(),Nt(this)};Y().prototype.norm=function(e,t,n){return this.throwIfDisposed(),Vh(this,e,t,n)};Y().prototype.notEqual=function(e){return this.throwIfDisposed(),Mi(this,e)};Y().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),Bl(this,e,t,n)};Y().prototype.onesLike=function(){return this.throwIfDisposed(),On(this)};Y().prototype.pad=function(e,t){return this.throwIfDisposed(),ta(this,e,t)};Y().prototype.pool=function(e,t,n,a,r){return this.throwIfDisposed(),Mk(this,e,t,n,a,r)};Y().prototype.pow=function(e){return this.throwIfDisposed(),xr(this,e)};Y().prototype.prelu=function(e){return this.throwIfDisposed(),Lc(this,e)};Y().prototype.prod=function(e,t){return this.throwIfDisposed(),Fh(this,e,t)};Y().prototype.reciprocal=function(){return this.throwIfDisposed(),pb(this)};Y().prototype.relu=function(){return this.throwIfDisposed(),qe(this)};Y().prototype.relu6=function(){return this.throwIfDisposed(),$h(this)};Y().prototype.reshapeAs=function(e){return this.throwIfDisposed(),U(this,e.shape)};Y().prototype.reshape=function(e){return this.throwIfDisposed(),U(this,e)};Y().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),Zk(this,e,t,n)};Y().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),e1(this,e,t,n)};Y().prototype.reverse=function(e){return this.throwIfDisposed(),Ln(this,e)};Y().prototype.rfft=function(){return this.throwIfDisposed(),Vc(this)};Y().prototype.round=function(){return this.throwIfDisposed(),db(this)};Y().prototype.rsqrt=function(){return this.throwIfDisposed(),Dh(this)};Y().prototype.selu=function(){return this.throwIfDisposed(),Rh(this)};Y().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Pi(this,e,t,n,a,r,s)};Y().prototype.sigmoid=function(){return this.throwIfDisposed(),da(this)};Y().prototype.sign=function(){return this.throwIfDisposed(),hb(this)};Y().prototype.sin=function(){return this.throwIfDisposed(),Mh(this)};Y().prototype.sinh=function(){return this.throwIfDisposed(),Ph(this)};Y().prototype.slice=function(e,t){return this.throwIfDisposed(),We(this,e,t)};Y().prototype.softmax=function(e){return this.throwIfDisposed(),Na(this,e)};Y().prototype.softplus=function(){return this.throwIfDisposed(),jl(this)};Y().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Oc(this,e,t)};Y().prototype.split=function(e,t){return this.throwIfDisposed(),zn(this,e,t)};Y().prototype.sqrt=function(){return this.throwIfDisposed(),an(this)};Y().prototype.square=function(){return this.throwIfDisposed(),lt(this)};Y().prototype.squaredDifference=function(e){return this.throwIfDisposed(),zh(this,e)};Y().prototype.squeeze=function(e){return this.throwIfDisposed(),ss(this,e)};Y().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Ee?[this,e]:[this,...e];return $t(n,t)};Y().prototype.step=function(e){return this.throwIfDisposed(),Ql(this,e)};Y().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),fb(this,e,t,n,a,r,s,i,o)};Y().prototype.sub=function(e){return this.throwIfDisposed(),me(this,e)};Y().prototype.sum=function(e,t){return this.throwIfDisposed(),Se(this,e,t)};Y().prototype.tan=function(){return this.throwIfDisposed(),gb(this)};Y().prototype.tanh=function(){return this.throwIfDisposed(),Ul(this)};Y().prototype.tile=function(e){return this.throwIfDisposed(),qa(this,e)};Y().prototype.toBool=function(){return this.throwIfDisposed(),ue(this,"bool")};Y().prototype.toFloat=function(){return this.throwIfDisposed(),ue(this,"float32")};Y().prototype.toInt=function(){return this.throwIfDisposed(),ue(this,"int32")};Y().prototype.topk=function(e,t){return this.throwIfDisposed(),yb(this,e,t)};Y().prototype.transpose=function(e){return this.throwIfDisposed(),Ve(this,e)};Y().prototype.unique=function(e){return this.throwIfDisposed(),Wh(this,e)};Y().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),bb(this,e,t)};Y().prototype.unstack=function(e){return this.throwIfDisposed(),ut(this,e)};Y().prototype.where=function(e,t){return this.throwIfDisposed(),Sn(e,this,t)};Y().prototype.zerosLike=function(){return this.throwIfDisposed(),Ge(this)};var m1={};Oe(m1,{maxNorm:()=>O3,minMaxNorm:()=>B3,nonNeg:()=>z3,unitNorm:()=>L3});var Nb;function Bt(){return Nb==null&&(Nb=ok().epsilon()),Nb}function _a(){return"channelsLast"}var kr=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,kr.prototype)}},Ea=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Ea.prototype)}},z=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,z.prototype)}},$e=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,$e.prototype)}},f1=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,f1.prototype)}};function zi(e,t){if(Array.isArray(e)){let n=[];for(let a=0;an.toUpperCase())}var fa={};function Sb(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Cb(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>Cb(t));else{let t=Object.keys(e);for(let n of t){let a=e[n];a!=null&&typeof a=="object"&&(!Array.isArray(a)&&a.type==="ndarray"&&typeof a.value=="number"?e[n]=a.value:Cb(a))}}}function Gc(e,t={},n={},a="object",r=!1){if(typeof e=="string"){let s=e,i;if(s in n)i=n[s];else if(s in fa)i=fa[s];else if(i=t[s],i==null)throw new z(`Unknown ${a}: ${e}. This may be due to one of the following reasons: + ${a.shape}`),$(i%(t*t)==0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${a.shape}`);let o={x:a},l={blockSize:t,dataFormat:n};return P.runKernel(qo,o,l)}var Yy=O({depthToSpace_:ND});function TD(e,t,n,a,r="NHWC",s=[1,1],i){let o=_(e,"x","depthwiseConv2d"),l=_(t,"filter","depthwiseConv2d"),u=o,c=!1;o.rank===3&&(c=!0,u=H(o,[1,o.shape[0],o.shape[1],o.shape[2]])),$(u.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`),$(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`),$(u.shape[3]===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),i!=null&&$(Ht(a),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`);let p={x:u,filter:l},d={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},h=P.runKernel(Bs,p,d);return c?H(h,[h.shape[1],h.shape[2],h.shape[3]]):h}var ns=O({depthwiseConv2d_:TD});function SD(e){let t={x:_(e,"x","diag")};return P.runKernel(Ld,t)}var CD=O({diag_:SD});function AD(e,t,n,a,r=[1,1],s="NHWC"){let i=_(e,"x","dilation2d"),o=_(t,"filter","dilation2d");$(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),$(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),$(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,u=!1;i.rank===3&&(l=H(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=!0);let c={x:l,filter:o},p={strides:n,pad:a,dilations:r},d=P.runKernel(oc,c,p);return u?H(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Jy=O({dilation2d_:AD});function FD(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function Wt(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function xt(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;r"The first dimension of `a` must match the size of `condition`."),s.rank!==1&&ln(s.shape,l.shape,"Error in where: ");let u={condition:s,t:o,e:l};return P.runKernel(kl,u)}var Sn=O({where_:ED});function $D(e){let t={x:_(e,"x","zerosLike")};return P.runKernel(Dl,t)}var Ge=O({zerosLike_:$D});function DD(e,t){let n=_(e,"a","div"),a=_(t,"b","div");[n,a]=Tt(n,a);let r=xe(n,a),s=Ge(r),i=as(a,s);return Sn(i,s,r)}var Qy=O({divNoNan_:DD});function MD(e,t){let n=_(e,"t1","dot"),a=_(t,"t2","dot");$((n.rank===1||n.rank===2)&&(a.rank===1||a.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${a.rank}.`);let r=n.rank===1?n.size:n.shape[1],s=a.rank===1?a.size:a.shape[0];if($(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=H(n,[1,-1]),o=H(a,[-1,1]),l=ze(i,o);return H(l,[])}else if(n.rank===1&&a.rank===2){let i=H(n,[1,-1]),o=H(a,[a.shape[0],a.shape[1]]),l=ze(i,o);return H(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=H(a,[-1,1]),o=ze(n,i);return H(o,[o.size])}else{let i=H(a,[a.shape[0],a.shape[1]]);return ze(n,i)}}var S1=O({dot_:MD});function RD(e){let t={x:_(e,"x","elu")};return P.runKernel(Xo,t)}var Gl=O({elu_:RD});function PD(e){let t=_(e,"x","erf");$(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=ue(t,"float32"));let n={x:t};return P.runKernel(Ko,n)}var Zy=O({erf_:PD});function OD(e){let t={x:_(e,"x","exp")};return P.runKernel(Us,t)}var hn=O({exp_:OD});function LD(e,t=0){let n=_(e,"x","expandDims","string_or_numeric");$(t<=n.rank,()=>"Axis must be <= rank of the tensor");let a={input:n},r={dim:t};return P.runKernel(Jo,a,r)}var Rn=O({expandDims_:LD});function zD(e){let t={x:_(e,"x","expm1")};return P.runKernel(Qo,t)}var eb=O({expm1_:zD});function WD(e,t){let n=_(e,"x","tile","string_or_numeric");$(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`);let a={x:n},r={reps:t};return P.runKernel(qr,a,r)}var qa=O({tile_:WD});function BD(e,t,n,a="float32"){t==null&&(t=e);let r=Le([e,t],a),s=e<=t?e:t;for(let o=0;o`Error in localResponseNormalization: x must be rank 3 or 4 but got + rank ${s.rank}.`),$(Ht(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=H(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},u={depthRadius:t,bias:n,alpha:a,beta:r},c=P.runKernel(pc,l,u);return o?H(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var nb=O({localResponseNormalization_:ZD});function eM(e){let t={x:_(e,"x","log")};return P.runKernel(Ys,t)}var Pn=O({log_:eM});function tM(e){let t={x:_(e,"x","log1p")};return P.runKernel(ll,t)}var Th=O({log1p_:tM});function nM(e){return $(Gr(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=_(t,"x","tf.grad","string_or_numeric"),r=n!=null?_(n,"dy","tf.grad"):null;return P.tidy(()=>{let{value:s,grads:i}=P.gradients(()=>e(a),[a],r);return r!=null&&ln(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Sh(i),i[0]})}}function aM(e){return $(Gr(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{$(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=Ac(t,"args","tf.grads","string_or_numeric"),r=n!=null?_(n,"dy","tf.grads"):null;return P.tidy(()=>{let{value:s,grads:i}=P.gradients(()=>e(...a),a,r);return r!=null&&ln(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Sh(i),i})}}function rM(e){return $(Gr(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{$(t instanceof Fe,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),$(n==null||n instanceof Fe,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=P.gradients(()=>e(t),[t],n);return Sh(a),{grad:a[0],value:r}}}function sM(e){return $(Gr(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{$(Array.isArray(t)&&t.every(r=>r instanceof Fe),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),$(n==null||n instanceof Fe,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=P.gradients(()=>e(...t),t,n);return n!=null&&ln(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Sh(a.grads),a}}function E1(e,t){$(Gr(e),()=>"The f passed in variableGrads(f) must be a function"),$(t==null||Array.isArray(t)&&t.every(u=>u instanceof Kr),()=>"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),$(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${r} variables is trainable.`);let s=!0,{value:i,grads:o}=P.gradients(e,t,null,s);$(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()."),$(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let l={};return t.forEach((u,c)=>{o[c]!=null&&(l[u.name]=o[c])}),a!=null&&a.forEach(u=>l[u.name]=null),{value:i,grads:l}}function Xa(e){return P.customGrad(e)}function Sh(e){if(e.filter(t=>t==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that + the f you passed encloses all operations that lead from x to y.`)}function iM(e){let t={x:_(e,"x","neg")};return P.runKernel(pl,t)}var St=O({neg_:iM});function oM(e){let t={x:_(e,"x","softplus")};return P.runKernel(Cl,t)}var jl=O({softplus_:oM});function lM(e){let t=_(e,"x","logSigmoid");return Xa(n=>({value:St(jl(St(n))),gradFunc:a=>B(a,da(St(n)))}))(t)}var $1=O({logSigmoid_:lM});function uM(e,t=null,n=!1){let a={x:_(e,"x","max")},r={reductionIndices:t,keepDims:n};return P.runKernel(Js,a,r)}var ea=O({max_:uM});function cM(e,t){let n=_(e,"a","sub"),a=_(t,"b","sub");[n,a]=Tt(n,a);let r={a:n,b:a};return P.runKernel(vi,r)}var me=O({sub_:cM});function pM(e,t=null,n=!1){let a=_(e,"x","sum");a.dtype==="bool"&&(a=ue(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return P.runKernel(yi,r,s)}var Se=O({sum_:pM});function dM(e,t=-1){let n=_(e,"logits","logSoftmax");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and axis was ${t}`);return Xa((a,r)=>{let s=!0,i=ea(a,t,!0),o=me(a,i),l=me(ue(o,"float32"),Pn(Se(hn(o),t,s)));return r([l]),{value:l,gradFunc:(u,c)=>{let[p]=c,d=!0,h=hn(p);return me(u,B(Se(u,t,d),h))}}})(n)}var Ch=O({logSoftmax_:dM});function ab(e,t){for(let n=0;ne[s]);return[n,r]}function Mi(e,t){let n=t.map(a=>1);return D1(e,n,t)}function hM(e,t,n){$(ab(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function R1(e,t){if(ab(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function rb(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function mM(e,t){let n=[];for(let a=t-e;a`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),$(ja(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),r!=null&&$(Ht(a),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let u={x:o},c={filterSize:t,strides:n,pad:a,dimRoundingMode:r},p=P.runKernel(Zs,u,c);return l?H(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var $t=O({maxPool_:vM});function wM(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=_(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=H(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),$(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),$(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),r!=null&&$(Ht(a),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let u={x:o},c={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},p=P.runKernel(dc,u,c);return l?H(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var ib=O({maxPool3d_:wM});function kM(e,t,n,a,r=!1){let s={x:_(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=P.runKernel(Kd,s,i);return{result:o[0],indexes:o[1]}}var O1=O({maxPoolWithArgmax_:kM});function IM(e,t){let n=_(e,"a","maximum"),a=_(t,"b","maximum");[n,a]=Tt(n,a),n.dtype==="bool"&&(n=ue(n,"int32"),a=ue(a,"int32")),xt(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(Qs,r)}var Ka=O({maximum_:IM});function NM(e,t=null,n=!1){let a={x:_(e,"x","mean")},r={axis:t,keepDims:n};return P.runKernel(ei,a,r)}var Ct=O({mean_:NM});function TM(e,t=null,n=!1){let a={x:_(e,"x","min")},r={axis:t,keepDims:n};return P.runKernel(ti,a,r)}var ql=O({min_:TM});function SM(e,t){let n=_(e,"a","minimum"),a=_(t,"b","minimum");[n,a]=Tt(n,a),n.dtype==="bool"&&(n=ue(n,"int32"),a=ue(a,"int32")),xt(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(ni,r)}var Xl=O({minimum_:SM});function CM(e,t,n){$(n==="reflect"||n==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`);let a=_(e,"x","mirrorPad");if(a.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");$(t.length===a.rank,()=>`Padding doesn't match input. Must be ${a.rank}. Got ${t.length}.`);let r=n==="reflect"?1:0;for(let o=0;o"Invalid number of paddings. Must be length of 2 each."),$(t[o][0]>=0&&t[o][0]<=a.shape[o]-r&&t[o][1]>=0&&t[o][1]<=a.shape[o]-r,()=>`Padding in dimension ${o} cannot be greater than or equal to ${a.shape[o]-r} or less than 0 for input of shape ${a.shape}`);let s={paddings:t,mode:n},i={x:a};return P.runKernel(hc,i,s)}var ob=O({mirrorPad_:CM});function AM(e,t){let n=_(e,"a","mod"),a=_(t,"b","mod");[n,a]=Tt(n,a);let r={a:n,b:a};return P.runKernel(cl,r)}var lb=O({mod_:AM});function FM(e){let t=_(e,"x","square"),n={};return P.runKernel("Square",{x:t},n)}var ut=O({square_:FM});function _M(e,t=null,n=!1){e=_(e,"x","moments");let a=ca(t,e.shape),r=Ct(e,a,n),s=r.shape;n||(s=Mi(r.shape,a));let i=ut(me(ue(e,"float32"),H(r,s))),o=Ct(i,a,n);return{mean:r,variance:o}}var Fh=O({moments_:_M});function EM(e,t,n,a){let r=_(t,"data","multiRNNCell"),s=Ac(n,"c","multiRNNCell"),i=Ac(a,"h","multiRNNCell"),o=r,l=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();let o={logits:i===1?H(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},u=P.runKernel(Yd,o,l);return i===1?H(u,[u.size]):u}var L1=O({multinomial_:DM});function MM(e,t){let n=_(e,"a","notEqual"),a=_(t,"b","notEqual");[n,a]=Tt(n,a),xt(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(dl,r)}var Ri=O({notEqual_:MM});function vt(e,t="float32"){if(t==="complex64"){let a=vt(e,"float32"),r=vt(e,"float32");return Yr(a,r)}let n=Td(Ot(e),t);return P.makeTensor(n,e,t)}function Ya(e,t="float32"){if(t==="complex64"){let a=Ya(e,"float32"),r=vt(e,"float32");return Yr(a,r)}let n=ty(Ot(e),t);return P.makeTensor(n,e,t)}function RM(e){let t={x:_(e,"x","onesLike")};return P.runKernel(gl,t)}var On=O({onesLike_:RM});function PM(e,t){let n=_(e,"v1","outerProduct"),a=_(t,"v2","outerProduct");$(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=H(n,[-1,1]),s=H(a,[1,-1]);return ze(r,s)}var OM=O({outerProduct_:PM});function LM(e,t,n=0){let a=_(e,"x","pad");if(a.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let r={paddings:t,constantValue:n},s={x:a};return P.runKernel(si,s,r)}var ta=O({pad_:LM});function zM(e,t,n=0){return $(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),ta(e,[t],n)}var WM=O({pad1d_:zM});function BM(e,t,n=0){return $(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ta(e,t,n)}var VM=O({pad2d_:BM});function UM(e,t,n=0){return $(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ta(e,t,n)}var GM=O({pad3d_:UM});function HM(e,t,n=0){return $(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ta(e,t,n)}var jM=O({pad4d_:HM});function qM(e,t,n){let a=_(e,"x","spaceToBatchND");$(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),$(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),$(a.shape.reduce((i,o,l)=>l>0&&l<=t.length?i&&(o+n[l-1][0]+n[l-1][1])%t[l-1]==0:i,!0),()=>`input spatial dimensions ${a.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`);let r={x:a},s={blockShape:t,paddings:n};return P.runKernel(gc,r,s)}var Lc=O({spaceToBatchND_:qM});function YM(e,t,n,a,r,s){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let i=_(e,"x","maxPool"),o=i,l=!1;i.rank===3&&(l=!0,o=H(i,[1,i.shape[0],i.shape[1],i.shape[2]])),$(ja(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let u=m1(o.shape,t,s,r,a),c=[u.dilationHeight,u.dilationWidth],p;a==="same"?p=KM([u.filterHeight,u.filterWidth],c):p=[[0,0],[0,0]];let d=c[0]===1&&c[1]===1,[h,m]=XM([u.inHeight,u.inWidth],c,p),f=d?a:"valid",g=d?o:Lc(o,c,h),y=(n==="avg"?()=>Zn(g,t,s,f):()=>$t(g,t,s,f))(),b=d?y:Dc(y,c,m);return l?H(b,[b.shape[1],b.shape[2],b.shape[3]]):b}function XM(e,t,n){let a=n.map(c=>c[0]),r=n.map(c=>c[1]),s=e.concat(a,r),i=t.map((c,p)=>(c-s[p]%c)%c),o=r.map((c,p)=>c+i[p]),l=t.map((c,p)=>[a[p],o[p]]),u=t.map((c,p)=>[0,i[p]]);return[l,u]}function KM(e,t){let n=e.map((s,i)=>s+(s-1)*(t[i]-1)).map(s=>s-1),a=n.map(s=>Math.floor(s/2)),r=n.map((s,i)=>s-a[i]);return n.map((s,i)=>[a[i],r[i]])}var z1=O({pool_:YM});function JM(e,t){let n=_(e,"base","pow"),a=_(t,"exp","pow");[n,a]=Tt(n,a);let r={a:n,b:a};return P.runKernel(ii,r)}var xr=O({pow_:JM});function QM(e,t){let n=_(e,"x","prelu"),a=_(t,"alpha","prelu"),r={x:n,alpha:a};return P.runKernel(oi,r)}var zc=O({prelu_:QM});function ZM(e,t=null,n=!1){let a=_(e,"x","prod");a.dtype==="bool"&&(a=ue(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return P.runKernel(bl,r,s)}var _h=O({prod_:ZM});function eR(e,t,n){let a=Ot(e),r=null;if(n==null||n==="float32")r=new Float32Array(a);else if(n==="int32")r=new Int32Array(a);else if(n==="bool")r=new Uint8Array(a);else throw new Error(`Unknown data type ${n}`);for(let s=0;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}},nR=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=ub.alea(r.toString()),this.randn=new cb(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(),rthis.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(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=ub.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function rR(e,t,n=1,a="float32",r){if(n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new nR(t,n,a,r),i=Le(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),Ln(t,0)}var mR=O({reverse1d_:hR});function fR(e,t){let n=_(e,"x","reverse");return $(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),Ln(n,t)}var gR=O({reverse2d_:fR});function yR(e,t){let n=_(e,"x","reverse");return $(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),Ln(n,t)}var bR=O({reverse3d_:yR});function xR(e,t){let n=_(e,"x","reverse");return $(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),Ln(n,t)}var vR=O({reverse4d_:xR});function wR(e){let t={x:_(e,"x","round")};return P.runKernel(di,t)}var db=O({round_:wR});function kR(e){let t={x:_(e,"x","rsqrt")};return P.runKernel(hi,t)}var Dh=O({rsqrt_:kR});function ce(e,t){if((un(e)&&t!=="string"||Array.isArray(e))&&t!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(t==="string"&&un(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return Jr(e,[],[],t)}function IR(e){let t={x:_(e,"x","selu")};return P.runKernel(Il,t)}var Mh=O({selu_:IR});function NR(e,t,n,a,r,s=[1,1],i="NHWC"){let o=_(e,"x","separableConv2d"),l=_(t,"depthwiseFilter","separableConv2d"),u=_(n,"pointwiseFilter","separableConv2d"),c=o,p=!1;if(o.rank===3&&(p=!0,c=H(o,[1,o.shape[0],o.shape[1],o.shape[2]])),i==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");$(c.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`),$(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),$(u.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),$(u.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`),$(u.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`);let d=l.shape[2],h=l.shape[3];$(u.shape[2]===d*h,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${d*h}, but got ${u.shape[2]}.`);let m=ns(c,l,a,r,i,s),f=Et(m,u,1,"valid",i);return p?H(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Pi=O({separableConv2d_:NR});async function TR(e,t){let n=_(e,"x","setdiff1d"),a=_(t,"y","setdiff1d");$(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),$(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),$(a.rank===1,()=>`y should be 1D tensor, but got y (${a.shape}).`);let r=await n.data(),s=await a.data(),i=new Set(s),o=0;for(let c=0;c`slice1d expects a rank-1 tensor, but got a rank-${a.rank} tensor`),Be(a,[t],[n])}var Oh=O({slice1d_:FR});function _R(e,t,n){let a=_(e,"x","slice2d");return $(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var mb=O({slice2d_:_R});function ER(e,t,n){let a=_(e,"x","slice3d");return $(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var Yl=O({slice3d_:ER});function $R(e,t,n){let a=_(e,"x","slice4d");return $(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var Bc=O({slice4d_:$R});function DR(e,t=-1){let n=_(e,"logits","softmax","float32");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and dim was ${t}`);let a={logits:n},r={dim:t};return P.runKernel(bi,a,r)}var Sa=O({softmax_:DR});function MR(e){$(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return P.runKernel(Vd,t)}var Vc=O({fft_:MR});function RR(e){$(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return P.runKernel(Ud,t)}var Jl=O({ifft_:RR});function PR(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=H(e,[n,t]);a=Jl(r)}else{let r=[n,2*(t-1)],s=H(Wc(e),[n,t]),i=H(Ih(e),[n,t]),o=Ln(Be(s,[0,1],[n,t-2]),1),l=B(Ln(Be(i,[0,1],[n,t-2]),1),ce(-1)),u=Je([s,o],1),c=Je([i,l],1),p=H(Yr(u,c),[r[0],r[1]]);a=Jl(p)}if(a=Wc(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=H(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var Lh=O({irfft_:PR});function OR(e,t,n=0){let a={x:_(e,"x","split")},r={numOrSizeSplits:t,axis:n};return P.runKernel(Al,a,r)}var zn=O({split_:OR});function LR(e,t){$(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1],a=e.size/n,r;if(t!=null&&t0),f=e.shape.map(g=>g);f[e.shape.length-1]=t,r=Be(e,m,f),n=t}else if(t!=null&&t>n){let m=e.shape.map(f=>f);m[e.shape.length-1]=t-n,r=Je([e,vt(m)],e.shape.length-1),n=t}else r=e;let s=Ge(r),i=H(Yr(r,s),[a,n]),o=Vc(i),l=Math.floor(n/2)+1,u=Wc(o),c=Ih(o),p=zn(u,[l,n-l],u.shape.length-1),d=zn(c,[l,n-l],c.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,H(Yr(p[0],d[0]),h)}var Uc=O({rfft_:LR});function zR(e){let t={x:_(e,"x","sqrt")};return P.runKernel(gi,t)}var rn=O({sqrt_:zR});function WR(e,t){let n=_(e,"a","squaredDifference"),a=_(t,"b","squaredDifference");[n,a]=Tt(n,a),xt(n.shape,a.shape);let r={a:n,b:a},s={};return P.runKernel(xi,r,s)}var zh=O({squaredDifference_:WR});function BR(e,t){let n=_(e,"x","squeeze");return H(n,s0(n.shape,t).newShape)}var ss=O({squeeze_:BR});function VR(e,t=0){let n=Ac(e,"tensors","stack","string_or_numeric");$(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&$(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return P.runKernel(yl,a,r)}var Dt=O({stack_:VR});function UR(e,t=0){let n={x:_(e,"x","step")},a={alpha:t};return P.runKernel(Xr,n,a)}var Ql=O({step_:UR});function GR(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let u={x:_(e,"x","stridedSlice")},c={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return P.runKernel(Fl,u,c)}var fb=O({stridedSlice_:GR});function HR(e){let t={x:_(e,"x","tan")};return P.runKernel(_l,t)}var gb=O({tan_:HR});function Ze(e,t){Fs(e);let n=Ga(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Jr(e,null,n,t)}function Ca(e,t,n){if(Fs(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=Ga(e,n);if(a.length!==2&&a.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return Jr(e,t,a,n)}function Aa(e,t,n){if(Fs(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=Ga(e,n);if(a.length!==4&&a.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return Jr(e,t,a,n)}function jR(e,t,n){if(Fs(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=Ga(e,n);if(a.length!==5&&a.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return Jr(e,t,a,n)}function qR(e,t,n){if(Fs(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=Ga(e,n);if(a.length!==6&&a.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||a,Jr(e,t,a,n)}function XR(e,t=1,n=!0){let a=_(e,"x","topk");if(a.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let r=a.shape[a.shape.length-1];if(t>r)throw new Error(`'k' passed to topk() must be <= the last dimension (${r}) but got ${t}`);let s={x:a},i={k:t,sorted:n},[o,l]=P.runKernel(El,s,i);return{values:o,indices:l}}var yb=O({topk_:XR});function KR(e,t=0,n=1,a,r){if(a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new cb(t,n,a,!0,r),i=Le(e,a);for(let o=0;o0,()=>"The input tensor must be at least 1D");let a={x:n},r={axis:t},[s,i]=P.runKernel(nh,a,r);return{values:s,indices:i}}var Bh=O({unique_:YR});function JR(e,t,n){let a=_(e,"x","unsortedSegmentSum"),r=_(t,"segmentIds","unsortedSegmentSum","int32");$(Ht(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return P.runKernel(bc,s,i)}var bb=O({unsortedSegmentSum_:JR});function QR(e,t=0){let n=_(e,"x","unstack","string_or_numeric");$(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`);let a={value:n},r={axis:t};return P.runKernel($l,a,r)}var ct=O({unstack_:QR});function V1(e,t=!0,n,a){return P.makeVariable(e,t,n,a)}function U1(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),ln(o.slice(s,s+i),r.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let f=s;f"Shape mismatch in v and x");let l=ce(1),u=me(l,o),c=B(me(i,s),u);if(r){$(a!=null,()=>"When using zeroDebias: true, step is required.");let p=_(a,"step","movingAverage");c=xe(c,me(l,xr(o,p)))}return J(s,c)}var rP=O({movingAverage_:aP});function sP(e,t,n){let a=_(e,"indices","scatterND","int32"),r=_(t,"updates","scatterND");Ey(r,a,n);let s={indices:a,updates:r},i={shape:n};return P.runKernel(wl,s,i)}var H1=O({scatterND_:sP});function iP(e,t,n,a){if(e.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);let r=e.rank>0?e.shape[0]:1,s=e.rank>1?e.shape[1]:1;if(n.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${n.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===r))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${r}]`);if(t.dtype!==a.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function oP(e,t,n,a=0){let r=_(e,"sparseIndices","sparseToDense","int32"),s=_(t,"sparseValues","sparseToDense"),i=_(a,"defaultValue","sparseToDense",s.dtype);iP(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return P.runKernel(eh,o,l)}var vb=O({sparseToDense_:oP});function lP(e,t){let n=_(t,"indices","gatherND","int32"),a={params:_(e,"x","gatherND"),indices:n};return P.runKernel(tl,a)}var j1=O({gatherND_:lP});function uP(e,t){if(t==null)return e.shape.slice();if(gr(e.shape,t))return t;if(e.shape.length===t.length){let n=[];for(let a=0;a`x has to be a floating point tensor since it's going to be scaled, but got a ${r.dtype} tensor instead.`),$(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof Fe?r.clone():r;let s=uP(r,n),i=1-t,o=xe(Hl(J(Kl(s,0,1,"float32",a),i)),i);return B(r,o)}var q1=O({dropout_:cP});function X1(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function wb(e,t,n){let a=1-e%2,r=new Float32Array(e);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${a.rank}`),$(a.rank-1===r.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${a.rank} and targets rank ${r.rank}`),ln(a.shape.slice(0,a.shape.length-1),r.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=a.shape[a.shape.length-1];$(n>0&&n<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${n}`);let i=await a.data(),o=await r.data(),[l,u]=[i.length/s,s],c=i0("bool",l);for(let p=0;pg.value-f.value),c[p]=0;for(let f=0;fhP,depthwiseConv2d:()=>mP,matMul:()=>fP});function gP(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=H(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=H(t,[1,t.shape[0],t.shape[1],t.shape[2]])),$(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),$(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),$(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);let u=s==="NHWC"?o.shape[3]:o.shape[1],c=s==="NHWC"?l.shape[3]:l.shape[1];$(u===n[2],()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`),$(c===n[3],()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${n[3]}).`),i!=null&&$(Ht(r),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`);let p={x:o,dy:l},d={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return P.runKernel($d,p,d)}var kb=O({conv2DBackpropFilter_:gP});function Uh(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return B(e,Ql(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function Gh(e,t){let n=t,a=Wt(e.shape,t.shape);return a.length>0&&(n=Se(n,a)),H(n,e.shape)}function Hh(e,t,n,a){if(t==="linear")return e;if(t==="relu")return qe(e);if(t==="elu")return Gl(e);if(t==="relu6")return $h(e);if(t==="prelu")return zc(e,n);if(t==="leakyrelu")return Pc(e,a);throw new Error(`Unknown fused activation ${t}.`)}var jh=(e,t)=>!(e>0)||t==="linear";function yP({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(l=l||"linear",jh(P.state.gradientDepth,l)===!1){let k=Et(e,t,n,a,r,s,i);return o!=null&&(k=J(k,o)),Hh(k,l,u,c)}let p=_(e,"x","conv2d"),d=_(t,"filter","conv2d"),h=p,m=!1;p.rank===3&&(m=!0,h=H(p,[1,p.shape[0],p.shape[1],p.shape[2]])),$(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),$(d.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${d.rank}.`),i!=null&&$(Ht(a),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`),$(h.shape[3]===d.shape[2],()=>`Error in conv2d: depth of input (${h.shape[3]}) must match input depth for filter ${d.shape[2]}.`),$(ja(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),$(r==="NHWC",()=>`Error in conv2d: got dataFormat of ${r} but only NHWC is currently supported.`);let f=$c(h.shape,d.shape,n,s,a,i),g;o!=null&&(g=_(o,"bias","fused conv2d"),[g]=Tt(g,p),xt(f.outShape,g.shape));let y;u!=null&&(y=_(u,"prelu weights","fused conv2d"));let b=(k,w)=>{let[S,A,F,D]=w,R=Uh(k,F,l);$(ts(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let L=Xy(A.shape,R,S,n,a),W=kb(A,R,S.shape,n,a),U=[L,W];if(D!=null){let G=Gh(D,R);U.push(G)}return U},x={x:h,filter:d,bias:g,preluActivationWeights:y},v={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:c};return o==null?Xa((k,w,S)=>{let A=P.runKernel(Ni,x,v);return S([w,k,A]),m&&(A=H(A,[A.shape[1],A.shape[2],A.shape[3]])),{value:A,gradFunc:b}})(h,d):Xa((k,w,S,A)=>{let F=P.runKernel(Ni,x,v);return A([w,k,F,S]),m&&(F=H(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(h,d,g)}var hP=O({fusedConv2d_:yP});function bP(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=H(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=H(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={x:o,dy:l},c={strides:a,pad:r,dimRoundingMode:i,dilations:s,filterShape:n};return P.runKernel(Pd,u,c)}var K1=O({depthwiseConv2dNativeBackpropFilter_:bP});function xP(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=H(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={dy:o,filter:n},c={strides:a,pad:r,dimRoundingMode:i,dilations:s,inputShape:e},p=P.runKernel(Od,u,c);return l?H(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Y1=O({depthwiseConv2dNativeBackpropInput_:xP});function vP({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(jh(P.state.gradientDepth,l)===!1){let k=ns(e,t,n,a,r,s,i);return o!=null&&(k=J(k,o)),Hh(k,l,u,c)}let p=_(e,"x","depthwiseConv2d"),d=_(t,"filter","depthwiseConv2d"),h=p,m=!1;p.rank===3&&(m=!0,h=H(p,[1,p.shape[0],p.shape[1],p.shape[2]])),$(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),$(d.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${d.rank}.`),$(h.shape[3]===d.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${d.shape[2]}.`),s==null&&(s=[1,1]),$(ja(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),i!=null&&$(Ht(a),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${i} but got pad ${a}.`);let f=$c(h.shape,d.shape,n,s,a,i,!0),g;o!=null&&(g=_(o,"bias","fused conv2d"),[g]=Tt(g,p),xt(f.outShape,g.shape));let y;u!=null&&(y=_(u,"prelu weights","fused depthwiseConv2d"));let b=(k,w)=>{$(ts(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[S,A,F,D]=w,R=Uh(k,F,l),L=Y1(A.shape,R,S,n,a,s,i),W=K1(A,R,S.shape,n,a,s,i);if(D!=null){let U=Gh(g,R);return[L,W,U]}return[L,W]},x={x:h,filter:d,bias:g,preluActivationWeights:y},v={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:c};return o==null?Xa((k,w,S)=>{let A=P.runKernel(Ti,x,v);return S([w,k,A]),m&&(A=H(A,[A.shape[1],A.shape[2],A.shape[3]])),{value:A,gradFunc:b}})(h,d):Xa((k,w,S,A)=>{let F=P.runKernel(Ti,x,v);return A([w,k,F,S]),m&&(F=H(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(h,d,g)}var mP=O({fusedDepthwiseConv2d_:vP});function wP({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o}){if(jh(P.state.gradientDepth,s)===!1){let D=ze(e,t,n,a);return r!=null&&(D=J(D,r)),Hh(D,s,i,o)}let l=_(e,"a","fused matMul"),u=_(t,"b","fused matMul");[l,u]=Tt(l,u);let c=n?l.shape[l.rank-2]:l.shape[l.rank-1],p=a?u.shape[u.rank-1]:u.shape[u.rank-2],d=n?l.shape[l.rank-1]:l.shape[l.rank-2],h=a?u.shape[u.rank-2]:u.shape[u.rank-1],m=l.shape.slice(0,-2),f=u.shape.slice(0,-2),g=Ot(m),y=Ot(f);$(l.rank>=2&&u.rank>=2&&l.rank===u.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${l.rank} and ${u.rank}.`),$(gr(m,f),()=>`Error in fused matMul: outer dimensions (${m}) and (${f}) of Tensors with shapes ${l.shape} and ${u.shape} must match.`),$(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${n} and transposeB=${a} must match.`);let b=l.shape.slice(0,-2).concat([d,h]),x=n?H(l,[g,c,d]):H(l,[g,d,c]),v=a?H(u,[y,h,p]):H(u,[y,p,h]),k;r!=null&&(k=_(r,"bias","fused matMul"),[k]=Tt(k,l),xt(b,k.shape));let w;i!=null&&(w=_(i,"prelu weights","fused matMul"));let S=(D,R)=>{let[L,W,U,G]=R,X=Uh(H(D,U.shape),U,s),j,te;if(!n&&!a?(j=ze(X,W,!1,!0),te=ze(L,X,!0,!1)):!n&&a?(j=ze(X,W,!1,!1),te=ze(X,L,!0,!1)):n&&!a?(j=ze(W,X,!1,!0),te=ze(L,X,!1,!1)):(j=ze(W,X,!0,!0),te=ze(X,L,!0,!0)),r!=null){let Q=Gh(G,X);return[j,te,Q]}else return[j,te]},A={a:x,b:v,bias:k,preluActivationWeights:w},F={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?Xa((D,R,L)=>{let W=P.runKernel(Ii,A,F);return L([D,R,W]),{value:H(W,b),gradFunc:S}})(x,v):Xa((D,R,L,W)=>{let U=P.runKernel(Ii,A,F);return W([D,R,U,L]),{value:H(U,b),gradFunc:S}})(x,v,k)}var fP=O({fusedMatMul_:wP});function kP(e){return wb(e,.54,.46)}var IP=O({hammingWindow_:kP});function NP(e){return wb(e,.5,.5)}var J1=O({hannWindow_:NP});function TP(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(Be(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),$(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`),$(l.rank===1&&l.shape[0]===u,()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`),$(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),$(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),$(r==="bilinear"||r==="nearest",()=>`method must be bilinear or nearest, but was ${r}`);let c={image:i,boxes:o,boxInd:l},p={method:r,extrapolationValue:s,cropSize:a};return P.runKernel(jo,c,p)}var FP=O({cropAndResize_:AP});function _P(e){let t=_(e,"image","flipLeftRight","float32");$(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return P.runKernel(Zo,n,{})}var EP=O({flipLeftRight_:_P});function $P(e,t,n=0,a=.5){let r=_(e,"image","rotateWithOffset","float32");$(r.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${r.rank}.`);let s={image:r},i={radians:t,fillValue:n,center:a};return P.runKernel(Ml,s,i)}var DP=O({rotateWithOffset_:$P});function Zl(e,t,n,a,r,s){a==null&&(a=.5),r==null&&(r=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=e.shape[0];return n=Math.min(n,i),$(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),$(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),$(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),$(t.rank===1,()=>"scores must be a 1D tensor"),$(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),$(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function MP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppression"),i=_(t,"scores","nonMaxSuppression"),o=Zl(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l={maxOutputSize:n,iouThreshold:a,scoreThreshold:r};return P.runKernel(hl,{boxes:s,scores:i},l)}var RP=O({nonMaxSuppression_:MP});function OP(e,t,n){let a=PP(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function PP(e,t,n){return zP(e,t,n||LP)}function LP(e,t){return e>t?1:e>>1);let o=n(t,e[s]);o>0?a=s+1:(r=s,i=!o)}return i?a:-a-1}function Z1(e,t,n,a,r){return Ib(e,t,n,a,r,0)}function ek(e,t,n,a,r,s){return Ib(e,t,n,a,r,0,!1,s,!0)}function tk(e,t,n,a,r,s){return Ib(e,t,n,a,r,s,!0)}function Ib(e,t,n,a,r,s,i=!1,o=!1,l=!1){let u=[];for(let g=0;gr&&u.push({score:t[g],boxIndex:g,suppressBeginIndex:0});u.sort(nk);let c=s>0?-.5/s:0,p=[],d=[];for(;p.length0;){let g=u.pop(),{score:y,boxIndex:b,suppressBeginIndex:x}=g;if(y=x;--k){let w=WP(e,b,p[k]);if(w>=a){v=!0;break}if(g.score=g.score*BP(a,c,w),g.score<=r)break}g.suppressBeginIndex=p.length,v||(g.score===y?(p.push(b),d.push(g.score)):g.score>r&&OP(u,g,nk))}let h=p.length,m=n-h;o&&m>0&&(p.push(...new Array(m).fill(0)),d.push(...new Array(m).fill(0)));let f={selectedIndices:p};return i&&(f.selectedScores=d),l&&(f.validOutputs=h),f}function WP(e,t,n){let a=e.subarray(t*4,t*4+4),r=e.subarray(n*4,n*4+4),s=Math.min(a[0],a[2]),i=Math.min(a[1],a[3]),o=Math.max(a[0],a[2]),l=Math.max(a[1],a[3]),u=Math.min(r[0],r[2]),c=Math.min(r[1],r[3]),p=Math.max(r[0],r[2]),d=Math.max(r[1],r[3]),h=(o-s)*(l-i),m=(p-u)*(d-c);if(h<=0||m<=0)return 0;let f=Math.max(s,u),g=Math.max(i,c),y=Math.min(o,p),b=Math.min(l,d),x=Math.max(y-f,0)*Math.max(b-g,0);return x/(h+m-x)}function BP(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function nk(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function VP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppressionAsync"),i=_(t,"scores","nonMaxSuppressionAsync"),o=Zl(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l=await Promise.all([s.data(),i.data()]),u=l[0],c=l[1],{selectedIndices:p}=Z1(u,c,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),Ze(p,"int32")}var UP=VP;function GP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=Zl(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u={boxes:i,scores:o},c={maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s},p=P.runKernel(fl,u,c);return{selectedIndices:p[0],selectedScores:p[1]}}var HP=O({nonMaxSuppressionWithScore_:GP});async function jP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=Zl(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u=await Promise.all([i.data(),o.data()]),c=u[0],p=u[1],{selectedIndices:d,selectedScores:h}=tk(c,p,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ze(d,"int32"),selectedScores:Ze(h)}}var qP=jP;function XP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=Zl(i,o,n,a,r,null),u=l.maxOutputSize,c=l.iouThreshold,p=l.scoreThreshold,d={boxes:i,scores:o},h={maxOutputSize:u,iouThreshold:c,scoreThreshold:p,padToMaxOutputSize:s},m=P.runKernel(ml,d,h);return{selectedIndices:m[0],validOutputs:m[1]}}var KP=O({nonMaxSuppressionPadded_:XP});async function YP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=Zl(i,o,n,a,r,null),u=l.maxOutputSize,c=l.iouThreshold,p=l.scoreThreshold,[d,h]=await Promise.all([i.data(),o.data()]),{selectedIndices:m,validOutputs:f}=ek(d,h,u,c,p,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ze(m,"int32"),validOutputs:ce(f,"int32")}}var JP=YP;function QP(e,t,n=!1,a=!1){let r=_(e,"images","resizeBilinear");$(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),$(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),$(a===!1||n===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=H(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=P.runKernel(ui,o,l);return i?H(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var ak=O({resizeBilinear_:QP});function ZP(e,t,n=!1,a=!1){let r=_(e,"images","resizeNearestNeighbor");$(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),$(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),$(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),$(a===!1||n===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=H(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=P.runKernel(fc,o,l);return i?H(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var rk=O({resizeNearestNeighbor_:ZP});function eO(e,t,n="nearest",a="constant",r=0,s){let i=_(e,"image","transform","float32"),o=_(t,"transforms","transform","float32");$(i.rank===4,()=>`Error in transform: image must be rank 4,but got rank ${i.rank}.`),$(o.rank===2&&(o.shape[0]===i.shape[0]||o.shape[0]===1)&&o.shape[1]===8,()=>"Error in transform: Input transform should be batch x 8 or 1 x 8"),$(s==null||s.length===2,()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`);let l={image:i,transforms:o},u={interpolation:n,fillMode:a,fillValue:r,outputShape:s};return P.runKernel(th,l,u)}var tO=O({transform_:eO});function nO(e,t,n){$(t%1==0,()=>`bandPart(): numLower must be an integer, got ${t}.`),$(n%1==0,()=>`bandPart(): numUpper must be an integer, got ${n}.`);let a=_(e,"a","bandPart");$(a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${a.rank}.`);let r=a.shape,[s,i]=a.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(n<=i))throw new Error(`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),n<0&&(n=i);let o=H(Eh(0,s,1,"int32"),[-1,1]),l=Eh(0,i,1,"int32"),u=me(o,l),c=ma(Di(u,ce(+t,"int32")),rs(u,ce(-n,"int32"))),p=vt([s,i],a.dtype);return H(Dt(ct(H(a,[-1,s,i])).map(d=>Sn(c,d,p))),r)}var aO=O({bandPart_:nO});function rO(e){let t;if(Array.isArray(e)){t=!1,$(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let r=e[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[s].shape[0]} vs. ${r})`)}else t=!0,e=zn(e,e.shape[0],0).map(r=>ss(r,[0]));$(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);let n=[],a=e;for(let r=0;r{let s=a[r];if(r>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return sk(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,u)=>l*u),a=ct(H(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[u,c]=sk(l,t);r.push(u),s.push(c)});let i=H(Dt(r,0),e.shape),o=H(Dt(s,0),e.shape);return[i,o]}}function sk(e,t=!1){return P.tidy(()=>{$(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);let n=e.shape[0],a=e.shape[1],r=tb(n),s=Zr(e),i=Ca([[1]],[1,1]),o=Zr(i),l=n>=a?a:n;for(let u=0;u{let h=Be(s,[u,u],[n-u,1]),m=Vh(h),f=Be(s,[u,u],[1,1]),g=Sn(ha(f,0),Ca([[-1]]),Ca([[1]])),y=me(f,B(g,m)),b=xe(h,y);b.shape[0]===1?o=Zr(i):o=Je([i,Be(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let x=St(xe(ze(g,y),m)),v=Be(s,[u,0],[n-u,a]),k=B(x,o),w=Ve(o);if(u===0)s=me(v,ze(k,ze(w,v)));else{let F=me(v,ze(k,ze(w,v)));s=Je([Be(s,[0,0],[u,a]),F],0)}let S=Ve(k),A=Be(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=me(A,ze(ze(A,o),S));else{let F=me(A,ze(ze(A,o),S));r=Je([Be(r,[0,0],[n,u]),F],1)}return[o,s,r]}),Ee([c,p,d])}return!t&&n>a&&(r=Be(r,[0,0],[n,a]),s=Be(s,[0,0],[a,a])),[r,s]})}var oO=O({qr_:iO}),mn;(function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(mn||(mn={}));function lO(e,t,n=mn.SUM_BY_NONZERO_WEIGHTS){let a=_(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=_(t,"weights","computeWeightedLoss"));let s=r==null?a:B(a,r);if(n===mn.NONE)return s;if(n===mn.SUM)return Se(s);if(n===mn.MEAN){if(r==null)return Ct(s);{let i=a.size/r.size,o=xe(Se(s),Se(r));return i>1?xe(o,ce(i)):o}}if(n===mn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return xe(Se(s),ce(a.size));{let i=B(r,Ya(a.shape)),o=ue(Se(Ri(i,ce(0))),"float32");return xe(Se(s),o)}}throw Error(`Unknown reduction: ${n}`)}var vr=O({computeWeightedLoss_:lO});function uO(e,t,n,a=mn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","absoluteDifference"),s=_(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=_(n,"weights","absoluteDifference")),ln(r.shape,s.shape,"Error in absoluteDifference: ");let o=zt(me(r,s));return vr(o,i,a)}var cO=O({absoluteDifference_:uO});function pO(e,t,n,a,r=mn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","cosineDistance"),i=_(t,"predictions","cosineDistance"),o=null;a!=null&&(o=_(a,"weights","cosineDistance")),ln(s.shape,i.shape,"Error in cosineDistance: ");let l=ce(1),u=me(l,Se(B(s,i),n,!0));return vr(u,o,r)}var dO=O({cosineDistance_:pO});function hO(e,t,n,a=mn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","hingeLoss"),s=_(t,"predictions","hingeLoss"),i=null;n!=null&&(i=_(n,"weights","hingeLoss")),ln(r.shape,s.shape,"Error in hingeLoss: ");let o=ce(1);r=me(B(ce(2),r),o);let l=qe(me(o,B(r,s)));return vr(l,i,a)}var mO=O({hingeLoss_:hO});function fO(e,t,n,a=1,r=mn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","huberLoss"),i=_(t,"predictions","huberLoss"),o=null;n!=null&&(o=_(n,"weights","huberLoss")),ln(s.shape,i.shape,"Error in huberLoss: ");let l=ce(a),u=zt(me(i,s)),c=Xl(u,l),p=me(u,c),d=J(B(ce(.5),ut(c)),B(l,p));return vr(d,o,r)}var gO=O({huberLoss_:fO});function yO(e,t,n,a=1e-7,r=mn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","logLoss"),i=_(t,"predictions","logLoss"),o=null;n!=null&&(o=_(n,"weights","logLoss")),ln(s.shape,i.shape,"Error in logLoss: ");let l=ce(1),u=ce(a),c=St(B(s,Pn(J(i,u)))),p=B(me(l,s),Pn(J(me(l,i),u))),d=me(c,p);return vr(d,o,r)}var bO=O({logLoss_:yO});function xO(e,t,n,a=mn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","meanSquaredError"),s=_(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=_(n,"weights","meanSquaredError")),ln(r.shape,s.shape,"Error in meanSquaredError: ");let o=zh(r,s);return vr(o,i,a)}var vO=O({meanSquaredError_:xO});function wO(e,t){let n=_(e,"labels","sigmoidCrossEntropyWithLogits"),a=_(t,"logits","sigmoidCrossEntropyWithLogits");ln(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=qe(a),s=B(a,n),i=Th(hn(St(zt(a))));return J(me(r,s),i)}function kO(e,t,n,a=0,r=mn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"multiClassLabels","sigmoidCrossEntropy"),i=_(t,"logits","sigmoidCrossEntropy"),o=null;if(n!=null&&(o=_(n,"weights","sigmoidCrossEntropy")),ln(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let u=ce(a),c=ce(1),p=ce(.5);s=J(B(s,me(c,u)),B(p,u))}let l=wO(s,i);return vr(l,o,r)}var IO=O({sigmoidCrossEntropy_:kO});function NO(e,t,n=-1){if(n===-1&&(n=t.rank-1),n!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${n}`);return Xa((a,r,s)=>{let i=sb(r,[n],!0),o=me(ue(r,"float32"),i);s([a,o]);let l=St(B(o,a));return{value:Se(l,[n]),gradFunc:(u,c)=>{let[p,d]=c,h=Mi(u.shape,[n]);return[B(H(u,h),me(ue(p,"float32"),hn(d))),B(H(u,h),me(hn(d),ue(p,"float32")))]}}})(e,t)}function TO(e,t,n,a=0,r=mn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"onehotLabels","softmaxCrossEntropy"),i=_(t,"logits","softmaxCrossEntropy"),o=null;if(n!=null&&(o=_(n,"weights","softmaxCrossEntropy")),ln(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let u=ce(a),c=ce(1),p=ce(s.shape[1]);s=J(B(s,me(c,u)),xe(u,p))}let l=NO(s,i);return vr(l,o,r)}var SO=O({softmaxCrossEntropy_:TO}),CO={fft:Vc,ifft:Jl,rfft:Uc,irfft:Lh},AO={hammingWindow:IP,hannWindow:J1,frame:Q1,stft:CP},Ja={flipLeftRight:EP,resizeNearestNeighbor:rk,resizeBilinear:ak,rotateWithOffset:DP,cropAndResize:FP,nonMaxSuppression:RP,nonMaxSuppressionAsync:UP,nonMaxSuppressionWithScore:HP,nonMaxSuppressionWithScoreAsync:qP,nonMaxSuppressionPadded:KP,nonMaxSuppressionPaddedAsync:JP,transform:tO},ik={bandPart:aO,gramSchmidt:sO,qr:oO},FO={absoluteDifference:cO,computeWeightedLoss:vr,cosineDistance:dO,hingeLoss:mO,huberLoss:gO,logLoss:bO,meanSquaredError:vO,sigmoidCrossEntropy:IO,softmaxCrossEntropy:SO},wr=class extends i1{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 E1(e,t)}dispose(){this.iterations_!=null&&Ee(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:ce(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}};Object.defineProperty(wr,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var qh=class extends wr{constructor(e,t,n=null){super();this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=P.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=P.registeredVariables[t],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:M(()=>Ge(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:M(()=>Ge(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedGrads[n].variable,o=this.accumulatedUpdates[n].variable;M(()=>{let l=J(B(i,this.rho),B(ut(s),1-this.rho)),u=B(xe(rn(J(o,this.epsilon)),rn(J(i,this.epsilon))),s),c=J(B(o,this.rho),B(ut(u),1-this.rho));i.assign(l),o.assign(c);let p=J(B(u,-this.learningRate),a);a.assign(p)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Ee(this.accumulatedGrads.map(e=>e.variable)),Ee(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=e.length/2,n=!1;this.accumulatedGrads=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedUpdates=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}};qh.className="Adadelta";es(qh);var Xh=class extends wr{constructor(e,t=.1){super();this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=P.registeredVariables[t];if(this.accumulatedGrads[n]==null){let i=!1;this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:M(()=>Cn(a.shape,this.initialAccumulatorValue).variable(i))}}let r=Array.isArray(e)?e[n].tensor:e[t];if(r==null)return;let s=this.accumulatedGrads[n].variable;M(()=>{let i=J(s,ut(r));s.assign(i);let o=J(B(xe(r,rn(J(i,P.backend.epsilon()))),-this.learningRate),a);a.assign(o)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Ee(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulatedGrads=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}};Xh.className="Adagrad";es(Xh);var Kh=class extends wr{constructor(e,t,n,a=null){super();this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],M(()=>{this.accBeta1=ce(t).variable(),this.accBeta2=ce(n).variable()}),a==null&&(this.epsilon=P.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);M(()=>{let n=me(1,this.accBeta1),a=me(1,this.accBeta2);t.forEach((r,s)=>{let i=P.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:M(()=>Ge(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:M(()=>Ge(i).variable(o))});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,c=this.accumulatedSecondMoment[s].variable,p=J(B(u,this.beta1),B(l,1-this.beta1)),d=J(B(c,this.beta2),B(ut(l),1-this.beta2)),h=xe(p,n),m=xe(d,a);u.assign(p),c.assign(d);let f=J(B(xe(h,J(rn(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(B(this.accBeta1,this.beta1)),this.accBeta2.assign(B(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Ee(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&Ee(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),M(()=>{this.accBeta1.assign(xr(this.beta1,this.iterations_+1)),this.accBeta2.assign(xr(this.beta2,this.iterations_+1))});let t=e.length/2,n=!1;this.accumulatedFirstMoment=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}};Kh.className="Adam";es(Kh);var Yh=class extends wr{constructor(e,t,n,a=null,r=0){super();this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.decay=r,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],M(()=>{this.iteration=ce(0).variable(),this.accBeta1=ce(t).variable()}),a==null&&(this.epsilon=P.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);M(()=>{let n=me(1,this.accBeta1),a=xe(-this.learningRate,J(B(this.iteration,this.decay),1));t.forEach((r,s)=>{let i=P.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:Ge(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:Ge(i).variable(o)});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,c=this.accumulatedWeightedInfNorm[s].variable,p=J(B(u,this.beta1),B(l,1-this.beta1)),d=B(c,this.beta2),h=zt(l),m=Ka(d,h);u.assign(p),c.assign(m);let f=J(B(xe(a,n),xe(p,J(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(J(this.iteration,1)),this.accBeta1.assign(B(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Ee(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&Ee(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}};Yh.className="Adamax";es(Yh);var Gc=class extends wr{constructor(e){super();this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=Array.isArray(e)?e[n].tensor:e[t];if(a==null)return;let r=P.registeredVariables[t];M(()=>{let s=J(B(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=qt(ce(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}};Gc.className="SGD";es(Gc);var Jh=class extends Gc{constructor(e,t,n=!1){super(e);this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=ce(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=P.registeredVariables[t];if(this.accumulations[n]==null){let i=!1;this.accumulations[n]={originalName:`${t}/momentum`,variable:M(()=>Ge(a).variable(i))}}let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&M(()=>{let i,o=J(B(this.m,r),s);this.useNesterov?i=J(B(this.c,J(s,B(o,this.m))),a):i=J(B(this.c,o),a),r.assign(o),a.assign(i)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Ee(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulations=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}};Jh.className="Momentum";es(Jh);var Qh=class extends wr{constructor(e,t=.9,n=0,a=null,r=!1){super();if(this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=a,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=r,a==null&&(this.epsilon=P.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=P.registeredVariables[t],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:M(()=>Ge(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:M(()=>Ge(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:M(()=>Ge(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;M(()=>{let l=J(B(i,this.decay),B(ut(s),1-this.decay));if(this.centered){let u=this.accumulatedMeanGrads[n].variable,c=J(B(u,this.decay),B(s,1-this.decay)),p=xe(B(s,this.learningRate),rn(me(l,J(ut(c),this.epsilon)))),d=J(B(o,this.momentum),p);i.assign(l),u.assign(c),o.assign(d);let h=me(a,d);a.assign(h)}else{let u=J(B(i,this.decay),B(ut(s),1-this.decay)),c=J(B(o,this.momentum),xe(B(s,this.learningRate),rn(J(u,this.epsilon))));i.assign(u),o.assign(c);let p=me(a,c);a.assign(p)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Ee(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Ee(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&Ee(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedMoments=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}};Qh.className="RMSProp";es(Qh);var Oi=class{static sgd(e){return new Gc(e)}static momentum(e,t,n=!1){return new Jh(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new Qh(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new Kh(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new qh(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new Yh(e,t,n,a,r)}static adagrad(e,t=.1){return new Xh(e,t)}},Li={sgd:Oi.sgd,momentum:Oi.momentum,adadelta:Oi.adadelta,adagrad:Oi.adagrad,rmsprop:Oi.rmsprop,adamax:Oi.adamax,adam:Oi.adam},_O=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function Zh(){return new Promise(e=>_O(()=>e()))}var E={};Oe(E,{ERF_A1:()=>BO,ERF_A2:()=>VO,ERF_A3:()=>UO,ERF_A4:()=>GO,ERF_A5:()=>HO,ERF_P:()=>WO,PARALLELIZE_THRESHOLD:()=>Nb,SELU_SCALE:()=>lk,SELU_SCALEALPHA:()=>ok,applyActivation:()=>Hh,assertAndGetBroadcastShape:()=>xt,assertAxesAreInnerMostDims:()=>hM,assertParamsConsistent:()=>EO,assignToTypedArray:()=>ZO,axesAreInnerMostDims:()=>ab,calculateShapes:()=>X0,combineLocations:()=>D1,complexWithEvenIndex:()=>YO,complexWithOddIndex:()=>JO,computeConv2DInfo:()=>$c,computeConv3DInfo:()=>f1,computeDefaultPad:()=>Hy,computeDilation2DInfo:()=>O$,computeOptimalWindowSize:()=>DO,computeOutAndReduceShapes:()=>M1,computeOutShape:()=>$O,computePool2DInfo:()=>m1,computePool3DInfo:()=>L$,convertConv2DDataFormat:()=>h1,eitherStridesOrDilationsAreOne:()=>ja,expandShapeToKeepDim:()=>Mi,exponent:()=>tL,exponents:()=>eL,fromStringArrayToUint8:()=>rL,fromUint8ToStringArray:()=>aL,getAxesPermutation:()=>R1,getBroadcastDims:()=>FD,getComplexWithIndex:()=>QO,getFusedBiasGradient:()=>Gh,getFusedDyActivation:()=>Uh,getImageCenter:()=>MO,getInnerMostAxes:()=>mM,getPermuted:()=>PO,getReductionAxes:()=>Wt,getReshaped:()=>RO,getReshapedPermuted:()=>OO,getSliceBeginCoords:()=>LO,getSliceSize:()=>zO,getUndoAxesPermutation:()=>rb,log:()=>qO,mergeRealAndImagArrays:()=>XO,prepareAndValidate:()=>q0,prepareSplitSize:()=>nL,segment_util:()=>uk,shouldFuse:()=>jh,slice_util:()=>dn,splitRealAndImagArrays:()=>KO,tupleValuesAreOne:()=>ts,upcastType:()=>pa,validateInput:()=>Ey,validateUpdateShape:()=>_y,warn:()=>jO});function EO(e,t){let n=e[0].length;e.forEach((r,s)=>{$(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),$(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`);let a=e[0];e.forEach((r,s)=>{for(let i=0;i`Error in concat${n}D: Shape of tensors[${s}] (${r}) does not match the shape of the rest (${a}) along the non-concatenated axis ${s}.`)})}function $O(e,t){let n=e[0].slice();for(let a=1;a=t*2+1||i%2==1?s.push(i):r.push(i);a.push(...r),a.push(0),a.push(...s)}return a}function OO(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s"Number of splits must evenly divide the axis."),a=new Array(t).fill(e.shape[n]/t);else{let r=t.reduce((i,o)=>(o===-1&&(i+=1),i),0);$(r<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((o,l)=>l>0?o+l:o);t[s]=e.shape[n]-i}$(e.shape[n]===t.reduce((i,o)=>i+o),()=>"The sum of sizes must match the size of the axis dimension."),a=t}return a}var uk={};Oe(uk,{collectGatherOpShapeInfo:()=>oL,computeOutShape:()=>iL,segOpComputeOptimalWindowSize:()=>sL});function sL(e,t){let n=!1,a;for(e<=Nb?(a=e,n=!0):a=Nd(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=Nd(e,a+1);return a}function iL(e,t,n){let a=[],r=e.length;for(let s=0;sr))throw new Error(`Expect batchDims in the range of [-${r}, ${r}], but got ${a}`);if(a<0&&(a+=r),a>s)throw new Error(`batchDims (${a}) must be less than rank(x) ( + ${s}).`);if(noh(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function rL(e){return e.map(t=>kc(t))}var Qa={};Oe(Qa,{nonMaxSuppressionV3Impl:()=>Z1,nonMaxSuppressionV4Impl:()=>ek,nonMaxSuppressionV5Impl:()=>tk,whereImpl:()=>U1});var ck={kernelName:Po,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(e,Ql(ue(n,"float32"),-1))}}},lL={kernelName:Oo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ut(ue(n,"float32")),r=rn(me(ce(1),a));return St(xe(e,r))}}}},uL={kernelName:Lo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=rn(me(ut(ue(n,"float32")),1));return xe(e,a)}}}},cL={kernelName:Hr,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=Se(s,i)),H(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=Se(s,i)),H(s,a.shape)}}}},pL={kernelName:Es,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},dL={kernelName:$s,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Ge(n)}}},hL={kernelName:nc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Ge(n)}}},mL={kernelName:zo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,rn(me(ce(1),ut(ue(n,"float32")))))}}},fL={kernelName:Wo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=rn(J(ce(1),ut(ue(n,"float32"))));return xe(e,a)}}}},gL={kernelName:Uo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=J(ut(n),ut(a)),i=B(e,xe(a,s)),o=Wt(n.shape,r);return o.length>0&&(i=Se(i,o)),H(i,n.shape)},b:()=>{let s=J(ut(n),ut(a)),i=St(B(e,xe(n,s))),o=Wt(a.shape,r);return o.length>0&&(i=Se(i,o)),H(i,a.shape)}}}},yL={kernelName:Bo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,J(ut(ue(n,"float32")),1))}}},bL={kernelName:Vo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,me(ce(1),ut(ue(n,"float32"))))}}};function xL(e,t,n,a,r,s){let i=_(e,"dy","avgPool3dGrad"),o=_(t,"input","avgPool3dGrad"),l=i,u=o,c=!1;o.rank===4&&(c=!0,l=H(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=H(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),$(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),$(u.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${u.rank}.`),s!=null&&$(Ht(r),()=>`Error in avgPool3dGrad: pad must be an integer when using, dimRoundingMode ${s} but got pad ${r}.`);let p={dy:l,input:u},d={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=P.runKernel(Fd,p,d);return c?H(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var vL=O({avgPool3dGrad_:xL}),wL={kernelName:ac,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>vL(e,a,r,s,i,o)}}};function kL(e,t,n,a,r){let s=_(e,"dy","avgPoolGrad"),i=_(t,"input","avgPoolGrad");$(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let o=i,l=s,u=!1;i.rank===3&&(u=!0,o=H(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=H(s,[1,s.shape[0],s.shape[1],s.shape[2]])),$(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),$(o.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`);let c={dy:l,input:o},p={filterSize:n,strides:a,pad:r},d=P.runKernel(Ad,c,p);return u?H(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var IL=O({avgPoolGrad_:kL}),NL={kernelName:Ds,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>IL(e,a,r,s,i)}}},TL={kernelName:Ms,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>ze(e,r,!1,!0),b:()=>ze(a,e,!0,!1)}:!s&&i?{a:()=>ze(e,r,!1,!1),b:()=>ze(e,a,!0,!1)}:s&&!i?{a:()=>ze(r,e,!1,!0),b:()=>ze(a,e,!1,!1)}:{a:()=>ze(r,e,!0,!0),b:()=>ze(e,a,!0,!0)}}},SL={kernelName:rc,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>Lc(e,a,r)}}},CL={kernelName:y0,gradFunc:(e,t,n)=>{let a=n,r=a.inputShape,s=a.shape,i=Array.from(s);for(let l=r.length-1;l>=0;l--)if(r[l]===s[l])i[l]=1;else if(r[l]!==1)throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${s}].`);let o=[];for(let l=0;l1&&o.push(l);return{x:()=>Se(e,o,!0)}}},AL={kernelName:Rs,gradFunc:e=>({x:()=>e.clone()})},FL={kernelName:Ps,gradFunc:e=>({x:()=>Ge(e)})},_L={kernelName:jr,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>Sn(ma(rs(a,r),Di(a,s)),e,Ge(e))}}},EL={kernelName:sc,inputsToSave:["x"],gradFunc:ck.gradFunc},$L={kernelName:Go,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=ca(r,t[0].shape)[0],i=a.map(o=>o[s]);return zn(e,i,s).map(o=>()=>o)}},DL={kernelName:Os,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return $(ts(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>Xy(a.shape,e,r,i,o,l),filter:()=>kb(a,e,r.shape,i,o,l)}}},ML={kernelName:Ls,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>Et(e,r,s,i,o,1,l),filter:()=>kb(e,a,r.shape,s,i,o,l)}}};function RL(e,t,n,a,r){let s=e;e.rank===4&&(s=H(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=H(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),$(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),$(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),$(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),$(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),$(i.shape[4]===n[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${n[4]}).`);let o={x:s,dy:i},l={strides:a,pad:r,filterShape:n};return P.runKernel(Dd,o,l)}var PL=O({conv3DBackpropFilter_:RL}),OL={kernelName:ic,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;$(ts(a),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${a}'`);let[i,o]=t;return{x:()=>N1(i.shape,e,o,r,s),filter:()=>PL(i,e,o.shape,r,s)}}},LL={kernelName:zs,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(St(Rh(ue(n,"float32"))),e)}}},zL={kernelName:Ho,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(Ph(ue(n,"float32")),e)}}},WL={kernelName:Ws,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=R1([r],a.rank),l=kh(e,r,s,!i);return o!=null&&(l=Ve(l,o)),l}}}},BL={kernelName:Bs,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;$(ts(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,u]=t;return $(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),$(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`),$(l.shape[3]===u.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${u.shape[2]}.`),$(ja(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),i!=null&&$(Ht(s),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`),{x:()=>Y1(l.shape,e,u,r,s,a,i),filter:()=>K1(l,e,u.shape,r,s,a,i)}}},VL={kernelName:oc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,s={x:a,filter:r,dy:e},i={x:a,filter:r,dy:e};return{x:()=>P.runKernel(zd,s,n),filter:()=>P.runKernel(Wd,i,n)}}},UL={kernelName:Xo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>P.runKernel(Bd,a)}}},GL={kernelName:Ko,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=B(hn(St(ut(n))),2/Math.sqrt(Math.PI));return{x:()=>B(e,a)}}},HL={kernelName:Us,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(e,n)}}},jL={kernelName:Jo,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>H(e,n.shape)}}},qL={kernelName:Qo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(e,hn(n))}}},XL={kernelName:Gs,gradFunc:e=>({x:()=>Ge(e)})},KL={kernelName:Hs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=xe(e,ue(a,"float32")),i=Wt(n.shape,r);return i.length>0?H(Se(s,i),n.shape):s},b:()=>{let s=B(e,ue(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=H(Se(s,i),a.shape));let o=ut(a);return St(xe(s,ue(o,"float32")))}}}},YL={kernelName:js,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?ce(1):o,u=Wt(s.shape,r.shape),c=[];if(s.rank===1){for(let f=0;fs.rank===1?H(B(B(e,qa(H(h,[1,1,1,s.shape[0]]),c)),l),r.shape):H(B(B(e,h),l),r.shape),mean:()=>{let f=B(B(h,ce(-1)),d);return s.rank===1&&(f=Se(f,u)),H(f,s.shape)},variance:()=>{let f=B(B(m,p),d);return s.rank===1&&(f=Se(f,u)),H(f,s.shape)},scale:()=>{let f=B(p,h),g=B(e,f);return s.rank===1&&(g=Se(g,u)),H(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=Se(f,u)),H(f,s.shape)}}}},JL={kernelName:el,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s}=n,i=ca(s,a.shape)[0];return{x:()=>{let o=a.shape,l=r.size,u=o.slice(0,i),c=u.length,p=o.slice(s,o.length).slice(1),d=p.length,h=pk(0,c),m=pk(c+1,c+1+d),f=dk([u,[l],p]),g=H(e,f),y=H(r,[l]),b=dk([[c],h,m]),x=Ve(g,b),v=bb(x,y,a.shape[i]),k=rb(b);return v=Ve(v,k),v},indices:()=>r}}};function pk(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>Ge(n),b:()=>Ge(a)}}},ZL={kernelName:Xs,gradFunc:e=>({x:()=>ue(e,"float32")})},e3={kernelName:al,gradFunc:e=>({x:()=>Ge(e)})},t3={kernelName:rl,gradFunc:e=>({x:()=>Ge(e)})},n3={kernelName:sl,gradFunc:e=>({x:()=>Ge(e)})},a3={kernelName:Ks,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=ha(a,0);return{x:()=>Sn(s,e,B(e,r))}}},r3={kernelName:ll,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,J(n,1))}}},s3={kernelName:Ys,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,ue(n,"float32"))}}},i3={kernelName:b0,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=!0,i=hn(a);return me(e,B(Se(e,r,s),i))}}}};function o3(e,t,n,a=5,r=1,s=1,i=.5){let o={x:e,y:t,dy:n},l={depthRadius:a,bias:r,alpha:s,beta:i};return P.runKernel(jd,o,l)}var l3=O({localResponseNormalizationBackprop_:o3}),u3={kernelName:pc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>l3(a,r,e,s,i,o,l)}}};function hk(e,t,n,a){return t.rankB(e,ue(as(n,t),e.dtype))}}var mk={kernelName:Js,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=ca(r,s.shape),l=hk(e,i,s,o);return{x:()=>l.x()}}},c3={kernelName:Qs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>B(e,ue(rs(n,a),"float32")),b:()=>B(e,ue(Nh(n,a),"float32"))}}};function p3(e,t,n,a,r,s,i){let o=_(e,"dy","maxPool3dGrad"),l=_(t,"input","maxPool3dGrad"),u=_(n,"output","maxPool3dGrad"),c=o,p=l,d=u,h=!1;l.rank===4&&(h=!0,c=H(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),p=H(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),d=H(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),$(c.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${c.rank}.`),$(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),$(d.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${d.rank}.`),i!=null&&$(Ht(s),()=>`Error in maxPool3dGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`);let m={dy:c,input:p,output:d},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=P.runKernel(Xd,m,f);return h?H(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var d3=O({maxPool3dGrad_:p3}),h3={kernelName:dc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>d3(e,a,r,s,i,o,l)}}};function m3(e,t,n,a,r,s,i){let o=_(e,"dy","maxPoolGrad"),l=_(t,"input","maxPoolGrad"),u=_(n,"output","maxPoolGrad");$(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),$(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),$(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),i!=null&&$(Ht(s),()=>`Error in maxPoolGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`);let c={dy:o,input:l,output:u},p={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return P.runKernel(qd,c,p)}var f3=O({maxPoolGrad_:m3}),g3={kernelName:Zs,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>f3(e,a,r,s,i,o)}}},y3={kernelName:ei,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=ca(r,a.shape),i=M1(a.shape,s)[1],o=Ot(i);return{x:()=>{let l=a.shape.slice();s.forEach(c=>{l[c]=1});let u=H(e,l);return xe(B(u,Ya(a.shape,"float32")),o)}}}},b3={kernelName:ti,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=ca(r,s.shape),l=hk(e,i,s,o);return{x:()=>l.x()}}},x3={kernelName:ni,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>B(e,ue(Di(n,a),"float32")),b:()=>B(e,ue(ha(n,a),"float32"))}}},v3={kernelName:hc,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Be(e,s,a.shape)}}},w3={kernelName:cl,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=Wt(n.shape,r);return s.length>0?H(Se(e,s),n.shape):e},b:()=>{let s=B(e,St(Hl(xe(n,a)))),i=Wt(a.shape,r);return i.length>0?H(Se(s,i),a.shape):s}}}},k3={kernelName:ai,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=B(e,ue(a,"float32")),i=Wt(n.shape,r);return i.length>0?H(Se(s,i),n.shape):s},b:()=>{let s=B(e,ue(n,"float32")),i=Wt(a.shape,r);return i.length>0?H(Se(s,i),a.shape):s}}}},I3={kernelName:pl,gradFunc:e=>({x:()=>St(e)})},N3={kernelName:ri,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>vt(n.shape,"float32")}}},T3={kernelName:gl,gradFunc:e=>({x:()=>Ge(e)})},S3={kernelName:yl,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return ct(e,a).map(r=>()=>r)}},fk={kernelName:si,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Be(e,s,a.shape)}}},C3={kernelName:ii,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=xt(s.shape,i.shape);return{a:()=>{let l=ue(i,"float32"),u=B(e,B(l,xr(s,me(l,ce(1))))),c=Wt(s.shape,o);return c.length>0&&(u=Se(u,c)),H(u,s.shape)},b:()=>{let l=ha(s,0),u=Sn(l,Pn(s),Ge(s)),c=B(e,B(r,u)),p=Wt(i.shape,o);return p.length>0&&(c=Se(c,p)),H(c,i.shape)}}}},A3={kernelName:oi,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=ha(n,0);return{x:()=>Sn(r,e,B(e,a)),alpha:()=>{let s=Sn(r,Ge(e),B(e,n)),i=Wt(a.shape,e.shape);return i.length>0&&(s=Se(s,i)),H(s,a.shape)}}}},F3={kernelName:Vs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=xe(e,ue(a,"float32")),i=Wt(n.shape,r);return i.length>0?H(Se(s,i),n.shape):s},b:()=>{let s=B(e,ue(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=H(Se(s,i),a.shape));let o=ut(a);return St(xe(s,ue(o,"float32")))}}}},_3={kernelName:xl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,St(ut(n)))}}},E3={kernelName:ci,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=B(Di(n,6),Ql(n));return{x:()=>B(e,ue(a,"float32"))}}},$3={kernelName:li,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(e,ue(Ql(n),"float32"))}}},D3={kernelName:vl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>H(e,n.shape)}}},M3={kernelName:ui,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>P.runKernel(Zd,r,n)}}},R3={kernelName:fc,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>P.runKernel(Qd,r,n)}}},P3={kernelName:pi,gradFunc:(e,t,n)=>{let{dims:a}=n,r=ca(a,e.shape);return{x:()=>Ln(e,r)}}},O3={kernelName:di,gradFunc:e=>({x:()=>Ge(e)})},L3={kernelName:hi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>St(xe(e,B(xr(n,1.5),2)))}}},z3={kernelName:kl,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>ue(Ge(n),"float32"),t:()=>B(e,ue(n,e.dtype)),e:()=>B(e,ue(Oc(n),e.dtype))}}},W3={kernelName:Il,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ha(n,ce(0)),r=ce(ok),s=ce(lk),i=B(e,s),o=B(B(e,r),hn(ue(n,"float32")));return Sn(a,i,o)}}}},B3={kernelName:fi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(e,B(n,me(ce(1),n)))}}},V3={kernelName:Sl,gradFunc:e=>({x:()=>Ge(e)})},U3={kernelName:mi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(Rc(ue(n,"float32")),e)}}},G3={kernelName:Tl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(wh(ue(n,"float32")),e)}}},H3={kernelName:Nl,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=a1(a,r,s),u=[];for(let c=0;cta(e,u)}}},j3={kernelName:bi,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=B(e,a);return{logits:()=>me(i,B(Se(i,[r],s),a))}}},q3={kernelName:Cl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(e,da(n))}}},gk={kernelName:gc,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>Dc(e,a,r)}}},yk={kernelName:Al,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Je(e,a)}}},X3={kernelName:gi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,B(rn(ue(n,"float32")),2))}}},K3={kernelName:yc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(e,B(ue(n,"float32"),2))}}},Y3={kernelName:xi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ce(2);return{a:()=>B(e,B(r,me(n,a))),b:()=>B(e,B(r,me(a,n)))}}},J3={kernelName:Xr,gradFunc:e=>({x:()=>Ge(e)})},Q3={kernelName:vi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=Se(s,i)),H(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=Se(s,i)),H(St(s),a.shape)}}}},Z3={kernelName:yi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;ca(s,a.shape).forEach(l=>{r[l]=1});let i=H(e,r),o=B(i,Ya(a.shape,"float32"));return{x:()=>o}}},ez={kernelName:_l,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>xe(e,ut(Rc(n)))}}},tz={kernelName:wi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(me(ce(1),ut(n)),e)}}},nz={kernelName:qr,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=Ge(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=rb(r);return{x:()=>Ve(e,s)}}},rz={kernelName:$l,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>Dt(e,r)}}},iz={kernelName:bc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>sz(e,n)}}};function sz(e,t){let n=Ka(t,Ge(t)),a=$i(e,n),r=rs(t,ce(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>Ge(e)})},lz=[ck,lL,uL,cL,pL,dL,hL,mL,fL,gL,yL,bL,wL,NL,TL,SL,CL,AL,FL,_L,EL,$L,ML,DL,OL,LL,zL,WL,BL,VL,F3,UL,GL,HL,jL,qL,KL,XL,YL,JL,QL,ZL,e3,t3,n3,a3,r3,s3,i3,u3,mk,mk,c3,h3,g3,y3,b3,x3,v3,w3,k3,I3,N3,T3,S3,fk,fk,C3,A3,_3,E3,$3,D3,M3,R3,P3,O3,L3,z3,W3,B3,V3,U3,G3,H3,j3,q3,gk,gk,yk,yk,X3,Y3,K3,J3,Q3,Z3,ez,tz,nz,az,rz,iz,oz];for(let e of lz)x0(e);Y().prototype.abs=function(){return this.throwIfDisposed(),zt(this)};Y().prototype.acos=function(){return this.throwIfDisposed(),Py(this)};Y().prototype.acosh=function(){return this.throwIfDisposed(),Oy(this)};Y().prototype.add=function(e){return this.throwIfDisposed(),J(this,e)};Y().prototype.all=function(e,t){return this.throwIfDisposed(),yh(this,e,t)};Y().prototype.any=function(e,t){return this.throwIfDisposed(),_c(this,e,t)};Y().prototype.argMax=function(e){return this.throwIfDisposed(),Ec(this,e)};Y().prototype.argMin=function(e){return this.throwIfDisposed(),Ly(this,e)};Y().prototype.asScalar=function(){return this.throwIfDisposed(),$(this.size===1,()=>"The array must have only 1 element."),H(this,[])};Y().prototype.asType=function(e){return this.throwIfDisposed(),ue(this,e)};Y().prototype.as1D=function(){return this.throwIfDisposed(),H(this,[this.size])};Y().prototype.as2D=function(e,t){return this.throwIfDisposed(),H(this,[e,t])};Y().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),H(this,[e,t,n])};Y().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),H(this,[e,t,n,a])};Y().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),H(this,[e,t,n,a,r])};Y().prototype.asin=function(){return this.throwIfDisposed(),zy(this)};Y().prototype.asinh=function(){return this.throwIfDisposed(),Wy(this)};Y().prototype.atan=function(){return this.throwIfDisposed(),By(this)};Y().prototype.atan2=function(e){return this.throwIfDisposed(),Vy(this,e)};Y().prototype.atanh=function(){return this.throwIfDisposed(),Uy(this)};Y().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),Zn(this,e,t,n,a)};Y().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Dc(this,e,t)};Y().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),br(this,e,t,n,a,r)};Y().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Mc(this,e)};Y().prototype.cast=function(e){return this.throwIfDisposed(),ue(this,e)};Y().prototype.ceil=function(){return this.throwIfDisposed(),qy(this)};Y().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),Xt(this,e,t)};Y().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Fe&&(e=[e]),Je([this,...e],t)};Y().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),xh(this,e,t,n,a,r,s)};Y().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),vh(this,e,t,n,a,r)};Y().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Et(this,e,t,n,a,r,s)};Y().prototype.cos=function(){return this.throwIfDisposed(),Rc(this)};Y().prototype.cosh=function(){return this.throwIfDisposed(),wh(this)};Y().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),kh(this,e,t,n)};Y().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),Yy(this,e,t)};Y().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),ns(this,e,t,n,a,r,s)};Y().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),Jy(this,e,t,n,a,r)};Y().prototype.divNoNan=function(e){return this.throwIfDisposed(),Qy(this,e)};Y().prototype.div=function(e){return this.throwIfDisposed(),xe(this,e)};Y().prototype.dot=function(e){return this.throwIfDisposed(),S1(this,e)};Y().prototype.elu=function(){return this.throwIfDisposed(),Gl(this)};Y().prototype.equal=function(e){return this.throwIfDisposed(),as(this,e)};Y().prototype.erf=function(){return this.throwIfDisposed(),Zy(this)};Y().prototype.exp=function(){return this.throwIfDisposed(),hn(this)};Y().prototype.expandDims=function(e){return this.throwIfDisposed(),Rn(this,e)};Y().prototype.expm1=function(){return this.throwIfDisposed(),eb(this)};Y().prototype.fft=function(){return this.throwIfDisposed(),Vc(this)};Y().prototype.flatten=function(){return this.throwIfDisposed(),H(this,[this.size])};Y().prototype.floor=function(){return this.throwIfDisposed(),Hl(this)};Y().prototype.floorDiv=function(e){return this.throwIfDisposed(),gh(this,e)};Y().prototype.gather=function(e,t){return this.throwIfDisposed(),$i(this,e,t)};Y().prototype.greaterEqual=function(e){return this.throwIfDisposed(),rs(this,e)};Y().prototype.greater=function(e){return this.throwIfDisposed(),ha(this,e)};Y().prototype.ifft=function(){return this.throwIfDisposed(),Jl(this)};Y().prototype.irfft=function(){return this.throwIfDisposed(),Lh(this)};Y().prototype.isFinite=function(){return this.throwIfDisposed(),C1(this)};Y().prototype.isInf=function(){return this.throwIfDisposed(),A1(this)};Y().prototype.isNaN=function(){return this.throwIfDisposed(),F1(this)};Y().prototype.leakyRelu=function(e){return this.throwIfDisposed(),Pc(this,e)};Y().prototype.lessEqual=function(e){return this.throwIfDisposed(),Di(this,e)};Y().prototype.less=function(e){return this.throwIfDisposed(),Nh(this,e)};Y().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),nb(this,e,t,n,a)};Y().prototype.logSigmoid=function(){return this.throwIfDisposed(),$1(this)};Y().prototype.logSoftmax=function(e){return this.throwIfDisposed(),Ch(this,e)};Y().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),sb(this,e,t)};Y().prototype.log=function(){return this.throwIfDisposed(),Pn(this)};Y().prototype.log1p=function(){return this.throwIfDisposed(),Th(this)};Y().prototype.logicalAnd=function(e){return this.throwIfDisposed(),ma(this,e)};Y().prototype.logicalNot=function(){return this.throwIfDisposed(),Oc(this)};Y().prototype.logicalOr=function(e){return this.throwIfDisposed(),Ah(this,e)};Y().prototype.logicalXor=function(e){return this.throwIfDisposed(),P1(this,e)};Y().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),ze(this,e,t,n)};Y().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),$t(this,e,t,n,a)};Y().prototype.max=function(e,t){return this.throwIfDisposed(),ea(this,e,t)};Y().prototype.maximum=function(e){return this.throwIfDisposed(),Ka(this,e)};Y().prototype.mean=function(e,t){return this.throwIfDisposed(),Ct(this,e,t)};Y().prototype.min=function(e,t){return this.throwIfDisposed(),ql(this,e,t)};Y().prototype.minimum=function(e){return this.throwIfDisposed(),Xl(this,e)};Y().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),ob(this,e,t)};Y().prototype.mod=function(e){return this.throwIfDisposed(),lb(this,e)};Y().prototype.mul=function(e){return this.throwIfDisposed(),B(this,e)};Y().prototype.neg=function(){return this.throwIfDisposed(),St(this)};Y().prototype.norm=function(e,t,n){return this.throwIfDisposed(),Vh(this,e,t,n)};Y().prototype.notEqual=function(e){return this.throwIfDisposed(),Ri(this,e)};Y().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),Wl(this,e,t,n)};Y().prototype.onesLike=function(){return this.throwIfDisposed(),On(this)};Y().prototype.pad=function(e,t){return this.throwIfDisposed(),ta(this,e,t)};Y().prototype.pool=function(e,t,n,a,r){return this.throwIfDisposed(),z1(this,e,t,n,a,r)};Y().prototype.pow=function(e){return this.throwIfDisposed(),xr(this,e)};Y().prototype.prelu=function(e){return this.throwIfDisposed(),zc(this,e)};Y().prototype.prod=function(e,t){return this.throwIfDisposed(),_h(this,e,t)};Y().prototype.reciprocal=function(){return this.throwIfDisposed(),pb(this)};Y().prototype.relu=function(){return this.throwIfDisposed(),qe(this)};Y().prototype.relu6=function(){return this.throwIfDisposed(),$h(this)};Y().prototype.reshapeAs=function(e){return this.throwIfDisposed(),H(this,e.shape)};Y().prototype.reshape=function(e){return this.throwIfDisposed(),H(this,e)};Y().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),ak(this,e,t,n)};Y().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),rk(this,e,t,n)};Y().prototype.reverse=function(e){return this.throwIfDisposed(),Ln(this,e)};Y().prototype.rfft=function(){return this.throwIfDisposed(),Uc(this)};Y().prototype.round=function(){return this.throwIfDisposed(),db(this)};Y().prototype.rsqrt=function(){return this.throwIfDisposed(),Dh(this)};Y().prototype.selu=function(){return this.throwIfDisposed(),Mh(this)};Y().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Pi(this,e,t,n,a,r,s)};Y().prototype.sigmoid=function(){return this.throwIfDisposed(),da(this)};Y().prototype.sign=function(){return this.throwIfDisposed(),hb(this)};Y().prototype.sin=function(){return this.throwIfDisposed(),Rh(this)};Y().prototype.sinh=function(){return this.throwIfDisposed(),Ph(this)};Y().prototype.slice=function(e,t){return this.throwIfDisposed(),Be(this,e,t)};Y().prototype.softmax=function(e){return this.throwIfDisposed(),Sa(this,e)};Y().prototype.softplus=function(){return this.throwIfDisposed(),jl(this)};Y().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Lc(this,e,t)};Y().prototype.split=function(e,t){return this.throwIfDisposed(),zn(this,e,t)};Y().prototype.sqrt=function(){return this.throwIfDisposed(),rn(this)};Y().prototype.square=function(){return this.throwIfDisposed(),ut(this)};Y().prototype.squaredDifference=function(e){return this.throwIfDisposed(),zh(this,e)};Y().prototype.squeeze=function(e){return this.throwIfDisposed(),ss(this,e)};Y().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Fe?[this,e]:[this,...e];return Dt(n,t)};Y().prototype.step=function(e){return this.throwIfDisposed(),Ql(this,e)};Y().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),fb(this,e,t,n,a,r,s,i,o)};Y().prototype.sub=function(e){return this.throwIfDisposed(),me(this,e)};Y().prototype.sum=function(e,t){return this.throwIfDisposed(),Se(this,e,t)};Y().prototype.tan=function(){return this.throwIfDisposed(),gb(this)};Y().prototype.tanh=function(){return this.throwIfDisposed(),Ul(this)};Y().prototype.tile=function(e){return this.throwIfDisposed(),qa(this,e)};Y().prototype.toBool=function(){return this.throwIfDisposed(),ue(this,"bool")};Y().prototype.toFloat=function(){return this.throwIfDisposed(),ue(this,"float32")};Y().prototype.toInt=function(){return this.throwIfDisposed(),ue(this,"int32")};Y().prototype.topk=function(e,t){return this.throwIfDisposed(),yb(this,e,t)};Y().prototype.transpose=function(e){return this.throwIfDisposed(),Ve(this,e)};Y().prototype.unique=function(e){return this.throwIfDisposed(),Bh(this,e)};Y().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),bb(this,e,t)};Y().prototype.unstack=function(e){return this.throwIfDisposed(),ct(this,e)};Y().prototype.where=function(e,t){return this.throwIfDisposed(),Sn(e,this,t)};Y().prototype.zerosLike=function(){return this.throwIfDisposed(),Ge(this)};var bk={};Oe(bk,{maxNorm:()=>uz,minMaxNorm:()=>dz,nonNeg:()=>pz,unitNorm:()=>cz});var Tb;function Bt(){return Tb==null&&(Tb=p1().epsilon()),Tb}function Fa(){return"channelsLast"}var kr=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,kr.prototype)}},_a=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,_a.prototype)}},V=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,V.prototype)}},$e=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,$e.prototype)}},xk=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,xk.prototype)}};function zi(e,t){if(Array.isArray(e)){let n=[];for(let a=0;an.toUpperCase())}var fa={};function Sb(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Cb(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>Cb(t));else{let t=Object.keys(e);for(let n of t){let a=e[n];a!=null&&typeof a=="object"&&(!Array.isArray(a)&&a.type==="ndarray"&&typeof a.value=="number"?e[n]=a.value:Cb(a))}}}function Hc(e,t={},n={},a="object",r=!1){if(typeof e=="string"){let s=e,i;if(s in n)i=n[s];else if(s in fa)i=fa[s];else if(i=t[s],i==null)throw new V(`Unknown ${a}: ${e}. This may be due to one of the following reasons: 1. The ${a} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{let s=e;if(s.className==null||s.config==null)throw new z(`${a}: Improper config format: ${JSON.stringify(s)}. -'className' and 'config' must set.`);let i=s.className,o,l;if(i in n?[o,l]=n[i]:i in fa?[o,l]=fa.className:i in t&&([o,l]=t[i]),o==null)throw new z(`Unknown ${a}: ${i}. This may be due to one of the following reasons: +2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{let s=e;if(s.className==null||s.config==null)throw new V(`${a}: Improper config format: ${JSON.stringify(s)}. +'className' and 'config' must set.`);let i=s.className,o,l;if(i in n?[o,l]=n[i]:i in fa?[o,l]=fa.className:i in t&&([o,l]=t[i]),o==null)throw new V(`Unknown ${a}: ${i}. This may be due to one of the following reasons: 1. The ${a} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){let c={};for(let h of Object.keys(fa))c[h]=fa[h];for(let h of Object.keys(n))c[h]=n[h];let u=s.config;u.customObjects=c;let p=Object.assign({},fa);for(let h of Object.keys(n))fa[h]=n[h];Cb(s.config);let d=l(o,s.config,n,r);return fa=Object.assign({},p),d}else{let c=Object.assign({},fa);for(let p of Object.keys(n))fa[p]=n[p];let u=new o(s.config);return fa=Object.assign({},c),u}}}function W3(e,t){return et?1:0}function em(e,t){return-1*W3(e,t)}function os(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function V3(e){if(e==null)throw new z(`Invalid value in obj: ${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function Wi(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new z(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function _b(e,t,n=0,a=Infinity){return Za(n>=0),Za(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function Kt(e,t){Array.isArray(e)?(w.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>Kt(n,`element ${a+1} of ${t}`))):w.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${y1(e)}.`)}function y1(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>y1(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function U3(e,t){let n=w.now(),a;return(...r)=>{let s=w.now();return s-nan(Se(L(e,e),t,!0)))}var Hc=class extends re.Serializable{getConfig(){return{}}},Fb=class extends Hc{constructor(e){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return D(()=>{let t=Eb(e,this.axis),n=qt(t,0,this.maxValue);return L(e,xe(n,J(Bt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};Fb.className="MaxNorm";re.registerClass(Fb);var Ab=class extends Hc{constructor(e){super();this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return D(()=>xe(e,J(Bt(),Eb(e,this.axis))))}getConfig(){return{axis:this.axis}}};Ab.className="UnitNorm";re.registerClass(Ab);var $b=class extends Hc{apply(e){return qe(e)}};$b.className="NonNeg";re.registerClass($b);var Db=class extends Hc{constructor(e){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return D(()=>{let t=Eb(e,this.axis),n=J(L(this.rate,qt(t,this.minValue,this.maxValue)),L(1-this.rate,t));return L(e,xe(n,J(Bt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Db.className="MinMaxNorm";re.registerClass(Db);var x1={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Wt(e){return Sb(e)}function v1(e,t={}){return Gc(e,re.SerializationMap.getMap().classNameMap,t,"constraint")}function Vt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in x1?x1[e]:e,config:{}};return v1(t)}else return e instanceof Hc?e:v1(e)}function O3(e){return new Fb(e)}function L3(e){return new Ab(e)}function z3(){return new $b}function B3(e){return new Db(e)}var w1={};Oe(w1,{constant:()=>j3,glorotNormal:()=>Z3,glorotUniform:()=>Q3,heNormal:()=>ez,heUniform:()=>tz,identity:()=>Y3,leCunNormal:()=>nz,leCunUniform:()=>az,ones:()=>H3,orthogonal:()=>rz,randomNormal:()=>K3,randomUniform:()=>q3,truncatedNormal:()=>X3,varianceScaling:()=>J3,zeros:()=>G3});var sz=["channelsFirst","channelsLast"],iz=["nearest","bilinear"],oz=["valid","same","causal"],lz=["max","avg"],uz=["sum","mul","concat","ave"],eu=new Map;function Dt(e){Wi(sz,"DataFormat",e)}function cz(e){Wi(iz,"InterpolationFormat",e)}function na(e){Wi(oz,"PaddingMode",e)}function k1(e){Wi(lz,"PoolMode",e)}var jc=[],I1="/";function Vi(e,t){jc.push(e);try{let n=t();return jc.pop(),n}catch(n){throw jc.pop(),n}}function pz(){return jc.length===0?"":jc.join(I1)+I1}function N1(e){if(!T1(e))throw new Error("Not a valid tensor name: '"+e+"'");return pz()+e}function S1(e){if(!T1(e))throw new Error("Not a valid tensor name: '"+e+"'");eu.has(e)||eu.set(e,0);let t=eu.get(e);if(eu.set(e,eu.get(e)+1),t>0){let n=`${e}_${t}`;return eu.set(n,1),n}else return e}var dz=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function T1(e){return!!e.match(dz)}function hz(e){return e===parseInt(e.toString(),10)}function ls(e,t,n){t==null&&(t=0),n==null&&(n=e.length);let a=1;for(let r=t;r{if(e.shape.length!==2)throw new z(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=Kc(e,1);return Rb(n,[1,t,1])})}function fz(e){let t=[ls(e.shape)];return e.reshape(t)}function gz(e){if(e.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],ls(e.shape,1)];return e.reshape(t)}function Ui(e,t,n){return D(()=>{switch(e.rank){case 1:return Oh(e,t,n);case 2:return mb(e,[t,0],[n,e.shape[1]]);case 3:return Yl(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Bc(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return We(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return We(e,[t,0,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new z(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Mb(e,t,n){return D(()=>{switch(e.rank){case 1:return Oh(e,t,n);case 2:return mb(e,[0,t],[e.shape[0],n]);case 3:return Yl(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return Bc(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function tm(e,t,n,a){return D(()=>{switch(e.rank){case 1:return Oh(e,t,n);case 2:switch(a){case 1:return Ui(e,t,n);case 2:return Mb(e,t,n);default:throw new z(`The axis is not within the rank of the tensor ${a}`)}case 3:switch(a){case 1:return Ui(e,t,n);case 2:return Yl(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return Mb(e,t,n);default:throw new z(`The axis is not within the rank of the tensor ${a}`)}case 4:switch(a){case 1:return Ui(e,t,n);case 2:return Bc(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return Bc(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return Mb(e,t,n);default:throw new z(`The axis is not within the rank of the tensor ${a}`)}default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Pb(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),Je(e,t)}function _1(e,t){switch(e.rank){case 1:return gk([e,t]);case 2:return yk([e,t],0);case 3:return bk([e,t],0);case 4:return xk([e,t],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Rb(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new z(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return qa(e,t)}function nm(e,t=0,n=1,a,r){return Pk(e,t,n,a,r)}function er(e,t,n,a){if(e.rank<2||t.rank<2)throw new $e(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){let r=e.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(r!==s)throw new $e(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`)}if(e.rank===2&&t.rank===2){let r=!1,s=!1;return is.matMul({a:e,b:t,transposeA:r,transposeB:s,bias:a?Ob(e.rank,a,_a()):null,activation:n})}else{let r=e.shape.slice(),s=r.pop();e=e.reshape([-1,s]);let i=t.shape.slice(),o=i.pop(),l=i.pop(),c=[...i,o],u=Array.from({length:t.rank},(m,f)=>f===0?t.rank-2:f<=t.rank-2?f-1:f);t=t.transpose(u).reshape([l,-1]);let p=[...r,...c],d=!1,h=!1;return is.matMul({a:e,b:t,transposeA:d,transposeB:h,bias:a?Ob(e.rank,a,_a()):null,activation:n}).reshape(p)}}function E1(e,t,n){return D(()=>(Array.isArray(t)?t=Ze(t,"int32"):t=t.toInt(),$i(e,t,n)))}function Xc(e){return L(e,e)}function Ob(e,t,n){let a=t.shape;if(t.rank!==1&&t.rank!==e)throw new z(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1,1,1]):t.reshape([1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,1,1,a[0]]):t.reshape([1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1,1]):t.reshape([1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,1,a[0]]):t.reshape([1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1]):t.reshape([1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,a[0]]):t.reshape([1].concat(a))}else if(e<3)return t;throw new z(`Unsupported input rank by biasAdd: ${t.rank}`)}function tr(e,t,n){return D(()=>(n==null&&(n=_a()),Dt(n),e.add(Ob(e.rank,t,n))))}function yz(e,t=1){if(t!==1)throw new $e(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Gl(e)}function bz(e){return D(()=>xe(e,Lt(e).add(1)))}function F1(e,t,n,a){return D(()=>Uk(e,t,n,a))}function xz(e){return D(()=>{let t=J(.5,L(.2,e));return qt(t,0,1)})}function Yc(e,t,n=!1){return n?e():t()}var vz=["fanIn","fanOut","fanAvg"],wz=["normal","uniform","truncatedNormal"];function kz(e){Wi(vz,"FanMode",e)}function Iz(e){Wi(wz,"Distribution",e)}var ga=class extends re.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Lb=class extends ga{apply(e,t){return xt(e,t)}};Lb.className="Zeros";re.registerClass(Lb);var am=class extends ga{apply(e,t){return Ya(e,t)}};am.className="Ones";re.registerClass(am);var zb=class extends ga{constructor(e){super();if(typeof e!="object")throw new z(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new z(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return D(()=>L(pe(this.value),Ya(e,t)))}getConfig(){return{value:this.value}}};zb.className="Constant";re.registerClass(zb);var Bb=class extends ga{constructor(e){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return Xl(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Bb.className="RandomUniform";re.registerClass(Bb);var Wb=class extends ga{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`randomNormal does not support dType ${t}.`);return nm(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Wb.className="RandomNormal";re.registerClass(Wb);var Vb=class extends ga{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`truncatedNormal does not support dType ${t}.`);return Bh(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Vb.className="TruncatedNormal";re.registerClass(Vb);var Ub=class extends ga{constructor(e){super();this.gain=e.gain!=null?e.gain:1}apply(e,t){return D(()=>{if(e.length!==2||e[0]!==e[1])throw new z("Identity matrix initializer can only be used for 2D square matrices.");return L(this.gain,tb(e[0]))})}getConfig(){return{gain:this.gain}}};Ub.className="Identity";re.registerClass(Ub);function Tz(e,t="channelsLast"){let n,a;if(Dt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=ls(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=ls(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=ls(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var En=class extends ga{constructor(e){super();if(e.scale<0)throw new z(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,kz(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,Iz(this.distribution),this.seed=e.seed}apply(e,t){let n=Tz(e),a=n[0],r=n[1],s=this.scale;if(this.mode==="fanIn"?s/=Math.max(1,a):this.mode==="fanOut"?s/=Math.max(1,r):s/=Math.max(1,(a+r)/2),this.distribution==="normal"){let i=Math.sqrt(s);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`${this.getClassName()} does not support dType ${t}.`);return Bh(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Xl(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};En.className="VarianceScaling";re.registerClass(En);var rm=class extends En{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return En.className}};rm.className="GlorotUniform";re.registerClass(rm);var sm=class extends En{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return En.className}};sm.className="GlorotNormal";re.registerClass(sm);var im=class extends En{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return En.className}};im.className="HeNormal";re.registerClass(im);var om=class extends En{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return En.className}};om.className="HeUniform";re.registerClass(om);var lm=class extends En{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return En.className}};lm.className="LeCunNormal";re.registerClass(lm);var um=class extends En{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return En.className}};um.className="LeCunNormal";re.registerClass(um);var Gb=class extends ga{constructor(e){super();if(this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new $e("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return D(()=>{if(e.length<2)throw new $e("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);let n=e[0]>e[1]?[e[1],e[0]]:e,a=nm(n,0,1,"float32"),r=n1.gramSchmidt(a);return e[0]>e[1]&&(r=r.transpose()),L(this.gain,r)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Gb.className="Orthogonal";re.registerClass(Gb);var A1={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function $1(e,t={}){return Gc(e,re.SerializationMap.getMap().classNameMap,t,"initializer")}function Ct(e){return Sb(e)}function vt(e){if(typeof e=="string"){let t=e in A1?A1[e]:e;if(t==="GlorotNormal")return new sm;if(t==="GlorotUniform")return new rm;if(t==="HeNormal")return new im;if(t==="HeUniform")return new om;if(t==="LeCunNormal")return new lm;if(t==="LeCunUniform")return new um;{let n={};return n.className=t,n.config={},$1(n)}}else return e instanceof ga?e:$1(e)}function G3(){return new Lb}function H3(){return new am}function j3(e){return new zb(e)}function q3(e){return new Bb(e)}function K3(e){return new Wb(e)}function X3(e){return new Vb(e)}function Y3(e){return new Ub(e)}function J3(e){return new En(e)}function Q3(e){return new rm(e)}function Z3(e){return new sm(e)}function ez(e){return new im(e)}function tz(e){return new om(e)}function nz(e){return new lm(e)}function az(e){return new um(e)}function rz(e){return new Gb(e)}var D1={};Oe(D1,{Layer:()=>je,RNN:()=>nr,RNNCell:()=>Jc,activation:()=>Bz,add:()=>Xz,alphaDropout:()=>$B,average:()=>Yz,averagePooling1d:()=>Hb,averagePooling2d:()=>jb,averagePooling3d:()=>qb,avgPool1d:()=>sB,avgPool2d:()=>oB,avgPool3d:()=>uB,avgPooling1d:()=>iB,avgPooling2d:()=>lB,avgPooling3d:()=>cB,batchNormalization:()=>nB,bidirectional:()=>TB,concatenate:()=>Jz,conv1d:()=>$z,conv2d:()=>Dz,conv2dTranspose:()=>Rz,conv3d:()=>Mz,convLstm2d:()=>vB,convLstm2dCell:()=>wB,cropping2D:()=>Oz,dense:()=>Wz,depthwiseConv2d:()=>zz,dot:()=>tB,dropout:()=>Vz,elu:()=>Sz,embedding:()=>Kz,flatten:()=>Gz,gaussianDropout:()=>AB,gaussianNoise:()=>FB,globalAveragePooling1d:()=>pB,globalAveragePooling2d:()=>dB,globalMaxPool1d:()=>SB,globalMaxPool2d:()=>CB,globalMaxPooling1d:()=>M1,globalMaxPooling2d:()=>P1,gru:()=>mB,gruCell:()=>fB,input:()=>R1,inputLayer:()=>Nz,layerNormalization:()=>aB,leakyReLU:()=>_z,lstm:()=>gB,lstmCell:()=>yB,masking:()=>DB,maxPool1d:()=>_B,maxPool2d:()=>EB,maxPooling1d:()=>O1,maxPooling2d:()=>L1,maxPooling3d:()=>hB,maximum:()=>Qz,minimum:()=>Zz,multiply:()=>eB,permute:()=>qz,prelu:()=>Ez,reLU:()=>Cz,repeatVector:()=>Hz,reshape:()=>jz,rnn:()=>kB,separableConv2d:()=>Pz,simpleRNN:()=>bB,simpleRNNCell:()=>xB,softmax:()=>Fz,spatialDropout1d:()=>Uz,stackedRNNCells:()=>IB,thresholdedReLU:()=>Az,timeDistributed:()=>NB,upSampling2d:()=>Lz,zeroPadding2d:()=>rB});var RB=0;function z1(){return RB++}var cm={};function pm(e=""){return e in cm||(cm[e]=0),cm[e]+=1,e+cm[e].toString()}function Kb(e){return Array.isArray(e)&&Array.isArray(e[0])}function dm(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function Me(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new z(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function ct(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new z(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function hm(e){let t=0;for(let n of e)n.shape.length===0?t+=1:t+=n.shape.reduce((a,r)=>a*r);return t}var B1="Variable",W1=class{constructor(e,t="float32",n=B1,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=z1(),n=n==null?B1:n,this.originalName=N1(n),this.name=S1(this.originalName),this.trainable_=a,this.constraint=r,this.val=Lk(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),MB(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}};function MB(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function Xb(e){return e.map(t=>t.read())}function Yb(e){e.forEach(t=>{t[0].write(t[1])})}var Xt=class{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}},Aa=class{constructor(e,t,n,a,r,s,i){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=a,this.callArgs=r,this.outputTensorIndex=i,this.id=z1(),s!=null&&(this.originalName=N1(s),this.name=S1(this.originalName)),this.rank=t.length}},PB=0,mm=class{constructor(e,t){this.callArgs=t,this.id=PB++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(let n of e.inboundLayers)n!=null&&n.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){let e=[];for(let t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},OB=0,je=class extends re.Serializable{constructor(e={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=OB++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){let n=this.getClassName();t=Ir(n)+"_"+pm(n)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let n;if(e.batchInputShape!=null)n=e.batchInputShape;else if(e.inputShape!=null){let r=null;e.batchSize!=null&&(r=e.batchSize),n=[r].concat(e.inputShape)}this.batchInputShape=n;let a=e.dtype;a==null&&(a=e.inputDType),a==null&&(a="float32"),this.dtype=a}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new Ea(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new z(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return _n(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return _n(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new kr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new kr(`Layer ${this.name} is not connected, no input to return.`);return _n(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new kr(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new kr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return _n(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=gt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=gt(this.inputSpec);if(e.length!==t.length)throw new z(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let n=0;nr.maxNDim)throw new z(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${r.maxNDim}, found ndim=${s}`);if(r.minNDim!=null&&s=0?i[l]:i[i.length+l];if(c!=null&&[c,null].indexOf(u)===-1)throw new z(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${c} but got shape ${i}.`)}}if(r.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(e);let s=[];for(let i of gt(e))s.push(i.shape);this.build(_n(s)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&r&&(this._refCount=1)}if(this.assertInputCompatibility(e),r){let s=this.call(e,t),i=gt(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=_n(o),this.activityRegularizer!=null)throw new $e("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=LB(e),i=this.computeOutputShape(s),o,l=zB(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?s[0]:s),i!=null&&i.length>0&&Array.isArray(i[0])?o=i.map((c,u)=>new Aa(l,c,this,gt(e),t,this.name,u)):o=new Aa(l,i,this,gt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new $e("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return o}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((n,a)=>{n!=null&&e[a]!=null&&e[a]!==n&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new kr(`The layer ${this.name} has never been called and thus has no defined output shape.`);let e=[];for(let t of this.inboundNodes){let n=JSON.stringify(t.outputShapes);e.indexOf(n)===-1&&e.push(n)}if(e.length===1){let t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new kr(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Ea(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return hm(this.weights)}build(e){this.built=!0}getWeights(e=!1){return Xb(e?this.trainableWeights:this.weights)}setWeights(e){D(()=>{let t=this.weights;if(t.length!==e.length)throw new z(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;let n=[],a=Xb(t);for(let r=0;rr.apply(l.read())),s==null&&(s=!0),s?this._trainableWeights.push(l):this._nonTrainableWeights.push(l),l}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=gt(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,n,a,r,s,i=null){let o=gt(e);t=gt(t),n=gt(n),a=gt(a),r=dm(r),s=dm(s);let l=[],c=[],u=[];for(let p of o)l.push(p.sourceLayer),c.push(p.nodeIndex),u.push(p.tensorIndex);new mm({outboundLayer:this,inboundLayers:l,nodeIndices:c,tensorIndices:u,inputTensors:o,outputTensors:t,inputMasks:n,outputMasks:a,inputShapes:r,outputShapes:s},i);for(let p=0;pe.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount==0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}};function LB(e){e=gt(e);let t=[];for(let n of e)t.push(n.shape);return _n(t)}function zB(e){return"float32"}function V1(e,t,n){if((t==null||n!=null&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),t.inboundNodes.length===0)return[e];{let a=t.inboundNodes[n];if(a.inboundLayers.length===0)return a.inputTensors;{let r=[];for(let s=0;s0){let r=await Promise.all(t);for(let s=0;sJ(this.totals[a],L(r,n)));this.totals[a]=i,s!=null&&s.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?t[n]=this.totals[n]/this.seen:D(()=>{let a=L(xe(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),jt(t[n])}))}},q1=class extends au{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(let n in t)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(t[n])}async syncData(){let e=[],t=[],n=[];for(let r in this.history){let s=this.history[r];for(let i=0;inew K1(n,t))}var ya=class{constructor(){}static registerCallbackConstructor(e,t){w.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),ya.checkForDuplicate(t),ya.constructors[e]==null&&(ya.constructors[e]=[]),ya.constructors[e].push(t)}static checkForDuplicate(e){for(let t in ya.constructors)ya.constructors[+t].forEach(n=>{if(n===e)throw new z("Duplicate callback constructor.")})}static clear(){ya.constructors={}}static createCallbacks(e){let t=[];for(let n in ya.constructors){let a=+n;e>=a&&t.push(...ya.constructors[a])}return t.map(n=>new n)}};ya.constructors={};function Y1(e,t,n,a,r,s,i,o,l){let c=new q1,u=[new WB,...ya.createCallbacks(t)];e!=null&&u.push(...e),u.push(c);let p=new j1(u);return p.setParams({epochs:n,initialEpoch:a,samples:r,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:p,history:c}}function $a(e,t={},n=!1){return Gc(e,re.SerializationMap.getMap().classNameMap,t,"layer",n)}function fm(e,t){return D(()=>{e.dtype!=="float32"&&(e=e.asType("float32"));let n=Se(Xc(e),t,!0),a=Cn(n.shape,Bt()),r=an(Xa(n,a));return xe(e,r)})}function Gi(e,t){return D(()=>St(Xc(me(t,e)),-1))}function gm(e,t){return D(()=>St(Lt(me(t,e)),-1))}function ru(e,t){return D(()=>{let n=me(e,t),a=qt(Lt(e),Bt(),Number.MAX_VALUE),r=Lt(xe(n,a));return L(100,St(r,-1))})}function VB(e,t){return D(()=>{let n=qt(t,Bt(),Number.MAX_VALUE),a=Pn(J(1,n)),r=qt(e,Bt(),Number.MAX_VALUE),s=Pn(J(1,r));return St(Xc(me(a,s)),-1)})}function UB(e,t){return D(()=>{let n=Xa(0,me(1,L(e,t)));return St(Xc(n),-1)})}function GB(e,t){return D(()=>{let n=Xa(0,me(1,L(e,t)));return St(n,-1)})}function HB(e,t){return D(()=>{let n=Se(L(e,t),-1),a=ea(L(me(1,e),t),-1);return Xa(0,J(1,me(a,n)))})}function jB(e,t){return D(()=>{let n=Math.log(2),a=me(t,e),r=me(J(a,jl(L(-2,a))),n);return St(r,-1)})}function Qc(e,t,n=!1){return D(()=>{if(n)t=Na(t);else{let a=Se(t,t.shape.length-1,!0);t=xe(t,a)}return t=qt(t,Bt(),1-Bt()),Nt(Se(L(e.toFloat(),Pn(t)),t.shape.length-1))})}function ym(e,t,n=!1){return D(()=>{let a=Hl(fz(e)).toInt();t=qt(t,Bt(),1-Bt());let r=t.shape,s=Bl(a,r[r.length-1]).reshape(r);return Qc(s,t,n)})}function qB(e,t){if(!w.arraysEqual(e.shape,t.shape))throw new z(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return D(()=>{let n=t.relu(),a=t.abs().neg();return n.sub(t.mul(e)).add(a.exp().log1p())})}function bm(e,t){return D(()=>{let n;return n=qt(t,Bt(),1-Bt()),n=Pn(xe(n,me(1,n))),St(qB(e,n),-1)})}function KB(e,t){return D(()=>{let n=qt(e,Bt(),1),a=qt(t,Bt(),1);return Se(L(e,Pn(xe(n,a))),-1)})}function XB(e,t){return D(()=>{let n=Pn(J(Bt(),t));return St(me(t,L(e,n)),-1)})}function Jb(e,t){return D(()=>{let n=fm(e,-1),a=fm(t,-1),r=L(n,a);return Nt(Se(r,-1))})}var xm={meanSquaredError:Gi,meanAbsoluteError:gm,meanAbsolutePercentageError:ru,meanSquaredLogarithmicError:VB,squaredHinge:UB,hinge:GB,categoricalHinge:HB,logcosh:jB,categoricalCrossentropy:Qc,sparseCategoricalCrossentropy:ym,binaryCrossentropy:bm,kullbackLeiblerDivergence:KB,poisson:XB,cosineProximity:Jb};function Qb(e){if(typeof e=="string"){if(e in xm)return xm[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new z(t)}else return e}function Zb(e,t){return D(()=>{let n=L(.5,On(t)),a=qc(ha(t,n),e.dtype);return St(as(e,a),-1)})}function ex(e,t){return D(()=>qc(as(Fc(e,-1),Fc(t,-1)),"float32"))}function J1(e,t){return D(()=>ma(e.equal(1),t.equal(1)).sum().cast("float32"))}function YB(e,t){return D(()=>ma(e.equal(1),t.equal(0)).sum().cast("float32"))}function JB(e,t){return D(()=>ma(e.equal(0),t.equal(1)).sum().cast("float32"))}function Q1(e,t){return D(()=>{let n=J1(e,t),a=JB(e,t),r=n.add(a);return Sn(ha(r,0),n.div(r),0).cast("float32")})}function QB(e,t){return D(()=>{let n=J1(e,t),a=YB(e,t),r=n.add(a);return Sn(ha(r,0),n.div(r),0).cast("float32")})}function Z1(e,t){return bm(e,t)}function eI(e,t){return e.rank===t.rank&&(e=e.squeeze([e.rank-1])),t=t.argMax(-1),t.dtype!==e.dtype&&(t=t.asType(e.dtype)),as(e,t).asType("float32")}var ZB=Gi,eW=Gi,tW=gm,nW=gm,aW=ru,rW=ru,tx=Qc,sW=Jb,tI=ym,vm={binaryAccuracy:Zb,categoricalAccuracy:ex,precision:Q1,categoricalCrossentropy:tx,sparseCategoricalCrossentropy:tI,mse:ZB,MSE:eW,mae:tW,MAE:nW,mape:aW,MAPE:rW,cosine:sW};function iW(e){if(typeof e=="string"&&e in vm)return vm[e];if(typeof e!="string"&&e!=null)return e;throw new z(`Unknown metric ${e}`)}function wm(e){if(Za(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(xm))if(xm[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(vm))if(vm[n]===e){t=n;break}return t!==void 0?t:e.name}}function oW(e){let t={Adagrad:()=>Li.adagrad(.01),Adadelta:()=>Li.adadelta(1,.95,Bt()),Adam:()=>Li.adam(.001,.9,.999,Bt()),Adamax:()=>Li.adamax(.002,.9,.999,Bt(),0),RMSProp:()=>Li.rmsprop(.001,.9,0,Bt()),SGD:()=>Li.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new z(`Unknown Optimizer ${e}`)}var nI=1*1024*1024;function aI(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!nx(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){let a=JSON.stringify(e);a.length>nI&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${a.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${nI}.`)}}function nx(e){if(e===null)return!0;if(typeof e=="object")if(Object.getPrototypeOf(e)===Object.prototype){let t=Object.keys(e);for(let n of t)if(typeof n!="string"||!nx(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!nx(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function dW(e,t,n,a=console.log){let r=uW(e),s=["Layer (type)","Output shape","Param #"];r?(t=t||65,n=n||[.45,.85,1]):(t=t||98,n=n||[.33,.55,.67,1]),n[n.length-1]<=1&&(n=n.map(u=>Math.floor(t*u)));let i;if(!r){s.push("Receives inputs"),i=[];for(let u in e.nodesByDepth)i.push(...e.nodesByDepth[u])}a("_".repeat(t)),km(s,n,a),a("=".repeat(t));let o=e.layers;for(let u=0;u1||r.length===1&&r[0].inboundLayers.length>1){t=!1;break}a.push(...r)}if(t)for(let r of e.layers){let s=!1;for(let i of r.inboundNodes)if(a.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function km(e,t,n=console.log){let a="";for(let r=0;r0&&(a=a.slice(0,a.length-1)+" "),a+=e[r],a=a.slice(0,t[r]),a+=" ".repeat(t[r]-a.length);n(a)}function cW(e,t,n){let a;try{a=JSON.stringify(e.outputShape)}catch(o){a="multiple"}let r=e.name,s=e.getClassName(),i=[`${r} (${s})`,a,e.countParams().toString()];km(i,t,n)}function pW(e,t,n,a){let r;try{r=JSON.stringify(e.outputShape)}catch(u){r="multiple"}let s=[];for(let u of e.inboundNodes)if(!(n!=null&&n.length>0&&n.indexOf(u)===-1))for(let p=0;pm.name),l=[],c=t.names();for(let m of o)c.indexOf(m)!==-1?l.push(t.getValue(m)):l.push(null);a!=null&&(a.maxNumTensors=-Infinity,a.minNumTensors=Infinity);let u=o.join(",")+"|"+t.names().join(","),p,d;if(rx[u]==null){let m=mW(i,t);p=m.sorted,d=m.recipientCounts,rx[u]=p,sI[u]=d}p=rx[u],d={},r||Object.assign(d,sI[u]);let h=new Hi(t);for(let m=0;ma.maxNumTensors&&(a.maxNumTensors=$),$0,()=>"Expected at least one fetch, got none");let n=[],a={};if(e.length===1){let r=iI(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=iI(s,t);for(let l of i)r.has(l.name)||(n.push(l),r.add(l.name));for(let l in o)a[l]==null&&(a[l]=new Set),o[l].forEach(c=>a[l].add(c))}}return{sorted:n,recipientCounts:gW(a)}}function gW(e){let t={};for(let n in e)t[n]=e[n].size;return t}function iI(e,t){let n=new Set,a=[],r={};for(let o of t.names())n.add(o);let s=[],i=[];for(s.push(e);s.length>0;){let o=s[s.length-1];if(n.has(o.name)){s.pop();continue}let l=i[i.length-1]===s.length-1;if(o.inputs.length===0||l)s.pop(),a.push(o),n.add(o.name),l&&i.pop();else{i.push(s.length-1);for(let c of o.inputs)r[c.name]==null&&(r[c.name]=new Set),r[c.name].add(o.name),!n.has(c.name)&&s.push(c)}}return{sorted:a,recipientMap:r}}function fW(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;ay.name)}`);os(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(y=>y.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let y of this.outputs){let b=y.sourceLayer,x=y.nodeIndex,v=y.tensorIndex;this.outputLayers.push(b),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(v)}for(let y of this.inputs){let b=y.sourceLayer,x=y.nodeIndex,v=y.tensorIndex;Za(x===0,"input layer has >1 nodes"),Za(v===0,"input layer has >1 tensors"),this.inputLayers.push(b),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(v)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let y=0;yy.shape),this.internalOutputShapes=this.outputs.map(y=>y.shape);let t={},n={},a={},r={},s={},i=[],o=(y,b,x,v,N,T)=>{(v==null||N==null||T==null)&&(v=y.sourceLayer,N=y.nodeIndex,T=y.tensorIndex);let S=v.inboundNodes[N];if(x.indexOf(S)!==-1)throw new Ea(`The tensor ${y.name} at layer "${v.name}" is part of a cycle.`);if(b.indexOf(S)!==-1)return;this.containerNodes.add(ar.nodeKey(v,N)),v.id in s||(s[v.id]=Object.keys(s).length),x.indexOf(S)===-1&&x.push(S);let A=S.inboundLayers.length;for(let $=0;$=0;)x.splice(x.indexOf(S),1);i.push(S)},l=[],c=[];for(let y of this.outputs)o(y,l,c);let u=i.slice().reverse();for(let y of u){n[y.id]=y,y.id in t||(t[y.id]=0);let b=t[y.id],x=a[y.outboundLayer.id]==null?0:a[y.outboundLayer.id];b=Math.max(b,x),a[y.outboundLayer.id]=b,r[y.outboundLayer.id]=y.outboundLayer,t[y.id]=b;for(let v=0;vparseInt(y,10)).sort(em);this.layers=[];for(let y of h){let b=d[y];b.sort((x,v)=>{let N=s[x.id],T=s[v.id];return NT?1:0});for(let x of b)x instanceof ar&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=d,h=Object.keys(p).map(y=>parseInt(y,10)).sort(em);let m=this.inputs.slice(),f=[];for(let y of h)for(let b of p[y]){let x=b.outboundLayer;if(x!=null){for(let v of b.inputTensors)if(m.indexOf(v)===-1)throw new Ea(`Graph disconnected: cannot obtain value for tensor ${v} at layer "${x.name}". The following previous layers were accessed without issue: ${f}`);for(let v of b.outputTensors)m.push(v);f.push(x.name)}}this.nodesByDepth=p;let g=this.layers.map(y=>y.name);for(let y of g){let b=g.filter(x=>x===y).length;if(b!==1)throw new Ea(`The name "${y}" is used ${b} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new mm({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(y=>null),outputMasks:this.outputs.map(y=>null),inputShapes:this.inputs.map(y=>y.shape),outputShapes:this.outputs.map(y=>y.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount==0){for(let t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(let t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(n=>n.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new z("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(let t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.layers)t.push(...n.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){let n={},a=0;for(let s of this.layers)for(let i of s.weights){if(n[i.originalName]!=null)throw new z(`Duplicate weight name: ${i.originalName}`);n[i.originalName]=i,a++}let r=[];for(let s in e){let i=s;if(n[s]==null){let o=s.split("/");i=o.slice(0,-2).concat([o[o.length-1]]).join("/")}if(n[i]!=null)r.push([n[i],e[s]]);else if(t)throw new z(`Provided weight data has no target variable: ${s}`);delete n[i]}if(t){let s=[];for(let i in n)s.push(i);if(s.length>0)throw new z(`${s.length} of ${a} weights are not set: ${s}`)}Yb(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${Im}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=ax(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return D(()=>{e=gt(e);let n=new Hi;for(let a=0;a{e=gt(e);let n;return t==null?n=zi(null,e.length):n=gt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=dm(e);if(t.length!==this.inputLayers.length)throw new z(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let i=0;iparseInt(i,10)).sort(em);if(a.length>1)for(let i of a){let o=this.nodesByDepth[i];for(let l of o){let c=l.outboundLayer;if(this.inputLayers.map(m=>m.id).indexOf(c.id)!==-1)continue;let u=[];for(let m=0;mparseInt(o,10)).sort(em);for(let o of a){let l=this.nodesByDepth[o];for(let c of l){let u=c.outboundLayer,p=c.inputTensors,d=c.outputTensors,h=new Array;for(let m of p)m.id in n&&h.push(n[m.id]);if(h.length===p.length){let m={},f,g,y,b;if(c.callArgs!=null&&(m=c.callArgs),h.length===1){let[x,v]=h[0];m.mask==null&&(m.mask=v),y=gt(u.call(x,m)),b=gt(u.computeMask(x,v)),f=[x],g=[v]}else f=h.map(x=>x[0]),g=h.map(x=>x[1]),m.mask==null&&(m.mask=g),y=gt(u.call(f,m)),b=gt(u.computeMask(f,g));if(u.activityRegularizer)throw new $e("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let x=0;x{let e=[];for(let t of this.layers)for(let n=0;n0){let m=[];for(let f=0;f0&&f.apply(_n(y),b)}function l(f){let g=f.name,y=$a(f,t.customObjects!=null?t.customObjects:{});y.setFastWeightInitDuringBuild(a),r[g]=y,f.inboundNodes.forEach(b=>{if(!(b instanceof Array))throw new z(`Corrupted configuration, expected array for nodeData: ${b}`);i(y,b)})}let c=t.name,u=t.layers;for(let f of u)l(f);for(;!V3(s);)for(let f of u){let g=r[f.name];if(g.name in s){let y=s[g.name];delete s[g.name];for(let b of y)o(g,b)}}let p=[],d=[],h=t.inputLayers;for(let f of h){let g=f[0],y=f[1],b=f[2];Za(g in r);let x=r[g].inboundNodes[y].outputTensors;p.push(x[b])}let m=t.outputLayers;for(let f of m){let g=f[0],y=f[1],b=f[2];Za(g in r);let x=r[g].inboundNodes[y].outputTensors;d.push(x[b])}return new e({inputs:p,outputs:d,name:c})}get stateful(){if(this._stateful)throw new z("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let e of this.layers)if(e.stateful)return!0;return!1}resetStates(){D(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function yW(e,t,n){let a=t.length;if(e==null||Array.isArray(e)&&e.length===0)return t.map(r=>null);if(a===1)return Array.isArray(e)&&e.length===1?e:typeof e=="object"&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==a)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${a} outputs. Make sure a set of weights is provided for each model output.`);return e}else if(typeof e=="object"&&Object.keys(e).length>0&&typeof e[Object.keys(e)[0]]=="object"){let r=[];return t.forEach(s=>{s in e?r.push(e[s]):r.push(null)}),r}else throw new Error(`The model has multiple (${a}) outputs, so ${n} must be either an array with ${a} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}function oI(e,t){return yW(e,t,"classWeight")}async function lI(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=D(()=>{if(e.shape.length===1)return e.clone();if(e.shape.length===2)if(e.shape[1]>1){let o=1;return e.argMax(o)}else{if(e.shape[1]===1)return e.reshape([e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await r.data());Ae(r);let i=[];return s.forEach(o=>{if(n[o]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${o} exists in the data but not in classWeight`);i.push(n[o])}),Ze(i,"float32")}else return null}function bW(e,t){return L(e,t)}var xW=32;function cI(e,t){let n,a,r=t;n=r.xs,a=r.ys,w.assert(n!=null&&a!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`);let s=uI("input",e.inputNames,n),i=uI("output",e.outputNames,a),o=s[0].shape[0];w.assert(s.length===e.inputs.length,()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`),w.assert(i.length===e.outputs.length,()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${e.inputNames[l]} has ${s[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${e.outputNames[l]} has ${i[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);return{xs:s,ys:i}}function uI(e,t,n){if(n instanceof Ee)return[n];if(Array.isArray(n))return w.assert(n.length===t.length,()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`),n;{let a=[];for(let r of t){if(n[r]==null)throw new z(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function vW(e){if(e.length===3)throw new $e("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function kW(e,t,n){let a=n.batchesPerEpoch!=null;if(w.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),w.assert(n!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),w.assert(n.epochs!=null&&n.epochs>0&&Number.isInteger(n.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`),w.assert(!a||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`),w.assert(n.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{let r=n.validationData!=null,s,i;if(r)if(pI(n.validationData))w.assert(n.validationBatches==null||n.validationBatches>0&&Number.isInteger(n.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${n.validationBatches}`);else{let g=vW(n.validationData);s=g.xs,i=g.ys}let o=e.makeTrainFunction(),l=e.getDedupedMetricsNames(),c;r?c=l.slice().concat(l.map(g=>"val_"+g)):c=l.slice();let u=X1(n.callbacks,n.yieldEvery),p=n.verbose==null?1:n.verbose,{callbackList:d,history:h}=Y1(u,p,n.epochs,null,null,wW(t,n),null,r,c);d.setModel(e),e.history=h,await d.onTrainBegin(),e.stopTraining_=!1;let m=n.initialEpoch==null?0:n.initialEpoch,f=await t.iterator();for(;m=n.batchesPerEpoch:x.done){if(r){let v;pI(n.validationData)?v=gt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):v=gt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?xW:n.validationBatchSize,verbose:0}));for(let N=0;N0)throw new $e("Verbose mode is not implemented yet.");w.assert(!a||n.batches>0&&Number.isInteger(n.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`);let i=IW(t)?t:await t.iterator(),o=0,l=0;for(;a?l{if(c.value){let{xs:u,ys:p}=cI(e,c.value),d=u.concat(p),h=D(()=>r(d));if(Ae(d),l===0)for(let f=0;fJ(s[f],L(m,g))),l>0&&Ae(y)}Ae(h),o+=m,++l}return s}),c.done){a&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${n.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let c=0;c0&&Number.isInteger(e),()=>`batchSize is required to be a positive integer, but got ${e}`)}function tp(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>Ui(a,t,n-t)):Ui(e,t,n-t)}function ix(e,t){return D(()=>e==null?null:Array.isArray(e)?e.map(n=>ix(n,t)):E1(e,t.dtype==="int32"?t:t.toInt()))}function ox(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}async function NW(e,t,n,a,r,s,i,o,l,c,u,p,d,h,m){r==null&&(r=32),s==null&&(s=1),u==null&&(u=!0),d==null&&(d=0);let f=!1;if(l!=null&&c!=null&&(f=!0),m!=null&&(f=!0,h==null))throw new z("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=e.checkNumSamples(n,r,h,"steps_per_epoch"),y;g!=null&&(y=Fa(0,g)),i==null&&(i=1);let{callbackList:b,history:x}=Y1(o,i,s,d,g,h,r,f,p);b.setModel(e),e.history=x,await b.onTrainBegin(),e.stopTraining_=!1;for(let v=d;v{let R=S[A][0],B=S[A][1],V=Ui(T,R,B-R);$.batch=A,$.size=B-R;let W=ix(n,V),G=t(W);for(let H=0;H0){if(m=!0,a.validationData.length===2)i=a.validationData[0],o=a.validationData[1];else throw a.validationData.length===3?new $e("validationData including sample weights is not supported yet."):new z(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${a.validationData} is invalid.`);let T=!0,S=await e.standardizeUserData(i,o,null,null,T,p);l=S[0],c=S[1],f=l.concat(c)}else if(a.validationSplit!=null&&a.validationSplit>0&&a.validationSplit<1){m=!0;let T=Math.floor(r[0].shape[0]*(1-a.validationSplit)),S=r[0].shape[0];l=tp(r,T,S),r=tp(r,0,T),c=tp(s,T,S),s=tp(s,0,T),f=l.concat(c)}else a.validationSteps!=null&&(m=!0);let g=r.concat(s).concat(u);e.checkTrainableWeightsConsistency();let y=e.makeTrainFunction(),b=e.getDedupedMetricsNames(),x,v;m?(e.makeTestFunction(),x=e.testFunction,v=b.slice().concat(b.map(T=>"val_"+T))):(x=null,f=[],v=b.slice());let N=X1(a.callbacks,a.yieldEvery);return await NW(e,y,g,b,p,a.epochs,a.verbose,N,x,f,a.shuffle,v,a.initialEpoch,null,null)}finally{e.isTraining=!1,ji(r,t),ji(s,n),ji(l,i),ji(c,o),u!=null&&Ae(u)}}function dI(e){let t=[];e instanceof Ee&&(e=[e]);for(let n=0;nn.push(r.id));else if(t!=null)for(let r in t){let s=t[r];n.push(s.id)}let a=[];if(e instanceof Ee)n.indexOf(e.id)===-1&&a.push(e);else if(Array.isArray(e))e.forEach(r=>{n.indexOf(r.id)===-1&&a.push(r)});else if(e!=null)for(let r in e){let s=e[r];n.indexOf(s.id)===-1&&a.push(s)}a.forEach(r=>{r.isDisposed||r.dispose()})}function CW(e){return e instanceof Ee}function lx(e){return Array.isArray(e)}function hI(e){return!CW(e)&&!lx(e)}function mI(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(lx(e)&&e.length>0)i=!0;else if(hI(e)){for(let o in e)if(e.hasOwnProperty(o)){i=!0;break}}else i=!0;if(i)throw new z(`Error when checking model ${r} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(i=>null);let s;if(hI(e)){e=e,s=[];for(let i of t){if(e[i]==null)throw new z(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(e[i])}}else if(lx(e)){if(e=e,e.length!==t.length)throw new z(`Error when checking model ${r}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);s=e}else{if(e=e,t.length>1)throw new z(`The model ${r} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=dI(s),n!=null)for(let i=0;i=0&&c!==u)throw new z(`Error when checking ${r}: expected ${t[i]} to have shape [${n[i]}], but got array with shape [${o.shape}].`)}}return s}function _W(e,t,n){let a=os(e.map(s=>s.shape[0]));a.sort();let r=os(t.map(s=>s.shape[0]));if(r.sort(),a.length>1)throw new z(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(s=>s.shape))}`);if(r.length>1)throw new z(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(a.length>0&&r.length>0&&!w.arraysEqual(a,r))throw new z(`Input Tensors should have the same number of samples as target Tensors. Found ${a[0]} input sample(s) and ${r[0]} target sample(s).`)}function EW(e,t,n){let a=[Gi,bm,Qc];for(let r=0;r1)throw new z(`The model expects ${t.length} ${r} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);s=[e]}if(n!=null)for(let i=0;i[]);let n;if(typeof e=="string"||typeof e=="function")n=[e];else if(Array.isArray(e)||typeof e=="object")n=e;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);if(Array.isArray(n))return t.map(a=>n);{let a=[];for(let r of t){let s=n.hasOwnProperty(r)?n[r]:[];Array.isArray(s)||(s=[s]),a.push(s)}return a}}var AW="layers-model",Tr=class extends ar{constructor(e){super(e);this.isTraining=!1}summary(e,t,n=console.log){if(!this.built)throw new z("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");dW(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=oW(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof wr))throw new z("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(let s in e.loss)if(this.outputNames.indexOf(s)===-1)throw new z(`Unknown entry in loss dictionary: "${s}". Only expected the following keys: ${this.outputNames}`);for(let s of this.outputNames)e.loss[s]==null&&console.warn(`Output "${s}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${s} during training`),t.push(Qb(e.loss[s]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new z(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);t=e.loss.map(s=>Qb(s))}else{let s=Qb(e.loss);this.outputs.forEach(i=>{t.push(s)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let s=0;s{for(let s=0;s1&&(this.metricsTensors.push([i,s]),this.metricsNames.push(this.outputNames[s]+"_loss"))}});let a=FW(e.metrics,this.outputNames),r=(s,i,o)=>{this.outputNames.length>1&&(i=this.outputNames[s]+"_"+i),this.metricsNames.push(i),this.metricsTensors.push([o,s])};Vi("metric",()=>{for(let s=0;s{let l="",c,u,p;for(let d of o){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){let m=this.internalOutputShapes[s];m[m.length-1]===1||this.lossFunctions[s]===bm?["accuracy","acc"].indexOf(d)!==-1?u=Zb:["crossentropy","ce"].indexOf(d)!==-1&&(u=Z1):this.lossFunctions[s]===ym?["accuracy","acc"].indexOf(d)!==-1?u=eI:["crossentropy","ce"].indexOf(d)!==-1&&(u=tI):["accuracy","acc"].indexOf(d)!==-1?u=ex:["crossentropy","ce"].indexOf(d)!==-1&&(u=tx);let f;["accuracy","acc"].indexOf(d)!==-1?f="acc":["crossentropy","ce"].indexOf(d)!==-1&&(f="ce"),p=u,c=l+f}else p=iW(d),c=l+wm(d);let h;Vi(c,()=>{h=p}),r(s,c,h)}})(i)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,n={}){let a=n.batchSize==null?32:n.batchSize;sx(a);let r=!0,s=this.standardizeUserDataXY(e,t,r,a);try{let i=s[0].concat(s[1]);this.makeTestFunction();let o=this.testFunction,l=this.testLoop(o,i,a,n.verbose,n.steps);return _n(l)}finally{ji(s[0],e),ji(s[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),TW(this,e,t)}checkNumSamples(e,t,n,a="steps"){let r;if(n!=null){if(r=null,t!=null)throw new z(`If ${a} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?r=e[0].shape[0]:r=e.shape[0];else throw new z(`Either the input data should have a defined shape, or ${a} shoud be specified.`);return r}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new z("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(t),a=n?t:[t],r=this.retrieveSymbolicTensors(a),s=new Hi;if(e instanceof Ee&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new z(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let o=0;oi.name);for(let i=0;i0){let a=[];throw t.forEach((r,s)=>{r==null&&a.push(e[s])}),new z(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(a)}`)}return t}predictLoop(e,t=32,n=!1){return D(()=>{let a=this.checkNumSamples(e);if(n)throw new $e("Verbose predictLoop() is not implemented yet.");let r=ox(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],c=tp(e,o,l),u=[];if(Array.isArray(c))for(let d=0;ds[l].push(o));return _n(s.map(i=>Je(i,0)))})}predict(e,t={}){let n=dI(e);fI(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return sx(a),this.predictLoop(n,a)}finally{ji(n,e)}}predictOnBatch(e){fI(e,this.inputNames,this.feedInputShapes,!0);let t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,a){if(this.optimizer_==null)throw new Ea("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let r=[];for(let s=0;s0&&e[0].shape[0]%a!=0)throw new z(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${a}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,a,r=!0,s){let[i,o]=this.standardizeUserDataXY(e,t,r,s);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(a!=null){let c=oI(a,this.outputNames);l=[];for(let u=0;u{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new $e("Verbose mode is not implemented yet.");if(r!=null)throw new $e("steps mode in testLoop() is not implemented yet");{let o=ox(s,n),l=Ze(Fa(0,s));for(let c=0;c1&&(r+=`_${g1(e.slice(0,n),a)}`),t.push(r)}return t}makeTrainFunction(){return e=>{let t=[],n=e.slice(0,this.inputs.length),a=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),s=[],i=()=>{let c=[];for(let h=0;h1&&h{d=J(d,h)}),d},o=this.collectedTrainableWeights.map(c=>c.read()),l=!0;return[this.optimizer_.minimize(i,l,o)].concat(s)}}makeTestFunction(){this.testFunction=e=>D(()=>{let t=[],n,a=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=[];for(let l=0;lIr(t))}else{let t=Object.keys(this.loss);e={};let n=this.loss;for(let a of t)if(typeof n[a]=="string")e[a]=Ir(n[a]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[Ir(wm(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>Ir(wm(e)));{let e={};for(let t in this.metrics)e[t]=Ir(wm(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let t=Zc(e.optimizer_config),n=$a(t),a;if(typeof e.loss=="string")a=Bi(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Bi(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Bi(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Bi(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Bi(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=Ht.getSaveHandlers(e);if(i.length===0)throw new z(`Cannot find any save handlers for URL '${e}'`);if(i.length>1)throw new z(`Found more than one (${i.length}) save handlers for URL '${e}'`);e=i[0]}if(e.save==null)throw new z("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await Ht.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:AW,generatedBy:`TensorFlow.js tfjs-layers v${Im}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await Ht.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=Ht.concatenateArrayBuffers([n.data,o])}if(this.userDefinedMetadata!=null){let i=!0;aI(this.userDefinedMetadata,this.name,i),s.userDefinedMetadata=this.userDefinedMetadata}return s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){aI(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Tr.className="Model";re.registerClass(Tr);var gI=class extends Tr{};gI.className="Functional";re.registerClass(gI);async function $W(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=Zc(n),r=$a(a,t);if(e.weightsManifest!=null){let s=await Ht.loadWeights(e.weightsManifest,e.pathPrefix,r.weights.map(o=>o.originalName)),i={};for(let o of r.weights)i[o.originalName]=s[o.originalName];r.loadWeights(i),Ae(s)}return r}async function RW(e,t){if(t==null&&(t={}),typeof e=="string"){let n=Ht.getLoadHandlers(e,t);if(n.length===0)n.push(Ht.browserHTTPRequest(e,t));else if(n.length>1)throw new z(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return DW(e,void 0,t)}async function DW(e,t,n){if(n==null&&(n={}),e.load==null)throw new z("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let a=await e.load(),r=a.modelTopology;r.model_config!=null&&(r=r.model_config);let s=n.strict==null?!0:n.strict,i=a.weightData!=null&&a.weightSpecs!=null&&s,o=$a(Zc(r),t,i),l=a.trainingConfig;if(l!=null&&o.loadTrainingConfig(l),a.userDefinedMetadata!=null&&o.setUserDefinedMetadata(a.userDefinedMetadata),a.weightData!=null){if(a.weightSpecs==null)throw new z("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:c,optimizerWeights:u}=MW(a.weightData,a.weightSpecs);o.loadWeights(c,s),o.optimizer!=null&&u.length>0&&await o.optimizer.setWeights(u),Ae(c),Ae(u.map(p=>p.tensor))}return o}function MW(e,t){let n=Ht.decodeWeights(e,t),a={},r=[];return t.forEach(s=>{s.group==="optimizer"?r.push({name:s.name,tensor:n[s.name]}):a[s.name]=n[s.name]}),{modelWeights:a,optimizerWeights:r}}var su=class extends Tr{constructor(e){super({inputs:[],outputs:[]});if(e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:pm("sequential_"),e.layers!=null)for(let t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(t=>t<0))throw new z(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof su||e instanceof Tr,n;if(t){if(n=e,n.outputs.length!==1)throw new z("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(n.inputs.length!==1)throw new z("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new z("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let a=U1({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(a)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(e.inboundNodes.length!==1)throw new z(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new z("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=V1(this.outputs[0])}this.inboundNodes=[],new mm({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:zi(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(a=>a.shape),outputShapes:this.outputs[0].shape})}else{let a=e.apply(this.outputs[0]);if(Array.isArray(a))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[a],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(ct(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new Tr({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,n=console.log){this.built||this.build(),super.summary(e,t,n)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new Ea("The model needs to be compiled before being used.");return this.model.evaluate(e,t,n)}async evaluateDataset(e,t){if(!this.built)throw new Ea("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new Ea("The model needs to be compiled before being used.");return this.model.fit(e,t,n)}async fitDataset(e,t){if(!this.built)throw new Ea("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,n={},a=!1){let r,s={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new z("Legacy serialization format not supported yet.");r=t}else w.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),r=t.layers,delete t.layers,s=t;let i=new e(s);if(!(i instanceof su))throw new $e(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let o of r){let l=$a(o,void 0,a);a&&l.setFastWeightInitDuringBuild(!0),i.add(l)}return i}set stopTraining(e){if(this.model==null)throw new z("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new z("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let e=[];for(let t of this.layers){let n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}};su.className="Sequential";re.registerClass(su);function PW(e){return new Tr(e)}function OW(e){return new su(e)}function LW(e,t){return t==null&&(t={}),RW(e,t)}function R1(e){return U1(e)}function zW(e,t){ya.registerCallbackConstructor(e,t)}var Bn=class extends re.Serializable{getConfig(){return{}}},yI=class extends Bn{apply(e,t=1){return yz(e,t)}};yI.className="elu";re.registerClass(yI);var bI=class extends Bn{apply(e){return Rh(e)}};bI.className="selu";re.registerClass(bI);var xI=class extends Bn{apply(e){return qe(e)}};xI.className="relu";re.registerClass(xI);var vI=class extends Bn{apply(e){return D(()=>Kl(6,qe(e)))}};vI.className="relu6";re.registerClass(vI);var wI=class extends Bn{apply(e){return e}};wI.className="linear";re.registerClass(wI);var kI=class extends Bn{apply(e){return da(e)}};kI.className="sigmoid";re.registerClass(kI);var II=class extends Bn{apply(e){return xz(e)}};II.className="hardSigmoid";re.registerClass(II);var TI=class extends Bn{apply(e){return jl(e)}};TI.className="softplus";re.registerClass(TI);var NI=class extends Bn{apply(e){return bz(e)}};NI.className="softsign";re.registerClass(NI);var SI=class extends Bn{apply(e){return Ul(e)}};SI.className="tanh";re.registerClass(SI);var ux=class extends Bn{apply(e,t=-1){return Na(e,t)}};ux.className="softmax";re.registerClass(ux);var CI=class extends Bn{apply(e,t=-1){return Ch(e,t)}};CI.className="logSoftmax";re.registerClass(CI);var _I=class extends Bn{apply(e,t=1){return D(()=>da(e.mul(t)).mul(e))}};_I.className="swish";re.registerClass(_I);function ps(e){return e.getClassName()}function cx(e,t={}){return Gc(e,re.SerializationMap.getMap().classNameMap,t,"activation")}function ds(e){if(e==null){let t={};return t.className="linear",t.config={},cx(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},cx(t)}else return e instanceof Bn?e:cx(e)}function px(e){if(e!=null&&typeof e!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}var EI=class extends re.Serializable{},np=class extends EI{constructor(e){super();px(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return D(()=>{let t=xt([1]);return this.hasL1&&(t=J(t,Se(L(this.l1,Lt(e))))),this.hasL2&&(t=J(t,Se(L(this.l2,Xc(e))))),t.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};np.className="L1L2";re.registerClass(np);function BW(e){return px(e),new np({l1:e!=null?e.l1:null,l2:0})}function WW(e){return px(e),new np({l2:e!=null?e.l2:null,l1:0})}var FI={l1l2:"L1L2"};function pt(e){return Sb(e)}function AI(e,t={}){return Gc(e,re.SerializationMap.getMap().classNameMap,t,"regularizer")}function wt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in FI?FI[e]:e,config:{}};return AI(t)}else return e instanceof EI?e:AI(e)}var dx=class extends je{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Me(e);let n=qe(e);return this.maxValue!=null&&(n=qt(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};dx.className="ReLU";re.registerClass(dx);var hx=class extends je{constructor(e){super(e==null?{}:e);this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){let n=Me(e);return Mc(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};hx.className="LeakyReLU";re.registerClass(hx);var mx=class extends je{constructor(e){super(e==null?{}:e);if(this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=vt(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=wt(e.alphaRegularizer),this.alphaConstraint=Vt(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new z(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=ct(e);let t=e.slice(1);if(this.sharedAxes!=null)for(let a of this.sharedAxes)t[a-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let a=1;a(Dt(t),t==="channelsFirst"?Ve(e,[0,2,3,1]):e))}function $I(e,t){return D(()=>(Dt(t),t==="channelsFirst"?Ve(e,[0,2,3,4,1]):e))}function VW(e,t,n,a=1,r="valid",s,i=1){return D(()=>{if(s==null&&(s=_a()),Dt(s),e.shape.length!==3)throw new z(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new z(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(n!=null&&n.shape.length!==1)throw new z(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(e=Ve(e,[0,2,1])),r==="causal")throw new $e("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=xh(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=tr(o,n)),o})}function DI(e,t,n,a=[1,1],r="valid",s,i,o=null){return D(()=>{if(s==null&&(s=_a()),Dt(s),e.rank!==3&&e.rank!==4)throw new z(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new z(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=bx(e,s);if(r==="causal")throw new $e("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=is.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=Ve(l,[0,3,1,2])),l})}function UW(e,t,n,a=[1,1,1],r="valid",s,i){return D(()=>{if(s==null&&(s=_a()),Dt(s),e.rank!==4&&e.rank!==5)throw new z(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new z(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=$I(e,s);if(r==="causal")throw new $e("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=Xy(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=tr(o,n)),s==="channelsFirst"&&(o=Ve(o,[0,4,1,2,3])),o})}var xx=class extends je{constructor(e,t){super(t);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",xx.verifyArgs(t),this.rank=e,Kt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new $e(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=iu(t.kernelSize,e,"kernelSize"),this.strides=iu(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,na(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Dt(this.dataFormat),this.activation=ds(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=vt(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Vt(t.biasConstraint),this.biasRegularizer=wt(t.biasRegularizer),this.activityRegularizer=wt(t.activityRegularizer),this.dilationRate=iu(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new z(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new z(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new z(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(Za("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!_b(e.kernelSize,"number",1,3))throw new z(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){let e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:ps(this.activation),useBias:this.useBias,biasInitializer:Ct(this.biasInitializer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),biasConstraint:Wt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},ap=class extends xx{constructor(e,t){super(e,t);this.kernel=null,ap.verifyArgs(t),this.filters=t.filters,Kt(this.filters,"filters"),this.kernelInitializer=vt(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Vt(t.kernelConstraint),this.kernelRegularizer=wt(t.kernelRegularizer)}build(e){e=ct(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new z(`The channel dimension of the input should be defined. Found ${e[t]}`);let n=e[t],a=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:n}}],this.built=!0}call(e,t){return D(()=>{e=Me(e);let n,a=this.bias==null?null:this.bias.read(),r=b1(this.activation.getClassName());if(r!=null&&this.rank===2)n=DI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=VW(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=DI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=UW(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new $e("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=ct(e);let t=[],n=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let r=0;r 0 but got ${JSON.stringify(e.filters)}`)}},rp=class extends ap{constructor(e){super(2,e);rp.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!_b(e.kernelSize,"number",1,2))throw new z(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};rp.className="Conv2D";re.registerClass(rp);var Nm=class extends ap{constructor(e){super(3,e);Nm.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};Nm.className="Conv3D";re.registerClass(Nm);var vx=class extends rp{constructor(e){super(e);if(this.inputSpec=[new Xt({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new z(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=ct(e),e.length!==4)throw new z("Input should have rank 4; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new z("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new Xt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return D(()=>{let n=Me(e);if(n.shape.length!==4)throw new z(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i;this.dataFormat==="channelsFirst"?(s=2,i=3):(s=1,i=2);let o=a[s],l=a[i],c=this.kernelSize[0],u=this.kernelSize[1],p=this.strides[0],d=this.strides[1],h=Tm(o,p,c,this.padding),m=Tm(l,d,u,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=Ve(n,[0,2,3,1]));let g=vh(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=Ve(g,[0,3,1,2])),this.bias!=null&&(g=tr(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=ct(e);let t=e.slice(),n,a,r;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3):(n=3,a=1,r=2);let s=this.kernelSize[0],i=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[a]=Tm(t[a],o,s,this.padding),t[r]=Tm(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};vx.className="Conv2DTranspose";re.registerClass(vx);var RI=class extends ap{constructor(e,t){super(e,t);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new z("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new z("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new z(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=vt(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=wt(t.depthwiseRegularizer),this.depthwiseConstraint=Vt(t.depthwiseConstraint),this.pointwiseInitializer=vt(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=wt(t.pointwiseRegularizer),this.pointwiseConstraint=Vt(t.pointwiseConstraint)}build(e){if(e=ct(e),e.length{e=Me(e);let n;if(this.rank===1)throw new $e("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=Ve(e,[0,2,3,1])),n=Pi(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=tr(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ve(n,[0,3,1,2])),n})}getConfig(){let e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.pointwiseInitializer=Ct(this.pointwiseInitializer),e.depthwiseRegularizer=pt(this.depthwiseRegularizer),e.pointwiseRegularizer=pt(this.pointwiseRegularizer),e.depthwiseConstraint=Wt(this.depthwiseConstraint),e.pointwiseConstraint=Wt(this.pointwiseConstraint),e}};RI.className="SeparableConv";var wx=class extends RI{constructor(e){super(2,e)}};wx.className="SeparableConv2D";re.registerClass(wx);var Sm=class extends ap{constructor(e){super(1,e);Sm.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){let e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!_b(e.kernelSize,"number",1,1))throw new z(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};Sm.className="Conv1D";re.registerClass(Sm);var kx=class extends je{constructor(e){super(e);typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return D(()=>{if(e=Me(e),this.dataFormat==="channelsLast"){let n=tm(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return tm(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=tm(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return tm(n,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};kx.className="Cropping2D";re.registerClass(kx);var Ix=class extends je{constructor(e){super(e);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,cz(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){let t=e[2]==null?null:this.size[0]*e[2],n=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,n]}else{let t=e[1]==null?null:this.size[0]*e[1],n=e[2]==null?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return D(()=>{let n=Me(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=Ve(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?n.resizeNearestNeighbor([r,s]):n.resizeBilinear([r,s]);return Ve(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?n.resizeNearestNeighbor([r,s]):n.resizeBilinear([r,s])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Ix.className="UpSampling2D";re.registerClass(Ix);function GW(e,t,n=[1,1],a="valid",r,s){return D(()=>{r==null&&(r=_a()),Dt(r);let i=bx(e,r);if(e.rank!==4)throw new z(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new z(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=ns(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=Ve(i,[0,3,1,2])),i})}var Tx=class extends xx{constructor(e){super(2,e);this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=vt(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Vt(e.depthwiseConstraint),this.depthwiseRegularizer=wt(e.depthwiseRegularizer)}build(e){if(e=ct(e),e.length<4)throw new z(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);let t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new z(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);let n=e[t],a=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",a,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return D(()=>{e=Me(e);let n=GW(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=tr(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=ct(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,r=Da(t,this.kernelSize[0],this.padding,this.strides[0]),s=Da(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],a,r,s]:[e[0],r,s,a]}getConfig(){let e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.depthwiseRegularizer=pt(this.depthwiseRegularizer),e.depthwiseConstraint=Wt(this.depthwiseRegularizer),e}};Tx.className="DepthwiseConv2D";re.registerClass(Tx);function MI(e,t,n,a){if(Array.isArray(e)){if(t!=null||n!=null)throw new z("When inputs is an array, neither initialState or constants should be provided");a!=null&&(n=e.slice(e.length-a,e.length),e=e.slice(0,e.length-a)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function r(s){return s==null||Array.isArray(s)?s:[s]}return t=r(t),n=r(n),{inputs:e,initialState:t,constants:n}}function PI(e,t,n,a=!1,r,s,i=!1,o=!1){return D(()=>{let l=t.shape.length;if(l<3)throw new z(`Input should be at least 3D, but is ${l}D.`);let c=[1,0].concat(Fa(2,l));if(t=Ve(t,c),s!=null)throw new $e("The rnn() functoin of the deeplearn.js backend does not support constants yet.");i&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),r!=null&&(r=r.asType("bool").asType("float32"),r.rank===l-1&&(r=Mn(r,-1)),r=Ve(r,c)),a&&(t=Ln(t,0),r!=null&&(r=Ln(r,0)));let u=[],p,d=n,h=t.shape[0],m=ut(t),f;r!=null&&(f=ut(r));for(let y=0;ye(b,d));if(r==null)p=x[0],d=x[1];else{let v=D(()=>{let N=f[y],T=On(N).sub(N),S=x[0].mul(N).add(d[0].mul(T)),A=d.map(($,R)=>x[1][R].mul(N).add($.mul(T)));return{output:S,newStates:A}});p=v.output,d=v.newStates}o&&u.push(p)}let g;return o&&(g=$t(u,1)),[p,g,d]})}var nr=class extends je{constructor(e){super(e);let t;if(e.cell==null)throw new z("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new Cm({cells:e.cell}):t=e.cell,t.stateSize==null)throw new z("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new Xt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Fa(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Kb(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);let n=t[0],a;if(this.returnSequences?a=[e[0],e[1],n]:a=[e[0],n],this.returnState){let r=[];for(let s of t)r.push([e[0],s]);return[a].concat(r)}else return a}computeMask(e,t){return D(()=>{Array.isArray(t)&&(t=t[0]);let n=this.returnSequences?t:null;if(this.returnState){let a=this.states.map(r=>null);return[n].concat(a)}else return n})}get states(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ni.shape[i.shape.length-1]),s))throw new z(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=s.map(i=>new Xt({shape:[null,i]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){D(()=>{if(!this.stateful)throw new kr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new z("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>xt([n,a])):this.states_=[xt([n,this.cell.stateSize])];else if(e==null)Ae(this.states_),this.keptStates!=null&&(Ae(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>xt([n,a])):this.states_[0]=xt([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):Ae(this.states_);for(let a=0;ajt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=MI(e,n,a,this.numConstants);e=r.inputs,n=r.initialState,a=r.constants;let s=[],i=[];if(n!=null){t.initialState=n,s=s.concat(n),this.stateSpec=[];for(let o of n)this.stateSpec.push(new Xt({shape:o.shape}));i=i.concat(this.stateSpec)}if(a!=null&&(t.constants=a,s=s.concat(a),this.numConstants=a.length),s[0]instanceof Aa){let o=[e].concat(s),l=this.inputSpec.concat(i),c=this.inputSpec;this.inputSpec=l;let u=super.apply(o,t);return this.inputSpec=c,u}else return super.apply(e,t)}call(e,t){return D(()=>{let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;e=Me(e),r==null&&(this.stateful?r=this.states_:r=this.getInitialState(e));let s=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(r.length!==s)throw new z(`RNN Layer has ${s} state(s) but was passed ${r.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let i={training:a},o=PI((d,h)=>{let m=this.cell.call([d].concat(h),i);return[m[0],m.slice(1)]},e,r,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],c=o[1],u=o[2];this.stateful&&this.resetStates(u,a);let p=this.returnSequences?c:l;return this.returnState?[p].concat(u):p})}getInitialState(e){return D(()=>{let t=xt(e.shape);return t=Se(t,[1,2]),t=Kc(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Rb(t,[1,n]):t):this.cell.stateSize>1?[Rb(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){let e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===nr.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,e,t)}static fromConfig(e,t,n={}){let a=t.cell,r=$a(a,n);return new e(Object.assign(t,{cell:r}))}};nr.className="RNN";re.registerClass(nr);var Jc=class extends je{},_m=class extends Jc{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Kt(this.units,"units"),this.activation=ds(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=vt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=vt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=vt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=wt(e.kernelRegularizer),this.recurrentRegularizer=wt(e.recurrentRegularizer),this.biasRegularizer=wt(e.biasRegularizer),this.kernelConstraint=Vt(e.kernelConstraint),this.recurrentConstraint=Vt(e.recurrentConstraint),this.biasConstraint=Vt(e.biasConstraint),this.dropout=tu([1,us([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=tu([1,us([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=ct(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return D(()=>{if(e=e,e.length!==2)throw new z(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];let a=t.training==null?!1:t.training;0On(e),rate:this.dropout,training:a})),0On(n),rate:this.recurrentDropout,training:a}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=er(L(e,s),this.kernel.read()):r=er(e,this.kernel.read()),this.bias!=null&&(r=tr(r,this.bias.read())),i!=null&&(n=L(n,i));let o=J(r,er(n,this.recurrentKernel.read()));return this.activation!=null&&(o=this.activation.apply(o)),[o,o]})}getConfig(){let e=super.getConfig(),t={units:this.units,activation:ps(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),recurrentInitializer:Ct(this.recurrentInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:pt(this.kernelRegularizer),recurrentRegularizer:pt(this.recurrentRegularizer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),kernelConstraint:Wt(this.kernelConstraint),recurrentConstraint:Wt(this.recurrentConstraint),biasConstraint:Wt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}};_m.className="SimpleRNNCell";re.registerClass(_m);var Nx=class extends nr{constructor(e){e.cell=new _m(e),super(e)}call(e,t){return D(()=>{this.cell.dropoutMask!=null&&(Ae(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ae(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return new e(t)}};Nx.className="SimpleRNN";re.registerClass(Nx);var Em=class extends Jc{constructor(e){super(e);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new z("GRUCell does not support reset_after parameter set to true.");this.units=e.units,Kt(this.units,"units"),this.activation=ds(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ds(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=vt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=vt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=vt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=wt(e.kernelRegularizer),this.recurrentRegularizer=wt(e.recurrentRegularizer),this.biasRegularizer=wt(e.biasRegularizer),this.kernelConstraint=Vt(e.kernelConstraint),this.recurrentConstraint=Vt(e.recurrentConstraint),this.biasConstraint=Vt(e.biasConstraint),this.dropout=tu([1,us([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=tu([1,us([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=ct(e);let t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return D(()=>{if(e=e,e.length!==2)throw new z(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training==null?!1:t.training,a=e[1];e=e[0],0On(e),rate:this.dropout,training:n,count:3})),0On(a),rate:this.recurrentDropout,training:n,count:3}));let r=this.dropoutMask,s=this.recurrentDropoutMask,i,o,l;0{this.cell.dropoutMask!=null&&(Ae(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ae(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Sx.className="GRU";re.registerClass(Sx);var sp=class extends Jc{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Kt(this.units,"units"),this.activation=ds(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ds(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=vt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=vt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=vt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=wt(e.kernelRegularizer),this.recurrentRegularizer=wt(e.recurrentRegularizer),this.biasRegularizer=wt(e.biasRegularizer),this.kernelConstraint=Vt(e.kernelConstraint),this.recurrentConstraint=Vt(e.recurrentConstraint),this.biasConstraint=Vt(e.biasConstraint),this.dropout=tu([1,us([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=tu([1,us([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=ct(e);let n=e[e.length-1];this.kernel=this.addWeight("kernel",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let a;if(this.useBias){if(this.unitForgetBias){let r=this.biasInitializer,s=this.units;a=new(t=class extends ga{apply(i,o){let l=r.apply([s]),c=new am().apply([s]),u=r.apply([s*2]);return _1(_1(l,c),u)}},t.className="CustomInit",t)}else a=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,a,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return D(()=>{let n=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new z(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let a=e[1],r=e[2];e=e[0],0On(e),rate:this.dropout,training:n,count:4})),0On(a),rate:this.recurrentDropout,training:n,count:4}));let s=this.dropoutMask,i=this.recurrentDropoutMask,o,l,c,u;0{this.cell.dropoutMask!=null&&(Ae(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ae(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Cx.className="LSTM";re.registerClass(Cx);var Cm=class extends Jc{constructor(e){super(e);this.cells=e.cells}get stateSize(){let e=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return D(()=>{e=e;let n=e.slice(1),a=[];for(let i of this.cells.slice().reverse())Array.isArray(i.stateSize)?a.push(n.splice(0,i.stateSize.length)):a.push(n.splice(0,1));a.reverse();let r=[],s;for(let i=0;i{Vi(`RNNCell_${a}`,()=>{n.build(e),Array.isArray(n.stateSize)?t=n.stateSize[0]:t=n.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){let e=super.getConfig(),t=a=>({className:a.getClassName(),config:a.getConfig()}),n={cells:this.cells.map(t)};return Object.assign({},e,n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push($a(r,n));return new e({cells:a})}get trainableWeights(){if(!this.trainable)return[];let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.cells)t.push(...n.trainableWeights);return t.concat(e)}return e}getWeights(){let e=[];for(let t of this.cells)e.push(...t.weights);return Xb(e)}setWeights(e){let t=[];for(let n of this.cells){let a=n.weights.length,r=e.splice(a);for(let s=0;sF1(t(),n),i=()=>Yc(s,t,a);return!r||r<=1?jt(i().clone()):Array(r).fill(void 0).map(i).map(o=>jt(o.clone()))}var HW=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,a=Object.getOwnPropertySymbols(e);r{if(this.cell.dropoutMask!=null&&(Ae(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ae(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new z("ConvRNN2D cell does not support constants");let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return D(()=>{let{stateSize:t}=this.cell,n=e.shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)],s=xt(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){D(()=>{if(!this.stateful)throw new kr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)];if(n[0]==null)throw new z("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>xt(r)):this.states_=[xt(r)];else if(e==null)Ae(this.states_),this.keptStates!=null&&(Ae(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>xt(r)):this.states_[0]=xt(r);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):Ae(this.states_);for(let s=0;sjt(s.clone()))})}computeSingleOutputShape(e){let{dataFormat:t,filters:n,kernelSize:a,padding:r,strides:s,dilationRate:i}=this.cell,o=t==="channelsFirst",l=e[o?3:2],c=e[o?4:3],u=Da(l,a[0],r,s[0],i[0]),p=Da(c,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,u,p]:[u,p,n]]}};OI.className="ConvRNN2D";var Fm=class extends sp{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign({},e,{units:t}));this.filters=t,Kt(this.filters,"filters"),this.kernelSize=iu(n,2,"kernelSize"),this.kernelSize.forEach(o=>Kt(o,"kernelSize")),this.strides=iu(a||1,2,"strides"),this.strides.forEach(o=>Kt(o,"strides")),this.padding=r||"valid",na(this.padding),this.dataFormat=s||"channelsLast",Dt(this.dataFormat),this.dilationRate=iu(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>Kt(o,"dilationRate"))}build(e){var t;e=ct(e);let n=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[n]==null)throw new z(`The channel dimension of the input should be defined. Found ${e[n]}`);let a=e[n],r=4,s=this.kernelSize.concat([a,this.filters*r]);this.kernel=this.addWeight("kernel",s,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let i=this.kernelSize.concat([this.filters,this.filters*r]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let o;if(this.unitForgetBias){let l=this.biasInitializer,c=this.filters;o=new(t=class extends ga{apply(u,p){let d=l.apply([c]),h=Ya([c]),m=l.apply([c*2]);return Pb([d,h,m])}},t.className="CustomInit",t)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*r],null,o,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return D(()=>{if(e.length!==3)throw new z(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training||!1,a=e[0],r=e[1],s=e[2],i=4;0On(a),rate:this.dropout,training:n,count:i}));let o=this.dropoutMask,l=(Q,se,ne)=>!se||!se[ne]?Q:L(se[ne],Q),c=l(a,o,0),u=l(a,o,1),p=l(a,o,2),d=l(a,o,3);0On(r),rate:this.recurrentDropout,training:n,count:i}));let h=this.recurrentDropoutMask,m=l(r,h,0),f=l(r,h,1),g=l(r,h,2),y=l(r,h,3),b=3,[x,v,N,T]=zn(this.kernel.read(),i,b),[S,A,$,R]=this.useBias?zn(this.bias.read(),i):[null,null,null,null];c=this.inputConv(c,x,S,this.padding),u=this.inputConv(u,v,A,this.padding),p=this.inputConv(p,N,$,this.padding),d=this.inputConv(d,T,R,this.padding);let[B,V,W,G]=zn(this.recurrentKernel.read(),i,b);m=this.recurrentConv(m,B),f=this.recurrentConv(f,V),g=this.recurrentConv(g,W),y=this.recurrentConv(y,G);let H=this.recurrentActivation.apply(J(c,m)),X=this.recurrentActivation.apply(J(u,f)),q=J(L(X,s),L(H,this.activation.apply(J(p,g)))),te=L(this.recurrentActivation.apply(J(d,y)),this.activation.apply(q));return[te,te,q]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=HW(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},n,a)}inputConv(e,t,n,a){let r=Ft(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?tr(r,n,this.dataFormat):r}recurrentConv(e,t){return Ft(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Fm.className="ConvLSTM2DCell";re.registerClass(Fm);var _x=class extends OI{constructor(e){let t=new Fm(e);super(Object.assign({},e,{cell:t}))}static fromConfig(e,t){return new e(t)}};_x.className="ConvLSTM2D";re.registerClass(_x);var Am=class extends je{constructor(e){super(e);this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;let t=e.shape,n=[];for(let a=0;a{this.invokeCallHook(e,t);let n=Me(e);if(0F1(n,this.rate,r,this.seed),()=>n,a)}return e})}getConfig(){let e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}};Am.className="Dropout";re.registerClass(Am);var Ex=class extends Am{constructor(e){super(e);this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};Ex.className="SpatialDropout1D";re.registerClass(Ex);var Fx=class extends je{constructor(e){super(e);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,Kt(this.units,"units"),this.activation=ds(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=vt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=vt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Vt(e.kernelConstraint),this.biasConstraint=Vt(e.biasConstraint),this.kernelRegularizer=wt(e.kernelRegularizer),this.biasRegularizer=wt(e.biasRegularizer),this.activityRegularizer=wt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=ct(e);let t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=ct(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e),a=b1(this.activation.getClassName()),r;return a!=null?r=er(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=er(n,this.kernel.read()),this.bias!=null&&(r=tr(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:ps(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:pt(this.kernelRegularizer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),kernelConstraint:Wt(this.kernelConstraint),biasConstraint:Wt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Fx.className="Dense";re.registerClass(Fx);var Ax=class extends je{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=ct(e);for(let t of e.slice(1))if(t==null)throw new z(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],ls(e,1)]}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Me(e);return this.activation.apply(n)})}getConfig(){let e={activation:ps(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};$x.className="Activation";re.registerClass($x);var Dx=class extends je{constructor(e){super(e);this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return D(()=>(e=Me(e),mz(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};Dx.className="RepeatVector";re.registerClass(Dx);var Rx=class extends je{constructor(e){super(e);this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Me(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return n.reshape(r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};Rx.className="Reshape";re.registerClass(Rx);var Mx=class extends je{constructor(e){super(e);if(e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);let t=Fa(1,e.dims.length+1);if(!w.arraysEqual(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new Xt({ndim:this.dims.length+1})]}computeOutputShape(e){e=ct(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return Ve(Me(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};Mx.className="Permute";re.registerClass(Mx);var Px=class extends je{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){let n=Me(e),a=-1;return Ec(Mi(n,this.maskValue),a)}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e),a=-1,r=!0,s=Ec(Mi(n,this.maskValue),a,r);return n.mul(s.asType(n.dtype))})}};Px.className="Masking";re.registerClass(Px);var Ox=class extends je{constructor(e){super(e);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(gt(e.inputLength))}this.inputDim=e.inputDim,Kt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Kt(this.outputDim,"outputDim"),this.embeddingsInitializer=vt(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=wt(e.embeddingsRegularizer),this.activityRegularizer=wt(e.activityRegularizer),this.embeddingsConstraint=Vt(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return D(()=>this.maskZero?(e=Me(e),Mi(e,Ge(e))):null)}computeOutputShape(e){if(e=ct(e),this.inputLength==null)return[...e,this.outputDim];let t=gt(this.inputLength);if(t.length!==e.length-1)throw new z(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let a=0;a{this.invokeCallHook(e,t);let n=Me(e);return n.dtype!=="int32"&&(n=qc(n,"int32")),E1(this.embeddings.read(),n.as1D()).reshape(ct(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Ct(this.embeddingsInitializer),embeddingsRegularizer:pt(this.embeddingsRegularizer),activityRegularizer:pt(this.activityRegularizer),embeddingsConstraint:Wt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};Ox.className="Embedding";re.registerClass(Ox);var qi=class extends je{constructor(e){super(e||{});this.supportsMasking=!0}mergeFunction(e){throw new $e}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new z(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=e[0]==null?null:e[0].slice(1);for(let r=1;rr.length);e.indexOf(null)===-1&&os(a).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return D(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=us(a);for(let s of e){let i=s.rank;for(let o=0;o1){let c=Fa(1,l).concat([0]);n.push(Ve(o,c)),r=!0}else n.push(o)}let s=this.mergeFunction(n),i=s.rank;if(r){if(i==null){let o=s.shape,l=o.length,c=o[l-1],u=[c].concat(o.slice(0,o.length-1));s=Ve(s.reshape([-1,c]),[1,0]).reshape(u)}else if(i>1){let o=[i-1].concat(Fa(0,i-1));s=Ve(s,o)}}return s}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let a=1;a{if(t==null)return null;if(!Array.isArray(t))throw new z("`mask` should be an Array");if(!Array.isArray(e))throw new z("`inputs` should be an Array");if(t.length!==e.length)throw new z(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(a=>a==null))return null;t=t.map(a=>a==null?a:Mn(a,0));let n=t[0];for(let a=1;a{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0];for(let n=1;n{let t=e[0];for(let n=1;n1)throw new z("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return D(()=>Pb(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new z("A `Concatenate` layer should be called on a list of inputs.");let t=e,n=t[0].slice(),a=this.axis<0?n.length+this.axis:this.axis;for(let r of t.slice(1)){if(n[a]==null||r[a]==null){n[a]=null;break}n[a]+=r[a]}return n}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new z("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new z("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new z(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return D(()=>{let n=!0;if(t.forEach(s=>{if(s!=null){n=!1;return}}),n)return null;let a=[];for(let s=0;s3||t.shape.length>3)throw new $e("batchDot is not implemented for tensors of 4D or higher rank yet");if(w.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),w.assert(e.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof n=="number"&&(n=[n,n]),e.dtype==="complex64"||t.dtype==="complex64")throw new $e("batchDot is not implemented for complex64-type Tensors yet.");let a=e.shape.length,r=t.shape.length;n==null&&(n=[a-1,r-2]);let s=n;return D(()=>{let i;if(a>r){i=a-r;let l=[];for(let c=0;ca){i=r-a;let l=[];for(let c=0;c0){let l;a>r?l=a+r-3:l=a-1;let c=[];for(let u=l;u"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0],n=e[1];if(t.length>3||n.length>3)throw new $e("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);if(t[a[0]]!==n[a[1]])throw new z(`Dimension incompatibility: ${t[a[0]]} !== ${n[a[1]]}`)}mergeFunction(e){if(e.length!==2)throw new z(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],n=e[1],a;return Array.isArray(this.axes)?a=this.axes.map((r,s)=>ip(r,e[s].shape.length)):a=[ip(this.axes,t.shape.length),ip(this.axes,n.shape.length)],this.normalize&&(t=fm(t,a[0]),n=fm(n,a[1])),jW(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[ip(this.axes,e.length),ip(this.axes,t.length)],n}computeOutputShape(e){w.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new $e("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);t.splice(a[0],1),n.splice(a[1],1),n.splice(0,1);let r=t.concat(n);return r.length===1&&r.push(1),r}computeMask(e,t){return null}getConfig(){let e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}};Gx.className="Dot";re.registerClass(Gx);var Hx=class extends je{constructor(e){super(e);this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e);return Yc(()=>nm(n.shape,0,this.stddev).add(n),()=>n,t.training||!1)})}};Hx.className="GaussianNoise";re.registerClass(Hx);var jx=class extends je{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e);return this.rate>0&&this.rate<1?Yc(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return n.mul(nm(n.shape,1,a))},()=>n,t.training||!1):n})}};jx.className="GaussianDropout";re.registerClass(jx);var qx=class extends je{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Me(e).shape}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return D(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return Yc(()=>{let a=Me(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=rs(Xl(n),this.rate);o=qc(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,c=-l*i*this.rate;return a.mul(o).add(o.add(-1).mul(i)).mul(l).add(c)},()=>Me(e),t.training||!1)}return e})}};qx.className="AlphaDropout";re.registerClass(qx);function op(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=dk(e,t,n,a,r,s);else if(e.rank===3)i=hk(e,t,n,a,r,s);else if(e.rank===4)i=mk(e,t,n,a,r,s);else throw new $e(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function qW(e,t,n,a,r=.001){return D(()=>{let s=Eh(e,a),i=s.mean,o=s.variance;return[op(e,i,o,n,t,r),i,o]})}function KW(e,t,n,a,r=.001){return D(()=>{let s=Eh(e,a),i=s.mean,o=s.variance,l=[];for(let h of Fa(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let c=i.reshape(l),u=o.reshape(l),p=t==null?null:t.reshape(l),d=n==null?null:n.reshape(l);return[op(e,c,u,d,p,r),i,o]})}function XW(e,t,n,a,r=.001){return w.arraysEqual(a.slice().sort(),Fa(0,e.rank-1))?qW(e,t,n,a,r):KW(e,t,n,a,r)}var Kx=class extends je{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=vt(e.betaInitializer||"zeros"),this.gammaInitializer=vt(e.gammaInitializer||"ones"),this.movingMeanInitializer=vt(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=vt(e.movingVarianceInitializer||"ones"),this.betaConstraint=Vt(e.betaConstraint),this.gammaConstraint=Vt(e.gammaConstraint),this.betaRegularizer=wt(e.betaRegularizer),this.gammaRegularizer=wt(e.gammaRegularizer)}build(e){e=ct(e);let t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(n==null)throw new z(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new Xt({ndim:e.length,axes:{[t]:n}})];let a=[n];this.scale&&(this.gamma=this.addWeight("gamma",a,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",a,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",a,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",a,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return D(()=>{let n=t.training==null?!1:t.training,a=Me(e),r=a.shape,s=r.length,i=Fa(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=zi(1,s);l[o]=r[o];let c=i.slice();c.sort();let u=!w.arraysEqual(c,Fa(0,s).slice(0,s-1)),p=()=>{if(u){let g=this.movingMean.read().reshape(l),y=this.movingVariance.read().reshape(l),b=this.center?this.beta.read().reshape(l):null,x=this.scale?this.gamma.read().reshape(l):null;return op(a,g,y,b,x,this.epsilon)}else return op(a,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return p();let[d,h,m]=XW(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,y,b)=>{D(()=>{let x=1-b,v=g.read(),N=v.sub(y).mul(x);g.write(v.sub(N))})};return(()=>{f(this.movingMean,h,this.momentum),f(this.movingVariance,m,this.momentum)})(),d})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Ct(this.betaInitializer),gammaInitializer:Ct(this.gammaInitializer),movingMeanInitializer:Ct(this.movingMeanInitializer),movingVarianceInitializer:Ct(this.movingVarianceInitializer),betaRegularizer:pt(this.betaRegularizer),gammaRegularizer:pt(this.gammaRegularizer),betaConstraint:Wt(this.betaConstraint),gammaConstraint:Wt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Kx.className="BatchNormalization";re.registerClass(Kx);var Xx=class extends je{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=vt(e.betaInitializer||"zeros"),this.gammaInitializer=vt(e.gammaInitializer||"ones"),this.betaRegularizer=wt(e.betaRegularizer),this.gammaRegularizer=wt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=ct(e);let t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let r=0;r=t)throw new Error(`Invalid axis: ${r}`);if(this.axis.length!==os(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(r=>e[r]),a=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,a):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,a):this.beta=null,this.built=!0}call(e,t){let n=Me(e),a=n.shape,r=a.length;return D(()=>{let s=!0,{mean:i,variance:o}=Eh(n,this.axis,s),l=zi(1,r);for(let m of this.axis)l[m]=a[m];let c=m=>m!=null&&m.shape.length!==r&&this.axis!==[r-1]?m.reshape(l):m,u=c(this.gamma.read()),p=c(this.beta.read()),d=[],h=[];for(let m=0;m{if(e.rank!==4)throw new z(`temporalPadding expects input tensor to be 4-D, but received a ${e.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new z("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(n==null&&(n=_a()),n!=="channelsLast"&&n!=="channelsFirst")throw new z(`Unknown data format: ${n}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let a;return n==="channelsFirst"?a=[[0,0],[0,0],t[0],t[1]]:a=[[0,0],t[0],t[1],[0,0]],ta(e,a)})}var Yx=class extends je{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?_a():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new z(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,n;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],n=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new z(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new z(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);n=e.padding[1]}this.padding=[t,n]}this.inputSpec=[new Xt({ndim:4})]}computeOutputShape(e){e=ct(e);let t,n;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?n=e[3]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],e[1],t,n]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?n=e[2]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],t,n,e[3]])}call(e,t){return D(()=>YW(Me(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Yx.className="ZeroPadding2D";re.registerClass(Yx);function $m(e,t,n,a,r,s){return D(()=>{Dt(r),k1(s),na(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=_a()),s==null&&(s="max"),e=bx(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=At(e,t,n,o):i=Zn(e,t,n,o),r==="channelsFirst"&&(i=Ve(i,[0,3,1,2])),i})}function LI(e,t,n,a,r,s){return D(()=>{Dt(r),k1(s),na(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=_a()),s==null&&(s="max"),e=$I(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=ib(e,t,n,o):i=jy(e,t,n,o),r==="channelsFirst"&&(i=Ve(i,[0,4,1,2,3])),i})}var zI=class extends je{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new z(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(Kt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new z(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,na(this.padding),this.inputSpec=[new Xt({ndim:3})]}computeOutputShape(e){e=ct(e);let t=Da(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return D(()=>{this.invokeCallHook(e,t),e=Kc(Me(e),2);let n=this.poolingFunction(Me(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return ss(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},Jx=class extends zI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),na(a),$m(e,t,n,a,r,"max")}};Jx.className="MaxPooling1D";re.registerClass(Jx);var Qx=class extends zI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),na(a),$m(e,t,n,a,r,"avg")}};Qx.className="AveragePooling1D";re.registerClass(Qx);var BI=class extends je{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new z(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];Kt(this.poolSize,"poolSize"),Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),na(this.padding),this.inputSpec=[new Xt({ndim:4})]}computeOutputShape(e){e=ct(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Da(t,this.poolSize[0],this.padding,this.strides[0]),n=Da(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return D(()=>(this.invokeCallHook(e,t),this.poolingFunction(Me(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},Zx=class extends BI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),na(a),$m(e,t,n,a,r,"max")}};Zx.className="MaxPooling2D";re.registerClass(Zx);var ev=class extends BI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),na(a),$m(e,t,n,a,r,"avg")}};ev.className="AveragePooling2D";re.registerClass(ev);var WI=class extends je{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new z(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];Kt(this.poolSize,"poolSize"),Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),na(this.padding),this.inputSpec=[new Xt({ndim:5})]}computeOutputShape(e){e=ct(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=Da(t,this.poolSize[0],this.padding,this.strides[0]),n=Da(n,this.poolSize[1],this.padding,this.strides[1]),a=Da(a,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n,a]:[e[0],t,n,a,e[4]]}call(e,t){return D(()=>(this.invokeCallHook(e,t),this.poolingFunction(Me(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},tv=class extends WI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),na(a),LI(e,t,n,a,r,"max")}};tv.className="MaxPooling3D";re.registerClass(tv);var nv=class extends WI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),na(a),LI(e,t,n,a,r,"avg")}};nv.className="AveragePooling3D";re.registerClass(nv);var VI=class extends je{constructor(e){super(e);this.inputSpec=[new Xt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new $e}},av=class extends VI{constructor(e){super(e||{})}call(e,t){return D(()=>{let n=Me(e);return St(n,1)})}};av.className="GlobalAveragePooling1D";re.registerClass(av);var rv=class extends VI{constructor(e){super(e||{})}call(e,t){return D(()=>{let n=Me(e);return ea(n,1)})}};rv.className="GlobalMaxPooling1D";re.registerClass(rv);var UI=class extends je{constructor(e){super(e);this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),this.inputSpec=[new Xt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new $e}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},sv=class extends UI{call(e,t){return D(()=>{let n=Me(e);return this.dataFormat==="channelsLast"?St(n,[1,2]):St(n,[2,3])})}};sv.className="GlobalAveragePooling2D";re.registerClass(sv);var iv=class extends UI{call(e,t){return D(()=>{let n=Me(e);return this.dataFormat==="channelsLast"?ea(n,[1,2]):ea(n,[2,3])})}};iv.className="GlobalMaxPooling2D";re.registerClass(iv);var GI=class extends je{constructor(e){super(e);this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){let e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){let a=t.layer,r=$a(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},ov=class extends GI{constructor(e){super(e);this.supportsMasking=!0}build(e){if(e=ct(e),e.length<3)throw new z(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];let t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=ct(e);let t=[e[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),a=e[1];return[n[0],a].concat(n.slice(1))}call(e,t){return D(()=>(e=Me(e),PI((n,a)=>[Me(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};ov.className="TimeDistributed";re.registerClass(ov);function JW(e){Wi(uz,"BidirectionalMergeMode",e)}var QW="concat",lv=class extends GI{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=$a(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=$a(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?QW:e.mergeMode,JW(this.mergeMode),e.weights)throw new $e("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){let t=e.length,n=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,n)),this.backwardLayer.setWeights(e.slice(n))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let n,a,r;return this.returnState&&(r=t.slice(1)),n=t[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,a=[n]):this.mergeMode==null?a=[n,n.slice()]:a=[n],this.returnState?this.mergeMode==null?a.concat(r).concat(r.slice()):[n].concat(r).concat(r.slice()):_n(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=MI(e,n,a,this.numConstants);if(e=r.inputs,n=r.initialState,a=r.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(n==null||n.length===0)&&a==null)return super.apply(e,t);let s=[],i=[];if(n!=null){let l=n.length;if(l%2>0)throw new z("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=n,s.push(...n);let c=n.map(u=>new Xt({shape:u.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),i.push(...c)}if(a!=null)throw new $e("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof Aa;for(let l of s)if(l instanceof Aa!==o)throw new z("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){let l=[e].concat(s),c=this.inputSpec.concat(i),u=this.inputSpec;this.inputSpec=c;let p=super.apply(l,t);return this.inputSpec=u,p}else return super.apply(e,t)}call(e,t){return D(()=>{let n=t.initialState,a,r;if(n==null)a=this.forwardLayer.call(e,t),r=this.backwardLayer.call(e,t);else{let o=n.slice(0,n.length/2),l=n.slice(n.length/2);a=this.forwardLayer.call(e,Object.assign(t,{initialState:o})),r=this.backwardLayer.call(e,Object.assign(t,{initialState:l}))}let s;this.returnState&&(Array.isArray(a)&&(s=a.slice(1).concat(r.slice(1))),a=a[0],r=r[0]),this.returnSequences&&(r=Ln(r,1));let i;return this.mergeMode==="concat"?i=Pb([a,r]):this.mergeMode==="sum"?i=J(a,r):this.mergeMode==="ave"?i=L(.5,J(a,r)):this.mergeMode==="mul"?i=L(a,r):this.mergeMode==null&&(i=[a,r]),this.returnState?this.mergeMode==null?i.concat(s):[i].concat(s):i})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Vi(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Vi(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[t,t]:n=t:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let a=this.forwardLayer.states.map(r=>null);return Array.isArray(n)?n.concat(a).concat(a):[n].concat(a).concat(a)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){let e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){let n=$a(t.layer);if(delete t.layer,t.numConstants!=null)throw new $e("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};lv.className="Bidirectional";re.registerClass(lv);function Nz(e){return new nu(e)}function Sz(e){return new fx(e)}function Cz(e){return new dx(e)}function _z(e){return new hx(e)}function Ez(e){return new mx(e)}function Fz(e){return new yx(e)}function Az(e){return new gx(e)}function $z(e){return new Sm(e)}function Dz(e){return new rp(e)}function Rz(e){return new vx(e)}function Mz(e){return new Nm(e)}function Pz(e){return new wx(e)}function Oz(e){return new kx(e)}function Lz(e){return new Ix(e)}function zz(e){return new Tx(e)}function Bz(e){return new $x(e)}function Wz(e){return new Fx(e)}function Vz(e){return new Am(e)}function Uz(e){return new Ex(e)}function Gz(e){return new Ax(e)}function Hz(e){return new Dx(e)}function jz(e){return new Rx(e)}function qz(e){return new Mx(e)}function Kz(e){return new Ox(e)}function Xz(e){return new Lx(e)}function Yz(e){return new Bx(e)}function Jz(e){return new Ux(e)}function Qz(e){return new Wx(e)}function Zz(e){return new Vx(e)}function eB(e){return new zx(e)}function tB(e){return new Gx(e)}function nB(e){return new Kx(e)}function aB(e){return new Xx(e)}function rB(e){return new Yx(e)}function Hb(e){return new Qx(e)}function sB(e){return Hb(e)}function iB(e){return Hb(e)}function jb(e){return new ev(e)}function oB(e){return jb(e)}function lB(e){return jb(e)}function qb(e){return new nv(e)}function uB(e){return qb(e)}function cB(e){return qb(e)}function pB(e){return new av(e)}function dB(e){return new sv(e)}function M1(e){return new rv(e)}function P1(e){return new iv(e)}function O1(e){return new Jx(e)}function L1(e){return new Zx(e)}function hB(e){return new tv(e)}function mB(e){return new Sx(e)}function fB(e){return new Em(e)}function gB(e){return new Cx(e)}function yB(e){return new sp(e)}function bB(e){return new Nx(e)}function xB(e){return new _m(e)}function vB(e){return new _x(e)}function wB(e){return new Fm(e)}function kB(e){return new nr(e)}function IB(e){return new Cm(e)}function TB(e){return new lv(e)}function NB(e){return new ov(e)}var SB=M1,CB=P1,_B=O1,EB=L1;function FB(e){return new Hx(e)}function AB(e){return new jx(e)}function $B(e){return new qx(e)}function DB(e){return new Px(e)}var HI={};Oe(HI,{MAPE:()=>u4,MSE:()=>d4,binaryAccuracy:()=>ZW,binaryCrossentropy:()=>e4,categoricalAccuracy:()=>n4,categoricalCrossentropy:()=>a4,cosineProximity:()=>i4,mape:()=>c4,meanAbsoluteError:()=>o4,meanAbsolutePercentageError:()=>l4,meanSquaredError:()=>p4,mse:()=>h4,precision:()=>r4,recall:()=>s4,sparseCategoricalAccuracy:()=>t4});function ZW(e,t){return Zb(e,t)}function e4(e,t){return Z1(e,t)}function t4(e,t){return eI(e,t)}function n4(e,t){return ex(e,t)}function a4(e,t){return tx(e,t)}function r4(e,t){return Q1(e,t)}function s4(e,t){return QB(e,t)}function i4(e,t){return Jb(e,t)}function o4(e,t){return gm(e,t)}function l4(e,t){return ru(e,t)}function u4(e,t){return ru(e,t)}function c4(e,t){return ru(e,t)}function p4(e,t){return Gi(e,t)}function d4(e,t){return Gi(e,t)}function h4(e,t){return Gi(e,t)}var jI={};Oe(jI,{modelFromJSON:()=>$W});var qI={};Oe(qI,{l1:()=>f4,l1l2:()=>m4,l2:()=>g4});function m4(e){return new np(e)}function f4(e){return BW(e)}function g4(e){return WW(e)}var KI=class extends au{constructor(){super(...arguments);this.model=null}setModel(e){if(!(e instanceof Tr))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function Dm(e,t){return et}var YI=class extends KI{constructor(e){super();if(e==null&&(e={}),e.restoreBestWeights)throw new $e("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(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=Dm:this.mode==="max"?this.monitorFunc=XI:this.monitor.indexOf("acc")!==-1?this.monitorFunc=XI:this.monitorFunc=Dm,this.monitorFunc===Dm&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Dm?Infinity:-Infinity}async onEpochEnd(e,t){await cs(t);let n=this.getMonitorValue(t);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0)))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){e==null&&(e={});let t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}};function y4(e){return new YI(e)}var b4={earlyStopping:y4},Ra;(function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(Ra||(Ra={}));var JI;(function(e){let t;(function(n){n[n.LEGACY=0]="LEGACY",n[n.V1=1]="V1",n[n.V2=2]="V2"})(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))})(JI||(JI={}));var uv={};function x4(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};uv[e]=n}function QI(e){return uv[e]}function v4(e){delete uv[e]}function k(e,t,n,a,r){let s=t.inputParams[e];if(s&&s.inputIndexStart!==void 0){let o=s.inputIndexStart,l=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?o+1:s.inputIndexEnd;if(s.type==="tensor")return Fn(t.inputNames[s.inputIndexStart],n,a,r);if(s.type==="tensors")return t.inputNames.slice(o,l).map(p=>Fn(p,n,a,r));let c=Fn(t.inputNames.slice(o)[0],n,a,r),u=c.dataSync();return s.type==="number"?u[0]:w.toNestedArray(c.shape,u)}let i=t.attrParams[e];return i&&i.value}function Fn(e,t,n,a){let[r,s]=Wn(e);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[Rm(r,o)]);return i!==void 0?t[Rm(r,i)][s]:void 0}function w4(e,t,n){return t[Rm(e,n.currentContextId)]}function Nr(e,t){let[n,a]=Wn(e);return[Rm(n,t&&t.currentContextId),a]}function Rm(e,t){return t?`${e}-${t}`:e}function Wn(e){let t=e.split(":");return t.length===1?[e,0]:[t[0],Number(t[t.length-1])]}function Mm(e,t,n){let a=k("pad",e,t,n);if(a==="explicit"){a=k("explicitPaddings",e,t,n);let r=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)r[s][0]=a[s*2],r[s][1]=a[s*2+1];return r}return a}function Sr(e){return e.kept?e:Zr(e)}var ZI={};Oe(ZI,{json:()=>k4});var k4=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],eT={};Oe(eT,{json:()=>I4});var I4=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],tT={};Oe(tT,{json:()=>T4});var T4=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}],nT={};Oe(nT,{json:()=>N4});var N4=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],aT={};Oe(aT,{json:()=>S4});var S4=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],rT={};Oe(rT,{json:()=>C4});var C4=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],sT={};Oe(sT,{json:()=>_4});var _4=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],iT={};Oe(iT,{json:()=>E4});var E4=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],oT={};Oe(oT,{json:()=>F4});var F4=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]}],lT={};Oe(lT,{json:()=>A4});var A4=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}],uT={};Oe(uT,{json:()=>$4});var $4=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],cT={};Oe(cT,{json:()=>D4});var D4=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],pT={};Oe(pT,{json:()=>R4});var R4=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],dT={};Oe(dT,{json:()=>M4});var M4=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],hT={};Oe(hT,{json:()=>P4});var P4=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],mT={};Oe(mT,{json:()=>O4});var O4=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],fT={};Oe(fT,{json:()=>L4});var L4=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}],yT=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[ZI,eT,tT,nT,aT,rT,sT,uT,lT,iT,cT,pT,dT,hT,mT,fT,oT],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}transformGraph(e,t={}){let n=e.node,a=[],r=[],s=[],i=n.reduce((m,f)=>(m[f.name]=this.mapNode(f),f.op.startsWith("Placeholder")?a.push(m[f.name]):f.op==="Const"?r.push(m[f.name]):(f.input==null||f.input.length===0)&&s.push(m[f.name]),m),{}),o=[],l=[],c={},u={};t!=null&&(c=this.mapSignatureEntries(t.inputs),u=this.mapSignatureEntries(t.outputs));let p=Object.keys(i);p.forEach(m=>{let f=i[m];f.inputNames.forEach(g=>{let[y]=Nr(g);f.inputs.push(i[y]),i[y].children.push(f)})}),Object.keys(u).length===0?p.forEach(m=>{let f=i[m];f.children.length===0&&l.push(f)}):Object.keys(u).forEach(m=>{let[f]=Nr(m),g=i[f];g!=null&&(g.signatureKey=u[m],l.push(g))}),Object.keys(c).length>0?Object.keys(c).forEach(m=>{let[f]=Nr(m),g=i[f];g&&(g.signatureKey=c[m],o.push(g))}):o=a;let d={};e.library!=null&&e.library.function!=null&&(d=e.library.function.reduce((m,f)=>(m[f.signature.name]=this.mapFunction(f),m),{}));let h={nodes:i,inputs:o,outputs:l,weights:r,placeholders:a,signature:t,functions:d};return s.length>0&&(h.initNodes=s),h}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,n)=>(t[e[n].name]=n,t),{})}mapNode(e){let t=QI(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});let n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(a=>a.startsWith("^")?a.substr(1):a),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return t.inputs!=null&&(n.inputParams=t.inputs.reduce((a,r)=>(a[r.name]={type:r.type,inputIndexStart:r.start,inputIndexEnd:r.end},a),{})),t.attrs!=null&&(n.attrParams=t.attrs.reduce((a,r)=>{let s=r.type,i;switch(r.type){case"string":i=cv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=cv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=bv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=bv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=dv(e.attr,r.tfName,r.defaultValue||0),i===void 0&&!!r.tfDeprecatedName&&(i=dv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=yv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=yv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=pv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=pv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=vv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=vv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=gv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=gv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=xv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=xv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=mv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=mv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=fv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=fv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=gT(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=gT(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${r.type} for op: ${e.op}`)}return a[r.name]={value:i,type:s},a},{})),n}mapFunction(e){let t=e.nodeDef,n=[],a=[],r={};t!=null&&(r=t.reduce((c,u)=>(c[u.name]=this.mapNode(u),u.op==="Const"&&a.push(c[u.name]),c),{}));let s=[],i=[];e.signature.inputArg.forEach(c=>{let[u]=Nr(c.name),p={name:u,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:hv(c.type),type:"dtype"}},children:[]};p.signatureKey=c.name,s.push(p),r[u]=p}),Object.keys(r).forEach(c=>{let u=r[c];u.inputNames.forEach(p=>{let[d]=Nr(p);u.inputs.push(r[d]),r[d].children.push(u)})});let o=e.ret;e.signature.outputArg.forEach(c=>{let[u,p]=Nr(o[c.name]),d=r[u];d!=null&&(d.defaultOutput=p,i.push(d))});let l=this.mapArgsToSignature(e);return{nodes:r,inputs:s,outputs:i,weights:a,placeholders:n,signature:l}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n),t),{}),outputs:e.signature.outputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t),{})}}mapArgToTensorInfo(e,t){let n=e.name;return t!=null&&(n=t[n]),{name:n,dtype:e.type}}};function z4(e){let t=ee().global;if(typeof t.atob!="undefined")return t.atob(e);if(typeof Buffer!="undefined")return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function bT(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):z4(e);return t?n:n.toLowerCase()}function cv(e,t,n,a=!1){let r=e[t];return r!=null?bT(r.s,a):n}function pv(e,t,n){let a=e[t];return a?a.b:n}function dv(e,t,n){let a=e[t]||{},r=a.i!=null?a.i:a.f!=null?a.f:n;return typeof r=="number"?r:parseInt(r,10)}function hv(e){switch(typeof e=="string"&&(e=Ra[e]),e){case Ra.DT_FLOAT:return"float32";case Ra.DT_INT32:case Ra.DT_INT64:case Ra.DT_INT8:case Ra.DT_UINT8:return"int32";case Ra.DT_BOOL:return"bool";case Ra.DT_DOUBLE:return"float32";case Ra.DT_STRING:return"string";default:return null}}function gT(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function mv(e,t,n){let a=e[t];return a&&a.type?hv(a.type):n}function fv(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>hv(r)):n}function xT(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function gv(e,t,n){let a=e[t];return a&&a.shape?xT(a.shape):n}function yv(e,t,n){let a=e[t];return a?((a.list.f&&a.list.f.length?a.list.f:a.list.i)||[]).map(r=>typeof r=="number"?r:parseInt(r,10)):n}function bv(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>bT(s,a)):n}function xv(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>xT(r)):n}function vv(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var B4=class{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(a=>this.getInput(a)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((a,r)=>(a[r]=this.getAttr(r),a),{}))}getInput(e){return Fn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return Fn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return dv(this.node.rawAttrs,e,t);if(n.s!=null)return cv(this.node.rawAttrs,e,t);if(n.b!=null)return pv(this.node.rawAttrs,e,t);if(n.shape!=null)return gv(this.node.rawAttrs,e,t);if(n.type!=null)return mv(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return yv(this.node.rawAttrs,e,t);if(n.list.s!=null)return bv(this.node.rawAttrs,e,t);if(n.list.shape!=null)return xv(this.node.rawAttrs,e,t);if(n.list.b!=null)return vv(this.node.rawAttrs,e,t);if(n.list.type!=null)return fv(this.node.rawAttrs,e,t)}return t}},W4=(e,t,n)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[J(k("a",e,t,n),k("b",e,t,n))];case"AddN":return[lk(k("tensors",e,t,n))];case"FloorMod":case"Mod":return[lb(k("a",e,t,n),k("b",e,t,n))];case"Mul":return[L(k("a",e,t,n),k("b",e,t,n))];case"RealDiv":case"Div":return[xe(k("a",e,t,n),k("b",e,t,n))];case"DivNoNan":return[Qy(k("a",e,t,n),k("b",e,t,n))];case"FloorDiv":return[gh(k("a",e,t,n),k("b",e,t,n))];case"Sub":return[me(k("a",e,t,n),k("b",e,t,n))];case"Minimum":return[Kl(k("a",e,t,n),k("b",e,t,n))];case"Maximum":return[Xa(k("a",e,t,n),k("b",e,t,n))];case"Pow":return[xr(k("a",e,t,n),k("b",e,t,n))];case"SquaredDifference":return[zh(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},V4=(e,t,n)=>{switch(e.op){case"Abs":case"ComplexAbs":return[Lt(k("x",e,t,n))];case"Acos":return[Py(k("x",e,t,n))];case"Acosh":return[Oy(k("x",e,t,n))];case"Asin":return[zy(k("x",e,t,n))];case"Asinh":return[By(k("x",e,t,n))];case"Atan":return[Wy(k("x",e,t,n))];case"Atan2":return[Vy(k("x",e,t,n),k("y",e,t,n))];case"Atanh":return[Uy(k("x",e,t,n))];case"Ceil":return[qy(k("x",e,t,n))];case"Complex":return[Yr(k("real",e,t,n),k("imag",e,t,n))];case"Cos":return[Rc(k("x",e,t,n))];case"Cosh":return[wh(k("x",e,t,n))];case"Elu":return[Gl(k("x",e,t,n))];case"Erf":return[Zy(k("x",e,t,n))];case"Exp":return[hn(k("x",e,t,n))];case"Expm1":return[eb(k("x",e,t,n))];case"Floor":return[Hl(k("x",e,t,n))];case"Log":return[Pn(k("x",e,t,n))];case"Log1p":return[Nh(k("x",e,t,n))];case"Imag":return[Ih(k("x",e,t,n))];case"Neg":return[Nt(k("x",e,t,n))];case"Reciprocal":return[pb(k("x",e,t,n))];case"Real":return[zc(k("x",e,t,n))];case"Relu":return[qe(k("x",e,t,n))];case"Round":return[db(k("x",e,t,n))];case"Selu":return[Rh(k("x",e,t,n))];case"Sigmoid":return[da(k("x",e,t,n))];case"Sin":return[Mh(k("x",e,t,n))];case"Sign":return[hb(k("x",e,t,n))];case"Sinh":return[Ph(k("x",e,t,n))];case"Softplus":return[jl(k("x",e,t,n))];case"Sqrt":return[an(k("x",e,t,n))];case"Square":return[lt(k("x",e,t,n))];case"Tanh":return[Ul(k("x",e,t,n))];case"Tan":return[gb(k("x",e,t,n))];case"ClipByValue":return[qt(k("x",e,t,n),k("clipValueMin",e,t,n),k("clipValueMax",e,t,n))];case"Relu6":return[$h(k("x",e,t,n))];case"Rsqrt":return[Dh(Fn(e.inputNames[0],t,n))];case"Prod":return[Fh(k("x",e,t,n),k("axes",e,t,n))];case"LeakyRelu":return[Mc(k("x",e,t,n),k("alpha",e,t,n))];case"Prelu":return[Lc(k("x",e,t,n),k("alpha",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function ba(e,t,n=""){if(!(typeof e=="number"||typeof t=="number")){w.assert(e.length===t.length,()=>n+` Shapes ${e} and ${t} must match`);for(let a=0;an+` Shapes ${e} and ${t} must match`)}}}function vT(e){return!(typeof e=="number"||e.some(t=>t<0))}function lp(e,t,n){let a=wv(e,n),r=!vT(a);if(r&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${a}`);if(r&&t.forEach(s=>{a=wv(s.shape,a)}),!vT(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function wv(e,t){if(typeof e=="number")return t;if(typeof t=="number")return e;if(e.length!==t.length)throw new Error(`Incompatible ranks during merge: ${e} vs. ${t}`);let n=[];for(let a=0;a=0&&s>=0&&r!==s)throw new Error(`Incompatible shape during merge: ${e} vs. ${t}`);n[a]=r>=0?r:s}return n}var U4=class{constructor(e,t,n,a,r,s,i){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=a,this.identicalElementShapes=r,this.dynamicSize=s,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=pe(0),jt(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.tensor.id))&&t.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);let t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(t=>this.read(t))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, - because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),ba(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);n.tensor=t,jt(t),n.written=!0,this.tensors[e]=n}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach((n,a)=>this.write(n,t[a]))}gather(e,t){if(!!t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let a=0;a=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(e,ut(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let n=0,a=e.map(o=>(n+=o,n));if(n!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to +2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){let u={};for(let h of Object.keys(fa))u[h]=fa[h];for(let h of Object.keys(n))u[h]=n[h];let c=s.config;c.customObjects=u;let p=Object.assign({},fa);for(let h of Object.keys(n))fa[h]=n[h];Cb(s.config);let d=l(o,s.config,n,r);return fa=Object.assign({},p),d}else{let u=Object.assign({},fa);for(let p of Object.keys(n))fa[p]=n[p];let c=new o(s.config);return fa=Object.assign({},u),c}}}function hz(e,t){return et?1:0}function em(e,t){return-1*hz(e,t)}function os(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function mz(e){if(e==null)throw new V(`Invalid value in obj: ${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function Bi(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new V(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function Ab(e,t,n=0,a=Infinity){return Za(n>=0),Za(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function Kt(e,t){Array.isArray(e)?(I.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>Kt(n,`element ${a+1} of ${t}`))):I.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${wk(e)}.`)}function wk(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>wk(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function fz(e,t){let n=I.now(),a;return(...r)=>{let s=I.now();return s-nrn(Se(B(e,e),t,!0)))}var jc=class extends re.Serializable{getConfig(){return{}}},_b=class extends jc{constructor(e){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return M(()=>{let t=Fb(e,this.axis),n=Xt(t,0,this.maxValue);return B(e,xe(n,J(Bt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};_b.className="MaxNorm";re.registerClass(_b);var Eb=class extends jc{constructor(e){super();this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return M(()=>xe(e,J(Bt(),Fb(e,this.axis))))}getConfig(){return{axis:this.axis}}};Eb.className="UnitNorm";re.registerClass(Eb);var $b=class extends jc{apply(e){return qe(e)}};$b.className="NonNeg";re.registerClass($b);var Db=class extends jc{constructor(e){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return M(()=>{let t=Fb(e,this.axis),n=J(B(this.rate,Xt(t,this.minValue,this.maxValue)),B(1-this.rate,t));return B(e,xe(n,J(Bt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Db.className="MinMaxNorm";re.registerClass(Db);var Ik={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Vt(e){return Sb(e)}function Nk(e,t={}){return Hc(e,re.SerializationMap.getMap().classNameMap,t,"constraint")}function Ut(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in Ik?Ik[e]:e,config:{}};return Nk(t)}else return e instanceof jc?e:Nk(e)}function uz(e){return new _b(e)}function cz(e){return new Eb(e)}function pz(){return new $b}function dz(e){return new Db(e)}var Tk={};Oe(Tk,{constant:()=>bz,glorotNormal:()=>Tz,glorotUniform:()=>Nz,heNormal:()=>Sz,heUniform:()=>Cz,identity:()=>kz,leCunNormal:()=>Az,leCunUniform:()=>Fz,ones:()=>yz,orthogonal:()=>_z,randomNormal:()=>vz,randomUniform:()=>xz,truncatedNormal:()=>wz,varianceScaling:()=>Iz,zeros:()=>gz});var Ez=["channelsFirst","channelsLast"],$z=["nearest","bilinear"],Dz=["valid","same","causal"],Mz=["max","avg"],Rz=["sum","mul","concat","ave"],eu=new Map;function Mt(e){Bi(Ez,"DataFormat",e)}function Pz(e){Bi($z,"InterpolationFormat",e)}function na(e){Bi(Dz,"PaddingMode",e)}function Sk(e){Bi(Mz,"PoolMode",e)}var qc=[],Ck="/";function Vi(e,t){qc.push(e);try{let n=t();return qc.pop(),n}catch(n){throw qc.pop(),n}}function Oz(){return qc.length===0?"":qc.join(Ck)+Ck}function Fk(e){if(!Ak(e))throw new Error("Not a valid tensor name: '"+e+"'");return Oz()+e}function _k(e){if(!Ak(e))throw new Error("Not a valid tensor name: '"+e+"'");eu.has(e)||eu.set(e,0);let t=eu.get(e);if(eu.set(e,eu.get(e)+1),t>0){let n=`${e}_${t}`;return eu.set(n,1),n}else return e}var Lz=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function Ak(e){return!!e.match(Lz)}function zz(e){return e===parseInt(e.toString(),10)}function ls(e,t,n){t==null&&(t=0),n==null&&(n=e.length);let a=1;for(let r=t;r{if(e.shape.length!==2)throw new V(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=Kc(e,1);return Mb(n,[1,t,1])})}function Bz(e){let t=[ls(e.shape)];return e.reshape(t)}function Vz(e){if(e.rank<=1)throw new V(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],ls(e.shape,1)];return e.reshape(t)}function Ui(e,t,n){return M(()=>{switch(e.rank){case 1:return Oh(e,t,n);case 2:return mb(e,[t,0],[n,e.shape[1]]);case 3:return Yl(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Bc(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Be(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Be(e,[t,0,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new V(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Rb(e,t,n){return M(()=>{switch(e.rank){case 1:return Oh(e,t,n);case 2:return mb(e,[0,t],[e.shape[0],n]);case 3:return Yl(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return Bc(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new V(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function tm(e,t,n,a){return M(()=>{switch(e.rank){case 1:return Oh(e,t,n);case 2:switch(a){case 1:return Ui(e,t,n);case 2:return Rb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}case 3:switch(a){case 1:return Ui(e,t,n);case 2:return Yl(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return Rb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}case 4:switch(a){case 1:return Ui(e,t,n);case 2:return Bc(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return Bc(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return Rb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}default:throw new V(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Pb(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),Je(e,t)}function $k(e,t){switch(e.rank){case 1:return v1([e,t]);case 2:return w1([e,t],0);case 3:return k1([e,t],0);case 4:return I1([e,t],0);default:throw new V(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Mb(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new V(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return qa(e,t)}function nm(e,t=0,n=1,a,r){return W1(e,t,n,a,r)}function er(e,t,n,a){if(e.rank<2||t.rank<2)throw new $e(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){let r=e.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(r!==s)throw new $e(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`)}if(e.rank===2&&t.rank===2){let r=!1,s=!1;return is.matMul({a:e,b:t,transposeA:r,transposeB:s,bias:a?Ob(e.rank,a,Fa()):null,activation:n})}else{let r=e.shape.slice(),s=r.pop();e=e.reshape([-1,s]);let i=t.shape.slice(),o=i.pop(),l=i.pop(),u=[...i,o],c=Array.from({length:t.rank},(m,f)=>f===0?t.rank-2:f<=t.rank-2?f-1:f);t=t.transpose(c).reshape([l,-1]);let p=[...r,...u],d=!1,h=!1;return is.matMul({a:e,b:t,transposeA:d,transposeB:h,bias:a?Ob(e.rank,a,Fa()):null,activation:n}).reshape(p)}}function Dk(e,t,n){return M(()=>(Array.isArray(t)?t=Ze(t,"int32"):t=t.toInt(),$i(e,t,n)))}function Yc(e){return B(e,e)}function Ob(e,t,n){let a=t.shape;if(t.rank!==1&&t.rank!==e)throw new V(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1,1,1]):t.reshape([1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,1,1,a[0]]):t.reshape([1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1,1]):t.reshape([1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,1,a[0]]):t.reshape([1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1]):t.reshape([1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,a[0]]):t.reshape([1].concat(a))}else if(e<3)return t;throw new V(`Unsupported input rank by biasAdd: ${t.rank}`)}function tr(e,t,n){return M(()=>(n==null&&(n=Fa()),Mt(n),e.add(Ob(e.rank,t,n))))}function Uz(e,t=1){if(t!==1)throw new $e(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Gl(e)}function Gz(e){return M(()=>xe(e,zt(e).add(1)))}function Mk(e,t,n,a){return M(()=>q1(e,t,n,a))}function Hz(e){return M(()=>{let t=J(.5,B(.2,e));return Xt(t,0,1)})}function Jc(e,t,n=!1){return n?e():t()}var jz=["fanIn","fanOut","fanAvg"],qz=["normal","uniform","truncatedNormal"];function Xz(e){Bi(jz,"FanMode",e)}function Kz(e){Bi(qz,"Distribution",e)}var ga=class extends re.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Lb=class extends ga{apply(e,t){return vt(e,t)}};Lb.className="Zeros";re.registerClass(Lb);var am=class extends ga{apply(e,t){return Ya(e,t)}};am.className="Ones";re.registerClass(am);var zb=class extends ga{constructor(e){super();if(typeof e!="object")throw new V(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new V(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return M(()=>B(ce(this.value),Ya(e,t)))}getConfig(){return{value:this.value}}};zb.className="Constant";re.registerClass(zb);var Wb=class extends ga{constructor(e){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return Kl(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Wb.className="RandomUniform";re.registerClass(Wb);var Bb=class extends ga{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`randomNormal does not support dType ${t}.`);return nm(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Bb.className="RandomNormal";re.registerClass(Bb);var Vb=class extends ga{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`truncatedNormal does not support dType ${t}.`);return Wh(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Vb.className="TruncatedNormal";re.registerClass(Vb);var Ub=class extends ga{constructor(e){super();this.gain=e.gain!=null?e.gain:1}apply(e,t){return M(()=>{if(e.length!==2||e[0]!==e[1])throw new V("Identity matrix initializer can only be used for 2D square matrices.");return B(this.gain,tb(e[0]))})}getConfig(){return{gain:this.gain}}};Ub.className="Identity";re.registerClass(Ub);function Yz(e,t="channelsLast"){let n,a;if(Mt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=ls(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=ls(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=ls(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var Fn=class extends ga{constructor(e){super();if(e.scale<0)throw new V(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,Xz(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,Kz(this.distribution),this.seed=e.seed}apply(e,t){let n=Yz(e),a=n[0],r=n[1],s=this.scale;if(this.mode==="fanIn"?s/=Math.max(1,a):this.mode==="fanOut"?s/=Math.max(1,r):s/=Math.max(1,(a+r)/2),this.distribution==="normal"){let i=Math.sqrt(s);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`${this.getClassName()} does not support dType ${t}.`);return Wh(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Kl(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Fn.className="VarianceScaling";re.registerClass(Fn);var rm=class extends Fn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Fn.className}};rm.className="GlorotUniform";re.registerClass(rm);var sm=class extends Fn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Fn.className}};sm.className="GlorotNormal";re.registerClass(sm);var im=class extends Fn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Fn.className}};im.className="HeNormal";re.registerClass(im);var om=class extends Fn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Fn.className}};om.className="HeUniform";re.registerClass(om);var lm=class extends Fn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Fn.className}};lm.className="LeCunNormal";re.registerClass(lm);var um=class extends Fn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Fn.className}};um.className="LeCunNormal";re.registerClass(um);var Gb=class extends ga{constructor(e){super();if(this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new $e("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return M(()=>{if(e.length<2)throw new $e("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);let n=e[0]>e[1]?[e[1],e[0]]:e,a=nm(n,0,1,"float32"),r=ik.gramSchmidt(a);return e[0]>e[1]&&(r=r.transpose()),B(this.gain,r)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Gb.className="Orthogonal";re.registerClass(Gb);var Rk={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function Pk(e,t={}){return Hc(e,re.SerializationMap.getMap().classNameMap,t,"initializer")}function At(e){return Sb(e)}function wt(e){if(typeof e=="string"){let t=e in Rk?Rk[e]:e;if(t==="GlorotNormal")return new sm;if(t==="GlorotUniform")return new rm;if(t==="HeNormal")return new im;if(t==="HeUniform")return new om;if(t==="LeCunNormal")return new lm;if(t==="LeCunUniform")return new um;{let n={};return n.className=t,n.config={},Pk(n)}}else return e instanceof ga?e:Pk(e)}function gz(){return new Lb}function yz(){return new am}function bz(e){return new zb(e)}function xz(e){return new Wb(e)}function vz(e){return new Bb(e)}function wz(e){return new Vb(e)}function kz(e){return new Ub(e)}function Iz(e){return new Fn(e)}function Nz(e){return new rm(e)}function Tz(e){return new sm(e)}function Sz(e){return new im(e)}function Cz(e){return new om(e)}function Az(e){return new lm(e)}function Fz(e){return new um(e)}function _z(e){return new Gb(e)}var Ok={};Oe(Ok,{Layer:()=>je,RNN:()=>nr,RNNCell:()=>Qc,activation:()=>dW,add:()=>wW,alphaDropout:()=>rB,average:()=>kW,averagePooling1d:()=>Hb,averagePooling2d:()=>jb,averagePooling3d:()=>qb,avgPool1d:()=>EW,avgPool2d:()=>DW,avgPool3d:()=>RW,avgPooling1d:()=>$W,avgPooling2d:()=>MW,avgPooling3d:()=>PW,batchNormalization:()=>AW,bidirectional:()=>YW,concatenate:()=>IW,conv1d:()=>rW,conv2d:()=>sW,conv2dTranspose:()=>iW,conv3d:()=>oW,convLstm2d:()=>jW,convLstm2dCell:()=>qW,cropping2D:()=>uW,dense:()=>hW,depthwiseConv2d:()=>pW,dot:()=>CW,dropout:()=>mW,elu:()=>Qz,embedding:()=>vW,flatten:()=>gW,gaussianDropout:()=>aB,gaussianNoise:()=>nB,globalAveragePooling1d:()=>OW,globalAveragePooling2d:()=>LW,globalMaxPool1d:()=>QW,globalMaxPool2d:()=>ZW,globalMaxPooling1d:()=>zk,globalMaxPooling2d:()=>Wk,gru:()=>WW,gruCell:()=>BW,input:()=>Lk,inputLayer:()=>Jz,layerNormalization:()=>FW,leakyReLU:()=>eW,lstm:()=>VW,lstmCell:()=>UW,masking:()=>sB,maxPool1d:()=>eB,maxPool2d:()=>tB,maxPooling1d:()=>Bk,maxPooling2d:()=>Vk,maxPooling3d:()=>zW,maximum:()=>NW,minimum:()=>TW,multiply:()=>SW,permute:()=>xW,prelu:()=>tW,reLU:()=>Zz,repeatVector:()=>yW,reshape:()=>bW,rnn:()=>XW,separableConv2d:()=>lW,simpleRNN:()=>GW,simpleRNNCell:()=>HW,softmax:()=>nW,spatialDropout1d:()=>fW,stackedRNNCells:()=>KW,thresholdedReLU:()=>aW,timeDistributed:()=>JW,upSampling2d:()=>cW,zeroPadding2d:()=>_W});var iB=0;function Uk(){return iB++}var cm={};function pm(e=""){return e in cm||(cm[e]=0),cm[e]+=1,e+cm[e].toString()}function Xb(e){return Array.isArray(e)&&Array.isArray(e[0])}function dm(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function Re(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new V(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function pt(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new V(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function hm(e){let t=0;for(let n of e)n.shape.length===0?t+=1:t+=n.shape.reduce((a,r)=>a*r);return t}var Gk="Variable",Hk=class{constructor(e,t="float32",n=Gk,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=Uk(),n=n==null?Gk:n,this.originalName=Fk(n),this.name=_k(this.originalName),this.trainable_=a,this.constraint=r,this.val=V1(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),oB(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}};function oB(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function Kb(e){return e.map(t=>t.read())}function Yb(e){e.forEach(t=>{t[0].write(t[1])})}var Yt=class{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}},$a=class{constructor(e,t,n,a,r,s,i){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=a,this.callArgs=r,this.outputTensorIndex=i,this.id=Uk(),s!=null&&(this.originalName=Fk(s),this.name=_k(this.originalName)),this.rank=t.length}},lB=0,mm=class{constructor(e,t){this.callArgs=t,this.id=lB++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(let n of e.inboundLayers)n!=null&&n.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){let e=[];for(let t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},uB=0,je=class extends re.Serializable{constructor(e={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=uB++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){let n=this.getClassName();t=Ir(n)+"_"+pm(n)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let n;if(e.batchInputShape!=null)n=e.batchInputShape;else if(e.inputShape!=null){let r=null;e.batchSize!=null&&(r=e.batchSize),n=[r].concat(e.inputShape)}this.batchInputShape=n;let a=e.dtype;a==null&&(a=e.inputDType),a==null&&(a="float32"),this.dtype=a}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new _a(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new V(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return An(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return An(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new kr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new kr(`Layer ${this.name} is not connected, no input to return.`);return An(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new kr(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new kr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return An(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=yt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=yt(this.inputSpec);if(e.length!==t.length)throw new V(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let n=0;nr.maxNDim)throw new V(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${r.maxNDim}, found ndim=${s}`);if(r.minNDim!=null&&s=0?i[l]:i[i.length+l];if(u!=null&&[u,null].indexOf(c)===-1)throw new V(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${u} but got shape ${i}.`)}}if(r.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(e);let s=[];for(let i of yt(e))s.push(i.shape);this.build(An(s)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&r&&(this._refCount=1)}if(this.assertInputCompatibility(e),r){let s=this.call(e,t),i=yt(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=An(o),this.activityRegularizer!=null)throw new $e("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=cB(e),i=this.computeOutputShape(s),o,l=pB(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?s[0]:s),i!=null&&i.length>0&&Array.isArray(i[0])?o=i.map((u,c)=>new $a(l,u,this,yt(e),t,this.name,c)):o=new $a(l,i,this,yt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new $e("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return o}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((n,a)=>{n!=null&&e[a]!=null&&e[a]!==n&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new kr(`The layer ${this.name} has never been called and thus has no defined output shape.`);let e=[];for(let t of this.inboundNodes){let n=JSON.stringify(t.outputShapes);e.indexOf(n)===-1&&e.push(n)}if(e.length===1){let t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new kr(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new _a(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return hm(this.weights)}build(e){this.built=!0}getWeights(e=!1){return Kb(e?this.trainableWeights:this.weights)}setWeights(e){M(()=>{let t=this.weights;if(t.length!==e.length)throw new V(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;let n=[],a=Kb(t);for(let r=0;rr.apply(l.read())),s==null&&(s=!0),s?this._trainableWeights.push(l):this._nonTrainableWeights.push(l),l}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=yt(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,n,a,r,s,i=null){let o=yt(e);t=yt(t),n=yt(n),a=yt(a),r=dm(r),s=dm(s);let l=[],u=[],c=[];for(let p of o)l.push(p.sourceLayer),u.push(p.nodeIndex),c.push(p.tensorIndex);new mm({outboundLayer:this,inboundLayers:l,nodeIndices:u,tensorIndices:c,inputTensors:o,outputTensors:t,inputMasks:n,outputMasks:a,inputShapes:r,outputShapes:s},i);for(let p=0;pe.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount==0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}};function cB(e){e=yt(e);let t=[];for(let n of e)t.push(n.shape);return An(t)}function pB(e){return"float32"}function jk(e,t,n){if((t==null||n!=null&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),t.inboundNodes.length===0)return[e];{let a=t.inboundNodes[n];if(a.inboundLayers.length===0)return a.inputTensors;{let r=[];for(let s=0;s0){let r=await Promise.all(t);for(let s=0;sJ(this.totals[a],B(r,n)));this.totals[a]=i,s!=null&&s.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?t[n]=this.totals[n]/this.seen:M(()=>{let a=B(xe(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),qt(t[n])}))}},Jk=class extends au{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(let n in t)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(t[n])}async syncData(){let e=[],t=[],n=[];for(let r in this.history){let s=this.history[r];for(let i=0;inew Qk(n,t))}var ya=class{constructor(){}static registerCallbackConstructor(e,t){I.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),ya.checkForDuplicate(t),ya.constructors[e]==null&&(ya.constructors[e]=[]),ya.constructors[e].push(t)}static checkForDuplicate(e){for(let t in ya.constructors)ya.constructors[+t].forEach(n=>{if(n===e)throw new V("Duplicate callback constructor.")})}static clear(){ya.constructors={}}static createCallbacks(e){let t=[];for(let n in ya.constructors){let a=+n;e>=a&&t.push(...ya.constructors[a])}return t.map(n=>new n)}};ya.constructors={};function eI(e,t,n,a,r,s,i,o,l){let u=new Jk,c=[new hB,...ya.createCallbacks(t)];e!=null&&c.push(...e),c.push(u);let p=new Yk(c);return p.setParams({epochs:n,initialEpoch:a,samples:r,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:p,history:u}}function Da(e,t={},n=!1){return Hc(e,re.SerializationMap.getMap().classNameMap,t,"layer",n)}function fm(e,t){return M(()=>{e.dtype!=="float32"&&(e=e.asType("float32"));let n=Se(Yc(e),t,!0),a=Cn(n.shape,Bt()),r=rn(Ka(n,a));return xe(e,r)})}function Gi(e,t){return M(()=>Ct(Yc(me(t,e)),-1))}function gm(e,t){return M(()=>Ct(zt(me(t,e)),-1))}function ru(e,t){return M(()=>{let n=me(e,t),a=Xt(zt(e),Bt(),Number.MAX_VALUE),r=zt(xe(n,a));return B(100,Ct(r,-1))})}function mB(e,t){return M(()=>{let n=Xt(t,Bt(),Number.MAX_VALUE),a=Pn(J(1,n)),r=Xt(e,Bt(),Number.MAX_VALUE),s=Pn(J(1,r));return Ct(Yc(me(a,s)),-1)})}function fB(e,t){return M(()=>{let n=Ka(0,me(1,B(e,t)));return Ct(Yc(n),-1)})}function gB(e,t){return M(()=>{let n=Ka(0,me(1,B(e,t)));return Ct(n,-1)})}function yB(e,t){return M(()=>{let n=Se(B(e,t),-1),a=ea(B(me(1,e),t),-1);return Ka(0,J(1,me(a,n)))})}function bB(e,t){return M(()=>{let n=Math.log(2),a=me(t,e),r=me(J(a,jl(B(-2,a))),n);return Ct(r,-1)})}function Zc(e,t,n=!1){return M(()=>{if(n)t=Sa(t);else{let a=Se(t,t.shape.length-1,!0);t=xe(t,a)}return t=Xt(t,Bt(),1-Bt()),St(Se(B(e.toFloat(),Pn(t)),t.shape.length-1))})}function ym(e,t,n=!1){return M(()=>{let a=Hl(Bz(e)).toInt();t=Xt(t,Bt(),1-Bt());let r=t.shape,s=Wl(a,r[r.length-1]).reshape(r);return Zc(s,t,n)})}function xB(e,t){if(!I.arraysEqual(e.shape,t.shape))throw new V(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return M(()=>{let n=t.relu(),a=t.abs().neg();return n.sub(t.mul(e)).add(a.exp().log1p())})}function bm(e,t){return M(()=>{let n;return n=Xt(t,Bt(),1-Bt()),n=Pn(xe(n,me(1,n))),Ct(xB(e,n),-1)})}function vB(e,t){return M(()=>{let n=Xt(e,Bt(),1),a=Xt(t,Bt(),1);return Se(B(e,Pn(xe(n,a))),-1)})}function wB(e,t){return M(()=>{let n=Pn(J(Bt(),t));return Ct(me(t,B(e,n)),-1)})}function Jb(e,t){return M(()=>{let n=fm(e,-1),a=fm(t,-1),r=B(n,a);return St(Se(r,-1))})}var xm={meanSquaredError:Gi,meanAbsoluteError:gm,meanAbsolutePercentageError:ru,meanSquaredLogarithmicError:mB,squaredHinge:fB,hinge:gB,categoricalHinge:yB,logcosh:bB,categoricalCrossentropy:Zc,sparseCategoricalCrossentropy:ym,binaryCrossentropy:bm,kullbackLeiblerDivergence:vB,poisson:wB,cosineProximity:Jb};function Qb(e){if(typeof e=="string"){if(e in xm)return xm[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new V(t)}else return e}function Zb(e,t){return M(()=>{let n=B(.5,On(t)),a=Xc(ha(t,n),e.dtype);return Ct(as(e,a),-1)})}function ex(e,t){return M(()=>Xc(as(Ec(e,-1),Ec(t,-1)),"float32"))}function tI(e,t){return M(()=>ma(e.equal(1),t.equal(1)).sum().cast("float32"))}function kB(e,t){return M(()=>ma(e.equal(1),t.equal(0)).sum().cast("float32"))}function IB(e,t){return M(()=>ma(e.equal(0),t.equal(1)).sum().cast("float32"))}function nI(e,t){return M(()=>{let n=tI(e,t),a=IB(e,t),r=n.add(a);return Sn(ha(r,0),n.div(r),0).cast("float32")})}function NB(e,t){return M(()=>{let n=tI(e,t),a=kB(e,t),r=n.add(a);return Sn(ha(r,0),n.div(r),0).cast("float32")})}function aI(e,t){return bm(e,t)}function rI(e,t){return e.rank===t.rank&&(e=e.squeeze([e.rank-1])),t=t.argMax(-1),t.dtype!==e.dtype&&(t=t.asType(e.dtype)),as(e,t).asType("float32")}var TB=Gi,SB=Gi,CB=gm,AB=gm,FB=ru,_B=ru,tx=Zc,EB=Jb,sI=ym,vm={binaryAccuracy:Zb,categoricalAccuracy:ex,precision:nI,categoricalCrossentropy:tx,sparseCategoricalCrossentropy:sI,mse:TB,MSE:SB,mae:CB,MAE:AB,mape:FB,MAPE:_B,cosine:EB};function $B(e){if(typeof e=="string"&&e in vm)return vm[e];if(typeof e!="string"&&e!=null)return e;throw new V(`Unknown metric ${e}`)}function wm(e){if(Za(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(xm))if(xm[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(vm))if(vm[n]===e){t=n;break}return t!==void 0?t:e.name}}function DB(e){let t={Adagrad:()=>Li.adagrad(.01),Adadelta:()=>Li.adadelta(1,.95,Bt()),Adam:()=>Li.adam(.001,.9,.999,Bt()),Adamax:()=>Li.adamax(.002,.9,.999,Bt(),0),RMSProp:()=>Li.rmsprop(.001,.9,0,Bt()),SGD:()=>Li.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new V(`Unknown Optimizer ${e}`)}var iI=1*1024*1024;function oI(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!nx(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){let a=JSON.stringify(e);a.length>iI&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${a.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${iI}.`)}}function nx(e){if(e===null)return!0;if(typeof e=="object")if(Object.getPrototypeOf(e)===Object.prototype){let t=Object.keys(e);for(let n of t)if(typeof n!="string"||!nx(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!nx(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function LB(e,t,n,a=console.log){let r=RB(e),s=["Layer (type)","Output shape","Param #"];r?(t=t||65,n=n||[.45,.85,1]):(t=t||98,n=n||[.33,.55,.67,1]),n[n.length-1]<=1&&(n=n.map(c=>Math.floor(t*c)));let i;if(!r){s.push("Receives inputs"),i=[];for(let c in e.nodesByDepth)i.push(...e.nodesByDepth[c])}a("_".repeat(t)),km(s,n,a),a("=".repeat(t));let o=e.layers;for(let c=0;c1||r.length===1&&r[0].inboundLayers.length>1){t=!1;break}a.push(...r)}if(t)for(let r of e.layers){let s=!1;for(let i of r.inboundNodes)if(a.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function km(e,t,n=console.log){let a="";for(let r=0;r0&&(a=a.slice(0,a.length-1)+" "),a+=e[r],a=a.slice(0,t[r]),a+=" ".repeat(t[r]-a.length);n(a)}function PB(e,t,n){let a;try{a=JSON.stringify(e.outputShape)}catch(o){a="multiple"}let r=e.name,s=e.getClassName(),i=[`${r} (${s})`,a,e.countParams().toString()];km(i,t,n)}function OB(e,t,n,a){let r;try{r=JSON.stringify(e.outputShape)}catch(c){r="multiple"}let s=[];for(let c of e.inboundNodes)if(!(n!=null&&n.length>0&&n.indexOf(c)===-1))for(let p=0;pm.name),l=[],u=t.names();for(let m of o)u.indexOf(m)!==-1?l.push(t.getValue(m)):l.push(null);a!=null&&(a.maxNumTensors=-Infinity,a.minNumTensors=Infinity);let c=o.join(",")+"|"+t.names().join(","),p,d;if(rx[c]==null){let m=WB(i,t);p=m.sorted,d=m.recipientCounts,rx[c]=p,uI[c]=d}p=rx[c],d={},r||Object.assign(d,uI[c]);let h=new Hi(t);for(let m=0;ma.maxNumTensors&&(a.maxNumTensors=F),F0,()=>"Expected at least one fetch, got none");let n=[],a={};if(e.length===1){let r=cI(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=cI(s,t);for(let l of i)r.has(l.name)||(n.push(l),r.add(l.name));for(let l in o)a[l]==null&&(a[l]=new Set),o[l].forEach(u=>a[l].add(u))}}return{sorted:n,recipientCounts:VB(a)}}function VB(e){let t={};for(let n in e)t[n]=e[n].size;return t}function cI(e,t){let n=new Set,a=[],r={};for(let o of t.names())n.add(o);let s=[],i=[];for(s.push(e);s.length>0;){let o=s[s.length-1];if(n.has(o.name)){s.pop();continue}let l=i[i.length-1]===s.length-1;if(o.inputs.length===0||l)s.pop(),a.push(o),n.add(o.name),l&&i.pop();else{i.push(s.length-1);for(let u of o.inputs)r[u.name]==null&&(r[u.name]=new Set),r[u.name].add(o.name),!n.has(u.name)&&s.push(u)}}return{sorted:a,recipientMap:r}}function BB(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;ay.name)}`);os(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(y=>y.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let y of this.outputs){let b=y.sourceLayer,x=y.nodeIndex,v=y.tensorIndex;this.outputLayers.push(b),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(v)}for(let y of this.inputs){let b=y.sourceLayer,x=y.nodeIndex,v=y.tensorIndex;Za(x===0,"input layer has >1 nodes"),Za(v===0,"input layer has >1 tensors"),this.inputLayers.push(b),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(v)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let y=0;yy.shape),this.internalOutputShapes=this.outputs.map(y=>y.shape);let t={},n={},a={},r={},s={},i=[],o=(y,b,x,v,k,w)=>{(v==null||k==null||w==null)&&(v=y.sourceLayer,k=y.nodeIndex,w=y.tensorIndex);let S=v.inboundNodes[k];if(x.indexOf(S)!==-1)throw new _a(`The tensor ${y.name} at layer "${v.name}" is part of a cycle.`);if(b.indexOf(S)!==-1)return;this.containerNodes.add(ar.nodeKey(v,k)),v.id in s||(s[v.id]=Object.keys(s).length),x.indexOf(S)===-1&&x.push(S);let A=S.inboundLayers.length;for(let F=0;F=0;)x.splice(x.indexOf(S),1);i.push(S)},l=[],u=[];for(let y of this.outputs)o(y,l,u);let c=i.slice().reverse();for(let y of c){n[y.id]=y,y.id in t||(t[y.id]=0);let b=t[y.id],x=a[y.outboundLayer.id]==null?0:a[y.outboundLayer.id];b=Math.max(b,x),a[y.outboundLayer.id]=b,r[y.outboundLayer.id]=y.outboundLayer,t[y.id]=b;for(let v=0;vparseInt(y,10)).sort(em);this.layers=[];for(let y of h){let b=d[y];b.sort((x,v)=>{let k=s[x.id],w=s[v.id];return kw?1:0});for(let x of b)x instanceof ar&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=d,h=Object.keys(p).map(y=>parseInt(y,10)).sort(em);let m=this.inputs.slice(),f=[];for(let y of h)for(let b of p[y]){let x=b.outboundLayer;if(x!=null){for(let v of b.inputTensors)if(m.indexOf(v)===-1)throw new _a(`Graph disconnected: cannot obtain value for tensor ${v} at layer "${x.name}". The following previous layers were accessed without issue: ${f}`);for(let v of b.outputTensors)m.push(v);f.push(x.name)}}this.nodesByDepth=p;let g=this.layers.map(y=>y.name);for(let y of g){let b=g.filter(x=>x===y).length;if(b!==1)throw new _a(`The name "${y}" is used ${b} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new mm({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(y=>null),outputMasks:this.outputs.map(y=>null),inputShapes:this.inputs.map(y=>y.shape),outputShapes:this.outputs.map(y=>y.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount==0){for(let t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(let t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(n=>n.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new V("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(let t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.layers)t.push(...n.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){let n={},a=0;for(let s of this.layers)for(let i of s.weights){if(n[i.originalName]!=null)throw new V(`Duplicate weight name: ${i.originalName}`);n[i.originalName]=i,a++}let r=[];for(let s in e){let i=s;if(n[s]==null){let o=s.split("/");i=o.slice(0,-2).concat([o[o.length-1]]).join("/")}if(n[i]!=null)r.push([n[i],e[s]]);else if(t)throw new V(`Provided weight data has no target variable: ${s}`);delete n[i]}if(t){let s=[];for(let i in n)s.push(i);if(s.length>0)throw new V(`${s.length} of ${a} weights are not set: ${s}`)}Yb(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${Im}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=ax(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return M(()=>{e=yt(e);let n=new Hi;for(let a=0;a{e=yt(e);let n;return t==null?n=zi(null,e.length):n=yt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=dm(e);if(t.length!==this.inputLayers.length)throw new V(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let i=0;iparseInt(i,10)).sort(em);if(a.length>1)for(let i of a){let o=this.nodesByDepth[i];for(let l of o){let u=l.outboundLayer;if(this.inputLayers.map(m=>m.id).indexOf(u.id)!==-1)continue;let c=[];for(let m=0;mparseInt(o,10)).sort(em);for(let o of a){let l=this.nodesByDepth[o];for(let u of l){let c=u.outboundLayer,p=u.inputTensors,d=u.outputTensors,h=new Array;for(let m of p)m.id in n&&h.push(n[m.id]);if(h.length===p.length){let m={},f,g,y,b;if(u.callArgs!=null&&(m=u.callArgs),h.length===1){let[x,v]=h[0];m.mask==null&&(m.mask=v),y=yt(c.call(x,m)),b=yt(c.computeMask(x,v)),f=[x],g=[v]}else f=h.map(x=>x[0]),g=h.map(x=>x[1]),m.mask==null&&(m.mask=g),y=yt(c.call(f,m)),b=yt(c.computeMask(f,g));if(c.activityRegularizer)throw new $e("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let x=0;x{let e=[];for(let t of this.layers)for(let n=0;n0){let m=[];for(let f=0;f0&&f.apply(An(y),b)}function l(f){let g=f.name,y=Da(f,t.customObjects!=null?t.customObjects:{});y.setFastWeightInitDuringBuild(a),r[g]=y,f.inboundNodes.forEach(b=>{if(!(b instanceof Array))throw new V(`Corrupted configuration, expected array for nodeData: ${b}`);i(y,b)})}let u=t.name,c=t.layers;for(let f of c)l(f);for(;!mz(s);)for(let f of c){let g=r[f.name];if(g.name in s){let y=s[g.name];delete s[g.name];for(let b of y)o(g,b)}}let p=[],d=[],h=t.inputLayers;for(let f of h){let g=f[0],y=f[1],b=f[2];Za(g in r);let x=r[g].inboundNodes[y].outputTensors;p.push(x[b])}let m=t.outputLayers;for(let f of m){let g=f[0],y=f[1],b=f[2];Za(g in r);let x=r[g].inboundNodes[y].outputTensors;d.push(x[b])}return new e({inputs:p,outputs:d,name:u})}get stateful(){if(this._stateful)throw new V("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let e of this.layers)if(e.stateful)return!0;return!1}resetStates(){M(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function UB(e,t,n){let a=t.length;if(e==null||Array.isArray(e)&&e.length===0)return t.map(r=>null);if(a===1)return Array.isArray(e)&&e.length===1?e:typeof e=="object"&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==a)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${a} outputs. Make sure a set of weights is provided for each model output.`);return e}else if(typeof e=="object"&&Object.keys(e).length>0&&typeof e[Object.keys(e)[0]]=="object"){let r=[];return t.forEach(s=>{s in e?r.push(e[s]):r.push(null)}),r}else throw new Error(`The model has multiple (${a}) outputs, so ${n} must be either an array with ${a} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}function pI(e,t){return UB(e,t,"classWeight")}async function dI(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=M(()=>{if(e.shape.length===1)return e.clone();if(e.shape.length===2)if(e.shape[1]>1){let o=1;return e.argMax(o)}else{if(e.shape[1]===1)return e.reshape([e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await r.data());Ee(r);let i=[];return s.forEach(o=>{if(n[o]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${o} exists in the data but not in classWeight`);i.push(n[o])}),Ze(i,"float32")}else return null}function GB(e,t){return B(e,t)}var HB=32;function mI(e,t){let n,a,r=t;n=r.xs,a=r.ys,I.assert(n!=null&&a!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`);let s=hI("input",e.inputNames,n),i=hI("output",e.outputNames,a),o=s[0].shape[0];I.assert(s.length===e.inputs.length,()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`),I.assert(i.length===e.outputs.length,()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${e.inputNames[l]} has ${s[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${e.outputNames[l]} has ${i[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);return{xs:s,ys:i}}function hI(e,t,n){if(n instanceof Fe)return[n];if(Array.isArray(n))return I.assert(n.length===t.length,()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`),n;{let a=[];for(let r of t){if(n[r]==null)throw new V(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function jB(e){if(e.length===3)throw new $e("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function XB(e,t,n){let a=n.batchesPerEpoch!=null;if(I.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),I.assert(n!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),I.assert(n.epochs!=null&&n.epochs>0&&Number.isInteger(n.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`),I.assert(!a||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`),I.assert(n.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{let r=n.validationData!=null,s,i;if(r)if(fI(n.validationData))I.assert(n.validationBatches==null||n.validationBatches>0&&Number.isInteger(n.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${n.validationBatches}`);else{let g=jB(n.validationData);s=g.xs,i=g.ys}let o=e.makeTrainFunction(),l=e.getDedupedMetricsNames(),u;r?u=l.slice().concat(l.map(g=>"val_"+g)):u=l.slice();let c=Zk(n.callbacks,n.yieldEvery),p=n.verbose==null?1:n.verbose,{callbackList:d,history:h}=eI(c,p,n.epochs,null,null,qB(t,n),null,r,u);d.setModel(e),e.history=h,await d.onTrainBegin(),e.stopTraining_=!1;let m=n.initialEpoch==null?0:n.initialEpoch,f=await t.iterator();for(;m=n.batchesPerEpoch:x.done){if(r){let v;fI(n.validationData)?v=yt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):v=yt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?HB:n.validationBatchSize,verbose:0}));for(let k=0;k0)throw new $e("Verbose mode is not implemented yet.");I.assert(!a||n.batches>0&&Number.isInteger(n.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`);let i=KB(t)?t:await t.iterator(),o=0,l=0;for(;a?l{if(u.value){let{xs:c,ys:p}=mI(e,u.value),d=c.concat(p),h=M(()=>r(d));if(Ee(d),l===0)for(let f=0;fJ(s[f],B(m,g))),l>0&&Ee(y)}Ee(h),o+=m,++l}return s}),u.done){a&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${n.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let u=0;u0&&Number.isInteger(e),()=>`batchSize is required to be a positive integer, but got ${e}`)}function np(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>Ui(a,t,n-t)):Ui(e,t,n-t)}function ix(e,t){return M(()=>e==null?null:Array.isArray(e)?e.map(n=>ix(n,t)):Dk(e,t.dtype==="int32"?t:t.toInt()))}function ox(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}async function JB(e,t,n,a,r,s,i,o,l,u,c,p,d,h,m){r==null&&(r=32),s==null&&(s=1),c==null&&(c=!0),d==null&&(d=0);let f=!1;if(l!=null&&u!=null&&(f=!0),m!=null&&(f=!0,h==null))throw new V("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=e.checkNumSamples(n,r,h,"steps_per_epoch"),y;g!=null&&(y=Ea(0,g)),i==null&&(i=1);let{callbackList:b,history:x}=eI(o,i,s,d,g,h,r,f,p);b.setModel(e),e.history=x,await b.onTrainBegin(),e.stopTraining_=!1;for(let v=d;v{let D=S[A][0],R=S[A][1],L=Ui(w,D,R-D);F.batch=A,F.size=R-D;let W=ix(n,L),U=t(W);for(let G=0;G0){if(m=!0,a.validationData.length===2)i=a.validationData[0],o=a.validationData[1];else throw a.validationData.length===3?new $e("validationData including sample weights is not supported yet."):new V(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${a.validationData} is invalid.`);let w=!0,S=await e.standardizeUserData(i,o,null,null,w,p);l=S[0],u=S[1],f=l.concat(u)}else if(a.validationSplit!=null&&a.validationSplit>0&&a.validationSplit<1){m=!0;let w=Math.floor(r[0].shape[0]*(1-a.validationSplit)),S=r[0].shape[0];l=np(r,w,S),r=np(r,0,w),u=np(s,w,S),s=np(s,0,w),f=l.concat(u)}else a.validationSteps!=null&&(m=!0);let g=r.concat(s).concat(c);e.checkTrainableWeightsConsistency();let y=e.makeTrainFunction(),b=e.getDedupedMetricsNames(),x,v;m?(e.makeTestFunction(),x=e.testFunction,v=b.slice().concat(b.map(w=>"val_"+w))):(x=null,f=[],v=b.slice());let k=Zk(a.callbacks,a.yieldEvery);return await JB(e,y,g,b,p,a.epochs,a.verbose,k,x,f,a.shuffle,v,a.initialEpoch,null,null)}finally{e.isTraining=!1,ji(r,t),ji(s,n),ji(l,i),ji(u,o),c!=null&&Ee(c)}}function gI(e){let t=[];e instanceof Fe&&(e=[e]);for(let n=0;nn.push(r.id));else if(t!=null)for(let r in t){let s=t[r];n.push(s.id)}let a=[];if(e instanceof Fe)n.indexOf(e.id)===-1&&a.push(e);else if(Array.isArray(e))e.forEach(r=>{n.indexOf(r.id)===-1&&a.push(r)});else if(e!=null)for(let r in e){let s=e[r];n.indexOf(s.id)===-1&&a.push(s)}a.forEach(r=>{r.isDisposed||r.dispose()})}function ZB(e){return e instanceof Fe}function lx(e){return Array.isArray(e)}function yI(e){return!ZB(e)&&!lx(e)}function bI(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(lx(e)&&e.length>0)i=!0;else if(yI(e)){for(let o in e)if(e.hasOwnProperty(o)){i=!0;break}}else i=!0;if(i)throw new V(`Error when checking model ${r} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(i=>null);let s;if(yI(e)){e=e,s=[];for(let i of t){if(e[i]==null)throw new V(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(e[i])}}else if(lx(e)){if(e=e,e.length!==t.length)throw new V(`Error when checking model ${r}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);s=e}else{if(e=e,t.length>1)throw new V(`The model ${r} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=gI(s),n!=null)for(let i=0;i=0&&u!==c)throw new V(`Error when checking ${r}: expected ${t[i]} to have shape [${n[i]}], but got array with shape [${o.shape}].`)}}return s}function e4(e,t,n){let a=os(e.map(s=>s.shape[0]));a.sort();let r=os(t.map(s=>s.shape[0]));if(r.sort(),a.length>1)throw new V(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(s=>s.shape))}`);if(r.length>1)throw new V(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(a.length>0&&r.length>0&&!I.arraysEqual(a,r))throw new V(`Input Tensors should have the same number of samples as target Tensors. Found ${a[0]} input sample(s) and ${r[0]} target sample(s).`)}function t4(e,t,n){let a=[Gi,bm,Zc];for(let r=0;r1)throw new V(`The model expects ${t.length} ${r} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);s=[e]}if(n!=null)for(let i=0;i[]);let n;if(typeof e=="string"||typeof e=="function")n=[e];else if(Array.isArray(e)||typeof e=="object")n=e;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);if(Array.isArray(n))return t.map(a=>n);{let a=[];for(let r of t){let s=n.hasOwnProperty(r)?n[r]:[];Array.isArray(s)||(s=[s]),a.push(s)}return a}}var a4="layers-model",Nr=class extends ar{constructor(e){super(e);this.isTraining=!1}summary(e,t,n=console.log){if(!this.built)throw new V("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");LB(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=DB(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof wr))throw new V("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(let s in e.loss)if(this.outputNames.indexOf(s)===-1)throw new V(`Unknown entry in loss dictionary: "${s}". Only expected the following keys: ${this.outputNames}`);for(let s of this.outputNames)e.loss[s]==null&&console.warn(`Output "${s}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${s} during training`),t.push(Qb(e.loss[s]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new V(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);t=e.loss.map(s=>Qb(s))}else{let s=Qb(e.loss);this.outputs.forEach(i=>{t.push(s)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let s=0;s{for(let s=0;s1&&(this.metricsTensors.push([i,s]),this.metricsNames.push(this.outputNames[s]+"_loss"))}});let a=n4(e.metrics,this.outputNames),r=(s,i,o)=>{this.outputNames.length>1&&(i=this.outputNames[s]+"_"+i),this.metricsNames.push(i),this.metricsTensors.push([o,s])};Vi("metric",()=>{for(let s=0;s{let l="",u,c,p;for(let d of o){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){let m=this.internalOutputShapes[s];m[m.length-1]===1||this.lossFunctions[s]===bm?["accuracy","acc"].indexOf(d)!==-1?c=Zb:["crossentropy","ce"].indexOf(d)!==-1&&(c=aI):this.lossFunctions[s]===ym?["accuracy","acc"].indexOf(d)!==-1?c=rI:["crossentropy","ce"].indexOf(d)!==-1&&(c=sI):["accuracy","acc"].indexOf(d)!==-1?c=ex:["crossentropy","ce"].indexOf(d)!==-1&&(c=tx);let f;["accuracy","acc"].indexOf(d)!==-1?f="acc":["crossentropy","ce"].indexOf(d)!==-1&&(f="ce"),p=c,u=l+f}else p=$B(d),u=l+wm(d);let h;Vi(u,()=>{h=p}),r(s,u,h)}})(i)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,n={}){let a=n.batchSize==null?32:n.batchSize;sx(a);let r=!0,s=this.standardizeUserDataXY(e,t,r,a);try{let i=s[0].concat(s[1]);this.makeTestFunction();let o=this.testFunction,l=this.testLoop(o,i,a,n.verbose,n.steps);return An(l)}finally{ji(s[0],e),ji(s[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),YB(this,e,t)}checkNumSamples(e,t,n,a="steps"){let r;if(n!=null){if(r=null,t!=null)throw new V(`If ${a} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?r=e[0].shape[0]:r=e.shape[0];else throw new V(`Either the input data should have a defined shape, or ${a} shoud be specified.`);return r}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new V("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(t),a=n?t:[t],r=this.retrieveSymbolicTensors(a),s=new Hi;if(e instanceof Fe&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new V(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let o=0;oi.name);for(let i=0;i0){let a=[];throw t.forEach((r,s)=>{r==null&&a.push(e[s])}),new V(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(a)}`)}return t}predictLoop(e,t=32,n=!1){return M(()=>{let a=this.checkNumSamples(e);if(n)throw new $e("Verbose predictLoop() is not implemented yet.");let r=ox(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=np(e,o,l),c=[];if(Array.isArray(u))for(let d=0;ds[l].push(o));return An(s.map(i=>Je(i,0)))})}predict(e,t={}){let n=gI(e);xI(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return sx(a),this.predictLoop(n,a)}finally{ji(n,e)}}predictOnBatch(e){xI(e,this.inputNames,this.feedInputShapes,!0);let t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,a){if(this.optimizer_==null)throw new _a("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let r=[];for(let s=0;s0&&e[0].shape[0]%a!=0)throw new V(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${a}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,a,r=!0,s){let[i,o]=this.standardizeUserDataXY(e,t,r,s);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(a!=null){let u=pI(a,this.outputNames);l=[];for(let c=0;c{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new $e("Verbose mode is not implemented yet.");if(r!=null)throw new $e("steps mode in testLoop() is not implemented yet");{let o=ox(s,n),l=Ze(Ea(0,s));for(let u=0;u1&&(r+=`_${vk(e.slice(0,n),a)}`),t.push(r)}return t}makeTrainFunction(){return e=>{let t=[],n=e.slice(0,this.inputs.length),a=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),s=[],i=()=>{let u=[];for(let h=0;h1&&h{d=J(d,h)}),d},o=this.collectedTrainableWeights.map(u=>u.read()),l=!0;return[this.optimizer_.minimize(i,l,o)].concat(s)}}makeTestFunction(){this.testFunction=e=>M(()=>{let t=[],n,a=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=[];for(let l=0;lIr(t))}else{let t=Object.keys(this.loss);e={};let n=this.loss;for(let a of t)if(typeof n[a]=="string")e[a]=Ir(n[a]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[Ir(wm(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>Ir(wm(e)));{let e={};for(let t in this.metrics)e[t]=Ir(wm(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let t=ep(e.optimizer_config),n=Da(t),a;if(typeof e.loss=="string")a=Wi(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Wi(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Wi(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Wi(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Wi(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=jt.getSaveHandlers(e);if(i.length===0)throw new V(`Cannot find any save handlers for URL '${e}'`);if(i.length>1)throw new V(`Found more than one (${i.length}) save handlers for URL '${e}'`);e=i[0]}if(e.save==null)throw new V("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await jt.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:a4,generatedBy:`TensorFlow.js tfjs-layers v${Im}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await jt.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=jt.concatenateArrayBuffers([n.data,o])}if(this.userDefinedMetadata!=null){let i=!0;oI(this.userDefinedMetadata,this.name,i),s.userDefinedMetadata=this.userDefinedMetadata}return s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){oI(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Nr.className="Model";re.registerClass(Nr);var vI=class extends Nr{};vI.className="Functional";re.registerClass(vI);async function r4(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=ep(n),r=Da(a,t);if(e.weightsManifest!=null){let s=await jt.loadWeights(e.weightsManifest,e.pathPrefix,r.weights.map(o=>o.originalName)),i={};for(let o of r.weights)i[o.originalName]=s[o.originalName];r.loadWeights(i),Ee(s)}return r}async function i4(e,t){if(t==null&&(t={}),typeof e=="string"){let n=jt.getLoadHandlers(e,t);if(n.length===0)n.push(jt.browserHTTPRequest(e,t));else if(n.length>1)throw new V(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return s4(e,void 0,t)}async function s4(e,t,n){if(n==null&&(n={}),e.load==null)throw new V("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let a=await e.load(),r=a.modelTopology;r.model_config!=null&&(r=r.model_config);let s=n.strict==null?!0:n.strict,i=a.weightData!=null&&a.weightSpecs!=null&&s,o=Da(ep(r),t,i),l=a.trainingConfig;if(l!=null&&o.loadTrainingConfig(l),a.userDefinedMetadata!=null&&o.setUserDefinedMetadata(a.userDefinedMetadata),a.weightData!=null){if(a.weightSpecs==null)throw new V("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:u,optimizerWeights:c}=o4(a.weightData,a.weightSpecs);o.loadWeights(u,s),o.optimizer!=null&&c.length>0&&await o.optimizer.setWeights(c),Ee(u),Ee(c.map(p=>p.tensor))}return o}function o4(e,t){let n=jt.decodeWeights(e,t),a={},r=[];return t.forEach(s=>{s.group==="optimizer"?r.push({name:s.name,tensor:n[s.name]}):a[s.name]=n[s.name]}),{modelWeights:a,optimizerWeights:r}}var su=class extends Nr{constructor(e){super({inputs:[],outputs:[]});if(e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:pm("sequential_"),e.layers!=null)for(let t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(t=>t<0))throw new V(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof su||e instanceof Nr,n;if(t){if(n=e,n.outputs.length!==1)throw new V("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(n.inputs.length!==1)throw new V("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new V("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let a=qk({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(a)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(e.inboundNodes.length!==1)throw new V(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new V("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=jk(this.outputs[0])}this.inboundNodes=[],new mm({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:zi(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(a=>a.shape),outputShapes:this.outputs[0].shape})}else{let a=e.apply(this.outputs[0]);if(Array.isArray(a))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[a],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(pt(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new Nr({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,n=console.log){this.built||this.build(),super.summary(e,t,n)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new _a("The model needs to be compiled before being used.");return this.model.evaluate(e,t,n)}async evaluateDataset(e,t){if(!this.built)throw new _a("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new _a("The model needs to be compiled before being used.");return this.model.fit(e,t,n)}async fitDataset(e,t){if(!this.built)throw new _a("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,n={},a=!1){let r,s={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new V("Legacy serialization format not supported yet.");r=t}else I.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),r=t.layers,delete t.layers,s=t;let i=new e(s);if(!(i instanceof su))throw new $e(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let o of r){let l=Da(o,void 0,a);a&&l.setFastWeightInitDuringBuild(!0),i.add(l)}return i}set stopTraining(e){if(this.model==null)throw new V("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new V("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let e=[];for(let t of this.layers){let n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}};su.className="Sequential";re.registerClass(su);function l4(e){return new Nr(e)}function u4(e){return new su(e)}function c4(e,t){return t==null&&(t={}),i4(e,t)}function Lk(e){return qk(e)}function p4(e,t){ya.registerCallbackConstructor(e,t)}var Wn=class extends re.Serializable{getConfig(){return{}}},wI=class extends Wn{apply(e,t=1){return Uz(e,t)}};wI.className="elu";re.registerClass(wI);var kI=class extends Wn{apply(e){return Mh(e)}};kI.className="selu";re.registerClass(kI);var II=class extends Wn{apply(e){return qe(e)}};II.className="relu";re.registerClass(II);var NI=class extends Wn{apply(e){return M(()=>Xl(6,qe(e)))}};NI.className="relu6";re.registerClass(NI);var TI=class extends Wn{apply(e){return e}};TI.className="linear";re.registerClass(TI);var SI=class extends Wn{apply(e){return da(e)}};SI.className="sigmoid";re.registerClass(SI);var CI=class extends Wn{apply(e){return Hz(e)}};CI.className="hardSigmoid";re.registerClass(CI);var AI=class extends Wn{apply(e){return jl(e)}};AI.className="softplus";re.registerClass(AI);var FI=class extends Wn{apply(e){return Gz(e)}};FI.className="softsign";re.registerClass(FI);var _I=class extends Wn{apply(e){return Ul(e)}};_I.className="tanh";re.registerClass(_I);var ux=class extends Wn{apply(e,t=-1){return Sa(e,t)}};ux.className="softmax";re.registerClass(ux);var EI=class extends Wn{apply(e,t=-1){return Ch(e,t)}};EI.className="logSoftmax";re.registerClass(EI);var $I=class extends Wn{apply(e,t=1){return M(()=>da(e.mul(t)).mul(e))}};$I.className="swish";re.registerClass($I);function ps(e){return e.getClassName()}function cx(e,t={}){return Hc(e,re.SerializationMap.getMap().classNameMap,t,"activation")}function ds(e){if(e==null){let t={};return t.className="linear",t.config={},cx(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},cx(t)}else return e instanceof Wn?e:cx(e)}function px(e){if(e!=null&&typeof e!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}var DI=class extends re.Serializable{},ap=class extends DI{constructor(e){super();px(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return M(()=>{let t=vt([1]);return this.hasL1&&(t=J(t,Se(B(this.l1,zt(e))))),this.hasL2&&(t=J(t,Se(B(this.l2,Yc(e))))),t.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};ap.className="L1L2";re.registerClass(ap);function d4(e){return px(e),new ap({l1:e!=null?e.l1:null,l2:0})}function h4(e){return px(e),new ap({l2:e!=null?e.l2:null,l1:0})}var MI={l1l2:"L1L2"};function dt(e){return Sb(e)}function RI(e,t={}){return Hc(e,re.SerializationMap.getMap().classNameMap,t,"regularizer")}function kt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in MI?MI[e]:e,config:{}};return RI(t)}else return e instanceof DI?e:RI(e)}var dx=class extends je{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Re(e);let n=qe(e);return this.maxValue!=null&&(n=Xt(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};dx.className="ReLU";re.registerClass(dx);var hx=class extends je{constructor(e){super(e==null?{}:e);this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){let n=Re(e);return Pc(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};hx.className="LeakyReLU";re.registerClass(hx);var mx=class extends je{constructor(e){super(e==null?{}:e);if(this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=wt(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=kt(e.alphaRegularizer),this.alphaConstraint=Ut(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new V(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=pt(e);let t=e.slice(1);if(this.sharedAxes!=null)for(let a of this.sharedAxes)t[a-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let a=1;a(Mt(t),t==="channelsFirst"?Ve(e,[0,2,3,1]):e))}function PI(e,t){return M(()=>(Mt(t),t==="channelsFirst"?Ve(e,[0,2,3,4,1]):e))}function m4(e,t,n,a=1,r="valid",s,i=1){return M(()=>{if(s==null&&(s=Fa()),Mt(s),e.shape.length!==3)throw new V(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new V(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(n!=null&&n.shape.length!==1)throw new V(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(e=Ve(e,[0,2,1])),r==="causal")throw new $e("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=xh(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=tr(o,n)),o})}function OI(e,t,n,a=[1,1],r="valid",s,i,o=null){return M(()=>{if(s==null&&(s=Fa()),Mt(s),e.rank!==3&&e.rank!==4)throw new V(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new V(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=bx(e,s);if(r==="causal")throw new $e("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=is.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=Ve(l,[0,3,1,2])),l})}function f4(e,t,n,a=[1,1,1],r="valid",s,i){return M(()=>{if(s==null&&(s=Fa()),Mt(s),e.rank!==4&&e.rank!==5)throw new V(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new V(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=PI(e,s);if(r==="causal")throw new $e("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=Ky(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=tr(o,n)),s==="channelsFirst"&&(o=Ve(o,[0,4,1,2,3])),o})}var xx=class extends je{constructor(e,t){super(t);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",xx.verifyArgs(t),this.rank=e,Kt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new $e(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=iu(t.kernelSize,e,"kernelSize"),this.strides=iu(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,na(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Mt(this.dataFormat),this.activation=ds(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=wt(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Ut(t.biasConstraint),this.biasRegularizer=kt(t.biasRegularizer),this.activityRegularizer=kt(t.activityRegularizer),this.dilationRate=iu(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new V(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new V(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new V(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(Za("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!Ab(e.kernelSize,"number",1,3))throw new V(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){let e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:ps(this.activation),useBias:this.useBias,biasInitializer:At(this.biasInitializer),biasRegularizer:dt(this.biasRegularizer),activityRegularizer:dt(this.activityRegularizer),biasConstraint:Vt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},rp=class extends xx{constructor(e,t){super(e,t);this.kernel=null,rp.verifyArgs(t),this.filters=t.filters,Kt(this.filters,"filters"),this.kernelInitializer=wt(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Ut(t.kernelConstraint),this.kernelRegularizer=kt(t.kernelRegularizer)}build(e){e=pt(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V(`The channel dimension of the input should be defined. Found ${e[t]}`);let n=e[t],a=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:n}}],this.built=!0}call(e,t){return M(()=>{e=Re(e);let n,a=this.bias==null?null:this.bias.read(),r=kk(this.activation.getClassName());if(r!=null&&this.rank===2)n=OI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=m4(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=OI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=f4(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new $e("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=pt(e);let t=[],n=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let r=0;r 0 but got ${JSON.stringify(e.filters)}`)}},sp=class extends rp{constructor(e){super(2,e);sp.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!Ab(e.kernelSize,"number",1,2))throw new V(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};sp.className="Conv2D";re.registerClass(sp);var Tm=class extends rp{constructor(e){super(3,e);Tm.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new V(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};Tm.className="Conv3D";re.registerClass(Tm);var vx=class extends sp{constructor(e){super(e);if(this.inputSpec=[new Yt({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=pt(e),e.length!==4)throw new V("Input should have rank 4; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new Yt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return M(()=>{let n=Re(e);if(n.shape.length!==4)throw new V(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i;this.dataFormat==="channelsFirst"?(s=2,i=3):(s=1,i=2);let o=a[s],l=a[i],u=this.kernelSize[0],c=this.kernelSize[1],p=this.strides[0],d=this.strides[1],h=Nm(o,p,u,this.padding),m=Nm(l,d,c,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=Ve(n,[0,2,3,1]));let g=vh(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=Ve(g,[0,3,1,2])),this.bias!=null&&(g=tr(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=pt(e);let t=e.slice(),n,a,r;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3):(n=3,a=1,r=2);let s=this.kernelSize[0],i=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[a]=Nm(t[a],o,s,this.padding),t[r]=Nm(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};vx.className="Conv2DTranspose";re.registerClass(vx);var LI=class extends rp{constructor(e,t){super(e,t);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new V("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new V("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new V(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=wt(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=kt(t.depthwiseRegularizer),this.depthwiseConstraint=Ut(t.depthwiseConstraint),this.pointwiseInitializer=wt(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=kt(t.pointwiseRegularizer),this.pointwiseConstraint=Ut(t.pointwiseConstraint)}build(e){if(e=pt(e),e.length{e=Re(e);let n;if(this.rank===1)throw new $e("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=Ve(e,[0,2,3,1])),n=Pi(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=tr(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ve(n,[0,3,1,2])),n})}getConfig(){let e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=At(this.depthwiseInitializer),e.pointwiseInitializer=At(this.pointwiseInitializer),e.depthwiseRegularizer=dt(this.depthwiseRegularizer),e.pointwiseRegularizer=dt(this.pointwiseRegularizer),e.depthwiseConstraint=Vt(this.depthwiseConstraint),e.pointwiseConstraint=Vt(this.pointwiseConstraint),e}};LI.className="SeparableConv";var wx=class extends LI{constructor(e){super(2,e)}};wx.className="SeparableConv2D";re.registerClass(wx);var Sm=class extends rp{constructor(e){super(1,e);Sm.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){let e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!Ab(e.kernelSize,"number",1,1))throw new V(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};Sm.className="Conv1D";re.registerClass(Sm);var kx=class extends je{constructor(e){super(e);typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return M(()=>{if(e=Re(e),this.dataFormat==="channelsLast"){let n=tm(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return tm(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=tm(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return tm(n,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};kx.className="Cropping2D";re.registerClass(kx);var Ix=class extends je{constructor(e){super(e);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Mt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,Pz(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){let t=e[2]==null?null:this.size[0]*e[2],n=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,n]}else{let t=e[1]==null?null:this.size[0]*e[1],n=e[2]==null?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return M(()=>{let n=Re(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=Ve(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?n.resizeNearestNeighbor([r,s]):n.resizeBilinear([r,s]);return Ve(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?n.resizeNearestNeighbor([r,s]):n.resizeBilinear([r,s])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Ix.className="UpSampling2D";re.registerClass(Ix);function g4(e,t,n=[1,1],a="valid",r,s){return M(()=>{r==null&&(r=Fa()),Mt(r);let i=bx(e,r);if(e.rank!==4)throw new V(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new V(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=ns(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=Ve(i,[0,3,1,2])),i})}var Nx=class extends xx{constructor(e){super(2,e);this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=wt(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Ut(e.depthwiseConstraint),this.depthwiseRegularizer=kt(e.depthwiseRegularizer)}build(e){if(e=pt(e),e.length<4)throw new V(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);let t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new V(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);let n=e[t],a=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",a,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return M(()=>{e=Re(e);let n=g4(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=tr(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=pt(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,r=Ma(t,this.kernelSize[0],this.padding,this.strides[0]),s=Ma(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],a,r,s]:[e[0],r,s,a]}getConfig(){let e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=At(this.depthwiseInitializer),e.depthwiseRegularizer=dt(this.depthwiseRegularizer),e.depthwiseConstraint=Vt(this.depthwiseRegularizer),e}};Nx.className="DepthwiseConv2D";re.registerClass(Nx);function zI(e,t,n,a){if(Array.isArray(e)){if(t!=null||n!=null)throw new V("When inputs is an array, neither initialState or constants should be provided");a!=null&&(n=e.slice(e.length-a,e.length),e=e.slice(0,e.length-a)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function r(s){return s==null||Array.isArray(s)?s:[s]}return t=r(t),n=r(n),{inputs:e,initialState:t,constants:n}}function WI(e,t,n,a=!1,r,s,i=!1,o=!1){return M(()=>{let l=t.shape.length;if(l<3)throw new V(`Input should be at least 3D, but is ${l}D.`);let u=[1,0].concat(Ea(2,l));if(t=Ve(t,u),s!=null)throw new $e("The rnn() functoin of the deeplearn.js backend does not support constants yet.");i&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),r!=null&&(r=r.asType("bool").asType("float32"),r.rank===l-1&&(r=Rn(r,-1)),r=Ve(r,u)),a&&(t=Ln(t,0),r!=null&&(r=Ln(r,0)));let c=[],p,d=n,h=t.shape[0],m=ct(t),f;r!=null&&(f=ct(r));for(let y=0;ye(b,d));if(r==null)p=x[0],d=x[1];else{let v=M(()=>{let k=f[y],w=On(k).sub(k),S=x[0].mul(k).add(d[0].mul(w)),A=d.map((F,D)=>x[1][D].mul(k).add(F.mul(w)));return{output:S,newStates:A}});p=v.output,d=v.newStates}o&&c.push(p)}let g;return o&&(g=Dt(c,1)),[p,g,d]})}var nr=class extends je{constructor(e){super(e);let t;if(e.cell==null)throw new V("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new Cm({cells:e.cell}):t=e.cell,t.stateSize==null)throw new V("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new Yt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Ea(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Xb(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);let n=t[0],a;if(this.returnSequences?a=[e[0],e[1],n]:a=[e[0],n],this.returnState){let r=[];for(let s of t)r.push([e[0],s]);return[a].concat(r)}else return a}computeMask(e,t){return M(()=>{Array.isArray(t)&&(t=t[0]);let n=this.returnSequences?t:null;if(this.returnState){let a=this.states.map(r=>null);return[n].concat(a)}else return n})}get states(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ni.shape[i.shape.length-1]),s))throw new V(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=s.map(i=>new Yt({shape:[null,i]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){M(()=>{if(!this.stateful)throw new kr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new V("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>vt([n,a])):this.states_=[vt([n,this.cell.stateSize])];else if(e==null)Ee(this.states_),this.keptStates!=null&&(Ee(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>vt([n,a])):this.states_[0]=vt([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new V(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):Ee(this.states_);for(let a=0;aqt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=zI(e,n,a,this.numConstants);e=r.inputs,n=r.initialState,a=r.constants;let s=[],i=[];if(n!=null){t.initialState=n,s=s.concat(n),this.stateSpec=[];for(let o of n)this.stateSpec.push(new Yt({shape:o.shape}));i=i.concat(this.stateSpec)}if(a!=null&&(t.constants=a,s=s.concat(a),this.numConstants=a.length),s[0]instanceof $a){let o=[e].concat(s),l=this.inputSpec.concat(i),u=this.inputSpec;this.inputSpec=l;let c=super.apply(o,t);return this.inputSpec=u,c}else return super.apply(e,t)}call(e,t){return M(()=>{let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;e=Re(e),r==null&&(this.stateful?r=this.states_:r=this.getInitialState(e));let s=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(r.length!==s)throw new V(`RNN Layer has ${s} state(s) but was passed ${r.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let i={training:a},o=WI((d,h)=>{let m=this.cell.call([d].concat(h),i);return[m[0],m.slice(1)]},e,r,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],u=o[1],c=o[2];this.stateful&&this.resetStates(c,a);let p=this.returnSequences?u:l;return this.returnState?[p].concat(c):p})}getInitialState(e){return M(()=>{let t=vt(e.shape);return t=Se(t,[1,2]),t=Kc(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Mb(t,[1,n]):t):this.cell.stateSize>1?[Mb(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){let e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===nr.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,e,t)}static fromConfig(e,t,n={}){let a=t.cell,r=Da(a,n);return new e(Object.assign(t,{cell:r}))}};nr.className="RNN";re.registerClass(nr);var Qc=class extends je{},Am=class extends Qc{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Kt(this.units,"units"),this.activation=ds(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=wt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=kt(e.kernelRegularizer),this.recurrentRegularizer=kt(e.recurrentRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.kernelConstraint=Ut(e.kernelConstraint),this.recurrentConstraint=Ut(e.recurrentConstraint),this.biasConstraint=Ut(e.biasConstraint),this.dropout=tu([1,us([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=tu([1,us([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=pt(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return M(()=>{if(e=e,e.length!==2)throw new V(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];let a=t.training==null?!1:t.training;0On(e),rate:this.dropout,training:a})),0On(n),rate:this.recurrentDropout,training:a}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=er(B(e,s),this.kernel.read()):r=er(e,this.kernel.read()),this.bias!=null&&(r=tr(r,this.bias.read())),i!=null&&(n=B(n,i));let o=J(r,er(n,this.recurrentKernel.read()));return this.activation!=null&&(o=this.activation.apply(o)),[o,o]})}getConfig(){let e=super.getConfig(),t={units:this.units,activation:ps(this.activation),useBias:this.useBias,kernelInitializer:At(this.kernelInitializer),recurrentInitializer:At(this.recurrentInitializer),biasInitializer:At(this.biasInitializer),kernelRegularizer:dt(this.kernelRegularizer),recurrentRegularizer:dt(this.recurrentRegularizer),biasRegularizer:dt(this.biasRegularizer),activityRegularizer:dt(this.activityRegularizer),kernelConstraint:Vt(this.kernelConstraint),recurrentConstraint:Vt(this.recurrentConstraint),biasConstraint:Vt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}};Am.className="SimpleRNNCell";re.registerClass(Am);var Tx=class extends nr{constructor(e){e.cell=new Am(e),super(e)}call(e,t){return M(()=>{this.cell.dropoutMask!=null&&(Ee(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ee(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return new e(t)}};Tx.className="SimpleRNN";re.registerClass(Tx);var Fm=class extends Qc{constructor(e){super(e);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new V("GRUCell does not support reset_after parameter set to true.");this.units=e.units,Kt(this.units,"units"),this.activation=ds(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ds(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=wt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=kt(e.kernelRegularizer),this.recurrentRegularizer=kt(e.recurrentRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.kernelConstraint=Ut(e.kernelConstraint),this.recurrentConstraint=Ut(e.recurrentConstraint),this.biasConstraint=Ut(e.biasConstraint),this.dropout=tu([1,us([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=tu([1,us([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=pt(e);let t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return M(()=>{if(e=e,e.length!==2)throw new V(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training==null?!1:t.training,a=e[1];e=e[0],0On(e),rate:this.dropout,training:n,count:3})),0On(a),rate:this.recurrentDropout,training:n,count:3}));let r=this.dropoutMask,s=this.recurrentDropoutMask,i,o,l;0{this.cell.dropoutMask!=null&&(Ee(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ee(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Sx.className="GRU";re.registerClass(Sx);var ip=class extends Qc{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Kt(this.units,"units"),this.activation=ds(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ds(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=wt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=kt(e.kernelRegularizer),this.recurrentRegularizer=kt(e.recurrentRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.kernelConstraint=Ut(e.kernelConstraint),this.recurrentConstraint=Ut(e.recurrentConstraint),this.biasConstraint=Ut(e.biasConstraint),this.dropout=tu([1,us([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=tu([1,us([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=pt(e);let n=e[e.length-1];this.kernel=this.addWeight("kernel",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let a;if(this.useBias){if(this.unitForgetBias){let r=this.biasInitializer,s=this.units;a=new(t=class extends ga{apply(i,o){let l=r.apply([s]),u=new am().apply([s]),c=r.apply([s*2]);return $k($k(l,u),c)}},t.className="CustomInit",t)}else a=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,a,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return M(()=>{let n=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new V(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let a=e[1],r=e[2];e=e[0],0On(e),rate:this.dropout,training:n,count:4})),0On(a),rate:this.recurrentDropout,training:n,count:4}));let s=this.dropoutMask,i=this.recurrentDropoutMask,o,l,u,c;0{this.cell.dropoutMask!=null&&(Ee(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ee(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Cx.className="LSTM";re.registerClass(Cx);var Cm=class extends Qc{constructor(e){super(e);this.cells=e.cells}get stateSize(){let e=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return M(()=>{e=e;let n=e.slice(1),a=[];for(let i of this.cells.slice().reverse())Array.isArray(i.stateSize)?a.push(n.splice(0,i.stateSize.length)):a.push(n.splice(0,1));a.reverse();let r=[],s;for(let i=0;i{Vi(`RNNCell_${a}`,()=>{n.build(e),Array.isArray(n.stateSize)?t=n.stateSize[0]:t=n.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){let e=super.getConfig(),t=a=>({className:a.getClassName(),config:a.getConfig()}),n={cells:this.cells.map(t)};return Object.assign({},e,n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push(Da(r,n));return new e({cells:a})}get trainableWeights(){if(!this.trainable)return[];let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.cells)t.push(...n.trainableWeights);return t.concat(e)}return e}getWeights(){let e=[];for(let t of this.cells)e.push(...t.weights);return Kb(e)}setWeights(e){let t=[];for(let n of this.cells){let a=n.weights.length,r=e.splice(a);for(let s=0;sMk(t(),n),i=()=>Jc(s,t,a);return!r||r<=1?qt(i().clone()):Array(r).fill(void 0).map(i).map(o=>qt(o.clone()))}var y4=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,a=Object.getOwnPropertySymbols(e);r{if(this.cell.dropoutMask!=null&&(Ee(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ee(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new V("ConvRNN2D cell does not support constants");let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return M(()=>{let{stateSize:t}=this.cell,n=e.shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)],s=vt(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){M(()=>{if(!this.stateful)throw new kr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)];if(n[0]==null)throw new V("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>vt(r)):this.states_=[vt(r)];else if(e==null)Ee(this.states_),this.keptStates!=null&&(Ee(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>vt(r)):this.states_[0]=vt(r);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new V(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):Ee(this.states_);for(let s=0;sqt(s.clone()))})}computeSingleOutputShape(e){let{dataFormat:t,filters:n,kernelSize:a,padding:r,strides:s,dilationRate:i}=this.cell,o=t==="channelsFirst",l=e[o?3:2],u=e[o?4:3],c=Ma(l,a[0],r,s[0],i[0]),p=Ma(u,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,c,p]:[c,p,n]]}};BI.className="ConvRNN2D";var _m=class extends ip{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign({},e,{units:t}));this.filters=t,Kt(this.filters,"filters"),this.kernelSize=iu(n,2,"kernelSize"),this.kernelSize.forEach(o=>Kt(o,"kernelSize")),this.strides=iu(a||1,2,"strides"),this.strides.forEach(o=>Kt(o,"strides")),this.padding=r||"valid",na(this.padding),this.dataFormat=s||"channelsLast",Mt(this.dataFormat),this.dilationRate=iu(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>Kt(o,"dilationRate"))}build(e){var t;e=pt(e);let n=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[n]==null)throw new V(`The channel dimension of the input should be defined. Found ${e[n]}`);let a=e[n],r=4,s=this.kernelSize.concat([a,this.filters*r]);this.kernel=this.addWeight("kernel",s,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let i=this.kernelSize.concat([this.filters,this.filters*r]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let o;if(this.unitForgetBias){let l=this.biasInitializer,u=this.filters;o=new(t=class extends ga{apply(c,p){let d=l.apply([u]),h=Ya([u]),m=l.apply([u*2]);return Pb([d,h,m])}},t.className="CustomInit",t)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*r],null,o,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return M(()=>{if(e.length!==3)throw new V(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training||!1,a=e[0],r=e[1],s=e[2],i=4;0On(a),rate:this.dropout,training:n,count:i}));let o=this.dropoutMask,l=(Q,se,ne)=>!se||!se[ne]?Q:B(se[ne],Q),u=l(a,o,0),c=l(a,o,1),p=l(a,o,2),d=l(a,o,3);0On(r),rate:this.recurrentDropout,training:n,count:i}));let h=this.recurrentDropoutMask,m=l(r,h,0),f=l(r,h,1),g=l(r,h,2),y=l(r,h,3),b=3,[x,v,k,w]=zn(this.kernel.read(),i,b),[S,A,F,D]=this.useBias?zn(this.bias.read(),i):[null,null,null,null];u=this.inputConv(u,x,S,this.padding),c=this.inputConv(c,v,A,this.padding),p=this.inputConv(p,k,F,this.padding),d=this.inputConv(d,w,D,this.padding);let[R,L,W,U]=zn(this.recurrentKernel.read(),i,b);m=this.recurrentConv(m,R),f=this.recurrentConv(f,L),g=this.recurrentConv(g,W),y=this.recurrentConv(y,U);let G=this.recurrentActivation.apply(J(u,m)),X=this.recurrentActivation.apply(J(c,f)),j=J(B(X,s),B(G,this.activation.apply(J(p,g)))),te=B(this.recurrentActivation.apply(J(d,y)),this.activation.apply(j));return[te,te,j]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=y4(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},n,a)}inputConv(e,t,n,a){let r=Et(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?tr(r,n,this.dataFormat):r}recurrentConv(e,t){return Et(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};_m.className="ConvLSTM2DCell";re.registerClass(_m);var Ax=class extends BI{constructor(e){let t=new _m(e);super(Object.assign({},e,{cell:t}))}static fromConfig(e,t){return new e(t)}};Ax.className="ConvLSTM2D";re.registerClass(Ax);var Em=class extends je{constructor(e){super(e);this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;let t=e.shape,n=[];for(let a=0;a{this.invokeCallHook(e,t);let n=Re(e);if(0Mk(n,this.rate,r,this.seed),()=>n,a)}return e})}getConfig(){let e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}};Em.className="Dropout";re.registerClass(Em);var Fx=class extends Em{constructor(e){super(e);this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};Fx.className="SpatialDropout1D";re.registerClass(Fx);var _x=class extends je{constructor(e){super(e);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,Kt(this.units,"units"),this.activation=ds(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Ut(e.kernelConstraint),this.biasConstraint=Ut(e.biasConstraint),this.kernelRegularizer=kt(e.kernelRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.activityRegularizer=kt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=pt(e);let t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=pt(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return M(()=>{this.invokeCallHook(e,t);let n=Re(e),a=kk(this.activation.getClassName()),r;return a!=null?r=er(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=er(n,this.kernel.read()),this.bias!=null&&(r=tr(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:ps(this.activation),useBias:this.useBias,kernelInitializer:At(this.kernelInitializer),biasInitializer:At(this.biasInitializer),kernelRegularizer:dt(this.kernelRegularizer),biasRegularizer:dt(this.biasRegularizer),activityRegularizer:dt(this.activityRegularizer),kernelConstraint:Vt(this.kernelConstraint),biasConstraint:Vt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};_x.className="Dense";re.registerClass(_x);var Ex=class extends je{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=pt(e);for(let t of e.slice(1))if(t==null)throw new V(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],ls(e,1)]}call(e,t){return M(()=>{this.invokeCallHook(e,t);let n=Re(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Re(e);return this.activation.apply(n)})}getConfig(){let e={activation:ps(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};$x.className="Activation";re.registerClass($x);var Dx=class extends je{constructor(e){super(e);this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return M(()=>(e=Re(e),Wz(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};Dx.className="RepeatVector";re.registerClass(Dx);var Mx=class extends je{constructor(e){super(e);this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Re(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return n.reshape(r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};Mx.className="Reshape";re.registerClass(Mx);var Rx=class extends je{constructor(e){super(e);if(e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);let t=Ea(1,e.dims.length+1);if(!I.arraysEqual(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new Yt({ndim:this.dims.length+1})]}computeOutputShape(e){e=pt(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return Ve(Re(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};Rx.className="Permute";re.registerClass(Rx);var Px=class extends je{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){let n=Re(e),a=-1;return _c(Ri(n,this.maskValue),a)}call(e,t){return M(()=>{this.invokeCallHook(e,t);let n=Re(e),a=-1,r=!0,s=_c(Ri(n,this.maskValue),a,r);return n.mul(s.asType(n.dtype))})}};Px.className="Masking";re.registerClass(Px);var Ox=class extends je{constructor(e){super(e);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(yt(e.inputLength))}this.inputDim=e.inputDim,Kt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Kt(this.outputDim,"outputDim"),this.embeddingsInitializer=wt(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=kt(e.embeddingsRegularizer),this.activityRegularizer=kt(e.activityRegularizer),this.embeddingsConstraint=Ut(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return M(()=>this.maskZero?(e=Re(e),Ri(e,Ge(e))):null)}computeOutputShape(e){if(e=pt(e),this.inputLength==null)return[...e,this.outputDim];let t=yt(this.inputLength);if(t.length!==e.length-1)throw new V(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let a=0;a{this.invokeCallHook(e,t);let n=Re(e);return n.dtype!=="int32"&&(n=Xc(n,"int32")),Dk(this.embeddings.read(),n.as1D()).reshape(pt(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:At(this.embeddingsInitializer),embeddingsRegularizer:dt(this.embeddingsRegularizer),activityRegularizer:dt(this.activityRegularizer),embeddingsConstraint:Vt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};Ox.className="Embedding";re.registerClass(Ox);var qi=class extends je{constructor(e){super(e||{});this.supportsMasking=!0}mergeFunction(e){throw new $e}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new V(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=e[0]==null?null:e[0].slice(1);for(let r=1;rr.length);e.indexOf(null)===-1&&os(a).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return M(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=us(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=Ea(1,l).concat([0]);n.push(Ve(o,u)),r=!0}else n.push(o)}let s=this.mergeFunction(n),i=s.rank;if(r){if(i==null){let o=s.shape,l=o.length,u=o[l-1],c=[u].concat(o.slice(0,o.length-1));s=Ve(s.reshape([-1,u]),[1,0]).reshape(c)}else if(i>1){let o=[i-1].concat(Ea(0,i-1));s=Ve(s,o)}}return s}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let a=1;a{if(t==null)return null;if(!Array.isArray(t))throw new V("`mask` should be an Array");if(!Array.isArray(e))throw new V("`inputs` should be an Array");if(t.length!==e.length)throw new V(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(a=>a==null))return null;t=t.map(a=>a==null?a:Rn(a,0));let n=t[0];for(let a=1;a{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0];for(let n=1;n{let t=e[0];for(let n=1;n1)throw new V("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return M(()=>Pb(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new V("A `Concatenate` layer should be called on a list of inputs.");let t=e,n=t[0].slice(),a=this.axis<0?n.length+this.axis:this.axis;for(let r of t.slice(1)){if(n[a]==null||r[a]==null){n[a]=null;break}n[a]+=r[a]}return n}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new V("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new V("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new V(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return M(()=>{let n=!0;if(t.forEach(s=>{if(s!=null){n=!1;return}}),n)return null;let a=[];for(let s=0;s3||t.shape.length>3)throw new $e("batchDot is not implemented for tensors of 4D or higher rank yet");if(I.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),I.assert(e.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof n=="number"&&(n=[n,n]),e.dtype==="complex64"||t.dtype==="complex64")throw new $e("batchDot is not implemented for complex64-type Tensors yet.");let a=e.shape.length,r=t.shape.length;n==null&&(n=[a-1,r-2]);let s=n;return M(()=>{let i;if(a>r){i=a-r;let l=[];for(let u=0;ua){i=r-a;let l=[];for(let u=0;u0){let l;a>r?l=a+r-3:l=a-1;let u=[];for(let c=l;c"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0],n=e[1];if(t.length>3||n.length>3)throw new $e("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);if(t[a[0]]!==n[a[1]])throw new V(`Dimension incompatibility: ${t[a[0]]} !== ${n[a[1]]}`)}mergeFunction(e){if(e.length!==2)throw new V(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],n=e[1],a;return Array.isArray(this.axes)?a=this.axes.map((r,s)=>op(r,e[s].shape.length)):a=[op(this.axes,t.shape.length),op(this.axes,n.shape.length)],this.normalize&&(t=fm(t,a[0]),n=fm(n,a[1])),b4(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[op(this.axes,e.length),op(this.axes,t.length)],n}computeOutputShape(e){I.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new $e("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);t.splice(a[0],1),n.splice(a[1],1),n.splice(0,1);let r=t.concat(n);return r.length===1&&r.push(1),r}computeMask(e,t){return null}getConfig(){let e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}};Gx.className="Dot";re.registerClass(Gx);var Hx=class extends je{constructor(e){super(e);this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return M(()=>{this.invokeCallHook(e,t);let n=Re(e);return Jc(()=>nm(n.shape,0,this.stddev).add(n),()=>n,t.training||!1)})}};Hx.className="GaussianNoise";re.registerClass(Hx);var jx=class extends je{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return M(()=>{this.invokeCallHook(e,t);let n=Re(e);return this.rate>0&&this.rate<1?Jc(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return n.mul(nm(n.shape,1,a))},()=>n,t.training||!1):n})}};jx.className="GaussianDropout";re.registerClass(jx);var qx=class extends je{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Re(e).shape}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return M(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return Jc(()=>{let a=Re(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=rs(Kl(n),this.rate);o=Xc(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,u=-l*i*this.rate;return a.mul(o).add(o.add(-1).mul(i)).mul(l).add(u)},()=>Re(e),t.training||!1)}return e})}};qx.className="AlphaDropout";re.registerClass(qx);function lp(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=g1(e,t,n,a,r,s);else if(e.rank===3)i=y1(e,t,n,a,r,s);else if(e.rank===4)i=b1(e,t,n,a,r,s);else throw new $e(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function x4(e,t,n,a,r=.001){return M(()=>{let s=Fh(e,a),i=s.mean,o=s.variance;return[lp(e,i,o,n,t,r),i,o]})}function v4(e,t,n,a,r=.001){return M(()=>{let s=Fh(e,a),i=s.mean,o=s.variance,l=[];for(let h of Ea(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let u=i.reshape(l),c=o.reshape(l),p=t==null?null:t.reshape(l),d=n==null?null:n.reshape(l);return[lp(e,u,c,d,p,r),i,o]})}function w4(e,t,n,a,r=.001){return I.arraysEqual(a.slice().sort(),Ea(0,e.rank-1))?x4(e,t,n,a,r):v4(e,t,n,a,r)}var Xx=class extends je{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=wt(e.betaInitializer||"zeros"),this.gammaInitializer=wt(e.gammaInitializer||"ones"),this.movingMeanInitializer=wt(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=wt(e.movingVarianceInitializer||"ones"),this.betaConstraint=Ut(e.betaConstraint),this.gammaConstraint=Ut(e.gammaConstraint),this.betaRegularizer=kt(e.betaRegularizer),this.gammaRegularizer=kt(e.gammaRegularizer)}build(e){e=pt(e);let t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(n==null)throw new V(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new Yt({ndim:e.length,axes:{[t]:n}})];let a=[n];this.scale&&(this.gamma=this.addWeight("gamma",a,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",a,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",a,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",a,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return M(()=>{let n=t.training==null?!1:t.training,a=Re(e),r=a.shape,s=r.length,i=Ea(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=zi(1,s);l[o]=r[o];let u=i.slice();u.sort();let c=!I.arraysEqual(u,Ea(0,s).slice(0,s-1)),p=()=>{if(c){let g=this.movingMean.read().reshape(l),y=this.movingVariance.read().reshape(l),b=this.center?this.beta.read().reshape(l):null,x=this.scale?this.gamma.read().reshape(l):null;return lp(a,g,y,b,x,this.epsilon)}else return lp(a,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return p();let[d,h,m]=w4(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,y,b)=>{M(()=>{let x=1-b,v=g.read(),k=v.sub(y).mul(x);g.write(v.sub(k))})};return(()=>{f(this.movingMean,h,this.momentum),f(this.movingVariance,m,this.momentum)})(),d})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:At(this.betaInitializer),gammaInitializer:At(this.gammaInitializer),movingMeanInitializer:At(this.movingMeanInitializer),movingVarianceInitializer:At(this.movingVarianceInitializer),betaRegularizer:dt(this.betaRegularizer),gammaRegularizer:dt(this.gammaRegularizer),betaConstraint:Vt(this.betaConstraint),gammaConstraint:Vt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Xx.className="BatchNormalization";re.registerClass(Xx);var Kx=class extends je{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=wt(e.betaInitializer||"zeros"),this.gammaInitializer=wt(e.gammaInitializer||"ones"),this.betaRegularizer=kt(e.betaRegularizer),this.gammaRegularizer=kt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=pt(e);let t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let r=0;r=t)throw new Error(`Invalid axis: ${r}`);if(this.axis.length!==os(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(r=>e[r]),a=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,a):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,a):this.beta=null,this.built=!0}call(e,t){let n=Re(e),a=n.shape,r=a.length;return M(()=>{let s=!0,{mean:i,variance:o}=Fh(n,this.axis,s),l=zi(1,r);for(let m of this.axis)l[m]=a[m];let u=m=>m!=null&&m.shape.length!==r&&this.axis!==[r-1]?m.reshape(l):m,c=u(this.gamma.read()),p=u(this.beta.read()),d=[],h=[];for(let m=0;m{if(e.rank!==4)throw new V(`temporalPadding expects input tensor to be 4-D, but received a ${e.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new V("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(n==null&&(n=Fa()),n!=="channelsLast"&&n!=="channelsFirst")throw new V(`Unknown data format: ${n}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let a;return n==="channelsFirst"?a=[[0,0],[0,0],t[0],t[1]]:a=[[0,0],t[0],t[1],[0,0]],ta(e,a)})}var Yx=class extends je{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?Fa():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new V(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,n;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],n=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new V(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new V(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);n=e.padding[1]}this.padding=[t,n]}this.inputSpec=[new Yt({ndim:4})]}computeOutputShape(e){e=pt(e);let t,n;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?n=e[3]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],e[1],t,n]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?n=e[2]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],t,n,e[3]])}call(e,t){return M(()=>k4(Re(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Yx.className="ZeroPadding2D";re.registerClass(Yx);function $m(e,t,n,a,r,s){return M(()=>{Mt(r),Sk(s),na(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=Fa()),s==null&&(s="max"),e=bx(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=$t(e,t,n,o):i=Zn(e,t,n,o),r==="channelsFirst"&&(i=Ve(i,[0,3,1,2])),i})}function VI(e,t,n,a,r,s){return M(()=>{Mt(r),Sk(s),na(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=Fa()),s==null&&(s="max"),e=PI(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=ib(e,t,n,o):i=jy(e,t,n,o),r==="channelsFirst"&&(i=Ve(i,[0,4,1,2,3])),i})}var UI=class extends je{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new V(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(Kt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new V(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,na(this.padding),this.inputSpec=[new Yt({ndim:3})]}computeOutputShape(e){e=pt(e);let t=Ma(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return M(()=>{this.invokeCallHook(e,t),e=Kc(Re(e),2);let n=this.poolingFunction(Re(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return ss(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},Jx=class extends UI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Mt(r),na(a),$m(e,t,n,a,r,"max")}};Jx.className="MaxPooling1D";re.registerClass(Jx);var Qx=class extends UI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Mt(r),na(a),$m(e,t,n,a,r,"avg")}};Qx.className="AveragePooling1D";re.registerClass(Qx);var GI=class extends je{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new V(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];Kt(this.poolSize,"poolSize"),Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Mt(this.dataFormat),na(this.padding),this.inputSpec=[new Yt({ndim:4})]}computeOutputShape(e){e=pt(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Ma(t,this.poolSize[0],this.padding,this.strides[0]),n=Ma(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return M(()=>(this.invokeCallHook(e,t),this.poolingFunction(Re(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},Zx=class extends GI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Mt(r),na(a),$m(e,t,n,a,r,"max")}};Zx.className="MaxPooling2D";re.registerClass(Zx);var ev=class extends GI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Mt(r),na(a),$m(e,t,n,a,r,"avg")}};ev.className="AveragePooling2D";re.registerClass(ev);var HI=class extends je{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new V(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];Kt(this.poolSize,"poolSize"),Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Mt(this.dataFormat),na(this.padding),this.inputSpec=[new Yt({ndim:5})]}computeOutputShape(e){e=pt(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=Ma(t,this.poolSize[0],this.padding,this.strides[0]),n=Ma(n,this.poolSize[1],this.padding,this.strides[1]),a=Ma(a,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n,a]:[e[0],t,n,a,e[4]]}call(e,t){return M(()=>(this.invokeCallHook(e,t),this.poolingFunction(Re(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},tv=class extends HI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Mt(r),na(a),VI(e,t,n,a,r,"max")}};tv.className="MaxPooling3D";re.registerClass(tv);var nv=class extends HI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Mt(r),na(a),VI(e,t,n,a,r,"avg")}};nv.className="AveragePooling3D";re.registerClass(nv);var jI=class extends je{constructor(e){super(e);this.inputSpec=[new Yt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new $e}},av=class extends jI{constructor(e){super(e||{})}call(e,t){return M(()=>{let n=Re(e);return Ct(n,1)})}};av.className="GlobalAveragePooling1D";re.registerClass(av);var rv=class extends jI{constructor(e){super(e||{})}call(e,t){return M(()=>{let n=Re(e);return ea(n,1)})}};rv.className="GlobalMaxPooling1D";re.registerClass(rv);var qI=class extends je{constructor(e){super(e);this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Mt(this.dataFormat),this.inputSpec=[new Yt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new $e}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},sv=class extends qI{call(e,t){return M(()=>{let n=Re(e);return this.dataFormat==="channelsLast"?Ct(n,[1,2]):Ct(n,[2,3])})}};sv.className="GlobalAveragePooling2D";re.registerClass(sv);var iv=class extends qI{call(e,t){return M(()=>{let n=Re(e);return this.dataFormat==="channelsLast"?ea(n,[1,2]):ea(n,[2,3])})}};iv.className="GlobalMaxPooling2D";re.registerClass(iv);var XI=class extends je{constructor(e){super(e);this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){let e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){let a=t.layer,r=Da(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},ov=class extends XI{constructor(e){super(e);this.supportsMasking=!0}build(e){if(e=pt(e),e.length<3)throw new V(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];let t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=pt(e);let t=[e[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),a=e[1];return[n[0],a].concat(n.slice(1))}call(e,t){return M(()=>(e=Re(e),WI((n,a)=>[Re(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};ov.className="TimeDistributed";re.registerClass(ov);function I4(e){Bi(Rz,"BidirectionalMergeMode",e)}var N4="concat",lv=class extends XI{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Da(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=Da(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?N4:e.mergeMode,I4(this.mergeMode),e.weights)throw new $e("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){let t=e.length,n=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,n)),this.backwardLayer.setWeights(e.slice(n))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let n,a,r;return this.returnState&&(r=t.slice(1)),n=t[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,a=[n]):this.mergeMode==null?a=[n,n.slice()]:a=[n],this.returnState?this.mergeMode==null?a.concat(r).concat(r.slice()):[n].concat(r).concat(r.slice()):An(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=zI(e,n,a,this.numConstants);if(e=r.inputs,n=r.initialState,a=r.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(n==null||n.length===0)&&a==null)return super.apply(e,t);let s=[],i=[];if(n!=null){let l=n.length;if(l%2>0)throw new V("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=n,s.push(...n);let u=n.map(c=>new Yt({shape:c.shape}));this.forwardLayer.stateSpec=u.slice(0,l/2),this.backwardLayer.stateSpec=u.slice(l/2),i.push(...u)}if(a!=null)throw new $e("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof $a;for(let l of s)if(l instanceof $a!==o)throw new V("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){let l=[e].concat(s),u=this.inputSpec.concat(i),c=this.inputSpec;this.inputSpec=u;let p=super.apply(l,t);return this.inputSpec=c,p}else return super.apply(e,t)}call(e,t){return M(()=>{let n=t.initialState,a,r;if(n==null)a=this.forwardLayer.call(e,t),r=this.backwardLayer.call(e,t);else{let o=n.slice(0,n.length/2),l=n.slice(n.length/2);a=this.forwardLayer.call(e,Object.assign(t,{initialState:o})),r=this.backwardLayer.call(e,Object.assign(t,{initialState:l}))}let s;this.returnState&&(Array.isArray(a)&&(s=a.slice(1).concat(r.slice(1))),a=a[0],r=r[0]),this.returnSequences&&(r=Ln(r,1));let i;return this.mergeMode==="concat"?i=Pb([a,r]):this.mergeMode==="sum"?i=J(a,r):this.mergeMode==="ave"?i=B(.5,J(a,r)):this.mergeMode==="mul"?i=B(a,r):this.mergeMode==null&&(i=[a,r]),this.returnState?this.mergeMode==null?i.concat(s):[i].concat(s):i})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Vi(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Vi(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[t,t]:n=t:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let a=this.forwardLayer.states.map(r=>null);return Array.isArray(n)?n.concat(a).concat(a):[n].concat(a).concat(a)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){let e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){let n=Da(t.layer);if(delete t.layer,t.numConstants!=null)throw new $e("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};lv.className="Bidirectional";re.registerClass(lv);function Jz(e){return new nu(e)}function Qz(e){return new fx(e)}function Zz(e){return new dx(e)}function eW(e){return new hx(e)}function tW(e){return new mx(e)}function nW(e){return new yx(e)}function aW(e){return new gx(e)}function rW(e){return new Sm(e)}function sW(e){return new sp(e)}function iW(e){return new vx(e)}function oW(e){return new Tm(e)}function lW(e){return new wx(e)}function uW(e){return new kx(e)}function cW(e){return new Ix(e)}function pW(e){return new Nx(e)}function dW(e){return new $x(e)}function hW(e){return new _x(e)}function mW(e){return new Em(e)}function fW(e){return new Fx(e)}function gW(e){return new Ex(e)}function yW(e){return new Dx(e)}function bW(e){return new Mx(e)}function xW(e){return new Rx(e)}function vW(e){return new Ox(e)}function wW(e){return new Lx(e)}function kW(e){return new Wx(e)}function IW(e){return new Ux(e)}function NW(e){return new Bx(e)}function TW(e){return new Vx(e)}function SW(e){return new zx(e)}function CW(e){return new Gx(e)}function AW(e){return new Xx(e)}function FW(e){return new Kx(e)}function _W(e){return new Yx(e)}function Hb(e){return new Qx(e)}function EW(e){return Hb(e)}function $W(e){return Hb(e)}function jb(e){return new ev(e)}function DW(e){return jb(e)}function MW(e){return jb(e)}function qb(e){return new nv(e)}function RW(e){return qb(e)}function PW(e){return qb(e)}function OW(e){return new av(e)}function LW(e){return new sv(e)}function zk(e){return new rv(e)}function Wk(e){return new iv(e)}function Bk(e){return new Jx(e)}function Vk(e){return new Zx(e)}function zW(e){return new tv(e)}function WW(e){return new Sx(e)}function BW(e){return new Fm(e)}function VW(e){return new Cx(e)}function UW(e){return new ip(e)}function GW(e){return new Tx(e)}function HW(e){return new Am(e)}function jW(e){return new Ax(e)}function qW(e){return new _m(e)}function XW(e){return new nr(e)}function KW(e){return new Cm(e)}function YW(e){return new lv(e)}function JW(e){return new ov(e)}var QW=zk,ZW=Wk,eB=Bk,tB=Vk;function nB(e){return new Hx(e)}function aB(e){return new jx(e)}function rB(e){return new qx(e)}function sB(e){return new Px(e)}var KI={};Oe(KI,{MAPE:()=>R4,MSE:()=>L4,binaryAccuracy:()=>T4,binaryCrossentropy:()=>S4,categoricalAccuracy:()=>A4,categoricalCrossentropy:()=>F4,cosineProximity:()=>$4,mape:()=>P4,meanAbsoluteError:()=>D4,meanAbsolutePercentageError:()=>M4,meanSquaredError:()=>O4,mse:()=>z4,precision:()=>_4,recall:()=>E4,sparseCategoricalAccuracy:()=>C4});function T4(e,t){return Zb(e,t)}function S4(e,t){return aI(e,t)}function C4(e,t){return rI(e,t)}function A4(e,t){return ex(e,t)}function F4(e,t){return tx(e,t)}function _4(e,t){return nI(e,t)}function E4(e,t){return NB(e,t)}function $4(e,t){return Jb(e,t)}function D4(e,t){return gm(e,t)}function M4(e,t){return ru(e,t)}function R4(e,t){return ru(e,t)}function P4(e,t){return ru(e,t)}function O4(e,t){return Gi(e,t)}function L4(e,t){return Gi(e,t)}function z4(e,t){return Gi(e,t)}var YI={};Oe(YI,{modelFromJSON:()=>r4});var JI={};Oe(JI,{l1:()=>B4,l1l2:()=>W4,l2:()=>V4});function W4(e){return new ap(e)}function B4(e){return d4(e)}function V4(e){return h4(e)}var QI=class extends au{constructor(){super(...arguments);this.model=null}setModel(e){if(!(e instanceof Nr))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function Dm(e,t){return et}var eN=class extends QI{constructor(e){super();if(e==null&&(e={}),e.restoreBestWeights)throw new $e("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(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=Dm:this.mode==="max"?this.monitorFunc=ZI:this.monitor.indexOf("acc")!==-1?this.monitorFunc=ZI:this.monitorFunc=Dm,this.monitorFunc===Dm&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Dm?Infinity:-Infinity}async onEpochEnd(e,t){await cs(t);let n=this.getMonitorValue(t);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0)))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){e==null&&(e={});let t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}};function U4(e){return new eN(e)}var G4={earlyStopping:U4},Ra;(function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(Ra||(Ra={}));var tN;(function(e){let t;(function(n){n[n.LEGACY=0]="LEGACY",n[n.V1=1]="V1",n[n.V2=2]="V2"})(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))})(tN||(tN={}));var uv={};function H4(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};uv[e]=n}function nN(e){return uv[e]}function j4(e){delete uv[e]}function N(e,t,n,a,r){let s=t.inputParams[e];if(s&&s.inputIndexStart!==void 0){let o=s.inputIndexStart,l=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?o+1:s.inputIndexEnd;if(s.type==="tensor")return _n(t.inputNames[s.inputIndexStart],n,a,r);if(s.type==="tensors")return t.inputNames.slice(o,l).map(p=>_n(p,n,a,r));let u=_n(t.inputNames.slice(o)[0],n,a,r),c=u.dataSync();return s.type==="number"?c[0]:I.toNestedArray(u.shape,c)}let i=t.attrParams[e];return i&&i.value}function _n(e,t,n,a){let[r,s]=Bn(e);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[Mm(r,o)]);return i!==void 0?t[Mm(r,i)][s]:void 0}function q4(e,t,n){return t[Mm(e,n.currentContextId)]}function Tr(e,t){let[n,a]=Bn(e);return[Mm(n,t&&t.currentContextId),a]}function Mm(e,t){return t?`${e}-${t}`:e}function Bn(e){let t=e.split(":");return t.length===1?[e,0]:[t[0],Number(t[t.length-1])]}function Rm(e,t,n){let a=N("pad",e,t,n);if(a==="explicit"){a=N("explicitPaddings",e,t,n);let r=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)r[s][0]=a[s*2],r[s][1]=a[s*2+1];return r}return a}function Sr(e){return e.kept?e:Zr(e)}var aN={};Oe(aN,{json:()=>X4});var X4=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],rN={};Oe(rN,{json:()=>K4});var K4=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],sN={};Oe(sN,{json:()=>Y4});var Y4=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}],iN={};Oe(iN,{json:()=>J4});var J4=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],oN={};Oe(oN,{json:()=>Q4});var Q4=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],lN={};Oe(lN,{json:()=>Z4});var Z4=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],uN={};Oe(uN,{json:()=>eV});var eV=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],cN={};Oe(cN,{json:()=>tV});var tV=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],pN={};Oe(pN,{json:()=>nV});var nV=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableSize",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"LookupTableSizeV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]}],dN={};Oe(dN,{json:()=>aV});var aV=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}],hN={};Oe(hN,{json:()=>rV});var rV=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],mN={};Oe(mN,{json:()=>sV});var sV=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],fN={};Oe(fN,{json:()=>iV});var iV=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],gN={};Oe(gN,{json:()=>oV});var oV=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],yN={};Oe(yN,{json:()=>lV});var lV=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],bN={};Oe(bN,{json:()=>uV});var uV=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],xN={};Oe(xN,{json:()=>cV});var cV=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}],wN=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[aN,rN,sN,iN,oN,lN,uN,hN,dN,cN,mN,fN,gN,yN,bN,xN,pN],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}transformGraph(e,t={}){let n=e.node,a=[],r=[],s=[],i=n.reduce((m,f)=>(m[f.name]=this.mapNode(f),f.op.startsWith("Placeholder")?a.push(m[f.name]):f.op==="Const"?r.push(m[f.name]):(f.input==null||f.input.length===0)&&s.push(m[f.name]),m),{}),o=[],l=[],u={},c={};t!=null&&(u=this.mapSignatureEntries(t.inputs),c=this.mapSignatureEntries(t.outputs));let p=Object.keys(i);p.forEach(m=>{let f=i[m];f.inputNames.forEach(g=>{let[y]=Tr(g);f.inputs.push(i[y]),i[y].children.push(f)})}),Object.keys(c).length===0?p.forEach(m=>{let f=i[m];f.children.length===0&&l.push(f)}):Object.keys(c).forEach(m=>{let[f]=Tr(m),g=i[f];g!=null&&(g.signatureKey=c[m],l.push(g))}),Object.keys(u).length>0?Object.keys(u).forEach(m=>{let[f]=Tr(m),g=i[f];g&&(g.signatureKey=u[m],o.push(g))}):o=a;let d={};e.library!=null&&e.library.function!=null&&(d=e.library.function.reduce((m,f)=>(m[f.signature.name]=this.mapFunction(f),m),{}));let h={nodes:i,inputs:o,outputs:l,weights:r,placeholders:a,signature:t,functions:d};return s.length>0&&(h.initNodes=s),h}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,n)=>(t[e[n].name]=n,t),{})}mapNode(e){let t=nN(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});let n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(a=>a.startsWith("^")?a.substr(1):a),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return t.inputs!=null&&(n.inputParams=t.inputs.reduce((a,r)=>(a[r.name]={type:r.type,inputIndexStart:r.start,inputIndexEnd:r.end},a),{})),t.attrs!=null&&(n.attrParams=t.attrs.reduce((a,r)=>{let s=r.type,i;switch(r.type){case"string":i=cv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=cv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=bv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=bv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=dv(e.attr,r.tfName,r.defaultValue||0),i===void 0&&!!r.tfDeprecatedName&&(i=dv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=yv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=yv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=pv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=pv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=vv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=vv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=gv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=gv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=xv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=xv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=mv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=mv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=fv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=fv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=vN(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=vN(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${r.type} for op: ${e.op}`)}return a[r.name]={value:i,type:s},a},{})),n}mapFunction(e){let t=e.nodeDef,n=[],a=[],r={};t!=null&&(r=t.reduce((u,c)=>(u[c.name]=this.mapNode(c),c.op==="Const"&&a.push(u[c.name]),u),{}));let s=[],i=[];e.signature.inputArg.forEach(u=>{let[c]=Tr(u.name),p={name:c,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:hv(u.type),type:"dtype"}},children:[]};p.signatureKey=u.name,s.push(p),r[c]=p}),Object.keys(r).forEach(u=>{let c=r[u];c.inputNames.forEach(p=>{let[d]=Tr(p);c.inputs.push(r[d]),r[d].children.push(c)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[c,p]=Tr(o[u.name]),d=r[c];d!=null&&(d.defaultOutput=p,i.push(d))});let l=this.mapArgsToSignature(e);return{nodes:r,inputs:s,outputs:i,weights:a,placeholders:n,signature:l}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n),t),{}),outputs:e.signature.outputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t),{})}}mapArgToTensorInfo(e,t){let n=e.name;return t!=null&&(n=t[n]),{name:n,dtype:e.type}}};function pV(e){let t=Z().global;if(typeof t.atob!="undefined")return t.atob(e);if(typeof Buffer!="undefined")return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function kN(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):pV(e);return t?n:n.toLowerCase()}function cv(e,t,n,a=!1){let r=e[t];return r!=null?kN(r.s,a):n}function pv(e,t,n){let a=e[t];return a?a.b:n}function dv(e,t,n){let a=e[t]||{},r=a.i!=null?a.i:a.f!=null?a.f:n;return typeof r=="number"?r:parseInt(r,10)}function hv(e){switch(typeof e=="string"&&(e=Ra[e]),e){case Ra.DT_FLOAT:return"float32";case Ra.DT_INT32:case Ra.DT_INT64:case Ra.DT_INT8:case Ra.DT_UINT8:return"int32";case Ra.DT_BOOL:return"bool";case Ra.DT_DOUBLE:return"float32";case Ra.DT_STRING:return"string";default:return null}}function vN(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function mv(e,t,n){let a=e[t];return a&&a.type?hv(a.type):n}function fv(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>hv(r)):n}function IN(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function gv(e,t,n){let a=e[t];return a&&a.shape?IN(a.shape):n}function yv(e,t,n){let a=e[t];return a?((a.list.f&&a.list.f.length?a.list.f:a.list.i)||[]).map(r=>typeof r=="number"?r:parseInt(r,10)):n}function bv(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>kN(s,a)):n}function xv(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>IN(r)):n}function vv(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var dV=class{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(a=>this.getInput(a)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((a,r)=>(a[r]=this.getAttr(r),a),{}))}getInput(e){return _n(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return _n(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return dv(this.node.rawAttrs,e,t);if(n.s!=null)return cv(this.node.rawAttrs,e,t);if(n.b!=null)return pv(this.node.rawAttrs,e,t);if(n.shape!=null)return gv(this.node.rawAttrs,e,t);if(n.type!=null)return mv(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return yv(this.node.rawAttrs,e,t);if(n.list.s!=null)return bv(this.node.rawAttrs,e,t);if(n.list.shape!=null)return xv(this.node.rawAttrs,e,t);if(n.list.b!=null)return vv(this.node.rawAttrs,e,t);if(n.list.type!=null)return fv(this.node.rawAttrs,e,t)}return t}},hV=(e,t,n)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[J(N("a",e,t,n),N("b",e,t,n))];case"AddN":return[d1(N("tensors",e,t,n))];case"FloorMod":case"Mod":return[lb(N("a",e,t,n),N("b",e,t,n))];case"Mul":return[B(N("a",e,t,n),N("b",e,t,n))];case"RealDiv":case"Div":return[xe(N("a",e,t,n),N("b",e,t,n))];case"DivNoNan":return[Qy(N("a",e,t,n),N("b",e,t,n))];case"FloorDiv":return[gh(N("a",e,t,n),N("b",e,t,n))];case"Sub":return[me(N("a",e,t,n),N("b",e,t,n))];case"Minimum":return[Xl(N("a",e,t,n),N("b",e,t,n))];case"Maximum":return[Ka(N("a",e,t,n),N("b",e,t,n))];case"Pow":return[xr(N("a",e,t,n),N("b",e,t,n))];case"SquaredDifference":return[zh(N("a",e,t,n),N("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},mV=(e,t,n)=>{switch(e.op){case"Abs":case"ComplexAbs":return[zt(N("x",e,t,n))];case"Acos":return[Py(N("x",e,t,n))];case"Acosh":return[Oy(N("x",e,t,n))];case"Asin":return[zy(N("x",e,t,n))];case"Asinh":return[Wy(N("x",e,t,n))];case"Atan":return[By(N("x",e,t,n))];case"Atan2":return[Vy(N("x",e,t,n),N("y",e,t,n))];case"Atanh":return[Uy(N("x",e,t,n))];case"Ceil":return[qy(N("x",e,t,n))];case"Complex":return[Yr(N("real",e,t,n),N("imag",e,t,n))];case"Cos":return[Rc(N("x",e,t,n))];case"Cosh":return[wh(N("x",e,t,n))];case"Elu":return[Gl(N("x",e,t,n))];case"Erf":return[Zy(N("x",e,t,n))];case"Exp":return[hn(N("x",e,t,n))];case"Expm1":return[eb(N("x",e,t,n))];case"Floor":return[Hl(N("x",e,t,n))];case"Log":return[Pn(N("x",e,t,n))];case"Log1p":return[Th(N("x",e,t,n))];case"Imag":return[Ih(N("x",e,t,n))];case"Neg":return[St(N("x",e,t,n))];case"Reciprocal":return[pb(N("x",e,t,n))];case"Real":return[Wc(N("x",e,t,n))];case"Relu":return[qe(N("x",e,t,n))];case"Round":return[db(N("x",e,t,n))];case"Selu":return[Mh(N("x",e,t,n))];case"Sigmoid":return[da(N("x",e,t,n))];case"Sin":return[Rh(N("x",e,t,n))];case"Sign":return[hb(N("x",e,t,n))];case"Sinh":return[Ph(N("x",e,t,n))];case"Softplus":return[jl(N("x",e,t,n))];case"Sqrt":return[rn(N("x",e,t,n))];case"Square":return[ut(N("x",e,t,n))];case"Tanh":return[Ul(N("x",e,t,n))];case"Tan":return[gb(N("x",e,t,n))];case"ClipByValue":return[Xt(N("x",e,t,n),N("clipValueMin",e,t,n),N("clipValueMax",e,t,n))];case"Relu6":return[$h(N("x",e,t,n))];case"Rsqrt":return[Dh(_n(e.inputNames[0],t,n))];case"Prod":return[_h(N("x",e,t,n),N("axes",e,t,n))];case"LeakyRelu":return[Pc(N("x",e,t,n),N("alpha",e,t,n))];case"Prelu":return[zc(N("x",e,t,n),N("alpha",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function ba(e,t,n=""){if(!(typeof e=="number"||typeof t=="number")){I.assert(e.length===t.length,()=>n+` Shapes ${e} and ${t} must match`);for(let a=0;an+` Shapes ${e} and ${t} must match`)}}}function NN(e){return!(typeof e=="number"||e.some(t=>t<0))}function up(e,t,n){let a=wv(e,n),r=!NN(a);if(r&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${a}`);if(r&&t.forEach(s=>{a=wv(s.shape,a)}),!NN(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function wv(e,t){if(typeof e=="number")return t;if(typeof t=="number")return e;if(e.length!==t.length)throw new Error(`Incompatible ranks during merge: ${e} vs. ${t}`);let n=[];for(let a=0;a=0&&s>=0&&r!==s)throw new Error(`Incompatible shape during merge: ${e} vs. ${t}`);n[a]=r>=0?r:s}return n}var fV=class{constructor(e,t,n,a,r,s,i){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=a,this.identicalElementShapes=r,this.dynamicSize=s,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=ce(0),qt(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.tensor.id))&&t.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);let t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(t=>this.read(t))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, + because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),ba(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);n.tensor=t,qt(t),n.written=!0,this.tensors[e]=n}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach((n,a)=>this.write(n,t[a]))}gather(e,t){if(!!t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let a=0;a=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(e,ct(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let n=0,a=e.map(o=>(n+=o,n));if(n!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${n}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);let r=n===0?0:t.size/n,s=[];D(()=>{t=U(t,[1,n,r]);for(let o=0;o{if(n!==r.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${r.dtype}`);ba(t,r.shape,"TensorList shape mismatch: "),jt(r)}),this.idTensor=pe(0),this.maxNumElements=a,jt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new up([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.id))&&t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,n=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);ba(e,this.elementShape,"TensorList shape mismatch: ");let a=lp(this.elementShape,this.tensors,e);return D(()=>{let r=this.tensors.map(s=>U(s,a));return $t(r,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=lp(this.elementShape,this.tensors,e),a=this.tensors.pop();return ba(a.shape,e,"TensorList shape mismatch: "),U(a,n)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(ba(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");jt(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,n){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);ba(this.tensors[e].shape,t,"TensorList shape mismatch: ");let a=lp(this.elementShape,this.tensors,t);return U(this.tensors[e],a)}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);ba(this.elementShape,t.shape,"TensorList shape mismatch: "),jt(t),this.tensors[e]=t}gather(e,t,n){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);ba(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());let a=lp(this.elementShape,this.tensors,n);return e.length===0?Jn([],[0].concat(a)):D(()=>{let r=e.map(s=>U(this.tensors[s],a));return $t(r,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);ba(this.elementShape,t,"TensorList shape mismatch: ");let n=lp(this.elementShape,this.tensors,t);return this.size()===0?Jn([],[0].concat(n)):D(()=>{let a=this.tensors.map(r=>U(r,n));return Je(a,0)})}};function G4(e,t,n){let a=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==n)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${n}`);let r=e.shape.slice(1);ba(r,t,"TensorList shape mismatch: ");let s=ut(e);return new up(s,t,a)}function H4(e,t,n){return new up([],e,t,n)}function j4(e,t,n,a){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);let r=Math.max(...t);if(a!=null&&a!==-1&&r>=a)throw new Error(`Max index must be < array size (${r} vs. ${a})`);let s=new up([],n,e.dtype,a),i=ut(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function q4(e,t,n){let a=0,r=t.map(u=>(a+=u,a));if(a!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to + ${n}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);let r=n===0?0:t.size/n,s=[];M(()=>{t=H(t,[1,n,r]);for(let o=0;o{if(n!==r.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${r.dtype}`);ba(t,r.shape,"TensorList shape mismatch: "),qt(r)}),this.idTensor=ce(0),this.maxNumElements=a,qt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new cp([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.id))&&t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,n=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);ba(e,this.elementShape,"TensorList shape mismatch: ");let a=up(this.elementShape,this.tensors,e);return M(()=>{let r=this.tensors.map(s=>H(s,a));return Dt(r,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=up(this.elementShape,this.tensors,e),a=this.tensors.pop();return ba(a.shape,e,"TensorList shape mismatch: "),H(a,n)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(ba(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");qt(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,n){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);ba(this.tensors[e].shape,t,"TensorList shape mismatch: ");let a=up(this.elementShape,this.tensors,t);return H(this.tensors[e],a)}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);ba(this.elementShape,t.shape,"TensorList shape mismatch: "),qt(t),this.tensors[e]=t}gather(e,t,n){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);ba(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());let a=up(this.elementShape,this.tensors,n);return e.length===0?Jn([],[0].concat(a)):M(()=>{let r=e.map(s=>H(this.tensors[s],a));return Dt(r,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);ba(this.elementShape,t,"TensorList shape mismatch: ");let n=up(this.elementShape,this.tensors,t);return this.size()===0?Jn([],[0].concat(n)):M(()=>{let a=this.tensors.map(r=>H(r,n));return Je(a,0)})}};function gV(e,t,n){let a=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==n)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${n}`);let r=e.shape.slice(1);ba(r,t,"TensorList shape mismatch: ");let s=ct(e);return new cp(s,t,a)}function yV(e,t,n){return new cp([],e,t,n)}function bV(e,t,n,a){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);let r=Math.max(...t);if(a!=null&&a!==-1&&r>=a)throw new Error(`Max index must be < array size (${r} vs. ${a})`);let s=new cp([],n,e.dtype,a),i=ct(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function xV(e,t,n){let a=0,r=t.map(c=>(a+=c,a));if(a!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${a}, and tensor's shape is: ${e.shape}`);let s=e.shape.slice(1),i=wv(s,n),o=a===0?0:e.size/a,l=D(()=>{let u=[];e=U(e,[1,a,o]);for(let p=0;p{switch(e.op){case"If":case"StatelessIf":{let a=k("thenBranch",e,t,n),r=k("elseBranch",e,t,n),s=k("cond",e,t,n),i=k("args",e,t,n);return(await s.data())[0]?n.functionMap[a].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap):n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{let a=k("body",e,t,n),r=k("cond",e,t,n),s=k("args",e,t,n),i=await n.functionMap[r].executeFunctionAsync(s,n.tensorArrayMap,n.tensorListMap),o=s.map(u=>u.id),l=await i[0].data();i.forEach(u=>{!u.kept&&o.indexOf(u.id)===-1&&u.dispose()});let c=s;for(;l[0];){let u=c;c=await n.functionMap[a].executeFunctionAsync(c,n.tensorArrayMap,n.tensorListMap);let p=c.map(h=>h.id);u.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&p.indexOf(h.id)===-1&&h.dispose()});let d=await n.functionMap[r].executeFunctionAsync(c,n.tensorArrayMap,n.tensorListMap);l=await d[0].data(),d.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&p.indexOf(h.id)===-1&&h.dispose()})}return c}case"LoopCond":{let a=k("pred",e,t,n);return[Sr(a)]}case"Switch":{let a=k("pred",e,t,n),r=k("data",e,t,n);return r.kept||(r=Sr(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>Fn(r,t,n)!==void 0);if(a){let r=Fn(a,t,n);return[Sr(r)]}return}case"Enter":{let a=k("frameName",e,t,n),r=k("tensor",e,t,n);return n.enterFrame(a),[Sr(r)]}case"Exit":{let a=k("tensor",e,t,n);return n.exitFrame(),[Sr(a)]}case"NextIteration":{let a=k("tensor",e,t,n);return n.nextIteration(),[Sr(a)]}case"TensorArrayV3":{let a=k("size",e,t,n),r=k("dtype",e,t,n),s=k("elementShape",e,t,n),i=k("dynamicSize",e,t,n),o=k("clearAfterRead",e,t,n),l=k("identicalElementShapes",e,t,n),c=k("name",e,t,n),u=new U4(c,r,a,s,l,i,o);return n.addTensorArray(u),[u.idTensor,pe(1)]}case"TensorArrayWriteV3":{let a=k("tensorArrayId",e,t,n),r=k("index",e,t,n),s=k("tensor",e,t,n),i=n.getTensorArray(a.id);return i.write(r,s),[i.idTensor]}case"TensorArrayReadV3":{let a=k("tensorArrayId",e,t,n),r=k("index",e,t,n);return[n.getTensorArray(a.id).read(r)]}case"TensorArrayGatherV3":{let a=k("tensorArrayId",e,t,n),r=k("indices",e,t,n),s=k("dtype",e,t,n);return[n.getTensorArray(a.id).gather(r,s)]}case"TensorArrayScatterV3":{let a=k("tensorArrayId",e,t,n),r=k("indices",e,t,n),s=k("tensor",e,t,n),i=n.getTensorArray(a.id);return i.scatter(r,s),[i.idTensor]}case"TensorArrayConcatV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id),s=k("dtype",e,t,n);return[r.concat(s)]}case"TensorArraySplitV3":{let a=k("tensorArrayId",e,t,n),r=k("tensor",e,t,n),s=k("lengths",e,t,n),i=n.getTensorArray(a.id);return i.split(s,r),[i.idTensor]}case"TensorArraySizeV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return[pe(r.size(),"int32")]}case"TensorArrayCloseV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return r.clearAndClose(),[r.idTensor]}case"TensorListSetItem":{let a=k("tensorListId",e,t,n),r=k("index",e,t,n),s=k("tensor",e,t,n),i=n.getTensorList(a.id);return i.setItem(r,s),[i.idTensor]}case"TensorListGetItem":{let a=k("tensorListId",e,t,n),r=k("index",e,t,n),s=k("elementShape",e,t,n),i=k("elementDType",e,t,n);return[n.getTensorList(a.id).getItem(r,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let a=k("indices",e,t,n),r=k("tensor",e,t,n),s=k("elementShape",e,t,n),i=k("numElements",e,t,n),o=j4(r,a,s,i);return n.addTensorList(o),[o.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let a=k("elementShape",e,t,n),r=k("elementDType",e,t,n),s;e.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=k(s,e,t,n),o=H4(a,r,i);return n.addTensorList(o),[o.idTensor]}case"TensorListGather":{let a=k("tensorListId",e,t,n),r=k("indices",e,t,n),s=k("elementShape",e,t,n),i=k("elementDType",e,t,n);return[n.getTensorList(a.id).gather(r,i,s)]}case"TensorListStack":{let a=k("tensorListId",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n),i=k("numElements",e,t,n);return[n.getTensorList(a.id).stack(r,s,i)]}case"TensorListFromTensor":{let a=k("tensor",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n),i=G4(a,r,s);return n.addTensorList(i),[i.idTensor]}case"TensorListConcat":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id),s=k("dtype",e,t,n),i=k("elementShape",e,t,n);return[r.concat(s,i)]}case"TensorListPushBack":{let a=k("tensorListId",e,t,n),r=k("tensor",e,t,n),s=n.getTensorList(a.id);return s.pushBack(r),[s.idTensor]}case"TensorListPopBack":{let a=k("tensorListId",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n);return[n.getTensorList(a.id).popBack(r,s)]}case"TensorListSplit":{let a=k("tensor",e,t,n),r=k("elementShape",e,t,n),s=k("lengths",e,t,n),i=q4(a,s,r);return n.addTensorList(i),[i.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function wT(e,t,n){let[a,r]=k("fusedOps",e,t,n),s=a==="biasadd",i=r==="prelu",o=a==="fusedbatchnorm",l=k("numArgs",e,t,n);if(s){if(i&&l!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(o)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");let c=k("strides",e,t,n),u=Mm(e,t,n),p=k("dataFormat",e,t,n).toUpperCase(),d=k("dilations",e,t,n),[h,m]=k("args",e,t,n),f=k("leakyreluAlpha",e,t,n);return{stride:c,pad:u,dataFormat:p,dilations:d,biasArg:h,preluArg:m,activationFunc:r,leakyreluAlpha:f}}var X4=(e,t,n)=>{switch(e.op){case"Conv1D":{let a=k("stride",e,t,n),r=k("pad",e,t,n),s=k("dataFormat",e,t,n).toUpperCase(),i=k("dilation",e,t,n);return[xh(k("x",e,t,n),k("filter",e,t,n),a,r,s,i)]}case"Conv2D":{let a=k("strides",e,t,n),r=Mm(e,t,n),s=k("dataFormat",e,t,n).toUpperCase(),i=k("dilations",e,t,n);return[Ft(k("x",e,t,n),k("filter",e,t,n),[a[1],a[2]],r,s,[i[1],i[2]])]}case"_FusedConv2D":{let{stride:a,pad:r,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:c,leakyreluAlpha:u}=wT(e,t,n);return[is.conv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[a[1],a[2]],pad:r,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:c,preluActivationWeights:l,leakyreluAlpha:u})]}case"FusedDepthwiseConv2dNative":{let{stride:a,pad:r,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:c,leakyreluAlpha:u}=wT(e,t,n);return[is.depthwiseConv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[a[1],a[2]],pad:r,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:c,preluActivationWeights:l,leakyreluAlpha:u})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let a=k("outputShape",e,t,n),r=k("strides",e,t,n),s=Mm(e,t,n);return[vh(k("x",e,t,n),k("filter",e,t,n),a,[r[1],r[2]],s)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let a=k("strides",e,t,n),r=Mm(e,t,n),s=k("dilations",e,t,n),i=k("dataFormat",e,t,n).toUpperCase();return[ns(k("input",e,t,n),k("filter",e,t,n),[a[1],a[2]],r,i,[s[1],s[2]])]}case"Conv3D":{let a=k("strides",e,t,n),r=k("pad",e,t,n),s=k("dataFormat",e,t,n).toUpperCase(),i=k("dilations",e,t,n);return[Xy(k("x",e,t,n),k("filter",e,t,n),[a[1],a[2],a[3]],r,s,[i[1],i[2],i[3]])]}case"AvgPool":{let a=k("strides",e,t,n),r=k("pad",e,t,n),s=k("kernelSize",e,t,n);return[Zn(k("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r)]}case"MaxPool":{let a=k("strides",e,t,n),r=k("pad",e,t,n),s=k("kernelSize",e,t,n);return[At(k("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r)]}case"MaxPoolWithArgmax":{let a=k("strides",e,t,n),r=k("pad",e,t,n),s=k("kernelSize",e,t,n),i=k("includeBatchInIndex",e,t,n),{result:o,indexes:l}=Dk(k("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r,i);return[o,l]}case"AvgPool3D":{let a=k("strides",e,t,n),r=k("pad",e,t,n),s=k("kernelSize",e,t,n);return[jy(k("x",e,t,n),[s[1],s[2],s[3]],[a[1],a[2],a[3]],r)]}case"MaxPool3D":{let a=k("strides",e,t,n),r=k("pad",e,t,n),s=k("kernelSize",e,t,n);return[ib(k("x",e,t,n),[s[1],s[2],s[3]],[a[1],a[2],a[3]],r)]}case"Dilation2D":{let a=k("strides",e,t,n),r=k("pad",e,t,n),s=k("dilations",e,t,n),i=a[1],o=a[2],l=s[1],c=s[2];return[Jy(k("x",e,t,n),k("filter",e,t,n),[i,o],r,[l,c],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},Y4=(e,t,n)=>{switch(e.op){case"Fill":{let a=k("shape",e,t,n),r=k("dtype",e,t,n),s=k("value",e,t,n);return[Cn(a,s,r)]}case"LinSpace":{let a=k("start",e,t,n),r=k("stop",e,t,n),s=k("num",e,t,n);return[Sk(a,r,s)]}case"Multinomial":{let a=k("logits",e,t,n),r=k("numSamples",e,t,n),s=k("seed",e,t,n);return[Rk(a,r,s)]}case"OneHot":{let a=k("indices",e,t,n),r=k("depth",e,t,n),s=k("onValue",e,t,n),i=k("offValue",e,t,n);return[Bl(a,r,s,i)]}case"Ones":return[Ya(k("shape",e,t,n),k("dtype",e,t,n))];case"OnesLike":return[On(k("x",e,t,n))];case"RandomUniform":return[Xl(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("dtype",e,t,n))];case"Range":{let a=k("start",e,t,n),r=k("stop",e,t,n),s=k("step",e,t,n);return[Ah(a,r,s,k("dtype",e,t,n))]}case"TruncatedNormal":{let a=k("shape",e,t,n),r=k("mean",e,t,n),s=k("stdDev",e,t,n),i=k("seed",e,t,n);return[Bh(a,r,s,k("dtype",e,t,n),i)]}case"Zeros":return[xt(k("shape",e,t,n),k("dtype",e,t,n))];case"ZerosLike":return[Ge(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function kv(e,t,n){let a=k("boxes",e,t,n),r=k("scores",e,t,n),s=k("maxOutputSize",e,t,n),i=k("iouThreshold",e,t,n),o=k("scoreThreshold",e,t,n),l=k("softNmsSigma",e,t,n);return{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}}var J4=async(e,t,n)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}=kv(e,t,n),c=await Ja.nonMaxSuppressionWithScoreAsync(a,r,s,i,o,l);return[c.selectedIndices,c.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=kv(e,t,n),l=k("padToMaxOutputSize",e,t,n),c=await Ja.nonMaxSuppressionPaddedAsync(a,r,s,i,o,l);return[c.selectedIndices,c.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=kv(e,t,n);return[await Ja.nonMaxSuppressionAsync(a,r,s,i,o)]}case"Where":{let a=ue(k("condition",e,t,n),"bool"),r=[await xb(a)];return a.dispose(),r}case"ListDiff":return Ok(k("x",e,t,n),k("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}},Q4=(e,t,n)=>{switch(e.op){case"TopKV2":{let a=k("x",e,t,n),r=k("k",e,t,n),s=k("sorted",e,t,n),i=yb(a,r,s);return[i.values,i.indices]}case"Unique":{let a=k("x",e,t,n),r=Wh(a);return[r.values,r.indices]}case"UniqueV2":{let a=k("x",e,t,n),r=k("axis",e,t,n),s=Wh(a,r);return[s.values,s.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},Z4=(e,t,n)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let a=k("default",e,t,n);return[Fn(e.name,t,n)||a];case"Placeholder":return[Fn(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let c=k("x",e,t,n);return[Sr(c)]}case"IdentityN":return k("x",e,t,n).map(c=>Sr(c));case"Snapshot":let r=k("x",e,t,n);return[Sr(r)];case"Shape":return[Ze(k("x",e,t,n).shape,"int32")];case"ShapeN":return k("x",e,t,n).map(c=>Ze(c.shape));case"Size":return[pe(k("x",e,t,n).size,"int32")];case"Rank":return[pe(k("x",e,t,n).rank,"int32")];case"NoOp":return[pe(1)];case"Print":let s=k("x",e,t,n),i=k("data",e,t,n),o=k("message",e,t,n),l=k("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(o);for(let c=0;ce.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}async import(e,t){this.checkKeyAndValueTensor(e,t);let n=await e.data();return this.tensorMap.forEach(a=>a.dispose()),this.tensorMap.clear(),D(()=>{let a=ut(t),r=n.length,s=a.length;w.assert(r===s,()=>`The number of elements doesn't match, keys has ${r} elements, the values has ${s} elements.`);for(let i=0;i{let a=[];for(let r=0;r{switch(e.op){case"HashTable":case"HashTableV2":{let r=k("keyDType",e,t,n),s=k("valueDType",e,t,n),i=new eV(r,s);return a.addHashTable(e.name,i),[i.handle]}case"LookupTableImport":case"LookupTableImportV2":{let r=k("tableHandle",e,t,n,a),s=k("keys",e,t,n),i=k("values",e,t,n);return[await a.getHashTableById(r.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let r=k("tableHandle",e,t,n,a),s=k("keys",e,t,n),i=k("defaultValue",e,t,n);return[await a.getHashTableById(r.id).find(s,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},nV=(e,t,n)=>{switch(e.op){case"ResizeBilinear":{let a=k("images",e,t,n),r=k("size",e,t,n),s=k("alignCorners",e,t,n),i=k("halfPixelCenters",e,t,n);return[Ja.resizeBilinear(a,[r[0],r[1]],s,i)]}case"ResizeNearestNeighbor":{let a=k("images",e,t,n),r=k("size",e,t,n),s=k("alignCorners",e,t,n),i=k("halfPixelCenters",e,t,n);return[Ja.resizeNearestNeighbor(a,[r[0],r[1]],s,i)]}case"CropAndResize":{let a=k("image",e,t,n),r=k("boxes",e,t,n),s=k("boxInd",e,t,n),i=k("cropSize",e,t,n),o=k("method",e,t,n),l=k("extrapolationValue",e,t,n);return[Ja.cropAndResize(a,r,s,i,o,l)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},aV=(e,t,n)=>{switch(e.op){case"Equal":return[as(k("a",e,t,n),k("b",e,t,n))];case"NotEqual":return[Mi(k("a",e,t,n),k("b",e,t,n))];case"Greater":return[ha(k("a",e,t,n),k("b",e,t,n))];case"GreaterEqual":return[rs(k("a",e,t,n),k("b",e,t,n))];case"Less":return[Th(k("a",e,t,n),k("b",e,t,n))];case"LessEqual":return[Di(k("a",e,t,n),k("b",e,t,n))];case"LogicalAnd":return[ma(k("a",e,t,n),k("b",e,t,n))];case"LogicalNot":return[Pc(k("a",e,t,n))];case"LogicalOr":return[_h(k("a",e,t,n),k("b",e,t,n))];case"Select":case"SelectV2":return[Sn(k("condition",e,t,n),k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},rV=(e,t,n)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[ze(k("a",e,t,n),k("b",e,t,n),k("transposeA",e,t,n),k("transposeB",e,t,n))];case"Transpose":return[Ve(k("x",e,t,n),k("perm",e,t,n))];case"_FusedMatMul":let[a,r]=k("fusedOps",e,t,n),s=a==="biasadd",i=r==="prelu",o=k("numArgs",e,t,n),l=k("leakyreluAlpha",e,t,n);if(s){if(i&&o!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&o!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[c,u]=k("args",e,t,n);return[is.matMul({a:k("a",e,t,n),b:k("b",e,t,n),transposeA:k("transposeA",e,t,n),transposeB:k("transposeB",e,t,n),bias:c,activation:r,preluActivationWeights:u,leakyreluAlpha:l})];default:throw TypeError(`Node type ${e.op} is not implemented`)}},sV=(e,t,n)=>{switch(e.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[br(k("x",e,t,n),k("mean",e,t,n),k("variance",e,t,n),k("offset",e,t,n),k("scale",e,t,n),k("epsilon",e,t,n))];case"FusedBatchNormV3":return[br(k("x",e,t,n),k("mean",e,t,n),k("variance",e,t,n),k("offset",e,t,n),k("scale",e,t,n),k("epsilon",e,t,n))];case"LRN":return[nb(k("x",e,t,n),k("radius",e,t,n),k("bias",e,t,n),k("alpha",e,t,n),k("beta",e,t,n))];case"Softmax":return[Na(k("x",e,t,n))];case"LogSoftmax":return[Ch(k("x",e,t,n))];case"SparseToDense":return[vb(k("sparseIndices",e,t,n),k("outputShape",e,t,n),k("sparseValues",e,t,n),k("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},iV=(e,t,n)=>{switch(e.op){case"Max":{let i=k("axis",e,t,n),o=k("keepDims",e,t,n);return[ea(k("x",e,t,n),i,o)]}case"Mean":{let i=k("axis",e,t,n),o=k("keepDims",e,t,n);return[St(k("x",e,t,n),i,o)]}case"Min":{let i=k("axis",e,t,n),o=k("keepDims",e,t,n);return[ql(k("x",e,t,n),i,o)]}case"Sum":{let i=k("axis",e,t,n),o=k("keepDims",e,t,n);return[Se(k("x",e,t,n),i,o)]}case"All":{let i=k("axis",e,t,n),o=k("keepDims",e,t,n);return[yh(k("x",e,t,n),i,o)]}case"Any":{let i=k("axis",e,t,n),o=k("keepDims",e,t,n);return[Ec(k("x",e,t,n),i,o)]}case"ArgMax":{let i=k("axis",e,t,n);return[Fc(k("x",e,t,n),i)]}case"ArgMin":{let i=k("axis",e,t,n);return[Ly(k("x",e,t,n),i)]}case"Prod":{let i=k("axis",e,t,n),o=k("keepDims",e,t,n);return[Fh(k("x",e,t,n),i,o)]}case"Cumsum":{let i=k("axis",e,t,n),o=k("exclusive",e,t,n),l=k("reverse",e,t,n);return[kh(k("x",e,t,n),i,o,l)]}case"Bincount":let a=k("x",e,t,n),r=k("weights",e,t,n),s=k("size",e,t,n);return[fk(a,r,s)];case"DenseBincount":{let i=k("x",e,t,n),o=k("weights",e,t,n),l=k("size",e,t,n),c=k("binaryOutput",e,t,n);return[wk(i,o,l,c)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},oV=(e,t,n)=>{switch(e.op){case"ConcatV2":case"Concat":{let a=k("n",e,t,n),r=k("axis",e,t,n),s=k("tensors",e,t,n);return s=s.slice(0,a),[Je(s,r)]}case"Gather":{let a=k("x",e,t,n),r=k("indices",e,t,n);return[$i(a,ue(r,"int32"),0)]}case"GatherV2":{let a=k("axis",e,t,n),r=k("batchDims",e,t,n),s=k("x",e,t,n),i=k("indices",e,t,n);return[$i(s,ue(i,"int32"),a,r)]}case"Reverse":{let a=k("dims",e,t,n),r=[];for(let i=0;i{let a=k("axis",e,t,n),r=k("tensors",e,t,n),s=r[0].shape,i=ss(r[0]).shape,o=r.map(l=>{let c=w.arraysEqual(l.shape,s);if(!c&&!w.arraysEqual(ss(l).shape,i))throw new Error("the input tensors shape does not match");return c?l:U(l,s)});return[$t(o,a)]});case"Unpack":{let a=k("axis",e,t,n),r=k("tensor",e,t,n);return ut(r,a)}case"Tile":{let a=k("reps",e,t,n);return[qa(k("x",e,t,n),a)]}case"Split":case"SplitV":{let a=k("axis",e,t,n),r=k("numOrSizeSplits",e,t,n),s=k("x",e,t,n);return zn(s,r,a)}case"ScatterNd":{let a=k("indices",e,t,n),r=k("values",e,t,n),s=k("shape",e,t,n);return[Wk(a,r,s)]}case"GatherNd":{let a=k("x",e,t,n),r=k("indices",e,t,n);return[Vk(a,r)]}case"SparseToDense":{let a=k("sparseIndices",e,t,n),r=k("outputShape",e,t,n),s=k("sparseValues",e,t,n),i=k("defaultValue",e,t,n);return[vb(a,s,r,s.dtype===i.dtype?i:ue(i,s.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},lV=(e,t,n)=>{switch(e.op){case"FFT":return[Wc(k("x",e,t,n))];case"IFFT":return[Jl(k("x",e,t,n))];case"RFFT":return[Vc(k("x",e,t,n))];case"IRFFT":return[Lh(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},uV=(e,t,n)=>{switch(e.op){case"Cast":return[ue(k("x",e,t,n),k("dtype",e,t,n))];case"ExpandDims":{let a=k("axis",e,t,n);return[Mn(k("x",e,t,n),a)]}case"Squeeze":{let a=k("axis",e,t,n);return[ss(k("x",e,t,n),a)]}case"Reshape":return[U(k("x",e,t,n),k("shape",e,t,n))];case"MirrorPad":return[ob(k("x",e,t,n),k("padding",e,t,n),k("mode",e,t,n))];case"PadV2":case"Pad":return[ta(k("x",e,t,n),k("padding",e,t,n),k("constantValue",e,t,n))];case"SpaceToBatchND":{let a=k("blockShape",e,t,n),r=k("paddings",e,t,n);return[Oc(k("x",e,t,n),a,r)]}case"BatchToSpaceND":{let a=k("blockShape",e,t,n),r=k("crops",e,t,n);return[$c(k("x",e,t,n),a,r)]}case"DepthToSpace":{let a=k("blockSize",e,t,n),r=k("dataFormat",e,t,n).toUpperCase();return[Yy(k("x",e,t,n),a,r)]}case"BroadcastTo":return[Dc(k("x",e,t,n),k("shape",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function kT(e,t,n,a){let r=((s,i,o)=>{switch(s.category){case"arithmetic":return D(()=>W4(s,i,o));case"basic_math":return D(()=>V4(s,i,o));case"control":return K4(s,i,o);case"convolution":return D(()=>X4(s,i,o));case"creation":return D(()=>Y4(s,i,o));case"dynamic":return J4(s,i,o);case"evaluation":return D(()=>Q4(s,i,o));case"image":return D(()=>nV(s,i,o));case"graph":return D(()=>Z4(s,i,o));case"logical":return D(()=>aV(s,i,o));case"matrices":return D(()=>rV(s,i,o));case"normalization":return D(()=>sV(s,i,o));case"reduction":return D(()=>iV(s,i,o));case"slice_join":return D(()=>oV(s,i,o));case"spectral":return D(()=>lV(s,i,o));case"transformation":return D(()=>uV(s,i,o));case"hash_table":return tV(s,i,o,a);case"custom":let l=QI(s.op);if(l&&l.customExecutor)return l.customExecutor(new B4(s,i,o));throw TypeError(`Custom op ${s.op} is not registered.`);default:throw TypeError(`Unknown op '${s.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,n);return w.isPromise(r)?r.then(s=>[].concat(s)):[].concat(r)}var IT=class{constructor(e={},t={},n={},a={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(let t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(let t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}};function NT(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,c=Object.keys(e).map(d=>Wn(d)[0]),u=[];a!=null&&(u=a.map(d=>Wn(d.name)[0]));let p=[...t];for(;p.length>0;){let d=p.pop();if((TT(d)||cV(d)||pV(d))&&i==null&&(i=d,o=i.children.map(h=>h.name).filter(h=>r.has(h))),r.add(d.name),n[d.name]==null&&c.indexOf(d.name)===-1&&u.indexOf(d.name)===-1){if(d.inputs.length===0){s.push(d.name);continue}d.inputs.forEach(h=>{l.has(h.name)||(l.add(h.name),p.push(h))})}}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:i,syncInputs:o}}function dV(e,t,n){let{usedNodes:a,inputs:r}=n,s=[],i=Object.keys(r).map(u=>Wn(u)[0]).map(u=>e.nodes[u]),o=e.initNodes;i.forEach(u=>{a.has(u.name)&&s.push(u)}),e.weights.forEach(u=>{a.has(u.name)&&s.push(u)}),o!=null&&o.forEach(u=>{a.has(u.name)&&s.push(u)});let l=new Set,c=[];for(;s.length>0;){let u=s.pop();l.add(u.name),t[u.name]||c.push(u),u.children.forEach(p=>{!l.has(p.name)&&a.has(p.name)&&p.inputs.every(d=>l.has(d.name))&&s.push(p)})}return c}var hV=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],mV=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],fV=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2"];function TT(e){return hV.indexOf(e.op)>=0}function cV(e){return mV.indexOf(e.op)>=0}function pV(e){return fV.indexOf(e.op)>=0}var Iv=class{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(n=>{this._functionExecutorMap[n]=new Iv(e.functions[n],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){let t=Object.keys(e).map(n=>e[n].map(a=>a.id));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{let t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t})}get functions(){return Object.keys(this._functions).reduce((e,t)=>(e[t]=this._functions[t].signature,e),{})}getCompilationKey(e,t){let n=e.map(r=>r.name).sort(),a=t.map(r=>r.name).sort();return n.join(this.SEPERATOR)+"--"+a.join(this.SEPERATOR)}compile(e,t){let n=NT(e,t,this.weightMap,this._initNodes),{missingInputs:a,dynamicNode:r,syncInputs:s}=n;if(r!=null)throw new Error(`This execution contains the node '${r.name}', which has the dynamic op '${r.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(a.length>0){let i=t.map(l=>l.name),o=Object.keys(e);throw new Error(`Cannot compute the outputs [${i}] from the provided inputs [${o}]. Missing the following inputs: [${a}]`)}return dV(this.graph,this.weightMap,n)}execute(e,t){e=this.mapInputs(e);let n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let a=n.map(u=>this.graph.nodes[Wn(u)[0]]),r=t.map(u=>Wn(u)[0]),s=r.map(u=>this.graph.nodes[u]);s.length===0&&(s=this._outputs);let i=this.getCompilationKey(a,s),o=this.compiledMap.get(i);o==null&&(o=this.compile(e,s),this.compiledMap.set(i,o));let l={},c={};return D(()=>{let u=new IT(this.weightMap,l,c,this.functionExecutorMap),p=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{let[f,g]=Wn(m),y=[];y[g]=e[m],p[f]=y});let d=this.getFrozenTensorIds(p),h={};for(let m=0;mFn(m,p,u))})}getFrozenTensorIds(e){let t=[].concat.apply([],Object.keys(e).map(n=>e[n]).map(n=>n.map(a=>a.id)));return new Set(t)}checkTensorForDisposal(e,t,n,a,r,s,i){t.category==="control"||s.indexOf(e)!==-1||(n[e].forEach(o=>{o!=null&&(i[o.id]=(i[o.id]||0)+t.children.length)}),t.inputs.forEach(o=>{if(o.category!=="control"){let l=w4(o.name,n,a);l!=null&&l.forEach(c=>{if(c&&!r.has(c.id)){let u=i[c.id];u===1?(c.dispose(),delete i[c.id]):u!=null&&i[c.id]--}})}}))}async executeAsync(e,t){return this._executeAsync(e,t)}async _executeAsync(e,t,n=!1,a={},r={}){n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));let s=new IT(this.weightMap,a,r,this.functionExecutorMap),i=await this.executeWithControlFlow(e,s,t,n),o=t.map(p=>Fn(p,i,s)),l=o.map(p=>p.id),c=Object.keys(e).map(p=>e[p].id),u=new Set([...l,...c,...this.weightIds]);return Object.keys(i).forEach(p=>{i[p].forEach(d=>{d&&!d.isDisposed&&!u.has(d.id)&&d.dispose()})}),this.parent==null&&s.dispose(u),o}async executeFunctionAsync(e,t,n){let a=e.reduce((r,s,i)=>(r[this.inputs[i].name]=s,r),{});return this._executeAsync(a,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,a){let r=Object.keys(e),s=r.map(b=>this.graph.nodes[Wn(b)[0]]),i=n.map(b=>Wn(b)[0]),o=i.map(b=>this.graph.nodes[b]);o.length===0&&(o=this._outputs);let{usedNodes:l,missingInputs:c,dynamicNode:u,syncInputs:p}=NT(e,o,this.weightMap,this._initNodes),d=[...s,...this.graph.weights,...this._initNodes||[]].map(b=>({node:b,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(b=>{let[x,v]=Wn(b),N=[];N[v]=e[b],h[x]=N});let m={},f=this.getFrozenTensorIds(h),g={};for(;d.length>0;){let b=this.processStack(s,d,t,h,g,f,i,m,l);await Promise.all(b)}u==null&&!a&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let y=o.filter(b=>!TT(b)&&!Fn(b.name,h,t)).map(b=>b.name);if(y.length>0){let b="";throw u!=null&&(b=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${p}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${c}]. ${b}`)}return h}processStack(e,t,n,a,r,s,i,o,l){let c=[];for(;t.length>0;){let u=t.pop();n.currentContext=u.contexts;let p="";if(u.node.op==="Enter"&&k("isConstant",u.node,a,n)&&([p]=Nr(u.node.name,n)),a[u.node.name]==null){let d=kT(u.node,a,n,this._resourceManager);p||([p]=Nr(u.node.name,n));let h=n.currentContext;w.isPromise(d)?c.push(d.then(m=>(a[p]=m,n.currentContext=h,this.checkTensorForDisposal(p,u.node,a,n,s,i,o),this.processChildNodes(u.node,t,n,a,r,l),m))):(a[p]=d,this.checkTensorForDisposal(p,u.node,a,n,s,i,o),this.processChildNodes(u.node,t,n,a,r,l))}else this.processChildNodes(u.node,t,n,a,r,l)}return c}processChildNodes(e,t,n,a,r,s){e.children.forEach(i=>{let[o]=Nr(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!Fn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!Fn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let n=e[t],[a]=Wn(t),r=this.graph.nodes[a];if(r.attrParams.shape&&r.attrParams.shape.value){let s=r.attrParams.shape.value,i=s.length===n.shape.length&&n.shape.every((o,l)=>s[l]===-1||s[l]===o);w.assert(i,()=>`The shape of dict['${r.name}'] provided in model.execute(dict) must be [${s}], but was [${n.shape}]`)}r.attrParams.dtype&&r.attrParams.dtype.value&&w.assert(n.dtype===r.attrParams.dtype.value,()=>`The dtype of dict['${r.name}'] provided in model.execute(dict) must be ${r.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(e){let t={};for(let n in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[n]!=null){let a=this._signature.inputs[n];t[a.name]=e[n]}else t[n]=e[n];return t}checkInputs(e){let t=Object.keys(e).filter(n=>{let[a]=Wn(n);return this.graph.nodes[a]==null});if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(t=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null?this._signature.outputs[t].name:t,{})}checkOutputs(e){e.forEach(t=>{let[n]=Wn(t);if(!this.graph.nodes[n])throw new Error(`The output '${t}' is not found in the graph`)})}},gV=class{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(let e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(let e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}},yV="?tfjs-format=file",bV="model.json",ST=class{constructor(e,t={}){this.modelUrl=e,this.loadOptions=t,this.version="n/a",t==null&&(this.loadOptions={}),this.resourceManager=new gV}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=Ht.browserHTTPRequest(e,this.loadOptions);else{let t=Ht.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(Ht.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=await this.handler.load();return this.loadSync(e)}loadSync(e){this.artifacts=e;let t=this.artifacts.modelTopology,n;this.artifacts.userDefinedMetadata!=null&&this.artifacts.userDefinedMetadata.signature!=null?n=this.artifacts.userDefinedMetadata.signature:n=this.artifacts.signature,this.signature=n,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;let a=Ht.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new Iv(yT.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(a),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let r=yT.Instance.transformGraph(e.modelInitializer);this.initializer=new Iv(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(e,t){if(typeof e=="string"){let n=Ht.getSaveHandlers(e);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${e}'`);e=n[0]}if(e.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){return this.execute(e,this.outputNodes)}normalizeInputs(e){if(!(e instanceof Ee)&&!Array.isArray(e))return e;if(e=Array.isArray(e)?e:[e],e.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce((t,n,a)=>(t[n]=e[a],t),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=this.executor.execute(e,t);return n.length>1?n:n[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,n)=>(t[n]=[e[n]],t),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}};async function xV(e,t={}){if(e==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&e.load==null&&(e.endsWith("/")||(e=e+"/"),e=`${e}${bV}${yV}`);let n=new ST(e,t);return await n.load(),n}var CT="3.2.0",_T={};Oe(_T,{CSVDataset:()=>FT,Dataset:()=>ou,FileDataSource:()=>AT,TextLineDataset:()=>ET,URLDataSource:()=>$T,array:()=>vV,csv:()=>kV,func:()=>IV,generator:()=>TV,microphone:()=>SV,version_data:()=>DT,webcam:()=>NV,zip:()=>wV});var CV=Do(wd()),_V=Do(wd());function EV(e,t){return Pm(e,t)}function Pm(e,t,n=new Map,a=new Set){if(e==null)return null;if(a.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(r.recurse)if(lu(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=Pm(o,t,n,a);s[i]=l}return a.delete(e),s}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return n.set(e,r.value),r.value}function FV(e,t=MT){return RT(e,t)}function RT(e,t,n=new Set){let a=e[0];if(n.has(a))throw new Error("Circular references are not supported.");let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(r.recurse)if(lu(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(c=>c[i]),l=RT(o,t,n);s[i]=l}return n.delete(a),s}else throw new Error(`Can't recurse into non-iterable type: ${a}`);else return r.value}function MT(e){return e===null?null:lu(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function PT(e,t){let n=new Map;Pm(e,t,n);for(let a of Array.from(n.keys())){let r=n.get(a);if(w.isPromise(r)){let s=await r;n.set(a,s)}}return Pm(e,t,n)}function lu(e){return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Ee))}function $V(e){return e==null||AV(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Ee||w.isTypedArray(e)}function AV(e){return e===null||typeof e!="object"&&typeof e!="function"}function RV(e){return EV(e,DV)}function DV(e){return e instanceof Ee?{value:e.clone(),recurse:!1}:lu(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var OT=class{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(let t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}},Tv=class extends OT{constructor(){super(Tv.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){let e=this.capacity*2,t=new Array(e),n=this.length();for(let a=0;at===!0)}rowMajorBatch(e,t=!0){return new UV(this,e,t)}columnMajorBatch(e,t=!0,n=MT){return this.rowMajorBatch(e,t).map(a=>FV(a,n))}concatenate(e,t){return new zT(LT([this,e]),t)}take(e){return e<0||e==null?this:new VV(this,e)}skip(e){return e<0||e==null?this:new WV(this,e)}prefetch(e){return new WT(this,e)}shuffle(e,t){return new KV(this,e,t)}serial(){return new BV(this)}},MV=class extends Yt{constructor(e){super();this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let e=this.items[this.trav];return this.trav++,{value:RV(e),done:!1}}},PV=class extends Yt{constructor(e){super();this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},BV=class extends Yt{constructor(e){super();this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},WV=class extends Yt{constructor(e,t){super();this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},UV=class extends Yt{constructor(e,t,n=!0){super();this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}},GV=class extends Yt{constructor(e,t){super();this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;Ae(e.value)}}},HV=class extends Yt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Ta.getTensorsInContainer(e.value),n=this.transform(e.value),a=Ta.getTensorsInContainer(n);for(let r of t)Ta.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},jV=class extends Yt{constructor(e,t){super();this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},BT=class extends Yt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Ta.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Ta.getTensorsInContainer(n);for(let r of t)Ta.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},Sv=class extends Yt{constructor(){super();this.outputQueue=new Tv,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},qV=class extends Sv{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let e=await this.upstream.next();if(e.done)return!1;let t=Ta.getTensorsInContainer(e.value),n=this.transform(e.value),a=Ta.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Ta.isTensorInList(r,a)||r.dispose();return!0}},zT=class extends Yt{constructor(e,t){super();this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}},ms;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(ms||(ms={}));var LV=class extends Yt{constructor(e,t=ms.FAIL){super();this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(e){await e;let t=0,n=0;function a(s){return s instanceof Yt?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await PT(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case ms.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case ms.SHORTEST:return{value:null,done:!0};case ms.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},WT=class extends Yt{constructor(e,t){super();this.upstream=e,this.bufferSize=t,this.buffer=new OT(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}},KV=class extends WT{constructor(e,t,n){super(e,t);this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=_V.alea(n||w.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}},ou=class{constructor(){this.size=null}batch(e,t=!0){let n=this;w.assert(e>0,()=>`batchSize needs to be positive, but it is - ${e}`);let a;return this.size===Infinity||this.size==null?a=this.size:t?a=Math.ceil(this.size/e):a=Math.floor(this.size/e),Vn(async()=>(await n.iterator()).columnMajorBatch(e,t,XV),a)}concatenate(e){let t=this,n;return this.size===Infinity||e.size===Infinity?n=Infinity:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,Vn(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===Infinity?n=Infinity:n=null,Vn(async()=>(await t.iterator()).filter(a=>D(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return Vn(async()=>(await t.iterator()).map(n=>D(()=>e(n))),this.size)}mapAsync(e){let t=this;return Vn(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 Vn(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=Infinity:n=null,Vn(async()=>{let a=Nv(async()=>({value:await t.iterator(),done:!1}));return OV(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(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)`);let a=this,r=CV.alea(t||w.now().toString());return Vn(async()=>{let s=r.int32();return n&&(s+=r.int32()),(await a.iterator()).shuffle(e,s.toString())},this.size)}take(e){let t=this,n;return this.size!=null&&this.size>e?n=e:this.size!=null&&this.size<=e?n=this.size:n=null,Vn(async()=>(await t.iterator()).take(e),n)}async toArray(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};ou.MAX_BUFFER_SIZE=1e4;function Vn(e,t=null){return new class extends ou{constructor(){super(...arguments);this.size=t}async iterator(){return e()}}}function vV(e){return Vn(async()=>LT(e),e.length)}function wV(e){if(!lu(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let n=0;n{let n=await PT(e,a=>{if(a instanceof ou)return{value:a.iterator(),recurse:!1};if(lu(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return zV(n,ms.SHORTEST)},t)}function XV(e){if(e===null)return null;let t=e[0];return $V(t)?{value:YV(e),recurse:!1}:{value:null,recurse:!0}}function YV(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Ee?$t(e):Jn(e)}var ET=class extends ou{constructor(e){super();this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` -`).map(e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e))}},Om='"',cp=Symbol("out"),VT=Symbol("field"),Lm=Symbol("quote"),Cv=Symbol("quoteafterquote"),UT=Symbol("quoteinquote"),FT=class extends ou{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 ET(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 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}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;r14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=e.includeSpectrogram!==!1,this.includeWaveform=e.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(ee().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");let t=new GT(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let e,t,n=await this.getAudioData();if(this.includeSpectrogram){let a=this.flattenQueue(n.freqDataQueue);e=this.getTensorFromAudioDataArray(a,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let a=this.flattenQueue(n.timeDataQueue);t=this.getTensorFromAudioDataArray(a,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let e=[],t=[],n=0;return new Promise(a=>{let r=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&a({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(r),a({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){let t=e[0].length,n=new Float32Array(e.length*t);return e.forEach((a,r)=>n.set(a,r*t)),n}getTensorFromAudioDataArray(e,t){let n=new Float32Array(w.sizeFromShape(t));return n.set(e,n.length-e.length),Jn(n,t)}},HT=class extends Yt{constructor(e,t){super();if(this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Ze([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,a=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,r=(1-n)/2,s=(1-a)/2,i=r+n,o=a+s;this.cropBox=Sa([s,r,o,i],[1,4])}else this.cropBox=Sa([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(ee().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}let n=new HT(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&w.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}})}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=Ei.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return D(()=>{let t=Mn(ue(e,"float32"),0),n;n=Ja.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let a=n.shape;return U(n,a.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(e=>e.stop());try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}},jT=class{},qT=class extends Yt{split(e){return new JV(this,e)}},JV=class extends qT{constructor(e,t){super();this.upstream=e,this.impl=new QV(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},QV=class extends Sv{constructor(e,t){super();this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(let n of t.slice(0,-1))this.outputQueue.push(n);return this.carryover=t[t.length-1],!0}},eU=class extends Yt{decodeUTF8(){return new ZV(this)}},ZV=class extends qT{constructor(e){super();this.upstream=e,this.impl=new tU(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},tU=class extends Sv{constructor(e){super();if(this.upstream=e,ee().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=NE();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let e=await this.upstream.next(),t;if(e.done)return!1;t=e.value;let n;return ee().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},KT=class extends eU{constructor(e,t={}){super();this.file=e,this.options=t,w.assert(e instanceof Uint8Array||(ee().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,t)=>{let n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,n)));else{let a=new FileReader;a.onload=s=>{let i=a.result;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),!(i instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(i)},a.onabort=s=>t(new Error("Aborted")),a.onerror=s=>t(new Error(s.type));let r=this.file.slice(this.offset,n);a.readAsArrayBuffer(r)}this.offset=n}),done:!1}}};async function aU(e,t={}){let n,a;typeof e=="string"?n=e:(n=e.url,a=nU(e));let r=await w.fetch(n,a);if(r.ok){let s=new Uint8Array(await r.arrayBuffer());return new KT(s,t)}else throw new Error(r.statusText)}var nU=e=>({method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity});function XT(e){return typeof e=="string"&&e.substr(0,7)==="file://"}var AT=class extends jT{constructor(e,t={}){super();this.input=e,this.options=t}async iterator(){if(XT(this.input)&&ee().get("IS_NODE")){let e=require("fs");this.input=e.readFileSync(this.input.substr(7))}return new KT(this.input,this.options)}},$T=class extends jT{constructor(e,t={}){super();this.url=e,this.fileOptions=t}async iterator(){return XT(this.url)?new AT(this.url,this.fileOptions).iterator():aU(this.url,this.fileOptions)}};function kV(e,t={}){return new FT(new $T(e),t)}function IV(e){let t=Nv(e);return Vn(async()=>t)}function TV(e){return Vn(async()=>{let t=await e();return Nv(()=>t.next())})}async function NV(e,t){return HT.create(e,t)}async function SV(e){return GT.create(e)}var DT="3.2.0";function ve(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&w.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var rU=Qa.whereImpl,_v=class extends Zu{constructor(){super();this.blockSize=48,this.firstUse=!0,this.data=new kd(this,Ha())}nextDataId(){return _v.nextDataId++}write(e,t,n){this.firstUse&&(this.firstUse=!1,ee().get("IS_NODE")&&_.warn(` + ${a}, and tensor's shape is: ${e.shape}`);let s=e.shape.slice(1),i=wv(s,n),o=a===0?0:e.size/a,l=M(()=>{let c=[];e=H(e,[1,a,o]);for(let p=0;p{switch(e.op){case"If":case"StatelessIf":{let a=N("thenBranch",e,t,n),r=N("elseBranch",e,t,n),s=N("cond",e,t,n),i=N("args",e,t,n);return(await s.data())[0]?n.functionMap[a].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap):n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{let a=N("body",e,t,n),r=N("cond",e,t,n),s=N("args",e,t,n),i=await n.functionMap[r].executeFunctionAsync(s,n.tensorArrayMap,n.tensorListMap),o=s.map(c=>c.id),l=await i[0].data();i.forEach(c=>{!c.kept&&o.indexOf(c.id)===-1&&c.dispose()});let u=s;for(;l[0];){let c=u;u=await n.functionMap[a].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);let p=u.map(h=>h.id);c.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&p.indexOf(h.id)===-1&&h.dispose()});let d=await n.functionMap[r].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);l=await d[0].data(),d.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&p.indexOf(h.id)===-1&&h.dispose()})}return u}case"LoopCond":{let a=N("pred",e,t,n);return[Sr(a)]}case"Switch":{let a=N("pred",e,t,n),r=N("data",e,t,n);return r.kept||(r=Sr(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>_n(r,t,n)!==void 0);if(a){let r=_n(a,t,n);return[Sr(r)]}return}case"Enter":{let a=N("frameName",e,t,n),r=N("tensor",e,t,n);return n.enterFrame(a),[Sr(r)]}case"Exit":{let a=N("tensor",e,t,n);return n.exitFrame(),[Sr(a)]}case"NextIteration":{let a=N("tensor",e,t,n);return n.nextIteration(),[Sr(a)]}case"TensorArrayV3":{let a=N("size",e,t,n),r=N("dtype",e,t,n),s=N("elementShape",e,t,n),i=N("dynamicSize",e,t,n),o=N("clearAfterRead",e,t,n),l=N("identicalElementShapes",e,t,n),u=N("name",e,t,n),c=new fV(u,r,a,s,l,i,o);return n.addTensorArray(c),[c.idTensor,ce(1)]}case"TensorArrayWriteV3":{let a=N("tensorArrayId",e,t,n),r=N("index",e,t,n),s=N("tensor",e,t,n),i=n.getTensorArray(a.id);return i.write(r,s),[i.idTensor]}case"TensorArrayReadV3":{let a=N("tensorArrayId",e,t,n),r=N("index",e,t,n);return[n.getTensorArray(a.id).read(r)]}case"TensorArrayGatherV3":{let a=N("tensorArrayId",e,t,n),r=N("indices",e,t,n),s=N("dtype",e,t,n);return[n.getTensorArray(a.id).gather(r,s)]}case"TensorArrayScatterV3":{let a=N("tensorArrayId",e,t,n),r=N("indices",e,t,n),s=N("tensor",e,t,n),i=n.getTensorArray(a.id);return i.scatter(r,s),[i.idTensor]}case"TensorArrayConcatV3":{let a=N("tensorArrayId",e,t,n),r=n.getTensorArray(a.id),s=N("dtype",e,t,n);return[r.concat(s)]}case"TensorArraySplitV3":{let a=N("tensorArrayId",e,t,n),r=N("tensor",e,t,n),s=N("lengths",e,t,n),i=n.getTensorArray(a.id);return i.split(s,r),[i.idTensor]}case"TensorArraySizeV3":{let a=N("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return[ce(r.size(),"int32")]}case"TensorArrayCloseV3":{let a=N("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return r.clearAndClose(),[r.idTensor]}case"TensorListSetItem":{let a=N("tensorListId",e,t,n),r=N("index",e,t,n),s=N("tensor",e,t,n),i=n.getTensorList(a.id);return i.setItem(r,s),[i.idTensor]}case"TensorListGetItem":{let a=N("tensorListId",e,t,n),r=N("index",e,t,n),s=N("elementShape",e,t,n),i=N("elementDType",e,t,n);return[n.getTensorList(a.id).getItem(r,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let a=N("indices",e,t,n),r=N("tensor",e,t,n),s=N("elementShape",e,t,n),i=N("numElements",e,t,n),o=bV(r,a,s,i);return n.addTensorList(o),[o.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let a=N("elementShape",e,t,n),r=N("elementDType",e,t,n),s;e.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=N(s,e,t,n),o=yV(a,r,i);return n.addTensorList(o),[o.idTensor]}case"TensorListGather":{let a=N("tensorListId",e,t,n),r=N("indices",e,t,n),s=N("elementShape",e,t,n),i=N("elementDType",e,t,n);return[n.getTensorList(a.id).gather(r,i,s)]}case"TensorListStack":{let a=N("tensorListId",e,t,n),r=N("elementShape",e,t,n),s=N("elementDType",e,t,n),i=N("numElements",e,t,n);return[n.getTensorList(a.id).stack(r,s,i)]}case"TensorListFromTensor":{let a=N("tensor",e,t,n),r=N("elementShape",e,t,n),s=N("elementDType",e,t,n),i=gV(a,r,s);return n.addTensorList(i),[i.idTensor]}case"TensorListConcat":{let a=N("tensorListId",e,t,n),r=n.getTensorList(a.id),s=N("dtype",e,t,n),i=N("elementShape",e,t,n);return[r.concat(s,i)]}case"TensorListPushBack":{let a=N("tensorListId",e,t,n),r=N("tensor",e,t,n),s=n.getTensorList(a.id);return s.pushBack(r),[s.idTensor]}case"TensorListPopBack":{let a=N("tensorListId",e,t,n),r=N("elementShape",e,t,n),s=N("elementDType",e,t,n);return[n.getTensorList(a.id).popBack(r,s)]}case"TensorListSplit":{let a=N("tensor",e,t,n),r=N("elementShape",e,t,n),s=N("lengths",e,t,n),i=xV(a,s,r);return n.addTensorList(i),[i.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function TN(e,t,n){let[a,r]=N("fusedOps",e,t,n),s=a==="biasadd",i=r==="prelu",o=a==="fusedbatchnorm",l=N("numArgs",e,t,n);if(s){if(i&&l!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(o)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");let u=N("strides",e,t,n),c=Rm(e,t,n),p=N("dataFormat",e,t,n).toUpperCase(),d=N("dilations",e,t,n),[h,m]=N("args",e,t,n),f=N("leakyreluAlpha",e,t,n);return{stride:u,pad:c,dataFormat:p,dilations:d,biasArg:h,preluArg:m,activationFunc:r,leakyreluAlpha:f}}var wV=(e,t,n)=>{switch(e.op){case"Conv1D":{let a=N("stride",e,t,n),r=N("pad",e,t,n),s=N("dataFormat",e,t,n).toUpperCase(),i=N("dilation",e,t,n);return[xh(N("x",e,t,n),N("filter",e,t,n),a,r,s,i)]}case"Conv2D":{let a=N("strides",e,t,n),r=Rm(e,t,n),s=N("dataFormat",e,t,n).toUpperCase(),i=N("dilations",e,t,n);return[Et(N("x",e,t,n),N("filter",e,t,n),[a[1],a[2]],r,s,[i[1],i[2]])]}case"_FusedConv2D":{let{stride:a,pad:r,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:u,leakyreluAlpha:c}=TN(e,t,n);return[is.conv2d({x:N("x",e,t,n),filter:N("filter",e,t,n),strides:[a[1],a[2]],pad:r,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:u,preluActivationWeights:l,leakyreluAlpha:c})]}case"FusedDepthwiseConv2dNative":{let{stride:a,pad:r,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:u,leakyreluAlpha:c}=TN(e,t,n);return[is.depthwiseConv2d({x:N("x",e,t,n),filter:N("filter",e,t,n),strides:[a[1],a[2]],pad:r,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:u,preluActivationWeights:l,leakyreluAlpha:c})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let a=N("outputShape",e,t,n),r=N("strides",e,t,n),s=Rm(e,t,n);return[vh(N("x",e,t,n),N("filter",e,t,n),a,[r[1],r[2]],s)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let a=N("strides",e,t,n),r=Rm(e,t,n),s=N("dilations",e,t,n),i=N("dataFormat",e,t,n).toUpperCase();return[ns(N("input",e,t,n),N("filter",e,t,n),[a[1],a[2]],r,i,[s[1],s[2]])]}case"Conv3D":{let a=N("strides",e,t,n),r=N("pad",e,t,n),s=N("dataFormat",e,t,n).toUpperCase(),i=N("dilations",e,t,n);return[Ky(N("x",e,t,n),N("filter",e,t,n),[a[1],a[2],a[3]],r,s,[i[1],i[2],i[3]])]}case"AvgPool":{let a=N("strides",e,t,n),r=N("pad",e,t,n),s=N("kernelSize",e,t,n);return[Zn(N("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r)]}case"MaxPool":{let a=N("strides",e,t,n),r=N("pad",e,t,n),s=N("kernelSize",e,t,n);return[$t(N("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r)]}case"MaxPoolWithArgmax":{let a=N("strides",e,t,n),r=N("pad",e,t,n),s=N("kernelSize",e,t,n),i=N("includeBatchInIndex",e,t,n),{result:o,indexes:l}=O1(N("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r,i);return[o,l]}case"AvgPool3D":{let a=N("strides",e,t,n),r=N("pad",e,t,n),s=N("kernelSize",e,t,n);return[jy(N("x",e,t,n),[s[1],s[2],s[3]],[a[1],a[2],a[3]],r)]}case"MaxPool3D":{let a=N("strides",e,t,n),r=N("pad",e,t,n),s=N("kernelSize",e,t,n);return[ib(N("x",e,t,n),[s[1],s[2],s[3]],[a[1],a[2],a[3]],r)]}case"Dilation2D":{let a=N("strides",e,t,n),r=N("pad",e,t,n),s=N("dilations",e,t,n),i=a[1],o=a[2],l=s[1],u=s[2];return[Jy(N("x",e,t,n),N("filter",e,t,n),[i,o],r,[l,u],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},kV=(e,t,n)=>{switch(e.op){case"Fill":{let a=N("shape",e,t,n),r=N("dtype",e,t,n),s=N("value",e,t,n);return[Cn(a,s,r)]}case"LinSpace":{let a=N("start",e,t,n),r=N("stop",e,t,n),s=N("num",e,t,n);return[_1(a,r,s)]}case"Multinomial":{let a=N("logits",e,t,n),r=N("numSamples",e,t,n),s=N("seed",e,t,n);return[L1(a,r,s)]}case"OneHot":{let a=N("indices",e,t,n),r=N("depth",e,t,n),s=N("onValue",e,t,n),i=N("offValue",e,t,n);return[Wl(a,r,s,i)]}case"Ones":return[Ya(N("shape",e,t,n),N("dtype",e,t,n))];case"OnesLike":return[On(N("x",e,t,n))];case"RandomUniform":return[Kl(N("shape",e,t,n),N("minval",e,t,n),N("maxval",e,t,n),N("dtype",e,t,n))];case"Range":{let a=N("start",e,t,n),r=N("stop",e,t,n),s=N("step",e,t,n);return[Eh(a,r,s,N("dtype",e,t,n))]}case"TruncatedNormal":{let a=N("shape",e,t,n),r=N("mean",e,t,n),s=N("stdDev",e,t,n),i=N("seed",e,t,n);return[Wh(a,r,s,N("dtype",e,t,n),i)]}case"Zeros":return[vt(N("shape",e,t,n),N("dtype",e,t,n))];case"ZerosLike":return[Ge(N("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function kv(e,t,n){let a=N("boxes",e,t,n),r=N("scores",e,t,n),s=N("maxOutputSize",e,t,n),i=N("iouThreshold",e,t,n),o=N("scoreThreshold",e,t,n),l=N("softNmsSigma",e,t,n);return{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}}var IV=async(e,t,n)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}=kv(e,t,n),u=await Ja.nonMaxSuppressionWithScoreAsync(a,r,s,i,o,l);return[u.selectedIndices,u.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=kv(e,t,n),l=N("padToMaxOutputSize",e,t,n),u=await Ja.nonMaxSuppressionPaddedAsync(a,r,s,i,o,l);return[u.selectedIndices,u.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=kv(e,t,n);return[await Ja.nonMaxSuppressionAsync(a,r,s,i,o)]}case"Where":{let a=ue(N("condition",e,t,n),"bool"),r=[await xb(a)];return a.dispose(),r}case"ListDiff":return B1(N("x",e,t,n),N("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}},NV=(e,t,n)=>{switch(e.op){case"TopKV2":{let a=N("x",e,t,n),r=N("k",e,t,n),s=N("sorted",e,t,n),i=yb(a,r,s);return[i.values,i.indices]}case"Unique":{let a=N("x",e,t,n),r=Bh(a);return[r.values,r.indices]}case"UniqueV2":{let a=N("x",e,t,n),r=N("axis",e,t,n),s=Bh(a,r);return[s.values,s.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},TV=(e,t,n)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let a=N("default",e,t,n);return[_n(e.name,t,n)||a];case"Placeholder":return[_n(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let u=N("x",e,t,n);return[Sr(u)]}case"IdentityN":return N("x",e,t,n).map(u=>Sr(u));case"Snapshot":let r=N("x",e,t,n);return[Sr(r)];case"Shape":return[Ze(N("x",e,t,n).shape,"int32")];case"ShapeN":return N("x",e,t,n).map(u=>Ze(u.shape));case"Size":return[ce(N("x",e,t,n).size,"int32")];case"Rank":return[ce(N("x",e,t,n).rank,"int32")];case"NoOp":return[ce(1)];case"Print":let s=N("x",e,t,n),i=N("data",e,t,n),o=N("message",e,t,n),l=N("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(o);for(let u=0;ue.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return ce(this.size(),"int32")}async import(e,t){this.checkKeyAndValueTensor(e,t);let n=await e.data();return this.tensorMap.forEach(a=>a.dispose()),this.tensorMap.clear(),M(()=>{let a=ct(t),r=n.length,s=a.length;I.assert(r===s,()=>`The number of elements doesn't match, keys has ${r} elements, the values has ${s} elements.`);for(let i=0;i{let a=[];for(let r=0;r{switch(e.op){case"HashTable":case"HashTableV2":{let r=N("keyDType",e,t,n),s=N("valueDType",e,t,n),i=new SV(r,s);return a.addHashTable(e.name,i),[i.handle]}case"LookupTableImport":case"LookupTableImportV2":{let r=N("tableHandle",e,t,n,a),s=N("keys",e,t,n),i=N("values",e,t,n);return[await a.getHashTableById(r.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let r=N("tableHandle",e,t,n,a),s=N("keys",e,t,n),i=N("defaultValue",e,t,n);return[await a.getHashTableById(r.id).find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{let r=N("tableHandle",e,t,n,a);return[a.getHashTableById(r.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},AV=(e,t,n)=>{switch(e.op){case"ResizeBilinear":{let a=N("images",e,t,n),r=N("size",e,t,n),s=N("alignCorners",e,t,n),i=N("halfPixelCenters",e,t,n);return[Ja.resizeBilinear(a,[r[0],r[1]],s,i)]}case"ResizeNearestNeighbor":{let a=N("images",e,t,n),r=N("size",e,t,n),s=N("alignCorners",e,t,n),i=N("halfPixelCenters",e,t,n);return[Ja.resizeNearestNeighbor(a,[r[0],r[1]],s,i)]}case"CropAndResize":{let a=N("image",e,t,n),r=N("boxes",e,t,n),s=N("boxInd",e,t,n),i=N("cropSize",e,t,n),o=N("method",e,t,n),l=N("extrapolationValue",e,t,n);return[Ja.cropAndResize(a,r,s,i,o,l)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},FV=(e,t,n)=>{switch(e.op){case"Equal":return[as(N("a",e,t,n),N("b",e,t,n))];case"NotEqual":return[Ri(N("a",e,t,n),N("b",e,t,n))];case"Greater":return[ha(N("a",e,t,n),N("b",e,t,n))];case"GreaterEqual":return[rs(N("a",e,t,n),N("b",e,t,n))];case"Less":return[Nh(N("a",e,t,n),N("b",e,t,n))];case"LessEqual":return[Di(N("a",e,t,n),N("b",e,t,n))];case"LogicalAnd":return[ma(N("a",e,t,n),N("b",e,t,n))];case"LogicalNot":return[Oc(N("a",e,t,n))];case"LogicalOr":return[Ah(N("a",e,t,n),N("b",e,t,n))];case"Select":case"SelectV2":return[Sn(N("condition",e,t,n),N("a",e,t,n),N("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},_V=(e,t,n)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[ze(N("a",e,t,n),N("b",e,t,n),N("transposeA",e,t,n),N("transposeB",e,t,n))];case"Transpose":return[Ve(N("x",e,t,n),N("perm",e,t,n))];case"_FusedMatMul":let[a,r]=N("fusedOps",e,t,n),s=a==="biasadd",i=r==="prelu",o=N("numArgs",e,t,n),l=N("leakyreluAlpha",e,t,n);if(s){if(i&&o!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&o!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[u,c]=N("args",e,t,n);return[is.matMul({a:N("a",e,t,n),b:N("b",e,t,n),transposeA:N("transposeA",e,t,n),transposeB:N("transposeB",e,t,n),bias:u,activation:r,preluActivationWeights:c,leakyreluAlpha:l})];default:throw TypeError(`Node type ${e.op} is not implemented`)}},EV=(e,t,n)=>{switch(e.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[br(N("x",e,t,n),N("mean",e,t,n),N("variance",e,t,n),N("offset",e,t,n),N("scale",e,t,n),N("epsilon",e,t,n))];case"FusedBatchNormV3":return[br(N("x",e,t,n),N("mean",e,t,n),N("variance",e,t,n),N("offset",e,t,n),N("scale",e,t,n),N("epsilon",e,t,n))];case"LRN":return[nb(N("x",e,t,n),N("radius",e,t,n),N("bias",e,t,n),N("alpha",e,t,n),N("beta",e,t,n))];case"Softmax":return[Sa(N("x",e,t,n))];case"LogSoftmax":return[Ch(N("x",e,t,n))];case"SparseToDense":return[vb(N("sparseIndices",e,t,n),N("outputShape",e,t,n),N("sparseValues",e,t,n),N("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},$V=(e,t,n)=>{switch(e.op){case"Max":{let i=N("axis",e,t,n),o=N("keepDims",e,t,n);return[ea(N("x",e,t,n),i,o)]}case"Mean":{let i=N("axis",e,t,n),o=N("keepDims",e,t,n);return[Ct(N("x",e,t,n),i,o)]}case"Min":{let i=N("axis",e,t,n),o=N("keepDims",e,t,n);return[ql(N("x",e,t,n),i,o)]}case"Sum":{let i=N("axis",e,t,n),o=N("keepDims",e,t,n);return[Se(N("x",e,t,n),i,o)]}case"All":{let i=N("axis",e,t,n),o=N("keepDims",e,t,n);return[yh(N("x",e,t,n),i,o)]}case"Any":{let i=N("axis",e,t,n),o=N("keepDims",e,t,n);return[_c(N("x",e,t,n),i,o)]}case"ArgMax":{let i=N("axis",e,t,n);return[Ec(N("x",e,t,n),i)]}case"ArgMin":{let i=N("axis",e,t,n);return[Ly(N("x",e,t,n),i)]}case"Prod":{let i=N("axis",e,t,n),o=N("keepDims",e,t,n);return[_h(N("x",e,t,n),i,o)]}case"Cumsum":{let i=N("axis",e,t,n),o=N("exclusive",e,t,n),l=N("reverse",e,t,n);return[kh(N("x",e,t,n),i,o,l)]}case"Bincount":let a=N("x",e,t,n),r=N("weights",e,t,n),s=N("size",e,t,n);return[x1(a,r,s)];case"DenseBincount":{let i=N("x",e,t,n),o=N("weights",e,t,n),l=N("size",e,t,n),u=N("binaryOutput",e,t,n);return[T1(i,o,l,u)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},DV=(e,t,n)=>{switch(e.op){case"ConcatV2":case"Concat":{let a=N("n",e,t,n),r=N("axis",e,t,n),s=N("tensors",e,t,n);return s=s.slice(0,a),[Je(s,r)]}case"Gather":{let a=N("x",e,t,n),r=N("indices",e,t,n);return[$i(a,ue(r,"int32"),0)]}case"GatherV2":{let a=N("axis",e,t,n),r=N("batchDims",e,t,n),s=N("x",e,t,n),i=N("indices",e,t,n);return[$i(s,ue(i,"int32"),a,r)]}case"Reverse":{let a=N("dims",e,t,n),r=[];for(let i=0;i{let a=N("axis",e,t,n),r=N("tensors",e,t,n),s=r[0].shape,i=ss(r[0]).shape,o=r.map(l=>{let u=I.arraysEqual(l.shape,s);if(!u&&!I.arraysEqual(ss(l).shape,i))throw new Error("the input tensors shape does not match");return u?l:H(l,s)});return[Dt(o,a)]});case"Unpack":{let a=N("axis",e,t,n),r=N("tensor",e,t,n);return ct(r,a)}case"Tile":{let a=N("reps",e,t,n);return[qa(N("x",e,t,n),a)]}case"Split":case"SplitV":{let a=N("axis",e,t,n),r=N("numOrSizeSplits",e,t,n),s=N("x",e,t,n);return zn(s,r,a)}case"ScatterNd":{let a=N("indices",e,t,n),r=N("values",e,t,n),s=N("shape",e,t,n);return[H1(a,r,s)]}case"GatherNd":{let a=N("x",e,t,n),r=N("indices",e,t,n);return[j1(a,r)]}case"SparseToDense":{let a=N("sparseIndices",e,t,n),r=N("outputShape",e,t,n),s=N("sparseValues",e,t,n),i=N("defaultValue",e,t,n);return[vb(a,s,r,s.dtype===i.dtype?i:ue(i,s.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},MV=(e,t,n)=>{switch(e.op){case"FFT":return[Vc(N("x",e,t,n))];case"IFFT":return[Jl(N("x",e,t,n))];case"RFFT":return[Uc(N("x",e,t,n))];case"IRFFT":return[Lh(N("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},RV=(e,t,n)=>{switch(e.op){case"Cast":return[ue(N("x",e,t,n),N("dtype",e,t,n))];case"ExpandDims":{let a=N("axis",e,t,n);return[Rn(N("x",e,t,n),a)]}case"Squeeze":{let a=N("axis",e,t,n);return[ss(N("x",e,t,n),a)]}case"Reshape":return[H(N("x",e,t,n),N("shape",e,t,n))];case"MirrorPad":return[ob(N("x",e,t,n),N("padding",e,t,n),N("mode",e,t,n))];case"PadV2":case"Pad":return[ta(N("x",e,t,n),N("padding",e,t,n),N("constantValue",e,t,n))];case"SpaceToBatchND":{let a=N("blockShape",e,t,n),r=N("paddings",e,t,n);return[Lc(N("x",e,t,n),a,r)]}case"BatchToSpaceND":{let a=N("blockShape",e,t,n),r=N("crops",e,t,n);return[Dc(N("x",e,t,n),a,r)]}case"DepthToSpace":{let a=N("blockSize",e,t,n),r=N("dataFormat",e,t,n).toUpperCase();return[Yy(N("x",e,t,n),a,r)]}case"BroadcastTo":return[Mc(N("x",e,t,n),N("shape",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function SN(e,t,n,a){let r=((s,i,o)=>{switch(s.category){case"arithmetic":return M(()=>hV(s,i,o));case"basic_math":return M(()=>mV(s,i,o));case"control":return vV(s,i,o);case"convolution":return M(()=>wV(s,i,o));case"creation":return M(()=>kV(s,i,o));case"dynamic":return IV(s,i,o);case"evaluation":return M(()=>NV(s,i,o));case"image":return M(()=>AV(s,i,o));case"graph":return M(()=>TV(s,i,o));case"logical":return M(()=>FV(s,i,o));case"matrices":return M(()=>_V(s,i,o));case"normalization":return M(()=>EV(s,i,o));case"reduction":return M(()=>$V(s,i,o));case"slice_join":return M(()=>DV(s,i,o));case"spectral":return M(()=>MV(s,i,o));case"transformation":return M(()=>RV(s,i,o));case"hash_table":return CV(s,i,o,a);case"custom":let l=nN(s.op);if(l&&l.customExecutor)return l.customExecutor(new dV(s,i,o));throw TypeError(`Custom op ${s.op} is not registered.`);default:throw TypeError(`Unknown op '${s.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,n);return I.isPromise(r)?r.then(s=>[].concat(s)):[].concat(r)}var CN=class{constructor(e={},t={},n={},a={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(let t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(let t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}};function FN(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,u=Object.keys(e).map(d=>Bn(d)[0]),c=[];a!=null&&(c=a.map(d=>Bn(d.name)[0]));let p=[...t];for(;p.length>0;){let d=p.pop();if((AN(d)||PV(d)||OV(d))&&i==null&&(i=d,o=i.children.map(h=>h.name).filter(h=>r.has(h))),r.add(d.name),n[d.name]==null&&u.indexOf(d.name)===-1&&c.indexOf(d.name)===-1){if(d.inputs.length===0){s.push(d.name);continue}d.inputs.forEach(h=>{l.has(h.name)||(l.add(h.name),p.push(h))})}}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:i,syncInputs:o}}function LV(e,t,n){let{usedNodes:a,inputs:r}=n,s=[],i=Object.keys(r).map(c=>Bn(c)[0]).map(c=>e.nodes[c]),o=e.initNodes;i.forEach(c=>{a.has(c.name)&&s.push(c)}),e.weights.forEach(c=>{a.has(c.name)&&s.push(c)}),o!=null&&o.forEach(c=>{a.has(c.name)&&s.push(c)});let l=new Set,u=[];for(;s.length>0;){let c=s.pop();l.add(c.name),t[c.name]||u.push(c),c.children.forEach(p=>{!l.has(p.name)&&a.has(p.name)&&p.inputs.every(d=>l.has(d.name))&&s.push(p)})}return u}var zV=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],WV=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],BV=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function AN(e){return zV.indexOf(e.op)>=0}function PV(e){return WV.indexOf(e.op)>=0}function OV(e){return BV.indexOf(e.op)>=0}var Iv=class{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(n=>{this._functionExecutorMap[n]=new Iv(e.functions[n],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){let t=Object.keys(e).map(n=>e[n].map(a=>a.id));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{let t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t})}get functions(){return Object.keys(this._functions).reduce((e,t)=>(e[t]=this._functions[t].signature,e),{})}getCompilationKey(e,t){let n=e.map(r=>r.name).sort(),a=t.map(r=>r.name).sort();return n.join(this.SEPERATOR)+"--"+a.join(this.SEPERATOR)}compile(e,t){let n=FN(e,t,this.weightMap,this._initNodes),{missingInputs:a,dynamicNode:r,syncInputs:s}=n;if(r!=null)throw new Error(`This execution contains the node '${r.name}', which has the dynamic op '${r.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(a.length>0){let i=t.map(l=>l.name),o=Object.keys(e);throw new Error(`Cannot compute the outputs [${i}] from the provided inputs [${o}]. Missing the following inputs: [${a}]`)}return LV(this.graph,this.weightMap,n)}execute(e,t){e=this.mapInputs(e);let n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let a=n.map(c=>this.graph.nodes[Bn(c)[0]]),r=t.map(c=>Bn(c)[0]),s=r.map(c=>this.graph.nodes[c]);s.length===0&&(s=this._outputs);let i=this.getCompilationKey(a,s),o=this.compiledMap.get(i);o==null&&(o=this.compile(e,s),this.compiledMap.set(i,o));let l={},u={};return M(()=>{let c=new CN(this.weightMap,l,u,this.functionExecutorMap),p=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{let[f,g]=Bn(m),y=[];y[g]=e[m],p[f]=y});let d=this.getFrozenTensorIds(p),h={};for(let m=0;m_n(m,p,c))})}getFrozenTensorIds(e){let t=[].concat.apply([],Object.keys(e).map(n=>e[n]).map(n=>n.map(a=>a.id)));return new Set(t)}checkTensorForDisposal(e,t,n,a,r,s,i){t.category==="control"||s.indexOf(e)!==-1||(n[e].forEach(o=>{o!=null&&(i[o.id]=(i[o.id]||0)+t.children.length)}),t.inputs.forEach(o=>{if(o.category!=="control"){let l=q4(o.name,n,a);l!=null&&l.forEach(u=>{if(u&&!r.has(u.id)){let c=i[u.id];c===1?(u.dispose(),delete i[u.id]):c!=null&&i[u.id]--}})}}))}async executeAsync(e,t){return this._executeAsync(e,t)}async _executeAsync(e,t,n=!1,a={},r={}){n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));let s=new CN(this.weightMap,a,r,this.functionExecutorMap),i=await this.executeWithControlFlow(e,s,t,n),o=t.map(p=>_n(p,i,s)),l=o.map(p=>p.id),u=Object.keys(e).map(p=>e[p].id),c=new Set([...l,...u,...this.weightIds]);return Object.keys(i).forEach(p=>{i[p].forEach(d=>{d&&!d.isDisposed&&!c.has(d.id)&&d.dispose()})}),this.parent==null&&s.dispose(c),o}async executeFunctionAsync(e,t,n){let a=e.reduce((r,s,i)=>(r[this.inputs[i].name]=s,r),{});return this._executeAsync(a,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,a){let r=Object.keys(e),s=r.map(b=>this.graph.nodes[Bn(b)[0]]),i=n.map(b=>Bn(b)[0]),o=i.map(b=>this.graph.nodes[b]);o.length===0&&(o=this._outputs);let{usedNodes:l,missingInputs:u,dynamicNode:c,syncInputs:p}=FN(e,o,this.weightMap,this._initNodes),d=[...s,...this.graph.weights,...this._initNodes||[]].map(b=>({node:b,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(b=>{let[x,v]=Bn(b),k=[];k[v]=e[b],h[x]=k});let m={},f=this.getFrozenTensorIds(h),g={};for(;d.length>0;){let b=this.processStack(s,d,t,h,g,f,i,m,l);await Promise.all(b)}c==null&&!a&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let y=o.filter(b=>!AN(b)&&!_n(b.name,h,t)).map(b=>b.name);if(y.length>0){let b="";throw c!=null&&(b=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${p}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${u}]. ${b}`)}return h}processStack(e,t,n,a,r,s,i,o,l){let u=[];for(;t.length>0;){let c=t.pop();n.currentContext=c.contexts;let p="";if(c.node.op==="Enter"&&N("isConstant",c.node,a,n)&&([p]=Tr(c.node.name,n)),a[c.node.name]==null){let d=SN(c.node,a,n,this._resourceManager);p||([p]=Tr(c.node.name,n));let h=n.currentContext;I.isPromise(d)?u.push(d.then(m=>(a[p]=m,n.currentContext=h,this.checkTensorForDisposal(p,c.node,a,n,s,i,o),this.processChildNodes(c.node,t,n,a,r,l),m))):(a[p]=d,this.checkTensorForDisposal(p,c.node,a,n,s,i,o),this.processChildNodes(c.node,t,n,a,r,l))}else this.processChildNodes(c.node,t,n,a,r,l)}return u}processChildNodes(e,t,n,a,r,s){e.children.forEach(i=>{let[o]=Tr(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!_n(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!_n(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let n=e[t],[a]=Bn(t),r=this.graph.nodes[a];if(r.attrParams.shape&&r.attrParams.shape.value){let s=r.attrParams.shape.value,i=s.length===n.shape.length&&n.shape.every((o,l)=>s[l]===-1||s[l]===o);I.assert(i,()=>`The shape of dict['${r.name}'] provided in model.execute(dict) must be [${s}], but was [${n.shape}]`)}r.attrParams.dtype&&r.attrParams.dtype.value&&I.assert(n.dtype===r.attrParams.dtype.value,()=>`The dtype of dict['${r.name}'] provided in model.execute(dict) must be ${r.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(e){let t={};for(let n in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[n]!=null){let a=this._signature.inputs[n];t[a.name]=e[n]}else t[n]=e[n];return t}checkInputs(e){let t=Object.keys(e).filter(n=>{let[a]=Bn(n);return this.graph.nodes[a]==null});if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(t=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null?this._signature.outputs[t].name:t,{})}checkOutputs(e){e.forEach(t=>{let[n]=Bn(t);if(!this.graph.nodes[n])throw new Error(`The output '${t}' is not found in the graph`)})}},VV=class{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(let e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(let e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}},UV="?tfjs-format=file",GV="model.json",_N=class{constructor(e,t={}){this.modelUrl=e,this.loadOptions=t,this.version="n/a",t==null&&(this.loadOptions={}),this.resourceManager=new VV}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=jt.browserHTTPRequest(e,this.loadOptions);else{let t=jt.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(jt.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=await this.handler.load();return this.loadSync(e)}loadSync(e){this.artifacts=e;let t=this.artifacts.modelTopology,n;this.artifacts.userDefinedMetadata!=null&&this.artifacts.userDefinedMetadata.signature!=null?n=this.artifacts.userDefinedMetadata.signature:n=this.artifacts.signature,this.signature=n,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;let a=jt.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new Iv(wN.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(a),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let r=wN.Instance.transformGraph(e.modelInitializer);this.initializer=new Iv(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(e,t){if(typeof e=="string"){let n=jt.getSaveHandlers(e);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${e}'`);e=n[0]}if(e.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){return this.execute(e,this.outputNodes)}normalizeInputs(e){if(!(e instanceof Fe)&&!Array.isArray(e))return e;if(e=Array.isArray(e)?e:[e],e.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce((t,n,a)=>(t[n]=e[a],t),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=this.executor.execute(e,t);return n.length>1?n:n[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,n)=>(t[n]=[e[n]],t),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}};async function HV(e,t={}){if(e==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&e.load==null&&(e.endsWith("/")||(e=e+"/"),e=`${e}${GV}${UV}`);let n=new _N(e,t);return await n.load(),n}var EN="3.3.0",$N={};Oe($N,{CSVDataset:()=>MN,Dataset:()=>ou,FileDataSource:()=>RN,TextLineDataset:()=>DN,URLDataSource:()=>PN,array:()=>jV,csv:()=>XV,func:()=>KV,generator:()=>YV,microphone:()=>QV,version_data:()=>ON,webcam:()=>JV,zip:()=>qV});var ZV=Do(a0()),eU=Do(a0());function tU(e,t){return Pm(e,t)}function Pm(e,t,n=new Map,a=new Set){if(e==null)return null;if(a.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(r.recurse)if(lu(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=Pm(o,t,n,a);s[i]=l}return a.delete(e),s}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return n.set(e,r.value),r.value}function nU(e,t=zN){return LN(e,t)}function LN(e,t,n=new Set){let a=e[0];if(n.has(a))throw new Error("Circular references are not supported.");let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(r.recurse)if(lu(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=LN(o,t,n);s[i]=l}return n.delete(a),s}else throw new Error(`Can't recurse into non-iterable type: ${a}`);else return r.value}function zN(e){return e===null?null:lu(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function WN(e,t){let n=new Map;Pm(e,t,n);for(let a of Array.from(n.keys())){let r=n.get(a);if(I.isPromise(r)){let s=await r;n.set(a,s)}}return Pm(e,t,n)}function lu(e){return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Fe))}function rU(e){return e==null||aU(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Fe||I.isTypedArray(e)}function aU(e){return e===null||typeof e!="object"&&typeof e!="function"}function iU(e){return tU(e,sU)}function sU(e){return e instanceof Fe?{value:e.clone(),recurse:!1}:lu(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var BN=class{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(let t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}},Nv=class extends BN{constructor(){super(Nv.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){let e=this.capacity*2,t=new Array(e),n=this.length();for(let a=0;at===!0)}rowMajorBatch(e,t=!0){return new fU(this,e,t)}columnMajorBatch(e,t=!0,n=zN){return this.rowMajorBatch(e,t).map(a=>nU(a,n))}concatenate(e,t){return new UN(VN([this,e]),t)}take(e){return e<0||e==null?this:new mU(this,e)}skip(e){return e<0||e==null?this:new hU(this,e)}prefetch(e){return new HN(this,e)}shuffle(e,t){return new vU(this,e,t)}serial(){return new dU(this)}},oU=class extends Jt{constructor(e){super();this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let e=this.items[this.trav];return this.trav++,{value:iU(e),done:!1}}},lU=class extends Jt{constructor(e){super();this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},dU=class extends Jt{constructor(e){super();this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},hU=class extends Jt{constructor(e,t){super();this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},fU=class extends Jt{constructor(e,t,n=!0){super();this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}},gU=class extends Jt{constructor(e,t){super();this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;Ee(e.value)}}},yU=class extends Jt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Na.getTensorsInContainer(e.value),n=this.transform(e.value),a=Na.getTensorsInContainer(n);for(let r of t)Na.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},bU=class extends Jt{constructor(e,t){super();this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},GN=class extends Jt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Na.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Na.getTensorsInContainer(n);for(let r of t)Na.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},Sv=class extends Jt{constructor(){super();this.outputQueue=new Nv,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},xU=class extends Sv{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let e=await this.upstream.next();if(e.done)return!1;let t=Na.getTensorsInContainer(e.value),n=this.transform(e.value),a=Na.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Na.isTensorInList(r,a)||r.dispose();return!0}},UN=class extends Jt{constructor(e,t){super();this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}},ms;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(ms||(ms={}));var cU=class extends Jt{constructor(e,t=ms.FAIL){super();this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(e){await e;let t=0,n=0;function a(s){return s instanceof Jt?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await WN(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case ms.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case ms.SHORTEST:return{value:null,done:!0};case ms.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},HN=class extends Jt{constructor(e,t){super();this.upstream=e,this.bufferSize=t,this.buffer=new BN(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}},vU=class extends HN{constructor(e,t,n){super(e,t);this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=eU.alea(n||I.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}},ou=class{constructor(){this.size=null}batch(e,t=!0){let n=this;I.assert(e>0,()=>`batchSize needs to be positive, but it is + ${e}`);let a;return this.size===Infinity||this.size==null?a=this.size:t?a=Math.ceil(this.size/e):a=Math.floor(this.size/e),Vn(async()=>(await n.iterator()).columnMajorBatch(e,t,wU),a)}concatenate(e){let t=this,n;return this.size===Infinity||e.size===Infinity?n=Infinity:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,Vn(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===Infinity?n=Infinity:n=null,Vn(async()=>(await t.iterator()).filter(a=>M(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return Vn(async()=>(await t.iterator()).map(n=>M(()=>e(n))),this.size)}mapAsync(e){let t=this;return Vn(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 Vn(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=Infinity:n=null,Vn(async()=>{let a=Tv(async()=>({value:await t.iterator(),done:!1}));return uU(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(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)`);let a=this,r=ZV.alea(t||I.now().toString());return Vn(async()=>{let s=r.int32();return n&&(s+=r.int32()),(await a.iterator()).shuffle(e,s.toString())},this.size)}take(e){let t=this,n;return this.size!=null&&this.size>e?n=e:this.size!=null&&this.size<=e?n=this.size:n=null,Vn(async()=>(await t.iterator()).take(e),n)}async toArray(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};ou.MAX_BUFFER_SIZE=1e4;function Vn(e,t=null){return new class extends ou{constructor(){super(...arguments);this.size=t}async iterator(){return e()}}}function jV(e){return Vn(async()=>VN(e),e.length)}function qV(e){if(!lu(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let n=0;n{let n=await WN(e,a=>{if(a instanceof ou)return{value:a.iterator(),recurse:!1};if(lu(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return pU(n,ms.SHORTEST)},t)}function wU(e){if(e===null)return null;let t=e[0];return rU(t)?{value:kU(e),recurse:!1}:{value:null,recurse:!0}}function kU(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Fe?Dt(e):Jn(e)}var DN=class extends ou{constructor(e){super();this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` +`).map(e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e))}},Om='"',pp=Symbol("out"),jN=Symbol("field"),Lm=Symbol("quote"),Cv=Symbol("quoteafterquote"),qN=Symbol("quoteinquote"),MN=class extends ou{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 DN(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(I.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 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&&I.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(I.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}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;r14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=e.includeSpectrogram!==!1,this.includeWaveform=e.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(Z().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");let t=new XN(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let e,t,n=await this.getAudioData();if(this.includeSpectrogram){let a=this.flattenQueue(n.freqDataQueue);e=this.getTensorFromAudioDataArray(a,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let a=this.flattenQueue(n.timeDataQueue);t=this.getTensorFromAudioDataArray(a,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let e=[],t=[],n=0;return new Promise(a=>{let r=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&a({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(r),a({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){let t=e[0].length,n=new Float32Array(e.length*t);return e.forEach((a,r)=>n.set(a,r*t)),n}getTensorFromAudioDataArray(e,t){let n=new Float32Array(I.sizeFromShape(t));return n.set(e,n.length-e.length),Jn(n,t)}},KN=class extends Jt{constructor(e,t){super();if(this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Ze([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,a=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,r=(1-n)/2,s=(1-a)/2,i=r+n,o=a+s;this.cropBox=Ca([s,r,o,i],[1,4])}else this.cropBox=Ca([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(Z().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}let n=new KN(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&I.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}})}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=Fi.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return M(()=>{let t=Rn(ue(e,"float32"),0),n;n=Ja.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let a=n.shape;return H(n,a.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(e=>e.stop());try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}},YN=class{},JN=class extends Jt{split(e){return new IU(this,e)}},IU=class extends JN{constructor(e,t){super();this.upstream=e,this.impl=new NU(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},NU=class extends Sv{constructor(e,t){super();this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(let n of t.slice(0,-1))this.outputQueue.push(n);return this.carryover=t[t.length-1],!0}},SU=class extends Jt{decodeUTF8(){return new TU(this)}},TU=class extends JN{constructor(e){super();this.upstream=e,this.impl=new CU(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},CU=class extends Sv{constructor(e){super();if(this.upstream=e,Z().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=OF();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let e=await this.upstream.next(),t;if(e.done)return!1;t=e.value;let n;return Z().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},QN=class extends SU{constructor(e,t={}){super();this.file=e,this.options=t,I.assert(e instanceof Uint8Array||(Z().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,t)=>{let n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,n)));else{let a=new FileReader;a.onload=s=>{let i=a.result;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),!(i instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(i)},a.onabort=s=>t(new Error("Aborted")),a.onerror=s=>t(new Error(s.type));let r=this.file.slice(this.offset,n);a.readAsArrayBuffer(r)}this.offset=n}),done:!1}}};async function FU(e,t={}){let n,a;typeof e=="string"?n=e:(n=e.url,a=AU(e));let r=await I.fetch(n,a);if(r.ok){let s=new Uint8Array(await r.arrayBuffer());return new QN(s,t)}else throw new Error(r.statusText)}var AU=e=>({method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity});function ZN(e){return typeof e=="string"&&e.substr(0,7)==="file://"}var RN=class extends YN{constructor(e,t={}){super();this.input=e,this.options=t}async iterator(){if(ZN(this.input)&&Z().get("IS_NODE")){let e=require("fs");this.input=e.readFileSync(this.input.substr(7))}return new QN(this.input,this.options)}},PN=class extends YN{constructor(e,t={}){super();this.url=e,this.fileOptions=t}async iterator(){return ZN(this.url)?new RN(this.url,this.fileOptions).iterator():FU(this.url,this.fileOptions)}};function XV(e,t={}){return new MN(new PN(e),t)}function KV(e){let t=Tv(e);return Vn(async()=>t)}function YV(e){return Vn(async()=>{let t=await e();return Tv(()=>t.next())})}async function JV(e,t){return KN.create(e,t)}async function QV(e){return XN.create(e)}var ON="3.3.0";function ve(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&I.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var _U=Qa.whereImpl,Av=class extends Zu{constructor(){super();this.blockSize=48,this.firstUse=!0,this.data=new kd(this,Ha())}nextDataId(){return Av.nextDataId++}write(e,t,n){this.firstUse&&(this.firstUse=!1,Z().get("IS_NODE")&&E.warn(` ============================ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details. -============================`));let a={id:this.nextDataId()};return this.data.set(a,{values:e,dtype:n,refCount:1}),a}makeTensorInfo(e,t,n){let a;if(t==="string"&&n!=null&&n.length>0&&w.isString(n[0])){let r=n.map(s=>w.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return{dataId:a,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,n,a,r){this.data.set(e,{values:t,dtype:a,refCount:r})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:n}=this.data.get(e);if(t==="complex64"){let a=this.readSync(n.real.dataId),r=this.readSync(n.imag.dataId);return _.mergeRealAndImagArrays(a,r)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId),n=t;if(e.dtype==="string")try{n=t.map(a=>w.decodeString(a))}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(e.shape,e.dtype,n)}makeOutput(e,t,n){let a=this.write(e,t,n);return Ha().makeTensorFromDataId(a,t,n,this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(e);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){let t=w.now();return e(),{kernelMs:w.now()-t}}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(e){ve([e],"where");let t=this.readSync(e.dataId);return rU(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};_v.nextDataId=0;var YT={};Oe(YT,{addImpl:()=>QT,bincountImpl:()=>Ev,bincountReduceImpl:()=>ZT,ceilImpl:()=>eN,concatImpl:()=>Fv,expImpl:()=>tN,expm1Impl:()=>nN,floorImpl:()=>aN,gatherV2Impl:()=>rN,greaterImpl:()=>sN,lessImpl:()=>iN,linSpaceImpl:()=>oN,logImpl:()=>lN,maxImpl:()=>uN,maximumImpl:()=>cN,minimumImpl:()=>pN,multiplyImpl:()=>Av,negImpl:()=>dN,notEqualImpl:()=>hN,prodImpl:()=>mN,rangeImpl:()=>Dv,rsqrtImpl:()=>fN,simpleAbsImpl:()=>JT,sliceImpl:()=>zm,squaredDifferenceImpl:()=>gN,stridedSliceImpl:()=>yN,subImpl:()=>bN,tileImpl:()=>xN,topKImpl:()=>vN,transposeImpl:()=>$v,uniqueImpl:()=>wN});function JT(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;ve(t,"abs");let a=new Float32Array(w.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=JT(r),n.makeOutput(a,t.shape,"float32")},iU={kernelName:Po,backendName:"cpu",kernelFunc:sU};function Rt(e){return(t,n,a,r,s)=>{let i=_.assertAndGetBroadcastShape(t,n),o=i.length,l=w.computeStrides(i),c=w.sizeFromShape(i),u=w.getTypedArrayFromDType(s,c),p=t.length,d=n.length,h=w.computeStrides(t),m=w.computeStrides(n),f=_.getBroadcastDims(t,i),g=_.getBroadcastDims(n,i);if(f.length+g.length===0)for(let y=0;yx[S]=0);let v=w.locToIndex(x,p,h),N=b.slice(-d);g.forEach(S=>N[S]=0);let T=w.locToIndex(N,d,m);u[y]=e(a[v],r[T])}return[u,i]}}function Un(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.complexTensorInfos={real:n.makeTensorInfo(a.shape,"float32",s),imag:n.makeTensorInfo(r.shape,"float32",i)},o}var oU={kernelName:Ad,backendName:"cpu",kernelFunc:Un};function Bm(e,t,n="float32"){if(n==="complex64"){let r=Bm(e,t,"float32"),s=Bm(e,t,"float32");return Un({inputs:{real:r,imag:s},backend:e})}let a=w.makeZerosTypedArray(w.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function rr(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var lU={kernelName:Ks,backendName:"cpu",kernelFunc:rr};function Ki(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.data.get(a.dataId).complexTensorInfos.real,s=n.data.get(r.dataId).values;return n.makeTensorInfo(r.shape,r.dtype,s)}var uU={kernelName:Jd,backendName:"cpu",kernelFunc:Ki};function fs(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return rr({inputs:{x:r},backend:n});let i=Bm(n,r.shape,r.dtype),o=fs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=Un({inputs:{real:o,imag:i},backend:n});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=Ki({inputs:{input:r},backend:n}),o=fs({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!w.hasEncodingLoss(r.dtype,s)){let i=rr({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(s==="int32"){let i=n.data.get(r.dataId).values,o=Int32Array.from(i);return n.makeTensorInfo(r.shape,"int32",o)}if(s==="bool"){let i=n.data.get(r.dataId).values,o=w.toTypedArray([0],r.dtype),[l,c]=Rt((u,p)=>u!==p?1:0)(r.shape,[],i,o,"bool");return n.makeTensorInfo(c,"bool",l)}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var cU={kernelName:Ms,backendName:"cpu",kernelFunc:fs};function Jt(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;ve([i,o],e);let c=l.data.get(i.dataId).values,u=l.data.get(o.dataId).values,p=a||i.dtype,[d,h]=t(i.shape,o.shape,c,u,p);return l.makeTensorInfo(h,p,d)}:({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;if(i.dtype==="complex64"||o.dtype==="complex64"){let c=fs({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),u=l.data.get(c.dataId),p=u.complexTensorInfos.real,d=u.complexTensorInfos.imag,h=l.data.get(p.dataId).values,m=l.data.get(d.dataId).values,f=fs({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),y=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,x=l.data.get(y.dataId).values,v=l.data.get(b.dataId).values,[N,T,S]=n(i.shape,o.shape,h,m,x,v),A=l.makeTensorInfo(S,"float32",N),$=l.makeTensorInfo(S,"float32",T),R=Un({inputs:{real:A,imag:$},backend:l});return l.disposeIntermediateTensorInfo(c),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(A),l.disposeIntermediateTensorInfo($),R}else{let c=l.data.get(i.dataId).values,u=l.data.get(o.dataId).values,p=a||i.dtype,[d,h]=t(i.shape,o.shape,c,u,p);return l.makeTensorInfo(h,p,d)}}}function Rv(e){return(t,n,a,r,s,i)=>{let o=_.assertAndGetBroadcastShape(t,n),l=w.sizeFromShape(o),c=o.length,u=w.computeStrides(o),p=w.getTypedArrayFromDType("float32",l),d=w.getTypedArrayFromDType("float32",l),h=_.getBroadcastDims(t,o),m=_.getBroadcastDims(n,o),f=_.mergeRealAndImagArrays(a,r),g=_.mergeRealAndImagArrays(s,i),y=t.length,b=w.computeStrides(t),x=n.length,v=w.computeStrides(n);if(h.length+m.length===0)for(let N=0;NS[V]=0);let A=w.locToIndex(S,y,b),$=T.slice(-x);m.forEach(V=>$[V]=0);let R=w.locToIndex($,x,v),B=e(f[A*2],f[A*2+1],g[R*2],g[R*2+1]);p[N]=B.real,d[N]=B.imag}return[p,d,o]}}var QT=Rt((e,t)=>e+t),pU=Rv((e,t,n,a)=>({real:e+n,imag:t+a})),pp=Jt(Hr,QT,pU),dU={kernelName:Hr,backendName:"cpu",kernelFunc:pp};function Ev(e,t,n,a,r){let s=w.sizeFromShape(a),i=w.makeZerosTypedArray(r,n);for(let o=0;o=r||(s>0?i[l]+=t[o]:i[l]+=1)}return i}function ZT(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Le([r,n],t.dtype);for(let o=0;o=n||(a?i.set(1,o,c):t.size>0?i.set(i.get(o,c)+t.get(o,l),o,c):i.set(i.get(o,c)+1,o,c))}return i}function uu(e){return(t,n,a)=>{let r=w.getTypedArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;if(ve(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,c=w.sizeFromShape(i.shape),u=n||i.dtype,p=w.getArrayFromDType(u,c);for(let d=0;d{let{x:i}=a;if(ve(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,c=n||i.dtype,u=t(l,c,r);return o.makeTensorInfo(i.shape,c,u)}}var eN=uu(e=>Math.ceil(e)),hU=cu(Ps,eN),mU={kernelName:Ps,backendName:"cpu",kernelFunc:hU};function Fv(e,t,n,a){let r=w.getArrayFromDType(n,w.sizeFromShape(t));if(a&&n!=="string"){let s=0;e.forEach(i=>{let o=w.sizeFromShape(i.shape);r.set(i.vals,s),s+=o})}else{let s=0;e.forEach(i=>{let o=n==="string"?_.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let c=0;cMath.exp(e)),kN=cu(Us,tN),fU={kernelName:Us,backendName:"cpu",kernelFunc:kN},nN=uu(e=>Math.expm1(e)),gU=cu(Qo,nN),yU={kernelName:Qo,backendName:"cpu",kernelFunc:gU},aN=uu(e=>Math.floor(e)),bU=cu(Gs,aN),xU={kernelName:Gs,backendName:"cpu",kernelFunc:bU};function rN(e,t,n){let a=Le(n,e.dtype);for(let r=0;re>t?1:0),vU=Jt(nl,sN,null,"bool"),wU={kernelName:nl,backendName:"cpu",kernelFunc:vU},iN=Rt((e,t)=>eMath.log(e)),TU=cu(Ys,lN),NU={kernelName:Ys,backendName:"cpu",kernelFunc:TU};function uN(e,t,n,a){let r=w.getTypedArrayFromDType(a,w.sizeFromShape(n));for(let s=0;so&&(o=c)}r[s]=o}return r}var cN=Rt((e,t)=>Math.max(e,t)),SU=Jt(Qs,cN),CU={kernelName:Qs,backendName:"cpu",kernelFunc:SU},pN=Rt((e,t)=>Math.min(e,t)),_U=Jt(ni,pN),EU={kernelName:ni,backendName:"cpu",kernelFunc:_U},Av=Rt((e,t)=>e*t),FU=Rv((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),Mv=Jt(ai,Av,FU),AU={kernelName:ai,backendName:"cpu",kernelFunc:Mv};function dN(e,t,n){let a=w.createScalarValue(-1,n);return Av([],t,a,e,n)}function $U(e){let{inputs:t,backend:n}=e,{x:a}=t;ve(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=dN(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var DU={kernelName:pl,backendName:"cpu",kernelFunc:$U},hN=Rt((e,t)=>e!==t?1:0),RU=Jt(dl,hN,null,"bool"),MU={kernelName:dl,backendName:"cpu",kernelFunc:RU};function $v(e,t,n,a,r){let s=t.length,i=w.sizeFromShape(t),o=w.computeStrides(t),l=w.computeStrides(r),c=w.getTypedArrayFromDType(n,w.sizeFromShape(r));for(let u=0;un.disposeIntermediateTensorInfo(b)),n.makeTensorInfo(y,g,m)}var LU={kernelName:bl,backendName:"cpu",kernelFunc:OU};function Dv(e,t,n,a){let r=e===t,s=e1;if(r||s||i)return w.makeZerosTypedArray(0,a);let o=Math.abs(Math.ceil((t-e)/n)),l=w.makeZerosTypedArray(o,a);t1/Math.sqrt(e)),zU=cu(hi,fN),BU={kernelName:hi,backendName:"cpu",kernelFunc:zU};function zm(e,t,n,a,r){let s=dn.isSliceContinous(a,t,n),i=w.sizeFromShape(n),o=w.computeStrides(a);if(s){let p=dn.computeFlatOffset(t,o);return r==="string"?e.slice(p,p+i):e.subarray(p,p+i)}let l=r==="string"?_.fromUint8ToStringArray(e):e,c=Le(a,r,l),u=Le(n,r);for(let p=0;pm+t[f]);u.set(c.get(...h),...d)}return r==="string"?_.fromStringArrayToUint8(u.values):u.values}function Xi(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;ve(r,"slice");let[o,l]=dn.parseSliceParams(r,s,i);dn.assertParamsValid(r,o,l);let c=n.data.get(r.dataId).values,u=zm(c,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,u)}var WU={kernelName:Tl,backendName:"cpu",kernelFunc:Xi},gN=Rt((e,t)=>{let n=e-t;return n*n}),VU=Jt(xi,gN),UU={kernelName:xi,backendName:"cpu",kernelFunc:VU};function yN(e,t,n,a){let r=Le(e,t.dtype);for(let s=0;se-t),GU=Rv((e,t,n,a)=>({real:e-n,imag:t-a})),Pv=Jt(vi,bN,GU),HU={kernelName:vi,backendName:"cpu",kernelFunc:Pv};function xN(e,t){let n=new Array(e.rank);for(let r=0;rx.value-b.value);let f=p*a,g=l.subarray(f,f+a),y=c.subarray(f,f+a);for(let b=0;b{for(let g=0;gnew _v,1);var IN=st(Ko,e=>e>=0?e:Math.exp(e)-1),qU={kernelName:Ko,backendName:"cpu",kernelFunc:IN};function TN(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;ve([r],"leakyRelu");let i=w.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=w.getTypedArrayFromDType("float32",i);for(let c=0;ce<0?t*e:e);function NN(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;ve([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=XU(a.shape,r.shape,s,i,a.dtype);return n.makeTensorInfo(l,a.dtype,o)}var YU={kernelName:oi,backendName:"cpu",kernelFunc:NN},SN=st(li,e=>Math.max(0,e)),JU={kernelName:li,backendName:"cpu",kernelFunc:SN},CN=st(ci,e=>Math.min(Math.max(0,e),6)),QU={kernelName:ci,backendName:"cpu",kernelFunc:CN};function Ov(e,t,n,a,r){if(n==="linear")return rr({inputs:{x:t},backend:e});if(n==="relu")return SN({inputs:{x:t},backend:e});if(n==="elu")return IN({inputs:{x:t},backend:e});if(n==="relu6")return CN({inputs:{x:t},backend:e});if(n==="prelu")return NN({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return TN({inputs:{x:t},backend:e,attrs:{alpha:r}});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function kt(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=w.sizeFromShape(r.shape),o=w.inferFromImplicitShape(s,i),l=w.sizeFromShape(o);w.assert(i===l,()=>`The new shape (${o}) has ${l} elements and the old shape (${r.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),n.incRef(r.dataId);let c=n.data.get(r.dataId);if(c.complexTensorInfos!=null){let u=c.complexTensorInfos.real,p=c.complexTensorInfos.imag;u.shape=o,p.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}var ZU={kernelName:vl,backendName:"cpu",kernelFunc:kt};function _N(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;ve([r,s],"matMul");let l=r.shape.length,c=s.shape.length,u=i?r.shape[l-2]:r.shape[l-1],p=o?s.shape[c-1]:s.shape[c-2],d=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[c-2]:s.shape[c-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=w.sizeFromShape(m),y=w.sizeFromShape(f),b=g===y||g===1||y===1;w.assert(l>=2&&c>=2&&b,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${m}) and (${f}).`);let x=(g>y?r.shape.slice(0,-2):s.shape.slice(0,-2)).concat([d,h]);w.assert(u===p,()=>`Error in matMul: inner shapes (${u}) and (${p}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let v=i?[g,u,d]:[g,d,u],N=o?[y,h,p]:[y,p,h],T=kt({inputs:{x:r},backend:n,attrs:{shape:v}}),S=kt({inputs:{x:s},backend:n,attrs:{shape:N}}),A=i?T.shape[1]:T.shape[2],$=i?T.shape[2]:T.shape[1],R=o?S.shape[1]:S.shape[2],B=Math.max(g,y),V=n.data.get(T.dataId).values,W=n.data.get(S.dataId).values,G=w.computeStrides(T.shape),H=w.computeStrides(S.shape),[X,q,te]=i?[G[0],1,G[1]]:[G[0],G[1],1],[Q,se,ne]=o?[1,H[1],H[0]]:[H[1],1,H[0]],ie=$*R,Z=Le([B,$,R],T.dtype),de=Z.values,oe=n.blockSize;for(let ge=0;geMath.acos(e)),rG={kernelName:Oo,backendName:"cpu",kernelFunc:aG},sG=st(Lo,e=>Math.acosh(e)),iG={kernelName:Lo,backendName:"cpu",kernelFunc:sG};function oG(e){let{inputs:t,backend:n}=e,a=t;ve(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Le(a[0].shape,a[0].dtype),i=s.values;for(let o=0;ob&&(b=N,x=v)}h[g]=x}return c.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(u,"int32",h)}var mG={kernelName:$s,backendName:"cpu",kernelFunc:hG};function fG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;ve(r,"argMin");let i=w.parseAxisParam(s,r.shape),o=_.getAxesPermutation(i,r.shape.length),l=r,c=[];o!=null&&(l=xa({inputs:{x:r},backend:n,attrs:{perm:o}}),c.push(l),i=_.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],_.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[u,p]=_.computeOutAndReduceShapes(l.shape,i),d=w.sizeFromShape(u),h=w.makeZerosTypedArray(d,"int32"),m=w.sizeFromShape(p),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(u,"int32",h)}var gG={kernelName:nc,backendName:"cpu",kernelFunc:fG},yG=st(zo,e=>Math.asin(e)),bG={kernelName:zo,backendName:"cpu",kernelFunc:yG},xG=st(Bo,e=>Math.asinh(e)),vG={kernelName:Bo,backendName:"cpu",kernelFunc:xG},wG=st(Wo,e=>Math.atan(e)),kG={kernelName:Wo,backendName:"cpu",kernelFunc:wG},IG=Rt((e,t)=>Math.atan2(e,t)),TG=Jt(Uo,IG),NG={kernelName:Uo,backendName:"cpu",kernelFunc:TG},SG=st(Vo,e=>Math.atanh(e)),CG={kernelName:Vo,backendName:"cpu",kernelFunc:SG};function Lv(e,t,n,a,r,s){let i=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,c=r.dilationWidth,u=r.effectiveFilterHeight,p=r.effectiveFilterWidth,d=r.padInfo.top,h=r.padInfo.left,m=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=Le(r.outShape,n),g=f.values,y=r.outShape[1]*r.outShape[2]*r.outShape[3],b=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let v=0;vq?q=oe:s==="avg"&&(te+=oe,Q++)}if(isNaN(q))break}let se=V+W*x+S;g[se]=s==="avg"?te/Q:q}}}return f}function EN(e,t,n,a,r=!1,s=!1){let i=Le(a.outShape,"int32"),o=a.strideHeight,l=a.strideWidth,c=a.dilationHeight,u=a.dilationWidth,p=a.effectiveFilterHeight,d=a.effectiveFilterWidth,h=a.padInfo.top,m=a.padInfo.left,f=Le(t,n,e);for(let g=0;gR&&(R=X,r?B=s?((g*a.inHeight+V)*a.inWidth+G)*a.inChannels+y:(V*a.inWidth+G)*a.inChannels+y:B=W*d+H)}}i.set(B,g,b,T,y)}}return i}function FN(e,t,n,a,r,s){let i=r.strideDepth,o=r.strideHeight,l=r.strideWidth,c=r.dilationDepth,u=r.dilationHeight,p=r.dilationWidth,d=r.effectiveFilterDepth,h=r.effectiveFilterHeight,m=r.effectiveFilterWidth,f=r.padInfo.front,g=r.padInfo.top,y=r.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=Le(r.outShape,n),v=x.values,N=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],T=r.outShape[2]*r.outShape[3]*r.outShape[4],S=r.outShape[3]*r.outShape[4],A=r.outShape[4];for(let $=0;$we?we=Be:s==="avg"&&(Te+=Be,_e++),isNaN(we))break}if(isNaN(we))break}if(isNaN(we))break}let Re=fe+V;v[Re]=s==="avg"?Te/_e:we}}}}return x}function _G(e,t){let n=Le(t.outShape,"int32"),a=t.strideDepth,r=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,c=t.effectiveFilterDepth,u=t.effectiveFilterHeight,p=t.effectiveFilterWidth,d=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let f=0;f=W&&(W=ne,G=X*u*p+te*u+se)}}}n.set(G,f,y,N,$,g)}}}return n}function EG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;ve(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,c=1;w.assert(_.eitherStridesOrDilationsAreOne(i,c),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l),p;if(u.filterWidth===1&&u.filterHeight===1&&w.arraysEqual(u.inShape,u.outShape))p=rr({inputs:{x:r},backend:n});else{let d=n.data.get(r.dataId).values,h=w.computeStrides(r.shape),m=Lv(d,r.shape,r.dtype,h,u,"avg");p=n.makeTensorInfo(u.outShape,r.dtype,m.values)}return p}var FG={kernelName:Ds,backendName:"cpu",kernelFunc:EG};function AG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:c}=a;ve(r,"avgPool3d");let u=_.computePool3DInfo(r.shape,s,i,1,o,l,c),p=n.data.get(r.dataId).values,d=FN(p,r.shape,r.dtype,w.computeStrides(r.shape),u,"avg");return n.makeTensorInfo(d.shape,"float32",d.values)}var $G={kernelName:ac,backendName:"cpu",kernelFunc:AG};function DG(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:c}=a;ve([r,s],"avgPool3DGrad");let u=_.computePool3DInfo(s.shape,i,o,1,l,c),p=u.strideDepth,d=u.strideHeight,h=u.strideWidth,m=u.filterDepth,f=u.filterHeight,g=u.filterWidth,y=u.dilationDepth,b=u.dilationHeight,x=u.dilationWidth,v=u.effectiveFilterDepth,N=u.effectiveFilterHeight,T=u.effectiveFilterWidth,S=v-1-u.padInfo.front,A=T-1-u.padInfo.left,$=N-1-u.padInfo.top,R=Le(s.shape,"float32"),B=1/(m*f*g),V=n.bufferSync(r);for(let W=0;W=u.outDepth||Math.floor(Z)!==Z))for(let de=0;de=u.outHeight||Math.floor(oe)!==oe))for(let ge=0;ge=u.outWidth||Math.floor(fe)!==fe||(ne+=V.get(W,Z,oe,fe,G))}}}R.set(ne*B,W,H,X,q,G)}return n.makeTensorInfo(R.shape,R.dtype,R.values)}var RG={kernelName:Ed,backendName:"cpu",kernelFunc:DG};function MG(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;ve([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:c}=a,u=_.computePool2DInfo(i.shape,o,l,1,c),p=u.strideHeight,d=u.strideWidth,h=u.filterHeight,m=u.filterWidth,f=u.dilationHeight,g=u.dilationWidth,y=u.effectiveFilterHeight,b=u.effectiveFilterWidth,x=b-1-u.padInfo.left,v=y-1-u.padInfo.top,N=Le(i.shape,"float32"),T=1/(h*m),S=n.data.get(r.dataId).values,A=Le(r.shape,"float32",S);for(let $=0;$=u.outHeight||Math.floor(q)!==q))for(let te=0;te=u.outWidth||Math.floor(Q)!==Q||(H+=A.get($,q,Q,R))}}N.set(H*T,$,B,V,R)}return n.makeTensorInfo(N.shape,N.dtype,N.values)}var PG={kernelName:_d,backendName:"cpu",kernelFunc:MG};function OG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,scale:s,offset:i,mean:o,variance:l}=t;w.assert(o.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),w.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),w.assert(s==null||o.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),ve([r,o,l,s,i],"batchNorm");let{varianceEpsilon:c}=a;c==null&&(c=.001);let u=n.data.get(r.dataId).values,p=n.data.get(o.dataId).values,d=n.data.get(l.dataId).values,h=s?n.data.get(s.dataId).values:new Float32Array([1]),m=i?n.data.get(i.dataId).values:new Float32Array([0]),f=new Float32Array(u.length),g=m.length,y=h.length,b=d.length,x=p.length,v=0,N=0,T=0,S=0;for(let A=0;A=g&&(v=0),N>=x&&(N=0),T>=y&&(T=0),S>=b&&(S=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var LG={kernelName:js,backendName:"cpu",kernelFunc:OG};function zG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ve([r],"batchToSpaceND");let o=s.reduce((y,b)=>y*b),l=_.getReshaped(r.shape,s,o),c=_.getPermuted(l.length,s.length),u=_.getReshapedPermuted(r.shape,s,o),p=_.getSliceBeginCoords(i,s.length),d=_.getSliceSize(u,i,s.length),h=kt({inputs:{x:r},backend:n,attrs:{shape:l}}),m=xa({inputs:{x:h},backend:n,attrs:{perm:c}}),f=kt({inputs:{x:m},backend:n,attrs:{shape:u}}),g=Xi({inputs:{x:f},backend:n,attrs:{begin:p,size:d}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var BG={kernelName:rc,backendName:"cpu",kernelFunc:zG};function WG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,c=Ev(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,c)}var VG={kernelName:Fd,backendName:"cpu",kernelFunc:WG},UG=st(jr,(e,t)=>{let n=t;return e>n.clipValueMax?n.clipValueMax:e{let{x:t}=e.inputs,n=e.backend,a=new Float32Array(w.sizeFromShape(t.shape)),r=n.data.get(t.dataId),s=r.complexTensorInfos.real,i=r.complexTensorInfos.imag,o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values;for(let c=0;cf.shape),s);if(w.sizeFromShape(i)===0)return n.makeTensorInfo(i,t[0].dtype,[]);let o=t.filter(f=>w.sizeFromShape(f.shape)>0);if(o.length===1)return rr({inputs:{x:o[0]},backend:n});let l=o.map(f=>f.shape);if(_.assertParamsConsistent(l,s),o[0].dtype==="complex64"){let f=o.map(v=>Ki({inputs:{input:v},backend:n})),g=o.map(v=>pu({inputs:{input:v},backend:n})),y=du({inputs:f,backend:n,attrs:{axis:s}}),b=du({inputs:g,backend:n,attrs:{axis:s}}),x=Un({inputs:{real:y,imag:b},backend:n});return f.forEach(v=>n.disposeIntermediateTensorInfo(v)),g.forEach(v=>n.disposeIntermediateTensorInfo(v)),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(b),x}let c=o.map(f=>{let g=w.sizeFromShape(f.shape.slice(s));return kt({inputs:{x:f},backend:n,attrs:{shape:[-1,g]}})}),u=c.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));i=_.computeOutShape(c.map(f=>f.shape),1);let p=c[0].shape[0]===1,d=Fv(u,i,t[0].dtype,p),h=_.computeOutShape(o.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,d);return c.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var KG={kernelName:Go,backendName:"cpu",kernelFunc:du};function AN(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:c,dimRoundingMode:u}=a;ve([r,s],"conv2d");let p=_.convertConv2DDataFormat(l),d=_.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!1,p),h=d.filterHeight,m=d.filterWidth,f=d.dilationHeight,g=d.dilationWidth,y=d.padInfo.left,b=d.padInfo.top,x=d.dataFormat==="channelsLast",v=new Ot(d.outShape,r.dtype),N=w.computeStrides(r.shape),T=w.computeStrides(s.shape),S=N[0],A=x?N[1]:N[2],$=x?N[2]:1,R=x?1:N[1],B=v.strides[0],V=x?v.strides[1]:v.strides[2],W=x?v.strides[2]:1,G=x?1:v.strides[1],H=n.data.get(r.dataId).values,X=n.data.get(s.dataId).values,q=v.values;for(let te=0;te=d.inHeight)continue;let ge=de*T[0],fe=Q+oe*A;for(let we=0;we=d.inWidth)continue;let nt=ge+Re*T[1],at=fe+Fe*$,ot=nt;for(let Xe=0;Xe=c.inDepth)continue;let te=X*$[0],Q=B+q*A[1];for(let se=0;se=c.inHeight)continue;let oe=te+Z*$[1],ge=Q+de*A[2];for(let fe=0;fe=c.inWidth)continue;let Fe=oe+_e*$[2],nt=ge+Re*c.inChannels,at=Fe;for(let ot=0;otMath.cos(e)),oH={kernelName:zs,backendName:"cpu",kernelFunc:iH},lH=st(Ho,e=>Math.cosh(e)),uH={kernelName:Ho,backendName:"cpu",kernelFunc:lH};function cH(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:c}=a,[u,p,d,h]=r.shape,m=s.shape[0],[f,g]=o,y=Le([m,f,g,h],"float32"),b=n.data.get(s.dataId).values,x=n.data.get(i.dataId).values,v=n.data.get(r.dataId).values,N=w.computeStrides(r.shape),T=w.computeStrides(y.shape);for(let S=0;S=u)continue;let G=f>1?(B-$)*(p-1)/(f-1):0,H=g>1?(V-R)*(d-1)/(g-1):0;for(let X=0;X1?$*(p-1)+X*G:.5*($+B)*(p-1);if(q<0||q>p-1){for(let te=0;te1?R*(d-1)+ne*H:.5*(R+V)*(d-1);if(ie<0||ie>d-1){for(let ge=0;ge1?R*(d-1)+te*H:.5*(R+V)*(d-1);if(Q<0||Q>d-1){for(let ie=0;iey+m-b-1:(y,b)=>y+b;for(let y=0;y`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`),w.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=r.shape[1],c=r.shape[2],u=r.shape[3],p=l*s,d=c*s,h=u/(s*s),m=n.data.get(r.dataId).values,f=new Float32Array(o*p*d*h),g=0;for(let y=0;y`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${d}'`);let h=_.computeConv2DInfo(r.shape,s.shape,i,d,o,c,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:y,padInfo:b}=h,x=b.left,v=b.top,N=h.outChannels/h.inChannels,T=new Ot(h.outShape,r.dtype),S=n.data.get(r.dataId).values,A=n.data.get(s.dataId).values,$=T.values;for(let R=0;R=h.inHeight)continue;let te=X*p[0],Q=B+q*u[1];for(let se=0;se=h.inWidth)continue;let oe=te+Z*p[1],ge=Q+de*h.inChannels,fe=ne,we=oe;for(let Te=0;Te{let{x:a,filter:r}=e,{strides:s,pad:i,dilations:o}=n,l=t,c=l.data.get(a.dataId).values,u=a.shape.length,p=l.data.get(r.dataId).values,d=r.shape.length,{batchSize:h,inHeight:m,inWidth:f,inChannels:g,outHeight:y,outWidth:b,padInfo:x,strideHeight:v,strideWidth:N,filterHeight:T,filterWidth:S,dilationHeight:A,dilationWidth:$,outShape:R}=_.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),B=w.sizeFromShape(R),V=R.length,W=w.getArrayFromDType(a.dtype,B);for(let G=0;G=0&&Z=0&&oese&&(se=we)}}}let ne=w.locToIndex([G,H,q,Q],V,w.computeStrides(R));W[ne]=se}}}return{dataId:l.write(w.toTypedArray(W,a.dtype),R,a.dtype),shape:R,dtype:a.dtype}}},SH={kernelName:Bd,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,c=t,u=w.toNestedArray(a.shape,c.data.get(a.dataId).values),p=w.toNestedArray(r.shape,c.data.get(r.dataId).values),{batchSize:d,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:v,filterHeight:N,filterWidth:T,dilationHeight:S,dilationWidth:A,outShape:$}=_.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);w.assert(s.rank===$.length,()=>`Error in ${Bd}, dy must have the same rank as output ${$.length}, but got ${s.rank}`);let R=w.toNestedArray($,c.data.get(s.dataId).values),B=w.makeZerosNestedTypedArray(r.shape,r.dtype);for(let V=0;V=0&&ie=0&&dete&&(te=oe,Q=ne,se=Z)}}}B[Q][se][q]+=R[V][W][H][q]}}}return{dataId:c.write(w.toTypedArray(B,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},CH={kernelName:zd,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,c=t,u=w.toNestedArray(a.shape,c.data.get(a.dataId).values),p=w.toNestedArray(r.shape,c.data.get(r.dataId).values),{batchSize:d,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:v,filterHeight:N,filterWidth:T,dilationHeight:S,dilationWidth:A,outShape:$}=_.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);w.assert(s.rank===$.length,()=>`Error in ${zd}, dy must have the same rank as output ${$.length}, but got ${s.rank}`);let R=w.toNestedArray($,c.data.get(s.dataId).values),B=w.makeZerosNestedTypedArray(a.shape,a.dtype);for(let V=0;V=0&&ie=0&&dete&&(te=oe,Q=ie,se=de)}}}B[V][Q][se][q]+=R[V][W][H][q]}}}return{dataId:c.write(w.toTypedArray(B,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function _H(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;ve([a,r],"eluGrad");let s=new Float32Array(w.sizeFromShape(r.shape)),i=n.data.get(r.dataId).values,o=n.data.get(a.dataId).values;for(let l=0;l=1?s[l]=o[l]:s[l]=o[l]*(c+1)}return n.makeTensorInfo(r.shape,"float32",s)}var EH={kernelName:Wd,backendName:"cpu",kernelFunc:_H},FH=Rt((e,t)=>e===t?1:0),DN=Jt(Yo,FH,null,"bool"),AH={kernelName:Yo,backendName:"cpu",kernelFunc:DN},$H=_.ERF_P,DH=_.ERF_A1,RH=_.ERF_A2,MH=_.ERF_A3,PH=_.ERF_A4,OH=_.ERF_A5,LH=st(Xo,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+$H*n);return t*(1-((((OH*a+PH)*a+MH)*a+RH)*a+DH)*a*Math.exp(-n*n))}),zH={kernelName:Xo,backendName:"cpu",kernelFunc:LH};function Wm(e){let{inputs:t,backend:n,attrs:a}=e,{input:r}=t,{dim:s}=a,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(w.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),kt({inputs:{x:r},backend:n,attrs:{shape:o}})}var BH={kernelName:Jo,backendName:"cpu",kernelFunc:Wm},WH=Rt((e,t)=>e/t),zv=Jt(Vs,WH),Bv={kernelName:Vs,backendName:"cpu",kernelFunc:zv};function RN(e,t,n){let a=e.shape,r=a[0],s=a[1],i=n.data.get(e.dataId),o=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,c=[r,s],u=w.sizeFromShape(c),p=w.getTypedArrayFromDType("float32",u),d=w.getTypedArrayFromDType("float32",u);for(let g=0;g{let{image:a}=e,r=n,s=w.getTypedArrayFromDType(a.dtype,w.sizeFromShape(a.shape)),[i,o,l,c]=a.shape,u=r.data.get(a.dataId).values;for(let p=0;p=0&&xMath.floor(e/t)),JH=Jt(Hs,YH,null,"int32"),QH={kernelName:Hs,backendName:"cpu",kernelFunc:JH};function ZH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=AN({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d}});if(i){let g=f;f=pp({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=Ov(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var ej={kernelName:Ti,backendName:"cpu",kernelFunc:ZH};function tj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=$N({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d}});if(i){let g=f;f=pp({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=Ov(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var nj={kernelName:Ni,backendName:"cpu",kernelFunc:tj};function aj(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=w.sizeFromShape(a.shape),i=r.shape,o=i[i.length-1],[l,c,u,p]=_.prepareAndValidate(a,r);if(c===0)return n.makeTensorInfo(l,a.dtype,[]);let d=Le([c,u],a.dtype),h=n.data.get(r.dataId).values,m=n.data.get(a.dataId).values;for(let f=0;f=s/u)throw new Error(`Invalid indices: ${g} does not index into ${a.shape}`);for(let b=0;be>=t?1:0),lj=Jt(qs,oj,null,"bool"),uj={kernelName:qs,backendName:"cpu",kernelFunc:lj};function cj(e){let{inputs:t,backend:n}=e,{input:a}=t,r=w.sizeFromShape(a.shape),s=a.shape[a.shape.length-1],i=r/s,o=kt({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=RN(o,!0,n),c=kt({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),c}var pj={kernelName:Ud,backendName:"cpu",kernelFunc:cj},dj=st(al,e=>Number.isFinite(e)?1:0,"bool"),hj={kernelName:al,backendName:"cpu",kernelFunc:dj},mj=st(rl,e=>Math.abs(e)===Infinity?1:0,"bool"),fj={kernelName:rl,backendName:"cpu",kernelFunc:mj},gj=st(sl,e=>Number.isNaN(e)?1:0,"bool"),yj={kernelName:sl,backendName:"cpu",kernelFunc:gj},bj=Rt((e,t)=>e<=t?1:0),xj=Jt(ol,bj,null,"bool"),vj={kernelName:ol,backendName:"cpu",kernelFunc:xj};function wj(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=oN(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var kj={kernelName:Hd,backendName:"cpu",kernelFunc:wj},Ij=st(ll,e=>Math.log1p(e)),Tj={kernelName:ll,backendName:"cpu",kernelFunc:Ij},Nj=Rt((e,t)=>e&&t),Sj=Jt(ul,Nj,null,"bool"),Cj={kernelName:ul,backendName:"cpu",kernelFunc:Sj},_j=st(uc,e=>e?0:1,"bool"),Ej={kernelName:uc,backendName:"cpu",kernelFunc:_j},Fj=Rt((e,t)=>e||t),Aj=Jt(cc,Fj,null,"bool"),$j={kernelName:cc,backendName:"cpu",kernelFunc:Aj};function Dj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;ve(r,"LRN");let c=r.shape[3],u=c-1,p=n.data.get(r.dataId).values,d=w.sizeFromShape(r.shape),h=new Float32Array(d);function m(f){let g=f%c,y=f-g+Math.max(0,g-s),b=f-g+Math.min(g+s,u),x=0;for(;y<=b;y++){let v=p[y];x+=v*v}return x}for(let f=0;f`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l),p;if(u.filterWidth===1&&u.filterHeight===1&&w.arraysEqual(u.inShape,u.outShape))p=rr({inputs:{x:r},backend:n});else{let d=n.data.get(r.dataId).values,h=w.computeStrides(r.shape),m=Lv(d,r.shape,r.dtype,h,u,"max");p=n.makeTensorInfo(u.outShape,r.dtype,m.values)}return p}var zj={kernelName:Zs,backendName:"cpu",kernelFunc:Lj};function Bj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:c}=a;ve(r,"maxPool3d");let u=_.computePool3DInfo(r.shape,s,i,1,o,l,c),p=n.data.get(r.dataId).values,d=FN(p,r.shape,r.dtype,w.computeStrides(r.shape),u,"max");return n.makeTensorInfo(d.shape,"float32",d.values)}var Wj={kernelName:dc,backendName:"cpu",kernelFunc:Bj};function Vj(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:c}=a;ve([r,s],"maxPool3DGrad");let u=_.computePool3DInfo(s.shape,i,o,1,l,c),p=n.bufferSync(s),d=_G(p,u),h=u.strideDepth,m=u.strideHeight,f=u.strideWidth,g=u.dilationDepth,y=u.dilationHeight,b=u.dilationWidth,x=u.effectiveFilterDepth,v=u.effectiveFilterHeight,N=u.effectiveFilterWidth,T=x-1-u.padInfo.front,S=N-1-u.padInfo.left,A=v-1-u.padInfo.top,$=Le(s.shape,"float32"),R=n.bufferSync(r);for(let B=0;B=u.outDepth||Math.floor(ne)!==ne))for(let ie=0;ie=u.outHeight||Math.floor(Z)!==Z))for(let de=0;de=u.outWidth||Math.floor(oe)!==oe)continue;let ge=x*v*N-1-d.get(B,ne,Z,oe,V),fe=se*v*N+ie*N+de,we=ge===fe?1:0;we!==0&&(Q+=R.get(B,ne,Z,oe,V)*we)}}}$.set(Q,B,W,G,H,V)}return n.makeTensorInfo($.shape,$.dtype,$.values)}var Uj={kernelName:Kd,backendName:"cpu",kernelFunc:Vj};function Gj(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;ve([s,i],"maxPoolGrad");let{filterSize:l,strides:c,pad:u,dimRoundingMode:p}=a,d=_.computePool2DInfo(o.shape,l,c,1,u,p),h=n.data.get(o.dataId).values,m=Le(d.outShape,o.dtype,EN(h,o.shape,o.dtype,d).values),f=d.strideHeight,g=d.strideWidth,y=d.dilationHeight,b=d.dilationWidth,x=d.effectiveFilterHeight,v=d.effectiveFilterWidth,N=v-1-d.padInfo.left,T=x-1-d.padInfo.top,S=Le(o.shape,"float32"),A=n.data.get(r.dataId).values,$=Le(r.shape,"float32",A);for(let R=0;R=d.outHeight||Math.floor(te)!==te))for(let Q=0;Q=d.outWidth||Math.floor(se)!==se)continue;let ne=x*v-1-m.get(R,te,se,B),ie=q*v+Q,Z=ne===ie?1:0;Z!==0&&(X+=$.get(R,te,se,B)*Z)}}S.set(X,R,V,W,B)}return n.makeTensorInfo(S.shape,S.dtype,S.values)}var Hj={kernelName:qd,backendName:"cpu",kernelFunc:Gj};function jj(e,t,n,a,r){let s=w.computeStrides(t),i=Lv(e,t,n,s,r,"max"),o=EN(e,t,n,r,!0,a);return[i.values,o.values]}var qj={kernelName:Xd,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;ve(a,"MaxPoolWithArgmax");let c=l.data.get(a.dataId).values,u=_.computePool2DInfo(a.shape,r,s,[1,1],i),[p,d]=jj(c,a.shape,a.dtype,o,u),h=l.write(p,u.outShape,a.dtype),m=l.write(d,u.outShape,a.dtype);return[{dataId:h,shape:u.outShape,dtype:a.dtype},{dataId:m,shape:u.outShape,dtype:"int32"}]}};function Vm(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ve(r,"sum");let o;r.dtype==="bool"?o=fs({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=rr({inputs:{x:r},backend:n});let l=o.shape.length,c=w.parseAxisParam(s,o.shape),u=_.getAxesPermutation(c,l),p=c,d=o;u!=null&&(d=xa({inputs:{x:o},backend:n,attrs:{perm:u}}),p=_.getInnerMostAxes(p.length,l)),_.assertAxesAreInnerMostDims("sum",p,d.shape.length);let[h,m]=_.computeOutAndReduceShapes(d.shape,p),f=_.upcastType(d.dtype,"int32"),g=Bm(n,h,f),y=w.sizeFromShape(m),b=n.data.get(g.dataId).values,x=n.data.get(d.dataId).values;for(let v=0;vn.disposeIntermediateTensorInfo(f)),m}var Yj={kernelName:ei,backendName:"cpu",kernelFunc:Xj};function Jj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ve(r,"min");let o=w.parseAxisParam(s,r.shape),l=o,c=_.getAxesPermutation(l,r.shape.length),u=r;c!=null&&(u=xa({inputs:{x:r},backend:n,attrs:{perm:c}}),l=_.getInnerMostAxes(l.length,r.shape.length)),_.assertAxesAreInnerMostDims("min",l,u.shape.length);let[p,d]=_.computeOutAndReduceShapes(u.shape,l),h=w.sizeFromShape(d),m=w.makeZerosTypedArray(w.sizeFromShape(p),u.dtype),f=n.data.get(u.dataId).values;for(let y=0;yb[0]+r.shape[x]+b[1]),l=s.map(b=>b[0]),c=s.map((b,x)=>b[0]+r.shape[x]),u=i==="reflect"?0:1,p=n.data.get(r.dataId).values,d=r.shape.length,h=w.computeStrides(r.shape),m=w.sizeFromShape(o),f=o.length,g=w.computeStrides(o),y=w.getTypedArrayFromDType(r.dtype,m);for(let b=0;b=c[N]&&(x[N]=(c[N]-1)*2-x[N]+u);x=x.map((N,T)=>N-l[T]);let v=w.locToIndex(x,d,h);y[b]=p[v]}return{dataId:n.write(y,o,r.dtype),shape:o,dtype:r.dtype}}var e6={kernelName:hc,backendName:"cpu",kernelFunc:Zj},t6=Rt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),n6=Jt(cl,t6),a6={kernelName:cl,backendName:"cpu",kernelFunc:n6},r6=Do(wd());function PN(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=r.shape.length,o=s;if(o===-1&&(o=i-1),o!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${o}`);let l=w.parseAxisParam([o],r.shape),c=MN({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),u=_.expandShapeToKeepDim(c.shape,l),p=kt({inputs:{x:c},backend:n,attrs:{shape:u}}),d=Pv({inputs:{a:r,b:p},backend:n}),h=kN({inputs:{x:d},backend:n}),m=Vm({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=kt({inputs:{x:m},backend:n,attrs:{shape:u}}),g=zv({inputs:{a:h,b:f},backend:n});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var s6={kernelName:bi,backendName:"cpu",kernelFunc:PN};function i6(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;ve(r,"multinomial");let l=o?r:PN({inputs:{logits:r},backend:n,attrs:{dim:-1}}),c=l.shape[0],u=l.shape[1],p=n.data.get(l.dataId).values,d=[c,s],h=w.makeZerosTypedArray(w.sizeFromShape(d),"int32");for(let m=0;m=0&&u[p]{w.assertShapesMatch(s,u.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===u.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(u=>{let p=Wm({inputs:{input:u},backend:n,attrs:{dim:r}});return o.push(p),p}),c=du({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(u=>n.disposeIntermediateTensorInfo(u)),c}var w6={kernelName:yl,backendName:"cpu",kernelFunc:LN};function k6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ve(r,"pad");let o=s.map((y,b)=>y[0]+r.shape[b]+y[1]),l=s.map(y=>y[0]),c=n.data.get(r.dataId).values,u=w.sizeFromShape(r.shape),p=r.shape.length,d=w.computeStrides(r.shape),h=w.sizeFromShape(o),m=o.length,f=w.computeStrides(o),g=w.getTypedArrayFromDType(r.dtype,h);i!==0&&g.fill(i);for(let y=0;yv+l[N]),x=w.locToIndex(b,m,f);g[x]=c[y]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var zN={kernelName:si,backendName:"cpu",kernelFunc:k6},I6=Rt((e,t)=>Math.pow(e,t)),T6=Jt(ii,I6),N6={kernelName:ii,backendName:"cpu",kernelFunc:T6};function S6(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=Dv(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var C6={kernelName:mc,backendName:"cpu",kernelFunc:S6},_6=st(xl,e=>1/e),E6={kernelName:xl,backendName:"cpu",kernelFunc:_6};function F6(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;ve(r,"resizeBilinear");let l=w.computeStrides(r.shape),[c,u]=o,[p,d,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(w.sizeFromShape([p,c,u,m])),y=[s&&c>1?d-1:d,s&&u>1?h-1:h],b=[s&&c>1?c-1:c,s&&u>1?u-1:u],x=0,v=y[0]/b[0],N=y[1]/b[1];for(let T=0;T1?c-1:c,i&&h>1?u-1:u],g=[i&&d>1?d-1:d,i&&h>1?h-1:h],y=f[0]/g[0],b=f[1]/g[1],x=n.data.get(s.dataId).values,v=0;for(let N=0;N1?d-1:d,s&&u>1?h-1:h],b=[s&&c>1?c-1:c,s&&u>1?u-1:u],x=y[0]/b[0],v=y[1]/b[1],N=0;for(let T=0;T1?u-1:u,i&&m>1?p-1:p],b=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=y[0]/b[0],v=y[1]/b[1],N=1/x,T=1/v,S=Math.ceil(N)*2+2,A=Math.ceil(T)*2+2;for(let $=0;$=h)continue;let Z=R+ie*l[1],de=ie*x,oe=Math.min(u-1,i?Math.round(de):Math.floor(de));if(B===oe)for(let ge=0;ge=m)continue;let we=Z+fe*l[2],Te=fe*v,_e=Math.min(p-1,i?Math.round(Te):Math.floor(Te));H===_e&&(se+=g[we+Q])}}f[X+Q]=se}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var O6={kernelName:Qd,backendName:"cpu",kernelFunc:P6};function L6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;ve(r,"reverse");let i=r.shape.length,o=w.parseAxisParam(s,r.shape);if(i===0)return rr({inputs:{x:r},backend:n});let l=new Ot(r.shape,r.dtype),c=n.bufferSync(r);for(let u=0;ud[h]=r.shape[h]-1-d[h]),l.set(c.get(...d),...p)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}var z6={kernelName:pi,backendName:"cpu",kernelFunc:L6},B6={kernelName:Rl,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=w.getTypedArrayFromDType(a.dtype,w.sizeFromShape(a.shape)),[c,u,p,d]=a.shape,[h,m]=_.getImageCenter(i,u,p),f=255,g=Math.sin(r),y=Math.cos(r),b=o.data.get(a.dataId).values;for(let x=0;x=0&&W=0&&G{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1}),V6={kernelName:di,backendName:"cpu",kernelFunc:W6};function BN(e,t,n,a,r,s,i,o,l,c){let u=[a/r,r],p=e.values,d=t.values;if(a===0)return Le(n,t.dtype);let h=Le(u,t.dtype);h.values.fill(l);for(let m=0;m=a/r)throw new Error(`Invalid indices: ${f} does not index into ${n}`);for(let y=0;y1||r.shape.length===1?1:w.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?K6*e:q6*(Math.exp(e)-1)),Y6={kernelName:Il,backendName:"cpu",kernelFunc:X6},J6=st(fi,e=>1/(1+Math.exp(-e))),Q6={kernelName:fi,backendName:"cpu",kernelFunc:J6},Z6=st(Sl,e=>e<0?-1:e>0?1:0),e5={kernelName:Sl,backendName:"cpu",kernelFunc:Z6},t5=st(mi,e=>Math.sin(e)),n5={kernelName:mi,backendName:"cpu",kernelFunc:t5},a5=st(Nl,e=>Math.sinh(e)),r5={kernelName:Nl,backendName:"cpu",kernelFunc:a5},s5=11920928955078125e-23,WN=Math.log(s5)+2,i5=st(Cl,e=>{let t=e>-WN,n=e{let d=[...u];d[o]=p;let h=Xi({inputs:{x:r},backend:n,attrs:{begin:c,size:d}});return c[o]+=p,h})}var h5={kernelName:_l,backendName:"cpu",kernelFunc:d5},m5=st(gi,e=>Math.sqrt(e)),f5={kernelName:gi,backendName:"cpu",kernelFunc:m5},g5={kernelName:yc,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;ve(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),b5={kernelName:Kr,backendName:"cpu",kernelFunc:y5};function x5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:c,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:d}=a;ve(r,"stridedSlice");let{nonStrided:h,$begin:m,$strides:f,size:g,newShape:y,outShape:b}=dn.sliceInfo(r.shape,s,i,o,l,c,u,p,d),x=kt({inputs:{x:r},backend:n,attrs:{shape:y}}),v;if(h){let T=Xi({inputs:{x},backend:n,attrs:{begin:m,size:g}});v=kt({inputs:{x:T},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(T)}else if(b.some(T=>T===0))v=n.makeTensorInfo(b,r.dtype,[]);else{let T=n.bufferSync(x),S=yN(b,T,f,m);v=n.makeTensorInfo(S.shape,S.dtype,S.values)}let N=kt({inputs:{x:v},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(x),n.disposeIntermediateTensorInfo(v),N}var v5={kernelName:El,backendName:"cpu",kernelFunc:x5},w5=st(Fl,e=>Math.tan(e)),k5={kernelName:Fl,backendName:"cpu",kernelFunc:w5},I5=st(wi,e=>Math.tanh(e)),T5={kernelName:wi,backendName:"cpu",kernelFunc:I5};function N5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ve(r,"tile");let i=xN(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var S5={kernelName:qr,backendName:"cpu",kernelFunc:N5};function C5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;ve(r,"topk");let o=n.data.get(r.dataId).values,[l,c]=vN(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(c.shape,c.dtype,c.values)]}var _5={kernelName:Al,backendName:"cpu",kernelFunc:C5};function E5(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;ve(s,"unique");let i=a.data.get(s.dataId).values,{outputValues:o,outputShape:l,indices:c}=wN(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([c.length],"int32",c)]}var F5={kernelName:th,backendName:"cpu",kernelFunc:E5};function A5(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape.length,o=r.shape[s],l=new Array(i-1),c=0;for(let h=0;hn.disposeIntermediateTensorInfo(m)),h}var R5={kernelName:bc,backendName:"cpu",kernelFunc:D5},M5=[nG,iU,rG,iG,dU,lG,cG,dG,mG,gG,bG,vG,kG,NG,CG,FG,$G,RG,PG,eG,LG,BG,VG,cU,mU,GG,oU,jG,KG,JG,ZG,XG,aH,sH,tH,oH,uH,pH,hH,fH,yH,bH,vH,kH,TH,NH,CH,SH,Bv,qU,EH,AH,zH,fU,BH,yU,jH,KH,XH,xU,QH,ej,nj,rj,ij,wU,uj,lU,pj,qG,hj,fj,yj,KU,IU,vj,kj,NU,Tj,Cj,Ej,$j,Rj,Pj,CU,zj,Wj,Uj,Hj,qj,Oj,Yj,Qj,EU,e6,a6,o6,AU,DU,c6,h6,g6,MU,b6,v6,w6,zN,N6,YU,LU,C6,uU,E6,JU,QU,ZU,A6,D6,M6,O6,z6,B6,V6,BU,G6,j6,Y6,Q6,e5,n5,r5,WU,s6,o5,u5,p5,h5,f5,g5,UU,b5,v5,HU,Kj,k5,T5,S5,_5,PU,F5,$5,R5,x6];for(let e of M5)vc(e);var Yi={},Uv={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function P5(e,t){Yi[e]=t}function sr(e){if(!(e in Yi)){let n=O5(e);if(n!==null)Yi[e]=n;else return console.log("Could not get context for WebGL version",e),null}let t=Yi[e];return t.isContextLost()?(delete Yi[e],sr(e)):(t.disable(t.DEPTH_TEST),t.disable(t.STENCIL_TEST),t.disable(t.BLEND),t.disable(t.DITHER),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SAMPLE_COVERAGE),t.enable(t.SCISSOR_TEST),t.enable(t.CULL_FACE),t.cullFace(t.BACK),Yi[e])}function L5(e){if(typeof OffscreenCanvas!="undefined"&&e===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function O5(e){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let t=L5(e);return t.addEventListener("webglcontextlost",n=>{n.preventDefault(),delete Yi[e]},!1),e===1?t.getContext("webgl",Uv)||t.getContext("experimental-webgl",Uv):t.getContext("webgl2",Uv)}var dp;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(dp||(dp={}));var aa;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(aa||(aa={}));var rn;(function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(rn||(rn={}));function hp(e,t){return[t,e]}function z5(e,t){return e*t}function mp(e){let t=w.sizeFromShape(e),n=Math.ceil(t/4);return w.sizeToSquarishShape(n)}function hu(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function B5(e,t){let[n,a]=hu(e,t);return n*a*4}function Gv(e,t){let n=e,a,r,s,i,o,l,c,u,p,d;return ee().getNumber("WEBGL_VERSION")===2?(a=n.R32F,r=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,c=4,u=1,p=n.HALF_FLOAT,d=n.FLOAT):(a=e.RGBA,r=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,c=4,u=4,p=t!=null?t.HALF_FLOAT_OES:null,d=e.FLOAT),l=e.RGBA,{internalFormatFloat:a,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:c,defaultNumChannels:u,textureTypeHalfFloat:p,textureTypeFloat:d}}function Ie(e,t){let n=t();return ee().getBool("DEBUG")&&W5(e),n}function W5(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+V5(e,t))}var U5=596e-10,G5=65504;function H5(e){return!!(ee().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||U5e.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function j5(e,t){let n=Cr(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(Ie(e,()=>e.shaderSource(n,t)),Ie(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}function K5(e,t){let n=Cr(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(Ie(e,()=>e.shaderSource(n,t)),Ie(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw q5(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var X5=/ERROR: [0-9]+:([0-9]+):/g;function q5(e,t){let n=X5.exec(t);if(n==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}let a=+n[1],r=e.split(` -`),s=r.length.toString().length+2,i=r.map((p,d)=>w.rightPad((d+1).toString(),s)+p),o=0;for(let p=0;p0&&I.isString(n[0])){let r=n.map(s=>I.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return{dataId:a,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,n,a,r){this.data.set(e,{values:t,dtype:a,refCount:r})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:n}=this.data.get(e);if(t==="complex64"){let a=this.readSync(n.real.dataId),r=this.readSync(n.imag.dataId);return E.mergeRealAndImagArrays(a,r)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId),n=t;if(e.dtype==="string")try{n=t.map(a=>I.decodeString(a))}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(e.shape,e.dtype,n)}makeOutput(e,t,n){let a=this.write(e,t,n);return Ha().makeTensorFromDataId(a,t,n,this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(e);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){let t=I.now();return e(),{kernelMs:I.now()-t}}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(e){ve([e],"where");let t=this.readSync(e.dataId);return _U(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Av.nextDataId=0;var e2={};Oe(e2,{addImpl:()=>n2,bincountImpl:()=>Fv,bincountReduceImpl:()=>a2,ceilImpl:()=>r2,concatImpl:()=>_v,expImpl:()=>s2,expm1Impl:()=>i2,floorImpl:()=>o2,gatherV2Impl:()=>l2,greaterImpl:()=>u2,lessImpl:()=>c2,linSpaceImpl:()=>p2,logImpl:()=>d2,maxImpl:()=>h2,maximumImpl:()=>m2,minimumImpl:()=>f2,multiplyImpl:()=>Ev,negImpl:()=>g2,notEqualImpl:()=>y2,prodImpl:()=>b2,rangeImpl:()=>Dv,rsqrtImpl:()=>x2,simpleAbsImpl:()=>t2,sliceImpl:()=>zm,squaredDifferenceImpl:()=>v2,stridedSliceImpl:()=>w2,subImpl:()=>k2,tileImpl:()=>I2,topKImpl:()=>N2,transposeImpl:()=>$v,uniqueImpl:()=>T2});function t2(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;ve(t,"abs");let a=new Float32Array(I.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=t2(r),n.makeOutput(a,t.shape,"float32")},$U={kernelName:Po,backendName:"cpu",kernelFunc:EU};function Rt(e){return(t,n,a,r,s)=>{let i=E.assertAndGetBroadcastShape(t,n),o=i.length,l=I.computeStrides(i),u=I.sizeFromShape(i),c=I.getTypedArrayFromDType(s,u),p=t.length,d=n.length,h=I.computeStrides(t),m=I.computeStrides(n),f=E.getBroadcastDims(t,i),g=E.getBroadcastDims(n,i);if(f.length+g.length===0)for(let y=0;yx[S]=0);let v=I.locToIndex(x,p,h),k=b.slice(-d);g.forEach(S=>k[S]=0);let w=I.locToIndex(k,d,m);c[y]=e(a[v],r[w])}return[c,i]}}function Un(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.complexTensorInfos={real:n.makeTensorInfo(a.shape,"float32",s),imag:n.makeTensorInfo(r.shape,"float32",i)},o}var DU={kernelName:Ed,backendName:"cpu",kernelFunc:Un};function Wm(e,t,n="float32"){if(n==="complex64"){let r=Wm(e,t,"float32"),s=Wm(e,t,"float32");return Un({inputs:{real:r,imag:s},backend:e})}let a=I.makeZerosTypedArray(I.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function rr(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var MU={kernelName:Xs,backendName:"cpu",kernelFunc:rr};function Xi(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.data.get(a.dataId).complexTensorInfos.real,s=n.data.get(r.dataId).values;return n.makeTensorInfo(r.shape,r.dtype,s)}var RU={kernelName:Jd,backendName:"cpu",kernelFunc:Xi};function fs(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return rr({inputs:{x:r},backend:n});let i=Wm(n,r.shape,r.dtype),o=fs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=Un({inputs:{real:o,imag:i},backend:n});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=Xi({inputs:{input:r},backend:n}),o=fs({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!I.hasEncodingLoss(r.dtype,s)){let i=rr({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(s==="int32"){let i=n.data.get(r.dataId).values,o=Int32Array.from(i);return n.makeTensorInfo(r.shape,"int32",o)}if(s==="bool"){let i=n.data.get(r.dataId).values,o=I.toTypedArray([0],r.dtype),[l,u]=Rt((c,p)=>c!==p?1:0)(r.shape,[],i,o,"bool");return n.makeTensorInfo(u,"bool",l)}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var PU={kernelName:Rs,backendName:"cpu",kernelFunc:fs};function Qt(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;ve([i,o],e);let u=l.data.get(i.dataId).values,c=l.data.get(o.dataId).values,p=a||i.dtype,[d,h]=t(i.shape,o.shape,u,c,p);return l.makeTensorInfo(h,p,d)}:({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;if(i.dtype==="complex64"||o.dtype==="complex64"){let u=fs({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),c=l.data.get(u.dataId),p=c.complexTensorInfos.real,d=c.complexTensorInfos.imag,h=l.data.get(p.dataId).values,m=l.data.get(d.dataId).values,f=fs({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),y=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,x=l.data.get(y.dataId).values,v=l.data.get(b.dataId).values,[k,w,S]=n(i.shape,o.shape,h,m,x,v),A=l.makeTensorInfo(S,"float32",k),F=l.makeTensorInfo(S,"float32",w),D=Un({inputs:{real:A,imag:F},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(A),l.disposeIntermediateTensorInfo(F),D}else{let u=l.data.get(i.dataId).values,c=l.data.get(o.dataId).values,p=a||i.dtype,[d,h]=t(i.shape,o.shape,u,c,p);return l.makeTensorInfo(h,p,d)}}}function Mv(e){return(t,n,a,r,s,i)=>{let o=E.assertAndGetBroadcastShape(t,n),l=I.sizeFromShape(o),u=o.length,c=I.computeStrides(o),p=I.getTypedArrayFromDType("float32",l),d=I.getTypedArrayFromDType("float32",l),h=E.getBroadcastDims(t,o),m=E.getBroadcastDims(n,o),f=E.mergeRealAndImagArrays(a,r),g=E.mergeRealAndImagArrays(s,i),y=t.length,b=I.computeStrides(t),x=n.length,v=I.computeStrides(n);if(h.length+m.length===0)for(let k=0;kS[L]=0);let A=I.locToIndex(S,y,b),F=w.slice(-x);m.forEach(L=>F[L]=0);let D=I.locToIndex(F,x,v),R=e(f[A*2],f[A*2+1],g[D*2],g[D*2+1]);p[k]=R.real,d[k]=R.imag}return[p,d,o]}}var n2=Rt((e,t)=>e+t),OU=Mv((e,t,n,a)=>({real:e+n,imag:t+a})),dp=Qt(Hr,n2,OU),LU={kernelName:Hr,backendName:"cpu",kernelFunc:dp};function Fv(e,t,n,a,r){let s=I.sizeFromShape(a),i=I.makeZerosTypedArray(r,n);for(let o=0;o=r||(s>0?i[l]+=t[o]:i[l]+=1)}return i}function a2(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Le([r,n],t.dtype);for(let o=0;o=n||(a?i.set(1,o,u):t.size>0?i.set(i.get(o,u)+t.get(o,l),o,u):i.set(i.get(o,u)+1,o,u))}return i}function uu(e){return(t,n,a)=>{let r=I.getTypedArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;if(ve(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,u=I.sizeFromShape(i.shape),c=n||i.dtype,p=I.getArrayFromDType(c,u);for(let d=0;d{let{x:i}=a;if(ve(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,u=n||i.dtype,c=t(l,u,r);return o.makeTensorInfo(i.shape,u,c)}}var r2=uu(e=>Math.ceil(e)),zU=cu(Ps,r2),WU={kernelName:Ps,backendName:"cpu",kernelFunc:zU};function _v(e,t,n,a){let r=I.getArrayFromDType(n,I.sizeFromShape(t));if(a&&n!=="string"){let s=0;e.forEach(i=>{let o=I.sizeFromShape(i.shape);r.set(i.vals,s),s+=o})}else{let s=0;e.forEach(i=>{let o=n==="string"?E.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let u=0;uMath.exp(e)),S2=cu(Us,s2),BU={kernelName:Us,backendName:"cpu",kernelFunc:S2},i2=uu(e=>Math.expm1(e)),VU=cu(Qo,i2),UU={kernelName:Qo,backendName:"cpu",kernelFunc:VU},o2=uu(e=>Math.floor(e)),GU=cu(Gs,o2),HU={kernelName:Gs,backendName:"cpu",kernelFunc:GU};function l2(e,t,n){let a=Le(n,e.dtype);for(let r=0;re>t?1:0),jU=Qt(nl,u2,null,"bool"),qU={kernelName:nl,backendName:"cpu",kernelFunc:jU},c2=Rt((e,t)=>eMath.log(e)),YU=cu(Ys,d2),JU={kernelName:Ys,backendName:"cpu",kernelFunc:YU};function h2(e,t,n,a){let r=I.getTypedArrayFromDType(a,I.sizeFromShape(n));for(let s=0;so&&(o=u)}r[s]=o}return r}var m2=Rt((e,t)=>Math.max(e,t)),QU=Qt(Qs,m2),ZU={kernelName:Qs,backendName:"cpu",kernelFunc:QU},f2=Rt((e,t)=>Math.min(e,t)),eG=Qt(ni,f2),tG={kernelName:ni,backendName:"cpu",kernelFunc:eG},Ev=Rt((e,t)=>e*t),nG=Mv((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),Rv=Qt(ai,Ev,nG),aG={kernelName:ai,backendName:"cpu",kernelFunc:Rv};function g2(e,t,n){let a=I.createScalarValue(-1,n);return Ev([],t,a,e,n)}function rG(e){let{inputs:t,backend:n}=e,{x:a}=t;ve(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=g2(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var sG={kernelName:pl,backendName:"cpu",kernelFunc:rG},y2=Rt((e,t)=>e!==t?1:0),iG=Qt(dl,y2,null,"bool"),oG={kernelName:dl,backendName:"cpu",kernelFunc:iG};function $v(e,t,n,a,r){let s=t.length,i=I.sizeFromShape(t),o=I.computeStrides(t),l=I.computeStrides(r),u=I.getTypedArrayFromDType(n,I.sizeFromShape(r));for(let c=0;cn.disposeIntermediateTensorInfo(b)),n.makeTensorInfo(y,g,m)}var cG={kernelName:bl,backendName:"cpu",kernelFunc:uG};function Dv(e,t,n,a){let r=e===t,s=e1;if(r||s||i)return I.makeZerosTypedArray(0,a);let o=Math.abs(Math.ceil((t-e)/n)),l=I.makeZerosTypedArray(o,a);t1/Math.sqrt(e)),pG=cu(hi,x2),dG={kernelName:hi,backendName:"cpu",kernelFunc:pG};function zm(e,t,n,a,r){let s=dn.isSliceContinous(a,t,n),i=I.sizeFromShape(n),o=I.computeStrides(a);if(s){let p=dn.computeFlatOffset(t,o);return r==="string"?e.slice(p,p+i):e.subarray(p,p+i)}let l=r==="string"?E.fromUint8ToStringArray(e):e,u=Le(a,r,l),c=Le(n,r);for(let p=0;pm+t[f]);c.set(u.get(...h),...d)}return r==="string"?E.fromStringArrayToUint8(c.values):c.values}function Ki(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;ve(r,"slice");let[o,l]=dn.parseSliceParams(r,s,i);dn.assertParamsValid(r,o,l);let u=n.data.get(r.dataId).values,c=zm(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,c)}var hG={kernelName:Nl,backendName:"cpu",kernelFunc:Ki},v2=Rt((e,t)=>{let n=e-t;return n*n}),mG=Qt(xi,v2),fG={kernelName:xi,backendName:"cpu",kernelFunc:mG};function w2(e,t,n,a){let r=Le(e,t.dtype);for(let s=0;se-t),gG=Mv((e,t,n,a)=>({real:e-n,imag:t-a})),Pv=Qt(vi,k2,gG),yG={kernelName:vi,backendName:"cpu",kernelFunc:Pv};function I2(e,t){let n=new Array(e.rank);for(let r=0;rx.value-b.value);let f=p*a,g=l.subarray(f,f+a),y=u.subarray(f,f+a);for(let b=0;b{for(let g=0;gnew Av,1);var C2=it(Xo,e=>e>=0?e:Math.exp(e)-1),xG={kernelName:Xo,backendName:"cpu",kernelFunc:C2};function A2(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;ve([r],"leakyRelu");let i=I.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=I.getTypedArrayFromDType("float32",i);for(let u=0;ue<0?t*e:e);function F2(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;ve([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=wG(a.shape,r.shape,s,i,a.dtype);return n.makeTensorInfo(l,a.dtype,o)}var kG={kernelName:oi,backendName:"cpu",kernelFunc:F2},_2=it(li,e=>Math.max(0,e)),IG={kernelName:li,backendName:"cpu",kernelFunc:_2},E2=it(ci,e=>Math.min(Math.max(0,e),6)),NG={kernelName:ci,backendName:"cpu",kernelFunc:E2};function Ov(e,t,n,a,r){if(n==="linear")return rr({inputs:{x:t},backend:e});if(n==="relu")return _2({inputs:{x:t},backend:e});if(n==="elu")return C2({inputs:{x:t},backend:e});if(n==="relu6")return E2({inputs:{x:t},backend:e});if(n==="prelu")return F2({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return A2({inputs:{x:t},backend:e,attrs:{alpha:r}});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function It(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=I.sizeFromShape(r.shape),o=I.inferFromImplicitShape(s,i),l=I.sizeFromShape(o);I.assert(i===l,()=>`The new shape (${o}) has ${l} elements and the old shape (${r.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),n.incRef(r.dataId);let u=n.data.get(r.dataId);if(u.complexTensorInfos!=null){let c=u.complexTensorInfos.real,p=u.complexTensorInfos.imag;c.shape=o,p.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}var TG={kernelName:vl,backendName:"cpu",kernelFunc:It};function $2(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;ve([r,s],"matMul");let l=r.shape.length,u=s.shape.length,c=i?r.shape[l-2]:r.shape[l-1],p=o?s.shape[u-1]:s.shape[u-2],d=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[u-2]:s.shape[u-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=I.sizeFromShape(m),y=I.sizeFromShape(f),b=g===y||g===1||y===1;I.assert(l>=2&&u>=2&&b,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${m}) and (${f}).`);let x=(g>y?r.shape.slice(0,-2):s.shape.slice(0,-2)).concat([d,h]);I.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let v=i?[g,c,d]:[g,d,c],k=o?[y,h,p]:[y,p,h],w=It({inputs:{x:r},backend:n,attrs:{shape:v}}),S=It({inputs:{x:s},backend:n,attrs:{shape:k}}),A=i?w.shape[1]:w.shape[2],F=i?w.shape[2]:w.shape[1],D=o?S.shape[1]:S.shape[2],R=Math.max(g,y),L=n.data.get(w.dataId).values,W=n.data.get(S.dataId).values,U=I.computeStrides(w.shape),G=I.computeStrides(S.shape),[X,j,te]=i?[U[0],1,U[1]]:[U[0],U[1],1],[Q,se,ne]=o?[1,G[1],G[0]]:[G[1],1,G[0]],ie=F*D,ee=Le([R,F,D],w.dtype),de=ee.values,oe=n.blockSize;for(let ge=0;geMath.acos(e)),_G={kernelName:Oo,backendName:"cpu",kernelFunc:FG},EG=it(Lo,e=>Math.acosh(e)),$G={kernelName:Lo,backendName:"cpu",kernelFunc:EG};function DG(e){let{inputs:t,backend:n}=e,a=t;ve(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Le(a[0].shape,a[0].dtype),i=s.values;for(let o=0;ob&&(b=k,x=v)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(c,"int32",h)}var WG={kernelName:$s,backendName:"cpu",kernelFunc:zG};function BG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;ve(r,"argMin");let i=I.parseAxisParam(s,r.shape),o=E.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=xa({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=E.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],E.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[c,p]=E.computeOutAndReduceShapes(l.shape,i),d=I.sizeFromShape(c),h=I.makeZerosTypedArray(d,"int32"),m=I.sizeFromShape(p),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(c,"int32",h)}var VG={kernelName:nc,backendName:"cpu",kernelFunc:BG},UG=it(zo,e=>Math.asin(e)),GG={kernelName:zo,backendName:"cpu",kernelFunc:UG},HG=it(Wo,e=>Math.asinh(e)),jG={kernelName:Wo,backendName:"cpu",kernelFunc:HG},qG=it(Bo,e=>Math.atan(e)),XG={kernelName:Bo,backendName:"cpu",kernelFunc:qG},KG=Rt((e,t)=>Math.atan2(e,t)),YG=Qt(Uo,KG),JG={kernelName:Uo,backendName:"cpu",kernelFunc:YG},QG=it(Vo,e=>Math.atanh(e)),ZG={kernelName:Vo,backendName:"cpu",kernelFunc:QG};function Lv(e,t,n,a,r,s){let i=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,u=r.dilationWidth,c=r.effectiveFilterHeight,p=r.effectiveFilterWidth,d=r.padInfo.top,h=r.padInfo.left,m=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=Le(r.outShape,n),g=f.values,y=r.outShape[1]*r.outShape[2]*r.outShape[3],b=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let v=0;vj?j=oe:s==="avg"&&(te+=oe,Q++)}if(isNaN(j))break}let se=L+W*x+S;g[se]=s==="avg"?te/Q:j}}}return f}function D2(e,t,n,a,r=!1,s=!1){let i=Le(a.outShape,"int32"),o=a.strideHeight,l=a.strideWidth,u=a.dilationHeight,c=a.dilationWidth,p=a.effectiveFilterHeight,d=a.effectiveFilterWidth,h=a.padInfo.top,m=a.padInfo.left,f=Le(t,n,e);for(let g=0;gD&&(D=X,r?R=s?((g*a.inHeight+L)*a.inWidth+U)*a.inChannels+y:(L*a.inWidth+U)*a.inChannels+y:R=W*d+G)}}i.set(R,g,b,w,y)}}return i}function M2(e,t,n,a,r,s){let i=r.strideDepth,o=r.strideHeight,l=r.strideWidth,u=r.dilationDepth,c=r.dilationHeight,p=r.dilationWidth,d=r.effectiveFilterDepth,h=r.effectiveFilterHeight,m=r.effectiveFilterWidth,f=r.padInfo.front,g=r.padInfo.top,y=r.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=Le(r.outShape,n),v=x.values,k=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],w=r.outShape[2]*r.outShape[3]*r.outShape[4],S=r.outShape[3]*r.outShape[4],A=r.outShape[4];for(let F=0;Fwe?we=We:s==="avg"&&(Ne+=We,Ae++),isNaN(we))break}if(isNaN(we))break}if(isNaN(we))break}let Me=fe+L;v[Me]=s==="avg"?Ne/Ae:we}}}}return x}function eH(e,t){let n=Le(t.outShape,"int32"),a=t.strideDepth,r=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,u=t.effectiveFilterDepth,c=t.effectiveFilterHeight,p=t.effectiveFilterWidth,d=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let f=0;f=W&&(W=ne,U=X*c*p+te*c+se)}}}n.set(U,f,y,k,F,g)}}}return n}function tH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;ve(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;I.assert(E.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let c=E.computePool2DInfo(r.shape,s,i,u,o,l),p;if(c.filterWidth===1&&c.filterHeight===1&&I.arraysEqual(c.inShape,c.outShape))p=rr({inputs:{x:r},backend:n});else{let d=n.data.get(r.dataId).values,h=I.computeStrides(r.shape),m=Lv(d,r.shape,r.dtype,h,c,"avg");p=n.makeTensorInfo(c.outShape,r.dtype,m.values)}return p}var nH={kernelName:Ds,backendName:"cpu",kernelFunc:tH};function aH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ve(r,"avgPool3d");let c=E.computePool3DInfo(r.shape,s,i,1,o,l,u),p=n.data.get(r.dataId).values,d=M2(p,r.shape,r.dtype,I.computeStrides(r.shape),c,"avg");return n.makeTensorInfo(d.shape,"float32",d.values)}var rH={kernelName:ac,backendName:"cpu",kernelFunc:aH};function sH(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ve([r,s],"avgPool3DGrad");let c=E.computePool3DInfo(s.shape,i,o,1,l,u),p=c.strideDepth,d=c.strideHeight,h=c.strideWidth,m=c.filterDepth,f=c.filterHeight,g=c.filterWidth,y=c.dilationDepth,b=c.dilationHeight,x=c.dilationWidth,v=c.effectiveFilterDepth,k=c.effectiveFilterHeight,w=c.effectiveFilterWidth,S=v-1-c.padInfo.front,A=w-1-c.padInfo.left,F=k-1-c.padInfo.top,D=Le(s.shape,"float32"),R=1/(m*f*g),L=n.bufferSync(r);for(let W=0;W=c.outDepth||Math.floor(ee)!==ee))for(let de=0;de=c.outHeight||Math.floor(oe)!==oe))for(let ge=0;ge=c.outWidth||Math.floor(fe)!==fe||(ne+=L.get(W,ee,oe,fe,U))}}}D.set(ne*R,W,G,X,j,U)}return n.makeTensorInfo(D.shape,D.dtype,D.values)}var iH={kernelName:Fd,backendName:"cpu",kernelFunc:sH};function oH(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;ve([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,c=E.computePool2DInfo(i.shape,o,l,1,u),p=c.strideHeight,d=c.strideWidth,h=c.filterHeight,m=c.filterWidth,f=c.dilationHeight,g=c.dilationWidth,y=c.effectiveFilterHeight,b=c.effectiveFilterWidth,x=b-1-c.padInfo.left,v=y-1-c.padInfo.top,k=Le(i.shape,"float32"),w=1/(h*m),S=n.data.get(r.dataId).values,A=Le(r.shape,"float32",S);for(let F=0;F=c.outHeight||Math.floor(j)!==j))for(let te=0;te=c.outWidth||Math.floor(Q)!==Q||(G+=A.get(F,j,Q,D))}}k.set(G*w,F,R,L,D)}return n.makeTensorInfo(k.shape,k.dtype,k.values)}var lH={kernelName:Ad,backendName:"cpu",kernelFunc:oH};function uH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,scale:s,offset:i,mean:o,variance:l}=t;I.assert(o.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),I.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),I.assert(s==null||o.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),ve([r,o,l,s,i],"batchNorm");let{varianceEpsilon:u}=a;u==null&&(u=.001);let c=n.data.get(r.dataId).values,p=n.data.get(o.dataId).values,d=n.data.get(l.dataId).values,h=s?n.data.get(s.dataId).values:new Float32Array([1]),m=i?n.data.get(i.dataId).values:new Float32Array([0]),f=new Float32Array(c.length),g=m.length,y=h.length,b=d.length,x=p.length,v=0,k=0,w=0,S=0;for(let A=0;A=g&&(v=0),k>=x&&(k=0),w>=y&&(w=0),S>=b&&(S=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var cH={kernelName:js,backendName:"cpu",kernelFunc:uH};function pH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ve([r],"batchToSpaceND");let o=s.reduce((y,b)=>y*b),l=E.getReshaped(r.shape,s,o),u=E.getPermuted(l.length,s.length),c=E.getReshapedPermuted(r.shape,s,o),p=E.getSliceBeginCoords(i,s.length),d=E.getSliceSize(c,i,s.length),h=It({inputs:{x:r},backend:n,attrs:{shape:l}}),m=xa({inputs:{x:h},backend:n,attrs:{perm:u}}),f=It({inputs:{x:m},backend:n,attrs:{shape:c}}),g=Ki({inputs:{x:f},backend:n,attrs:{begin:p,size:d}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var dH={kernelName:rc,backendName:"cpu",kernelFunc:pH};function hH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,u=Fv(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var mH={kernelName:_d,backendName:"cpu",kernelFunc:hH},fH=it(jr,(e,t)=>{let n=t;return e>n.clipValueMax?n.clipValueMax:e{let{x:t}=e.inputs,n=e.backend,a=new Float32Array(I.sizeFromShape(t.shape)),r=n.data.get(t.dataId),s=r.complexTensorInfos.real,i=r.complexTensorInfos.imag,o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values;for(let u=0;uf.shape),s);if(I.sizeFromShape(i)===0)return n.makeTensorInfo(i,t[0].dtype,[]);let o=t.filter(f=>I.sizeFromShape(f.shape)>0);if(o.length===1)return rr({inputs:{x:o[0]},backend:n});let l=o.map(f=>f.shape);if(E.assertParamsConsistent(l,s),o[0].dtype==="complex64"){let f=o.map(v=>Xi({inputs:{input:v},backend:n})),g=o.map(v=>pu({inputs:{input:v},backend:n})),y=du({inputs:f,backend:n,attrs:{axis:s}}),b=du({inputs:g,backend:n,attrs:{axis:s}}),x=Un({inputs:{real:y,imag:b},backend:n});return f.forEach(v=>n.disposeIntermediateTensorInfo(v)),g.forEach(v=>n.disposeIntermediateTensorInfo(v)),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(b),x}let u=o.map(f=>{let g=I.sizeFromShape(f.shape.slice(s));return It({inputs:{x:f},backend:n,attrs:{shape:[-1,g]}})}),c=u.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));i=E.computeOutShape(u.map(f=>f.shape),1);let p=u[0].shape[0]===1,d=_v(c,i,t[0].dtype,p),h=E.computeOutShape(o.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,d);return u.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var vH={kernelName:Go,backendName:"cpu",kernelFunc:du};function R2(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:c}=a;ve([r,s],"conv2d");let p=E.convertConv2DDataFormat(l),d=E.computeConv2DInfo(r.shape,s.shape,i,u,o,c,!1,p),h=d.filterHeight,m=d.filterWidth,f=d.dilationHeight,g=d.dilationWidth,y=d.padInfo.left,b=d.padInfo.top,x=d.dataFormat==="channelsLast",v=new Lt(d.outShape,r.dtype),k=I.computeStrides(r.shape),w=I.computeStrides(s.shape),S=k[0],A=x?k[1]:k[2],F=x?k[2]:1,D=x?1:k[1],R=v.strides[0],L=x?v.strides[1]:v.strides[2],W=x?v.strides[2]:1,U=x?1:v.strides[1],G=n.data.get(r.dataId).values,X=n.data.get(s.dataId).values,j=v.values;for(let te=0;te=d.inHeight)continue;let ge=de*w[0],fe=Q+oe*A;for(let we=0;we=d.inWidth)continue;let at=ge+Me*w[1],rt=fe+_e*F,lt=at;for(let Ke=0;Ke=u.inDepth)continue;let te=X*F[0],Q=R+j*A[1];for(let se=0;se=u.inHeight)continue;let oe=te+ee*F[1],ge=Q+de*A[2];for(let fe=0;fe=u.inWidth)continue;let _e=oe+Ae*F[2],at=ge+Me*u.inChannels,rt=_e;for(let lt=0;ltMath.cos(e)),DH={kernelName:zs,backendName:"cpu",kernelFunc:$H},MH=it(Ho,e=>Math.cosh(e)),RH={kernelName:Ho,backendName:"cpu",kernelFunc:MH};function PH(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,[c,p,d,h]=r.shape,m=s.shape[0],[f,g]=o,y=Le([m,f,g,h],"float32"),b=n.data.get(s.dataId).values,x=n.data.get(i.dataId).values,v=n.data.get(r.dataId).values,k=I.computeStrides(r.shape),w=I.computeStrides(y.shape);for(let S=0;S=c)continue;let U=f>1?(R-F)*(p-1)/(f-1):0,G=g>1?(L-D)*(d-1)/(g-1):0;for(let X=0;X1?F*(p-1)+X*U:.5*(F+R)*(p-1);if(j<0||j>p-1){for(let te=0;te1?D*(d-1)+ne*G:.5*(D+L)*(d-1);if(ie<0||ie>d-1){for(let ge=0;ge1?D*(d-1)+te*G:.5*(D+L)*(d-1);if(Q<0||Q>d-1){for(let ie=0;iey+m-b-1:(y,b)=>y+b;for(let y=0;y`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`),I.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=r.shape[1],u=r.shape[2],c=r.shape[3],p=l*s,d=u*s,h=c/(s*s),m=n.data.get(r.dataId).values,f=new Float32Array(o*p*d*h),g=0;for(let y=0;y`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${d}'`);let h=E.computeConv2DInfo(r.shape,s.shape,i,d,o,u,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:y,padInfo:b}=h,x=b.left,v=b.top,k=h.outChannels/h.inChannels,w=new Lt(h.outShape,r.dtype),S=n.data.get(r.dataId).values,A=n.data.get(s.dataId).values,F=w.values;for(let D=0;D=h.inHeight)continue;let te=X*p[0],Q=R+j*c[1];for(let se=0;se=h.inWidth)continue;let oe=te+ee*p[1],ge=Q+de*h.inChannels,fe=ne,we=oe;for(let Ne=0;Ne{let{x:a,filter:r}=e,{strides:s,pad:i,dilations:o}=n,l=t,u=l.data.get(a.dataId).values,c=a.shape.length,p=l.data.get(r.dataId).values,d=r.shape.length,{batchSize:h,inHeight:m,inWidth:f,inChannels:g,outHeight:y,outWidth:b,padInfo:x,strideHeight:v,strideWidth:k,filterHeight:w,filterWidth:S,dilationHeight:A,dilationWidth:F,outShape:D}=E.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),R=I.sizeFromShape(D),L=D.length,W=I.getArrayFromDType(a.dtype,R);for(let U=0;U=0&&ee=0&&oese&&(se=we)}}}let ne=I.locToIndex([U,G,j,Q],L,I.computeStrides(D));W[ne]=se}}}return{dataId:l.write(I.toTypedArray(W,a.dtype),D,a.dtype),shape:D,dtype:a.dtype}}},QH={kernelName:Wd,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,c=I.toNestedArray(a.shape,u.data.get(a.dataId).values),p=I.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:d,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:v,filterHeight:k,filterWidth:w,dilationHeight:S,dilationWidth:A,outShape:F}=E.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);I.assert(s.rank===F.length,()=>`Error in ${Wd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let D=I.toNestedArray(F,u.data.get(s.dataId).values),R=I.makeZerosNestedTypedArray(r.shape,r.dtype);for(let L=0;L=0&&ie=0&&dete&&(te=oe,Q=ne,se=ee)}}}R[Q][se][j]+=D[L][W][G][j]}}}return{dataId:u.write(I.toTypedArray(R,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},ZH={kernelName:zd,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,c=I.toNestedArray(a.shape,u.data.get(a.dataId).values),p=I.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:d,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:v,filterHeight:k,filterWidth:w,dilationHeight:S,dilationWidth:A,outShape:F}=E.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);I.assert(s.rank===F.length,()=>`Error in ${zd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let D=I.toNestedArray(F,u.data.get(s.dataId).values),R=I.makeZerosNestedTypedArray(a.shape,a.dtype);for(let L=0;L=0&&ie=0&&dete&&(te=oe,Q=ie,se=de)}}}R[L][Q][se][j]+=D[L][W][G][j]}}}return{dataId:u.write(I.toTypedArray(R,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function e6(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;ve([a,r],"eluGrad");let s=new Float32Array(I.sizeFromShape(r.shape)),i=n.data.get(r.dataId).values,o=n.data.get(a.dataId).values;for(let l=0;l=1?s[l]=o[l]:s[l]=o[l]*(u+1)}return n.makeTensorInfo(r.shape,"float32",s)}var t6={kernelName:Bd,backendName:"cpu",kernelFunc:e6},n6=Rt((e,t)=>e===t?1:0),O2=Qt(Yo,n6,null,"bool"),a6={kernelName:Yo,backendName:"cpu",kernelFunc:O2},r6=E.ERF_P,s6=E.ERF_A1,i6=E.ERF_A2,o6=E.ERF_A3,l6=E.ERF_A4,u6=E.ERF_A5,c6=it(Ko,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+r6*n);return t*(1-((((u6*a+l6)*a+o6)*a+i6)*a+s6)*a*Math.exp(-n*n))}),p6={kernelName:Ko,backendName:"cpu",kernelFunc:c6};function Bm(e){let{inputs:t,backend:n,attrs:a}=e,{input:r}=t,{dim:s}=a,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(I.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),It({inputs:{x:r},backend:n,attrs:{shape:o}})}var d6={kernelName:Jo,backendName:"cpu",kernelFunc:Bm},h6=Rt((e,t)=>e/t),zv=Qt(Vs,h6),Wv={kernelName:Vs,backendName:"cpu",kernelFunc:zv};function L2(e,t,n){let a=e.shape,r=a[0],s=a[1],i=n.data.get(e.dataId),o=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,u=[r,s],c=I.sizeFromShape(u),p=I.getTypedArrayFromDType("float32",c),d=I.getTypedArrayFromDType("float32",c);for(let g=0;g{let{image:a}=e,r=n,s=I.getTypedArrayFromDType(a.dtype,I.sizeFromShape(a.shape)),[i,o,l,u]=a.shape,c=r.data.get(a.dataId).values;for(let p=0;p=0&&xMath.floor(e/t)),I6=Qt(Hs,k6,null,"int32"),N6={kernelName:Hs,backendName:"cpu",kernelFunc:I6};function T6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=R2({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:d}});if(i){let g=f;f=dp({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=Ov(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var S6={kernelName:Ni,backendName:"cpu",kernelFunc:T6};function C6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=P2({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:d}});if(i){let g=f;f=dp({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=Ov(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var A6={kernelName:Ti,backendName:"cpu",kernelFunc:C6};function F6(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=I.sizeFromShape(a.shape),i=r.shape,o=i[i.length-1],[l,u,c,p]=E.prepareAndValidate(a,r);if(u===0)return n.makeTensorInfo(l,a.dtype,[]);let d=Le([u,c],a.dtype),h=n.data.get(r.dataId).values,m=n.data.get(a.dataId).values;for(let f=0;f=s/c)throw new Error(`Invalid indices: ${g} does not index into ${a.shape}`);for(let b=0;be>=t?1:0),M6=Qt(qs,D6,null,"bool"),R6={kernelName:qs,backendName:"cpu",kernelFunc:M6};function P6(e){let{inputs:t,backend:n}=e,{input:a}=t,r=I.sizeFromShape(a.shape),s=a.shape[a.shape.length-1],i=r/s,o=It({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=L2(o,!0,n),u=It({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var O6={kernelName:Ud,backendName:"cpu",kernelFunc:P6},L6=it(al,e=>Number.isFinite(e)?1:0,"bool"),z6={kernelName:al,backendName:"cpu",kernelFunc:L6},W6=it(rl,e=>Math.abs(e)===Infinity?1:0,"bool"),B6={kernelName:rl,backendName:"cpu",kernelFunc:W6},V6=it(sl,e=>Number.isNaN(e)?1:0,"bool"),U6={kernelName:sl,backendName:"cpu",kernelFunc:V6},G6=Rt((e,t)=>e<=t?1:0),H6=Qt(ol,G6,null,"bool"),j6={kernelName:ol,backendName:"cpu",kernelFunc:H6};function q6(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=p2(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var X6={kernelName:Hd,backendName:"cpu",kernelFunc:q6},K6=it(ll,e=>Math.log1p(e)),Y6={kernelName:ll,backendName:"cpu",kernelFunc:K6},J6=Rt((e,t)=>e&&t),Q6=Qt(ul,J6,null,"bool"),Z6={kernelName:ul,backendName:"cpu",kernelFunc:Q6},ej=it(uc,e=>e?0:1,"bool"),tj={kernelName:uc,backendName:"cpu",kernelFunc:ej},nj=Rt((e,t)=>e||t),aj=Qt(cc,nj,null,"bool"),rj={kernelName:cc,backendName:"cpu",kernelFunc:aj};function sj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;ve(r,"LRN");let u=r.shape[3],c=u-1,p=n.data.get(r.dataId).values,d=I.sizeFromShape(r.shape),h=new Float32Array(d);function m(f){let g=f%u,y=f-g+Math.max(0,g-s),b=f-g+Math.min(g+s,c),x=0;for(;y<=b;y++){let v=p[y];x+=v*v}return x}for(let f=0;f`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let c=E.computePool2DInfo(r.shape,s,i,u,o,l),p;if(c.filterWidth===1&&c.filterHeight===1&&I.arraysEqual(c.inShape,c.outShape))p=rr({inputs:{x:r},backend:n});else{let d=n.data.get(r.dataId).values,h=I.computeStrides(r.shape),m=Lv(d,r.shape,r.dtype,h,c,"max");p=n.makeTensorInfo(c.outShape,r.dtype,m.values)}return p}var pj={kernelName:Zs,backendName:"cpu",kernelFunc:cj};function dj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ve(r,"maxPool3d");let c=E.computePool3DInfo(r.shape,s,i,1,o,l,u),p=n.data.get(r.dataId).values,d=M2(p,r.shape,r.dtype,I.computeStrides(r.shape),c,"max");return n.makeTensorInfo(d.shape,"float32",d.values)}var hj={kernelName:dc,backendName:"cpu",kernelFunc:dj};function mj(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ve([r,s],"maxPool3DGrad");let c=E.computePool3DInfo(s.shape,i,o,1,l,u),p=n.bufferSync(s),d=eH(p,c),h=c.strideDepth,m=c.strideHeight,f=c.strideWidth,g=c.dilationDepth,y=c.dilationHeight,b=c.dilationWidth,x=c.effectiveFilterDepth,v=c.effectiveFilterHeight,k=c.effectiveFilterWidth,w=x-1-c.padInfo.front,S=k-1-c.padInfo.left,A=v-1-c.padInfo.top,F=Le(s.shape,"float32"),D=n.bufferSync(r);for(let R=0;R=c.outDepth||Math.floor(ne)!==ne))for(let ie=0;ie=c.outHeight||Math.floor(ee)!==ee))for(let de=0;de=c.outWidth||Math.floor(oe)!==oe)continue;let ge=x*v*k-1-d.get(R,ne,ee,oe,L),fe=se*v*k+ie*k+de,we=ge===fe?1:0;we!==0&&(Q+=D.get(R,ne,ee,oe,L)*we)}}}F.set(Q,R,W,U,G,L)}return n.makeTensorInfo(F.shape,F.dtype,F.values)}var fj={kernelName:Xd,backendName:"cpu",kernelFunc:mj};function gj(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;ve([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:c,dimRoundingMode:p}=a,d=E.computePool2DInfo(o.shape,l,u,1,c,p),h=n.data.get(o.dataId).values,m=Le(d.outShape,o.dtype,D2(h,o.shape,o.dtype,d).values),f=d.strideHeight,g=d.strideWidth,y=d.dilationHeight,b=d.dilationWidth,x=d.effectiveFilterHeight,v=d.effectiveFilterWidth,k=v-1-d.padInfo.left,w=x-1-d.padInfo.top,S=Le(o.shape,"float32"),A=n.data.get(r.dataId).values,F=Le(r.shape,"float32",A);for(let D=0;D=d.outHeight||Math.floor(te)!==te))for(let Q=0;Q=d.outWidth||Math.floor(se)!==se)continue;let ne=x*v-1-m.get(D,te,se,R),ie=j*v+Q,ee=ne===ie?1:0;ee!==0&&(X+=F.get(D,te,se,R)*ee)}}S.set(X,D,L,W,R)}return n.makeTensorInfo(S.shape,S.dtype,S.values)}var yj={kernelName:qd,backendName:"cpu",kernelFunc:gj};function bj(e,t,n,a,r){let s=I.computeStrides(t),i=Lv(e,t,n,s,r,"max"),o=D2(e,t,n,r,!0,a);return[i.values,o.values]}var xj={kernelName:Kd,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;ve(a,"MaxPoolWithArgmax");let u=l.data.get(a.dataId).values,c=E.computePool2DInfo(a.shape,r,s,[1,1],i),[p,d]=bj(u,a.shape,a.dtype,o,c),h=l.write(p,c.outShape,a.dtype),m=l.write(d,c.outShape,a.dtype);return[{dataId:h,shape:c.outShape,dtype:a.dtype},{dataId:m,shape:c.outShape,dtype:"int32"}]}};function Vm(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ve(r,"sum");let o;r.dtype==="bool"?o=fs({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=rr({inputs:{x:r},backend:n});let l=o.shape.length,u=I.parseAxisParam(s,o.shape),c=E.getAxesPermutation(u,l),p=u,d=o;c!=null&&(d=xa({inputs:{x:o},backend:n,attrs:{perm:c}}),p=E.getInnerMostAxes(p.length,l)),E.assertAxesAreInnerMostDims("sum",p,d.shape.length);let[h,m]=E.computeOutAndReduceShapes(d.shape,p),f=E.upcastType(d.dtype,"int32"),g=Wm(n,h,f),y=I.sizeFromShape(m),b=n.data.get(g.dataId).values,x=n.data.get(d.dataId).values;for(let v=0;vn.disposeIntermediateTensorInfo(f)),m}var kj={kernelName:ei,backendName:"cpu",kernelFunc:wj};function Ij(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ve(r,"min");let o=I.parseAxisParam(s,r.shape),l=o,u=E.getAxesPermutation(l,r.shape.length),c=r;u!=null&&(c=xa({inputs:{x:r},backend:n,attrs:{perm:u}}),l=E.getInnerMostAxes(l.length,r.shape.length)),E.assertAxesAreInnerMostDims("min",l,c.shape.length);let[p,d]=E.computeOutAndReduceShapes(c.shape,l),h=I.sizeFromShape(d),m=I.makeZerosTypedArray(I.sizeFromShape(p),c.dtype),f=n.data.get(c.dataId).values;for(let y=0;yb[0]+r.shape[x]+b[1]),l=s.map(b=>b[0]),u=s.map((b,x)=>b[0]+r.shape[x]),c=i==="reflect"?0:1,p=n.data.get(r.dataId).values,d=r.shape.length,h=I.computeStrides(r.shape),m=I.sizeFromShape(o),f=o.length,g=I.computeStrides(o),y=I.getTypedArrayFromDType(r.dtype,m);for(let b=0;b=u[k]&&(x[k]=(u[k]-1)*2-x[k]+c);x=x.map((k,w)=>k-l[w]);let v=I.locToIndex(x,d,h);y[b]=p[v]}return{dataId:n.write(y,o,r.dtype),shape:o,dtype:r.dtype}}var Sj={kernelName:hc,backendName:"cpu",kernelFunc:Tj},Cj=Rt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),Aj=Qt(cl,Cj),Fj={kernelName:cl,backendName:"cpu",kernelFunc:Aj},_j=Do(HF());function W2(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=r.shape.length,o=s;if(o===-1&&(o=i-1),o!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${o}`);let l=I.parseAxisParam([o],r.shape),u=z2({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),c=E.expandShapeToKeepDim(u.shape,l),p=It({inputs:{x:u},backend:n,attrs:{shape:c}}),d=Pv({inputs:{a:r,b:p},backend:n}),h=S2({inputs:{x:d},backend:n}),m=Vm({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=It({inputs:{x:m},backend:n,attrs:{shape:c}}),g=zv({inputs:{a:h,b:f},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var Ej={kernelName:bi,backendName:"cpu",kernelFunc:W2};function $j(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;ve(r,"multinomial");let l=o?r:W2({inputs:{logits:r},backend:n,attrs:{dim:-1}}),u=l.shape[0],c=l.shape[1],p=n.data.get(l.dataId).values,d=[u,s],h=I.makeZerosTypedArray(I.sizeFromShape(d),"int32");for(let m=0;m=0&&c[p]{I.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),I.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(c=>{let p=Bm({inputs:{input:c},backend:n,attrs:{dim:r}});return o.push(p),p}),u=du({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(c=>n.disposeIntermediateTensorInfo(c)),u}var qj={kernelName:yl,backendName:"cpu",kernelFunc:V2};function Xj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ve(r,"pad");let o=s.map((y,b)=>y[0]+r.shape[b]+y[1]),l=s.map(y=>y[0]),u=n.data.get(r.dataId).values,c=I.sizeFromShape(r.shape),p=r.shape.length,d=I.computeStrides(r.shape),h=I.sizeFromShape(o),m=o.length,f=I.computeStrides(o),g=I.getTypedArrayFromDType(r.dtype,h);i!==0&&g.fill(i);for(let y=0;yv+l[k]),x=I.locToIndex(b,m,f);g[x]=u[y]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var U2={kernelName:si,backendName:"cpu",kernelFunc:Xj},Kj=Rt((e,t)=>Math.pow(e,t)),Yj=Qt(ii,Kj),Jj={kernelName:ii,backendName:"cpu",kernelFunc:Yj};function Qj(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=Dv(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var Zj={kernelName:mc,backendName:"cpu",kernelFunc:Qj},eq=it(xl,e=>1/e),tq={kernelName:xl,backendName:"cpu",kernelFunc:eq};function nq(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;ve(r,"resizeBilinear");let l=I.computeStrides(r.shape),[u,c]=o,[p,d,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(I.sizeFromShape([p,u,c,m])),y=[s&&u>1?d-1:d,s&&c>1?h-1:h],b=[s&&u>1?u-1:u,s&&c>1?c-1:c],x=0,v=y[0]/b[0],k=y[1]/b[1];for(let w=0;w1?u-1:u,i&&h>1?c-1:c],g=[i&&d>1?d-1:d,i&&h>1?h-1:h],y=f[0]/g[0],b=f[1]/g[1],x=n.data.get(s.dataId).values,v=0;for(let k=0;k1?d-1:d,s&&c>1?h-1:h],b=[s&&u>1?u-1:u,s&&c>1?c-1:c],x=y[0]/b[0],v=y[1]/b[1],k=0;for(let w=0;w1?c-1:c,i&&m>1?p-1:p],b=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=y[0]/b[0],v=y[1]/b[1],k=1/x,w=1/v,S=Math.ceil(k)*2+2,A=Math.ceil(w)*2+2;for(let F=0;F=h)continue;let ee=D+ie*l[1],de=ie*x,oe=Math.min(c-1,i?Math.round(de):Math.floor(de));if(R===oe)for(let ge=0;ge=m)continue;let we=ee+fe*l[2],Ne=fe*v,Ae=Math.min(p-1,i?Math.round(Ne):Math.floor(Ne));G===Ae&&(se+=g[we+Q])}}f[X+Q]=se}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var uq={kernelName:Qd,backendName:"cpu",kernelFunc:lq};function cq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;ve(r,"reverse");let i=r.shape.length,o=I.parseAxisParam(s,r.shape);if(i===0)return rr({inputs:{x:r},backend:n});let l=new Lt(r.shape,r.dtype),u=n.bufferSync(r);for(let c=0;cd[h]=r.shape[h]-1-d[h]),l.set(u.get(...d),...p)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}var pq={kernelName:pi,backendName:"cpu",kernelFunc:cq},dq={kernelName:Ml,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=I.getTypedArrayFromDType(a.dtype,I.sizeFromShape(a.shape)),[u,c,p,d]=a.shape,[h,m]=E.getImageCenter(i,c,p),f=255,g=Math.sin(r),y=Math.cos(r),b=o.data.get(a.dataId).values;for(let x=0;x=0&&W=0&&U{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1}),mq={kernelName:di,backendName:"cpu",kernelFunc:hq};function G2(e,t,n,a,r,s,i,o,l,u){let c=[a/r,r],p=e.values,d=t.values;if(a===0)return Le(n,t.dtype);let h=Le(c,t.dtype);h.values.fill(l);for(let m=0;m=a/r)throw new Error(`Invalid indices: ${f} does not index into ${n}`);for(let y=0;y1||r.shape.length===1?1:I.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?vq*e:xq*(Math.exp(e)-1)),kq={kernelName:Il,backendName:"cpu",kernelFunc:wq},Iq=it(fi,e=>1/(1+Math.exp(-e))),Nq={kernelName:fi,backendName:"cpu",kernelFunc:Iq},Tq=it(Sl,e=>e<0?-1:e>0?1:0),Sq={kernelName:Sl,backendName:"cpu",kernelFunc:Tq},Cq=it(mi,e=>Math.sin(e)),Aq={kernelName:mi,backendName:"cpu",kernelFunc:Cq},Fq=it(Tl,e=>Math.sinh(e)),_q={kernelName:Tl,backendName:"cpu",kernelFunc:Fq},Eq=11920928955078125e-23,H2=Math.log(Eq)+2,$q=it(Cl,e=>{let t=e>-H2,n=e{let d=[...c];d[o]=p;let h=Ki({inputs:{x:r},backend:n,attrs:{begin:u,size:d}});return u[o]+=p,h})}var zq={kernelName:Al,backendName:"cpu",kernelFunc:Lq},Wq=it(gi,e=>Math.sqrt(e)),Bq={kernelName:gi,backendName:"cpu",kernelFunc:Wq},Vq={kernelName:yc,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;ve(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),Gq={kernelName:Xr,backendName:"cpu",kernelFunc:Uq};function Hq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:d}=a;ve(r,"stridedSlice");let{nonStrided:h,$begin:m,$strides:f,size:g,newShape:y,outShape:b}=dn.sliceInfo(r.shape,s,i,o,l,u,c,p,d),x=It({inputs:{x:r},backend:n,attrs:{shape:y}}),v;if(h){let w=Ki({inputs:{x},backend:n,attrs:{begin:m,size:g}});v=It({inputs:{x:w},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(w)}else if(b.some(w=>w===0))v=n.makeTensorInfo(b,r.dtype,[]);else{let w=n.bufferSync(x),S=w2(b,w,f,m);v=n.makeTensorInfo(S.shape,S.dtype,S.values)}let k=It({inputs:{x:v},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(x),n.disposeIntermediateTensorInfo(v),k}var jq={kernelName:Fl,backendName:"cpu",kernelFunc:Hq},qq=it(_l,e=>Math.tan(e)),Xq={kernelName:_l,backendName:"cpu",kernelFunc:qq},Kq=it(wi,e=>Math.tanh(e)),Yq={kernelName:wi,backendName:"cpu",kernelFunc:Kq};function Jq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ve(r,"tile");let i=I2(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var Qq={kernelName:qr,backendName:"cpu",kernelFunc:Jq};function Zq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;ve(r,"topk");let o=n.data.get(r.dataId).values,[l,u]=N2(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(u.shape,u.dtype,u.values)]}var e5={kernelName:El,backendName:"cpu",kernelFunc:Zq};function a5(e){let{inputs:t,attrs:n,backend:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=n,[c,p,d,h]=r.shape,[m,f]=u!=null?u:[p,d],g=[c,m,f,h],y=I.computeStrides(r.shape),b=y[0],x=y[1],v=y[2],k=I.getTypedArrayFromDType(r.dtype,I.sizeFromShape(g));k.fill(l);let w=a.data.get(r.dataId).values,S=a.data.get(s.dataId).values;for(let A=0;At-1)if(t<=1)n=0;else{let a=2*t;n-=a*Math.trunc(n/a),n>=t&&(n=a-n-1)}return I.clamp(0,n,t-1)}function i5(e,t){let n=e;if(n<0)if(t<=1)n=0;else{let a=t-1;n+=t*(Math.trunc(-n/a)+1)}else if(n>t-1)if(t<=1)n=0;else{let a=t-1;n-=t*Math.trunc(n/a)}return I.clamp(0,n,t-1)}function o5(e,t){return e}function l5(e,t){return I.clamp(0,e,t-1)}function hp(e,t,n,a,r,s,i,o,l,u,c){let p=i*a+o*r+l*s+u;return 0<=o&&on.disposeIntermediateTensorInfo(m)),h}var m5={kernelName:bc,backendName:"cpu",kernelFunc:h5},f5=[AG,$U,_G,$G,LU,MG,PG,LG,WG,VG,GG,jG,XG,JG,ZG,nH,rH,iH,lH,SG,cH,dH,mH,PU,WU,gH,DU,bH,vH,IH,TH,wH,FH,EH,CH,DH,RH,OH,zH,BH,UH,GH,jH,XH,YH,JH,ZH,QH,Wv,xG,t6,a6,p6,BU,d6,UU,b6,v6,w6,HU,N6,S6,A6,_6,$6,qU,R6,MU,O6,xH,z6,B6,U6,vG,KU,j6,X6,JU,Y6,Z6,tj,rj,ij,lj,ZU,pj,hj,fj,yj,xj,uj,kj,Nj,tG,Sj,Fj,Dj,aG,sG,Pj,zj,Vj,oG,Gj,jj,qj,U2,Jj,kG,cG,Zj,RU,tq,IG,NG,TG,aq,sq,oq,uq,pq,dq,mq,dG,gq,bq,kq,Nq,Sq,Aq,_q,hG,Ej,Dq,Rq,Oq,zq,Bq,Vq,fG,Gq,jq,yG,vj,Xq,Yq,Qq,e5,lG,r5,c5,d5,m5,Hj];for(let e of f5)vc(e);var Yi={},Uv={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function g5(e,t){Yi[e]=t}function sr(e){if(!(e in Yi)){let n=y5(e);if(n!==null)Yi[e]=n;else return console.log("Could not get context for WebGL version",e),null}let t=Yi[e];return t.isContextLost()?(delete Yi[e],sr(e)):(t.disable(t.DEPTH_TEST),t.disable(t.STENCIL_TEST),t.disable(t.BLEND),t.disable(t.DITHER),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SAMPLE_COVERAGE),t.enable(t.SCISSOR_TEST),t.enable(t.CULL_FACE),t.cullFace(t.BACK),Yi[e])}function b5(e){if(typeof OffscreenCanvas!="undefined"&&e===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function y5(e){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let t=b5(e);return t.addEventListener("webglcontextlost",n=>{n.preventDefault(),delete Yi[e]},!1),e===1?t.getContext("webgl",Uv)||t.getContext("experimental-webgl",Uv):t.getContext("webgl2",Uv)}var mp;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(mp||(mp={}));var aa;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(aa||(aa={}));var sn;(function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(sn||(sn={}));function fp(e,t){return[t,e]}function x5(e,t){return e*t}function gp(e){let t=I.sizeFromShape(e),n=Math.ceil(t/4);return I.sizeToSquarishShape(n)}function hu(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function v5(e,t){let[n,a]=hu(e,t);return n*a*4}function Gv(e,t){let n=e,a,r,s,i,o,l,u,c,p,d;return Z().getNumber("WEBGL_VERSION")===2?(a=n.R32F,r=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,u=4,c=1,p=n.HALF_FLOAT,d=n.FLOAT):(a=e.RGBA,r=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,u=4,c=4,p=t!=null?t.HALF_FLOAT_OES:null,d=e.FLOAT),l=e.RGBA,{internalFormatFloat:a,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:c,textureTypeHalfFloat:p,textureTypeFloat:d}}function Ie(e,t){let n=t();return Z().getBool("DEBUG")&&w5(e),n}function w5(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+k5(e,t))}var I5=596e-10,N5=65504;function T5(e){return!!(Z().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||I5e.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function S5(e,t){let n=Cr(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(Ie(e,()=>e.shaderSource(n,t)),Ie(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}function A5(e,t){let n=Cr(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(Ie(e,()=>e.shaderSource(n,t)),Ie(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw C5(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var F5=/ERROR: [0-9]+:([0-9]+):/g;function C5(e,t){let n=F5.exec(t);if(n==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}let a=+n[1],r=e.split(` +`),s=r.length.toString().length+2,i=r.map((p,d)=>I.rightPad((d+1).toString(),s)+p),o=0;for(let p=0;pe.createProgram(),"Unable to create WebGLProgram.")}function J5(e,t){if(Ie(e,()=>e.linkProgram(t)),e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function Hv(e,t){if(Ie(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function Q5(e,t){let n=Cr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return Ie(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),Ie(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function Z5(e,t){let n=Cr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return Ie(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),Ie(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function eq(e){return Cr(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function tq(e,t){let n=ee().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 nq(e){return Cr(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function VN(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(Ie(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),Ie(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),Ie(e,()=>e.enableVertexAttribArray(o)),!0)}function rq(e,t,n){aq(e,n),Ie(e,()=>e.activeTexture(e.TEXTURE0+n)),Ie(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function sq(e,t,n){return Cr(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function iq(e,t,n){return e.getUniformLocation(t,n)}function oq(e,t,n,a){Ie(e,()=>rq(e,t,a)),Ie(e,()=>e.uniform1i(n,a))}function jv(e,t,n){Ie(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),Ie(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function UN(e,t){Ie(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),Ie(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function Hm(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+lq(e,t))}function lq(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`unknown error ${t}`}}function Cr(e,t,n){let a=Ie(e,()=>t());if(a==null)throw new Error(n);return a}function aq(e,t){let n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,a=t+e.TEXTURE0;if(an){let r=`[gl.TEXTURE0, gl.TEXTURE${n}]`;throw new Error(`textureUnit must be in ${r}.`)}}function mu(e,t=2){return w.sizeFromShape(e.slice(0,e.length-t))}function fu(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 qv(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[mu(e),...fu(e)]),t}function uq(e,t=!1){let n=ee().getNumber("WEBGL_MAX_TEXTURE_SIZE");t&&(n=n*2,e=e.map((r,s)=>s>=e.length-2?w.nearestLargerEven(e[s]):e[s]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=w.squeezeShape(e).newShape);let a=w.sizeFromShape(e);if(e.length<=1&&a<=n)return[1,a];if(e.length===2&&e[0]<=n&&e[1]<=n)return e;if(e.length===3&&e[0]*e[1]<=n&&e[2]<=n)return[e[0]*e[1],e[2]];if(e.length===3&&e[0]<=n&&e[1]*e[2]<=n)return[e[0],e[1]*e[2]];if(e.length===4&&e[0]*e[1]*e[2]<=n&&e[3]<=n)return[e[0]*e[1]*e[2],e[3]];if(e.length===4&&e[0]<=n&&e[1]*e[2]*e[3]<=n)return[e[0],e[1]*e[2]*e[3]];if(t){let r=mu(e),s=2,i=2;return e.length&&([s,i]=fu(e)),a=r*(s/2)*(i/2),w.sizeToSquarishShape(a).map(o=>o*2)}return w.sizeToSquarishShape(a)}function jm(e){return e%2==0}function qm(e,t){if(e=e.slice(-2),t=t.slice(-2),w.arraysEqual(e,t)||!e.length||!t.length||e[0]===0||e[1]===0||t[0]===0||t[1]===0)return!0;if(e.length!==t.length){let n=e.slice(-1)[0],a=t.slice(-1)[0];if(n===a||jm(n)&&jm(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&jm(e[0])&&jm(t[0])}var Kv,Xv;function cq(e){if(Kv==null){let t=sr(e);Kv=t.getParameter(t.MAX_TEXTURE_SIZE)}return Kv}function pq(e){if(Xv==null){let t=sr(e);Xv=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Xv)}function dq(e){if(e===0)return 0;let t,n=sr(e);return va(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:va(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function va(e,t){return e.getExtension(t)!=null}function GN(e){try{if(sr(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function hq(e){if(e===0)return!1;let t=sr(e);if(e===1){if(!va(t,"OES_texture_float"))return!1}else if(!va(t,"EXT_color_buffer_float"))return!1;return Yv(t)}function fq(e){if(e===0)return!1;let t=sr(e);if(e===1){if(!va(t,"OES_texture_float")||!va(t,"WEBGL_color_buffer_float"))return!1}else{if(va(t,"EXT_color_buffer_float"))return Yv(t);let n="EXT_color_buffer_half_float";if(va(t,n)){let a=t.getExtension(n);return mq(t,a)}return!1}return Yv(t)}function Yv(e){let t=Gv(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n);let a=1,r=1;e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,a,r,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);let i=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(s),i}function mq(e,t){let n=Gv(e,t),a=e.createTexture();e.bindTexture(e.TEXTURE_2D,a);let r=1,s=1;e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,r,s,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);let i=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,a,0);let o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(a),e.deleteFramebuffer(i),o}function gq(e){return e!==2?!1:sr(e).fenceSync!=null}function fp(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&w.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var Ce=ee();Ce.registerFlag("HAS_WEBGL",()=>Ce.getNumber("WEBGL_VERSION")>0);Ce.registerFlag("WEBGL_VERSION",()=>GN(2)?2:GN(1)?1:0);Ce.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Ce.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Ce.get("WEBGL_VERSION")===2);Ce.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Ce.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Ce.registerFlag("WEBGL_PACK",()=>Ce.getBool("HAS_WEBGL"));Ce.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_CLIP",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>!1);Ce.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_REDUCE",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_LAZILY_UNPACK",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_CONV_IM2COL",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>cq(Ce.getNumber("WEBGL_VERSION")));Ce.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>pq(Ce.getNumber("WEBGL_VERSION")));Ce.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=Ce.getNumber("WEBGL_VERSION");return e===0?0:dq(e)});Ce.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Ce.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!uh.isMobile());Ce.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>hq(Ce.getNumber("WEBGL_VERSION")));Ce.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Ce.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Ce.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Ce.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>fq(Ce.getNumber("WEBGL_VERSION")));Ce.registerFlag("WEBGL_FENCE_API_ENABLED",()=>gq(Ce.getNumber("WEBGL_VERSION")));Ce.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Ce.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Ce.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)});Ce.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${e}.`)});function fn(){let e,t,n,a,r,s,i,o,l,c;return ee().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=` +`)[0]),console.log(`%c ${I.rightPad(u[0],o)}`,"border:1px solid red; background-color:#e3d2d2; color:#a61717"),console.log(c.join(` +`))}function _5(e){return Cr(e,()=>e.createProgram(),"Unable to create WebGLProgram.")}function E5(e,t){if(Ie(e,()=>e.linkProgram(t)),e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function Hv(e,t){if(Ie(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function $5(e,t){let n=Cr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return Ie(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),Ie(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function D5(e,t){let n=Cr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return Ie(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),Ie(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function M5(e){return Cr(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function R5(e,t){let n=Z().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 P5(e){return Cr(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function q2(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(Ie(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),Ie(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),Ie(e,()=>e.enableVertexAttribArray(o)),!0)}function L5(e,t,n){O5(e,n),Ie(e,()=>e.activeTexture(e.TEXTURE0+n)),Ie(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function z5(e,t,n){return Cr(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function W5(e,t,n){return e.getUniformLocation(t,n)}function B5(e,t,n,a){Ie(e,()=>L5(e,t,a)),Ie(e,()=>e.uniform1i(n,a))}function jv(e,t,n){Ie(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),Ie(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function X2(e,t){Ie(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),Ie(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function Hm(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+V5(e,t))}function V5(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`unknown error ${t}`}}function Cr(e,t,n){let a=Ie(e,()=>t());if(a==null)throw new Error(n);return a}function O5(e,t){let n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,a=t+e.TEXTURE0;if(an){let r=`[gl.TEXTURE0, gl.TEXTURE${n}]`;throw new Error(`textureUnit must be in ${r}.`)}}function mu(e,t=2){return I.sizeFromShape(e.slice(0,e.length-t))}function fu(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 qv(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[mu(e),...fu(e)]),t}function U5(e,t=!1){let n=Z().getNumber("WEBGL_MAX_TEXTURE_SIZE");t&&(n=n*2,e=e.map((r,s)=>s>=e.length-2?I.nearestLargerEven(e[s]):e[s]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=I.squeezeShape(e).newShape);let a=I.sizeFromShape(e);if(e.length<=1&&a<=n)return[1,a];if(e.length===2&&e[0]<=n&&e[1]<=n)return e;if(e.length===3&&e[0]*e[1]<=n&&e[2]<=n)return[e[0]*e[1],e[2]];if(e.length===3&&e[0]<=n&&e[1]*e[2]<=n)return[e[0],e[1]*e[2]];if(e.length===4&&e[0]*e[1]*e[2]<=n&&e[3]<=n)return[e[0]*e[1]*e[2],e[3]];if(e.length===4&&e[0]<=n&&e[1]*e[2]*e[3]<=n)return[e[0],e[1]*e[2]*e[3]];if(t){let r=mu(e),s=2,i=2;return e.length&&([s,i]=fu(e)),a=r*(s/2)*(i/2),I.sizeToSquarishShape(a).map(o=>o*2)}return I.sizeToSquarishShape(a)}function jm(e){return e%2==0}function qm(e,t){if(e=e.slice(-2),t=t.slice(-2),I.arraysEqual(e,t)||!e.length||!t.length||e[0]===0||e[1]===0||t[0]===0||t[1]===0)return!0;if(e.length!==t.length){let n=e.slice(-1)[0],a=t.slice(-1)[0];if(n===a||jm(n)&&jm(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&jm(e[0])&&jm(t[0])}var Xv,Kv;function G5(e){if(Xv==null){let t=sr(e);Xv=t.getParameter(t.MAX_TEXTURE_SIZE)}return Xv}function H5(e){if(Kv==null){let t=sr(e);Kv=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Kv)}function j5(e){if(e===0)return 0;let t,n=sr(e);return va(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:va(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function va(e,t){return e.getExtension(t)!=null}function K2(e){try{if(sr(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function q5(e){if(e===0)return!1;let t=sr(e);if(e===1){if(!va(t,"OES_texture_float"))return!1}else if(!va(t,"EXT_color_buffer_float"))return!1;return Yv(t)}function K5(e){if(e===0)return!1;let t=sr(e);if(e===1){if(!va(t,"OES_texture_float")||!va(t,"WEBGL_color_buffer_float"))return!1}else{if(va(t,"EXT_color_buffer_float"))return Yv(t);let n="EXT_color_buffer_half_float";if(va(t,n)){let a=t.getExtension(n);return X5(t,a)}return!1}return Yv(t)}function Yv(e){let t=Gv(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n);let a=1,r=1;e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,a,r,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);let i=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(s),i}function X5(e,t){let n=Gv(e,t),a=e.createTexture();e.bindTexture(e.TEXTURE_2D,a);let r=1,s=1;e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,r,s,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);let i=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,a,0);let o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(a),e.deleteFramebuffer(i),o}function Y5(e){return e!==2?!1:sr(e).fenceSync!=null}function yp(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&I.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var Ce=Z();Ce.registerFlag("HAS_WEBGL",()=>Ce.getNumber("WEBGL_VERSION")>0);Ce.registerFlag("WEBGL_VERSION",()=>K2(2)?2:K2(1)?1:0);Ce.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Ce.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Ce.get("WEBGL_VERSION")===2);Ce.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Ce.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Ce.registerFlag("WEBGL_PACK",()=>Ce.getBool("HAS_WEBGL"));Ce.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_CLIP",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>!1);Ce.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_PACK_REDUCE",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_LAZILY_UNPACK",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_CONV_IM2COL",()=>Ce.getBool("WEBGL_PACK"));Ce.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>G5(Ce.getNumber("WEBGL_VERSION")));Ce.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>H5(Ce.getNumber("WEBGL_VERSION")));Ce.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=Ce.getNumber("WEBGL_VERSION");return e===0?0:j5(e)});Ce.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Ce.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Cc.isMobile());Ce.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>q5(Ce.getNumber("WEBGL_VERSION")));Ce.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Ce.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Ce.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Ce.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>K5(Ce.getNumber("WEBGL_VERSION")));Ce.registerFlag("WEBGL_FENCE_API_ENABLED",()=>Y5(Ce.getNumber("WEBGL_VERSION")));Ce.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Ce.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Ce.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)});Ce.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>Cc.isMobile()&&Ce.getBool("IS_CHROME")?1:-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${e}.`)});function fn(){let e,t,n,a,r,s,i,o,l,u;return Z().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=` bool isnan_custom(float val) { return (val > 0.0 || val < 0.0) ? false : val != 0.0; } @@ -52,7 +52,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee } #define isnan(value) isnan_custom(value) - `,l="",c=` + `,l="",u=` #define round(value) newRound(value) int newRound(float value) { return int(floor(value + 0.5)); @@ -78,7 +78,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee bvec4 isinf(vec4 val) { return equal(abs(val), vec4(INFINITY)); } - `,c=` + `,u=` int round(float value) { return int(floor(value + 0.5)); } @@ -86,11 +86,11 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ivec4 round(vec4 value) { return ivec4(floor(value + vec4(0.5))); } - `),{version:e,attribute:t,varyingVs:n,varyingFs:a,texture2D:r,output:s,defineOutput:i,defineSpecialNaN:o,defineSpecialInf:l,defineRound:c}}function Ji(e,t,n="index"){let a=w.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / ${r}`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * ${r}`:`index -= ${e[s]} * ${r}`;return`${i}; ${o};`}).join("")}function Jv(e){let t=w.computeStrides(e).map(n=>n.toString());return` + `),{version:e,attribute:t,varyingVs:n,varyingFs:a,texture2D:r,output:s,defineOutput:i,defineSpecialNaN:o,defineSpecialInf:l,defineRound:u}}function Ji(e,t,n="index"){let a=I.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / ${r}`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * ${r}`:`index -= ${e[s]} * ${r}`;return`${i}; ${o};`}).join("")}function Jv(e){let t=I.computeStrides(e).map(n=>n.toString());return` int getFlatIndex(ivec3 coords) { return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; } -`}var HN=` +`}var Y2=` const float FLOAT_MAX = 1.70141184e38; const float FLOAT_MIN = 1.17549435e-38; @@ -129,7 +129,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee return c / 255.0; } -`,yq=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=dp.DENSE;let t=mp(e),n=fn();this.outputShape=e,this.userCode=` +`,J5=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=mp.DENSE;let t=gp(e),n=fn();this.outputShape=e,this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { ${Ji(["r","c","d"],e)} return ivec3(r, c, d); @@ -150,7 +150,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${n.output} = result; } - `}},bq=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=dp.DENSE;let t=mp(e),n=fn();this.outputShape=e,this.userCode=` + `}},Q5=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=mp.DENSE;let t=gp(e),n=fn();this.outputShape=e,this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { ${Ji(["r","c","d"],e)} return ivec3(r, c, d); @@ -171,22 +171,22 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${n.output} = result; } - `}},xq=class{constructor(e){this.variableNames=["A"],this.outTexUsage=aa.DOWNLOAD;let t=fn();this.outputShape=e,this.userCode=` - ${HN} + `}},Z5=class{constructor(e){this.variableNames=["A"],this.outTexUsage=aa.DOWNLOAD;let t=fn();this.outputShape=e,this.userCode=` + ${Y2} void main() { float x = getAAtOutCoords(); ${t.output} = encode_float(x); } - `}},vq=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=aa.DOWNLOAD;let t=fn();this.outputShape=e,this.userCode=` - ${HN} + `}},e8=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=aa.DOWNLOAD;let t=fn();this.outputShape=e,this.userCode=` + ${Y2} void main() { ivec3 coords = getOutputCoords(); float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${t.output} = encode_float(x); } - `}},wq=class{constructor(e,t,n=!1){this.variableNames=["A"];let a=fn(),[r,s]=t;this.outputShape=e;let i="result";n&&(i="floor(result * 255. + 0.5)"),this.userCode=` + `}},t8=class{constructor(e,t,n=!1){this.variableNames=["A"];let a=fn(),[r,s]=t;this.outputShape=e;let i="result";n&&(i="floor(result * 255. + 0.5)"),this.userCode=` ${Jv(e)} void main() { @@ -216,10 +216,10 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${a.output} = vec4(${i}, 0., 0., 0.); } - `}},kq=class{constructor(e,t,n=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let a=fn(),[r,s]=t;this.outputShape=e;let i="",o="result";n&&(o="floor(result * 255. + 0.5)");for(let l=0;l<=1;l++)for(let c=0;c<=1;c++){let u=l*2+c;i+=` + `}},n8=class{constructor(e,t,n=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let a=fn(),[r,s]=t;this.outputShape=e;let i="",o="result";n&&(o="floor(result * 255. + 0.5)");for(let l=0;l<=1;l++)for(let u=0;u<=1;u++){let c=l*2+u;i+=` localCoords = coords; - if(localCoords[2] + ${c} < ${e[2]}) { - localCoords[2] += ${c}; + if(localCoords[2] + ${u} < ${e[2]}) { + localCoords[2] += ${u}; if(localCoords[1] + ${l} < ${e[1]}) { localCoords[1] += ${l}; @@ -234,13 +234,13 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee values = ${a.texture2D}(A, uv); if(offset == 0) { - result[${u}] = values[0]; + result[${c}] = values[0]; } else if(offset == 1) { - result[${u}] = values[1]; + result[${c}] = values[1]; } else if(offset == 2) { - result[${u}] = values[2]; + result[${c}] = values[2]; } else { - result[${u}] = values[3]; + result[${c}] = values[3]; } } } @@ -260,7 +260,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${a.output} = ${o}; } - `}};function Iq(e){let t=fn(),n=`${t.version} + `}};function a8(e){let t=fn(),n=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; @@ -269,22 +269,22 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return j5(e,n)}function Tq(e){let t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return Q5(e,t)}function Nq(e){let t=new Uint16Array([0,1,2,2,1,3]);return Z5(e,t)}function gp(e,t,n,a,r,s){tq(t,n);let i=eq(e),o=e.TEXTURE_2D;return Ie(e,()=>e.bindTexture(o,i)),Ie(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),Ie(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),Ie(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),Ie(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),Ie(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)),Ie(e,()=>e.bindTexture(e.TEXTURE_2D,null)),i}function jN(e){return e.internalFormatFloat}function Sq(e,t,n,a){let[r,s]=hp(t,n);return gp(e,r,s,jN(a),a.textureFormatFloat,e.FLOAT)}function qN(e){return e.internalFormatHalfFloat}function Cq(e,t,n,a){let[r,s]=hp(t,n);return gp(e,r,s,qN(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function KN(e){return e.downloadTextureFormat}function _q(e,t,n,a){let[r,s]=hp(t,n);return gp(e,r,s,KN(a),e.RGBA,e.UNSIGNED_BYTE)}function XN(e){return e.internalFormatPackedFloat}function Eq(e,t,n,a){let[r,s]=hu(t,n);return gp(e,r,s,XN(a),e.RGBA,e.FLOAT)}function YN(e){return e.internalFormatPackedHalfFloat}function Fq(e,t,n,a){let[r,s]=hu(t,n);return gp(e,r,s,YN(a),e.RGBA,a.textureTypeHalfFloat)}function Aq(e,t,n){let a=0,r=3*4,s=3*4+2*4;return Ie(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),VN(e,t,"clipSpacePos",n,3,s,a)&&VN(e,t,"uv",n,2,s,r)}function $q(e,t,n,a,r,s){Ie(e,()=>e.bindTexture(e.TEXTURE_2D,t));let i,o,l;r instanceof Uint8Array?(i=new Uint8Array(n*a*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(i=new Float32Array(n*a*4),o=e.FLOAT,l=s.internalFormatPackedFloat),i.set(r),Ie(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),Ie(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function Dq(e,t,n){Ie(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?Ie(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):Ie(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),Ie(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function Rq(e,t,n,a){let r=e.createBuffer();Ie(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return Ie(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),Ie(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),Ie(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function Mq(e,t,n){let a=e,r=new Float32Array(n);return a.bindBuffer(a.PIXEL_PACK_BUFFER,t),a.getBufferSubData(a.PIXEL_PACK_BUFFER,0,r),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),r}function Pq(e,t,n,a){let[r,s]=hp(t,n),i=4,o=new Uint8Array(z5(t*n,i));return Ie(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function Oq(e,t,n,a,r,s,i,o){let l=e,c=new Float32Array(B5(s,i));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,c),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),c}function Lq(e,t,n){let a=new Float32Array(t*n*4);return Ie(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var Bq=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let t=ee().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,P5(t,e)):this.gl=sr(t);let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(ee().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=Gm(this.gl,r),va(this.gl,s))this.textureHalfFloatExtension=Gm(this.gl,s);else if(ee().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),va(this.gl,a))this.colorBufferHalfFloatExtension=Gm(this.gl,a);else if(ee().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",va(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(va(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=Tq(this.gl),this.indexBuffer=Nq(this.gl),this.framebuffer=nq(this.gl),this.textureConfig=Gv(this.gl,this.textureHalfFloatExtension)}get debug(){return ee().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let e=this.gl;Ie(e,()=>e.finish()),Ie(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),Ie(e,()=>e.deleteFramebuffer(this.framebuffer)),Ie(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),Ie(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),Ie(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),Sq(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),Cq(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),_q(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),Dq(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),$q(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),Fq(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),Eq(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(UN(this.gl,this.framebuffer),this.outputTexture=null),Ie(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>Pq(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return Oq(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return Mq(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=Rq(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),a}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(ee().getBool("WEBGL_FENCE_API_ENABLED")){let a=e,r=a.fenceSync(a.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{let s=a.clientWaitSync(r,0,0);return s===a.ALREADY_SIGNALED||s===a.CONDITION_SATISFIED},t=r}else ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>Lq(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl,n=K5(t,e),a=Iq(t),r=Y5(t);return Ie(t,()=>t.attachShader(r,a)),Ie(t,()=>t.attachShader(r,n)),J5(t,r),this.debug&&Hv(t,r),this.vertexAttrsAreBound||(this.setProgram(r),this.vertexAttrsAreBound=Aq(t,this.program,this.vertexBuffer)),r}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&Ie(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&Hv(this.gl,this.program),Ie(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?sq(this.gl,e,t):iq(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),Ie(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),oq(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=hu(t,n);this.setOutputMatrixTextureDriver(e,a,r)}setOutputMatrixWriteRegion(e,t,n,a){this.setOutputMatrixWriteRegionDriver(n,e,a,t)}setOutputPackedMatrixWriteRegion(e,t,n,a){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&Hv(this.gl,this.program),Hm(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&this.debugValidate(),Ie(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),Ie(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Gm(this.gl,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.createQuery();return n.beginQuery(a.TIME_ELAPSED_EXT,r),r}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await w.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){let n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(e,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(a.GPU_DISJOINT_EXT)),r&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),a=n.getQueryObjectEXT(e,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),a&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=zq(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:n}=this.itemsToPoll[t];n()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),!(this.itemsToPoll.length>1)&&w.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),jv(this.gl,e,this.framebuffer),this.debug&&Hm(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(jv(this.gl,this.outputTexture,this.framebuffer),this.debug&&Hm(this.gl)):UN(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();let a=this.gl;jv(a,e,this.framebuffer),this.debug&&Hm(a),this.outputTexture=e,Ie(a,()=>a.viewport(0,0,t,n)),Ie(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),Ie(this.gl,()=>this.gl.scissor(e,t,n,a))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function zq(e){let t=0;for(;t{let m=w.sizeFromShape(h.shapeInfo.logicalShape);h.shapeInfo.isUniform?r.push(`uniform float ${h.name}${m>1?`[${m}]`:""};`):(r.push(`uniform sampler2D ${h.name};`),r.push(`uniform int offset${h.name};`))});let s=r.join(` -`),i=e.map(h=>Wq(h,t,a)).join(` -`),o=t.texShape,l=fn(),c=Gq(l),u,p,d=qq(l);return t.isPacked?(u=Vq(t.logicalShape,o),p=jq(l)):(u=Uq(t.logicalShape,o),p=Hq(l)),a&&(d+=Kq),[d,c,p,s,u,i,n].join(` -`)}function gu(e){let t=e.shapeInfo.logicalShape;switch(t.length){case 0:return Yq(e);case 1:return Jq(e);case 2:return Qq(e);case 3:return Zq(e);case 4:return e8(e);case 5:return t8(e);case 6:return n8(e);default:throw new Error(`${t.length}-D input sampling is not yet supported`)}}function QN(e){switch(e.shapeInfo.logicalShape.length){case 0:return a8(e);case 1:return r8(e);case 2:return s8(e);case 3:return i8(e);default:return o8(e)}}function Wq(e,t,n=!1){let a="";n?a+=QN(e):a+=gu(e);let r=e.shapeInfo.logicalShape,s=t.logicalShape;return r.length<=s.length&&(n?a+=l8(e,t):a+=u8(e,t)),a}function Vq(e,t){switch(e.length){case 0:return ZN();case 1:return c8(e,t);case 2:return h8(e,t);case 3:return p8(e,t);default:return d8(e,t)}}function Uq(e,t){switch(e.length){case 0:return ZN();case 1:return m8(e,t);case 2:return x8(e,t);case 3:return f8(e,t);case 4:return g8(e,t);case 5:return y8(e,t);case 6:return b8(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function Gq(e){return` + }`;return S5(e,n)}function r8(e){let t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return $5(e,t)}function s8(e){let t=new Uint16Array([0,1,2,2,1,3]);return D5(e,t)}function bp(e,t,n,a,r,s){R5(t,n);let i=M5(e),o=e.TEXTURE_2D;return Ie(e,()=>e.bindTexture(o,i)),Ie(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),Ie(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),Ie(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),Ie(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),Ie(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)),Ie(e,()=>e.bindTexture(e.TEXTURE_2D,null)),i}function J2(e){return e.internalFormatFloat}function i8(e,t,n,a){let[r,s]=fp(t,n);return bp(e,r,s,J2(a),a.textureFormatFloat,e.FLOAT)}function Q2(e){return e.internalFormatHalfFloat}function o8(e,t,n,a){let[r,s]=fp(t,n);return bp(e,r,s,Q2(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function Z2(e){return e.downloadTextureFormat}function l8(e,t,n,a){let[r,s]=fp(t,n);return bp(e,r,s,Z2(a),e.RGBA,e.UNSIGNED_BYTE)}function eT(e){return e.internalFormatPackedFloat}function u8(e,t,n,a){let[r,s]=hu(t,n);return bp(e,r,s,eT(a),e.RGBA,e.FLOAT)}function tT(e){return e.internalFormatPackedHalfFloat}function c8(e,t,n,a){let[r,s]=hu(t,n);return bp(e,r,s,tT(a),e.RGBA,a.textureTypeHalfFloat)}function p8(e,t,n){let a=0,r=3*4,s=3*4+2*4;return Ie(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),q2(e,t,"clipSpacePos",n,3,s,a)&&q2(e,t,"uv",n,2,s,r)}function d8(e,t,n,a,r,s){Ie(e,()=>e.bindTexture(e.TEXTURE_2D,t));let i,o,l;r instanceof Uint8Array?(i=new Uint8Array(n*a*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(i=new Float32Array(n*a*4),o=e.FLOAT,l=s.internalFormatPackedFloat),i.set(r),Ie(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),Ie(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function h8(e,t,n){Ie(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?Ie(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):Ie(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),Ie(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function m8(e,t,n,a){let r=e.createBuffer();Ie(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return Ie(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),Ie(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),Ie(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function f8(e,t,n){let a=e,r=new Float32Array(n);return a.bindBuffer(a.PIXEL_PACK_BUFFER,t),a.getBufferSubData(a.PIXEL_PACK_BUFFER,0,r),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),r}function g8(e,t,n,a){let[r,s]=fp(t,n),i=4,o=new Uint8Array(x5(t*n,i));return Ie(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function y8(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(v5(s,i));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,u),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),u}function b8(e,t,n){let a=new Float32Array(t*n*4);return Ie(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var v8=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let t=Z().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,g5(t,e)):this.gl=sr(t);let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(Z().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=Gm(this.gl,r),va(this.gl,s))this.textureHalfFloatExtension=Gm(this.gl,s);else if(Z().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),va(this.gl,a))this.colorBufferHalfFloatExtension=Gm(this.gl,a);else if(Z().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",va(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(va(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=r8(this.gl),this.indexBuffer=s8(this.gl),this.framebuffer=P5(this.gl),this.textureConfig=Gv(this.gl,this.textureHalfFloatExtension)}get debug(){return Z().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let e=this.gl;Ie(e,()=>e.finish()),Ie(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),Ie(e,()=>e.deleteFramebuffer(this.framebuffer)),Ie(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),Ie(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),Ie(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),i8(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),o8(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),l8(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),h8(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),d8(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),c8(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),u8(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(X2(this.gl,this.framebuffer),this.outputTexture=null),Ie(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>g8(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return y8(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return f8(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=m8(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),a}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(Z().getBool("WEBGL_FENCE_API_ENABLED")){let a=e,r=a.fenceSync(a.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{let s=a.clientWaitSync(r,0,0);return s===a.ALREADY_SIGNALED||s===a.CONDITION_SATISFIED},t=r}else Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>b8(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl,n=A5(t,e),a=a8(t),r=_5(t);return Ie(t,()=>t.attachShader(r,a)),Ie(t,()=>t.attachShader(r,n)),E5(t,r),this.debug&&Hv(t,r),this.vertexAttrsAreBound||(this.setProgram(r),this.vertexAttrsAreBound=p8(t,this.program,this.vertexBuffer)),r}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&Ie(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&Hv(this.gl,this.program),Ie(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?z5(this.gl,e,t):W5(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),Ie(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),B5(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=hu(t,n);this.setOutputMatrixTextureDriver(e,a,r)}setOutputMatrixWriteRegion(e,t,n,a){this.setOutputMatrixWriteRegionDriver(n,e,a,t)}setOutputPackedMatrixWriteRegion(e,t,n,a){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&Hv(this.gl,this.program),Hm(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&this.debugValidate(),Ie(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),Ie(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Gm(this.gl,Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.createQuery();return n.beginQuery(a.TIME_ELAPSED_EXT,r),r}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await I.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){let n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(e,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(a.GPU_DISJOINT_EXT)),r&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),a=n.getQueryObjectEXT(e,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),a&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=x8(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:n}=this.itemsToPoll[t];n()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),!(this.itemsToPoll.length>1)&&I.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),jv(this.gl,e,this.framebuffer),this.debug&&Hm(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(jv(this.gl,this.outputTexture,this.framebuffer),this.debug&&Hm(this.gl)):X2(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();let a=this.gl;jv(a,e,this.framebuffer),this.debug&&Hm(a),this.outputTexture=e,Ie(a,()=>a.viewport(0,0,t,n)),Ie(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),Ie(this.gl,()=>this.gl.scissor(e,t,n,a))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function x8(e){let t=0;for(;t{let m=I.sizeFromShape(h.shapeInfo.logicalShape);h.shapeInfo.isUniform?r.push(`uniform float ${h.name}${m>1?`[${m}]`:""};`):(r.push(`uniform sampler2D ${h.name};`),r.push(`uniform int offset${h.name};`))});let s=r.join(` +`),i=e.map(h=>w8(h,t,a)).join(` +`),o=t.texShape,l=fn(),u=N8(l),c,p,d=C8(l);return t.isPacked?(c=k8(t.logicalShape,o),p=S8(l)):(c=I8(t.logicalShape,o),p=T8(l)),a&&(d+=A8),[d,u,p,s,c,i,n].join(` +`)}function gu(e){let t=e.shapeInfo.logicalShape;switch(t.length){case 0:return _8(e);case 1:return E8(e);case 2:return $8(e);case 3:return D8(e);case 4:return M8(e);case 5:return R8(e);case 6:return P8(e);default:throw new Error(`${t.length}-D input sampling is not yet supported`)}}function aT(e){switch(e.shapeInfo.logicalShape.length){case 0:return O8(e);case 1:return L8(e);case 2:return z8(e);case 3:return W8(e);default:return B8(e)}}function w8(e,t,n=!1){let a="";n?a+=aT(e):a+=gu(e);let r=e.shapeInfo.logicalShape,s=t.logicalShape;return r.length<=s.length&&(n?a+=V8(e,t):a+=U8(e,t)),a}function k8(e,t){switch(e.length){case 0:return rT();case 1:return G8(e,t);case 2:return q8(e,t);case 3:return H8(e,t);default:return j8(e,t)}}function I8(e,t){switch(e.length){case 0:return rT();case 1:return X8(e,t);case 2:return Z8(e,t);case 3:return K8(e,t);case 4:return Y8(e,t);case 5:return J8(e,t);case 6:return Q8(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function N8(e){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${e.texture2D}(textureSampler, uv).r; } - `}function Hq(e){return` + `}function T8(e){return` void setOutput(float val) { ${e.output} = vec4(val, 0, 0, 0); } - `}function jq(e){return` + `}function S8(e){return` void setOutput(vec4 val) { ${e.output} = val; } - `}function qq(e){return`${e.version} + `}function C8(e){return`${e.version} precision highp float; precision highp int; precision highp sampler2D; @@ -339,10 +339,10 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee return fract((p3.x + p3.y) * p3.z); } - ${v8} - ${w8} - ${k8} - `}var v8=` + ${eX} + ${tX} + ${nX} + `}var eX=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; @@ -354,7 +354,7 @@ vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,w8=` +`,tX=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); @@ -362,7 +362,7 @@ vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,k8=` +`,nX=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { @@ -371,7 +371,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,Kq=` +`,A8=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? @@ -382,11 +382,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } -`;function ZN(){return` +`;function rT(){return` int getOutputCoords() { return 0; } - `}function c8(e,t){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?` + `}function G8(e,t){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?` int getOutputCoords() { return 2 * int(resultUV.x * ${n[1]}.0); } @@ -400,7 +400,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${n[0]}, ${n[1]})); return 2 * (resTexRC.x * ${n[1]} + resTexRC.y); } - `}function m8(e,t){return t[0]===1?` + `}function X8(e,t){return t[0]===1?` int getOutputCoords() { return int(resultUV.x * ${t[1]}.0); } @@ -414,7 +414,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${t[0]}, ${t[1]})); return resTexRC.x * ${t[1]} + resTexRC.y; } - `}function p8(e,t){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],a=Math.ceil(e[2]/2),r=a*Math.ceil(e[1]/2);return` + `}function H8(e,t){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],a=Math.ceil(e[2]/2),r=a*Math.ceil(e[1]/2);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${n[0]}, ${n[1]})); @@ -428,7 +428,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec3(b, r, c); } - `}function f8(e,t){let n=Ji(["r","c","d"],e);return` + `}function K8(e,t){let n=Ji(["r","c","d"],e);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -436,7 +436,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${n} return ivec3(r, c, d); } - `}function d8(e,t){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],a=Math.ceil(e[e.length-1]/2),r=a*Math.ceil(e[e.length-2]/2),s=r,i="",o="b, r, c";for(let l=2;l=1?u="coords = 0;":u=o.map(g=>`coords.${p[g+c]} = 0;`).join(` -`);let d="";i<2&&s>0?d="coords":d=e.shapeInfo.logicalShape.map((g,y)=>`coords.${p[y+c]}`).join(", ");let h="return outputValue;",m=w.sizeFromShape(e.shapeInfo.logicalShape)===1,f=w.sizeFromShape(t.logicalShape)===1;if(s===1&&!m&&!f)h=` + `}function V8(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=e.shapeInfo.logicalShape.length,i=t.logicalShape.length,o=nT(e.shapeInfo.logicalShape,t.logicalShape),l=ht(i),u=i-s,c,p=["x","y","z","w","u","v"];s===0?c="":i<2&&o.length>=1?c="coords = 0;":c=o.map(g=>`coords.${p[g+u]} = 0;`).join(` +`);let d="";i<2&&s>0?d="coords":d=e.shapeInfo.logicalShape.map((g,y)=>`coords.${p[y+u]}`).join(", ");let h="return outputValue;",m=I.sizeFromShape(e.shapeInfo.logicalShape)===1,f=I.sizeFromShape(t.logicalShape)===1;if(s===1&&!m&&!f)h=` return vec4(outputValue.xy, outputValue.xy); `;else if(m&&!f)i===1?h=` return vec4(outputValue.x, outputValue.x, 0., 0.); @@ -812,26 +812,26 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, `;else if(o.length){let g=s-2,y=s-1;o.indexOf(g)>-1&&o.indexOf(y)>-1?h="return vec4(outputValue.x);":o.indexOf(g)>-1?h="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":o.indexOf(y)>-1&&(h="return vec4(outputValue.xx, outputValue.zz);")}return` vec4 ${r}() { ${l} coords = getOutputCoords(); - ${u} + ${c} vec4 outputValue = get${a}(${d}); ${h} } - `}function u8(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=t.texShape,i=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&e.shapeInfo.flatOffset==null&&w.arraysEqual(i,s))return` + `}function U8(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=t.texShape,i=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&e.shapeInfo.flatOffset==null&&I.arraysEqual(i,s))return` float ${r}() { return sampleTexture(${n}, resultUV); } - `;let c=dt(l),u=JN(e.shapeInfo.logicalShape,t.logicalShape),p=l-o,d,h=["x","y","z","w","u","v"];o===0?d="":l<2&&u.length>=1?d="coords = 0;":d=u.map(f=>`coords.${h[f+p]} = 0;`).join(` + `;let u=ht(l),c=nT(e.shapeInfo.logicalShape,t.logicalShape),p=l-o,d,h=["x","y","z","w","u","v"];o===0?d="":l<2&&c.length>=1?d="coords = 0;":d=c.map(f=>`coords.${h[f+p]} = 0;`).join(` `);let m="";return l<2&&o>0?m="coords":m=e.shapeInfo.logicalShape.map((f,g)=>`coords.${h[g+p]}`).join(", "),` float ${r}() { - ${c} coords = getOutputCoords(); + ${u} coords = getOutputCoords(); ${d} return get${a}(${m}); } - `}function dt(e){if(e<=1)return"int";if(e===2)return"ivec2";if(e===3)return"ivec3";if(e===4)return"ivec4";if(e===5)return"ivec5";if(e===6)return"ivec6";throw Error(`GPU for rank ${e} is not yet supported`)}function bu(e,t){let n=JSON.parse(JSON.stringify(e));return n.shapeInfo.logicalShape=t,n}function xu(e,t){return t.map(n=>e[n]).join(", ")}function I8(e,t,n,a){let r=t.userCode,s=n.map((h,m)=>{let f={logicalShape:h.shape,texShape:h.isUniform?null:h.texData.texShape,isUniform:h.isUniform,isPacked:h.isUniform?!1:h.texData.isPacked,flatOffset:null};return h.texData!=null&&h.texData.slice!=null&&h.texData.slice.flatOffset>0&&(f.flatOffset=h.texData.slice.flatOffset),{name:t.variableNames[m],shapeInfo:f}}),i=s.map(h=>h.shapeInfo),o={logicalShape:a.shape,texShape:a.texData.texShape,isUniform:!1,isPacked:a.texData.isPacked,flatOffset:null},l=Xq(s,o,r,t.packedInputs),c=e.createProgram(l),u=null,p=e.getUniformLocation(c,"NAN",!1);ee().getNumber("WEBGL_VERSION")===1&&(u=e.getUniformLocation(c,"INFINITY",!1));let d={};for(let h=0;h{let r=n.logicalShape,s=t[a],i=s.shape;if(!w.arraysEqual(r,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${r} and ${i} must match`);if(n.isUniform&&s.isUniform)return;let o=n.texShape,l=s.isUniform?null:s.texData.texShape;if(!w.arraysEqual(o,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${o} and ${l} must match`)})}function T8(e,t,n,a,r){eS(t.inShapeInfos,n),eS([t.outShapeInfo],[a]);let s=a.texData.texture,i=a.texData.texShape;a.texData.isPacked?e.setOutputPackedMatrixTexture(s,i[0],i[1]):e.setOutputMatrixTexture(s,i[0],i[1]),e.setProgram(t.webGLProgram),ee().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,Infinity),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN),n.forEach((o,l)=>{let c=t.program.variableNames[l],u=t.uniformLocations[c],p=t.uniformLocations[`offset${c}`];if(u!=null){if(o.isUniform){if(w.sizeFromShape(o.shape)<2)e.gl.uniform1f(u,o.uniformValues[0]);else{let d=o.uniformValues;d instanceof Float32Array||(d=new Float32Array(d)),e.gl.uniform1fv(u,d)}return}o.texData.slice!=null&&p!=null&&e.gl.uniform1i(p,o.texData.slice.flatOffset),e.setInputMatrixTexture(o.texData.texture,u,l)}}),r!=null&&r(e,t.webGLProgram),e.executeProgram()}function N8(e,t,n){let a="";t.concat(n).forEach(i=>{let o=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0,l=i.isUniform?"uniform":i.texData.texShape;a+=`${i.shape}_${l}_${o}`});let r=e.userCode,s=e.constructor.name;return s+="_"+a+"_"+r,s}var{addImpl:S8,bincountImpl:tS,bincountReduceImpl:C8,ceilImpl:_8,concatImpl:E8,expImpl:F8,expm1Impl:A8,floorImpl:$8,gatherV2Impl:D8,greaterImpl:R8,lessImpl:M8,linSpaceImpl:P8,logImpl:O8,maxImpl:L8,maximumImpl:z8,minimumImpl:B8,multiplyImpl:W8,negImpl:V8,prodImpl:U8,rangeImpl:G8,rsqrtImpl:H8,simpleAbsImpl:nS,sliceImpl:j8,stridedSliceImpl:q8,subImpl:K8,tileImpl:X8,topKImpl:Y8,transposeImpl:Qv,uniqueImpl:J8}=YT;function aS(e,t){return["x","y","z","w","u","v"].slice(0,t).map(n=>`${e}.${n}`)}function gn(e,t){return t===1?[e]:aS(e,t)}function Q8(e,t){if(e===1)return"rc";let n="";for(let a=0;ae[n]).join(", ")}function aX(e,t,n,a){let r=t.userCode,s=n.map((h,m)=>{let f={logicalShape:h.shape,texShape:h.isUniform?null:h.texData.texShape,isUniform:h.isUniform,isPacked:h.isUniform?!1:h.texData.isPacked,flatOffset:null};return h.texData!=null&&h.texData.slice!=null&&h.texData.slice.flatOffset>0&&(f.flatOffset=h.texData.slice.flatOffset),{name:t.variableNames[m],shapeInfo:f}}),i=s.map(h=>h.shapeInfo),o={logicalShape:a.shape,texShape:a.texData.texShape,isUniform:!1,isPacked:a.texData.isPacked,flatOffset:null},l=F8(s,o,r,t.packedInputs),u=e.createProgram(l),c=null,p=e.getUniformLocation(u,"NAN",!1);Z().getNumber("WEBGL_VERSION")===1&&(c=e.getUniformLocation(u,"INFINITY",!1));let d={};for(let h=0;h{let r=n.logicalShape,s=t[a],i=s.shape;if(!I.arraysEqual(r,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${r} and ${i} must match`);if(n.isUniform&&s.isUniform)return;let o=n.texShape,l=s.isUniform?null:s.texData.texShape;if(!I.arraysEqual(o,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${o} and ${l} must match`)})}function rX(e,t,n,a,r){sT(t.inShapeInfos,n),sT([t.outShapeInfo],[a]);let s=a.texData.texture,i=a.texData.texShape;a.texData.isPacked?e.setOutputPackedMatrixTexture(s,i[0],i[1]):e.setOutputMatrixTexture(s,i[0],i[1]),e.setProgram(t.webGLProgram),Z().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,Infinity),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN),n.forEach((o,l)=>{let u=t.program.variableNames[l],c=t.uniformLocations[u],p=t.uniformLocations[`offset${u}`];if(c!=null){if(o.isUniform){if(I.sizeFromShape(o.shape)<2)e.gl.uniform1f(c,o.uniformValues[0]);else{let d=o.uniformValues;d instanceof Float32Array||(d=new Float32Array(d)),e.gl.uniform1fv(c,d)}return}o.texData.slice!=null&&p!=null&&e.gl.uniform1i(p,o.texData.slice.flatOffset),e.setInputMatrixTexture(o.texData.texture,c,l)}}),r!=null&&r(e,t.webGLProgram),e.executeProgram()}function sX(e,t,n){let a="";t.concat(n).forEach(i=>{let o=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0,l=i.isUniform?"uniform":i.texData.texShape;a+=`${i.shape}_${l}_${o}`});let r=e.userCode,s=e.constructor.name;return s+="_"+a+"_"+r,s}var{addImpl:iX,bincountImpl:iT,bincountReduceImpl:oX,ceilImpl:lX,concatImpl:uX,expImpl:cX,expm1Impl:pX,floorImpl:dX,gatherV2Impl:hX,greaterImpl:mX,lessImpl:fX,linSpaceImpl:gX,logImpl:yX,maxImpl:bX,maximumImpl:xX,minimumImpl:vX,multiplyImpl:wX,negImpl:kX,prodImpl:IX,rangeImpl:NX,rsqrtImpl:TX,simpleAbsImpl:oT,sliceImpl:SX,stridedSliceImpl:CX,subImpl:AX,tileImpl:FX,topKImpl:_X,transposeImpl:Qv,uniqueImpl:EX}=e2;function lT(e,t){return["x","y","z","w","u","v"].slice(0,t).map(n=>`${e}.${n}`)}function gn(e,t){return t===1?[e]:lT(e,t)}function $X(e,t){if(e===1)return"rc";let n="";for(let a=0;a ${t[0]}`;let a="";for(let r=e-2;r= ${t[r]}`,r ${t[0]}`;let a="";for(let r=e-2;r= ${t[r]}`,r= ${t}; bool rEdge = rp1 >= ${n}; - `}function tK(e,t){let n=e.length,a=aK(n,t);return n===1?`getA(rc), + `}function RX(e,t){let n=e.length,a=OX(n,t);return n===1?`getA(rc), rc + 1 >= ${e[0]} ? 0. : getA(rc + 1), 0, 0`:`getA(${a[0]}), cEdge ? 0. : getA(${a[1]}), rEdge ? 0. : getA(${a[2]}), - rEdge || cEdge ? 0. : getA(${a[3]})`}var rS=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let n="";for(let a=0;a<4;a++){let r="thisRC = rc;";a%2==1&&(r+="thisRC.z += 1;"),a>1&&(r+="thisRC.y += 1;"),n+=` + rEdge || cEdge ? 0. : getA(${a[3]})`}var uT=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let n="";for(let a=0;a<4;a++){let r="thisRC = rc;";a%2==1&&(r+="thisRC.z += 1;"),a>1&&(r+="thisRC.y += 1;"),n+=` ${r} ${a>0?"if(thisRC.y < rows && thisRC.z < cols){":""} int flatIndex = getFlatIndex(thisRC); @@ -868,7 +868,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${a>0?"}":""} `}this.userCode=` - ${rK(t)} + ${LX(t)} ${Jv(e)} void main() { @@ -884,12 +884,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function rK(e){return` + `}};function LX(e){return` ivec3 inputCoordsFromReshapedOutCoords(int index) { ${Ji(["r","c","d"],e)} return ivec3(r, c, d); } - `}var sK=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){let a=iS(t,n),r=oS(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=sS(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].shift();return this.usedTextures[r].push(o),o}let i;return a===rn.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===rn.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===rn.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===rn.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===rn.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=iS(n,a),s=oS(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=sS(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=ee().get("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],c=l.indexOf(e);if(c<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(c,1),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(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${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)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function iK(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;throw new Error(`Unknown internal format ${t}`)}function sS(e,t,n,a,r){let s=oK(t,a),i;if(r){let[l,c]=hu(e[0],e[1]);i=l*c}else{let[l,c]=hp(e[0],e[1]);i=l*c}let o=iK(n,s);return i*o}function oK(e,t){switch(e){case rn.PACKED_2X2_FLOAT32:return XN(t);case rn.PACKED_2X2_FLOAT16:return YN(t);case rn.UNPACKED_FLOAT32:return jN(t);case rn.UNPACKED_FLOAT16:return qN(t);case rn.PACKED_4X1_UNSIGNED_BYTE:return KN(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function lK(e){return ee().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?rn.PACKED_2X2_FLOAT32:rn.UNPACKED_FLOAT32:e?rn.PACKED_2X2_FLOAT16:rn.UNPACKED_FLOAT16}function iS(e,t){if(e===aa.UPLOAD)return rn.PACKED_2X2_FLOAT32;if(e===aa.RENDER||e==null)return lK(t);if(e===aa.DOWNLOAD||e===aa.PIXELS)return rn.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function oS(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var gs=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.userCode=` + `}var zX=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){let a=pT(t,n),r=dT(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=cT(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].shift();return this.usedTextures[r].push(o),o}let i;return a===sn.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===sn.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===sn.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===sn.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===sn.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=pT(n,a),s=dT(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=cT(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=Z().get("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],u=l.indexOf(e);if(u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(u,1),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(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${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)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function WX(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;throw new Error(`Unknown internal format ${t}`)}function cT(e,t,n,a,r){let s=BX(t,a),i;if(r){let[l,u]=hu(e[0],e[1]);i=l*u}else{let[l,u]=fp(e[0],e[1]);i=l*u}let o=WX(n,s);return i*o}function BX(e,t){switch(e){case sn.PACKED_2X2_FLOAT32:return eT(t);case sn.PACKED_2X2_FLOAT16:return tT(t);case sn.UNPACKED_FLOAT32:return J2(t);case sn.UNPACKED_FLOAT16:return Q2(t);case sn.PACKED_4X1_UNSIGNED_BYTE:return Z2(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function VX(e){return Z().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?sn.PACKED_2X2_FLOAT32:sn.UNPACKED_FLOAT32:e?sn.PACKED_2X2_FLOAT16:sn.UNPACKED_FLOAT16}function pT(e,t){if(e===aa.UPLOAD)return sn.PACKED_2X2_FLOAT32;if(e===aa.RENDER||e==null)return VX(t);if(e===aa.DOWNLOAD||e===aa.PIXELS)return sn.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function dT(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var gs=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.userCode=` float unaryOperation(float x) { ${t} } @@ -900,11 +900,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},Ma="if (isnan(x)) return x;",uK="return x;",lS="return abs(x);",cK="return (x >= 0.0) ? x : (exp(x) - 1.0);",pK=Ma+` + `}},Pa="if (isnan(x)) return x;",UX="return x;",hT="return abs(x);",GX="return (x >= 0.0) ? x : (exp(x) - 1.0);",HX=Pa+` return (x < 0.0) ? 0.0 : x; -`,dK=Ma+` +`,jX=Pa+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,Km="return x;",hK="return x;",mK=` +`,Xm="return x;",qX="return x;",XX=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -913,7 +913,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,fK=` +`,KX=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -923,7 +923,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,gK=` +`,YX=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -944,17 +944,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},yK=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;let t=e.length,n=gn("rc",t),a=dt(t),r=Q8(t,n),s=n.slice(-2),i=t<=1?"rc":`vec2(${s.join(",")})`;this.userCode=` + `}},JX=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;let t=e.length,n=gn("rc",t),a=ht(t),r=$X(t,n),s=n.slice(-2),i=t<=1?"rc":`vec2(${s.join(",")})`;this.userCode=` void main() { ${a} rc = getOutputCoords(); vec4 packedInput = getA(${r}); setOutput(getChannel(packedInput, ${i})); } - `}},bK=Qa.whereImpl,xK=1e-7,vK=1e-4,Zv={};function wK(e){return e in Zv||(Zv[e]={}),Zv[e]}var kK=128,IK=600;function TK(){return ee().global.screen==null?1024:ee().global.screen.height*ee().global.screen.width*window.devicePixelRatio*IK/1024/1024}var ew=class extends Zu{constructor(e){super();if(this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.warnedAboutCPUBackend=!1,this.pendingDeletes=0,this.disposed=!1,!ee().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(e==null){let t=sr(ee().getNumber("WEBGL_VERSION"));this.binaryCache=wK(ee().getNumber("WEBGL_VERSION")),this.gpgpu=new Bq(t),this.canvas=t.canvas,this.gpgpuCreatedLocally=!0}else this.gpgpu=e,this.binaryCache={},this.gpgpuCreatedLocally=!1,this.canvas=e.gl.canvas;this.textureManager=new sK(this.gpgpu),this.numMBBeforeWarning=TK(),this.texData=new kd(this,Ha())}nextDataId(){return ew.nextDataId++}numDataIds(){return this.texData.numDataIds()+(this.cpuBackend?this.cpuBackend.numDataIds():0)-this.pendingDeletes}write(e,t,n){if((ee().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||ee().getBool("DEBUG"))&&this.checkNumericalProblems(e),n==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let a={id:this.nextDataId()};return this.texData.set(a,{shape:t,dtype:n,values:e,usage:aa.UPLOAD,refCount:1}),a}refCount(e){return this.texData.has(e)?this.texData.get(e).refCount:0}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}move(e,t,n,a,r){if(ee().getBool("DEBUG")&&this.checkNumericalProblems(t),a==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:n,dtype:a,values:t,usage:aa.UPLOAD,refCount:r})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){let t=this.texData.get(e),{values:n,dtype:a,complexTensorInfos:r,slice:s,shape:i,isPacked:o}=t;if(s!=null){let p;o?p=new vu(i,Km):p=new gs(i,Km);let d=this.runWebGLProgram(p,[{dataId:e,shape:i,dtype:a}],a),h=this.readSync(d.dataId);return this.disposeIntermediateTensorInfo(d),h}if(n!=null)return this.convertAndCacheOnCPU(e);if(a==="string")return n;let l=this.activeTimers!=null,c;l&&(c=w.now());let u;if(a==="complex64"){let p=this.readSync(r.real.dataId),d=this.readSync(r.imag.dataId);u=_.mergeRealAndImagArrays(p,d)}else u=this.getValuesFromTexture(e);return l&&(this.downloadWaitMs+=w.now()-c),this.convertAndCacheOnCPU(e,u)}async read(e){if(this.pendingRead.has(e)){let h=this.pendingRead.get(e);return new Promise(m=>h.push(m))}let t=this.texData.get(e),{values:n,shape:a,slice:r,dtype:s,complexTensorInfos:i,isPacked:o}=t;if(r!=null){let h;o?h=new vu(a,Km):h=new gs(a,Km);let m=this.runWebGLProgram(h,[{dataId:e,shape:a,dtype:s}],s),f=this.read(m.dataId);return this.disposeIntermediateTensorInfo(m),f}if(n!=null)return this.convertAndCacheOnCPU(e);if(!ee().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&ee().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,c;if(s!=="complex64"&&ee().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(e);let h=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(h.texture,...mp(a))}this.pendingRead.set(e,[]),s!=="complex64"&&await this.gpgpu.createAndWaitForFence();let u;if(s==="complex64"){let h=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),m=h[0],f=h[1];u=_.mergeRealAndImagArrays(m,f)}else if(l==null)u=this.getValuesFromTexture(e);else{let h=w.sizeFromShape(a);u=this.gpgpu.downloadFloat32MatrixFromBuffer(l,h)}c!=null&&this.disposeIntermediateTensorInfo(c);let p=this.convertAndCacheOnCPU(e,u),d=this.pendingRead.get(e);return this.pendingRead.delete(e),d.forEach(h=>h(p)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&Ha().removeDataId(e,this),this.pendingDeletes--),p}bufferSync(e){let t=this.readSync(e.dataId),n=t;if(e.dtype==="string")try{n=t.map(a=>w.decodeString(a))}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(e.shape,e.dtype,n)}checkNumericalProblems(e){if(e!=null)for(let t=0;t0}async time(e){let t=this.activeTimers,n=[],a=!1;this.programTimersStack==null?(this.programTimersStack=n,a=!0):this.activeTimers.push(n),this.activeTimers=n,e();let r=w.flatten(this.activeTimers.map(o=>o.query)).filter(o=>o!=null),s=w.flatten(this.activeTimers.map(o=>o.name)).filter(o=>o!=null);this.activeTimers=t,a&&(this.programTimersStack=null);let i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let o=await Promise.all(r);i.kernelMs=w.sum(o),i.getExtraProfileInfo=()=>o.map((l,c)=>({name:s[c],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(", ")}else i.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,i}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:w.now(),endMs:null}}endTimer(e){return ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=w.now(),e)}async getQueryTime(e){if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);let t=e;return t.endMs-t.startMs}disposeData(e,t=!1){if(this.pendingDisposal.has(e))return!1;if(!this.texData.has(e))return!0;if(t?this.texData.get(e).refCount=0:this.texData.get(e).refCount--,!t&&this.texData.get(e).refCount>0)return!1;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),this.pendingDeletes++,!1;this.releaseGPUData(e);let{complexTensorInfos:n}=this.texData.get(e);return n!=null&&(this.disposeData(n.real.dataId,t),this.disposeData(n.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:n,texShape:a,usage:r,isPacked:s,slice:i}=this.texData.get(e),o=i&&i.origDataId||e,l=this.dataRefCount.get(o);l>1?this.dataRefCount.set(o,l-1):(this.dataRefCount.delete(o),t!=null&&(this.numBytesInGPU-=this.computeBytes(a,n),this.textureManager.releaseTexture(t,a,r,s)));let c=this.texData.get(e);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture}getDataInfo(e){return this.texData.get(e)}getCPUBackend(){return ee().getBool("WEBGL_CPU_FORWARD")?(this.cpuBackend==null&&(this.cpuBackend=Ha().findBackend("cpu")),this.cpuBackend):null}shouldExecuteOnCPU(e,t=kK){let n=this.getCPUBackend();return!ee().getBool("IS_TEST")&&!this.warnedAboutCPUBackend&&n==null&&(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),n!=null&&e.every(a=>this.texData.get(a.dataId).texture==null&&w.sizeFromShape(a.shape)0&&w.isString(n[0])){let r=n.map(s=>w.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return this.texData.get(a).usage=null,{dataId:a,shape:e,dtype:t}}makeOutput(e,t,n){let{dataId:a}=this.makeTensorInfo(e,t,n);return Ha().makeTensorFromDataId(a,e,t,this)}unpackTensor(e){let t=new yK(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new nK(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[mu(e.shape),...fu(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[mu(t),...fu(t)],s=new rS(r,n),i=!0,o=this.runWebGLProgram(s,[a],e.dtype,null,i);return{dataId:o.dataId,shape:t,dtype:o.dtype}}decode(e){let t=this.texData.get(e),{isPacked:n,shape:a,dtype:r}=t,s=qv(a),i;n?i=new bq(s):i=new yq(s);let o=!0,l=this.runWebGLProgram(i,[{shape:s,dtype:r,dataId:e}],r,null,o);return{dtype:r,shape:a,dataId:l.dataId}}runWebGLProgram(e,t,n,a,r=!1){let s=this.makeTensorInfo(e.outputShape,n),i=this.texData.get(s.dataId);if(e.packedOutput&&(i.isPacked=!0),e.outPackingScheme===dp.DENSE){let f=mp(e.outputShape);i.texShape=f.map(g=>g*2)}if(e.outTexUsage!=null&&(i.usage=e.outTexUsage),w.sizeFromShape(s.shape)===0)return i.values=w.getTypedArrayFromDType(s.dtype,0),s;let o=[],l=t.map(f=>{if(f.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let g=this.texData.get(f.dataId);if(g.texture==null){if(!e.packedInputs&&w.sizeFromShape(f.shape)<=ee().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:f.shape,texData:null,isUniform:!0,uniformValues:g.values};e.packedInputs&&(g.isPacked=!0,g.shape=f.shape)}else if(!!g.isPacked!=!!e.packedInputs)f=g.isPacked?this.unpackTensor(f):this.packTensor(f),o.push(f),g=this.texData.get(f.dataId);else if(g.isPacked&&!qm(g.shape,f.shape)){let y=f,b=f.shape;f.shape=g.shape,f=this.packedReshape(f,b),o.push(f),g=this.texData.get(f.dataId),y.shape=b}return this.uploadToGPU(f.dataId),{shape:f.shape,texData:g,isUniform:!1}});this.uploadToGPU(s.dataId);let c={shape:s.shape,texData:i,isUniform:!1},u=N8(e,l,c),p=this.getAndSaveBinary(u,()=>I8(this.gpgpu,e,l,c)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),T8(this.gpgpu,p,l,c,a),o.forEach(f=>this.disposeIntermediateTensorInfo(f)),d&&(h=this.endTimer(h),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(h)}));let m=ee().get("WEBGL_FLUSH_THRESHOLD");if(m>0){let f=w.now();f-this.lastGlFlushTime>m&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=f)}if(!ee().getBool("WEBGL_LAZILY_UNPACK")&&i.isPacked&&r===!1){let f=this.unpackTensor(s);return this.disposeIntermediateTensorInfo(s),f}return s}compileAndRun(e,t,n,a,r=!1){return n=n||t[0].dtype,this.runWebGLProgram(e,t,n,a,r)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(ee().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=D(()=>{if(!ee().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=ee().getBool("DEBUG");ee().set("DEBUG",!1);let t=this.abs(pe(1e-8)).dataSync()[0];if(ee().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?xK:vK}uploadToGPU(e){let t=this.texData.get(e),{shape:n,dtype:a,values:r,texture:s,usage:i,isPacked:o}=t;if(s!=null)return;let l=this.activeTimers!=null,c;l&&(c=w.now());let u=t.texShape;if(u==null&&(u=uq(n,o),t.texShape=u),r!=null){let p=qv(n),d,h=u[1],m=u[0],f=r instanceof Uint8Array;o?([h,m]=hu(u[0],u[1]),d=new kq(p,[m,h],f)):d=new wq(p,[m,h],f);let g=this.makeTensorInfo([m,h],a);f?this.texData.get(g.dataId).usage=aa.PIXELS:this.texData.get(g.dataId).usage=aa.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(g.dataId),h,m,r);let y=!0,b=this.runWebGLProgram(d,[g],a,null,y),x=this.texData.get(b.dataId);t.texture=x.texture,t.texShape=x.texShape,t.isPacked=x.isPacked,t.usage=x.usage,this.disposeIntermediateTensorInfo(g),this.texData.delete(b.dataId),t.values=null,l&&(this.uploadWaitMs+=w.now()-c)}else{let p=this.acquireTexture(u,i,a,o);t.texture=p}}convertAndCacheOnCPU(e,t){let n=this.texData.get(e),{dtype:a}=n;return this.releaseGPUData(e),t!=null&&(n.values=NK(t,a)),n.values}acquireTexture(e,t,n,a){if(this.numBytesInGPU+=this.computeBytes(e,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let r=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${r} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,a)}computeBytes(e,t){return e[0]*e[1]*w.bytesPerElement(t)}};ew.nextDataId=0;function NK(e,t){if(t==="float32"||t==="complex64")return e;if(t==="int32"||t==="bool"){let n=t==="int32"?new Int32Array(e.length):new Uint8Array(e.length);for(let a=0;anew ew,2);var uS=` + `}},QX=Qa.whereImpl,ZX=1e-7,eK=1e-4,Zv={};function tK(e){return e in Zv||(Zv[e]={}),Zv[e]}var nK=128,aK=600;function rK(){return Z().global.screen==null?1024:Z().global.screen.height*Z().global.screen.width*window.devicePixelRatio*aK/1024/1024}var ew=class extends Zu{constructor(e){super();if(this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.warnedAboutCPUBackend=!1,this.pendingDeletes=0,this.disposed=!1,!Z().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(e==null){let t=sr(Z().getNumber("WEBGL_VERSION"));this.binaryCache=tK(Z().getNumber("WEBGL_VERSION")),this.gpgpu=new v8(t),this.canvas=t.canvas,this.gpgpuCreatedLocally=!0}else this.gpgpu=e,this.binaryCache={},this.gpgpuCreatedLocally=!1,this.canvas=e.gl.canvas;this.textureManager=new zX(this.gpgpu),this.numMBBeforeWarning=rK(),this.texData=new kd(this,Ha())}nextDataId(){return ew.nextDataId++}numDataIds(){return this.texData.numDataIds()+(this.cpuBackend?this.cpuBackend.numDataIds():0)-this.pendingDeletes}write(e,t,n){if((Z().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||Z().getBool("DEBUG"))&&this.checkNumericalProblems(e),n==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let a={id:this.nextDataId()};return this.texData.set(a,{shape:t,dtype:n,values:e,usage:aa.UPLOAD,refCount:1}),a}refCount(e){return this.texData.has(e)?this.texData.get(e).refCount:0}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}move(e,t,n,a,r){if(Z().getBool("DEBUG")&&this.checkNumericalProblems(t),a==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:n,dtype:a,values:t,usage:aa.UPLOAD,refCount:r})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){let t=this.texData.get(e),{values:n,dtype:a,complexTensorInfos:r,slice:s,shape:i,isPacked:o}=t;if(s!=null){let p;o?p=new vu(i,Xm):p=new gs(i,Xm);let d=this.runWebGLProgram(p,[{dataId:e,shape:i,dtype:a}],a),h=this.readSync(d.dataId);return this.disposeIntermediateTensorInfo(d),h}if(n!=null)return this.convertAndCacheOnCPU(e);if(a==="string")return n;let l=this.activeTimers!=null,u;l&&(u=I.now());let c;if(a==="complex64"){let p=this.readSync(r.real.dataId),d=this.readSync(r.imag.dataId);c=E.mergeRealAndImagArrays(p,d)}else c=this.getValuesFromTexture(e);return l&&(this.downloadWaitMs+=I.now()-u),this.convertAndCacheOnCPU(e,c)}async read(e){if(this.pendingRead.has(e)){let h=this.pendingRead.get(e);return new Promise(m=>h.push(m))}let t=this.texData.get(e),{values:n,shape:a,slice:r,dtype:s,complexTensorInfos:i,isPacked:o}=t;if(r!=null){let h;o?h=new vu(a,Xm):h=new gs(a,Xm);let m=this.runWebGLProgram(h,[{dataId:e,shape:a,dtype:s}],s),f=this.read(m.dataId);return this.disposeIntermediateTensorInfo(m),f}if(n!=null)return this.convertAndCacheOnCPU(e);if(!Z().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&Z().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,u;if(s!=="complex64"&&Z().get("WEBGL_BUFFER_SUPPORTED")){u=this.decode(e);let h=this.texData.get(u.dataId);l=this.gpgpu.createBufferFromTexture(h.texture,...gp(a))}this.pendingRead.set(e,[]),s!=="complex64"&&await this.gpgpu.createAndWaitForFence();let c;if(s==="complex64"){let h=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),m=h[0],f=h[1];c=E.mergeRealAndImagArrays(m,f)}else if(l==null)c=this.getValuesFromTexture(e);else{let h=I.sizeFromShape(a);c=this.gpgpu.downloadFloat32MatrixFromBuffer(l,h)}u!=null&&this.disposeIntermediateTensorInfo(u);let p=this.convertAndCacheOnCPU(e,c),d=this.pendingRead.get(e);return this.pendingRead.delete(e),d.forEach(h=>h(p)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&Ha().removeDataId(e,this),this.pendingDeletes--),p}bufferSync(e){let t=this.readSync(e.dataId),n=t;if(e.dtype==="string")try{n=t.map(a=>I.decodeString(a))}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(e.shape,e.dtype,n)}checkNumericalProblems(e){if(e!=null)for(let t=0;t0}async time(e){let t=this.activeTimers,n=[],a=!1;this.programTimersStack==null?(this.programTimersStack=n,a=!0):this.activeTimers.push(n),this.activeTimers=n,e();let r=I.flatten(this.activeTimers.map(o=>o.query)).filter(o=>o!=null),s=I.flatten(this.activeTimers.map(o=>o.name)).filter(o=>o!=null);this.activeTimers=t,a&&(this.programTimersStack=null);let i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};if(Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let o=await Promise.all(r);i.kernelMs=I.sum(o),i.getExtraProfileInfo=()=>o.map((l,u)=>({name:s[u],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(", ")}else i.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,i}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:I.now(),endMs:null}}endTimer(e){return Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=I.now(),e)}async getQueryTime(e){if(Z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);let t=e;return t.endMs-t.startMs}disposeData(e,t=!1){if(this.pendingDisposal.has(e))return!1;if(!this.texData.has(e))return!0;if(t?this.texData.get(e).refCount=0:this.texData.get(e).refCount--,!t&&this.texData.get(e).refCount>0)return!1;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),this.pendingDeletes++,!1;this.releaseGPUData(e);let{complexTensorInfos:n}=this.texData.get(e);return n!=null&&(this.disposeData(n.real.dataId,t),this.disposeData(n.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:n,texShape:a,usage:r,isPacked:s,slice:i}=this.texData.get(e),o=i&&i.origDataId||e,l=this.dataRefCount.get(o);l>1?this.dataRefCount.set(o,l-1):(this.dataRefCount.delete(o),t!=null&&(this.numBytesInGPU-=this.computeBytes(a,n),this.textureManager.releaseTexture(t,a,r,s)));let u=this.texData.get(e);u.texture=null,u.texShape=null,u.isPacked=!1,u.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture}getDataInfo(e){return this.texData.get(e)}getCPUBackend(){return Z().getBool("WEBGL_CPU_FORWARD")?(this.cpuBackend==null&&(this.cpuBackend=Ha().findBackend("cpu")),this.cpuBackend):null}shouldExecuteOnCPU(e,t=nK){let n=this.getCPUBackend();return!Z().getBool("IS_TEST")&&!this.warnedAboutCPUBackend&&n==null&&(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),n!=null&&e.every(a=>this.texData.get(a.dataId).texture==null&&I.sizeFromShape(a.shape)0&&I.isString(n[0])){let r=n.map(s=>I.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return this.texData.get(a).usage=null,{dataId:a,shape:e,dtype:t}}makeOutput(e,t,n){let{dataId:a}=this.makeTensorInfo(e,t,n);return Ha().makeTensorFromDataId(a,e,t,this)}unpackTensor(e){let t=new JX(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new PX(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[mu(e.shape),...fu(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[mu(t),...fu(t)],s=new uT(r,n),i=!0,o=this.runWebGLProgram(s,[a],e.dtype,null,i);return{dataId:o.dataId,shape:t,dtype:o.dtype}}decode(e){let t=this.texData.get(e),{isPacked:n,shape:a,dtype:r}=t,s=qv(a),i;n?i=new Q5(s):i=new J5(s);let o=!0,l=this.runWebGLProgram(i,[{shape:s,dtype:r,dataId:e}],r,null,o);return{dtype:r,shape:a,dataId:l.dataId}}runWebGLProgram(e,t,n,a,r=!1){let s=this.makeTensorInfo(e.outputShape,n),i=this.texData.get(s.dataId);if(e.packedOutput&&(i.isPacked=!0),e.outPackingScheme===mp.DENSE){let f=gp(e.outputShape);i.texShape=f.map(g=>g*2)}if(e.outTexUsage!=null&&(i.usage=e.outTexUsage),I.sizeFromShape(s.shape)===0)return i.values=I.getTypedArrayFromDType(s.dtype,0),s;let o=[],l=t.map(f=>{if(f.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let g=this.texData.get(f.dataId);if(g.texture==null){if(!e.packedInputs&&I.sizeFromShape(f.shape)<=Z().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:f.shape,texData:null,isUniform:!0,uniformValues:g.values};e.packedInputs&&(g.isPacked=!0,g.shape=f.shape)}else if(!!g.isPacked!=!!e.packedInputs)f=g.isPacked?this.unpackTensor(f):this.packTensor(f),o.push(f),g=this.texData.get(f.dataId);else if(g.isPacked&&!qm(g.shape,f.shape)){let y=f,b=f.shape;f.shape=g.shape,f=this.packedReshape(f,b),o.push(f),g=this.texData.get(f.dataId),y.shape=b}return this.uploadToGPU(f.dataId),{shape:f.shape,texData:g,isUniform:!1}});this.uploadToGPU(s.dataId);let u={shape:s.shape,texData:i,isUniform:!1},c=sX(e,l,u),p=this.getAndSaveBinary(c,()=>aX(this.gpgpu,e,l,u)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),rX(this.gpgpu,p,l,u,a),o.forEach(f=>this.disposeIntermediateTensorInfo(f)),d&&(h=this.endTimer(h),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(h)}));let m=Z().get("WEBGL_FLUSH_THRESHOLD");if(m>0){let f=I.now();f-this.lastGlFlushTime>m&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=f)}if(!Z().getBool("WEBGL_LAZILY_UNPACK")&&i.isPacked&&r===!1){let f=this.unpackTensor(s);return this.disposeIntermediateTensorInfo(s),f}return s}compileAndRun(e,t,n,a,r=!1){return n=n||t[0].dtype,this.runWebGLProgram(e,t,n,a,r)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(Z().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=M(()=>{if(!Z().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=Z().getBool("DEBUG");Z().set("DEBUG",!1);let t=this.abs(ce(1e-8)).dataSync()[0];if(Z().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?ZX:eK}uploadToGPU(e){let t=this.texData.get(e),{shape:n,dtype:a,values:r,texture:s,usage:i,isPacked:o}=t;if(s!=null)return;let l=this.activeTimers!=null,u;l&&(u=I.now());let c=t.texShape;if(c==null&&(c=U5(n,o),t.texShape=c),r!=null){let p=qv(n),d,h=c[1],m=c[0],f=r instanceof Uint8Array;o?([h,m]=hu(c[0],c[1]),d=new n8(p,[m,h],f)):d=new t8(p,[m,h],f);let g=this.makeTensorInfo([m,h],a);f?this.texData.get(g.dataId).usage=aa.PIXELS:this.texData.get(g.dataId).usage=aa.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(g.dataId),h,m,r);let y=!0,b=this.runWebGLProgram(d,[g],a,null,y),x=this.texData.get(b.dataId);t.texture=x.texture,t.texShape=x.texShape,t.isPacked=x.isPacked,t.usage=x.usage,this.disposeIntermediateTensorInfo(g),this.texData.delete(b.dataId),t.values=null,l&&(this.uploadWaitMs+=I.now()-u)}else{let p=this.acquireTexture(c,i,a,o);t.texture=p}}convertAndCacheOnCPU(e,t){let n=this.texData.get(e),{dtype:a}=n;return this.releaseGPUData(e),t!=null&&(n.values=sK(t,a)),n.values}acquireTexture(e,t,n,a){if(this.numBytesInGPU+=this.computeBytes(e,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let r=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${r} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,a)}computeBytes(e,t){return e[0]*e[1]*I.bytesPerElement(t)}};ew.nextDataId=0;function sK(e,t){if(t==="float32"||t==="complex64")return e;if(t==="int32"||t==="bool"){let n=t==="int32"?new Int32Array(e.length):new Uint8Array(e.length);for(let a=0;anew ew,2);var mT=` if (isnan(a)) return a; if (isnan(b)) return b; -`,wu=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=_.assertAndGetBroadcastShape(t,n),this.userCode=` +`,wu=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=E.assertAndGetBroadcastShape(t,n),this.userCode=` float binaryOperation(float a, float b) { ${e} } @@ -964,17 +964,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float b = getBAtOutCoords(); setOutput(binaryOperation(a, b)); } - `}},Xm=` + `}},Km=` result.r = isNaN.r > 0. ? NAN : result.r; result.g = isNaN.g > 0. ? NAN : result.g; result.b = isNaN.b > 0. ? NAN : result.b; result.a = isNaN.a > 0. ? NAN : result.a; -`,yp=class{constructor(e,t,n,a=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=_.assertAndGetBroadcastShape(t,n);let r=this.outputShape.length,s="";if(a)if(r===0||w.sizeFromShape(this.outputShape)===1)s=` +`,xp=class{constructor(e,t,n,a=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=E.assertAndGetBroadcastShape(t,n);let r=this.outputShape.length,s="";if(a)if(r===0||I.sizeFromShape(this.outputShape)===1)s=` result.y = 0.; result.z = 0.; result.w = 0.; `;else if(s=` - ${dt(r)} coords = getOutputCoords(); + ${ht(r)} coords = getOutputCoords(); `,r===1)s+=` result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y; result.z = 0.; @@ -1001,21 +1001,21 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function Gn(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var CK={kernelName:Ks,backendName:"webgl",kernelFunc:Gn};function ys(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.makeTensorInfo(a.shape,"complex64"),i=n.texData.get(s.dataId),o=Gn({inputs:{x:a},backend:n}),l=Gn({inputs:{x:r},backend:n});return i.complexTensorInfos={real:o,imag:l},s}var _K={kernelName:Ad,backendName:"webgl",kernelFunc:ys},cS="return (a < 0.) ? b * a : a;",pS=` + `}};function Gn(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var oK={kernelName:Xs,backendName:"webgl",kernelFunc:Gn};function ys(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.makeTensorInfo(a.shape,"complex64"),i=n.texData.get(s.dataId),o=Gn({inputs:{x:a},backend:n}),l=Gn({inputs:{x:r},backend:n});return i.complexTensorInfos={real:o,imag:l},s}var lK={kernelName:Ed,backendName:"webgl",kernelFunc:ys},fT="return (a < 0.) ? b * a : a;",gT=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function EK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",w.createScalarValue(s,"float32")),o=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new yp(pS,r.shape,i.shape):new wu(cS,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],r.dtype);return n.disposeIntermediateTensorInfo(i),l}var FK={kernelName:Xs,backendName:"webgl",kernelFunc:EK},dS="return (a < 0.) ? b * a : a;",hS=` +`;function uK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",I.createScalarValue(s,"float32")),o=Z().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new xp(gT,r.shape,i.shape):new wu(fT,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],r.dtype);return n.disposeIntermediateTensorInfo(i),l}var cK={kernelName:Ks,backendName:"webgl",kernelFunc:uK},yT="return (a < 0.) ? b * a : a;",bT=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function AK(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new yp(hS,a.shape,r.shape):new wu(dS,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)}var $K={kernelName:oi,backendName:"webgl",kernelFunc:AK},mS="if (isnan(x)) return x;",DK=` +`;function pK(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=Z().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new xp(bT,a.shape,r.shape):new wu(yT,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)}var dK={kernelName:oi,backendName:"webgl",kernelFunc:pK},xT="if (isnan(x)) return x;",hK=` if (isnan(a)) return a; if (isnan(b)) return b; -`,RK=` +`,mK=` result.r = isNaN.r > 0. ? NAN : result.r; result.g = isNaN.g > 0. ? NAN : result.g; result.b = isNaN.b > 0. ? NAN : result.b; result.a = isNaN.a > 0. ? NAN : result.a; -`;function Ke({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:n,dtype:a}){return({inputs:r,backend:s})=>{let{x:i}=r,o=s,l=a||i.dtype;if(o.shouldExecuteOnCPU([i])&&n!=null){let p=o.texData.get(i.dataId),d=n(p.values,l);return o.makeTensorInfo(i.shape,l,d)}let c=ee().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,u;return c?u=new vu(i.shape,t):u=new gs(i.shape,e),o.runWebGLProgram(u,[i],l)}}function sn({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:n=!1,supportsComplex:a=!1,cpuKernelImpl:r,dtype:s}){return({inputs:i,backend:o})=>{let{a:l,b:c}=i,u=o;if(a&&l.dtype==="complex64"){let m=u.texData.get(l.dataId),f=u.texData.get(c.dataId),[g,y]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(x=>{let[v,N]=x,T={dataId:v.dataId,dtype:v.dtype,shape:l.shape},S={dataId:N.dataId,dtype:N.dtype,shape:c.shape},A=new wu(e,l.shape,c.shape);return u.runWebGLProgram(A,[T,S],pa(v.dtype,N.dtype))}),b=ys({inputs:{real:g,imag:y},backend:u});return u.disposeIntermediateTensorInfo(g),u.disposeIntermediateTensorInfo(y),b}let p=s||pa(l.dtype,c.dtype);if(u.shouldExecuteOnCPU([l,c])&&r!=null){let m=u.texData.get(l.dataId),f=u.texData.get(c.dataId),[g,y]=r(l.shape,c.shape,m.values,f.values,p),b=u.makeTensorInfo(y,p),x=u.texData.get(b.dataId);return x.values=g,b}let d=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return d?h=new yp(t,l.shape,c.shape,n):h=new wu(e,l.shape,c.shape),u.runWebGLProgram(h,[l,c],p)}}function Ym(e,t=!1){if(e==="linear")return t?hK:uK;if(e==="relu")return t?fK:pK;if(e==="elu")return t?mK:cK;if(e==="relu6")return t?gK:dK;if(e==="prelu")return t?hS:dS;if(e==="leakyrelu")return t?pS:cS;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var fS=class{constructor(e,t,n,a=!1,r=!1,s=!1,i=null,o=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n;let c=a?e[1]:e[2],u=Math.ceil(c/2),p=a?"i * 2, rc.y":"rc.y, i * 2",d=r?"rc.z, i * 2":"i * 2, rc.z",h=a?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],m=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],f="",g="";i&&(o?f=`vec4 activation(vec4 a) { +`;function Xe({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:n,dtype:a}){return({inputs:r,backend:s})=>{let{x:i}=r,o=s,l=a||i.dtype;if(o.shouldExecuteOnCPU([i])&&n!=null){let p=o.texData.get(i.dataId),d=n(p.values,l);return o.makeTensorInfo(i.shape,l,d)}let u=Z().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,c;return u?c=new vu(i.shape,t):c=new gs(i.shape,e),o.runWebGLProgram(c,[i],l)}}function on({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:n=!1,supportsComplex:a=!1,cpuKernelImpl:r,dtype:s}){return({inputs:i,backend:o})=>{let{a:l,b:u}=i,c=o;if(a&&l.dtype==="complex64"){let m=c.texData.get(l.dataId),f=c.texData.get(u.dataId),[g,y]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(x=>{let[v,k]=x,w={dataId:v.dataId,dtype:v.dtype,shape:l.shape},S={dataId:k.dataId,dtype:k.dtype,shape:u.shape},A=new wu(e,l.shape,u.shape);return c.runWebGLProgram(A,[w,S],pa(v.dtype,k.dtype))}),b=ys({inputs:{real:g,imag:y},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(y),b}let p=s||pa(l.dtype,u.dtype);if(c.shouldExecuteOnCPU([l,u])&&r!=null){let m=c.texData.get(l.dataId),f=c.texData.get(u.dataId),[g,y]=r(l.shape,u.shape,m.values,f.values,p),b=c.makeTensorInfo(y,p),x=c.texData.get(b.dataId);return x.values=g,b}let d=Z().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return d?h=new xp(t,l.shape,u.shape,n):h=new wu(e,l.shape,u.shape),c.runWebGLProgram(h,[l,u],p)}}function Ym(e,t=!1){if(e==="linear")return t?qX:UX;if(e==="relu")return t?KX:HX;if(e==="elu")return t?XX:GX;if(e==="relu6")return t?YX:jX;if(e==="prelu")return t?bT:yT;if(e==="leakyrelu")return t?gT:fT;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var vT=class{constructor(e,t,n,a=!1,r=!1,s=!1,i=null,o=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n;let u=a?e[1]:e[2],c=Math.ceil(u/2),p=a?"i * 2, rc.y":"rc.y, i * 2",d=r?"rc.z, i * 2":"i * 2, rc.z",h=a?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],m=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],f="",g="";i&&(o?f=`vec4 activation(vec4 a) { vec4 b = getPreluActivationWeightsAtOutCoords(); ${i} }`:l?f=`vec4 activation(vec4 a) { @@ -1026,11 +1026,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, }`,g="result = activation(result);");let y=s?"result += getBiasAtOutCoords();":"";s&&this.variableNames.push("bias"),o&&this.variableNames.push("preluActivationWeights"),l&&this.variableNames.push("leakyreluAlpha");let b="rc.x",x="rc.x";e[0]`The new shape (${l}) has ${c} elements and the old shape (${r.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`);let u=i.texData.get(r.dataId);return u.isPacked&&!qm(r.shape,l)&&!(u.texture!==null&&qm(u.shape,l))?PK(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var OK={kernelName:vl,backendName:"webgl",kernelFunc:ye},vS=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i=Math.floor(n/4)*4,o=n%4,l="sumValue += dot(values, ones);";if(t!=null){let u=1/t;l=`sumValue += dot(values * ${w.isInt(u)?u.toPrecision(2):u}, ones);`}let c="";r%n>0&&(c=` + `}},IT="return a * b;";function NT(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=E.upcastType(a.dtype,r.dtype);if(a.dtype==="complex64"){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),u=new kT(wT.REAL,a.shape,r.shape),c=new kT(wT.IMAG,a.shape,r.shape),p=[{dataId:o.complexTensorInfos.real.dataId,dtype:o.complexTensorInfos.real.dtype,shape:a.shape},{dataId:o.complexTensorInfos.imag.dataId,dtype:o.complexTensorInfos.imag.dtype,shape:a.shape},{dataId:l.complexTensorInfos.real.dataId,dtype:l.complexTensorInfos.real.dtype,shape:r.shape},{dataId:l.complexTensorInfos.imag.dataId,dtype:l.complexTensorInfos.imag.dtype,shape:r.shape}],d=n.runWebGLProgram(u,p,"float32"),h=n.runWebGLProgram(c,p,"float32"),m=ys({inputs:{real:d,imag:h},backend:n});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),m}if(n.shouldExecuteOnCPU([a,r])){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),[u,c]=wX(a.shape,r.shape,o.values,l.values,s),p=n.makeTensorInfo(c,s),d=n.texData.get(p.dataId);return d.values=u,p}let i;return Z().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new xp(IT,a.shape,r.shape):i=new wu(IT,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var fK={kernelName:ai,backendName:"webgl",kernelFunc:NT};function gK(e,t,n){let a=[mu(e.shape),...fu(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[mu(t),...fu(t)],i=new uT(s,a),o=!0,l=n.runWebGLProgram(i,[r],e.dtype,null,o);return{dataId:l.dataId,shape:t,dtype:l.dtype}}function ye(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=n,o=I.sizeFromShape(r.shape),l=I.inferFromImplicitShape(s,o),u=I.sizeFromShape(l);I.assert(o===u,()=>`The new shape (${l}) has ${u} elements and the old shape (${r.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`);let c=i.texData.get(r.dataId);return c.isPacked&&!qm(r.shape,l)&&!(c.texture!==null&&qm(c.shape,l))?gK(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var yK={kernelName:vl,backendName:"webgl",kernelFunc:ye},TT=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i=Math.floor(n/4)*4,o=n%4,l="sumValue += dot(values, ones);";if(t!=null){let c=1/t;l=`sumValue += dot(values * ${I.isInt(c)?c.toPrecision(2):c}, ones);`}let u="";r%n>0&&(u=` if (inIdx < 0 || inIdx >= ${r}) { return 0.0; } @@ -1075,7 +1075,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); float getValue(int batch, int inIdx) { - ${c} + ${u} return getX(batch, inIdx); } @@ -1120,7 +1120,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(sumValue); } - `}},LK=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i="0.0",o="";t==="prod"?i="1.0":t==="min"?(i="1.0 / 1e-20",o="min"):t==="max"&&(i="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?l="sumValue":t==="prod"?l="prodValue":t==="all"?l="allValue":t==="any"&&(l="anyValue");let c=Math.floor(n/4)*4,u=n%4,p=` + `}},bK=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i="0.0",o="";t==="prod"?i="1.0":t==="min"?(i="1.0 / 1e-20",o="min"):t==="max"&&(i="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?l="sumValue":t==="prod"?l="prodValue":t==="all"?l="allValue":t==="any"&&(l="anyValue");let u=Math.floor(n/4)*4,c=n%4,p=` if (${t==="sum"}) { sumValue += dot(values, ones); } else if (${t==="prod"}) { @@ -1162,7 +1162,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float allValue = 1.0; float anyValue = 0.0; - for (int i = 0; i < ${c}; i += 4) { + for (int i = 0; i < ${u}; i += 4) { int inIdx = inOffset + i; ${d} values = ${d}( getValue(batch, inIdx), @@ -1174,8 +1174,8 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${p} } - int inIdx = inOffset + ${c}; - if (${u===1}) { + int inIdx = inOffset + ${u}; + if (${c===1}) { ${d} values = ${d}( getValue(batch, inIdx), initializationValue, @@ -1184,7 +1184,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ); ${p} - } else if (${u===2}) { + } else if (${c===2}) { ${d} values = ${d}( getValue(batch, inIdx), getValue(batch, inIdx + 1), @@ -1193,7 +1193,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ); ${p} - } else if (${u===3}) { + } else if (${c===3}) { ${d} values = ${d}( getValue(batch, inIdx), getValue(batch, inIdx + 1), @@ -1205,12 +1205,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(${l}); } - `}};function zK(e){let t=[];for(;t.length===0||t[t.length-1].outSize!==1;){let n=t.length?t[t.length-1].outSize:e[1],a=_.computeOptimalWindowSize(n);t.push({inSize:n,windowSize:a,outSize:Math.ceil(n/a)})}return t}function Zi(e,t,n,a){let r=zK(e.shape),s=e;for(let i=0;i6)throw Error(`Transpose for rank ${t} is not yet supported`);let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],a=new Array(t);for(let r=0;r6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let a=dt(this.rank),r=aS("rc",this.rank),s=new Array(this.rank);for(let c=0;c6)throw Error(`Transpose for rank ${t} is not yet supported`);let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],a=new Array(t);for(let r=0;r6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let a=ht(this.rank),r=lT("rc",this.rank),s=new Array(this.rank);for(let u=0;u=2&&u>=2&&x,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${f}) and (${g}).`);let v=(y>b?e.shape.slice(0,-2):t.shape.slice(0,-2)).concat([h,m]);w.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${a} must match.`);let N=n?[y,p,h]:[y,h,p],T=a?[b,m,d]:[b,d,m],S=ye({inputs:{x:e},backend:r,attrs:{shape:N}}),A=ye({inputs:{x:t},backend:r,attrs:{shape:T}}),$=[S,A],R=Math.max(y,b),B=n?S.shape[1]:S.shape[2],V=s!=null,W=i!=null,G=l==="leakyrelu",H=l!=null?Ym(l,!0):null,X=V||W||G||H!=null,q;if((h===1||m===1)&&B>wS&&X===!1){let Q=S,se=A;n&&(Q=An({inputs:{x:S},backend:r,attrs:{perm:[0,2,1]}}),$.push(Q)),a&&(se=An({inputs:{x:A},backend:r,attrs:{perm:[0,2,1]}}),$.push(se));let ne=m!==1,ie=m===1,Z=Q;ne&&(Z=ye({inputs:{x:Q},backend:r,attrs:{shape:[R,B,1]}}),$.push(Z));let de=m===1?2:1,oe=se;ie&&(oe=ye({inputs:{x:se},backend:r,attrs:{shape:[R,1,B]}}),$.push(oe));let ge=xS({inputs:{a:Z,b:oe},backend:r});q=tw({inputs:{x:ge},backend:r,attrs:{axis:de,keepDims:!0}}),$.push(ge)}else{let Q=pa(e.dtype,t.dtype),se=new fS(N,T,[R,h,m],n,a,V,H,W,G),ne=[S,A];if(s!=null&&ne.push(s),W&&ne.push(i),G){let ie=r.makeTensorInfo([],"float32",w.createScalarValue(o,"float32"));ne.push(ie),$.push(ie)}q=r.runWebGLProgram(se,ne,Q)}let te=ye({inputs:{x:q},backend:r,attrs:{shape:v}});$.push(q);for(let Q of $)r.disposeIntermediateTensorInfo(Q);return te}function jK(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:c,activation:u,leakyreluAlpha:p}=a;return Qm({a:r,b:s,transposeA:l,transposeB:c,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:p,activation:u})}var qK={kernelName:Ii,backendName:"webgl",kernelFunc:jK},kS="return abs(x);";function KK(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])&&a.dtype!=="complex64"){let s=n.texData.get(a.dataId),i=nS(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return ee().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new vu(a.shape,kS):r=new gs(a.shape,kS),n.runWebGLProgram(r,[a],a.dtype)}var XK={kernelName:Po,backendName:"webgl",kernelFunc:KK},YK=Ma+` + `}};function Jm(e,t,n){let a=Z().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new kK(e.shape,t):new wK(e.shape,t);return n.runWebGLProgram(a,[e],e.dtype)}function IK(e,t,n,a){let r=t,s=e.shape.length,i=I.parseAxisParam(r,e.shape),o=i,l=E.getAxesPermutation(o,s),u=l!=null,c=e;u&&(c=Jm(e,l,a),o=E.getInnerMostAxes(o.length,s)),E.assertAxesAreInnerMostDims("sum",o,s);let[p,d]=E.computeOutAndReduceShapes(c.shape,o),h=p;n&&(h=E.expandShapeToKeepDim(p,i));let m=I.sizeFromShape(d),f=I.sizeFromShape(e.shape)/m,g=ye({inputs:{x:c},attrs:{shape:[f,m]},backend:a}),y=uh(e.dtype),b=Zi(g,y,"sum",a),x=ye({inputs:{x:b},attrs:{shape:h},backend:a});return a.disposeIntermediateTensorInfo(g),a.disposeIntermediateTensorInfo(b),u&&a.disposeIntermediateTensorInfo(c),x}function tw(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;return IK(r,s,i,n)}var NK={kernelName:yi,backendName:"webgl",kernelFunc:tw};function En(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{perm:s}=a,i=n,o=r.shape.length,l=new Array(o);for(let c=0;c=2&&c>=2&&x,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${f}) and (${g}).`);let v=(y>b?e.shape.slice(0,-2):t.shape.slice(0,-2)).concat([h,m]);I.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${a} must match.`);let k=n?[y,p,h]:[y,h,p],w=a?[b,m,d]:[b,d,m],S=ye({inputs:{x:e},backend:r,attrs:{shape:k}}),A=ye({inputs:{x:t},backend:r,attrs:{shape:w}}),F=[S,A],D=Math.max(y,b),R=n?S.shape[1]:S.shape[2],L=s!=null,W=i!=null,U=l==="leakyrelu",G=l!=null?Ym(l,!0):null,X=L||W||U||G!=null,j;if((h===1||m===1)&&R>ST&&X===!1){let Q=S,se=A;n&&(Q=En({inputs:{x:S},backend:r,attrs:{perm:[0,2,1]}}),F.push(Q)),a&&(se=En({inputs:{x:A},backend:r,attrs:{perm:[0,2,1]}}),F.push(se));let ne=m!==1,ie=m===1,ee=Q;ne&&(ee=ye({inputs:{x:Q},backend:r,attrs:{shape:[D,R,1]}}),F.push(ee));let de=m===1?2:1,oe=se;ie&&(oe=ye({inputs:{x:se},backend:r,attrs:{shape:[D,1,R]}}),F.push(oe));let ge=NT({inputs:{a:ee,b:oe},backend:r});j=tw({inputs:{x:ge},backend:r,attrs:{axis:de,keepDims:!0}}),F.push(ge)}else{let Q=pa(e.dtype,t.dtype),se=new vT(k,w,[D,h,m],n,a,L,G,W,U),ne=[S,A];if(s!=null&&ne.push(s),W&&ne.push(i),U){let ie=r.makeTensorInfo([],"float32",I.createScalarValue(o,"float32"));ne.push(ie),F.push(ie)}j=r.runWebGLProgram(se,ne,Q)}let te=ye({inputs:{x:j},backend:r,attrs:{shape:v}});F.push(j);for(let Q of F)r.disposeIntermediateTensorInfo(Q);return te}function SK(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:u,activation:c,leakyreluAlpha:p}=a;return Qm({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:p,activation:c})}var CK={kernelName:Ii,backendName:"webgl",kernelFunc:SK},CT="return abs(x);";function AK(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])&&a.dtype!=="complex64"){let s=n.texData.get(a.dataId),i=oT(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return Z().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new vu(a.shape,CT):r=new gs(a.shape,CT),n.runWebGLProgram(r,[a],a.dtype)}var FK={kernelName:Po,backendName:"webgl",kernelFunc:AK},_K=Pa+` if (abs(x) > 1.) { return NAN; } return acos(x); -`,JK=Ke({opSnippet:YK}),QK={kernelName:Oo,backendName:"webgl",kernelFunc:JK},ZK=Ma+` +`,EK=Xe({opSnippet:_K}),$K={kernelName:Oo,backendName:"webgl",kernelFunc:EK},DK=Pa+` if (x < 1.0) return NAN; -return log(x + sqrt(x * x - 1.0));`,eX=Ke({opSnippet:ZK}),tX={kernelName:Lo,backendName:"webgl",kernelFunc:eX},IS="return a + b;",nX=sn({opSnippet:IS,packedOpSnippet:IS,supportsComplex:!0,cpuKernelImpl:S8}),aX={kernelName:Hr,backendName:"webgl",kernelFunc:nX},rX=class{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`float v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` +return log(x + sqrt(x * x - 1.0));`,MK=Xe({opSnippet:DK}),RK={kernelName:Lo,backendName:"webgl",kernelFunc:MK},AT="return a + b;",PK=on({opSnippet:AT,packedOpSnippet:AT,supportsComplex:!0,cpuKernelImpl:iX}),OK={kernelName:Hr,backendName:"webgl",kernelFunc:PK},LK=class{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`float v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` void main() { ${n.join(` `)} @@ -1242,7 +1242,7 @@ return log(x + sqrt(x * x - 1.0));`,eX=Ke({opSnippet:ZK}),tX={kernelName:Lo,back float result = ${a}; setOutput(result); } - `}},sX=class{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`vec4 v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` + `}},zK=class{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`vec4 v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` void main() { ${n.join(` `)} @@ -1250,7 +1250,7 @@ return log(x + sqrt(x * x - 1.0));`,eX=Ke({opSnippet:ZK}),tX={kernelName:Lo,back vec4 result = ${a}; setOutput(result); } - `}};function Zm(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return Gn({inputs:{x:a[0]},backend:n});if(a.length>ee().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=Zm({inputs:a.slice(0,o),backend:n}),c=Zm({inputs:a.slice(o),backend:n});return Zm({inputs:[l,c],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>pa(o,l)),s=a.map(o=>o.shape),i=ee().getBool("WEBGL_PACK")?new sX(a[0].shape,s):new rX(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var iX={kernelName:As,backendName:"webgl",kernelFunc:Zm};function oX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=w.parseAxisParam(s,r.shape),c=l,u=_.getAxesPermutation(c,o),p=r;u!=null&&(p=An({inputs:{x:r},backend:n,attrs:{perm:u}}),c=_.getInnerMostAxes(c.length,o)),_.assertAxesAreInnerMostDims("all",c,o);let[d,h]=_.computeOutAndReduceShapes(p.shape,c),m=w.sizeFromShape(h),f=ye({inputs:{x:p},backend:n,attrs:{shape:[-1,m]}}),g=Zi(f,f.dtype,"all",n),y;if(i){let b=_.expandShapeToKeepDim(d,l);y=ye({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=ye({inputs:{x:g},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),u!=null&&n.disposeIntermediateTensorInfo(p),y}var lX={kernelName:Sd,backendName:"webgl",kernelFunc:oX};function uX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=w.parseAxisParam(s,r.shape),c=l,u=_.getAxesPermutation(c,o),p=r;u!=null&&(p=An({inputs:{x:r},backend:n,attrs:{perm:u}}),c=_.getInnerMostAxes(c.length,o)),_.assertAxesAreInnerMostDims("any",c,o);let[d,h]=_.computeOutAndReduceShapes(p.shape,c),m=w.sizeFromShape(h),f=ye({inputs:{x:p},backend:n,attrs:{shape:[-1,m]}}),g=Zi(f,f.dtype,"any",n),y;if(i){let b=_.expandShapeToKeepDim(d,l);y=ye({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=ye({inputs:{x:g},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),u!=null&&n.disposeIntermediateTensorInfo(p),y}var cX={kernelName:Cd,backendName:"webgl",kernelFunc:uX},pX=class{constructor(e,t,n){this.variableNames=["A"];let{windowSize:a,batchSize:r,outSize:s}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[r,s];let i=t==="max"?">":"<",o=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` + `}};function Zm(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return Gn({inputs:{x:a[0]},backend:n});if(a.length>Z().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=Zm({inputs:a.slice(0,o),backend:n}),u=Zm({inputs:a.slice(o),backend:n});return Zm({inputs:[l,u],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>pa(o,l)),s=a.map(o=>o.shape),i=Z().getBool("WEBGL_PACK")?new zK(a[0].shape,s):new LK(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var WK={kernelName:Es,backendName:"webgl",kernelFunc:Zm};function BK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=I.parseAxisParam(s,r.shape),u=l,c=E.getAxesPermutation(u,o),p=r;c!=null&&(p=En({inputs:{x:r},backend:n,attrs:{perm:c}}),u=E.getInnerMostAxes(u.length,o)),E.assertAxesAreInnerMostDims("all",u,o);let[d,h]=E.computeOutAndReduceShapes(p.shape,u),m=I.sizeFromShape(h),f=ye({inputs:{x:p},backend:n,attrs:{shape:[-1,m]}}),g=Zi(f,f.dtype,"all",n),y;if(i){let b=E.expandShapeToKeepDim(d,l);y=ye({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=ye({inputs:{x:g},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),c!=null&&n.disposeIntermediateTensorInfo(p),y}var VK={kernelName:Sd,backendName:"webgl",kernelFunc:BK};function UK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=I.parseAxisParam(s,r.shape),u=l,c=E.getAxesPermutation(u,o),p=r;c!=null&&(p=En({inputs:{x:r},backend:n,attrs:{perm:c}}),u=E.getInnerMostAxes(u.length,o)),E.assertAxesAreInnerMostDims("any",u,o);let[d,h]=E.computeOutAndReduceShapes(p.shape,u),m=I.sizeFromShape(h),f=ye({inputs:{x:p},backend:n,attrs:{shape:[-1,m]}}),g=Zi(f,f.dtype,"any",n),y;if(i){let b=E.expandShapeToKeepDim(d,l);y=ye({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=ye({inputs:{x:g},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),c!=null&&n.disposeIntermediateTensorInfo(p),y}var GK={kernelName:Cd,backendName:"webgl",kernelFunc:UK},HK=class{constructor(e,t,n){this.variableNames=["A"];let{windowSize:a,batchSize:r,outSize:s}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[r,s];let i=t==="max"?">":"<",o=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -1270,31 +1270,31 @@ return log(x + sqrt(x * x - 1.0));`,eX=Ke({opSnippet:ZK}),tX={kernelName:Lo,back } setOutput(float(bestIndex)); } - `}},dX=class{constructor(e,t,n,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,w.assert(e.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let r=e[e.length-1],s=Math.ceil(r/t);this.outputShape=e.slice(0,-1),s>1&&this.outputShape.push(s),a||this.variableNames.push("bestIndicesA");let i=this.outputShape,o=i.length,l=dt(o),c=gn("coords",o),u,p;if(s===1){p=o+1;let S=dt(p);u=` - ${S} sourceLocR = ${S}(${c.join()}, 0); - ++${c[o-1]}; - ${S} sourceLocG = ${S}(${c.join()}, 0); - ++${c[o-2]}; - ${S} sourceLocA = ${S}(${c.join()}, 0); - --${c[o-1]}; - ${S} sourceLocB = ${S}(${c.join()}, 0); - --${c[o-2]};`}else p=o,u=` + `}},jK=class{constructor(e,t,n,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,I.assert(e.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let r=e[e.length-1],s=Math.ceil(r/t);this.outputShape=e.slice(0,-1),s>1&&this.outputShape.push(s),a||this.variableNames.push("bestIndicesA");let i=this.outputShape,o=i.length,l=ht(o),u=gn("coords",o),c,p;if(s===1){p=o+1;let S=ht(p);c=` + ${S} sourceLocR = ${S}(${u.join()}, 0); + ++${u[o-1]}; + ${S} sourceLocG = ${S}(${u.join()}, 0); + ++${u[o-2]}; + ${S} sourceLocA = ${S}(${u.join()}, 0); + --${u[o-1]}; + ${S} sourceLocB = ${S}(${u.join()}, 0); + --${u[o-2]};`}else p=o,c=` ${l} sourceLocR = coords; - ++${c[o-1]}; + ++${u[o-1]}; ${l} sourceLocG = coords; - ++${c[o-2]}; + ++${u[o-2]}; ${l} sourceLocA = coords; - --${c[o-1]}; + --${u[o-1]}; ${l} sourceLocB = coords; - --${c[o-2]};`;let d=["x","y","z","w","u","v"].slice(0,p),h="."+d[p-1],m=d.map(S=>"int "+S),f=gn("sourceLocR",p-1).concat("inIdx.r"),g=gn("sourceLocG",p-1).concat("inIdx.g"),y=gn("sourceLocB",p-1).concat("inIdx.b"),b=gn("sourceLocA",p-1).concat("inIdx.a"),x=n==="max"?"greaterThan":"lessThan",v=a?"":` + --${u[o-2]};`;let d=["x","y","z","w","u","v"].slice(0,p),h="."+d[p-1],m=d.map(S=>"int "+S),f=gn("sourceLocR",p-1).concat("inIdx.r"),g=gn("sourceLocG",p-1).concat("inIdx.g"),y=gn("sourceLocB",p-1).concat("inIdx.b"),b=gn("sourceLocA",p-1).concat("inIdx.a"),x=n==="max"?"greaterThan":"lessThan",v=a?"":` inIdx = round(vec4(getBestIndicesAChannel(${f.join()}), getBestIndicesAChannel(${g.join()}), getBestIndicesAChannel(${y.join()}), - getBestIndicesAChannel(${b.join()})));`,N=`vec4( + getBestIndicesAChannel(${b.join()})));`,k=`vec4( getAChannel(${f.join()}), hasNextCol ? getAChannel(${g.join()}) : 0., hasNextRow ? getAChannel(${y.join()}) : 0., - hasNextRow && hasNextCol ? getAChannel(${b.join()}) : 0.)`,T=a?"":` + hasNextRow && hasNextCol ? getAChannel(${b.join()}) : 0.)`,w=a?"":` float getBestIndicesAChannel(${m.join()}) { return getChannel(getBestIndicesA(${d.join()}), vec2(${d.slice(-2).join()})); @@ -1303,22 +1303,22 @@ return log(x + sqrt(x * x - 1.0));`,eX=Ke({opSnippet:ZK}),tX={kernelName:Lo,back return getChannel(getA(${d.join()}), vec2(${d.slice(-2).join()})); } - ${T} + ${w} void main() { ${l} coords = getOutputCoords(); - bool hasNextCol = ${c[o-1]} < ${i[o-1]-1}; - bool hasNextRow = ${c[o-2]} < ${i[o-2]-1}; - ${u} + bool hasNextCol = ${u[o-1]} < ${i[o-1]-1}; + bool hasNextRow = ${u[o-2]} < ${i[o-2]-1}; + ${c} ivec4 srcIdx = ivec4(sourceLocR${h}, sourceLocG${h}, sourceLocB${h}, sourceLocA${h}) * ${t}; ivec4 inIdx = srcIdx; vec4 bestIndex = vec4(inIdx); - vec4 bestValue = ${N}; + vec4 bestValue = ${k}; for (int i = 0; i < ${t}; i++) { inIdx = srcIdx; ${v} - vec4 candidate = ${N}; + vec4 candidate = ${k}; bvec4 nan = isnan(candidate); bvec4 replace = bvec4( vec4(${x}(candidate, bestValue)) * (vec4(1.0) - vec4(nan))); @@ -1332,23 +1332,23 @@ return log(x + sqrt(x * x - 1.0));`,eX=Ke({opSnippet:ZK}),tX={kernelName:Lo,back } setOutput(bestIndex); } - `}};function TS(e,t,n,a=null){let r=t.shape[0],s=t.shape[1];a!=null&&(r=a.shape[0],s=a.shape[1]);let i=_.computeOptimalWindowSize(s),o={windowSize:i,inSize:s,batchSize:r,outSize:Math.ceil(s/i)},l=new pX(o,n,a==null),c=[t];a!=null&&c.push(a);let u=e.runWebGLProgram(l,c,"int32");if(u.shape[1]===1)return u;let p=TS(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}function NS(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=_.computeOptimalWindowSize(s),o=new dX(r,i,n,a==null),l=a==null?[t]:[t,a],c=e.runWebGLProgram(o,l,"int32");if(c.shape.length===t.shape.length){let u=NS(e,t,n,c);return e.disposeIntermediateTensorInfo(c),u}return c}function SS(e,t,n,a){let r=[n];if(_.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!ee().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],[i,o]=_.computeOutAndReduceShapes(t.shape,r),l=w.sizeFromShape(o),c=ye({inputs:{x:t},backend:e,attrs:{shape:[-1,l]}});s.push(c);let u=TS(e,c,a);s.push(u);let p=ye({inputs:{x:u},backend:e,attrs:{shape:i}});return s.forEach(d=>e.disposeIntermediateTensorInfo(d)),p}return NS(e,t,a)}function hX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=w.parseAxisParam(s,r.shape),o=_.getAxesPermutation(i,r.shape.length),l=r,c=[];o!=null&&(l=An({inputs:{x:r},backend:n,attrs:{perm:o}}),c.push(l),i=_.getInnerMostAxes(i.length,l.shape.length)),_.assertAxesAreInnerMostDims("argMax",[i[0]],l.shape.length);let u=SS(n,l,i[0],"max");return c.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var mX={kernelName:$s,backendName:"webgl",kernelFunc:hX};function fX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=w.parseAxisParam(s,r.shape),o=_.getAxesPermutation(i,r.shape.length),l=r,c=[];o!=null&&(l=An({inputs:{x:r},backend:n,attrs:{perm:o}}),c.push(l),i=_.getInnerMostAxes(i.length,l.shape.length)),_.assertAxesAreInnerMostDims("argMin",[i[0]],l.shape.length);let u=SS(n,l,i[0],"min");return c.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var gX={kernelName:nc,backendName:"webgl",kernelFunc:fX},yX=Ma+` + `}};function FT(e,t,n,a=null){let r=t.shape[0],s=t.shape[1];a!=null&&(r=a.shape[0],s=a.shape[1]);let i=E.computeOptimalWindowSize(s),o={windowSize:i,inSize:s,batchSize:r,outSize:Math.ceil(s/i)},l=new HK(o,n,a==null),u=[t];a!=null&&u.push(a);let c=e.runWebGLProgram(l,u,"int32");if(c.shape[1]===1)return c;let p=FT(e,t,n,c);return e.disposeIntermediateTensorInfo(c),p}function _T(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=E.computeOptimalWindowSize(s),o=new jK(r,i,n,a==null),l=a==null?[t]:[t,a],u=e.runWebGLProgram(o,l,"int32");if(u.shape.length===t.shape.length){let c=_T(e,t,n,u);return e.disposeIntermediateTensorInfo(u),c}return u}function ET(e,t,n,a){let r=[n];if(E.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!Z().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],[i,o]=E.computeOutAndReduceShapes(t.shape,r),l=I.sizeFromShape(o),u=ye({inputs:{x:t},backend:e,attrs:{shape:[-1,l]}});s.push(u);let c=FT(e,u,a);s.push(c);let p=ye({inputs:{x:c},backend:e,attrs:{shape:i}});return s.forEach(d=>e.disposeIntermediateTensorInfo(d)),p}return _T(e,t,a)}function qK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=I.parseAxisParam(s,r.shape),o=E.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=En({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=E.getInnerMostAxes(i.length,l.shape.length)),E.assertAxesAreInnerMostDims("argMax",[i[0]],l.shape.length);let c=ET(n,l,i[0],"max");return u.forEach(p=>n.disposeIntermediateTensorInfo(p)),c}var XK={kernelName:$s,backendName:"webgl",kernelFunc:qK};function KK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=I.parseAxisParam(s,r.shape),o=E.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=En({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=E.getInnerMostAxes(i.length,l.shape.length)),E.assertAxesAreInnerMostDims("argMin",[i[0]],l.shape.length);let c=ET(n,l,i[0],"min");return u.forEach(p=>n.disposeIntermediateTensorInfo(p)),c}var YK={kernelName:nc,backendName:"webgl",kernelFunc:KK},JK=Pa+` if (abs(x) > 1.) { return NAN; } return asin(x); -`,bX=Ke({opSnippet:yX}),xX={kernelName:zo,backendName:"webgl",kernelFunc:bX},vX=Ma+"return log(x + sqrt(x * x + 1.0));",wX=Ke({opSnippet:vX}),kX={kernelName:Bo,backendName:"webgl",kernelFunc:wX},IX=Ma+` +`,QK=Xe({opSnippet:JK}),ZK={kernelName:zo,backendName:"webgl",kernelFunc:QK},e7=Pa+"return log(x + sqrt(x * x + 1.0));",t7=Xe({opSnippet:e7}),n7={kernelName:Wo,backendName:"webgl",kernelFunc:t7},a7=Pa+` return atan(x); -`,TX=Ke({opSnippet:IX}),NX={kernelName:Wo,backendName:"webgl",kernelFunc:TX},SX=DK+` +`,r7=Xe({opSnippet:a7}),s7={kernelName:Bo,backendName:"webgl",kernelFunc:r7},i7=hK+` return atan(a, b); -`,CX=` +`,o7=` vec4 result = atan(a, b); vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); - `+RK+` + `+mK+` return result; -`,_X=sn({opSnippet:SX,packedOpSnippet:CX}),EX={kernelName:Uo,backendName:"webgl",kernelFunc:_X},FX=Ma+` +`,l7=on({opSnippet:i7,packedOpSnippet:o7}),u7={kernelName:Uo,backendName:"webgl",kernelFunc:l7},c7=Pa+` if ((x < -1.0) || (x > 1.0)) return NAN; -return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelName:Vo,backendName:"webgl",kernelFunc:AX},bp=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,c=e.dilationWidth,u=e.effectiveFilterHeight,p=e.effectiveFilterWidth,d=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`,y="0.0";if(m||(y="-1.0 / 1e-20"),n){let S=">=";this.userCode=` +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,p7=Xe({opSnippet:c7}),d7={kernelName:Vo,backendName:"webgl",kernelFunc:p7},vp=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,c=e.effectiveFilterHeight,p=e.effectiveFilterWidth,d=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`,y="0.0";if(m||(y="-1.0 / 1e-20"),n){let S=">=";this.userCode=` const ivec2 strides = ivec2(${i}, ${o}); const ivec2 pads = ivec2(${d}, ${h}); @@ -1368,7 +1368,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam int minMaxPosition = 0; float avgValue = 0.0; - for (int wR = 0; wR < ${u}; + for (int wR = 0; wR < ${c}; wR += ${l}) { int xR = xRCorner + wR; @@ -1377,7 +1377,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } for (int wC = 0; wC < ${p}; - wC += ${c}) { + wC += ${u}) { int xC = xCCorner + wC; if (xC < 0 || xC >= ${e.inWidth}) { @@ -1399,7 +1399,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } setOutput(float(minMaxPosition)); } - `;return}let b="max",x=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(x="avgValue / count");let v=Math.floor(s/4)*4,N=s%4,T=` + `;return}let b="max",x=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(x="avgValue / count");let v=Math.floor(s/4)*4,k=s%4,w=` if (${m}) { avgValue += dot(values, ones); } else { @@ -1436,7 +1436,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam float avgValue = 0.0; count = 0.0; - for (int wR = 0; wR < ${u}; + for (int wR = 0; wR < ${c}; wR += ${l}) { int xR = xRCorner + wR; @@ -1445,20 +1445,20 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } for (int wC = 0; wC < ${v}; wC += 4) { - int xC = xCCorner + wC * ${c}; + int xC = xCCorner + wC * ${u}; vec4 values = vec4( getValue(batch, xR, xC, d), - getValue(batch, xR, xC + ${c}, d), - getValue(batch, xR, xC + 2 * ${c}, d), - getValue(batch, xR, xC + 3 * ${c}, d) + getValue(batch, xR, xC + ${u}, d), + getValue(batch, xR, xC + 2 * ${u}, d), + getValue(batch, xR, xC + 3 * ${u}, d) ); - ${T} + ${w} } int xC = xCCorner + ${v}; - if (${N===1}) { + if (${k===1}) { vec4 values = vec4( getValue(batch, xR, xC, d), initializationValue, @@ -1466,30 +1466,30 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam initializationValue ); - ${T} - } else if (${N===2}) { + ${w} + } else if (${k===2}) { vec4 values = vec4( getValue(batch, xR, xC, d), - getValue(batch, xR, xC + ${c}, d), + getValue(batch, xR, xC + ${u}, d), initializationValue, initializationValue ); - ${T} - } else if (${N===3}) { + ${w} + } else if (${k===3}) { vec4 values = vec4( getValue(batch, xR, xC, d), - getValue(batch, xR, xC + ${c}, d), - getValue(batch, xR, xC + 2 * ${c}, d), + getValue(batch, xR, xC + ${u}, d), + getValue(batch, xR, xC + 2 * ${u}, d), initializationValue ); - ${T} + ${w} } } setOutput(${x}); } - `}},nw=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,c=e.dilationDepth,u=e.dilationHeight,p=e.dilationWidth,d=e.effectiveFilterDepth,h=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;let b=t==="avg",x="0.0";if(b||(x="-1.0 / 1e-20"),n){let $=">=";this.userCode=` + `}},nw=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,c=e.dilationHeight,p=e.dilationWidth,d=e.effectiveFilterDepth,h=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;let b=t==="avg",x="0.0";if(b||(x="-1.0 / 1e-20"),n){let F=">=";this.userCode=` const ivec3 strides = ivec3(${i}, ${o}, ${l}); const ivec3 pads = ivec3(${f}, ${g}, ${y}); @@ -1511,7 +1511,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam int minMaxPosition = 0; for (int wD = 0; wD < ${d}; - wD += ${c}) { + wD += ${u}) { int xD = xDCorner + wD; if (xD < 0 || xD >= ${e.inDepth}) { @@ -1519,7 +1519,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } for (int wR = 0; wR < ${h}; - wR += ${u}) { + wR += ${c}) { int xR = xRCorner + wR; if (xR < 0 || xR >= ${e.inHeight}) { @@ -1540,7 +1540,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam // use the current value. float currMinMaxValue = mix( value, minMaxValue, minMaxValueFound); - if (value ${$} currMinMaxValue) { + if (value ${F} currMinMaxValue) { minMaxValue = value; minMaxValueFound = 1.0; minMaxPosition = ${a?r?`(((batch * ${e.inDepth} + xD) * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`((xD * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`wD * ${h} * ${m} + @@ -1551,7 +1551,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } setOutput(float(minMaxPosition)); } - `;return}let v="max",N=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(N="avgValue / count");let T=Math.floor(s/4)*4,S=s%4,A=` + `;return}let v="max",k=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(k="avgValue / count");let w=Math.floor(s/4)*4,S=s%4,A=` if (${b}) { avgValue += dot(values, ones); } else { @@ -1591,7 +1591,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam count = 0.0; for (int wD = 0; wD < ${d}; - wD += ${c}) { + wD += ${u}) { int xD = xDCorner + wD; if (xD < 0 || xD >= ${e.inDepth}) { @@ -1599,14 +1599,14 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } for (int wR = 0; wR < ${h}; - wR += ${u}) { + wR += ${c}) { int xR = xRCorner + wR; if (xR < 0 || xR >= ${e.inHeight}) { continue; } - for (int wC = 0; wC < ${T}; wC += 4) { + for (int wC = 0; wC < ${w}; wC += 4) { int xC = xCCorner + wC * ${p}; vec4 values = vec4( @@ -1619,7 +1619,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam ${A} } - int xC = xCCorner + ${T}; + int xC = xCCorner + ${w}; if (${S===1}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), @@ -1649,11 +1649,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam ${A} } } - setOutput(${N}); + setOutput(${k}); } } - `}};function DX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;fp(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,c=1;w.assert(_.eitherStridesOrDilationsAreOne(i,c),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l);if(u.filterWidth===1&&u.filterHeight===1&&w.arraysEqual(u.inShape,u.outShape))return Gn({inputs:{x:r},backend:n});let p=new bp(u,"avg",!1);return n.runWebGLProgram(p,[r],"float32")}var RX={kernelName:Ds,backendName:"webgl",kernelFunc:DX};function MX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:c}=a,u=[1,1,1],p=_.computePool3DInfo(r.shape,s,i,u,o,l,c),d=new nw(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var PX={kernelName:ac,backendName:"webgl",kernelFunc:MX},OX=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,c=o-1-e.padInfo.top,u=l-1-e.padInfo.left,p=1/(t*n);this.userCode=` - const ivec2 pads = ivec2(${c}, ${u}); + `}};function h7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;yp(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;I.assert(E.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let c=E.computePool2DInfo(r.shape,s,i,u,o,l);if(c.filterWidth===1&&c.filterHeight===1&&I.arraysEqual(c.inShape,c.outShape))return Gn({inputs:{x:r},backend:n});let p=new vp(c,"avg",!1);return n.runWebGLProgram(p,[r],"float32")}var m7={kernelName:Ds,backendName:"webgl",kernelFunc:h7};function f7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,c=[1,1,1],p=E.computePool3DInfo(r.shape,s,i,c,o,l,u),d=new nw(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var g7={kernelName:ac,backendName:"webgl",kernelFunc:f7},y7=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,u=o-1-e.padInfo.top,c=l-1-e.padInfo.left,p=1/(t*n);this.userCode=` + const ivec2 pads = ivec2(${u}, ${c}); const float avgMultiplier = float(${p}); void main() { @@ -1694,7 +1694,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } setOutput(dotProd); } - `}},LX=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,c=e.dilationWidth,u=e.effectiveFilterDepth,p=e.effectiveFilterHeight,d=e.effectiveFilterWidth,h=u-1-e.padInfo.front,m=p-1-e.padInfo.top,f=d-1-e.padInfo.left,g=1/(t*n*a);this.userCode=` + `}},b7=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,c=e.effectiveFilterDepth,p=e.effectiveFilterHeight,d=e.effectiveFilterWidth,h=c-1-e.padInfo.front,m=p-1-e.padInfo.top,f=d-1-e.padInfo.left,g=1/(t*n*a);this.userCode=` const ivec3 pads = ivec3(${h}, ${m}, ${f}); const float avgMultiplier = float(${g}); @@ -1713,7 +1713,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam // ? = to be determined. : = across all values in that axis. float dotProd = 0.0; - for (int wD = 0; wD < ${u}; + for (int wD = 0; wD < ${c}; wD += ${o}) { float dyD = float(dyDCorner + wD) / ${r}.0; @@ -1733,7 +1733,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam int idyR = int(dyR); for (int wC = 0; wC < ${d}; - wC += ${c}) { + wC += ${u}) { float dyC = float(dyCCorner + wC) / ${i}.0; if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || @@ -1750,7 +1750,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } setOutput(dotProd); } - `}};function zX(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:c,dimRoundingMode:u}=a,p=[1,1,1],d=_.computePool3DInfo(i.shape,o,l,p,c,u),h=new LX(d);return n.runWebGLProgram(h,[r],i.dtype)}var BX={kernelName:Ed,backendName:"webgl",kernelFunc:zX};function WX(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;fp([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:c}=a,u=_.computePool2DInfo(i.shape,o,l,1,c),p=new OX(u);return n.runWebGLProgram(p,[r],i.dtype)}var VX={kernelName:_d,backendName:"webgl",kernelFunc:WX};function UX(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return Qm({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var GX={kernelName:Rs,backendName:"webgl",kernelFunc:UX},HX=class{constructor(e,t,n,a,r,s){this.outputShape=[],this.variableNames=["x","mean","variance"],_.assertAndGetBroadcastShape(e,t),_.assertAndGetBroadcastShape(e,n);let i="0.0";a!=null&&(_.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";r!=null&&(_.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}};function x7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:c}=a,p=[1,1,1],d=E.computePool3DInfo(i.shape,o,l,p,u,c),h=new b7(d);return n.runWebGLProgram(h,[r],i.dtype)}var v7={kernelName:Fd,backendName:"webgl",kernelFunc:x7};function w7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;yp([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,c=E.computePool2DInfo(i.shape,o,l,1,u),p=new y7(c);return n.runWebGLProgram(p,[r],i.dtype)}var k7={kernelName:Ad,backendName:"webgl",kernelFunc:w7};function I7(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return Qm({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var N7={kernelName:Ms,backendName:"webgl",kernelFunc:I7},T7=class{constructor(e,t,n,a,r,s){this.outputShape=[],this.variableNames=["x","mean","variance"],E.assertAndGetBroadcastShape(e,t),E.assertAndGetBroadcastShape(e,n);let i="0.0";a!=null&&(E.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";r!=null&&(E.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { float x = getXAtOutCoords(); float mean = getMeanAtOutCoords(); @@ -1760,7 +1760,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam float inv = scale * inversesqrt(variance + float(${s})); setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); } - `}},jX=class{constructor(e,t,n,a,r,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],_.assertAndGetBroadcastShape(e,t),_.assertAndGetBroadcastShape(e,n);let i="vec4(0.0)";a!=null&&(_.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";r!=null&&(_.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}},S7=class{constructor(e,t,n,a,r,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],E.assertAndGetBroadcastShape(e,t),E.assertAndGetBroadcastShape(e,n);let i="vec4(0.0)";a!=null&&(E.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";r!=null&&(E.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { vec4 offset = ${i}; vec4 scale = ${o}; @@ -1773,7 +1773,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam setOutput((x - mean) * inv + offset); } - `}},qX=({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 c=[a,r,s],u=null;i!=null&&(u=i.shape,c.push(i));let p=null;o!=null&&(p=o.shape,c.push(o));let d=ee().getBool("WEBGL_PACK_NORMALIZATION")?new jX(a.shape,r.shape,s.shape,u,p,l):new HX(a.shape,r.shape,s.shape,u,p,l);return t.runWebGLProgram(d,c,c[0].dtype)},KX={kernelName:js,backendName:"webgl",kernelFunc:qX},YX=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=dt(this.rank),n=`uniform int start[${this.rank}];`,a=XX(this.rank),r,s=e.map((i,o)=>`sourceLoc.${aw[o]} = start[${o}] + coords.${aw[o]};`);r=` + `}},C7=({inputs:e,backend:t,attrs:n})=>{let{x:a,mean:r,variance:s,offset:i,scale:o}=e;I.assert(r.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),I.assert(i==null||r.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),I.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],c=null;i!=null&&(c=i.shape,u.push(i));let p=null;o!=null&&(p=o.shape,u.push(o));let d=Z().getBool("WEBGL_PACK_NORMALIZATION")?new S7(a.shape,r.shape,s.shape,c,p,l):new T7(a.shape,r.shape,s.shape,c,p,l);return t.runWebGLProgram(d,u,u[0].dtype)},A7={kernelName:js,backendName:"webgl",kernelFunc:C7},_7=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=ht(this.rank),n=`uniform int start[${this.rank}];`,a=F7(this.rank),r,s=e.map((i,o)=>`sourceLoc.${aw[o]} = start[${o}] + coords.${aw[o]};`);r=` ${t} sourceLoc; ${t} coords = getOutputCoords(); ${s.join(` @@ -1784,7 +1784,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam ${r} setOutput(getSource(${a})); } - `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}},aw=["x","y","z","w","u","v"];function XX(e){if(e===1)return"sourceLoc";if(e<=6)return aw.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var JX=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;let t=dt(this.rank),n=gn("coords",this.rank),a=gn("sourceLoc",this.rank),r=this.rank===1?"sourceLoc":`vec2(${a.slice(-2).join()})`,s=`getChannel(getSource(${a.join()}), ${r})`,i=` + `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}},aw=["x","y","z","w","u","v"];function F7(e){if(e===1)return"sourceLoc";if(e<=6)return aw.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var E7=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;let t=ht(this.rank),n=gn("coords",this.rank),a=gn("sourceLoc",this.rank),r=this.rank===1?"sourceLoc":`vec2(${a.slice(-2).join()})`,s=`getChannel(getSource(${a.join()}), ${r})`,i=` result.x = ${s}; if (++${n[this.rank-1]} < ${e[this.rank-1]}) { ++${a[this.rank-1]}; @@ -1802,7 +1802,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } } `,l=this.rank<=4?`sourceLoc = coords + - ${t}(${e.map((c,u)=>`start[${u}]`).join()});`:e.map((c,u)=>`${a[u]} = ${n[u]} + start[${u}];`).join(` + ${t}(${e.map((u,c)=>`start[${c}]`).join()});`:e.map((u,c)=>`${a[c]} = ${n[c]} + start[${c}];`).join(` `);this.userCode=` uniform int start[${this.rank}]; void main() { @@ -1814,7 +1814,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam ${o} setOutput(result); } - `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}};function QX(e,t,n,a){let r=a.texData.get(e.dataId),s=a.makeTensorInfo(n,e.dtype),i=a.texData.get(s.dataId);Object.assign(i,r),i.refCount=1,i.shape=n,i.dtype=e.dtype;let o=dn.computeFlatOffset(t,w.computeStrides(e.shape));r.slice&&(o+=r.slice.flatOffset),i.slice={flatOffset:o,origDataId:r.slice&&r.slice.origDataId||e.dataId};let l=a.dataRefCount.get(i.slice.origDataId)||1;return a.dataRefCount.set(i.slice.origDataId,l+1),s}function xp(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=dn.parseSliceParams(r,s,i);if(dn.assertParamsValid(r,o,l),w.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let p=n.texData.get(r.dataId),d=j8(p.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,d)}let{isPacked:c}=n.texData.get(r.dataId),u=dn.isSliceContinous(r.shape,o,l);if(c||!u){let p=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new JX(l):new YX(l),d=p.getCustomSetupFunc(o);return n.runWebGLProgram(p,[r],r.dtype,d)}return n.uploadToGPU(r.dataId),QX(r,o,l,n)}var ZX={kernelName:Tl,backendName:"webgl",kernelFunc:xp},eY=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;w.assert(r.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,x)=>b*x),l=_.getReshaped(r.shape,s,o),c=_.getPermuted(l.length,s.length),u=_.getReshapedPermuted(r.shape,s,o),p=_.getSliceBeginCoords(i,s.length),d=_.getSliceSize(u,i,s.length),h=[],m=ye({inputs:{x:r},backend:n,attrs:{shape:l}}),f=An({inputs:{x:m},backend:n,attrs:{perm:c}}),g=ye({inputs:{x:f},backend:n,attrs:{shape:u}}),y=xp({inputs:{x:g},backend:n,attrs:{begin:p,size:d}});return h.push(m),h.push(f),h.push(g),h.forEach(b=>n.disposeIntermediateTensorInfo(b)),y},tY={kernelName:rc,backendName:"webgl",kernelFunc:eY};function nY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.readSync(r.dataId),l=n.readSync(s.dataId),c=tS(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,c)}var aY={kernelName:Fd,backendName:"webgl",kernelFunc:nY},rY="return float(a != b);",CS=sn({opSnippet:rY,dtype:"bool"}),sY={kernelName:dl,backendName:"webgl",kernelFunc:CS};function vp(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return Gn({inputs:{x:r.complexTensorInfos.real},backend:n})}var iY={kernelName:Jd,backendName:"webgl",kernelFunc:vp},oY="return float(int(x));";function lY(e,t){let n=new gs(e.shape,oY),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function rw(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return Gn({inputs:{x:r},backend:n});let i=xt(r.shape),o=rw({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=ys({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=vp({inputs:{input:r},backend:n}),o=rw({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!w.hasEncodingLoss(r.dtype,s)){let i=Gn({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(s==="int32")return lY(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",w.getTypedArrayFromDType("bool",1)),o=CS({inputs:{a:r,b:i},backend:n});return n.disposeIntermediateTensorInfo(i),o}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var uY={kernelName:Ms,backendName:"webgl",kernelFunc:rw},_S="return ceil(x);",cY=Ke({opSnippet:_S,packedOpSnippet:_S,cpuKernelImpl:_8}),pY={kernelName:Ps,backendName:"webgl",kernelFunc:cY},dY=class{constructor(e){this.variableNames=["A"],this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}};function $7(e,t,n,a){let r=a.texData.get(e.dataId),s=a.makeTensorInfo(n,e.dtype),i=a.texData.get(s.dataId);Object.assign(i,r),i.refCount=1,i.shape=n,i.dtype=e.dtype;let o=dn.computeFlatOffset(t,I.computeStrides(e.shape));r.slice&&(o+=r.slice.flatOffset),i.slice={flatOffset:o,origDataId:r.slice&&r.slice.origDataId||e.dataId};let l=a.dataRefCount.get(i.slice.origDataId)||1;return a.dataRefCount.set(i.slice.origDataId,l+1),s}function wp(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=dn.parseSliceParams(r,s,i);if(dn.assertParamsValid(r,o,l),I.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let p=n.texData.get(r.dataId),d=SX(p.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,d)}let{isPacked:u}=n.texData.get(r.dataId),c=dn.isSliceContinous(r.shape,o,l);if(u||!c){let p=Z().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new E7(l):new _7(l),d=p.getCustomSetupFunc(o);return n.runWebGLProgram(p,[r],r.dtype,d)}return n.uploadToGPU(r.dataId),$7(r,o,l,n)}var D7={kernelName:Nl,backendName:"webgl",kernelFunc:wp},M7=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;I.assert(r.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,x)=>b*x),l=E.getReshaped(r.shape,s,o),u=E.getPermuted(l.length,s.length),c=E.getReshapedPermuted(r.shape,s,o),p=E.getSliceBeginCoords(i,s.length),d=E.getSliceSize(c,i,s.length),h=[],m=ye({inputs:{x:r},backend:n,attrs:{shape:l}}),f=En({inputs:{x:m},backend:n,attrs:{perm:u}}),g=ye({inputs:{x:f},backend:n,attrs:{shape:c}}),y=wp({inputs:{x:g},backend:n,attrs:{begin:p,size:d}});return h.push(m),h.push(f),h.push(g),h.forEach(b=>n.disposeIntermediateTensorInfo(b)),y},R7={kernelName:rc,backendName:"webgl",kernelFunc:M7};function P7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.readSync(r.dataId),l=n.readSync(s.dataId),u=iT(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var O7={kernelName:_d,backendName:"webgl",kernelFunc:P7},L7="return float(a != b);",$T=on({opSnippet:L7,dtype:"bool"}),z7={kernelName:dl,backendName:"webgl",kernelFunc:$T};function kp(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return Gn({inputs:{x:r.complexTensorInfos.real},backend:n})}var W7={kernelName:Jd,backendName:"webgl",kernelFunc:kp},B7="return float(int(x));";function V7(e,t){let n=new gs(e.shape,B7),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function rw(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return Gn({inputs:{x:r},backend:n});let i=vt(r.shape),o=rw({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=ys({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=kp({inputs:{input:r},backend:n}),o=rw({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!I.hasEncodingLoss(r.dtype,s)){let i=Gn({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(s==="int32")return V7(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",I.getTypedArrayFromDType("bool",1)),o=$T({inputs:{a:r,b:i},backend:n});return n.disposeIntermediateTensorInfo(i),o}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var U7={kernelName:Rs,backendName:"webgl",kernelFunc:rw},DT="return ceil(x);",G7=Xe({opSnippet:DT,packedOpSnippet:DT,cpuKernelImpl:lX}),H7={kernelName:Ps,backendName:"webgl",kernelFunc:G7},j7=class{constructor(e){this.variableNames=["A"],this.outputShape=e,this.userCode=` uniform float minVal; uniform float maxVal; @@ -1827,7 +1827,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam setOutput(clamp(value, minVal, maxVal)); } - `}getCustomSetupFunc(e,t){return(n,a)=>{this.minLoc==null&&(this.minLoc=n.getUniformLocationNoThrow(a,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(a,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}},hY=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e,t){return(n,a)=>{this.minLoc==null&&(this.minLoc=n.getUniformLocationNoThrow(a,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(a,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}},q7=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` uniform float minVal; uniform float maxVal; @@ -1841,7 +1841,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } - `}getCustomSetupFunc(e,t){return(n,a)=>{this.minLoc==null&&(this.minLoc=n.getUniformLocationNoThrow(a,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(a,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}};function mY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;ee().getBool("WEBGL_PACK_CLIP")?o=new hY(r.shape):o=new dY(r.shape);let l=o.getCustomSetupFunc(s,i);return n.runWebGLProgram(o,[r],r.dtype,l)}var fY={kernelName:jr,backendName:"webgl",kernelFunc:mY},gY=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e,t){return(n,a)=>{this.minLoc==null&&(this.minLoc=n.getUniformLocationNoThrow(a,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(a,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}};function X7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;Z().getBool("WEBGL_PACK_CLIP")?o=new q7(r.shape):o=new j7(r.shape);let l=o.getCustomSetupFunc(s,i);return n.runWebGLProgram(o,[r],r.dtype,l)}var K7={kernelName:jr,backendName:"webgl",kernelFunc:X7},Y7=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); @@ -1854,7 +1854,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } - `}};function ES(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}function yY(e){let{inputs:t,backend:n}=e,{x:a}=t,r=n.texData.get(a.dataId),s=new gY(a.shape),i=[ES(a,r.complexTensorInfos.real),ES(a,r.complexTensorInfos.imag)];return n.runWebGLProgram(s,i,i[0].dtype)}var bY={kernelName:sc,backendName:"webgl",kernelFunc:yY},xY=class{constructor(e){this.outputShape=[],this.outputShape=_.computeOutShape(e,1),this.variableNames=e.map((s,i)=>`T${i}`);let t=new Array(e.length-1);t[0]=e[0][1];for(let s=1;s`T${i}`);let t=new Array(e.length-1);t[0]=e[0][1];for(let s=1;s`T${f}`);let o=new Array(e.length-1);o[0]=e[0][t];for(let m=1;m`T${f}`);let o=new Array(e.length-1);o[0]=e[0][t];for(let m=1;m= ${o[m-1]}) { return getChannel( getT${m}(${ef(i,l,f)}), - vec2(${ef(c,l,f)})); + vec2(${ef(u,l,f)})); }`}let d=o.length,h=o[o.length-1];p+=` return getChannel( getT${d}(${ef(i,l,h)}), - vec2(${ef(c,l,h)}));`,this.userCode=` + vec2(${ef(u,l,h)}));`,this.userCode=` float getValue(${i.map(m=>"int "+m)}) { ${p} } @@ -1900,7 +1900,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } setOutput(result); } - `}};function ef(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function tf(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return Gn({inputs:{x:r.complexTensorInfos.imag},backend:n})}var wY={kernelName:Gd,backendName:"webgl",kernelFunc:tf};function ku(e,t,n){let a=e[0].dtype;if(a==="complex64"){let c=e.map(m=>vp({inputs:{input:m},backend:n})),u=e.map(m=>tf({inputs:{input:m},backend:n})),p=ku(c,t,n),d=ku(u,t,n),h=ys({inputs:{real:p,imag:d},backend:n});return c.forEach(m=>n.disposeIntermediateTensorInfo(m)),u.forEach(m=>n.disposeIntermediateTensorInfo(m)),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),h}if(a==="string"){let{tensors2D:c,outShape:u}=FS(e,t,n),p=c.map(g=>({vals:n.readSync(g.dataId),shape:g.shape})),d=c[0].shape[0]===1,h=E8(p,u,a,d),m=_.computeOutShape(e.map(g=>g.shape),t),f=n.makeTensorInfo(m,a,h);return c.forEach(g=>n.disposeIntermediateTensorInfo(g)),f}if(e.length>ee().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let c=Math.floor(e.length/2),u=ku(e.slice(0,c),t,n),p=ku(e.slice(c),t,n),d=ku([u,p],t,n);return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),d}if(ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].shape.length>1){let c=new vY(e.map(u=>u.shape),t);return n.runWebGLProgram(c,e,a)}let{tensors2D:r,outShape:s}=FS(e,t,n),i=new xY(r.map(c=>c.shape)),o=n.runWebGLProgram(i,r,a);r.forEach(c=>n.disposeIntermediateTensorInfo(c));let l=ye({inputs:{x:o},attrs:{shape:s},backend:n});return n.disposeIntermediateTensorInfo(o),l}function FS(e,t,n){let a=_.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>ye({inputs:{x:r},attrs:{shape:[-1,w.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function AS(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=w.parseAxisParam(r,t[0].shape)[0],i=_.computeOutShape(t.map(c=>c.shape),s);if(w.sizeFromShape(i)===0)return n.makeTensorInfo(i,t[0].dtype,[]);let o=t.filter(c=>w.sizeFromShape(c.shape)>0);if(o.length===1)return Gn({inputs:{x:o[0]},backend:n});let l=o.map(c=>c.shape);return _.assertParamsConsistent(l,s),ku(o,s,n)}var kY={kernelName:Go,backendName:"webgl",kernelFunc:AS},$S=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,c=e.dilationHeight,u=e.dilationWidth,p=e.filterHeight,d=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4,f=e.dataFormat==="channelsLast",g=f?1:2,y=f?2:3,b=f?3:1,x="",v="";n&&(a?x=`float activation(float a) { + `}};function ef(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function tf(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return Gn({inputs:{x:r.complexTensorInfos.imag},backend:n})}var tY={kernelName:Gd,backendName:"webgl",kernelFunc:tf};function ku(e,t,n){let a=e[0].dtype;if(a==="complex64"){let u=e.map(m=>kp({inputs:{input:m},backend:n})),c=e.map(m=>tf({inputs:{input:m},backend:n})),p=ku(u,t,n),d=ku(c,t,n),h=ys({inputs:{real:p,imag:d},backend:n});return u.forEach(m=>n.disposeIntermediateTensorInfo(m)),c.forEach(m=>n.disposeIntermediateTensorInfo(m)),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),h}if(a==="string"){let{tensors2D:u,outShape:c}=RT(e,t,n),p=u.map(g=>({vals:n.readSync(g.dataId),shape:g.shape})),d=u[0].shape[0]===1,h=uX(p,c,a,d),m=E.computeOutShape(e.map(g=>g.shape),t),f=n.makeTensorInfo(m,a,h);return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),f}if(e.length>Z().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let u=Math.floor(e.length/2),c=ku(e.slice(0,u),t,n),p=ku(e.slice(u),t,n),d=ku([c,p],t,n);return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(p),d}if(Z().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].shape.length>1){let u=new eY(e.map(c=>c.shape),t);return n.runWebGLProgram(u,e,a)}let{tensors2D:r,outShape:s}=RT(e,t,n),i=new Z7(r.map(u=>u.shape)),o=n.runWebGLProgram(i,r,a);r.forEach(u=>n.disposeIntermediateTensorInfo(u));let l=ye({inputs:{x:o},attrs:{shape:s},backend:n});return n.disposeIntermediateTensorInfo(o),l}function RT(e,t,n){let a=E.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>ye({inputs:{x:r},attrs:{shape:[-1,I.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function PT(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=I.parseAxisParam(r,t[0].shape)[0],i=E.computeOutShape(t.map(u=>u.shape),s);if(I.sizeFromShape(i)===0)return n.makeTensorInfo(i,t[0].dtype,[]);let o=t.filter(u=>I.sizeFromShape(u.shape)>0);if(o.length===1)return Gn({inputs:{x:o[0]},backend:n});let l=o.map(u=>u.shape);return E.assertParamsConsistent(l,s),ku(o,s,n)}var nY={kernelName:Go,backendName:"webgl",kernelFunc:PT},OT=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,u=e.dilationHeight,c=e.dilationWidth,p=e.filterHeight,d=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4,f=e.dataFormat==="channelsLast",g=f?1:2,y=f?2:3,b=f?3:1,x="",v="";n&&(a?x=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?x=`float activation(float a) { @@ -1910,7 +1910,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam float activation(float x) { ${n} } - `,v="result = activation(result);");let N=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),a&&this.variableNames.push("preluActivationWeights"),r&&this.variableNames.push("leakyreluAlpha"),this.userCode=` + `,v="result = activation(result);");let k=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),a&&this.variableNames.push("preluActivationWeights"),r&&this.variableNames.push("leakyreluAlpha"),this.userCode=` ${x} const ivec2 strides = ivec2(${o}, ${l}); @@ -1930,14 +1930,14 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam // ? = to be determined. : = across all values in that axis. float dotProd = 0.0; for (int wR = 0; wR < ${p}; wR++) { - int xR = xRCorner + wR * ${c}; + int xR = xRCorner + wR * ${u}; if (xR < 0 || xR >= ${e.inHeight}) { continue; } for (int wC = 0; wC < ${d}; wC++) { - int xC = xCCorner + wC * ${u}; + int xC = xCCorner + wC * ${c}; if (xC < 0 || xC >= ${e.inWidth}) { continue; @@ -2030,11 +2030,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } float result = dotProd; - ${N} + ${k} ${v} setOutput(result); } - `}},IY=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,n=e.padInfo.top,a=e.padInfo.left,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,c=e.dilationWidth,u=e.filterDepth,p=e.filterHeight,d=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` + `}},aY=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,n=e.padInfo.top,a=e.padInfo.left,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,c=e.filterDepth,p=e.filterHeight,d=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` const ivec3 strides = ivec3(${r}, ${s}, ${i}); const ivec3 pads = ivec3(${t}, ${n}, ${a}); @@ -2052,7 +2052,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam // y(yF, yR, yC, d2). ? = to be determined. : = across all // values in that axis. float dotProd = 0.0; - for (int wF = 0; wF < ${u}; wF++) { + for (int wF = 0; wF < ${c}; wF++) { int xF = xFCorner + wF * ${o}; if (xF < 0 || xF >= ${e.inDepth}) { @@ -2067,7 +2067,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } for (int wC = 0; wC < ${d}; wC++) { - int xC = xCCorner + wC * ${c}; + int xC = xCCorner + wC * ${u}; if (xC < 0 || xC >= ${e.inWidth}) { continue; @@ -2122,18 +2122,18 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } setOutput(dotProd); } - `}},TY=class{constructor(e,t,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let{filterWidth:a,inChannels:r,strideWidth:s,strideHeight:i,padInfo:o,outWidth:l,dilationWidth:c,dilationHeight:u,dataFormat:p}=n,{left:d,top:h}=o,m=r*a,f=fn(),g=p==="channelsLast",y=g?0:1,b=g?1:2,x="";for(let v=0;v<=1;v++)for(let N=0;N<=1;N++)x+=` - blockIndex = rc.y + ${N}; + `}},rY=class{constructor(e,t,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let{filterWidth:a,inChannels:r,strideWidth:s,strideHeight:i,padInfo:o,outWidth:l,dilationWidth:u,dilationHeight:c,dataFormat:p}=n,{left:d,top:h}=o,m=r*a,f=fn(),g=p==="channelsLast",y=g?0:1,b=g?1:2,x="";for(let v=0;v<=1;v++)for(let k=0;k<=1;k++)x+=` + blockIndex = rc.y + ${k}; pos = rc.x + ${v}; if(blockIndex < ${e[1]} && pos < ${e[0]}) { offsetY = int(blockIndex / (${l})) * ${i} - ${h}; - d0 = offsetY + ${u} * (pos / ${m}); + d0 = offsetY + ${c} * (pos / ${m}); if(d0 < ${t[y]} && d0 >= 0) { offsetX = int(mod(float(blockIndex), ${l}.) * ${s}. - ${d}.); - d1 = offsetX + ${c} * (int(mod(float(pos), ${m}.) / ${r}.)); + d1 = offsetX + ${u} * (int(mod(float(pos), ${m}.) / ${r}.)); if(d1 < ${t[b]} && d1 >= 0) { @@ -2141,12 +2141,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam if (${g}) { innerDims = vec2(d1, ch); - result[${v*2+N}] = getChannel( + result[${v*2+k}] = getChannel( getA(d0, int(innerDims.x), int(innerDims.y)), innerDims); } else { innerDims = vec2(d0, d1); - result[${v*2+N}] = getChannel( + result[${v*2+k}] = getChannel( getA(ch, int(innerDims.x), int(innerDims.y)), innerDims); } @@ -2166,7 +2166,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam ${f.output} = result; } - `}};function DS({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let l=e.shape,c=a.texData.get(e.dataId),u=n.inChannels,p=l[0]*l[1]*l[2],d=n.outChannels,h=n.dataFormat==="channelsLast",m=!1,f=!1,g,y=[],b=(p===1||d===1)&&u>wS,x=l[2]%2!=0&&!!c.isPacked;if(b||!ee().getBool("WEBGL_LAZILY_UNPACK")||!ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!x){let v=h?l[0]*l[1]*l[2]:l[0]*l[2]*l[3],N=ye({inputs:{x:e},backend:a,attrs:{shape:[1,v,n.inChannels]}}),T=ye({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),S=Qm({a:N,b:T,transposeA:m,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=ye({inputs:{x:S},backend:a,attrs:{shape:n.outShape}}),y.push(N),y.push(T),y.push(S)}else{let v=h?l[0]*l[1]*(l[2]+1):l[0]*l[2]*(l[3]+1),N={dataId:e.dataId,shape:[1,v,n.inChannels],dtype:e.dtype},T=c.shape;c.shape=c.shape.slice(),c.shape[c.shape.length-2]++,w.assert(qm(c.shape,N.shape),()=>`packed reshape ${c.shape} to ${N.shape} isn't free`);let S=ye({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});y.push(S);let A=Qm({a:N,b:S,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),$=a.texData.get(A.dataId);w.assert($.isPacked,()=>"batchMatMul result is expected to be packed"),c.shape=T,$.shape=n.outShape,g=Gn({inputs:{x:A},backend:a}),g.shape=n.outShape,y.push(A)}for(let v of y)a.disposeIntermediateTensorInfo(v);return g}function RS({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let{filterWidth:l,filterHeight:c,inChannels:u,outWidth:p,outHeight:d,dataFormat:h}=n,m=h==="channelsLast",f=l*c*u,g=d*p,y=[f,g],b=!0,x=!1,v=[],N=ye({inputs:{x:e},backend:a,attrs:{shape:e.shape.slice(1)}}),T=ye({inputs:{x:t},backend:a,attrs:{shape:[1,f,w.sizeFromShape(t.shape)/f]}});v.push(N),v.push(T);let S=new TY(y,N.shape,n),A=a.runWebGLProgram(S,[N],"float32"),$=ye({inputs:{x:A},backend:a,attrs:{shape:[1,y[0],y[1]]}});v.push(A),v.push($);let R=r!=null,B=s!=null,V=o==="leakyrelu",W=o?Ym(o,!0):null,G=new fS($.shape,T.shape,[1,g,n.outChannels],b,x,R,W,B,V),H=[$,T];if(r&&H.push(r),B&&H.push(s),V){let Q=a.makeTensorInfo([],"float32",w.createScalarValue(i,"float32"));H.push(Q),v.push(Q)}let X=a.runWebGLProgram(G,H,"float32"),q=m?[1,d,p,n.outChannels]:[1,n.outChannels,d,p],te=ye({inputs:{x:X},backend:a,attrs:{shape:q}});v.push(X);for(let Q of v)a.disposeIntermediateTensorInfo(Q);return te}function NY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:c,dimRoundingMode:u}=a,p=_.convertConv2DDataFormat(l),d=_.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!1,p),h;if(d.filterHeight===1&&d.filterWidth===1&&d.dilationHeight===1&&d.dilationWidth===1&&d.strideHeight===1&&d.strideWidth===1&&(d.padInfo.type==="SAME"||d.padInfo.type==="VALID"))h=DS({x:r,filter:s,convInfo:d,backend:n});else if(ee().getBool("WEBGL_CONV_IM2COL")&&r.shape[0]===1)h=RS({x:r,filter:s,convInfo:d,backend:n});else{let f=new $S(d);h=n.runWebGLProgram(f,[r,s],"float32")}let m=ye({inputs:{x:h},backend:n,attrs:{shape:d.outShape}});return n.disposeIntermediateTensorInfo(h),m}var SY={kernelName:Os,backendName:"webgl",kernelFunc:NY},CY=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.dataFormat==="channelsLast";this.userCode=` + `}};function LT({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let l=e.shape,u=a.texData.get(e.dataId),c=n.inChannels,p=l[0]*l[1]*l[2],d=n.outChannels,h=n.dataFormat==="channelsLast",m=!1,f=!1,g,y=[],b=(p===1||d===1)&&c>ST,x=l[2]%2!=0&&!!u.isPacked;if(b||!Z().getBool("WEBGL_LAZILY_UNPACK")||!Z().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!x){let v=h?l[0]*l[1]*l[2]:l[0]*l[2]*l[3],k=ye({inputs:{x:e},backend:a,attrs:{shape:[1,v,n.inChannels]}}),w=ye({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),S=Qm({a:k,b:w,transposeA:m,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=ye({inputs:{x:S},backend:a,attrs:{shape:n.outShape}}),y.push(k),y.push(w),y.push(S)}else{let v=h?l[0]*l[1]*(l[2]+1):l[0]*l[2]*(l[3]+1),k={dataId:e.dataId,shape:[1,v,n.inChannels],dtype:e.dtype},w=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,I.assert(qm(u.shape,k.shape),()=>`packed reshape ${u.shape} to ${k.shape} isn't free`);let S=ye({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});y.push(S);let A=Qm({a:k,b:S,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),F=a.texData.get(A.dataId);I.assert(F.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=w,F.shape=n.outShape,g=Gn({inputs:{x:A},backend:a}),g.shape=n.outShape,y.push(A)}for(let v of y)a.disposeIntermediateTensorInfo(v);return g}function zT({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let{filterWidth:l,filterHeight:u,inChannels:c,outWidth:p,outHeight:d,dataFormat:h}=n,m=h==="channelsLast",f=l*u*c,g=d*p,y=[f,g],b=!0,x=!1,v=[],k=ye({inputs:{x:e},backend:a,attrs:{shape:e.shape.slice(1)}}),w=ye({inputs:{x:t},backend:a,attrs:{shape:[1,f,I.sizeFromShape(t.shape)/f]}});v.push(k),v.push(w);let S=new rY(y,k.shape,n),A=a.runWebGLProgram(S,[k],"float32"),F=ye({inputs:{x:A},backend:a,attrs:{shape:[1,y[0],y[1]]}});v.push(A),v.push(F);let D=r!=null,R=s!=null,L=o==="leakyrelu",W=o?Ym(o,!0):null,U=new vT(F.shape,w.shape,[1,g,n.outChannels],b,x,D,W,R,L),G=[F,w];if(r&&G.push(r),R&&G.push(s),L){let Q=a.makeTensorInfo([],"float32",I.createScalarValue(i,"float32"));G.push(Q),v.push(Q)}let X=a.runWebGLProgram(U,G,"float32"),j=m?[1,d,p,n.outChannels]:[1,n.outChannels,d,p],te=ye({inputs:{x:X},backend:a,attrs:{shape:j}});v.push(X);for(let Q of v)a.disposeIntermediateTensorInfo(Q);return te}function sY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:c}=a,p=E.convertConv2DDataFormat(l),d=E.computeConv2DInfo(r.shape,s.shape,i,u,o,c,!1,p),h;if(d.filterHeight===1&&d.filterWidth===1&&d.dilationHeight===1&&d.dilationWidth===1&&d.strideHeight===1&&d.strideWidth===1&&(d.padInfo.type==="SAME"||d.padInfo.type==="VALID"))h=LT({x:r,filter:s,convInfo:d,backend:n});else if(Z().getBool("WEBGL_CONV_IM2COL")&&r.shape[0]===1)h=zT({x:r,filter:s,convInfo:d,backend:n});else{let f=new OT(d);h=n.runWebGLProgram(f,[r,s],"float32")}let m=ye({inputs:{x:h},backend:n,attrs:{shape:d.outShape}});return n.disposeIntermediateTensorInfo(h),m}var iY={kernelName:Os,backendName:"webgl",kernelFunc:sY},oY=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.dataFormat==="channelsLast";this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -2208,15 +2208,15 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } setOutput(dotProd); } - `}},_Y=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dataFormat==="channelsLast",i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=s?1:2,c=s?2:3,u=s?3:1;this.userCode=` + `}},lY=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dataFormat==="channelsLast",i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=s?1:2,u=s?2:3,c=s?3:1;this.userCode=` const ivec2 pads = ivec2(${i}, ${o}); void main() { ivec4 coords = getOutputCoords(); int batch = coords[0]; - int d1 = coords[${u}]; + int d1 = coords[${c}]; - ivec2 dyCorner = ivec2(coords[${l}], coords[${c}]) - pads; + ivec2 dyCorner = ivec2(coords[${l}], coords[${u}]) - pads; int dyRCorner = dyCorner.x; int dyCCorner = dyCorner.y; @@ -2261,7 +2261,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } setOutput(dotProd); } - `}},EY=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.padInfo.front,s=e.padInfo.top,i=e.padInfo.left;this.userCode=` + `}},uY=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.padInfo.front,s=e.padInfo.top,i=e.padInfo.left;this.userCode=` void main() { ivec5 coords = getOutputCoords(); int wF = coords.x; @@ -2303,8 +2303,8 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } setOutput(dotProd); } - `}},FY=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,c=a-1-e.padInfo.left;this.userCode=` - const ivec3 pads = ivec3(${o}, ${l}, ${c}); + `}},cY=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,u=a-1-e.padInfo.left;this.userCode=` + const ivec3 pads = ivec3(${o}, ${l}, ${u}); void main() { ivec5 coords = getOutputCoords(); @@ -2360,12 +2360,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } setOutput(dotProd); } - `}};function AY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:c,filterShape:u}=a,p=_.convertConv2DDataFormat(l),d=_.computeConv2DInfo(r.shape,u,i,1,o,c,!1,p),h=new CY(d);return n.runWebGLProgram(h,[r,s],"float32")}var $Y={kernelName:$d,backendName:"webgl",kernelFunc:AY};function DY(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:c,dimRoundingMode:u}=a,p=_.convertConv2DDataFormat(c),d=_.computeConv2DInfo(i,s.shape,o,1,l,u,!1,p),h=new _Y(d);return n.runWebGLProgram(h,[r,s],"float32")}var RY={kernelName:Ls,backendName:"webgl",kernelFunc:DY};function MY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,c=_.computeConv3DInfo(r.shape,s.shape,i,l,o),u=new IY(c);return n.runWebGLProgram(u,[r,s],"float32")}var PY={kernelName:ic,backendName:"webgl",kernelFunc:MY};function OY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,filterShape:l}=a,c=_.computeConv3DInfo(r.shape,l,i,1,o),u=new EY(c);return n.runWebGLProgram(u,[r,s],"float32")}var LY={kernelName:Dd,backendName:"webgl",kernelFunc:OY};function zY(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{pad:i,strides:o,inputShape:l}=a,c=_.computeConv3DInfo(l,s.shape,o,1,i),u=new FY(c);return n.runWebGLProgram(u,[r,s],"float32")}var BY={kernelName:Rd,backendName:"webgl",kernelFunc:zY},WY=mS+` + `}};function pY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:u,filterShape:c}=a,p=E.convertConv2DDataFormat(l),d=E.computeConv2DInfo(r.shape,c,i,1,o,u,!1,p),h=new oY(d);return n.runWebGLProgram(h,[r,s],"float32")}var dY={kernelName:$d,backendName:"webgl",kernelFunc:pY};function hY(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:u,dimRoundingMode:c}=a,p=E.convertConv2DDataFormat(u),d=E.computeConv2DInfo(i,s.shape,o,1,l,c,!1,p),h=new lY(d);return n.runWebGLProgram(h,[r,s],"float32")}var mY={kernelName:Ls,backendName:"webgl",kernelFunc:hY};function fY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=E.computeConv3DInfo(r.shape,s.shape,i,l,o),c=new aY(u);return n.runWebGLProgram(c,[r,s],"float32")}var gY={kernelName:ic,backendName:"webgl",kernelFunc:fY};function yY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,filterShape:l}=a,u=E.computeConv3DInfo(r.shape,l,i,1,o),c=new uY(u);return n.runWebGLProgram(c,[r,s],"float32")}var bY={kernelName:Dd,backendName:"webgl",kernelFunc:yY};function xY(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{pad:i,strides:o,inputShape:l}=a,u=E.computeConv3DInfo(l,s.shape,o,1,i),c=new cY(u);return n.runWebGLProgram(c,[r,s],"float32")}var vY={kernelName:Md,backendName:"webgl",kernelFunc:xY},wY=xT+` return cos(x); -`,VY=Ke({opSnippet:WY}),UY={kernelName:zs,backendName:"webgl",kernelFunc:VY},GY=` +`,kY=Xe({opSnippet:wY}),IY={kernelName:zs,backendName:"webgl",kernelFunc:kY},NY=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; -`,HY=Ke({opSnippet:GY}),jY={kernelName:Ho,backendName:"webgl",kernelFunc:HY},qY=class{constructor(e,t,n,a,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[s,i,o,l]=e,[c]=t,[u,p]=n;this.outputShape=[c,u,p,l];let d=a==="bilinear"?1:0,[h,m]=[`${i-1}.0`,`${o-1}.0`],[f,g,y]=u>1?[`${(i-1)/(u-1)}`,"(y2-y1) * height_ratio",`y1*${h} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${h}`],[b,x,v]=p>1?[`${(o-1)/(p-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` +`,TY=Xe({opSnippet:NY}),SY={kernelName:Ho,backendName:"webgl",kernelFunc:TY},CY=class{constructor(e,t,n,a,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[s,i,o,l]=e,[u]=t,[c,p]=n;this.outputShape=[u,c,p,l];let d=a==="bilinear"?1:0,[h,m]=[`${i-1}.0`,`${o-1}.0`],[f,g,y]=c>1?[`${(i-1)/(c-1)}`,"(y2-y1) * height_ratio",`y1*${h} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${h}`],[b,x,v]=p>1?[`${(o-1)/(p-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` const float height_ratio = float(${f}); const float width_ratio = float(${b}); void main() { @@ -2426,21 +2426,21 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam setOutput(newValue); } } - `}},KY=e=>{let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:c}=a,u=new qY(r.shape,s.shape,o,l,c);return n.runWebGLProgram(u,[r,s,i],"float32")},XY={kernelName:jo,backendName:"webgl",kernelFunc:KY},OS=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=e;let a=e.length,r=t?"0.0":`getX(${MS(a,"coords")})`,s=e[e.length-1],i="",o="";t?(i=n?`end != ${s-1}`:"end != 0",o=n?"end + 1":"end - 1"):(i=n?`end + pow2 < ${s}`:"end >= pow2",o=n?"end + pow2":"end - pow2"),this.userCode=` + `}},AY=e=>{let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,c=new CY(r.shape,s.shape,o,l,u);return n.runWebGLProgram(c,[r,s,i],"float32")},FY={kernelName:jo,backendName:"webgl",kernelFunc:AY},VT=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=e;let a=e.length,r=t?"0.0":`getX(${WT(a,"coords")})`,s=e[e.length-1],i="",o="";t?(i=n?`end != ${s-1}`:"end != 0",o=n?"end + 1":"end - 1"):(i=n?`end + pow2 < ${s}`:"end >= pow2",o=n?"end + pow2":"end - pow2"),this.userCode=` uniform float index; void main() { - ${dt(a)} coords = getOutputCoords(); - int end = ${PS(a,"coords")}; + ${ht(a)} coords = getOutputCoords(); + int end = ${BT(a,"coords")}; float val = ${r}; int pow2 = int(pow(2.0, index)); if (${i}) { int idx = ${o}; - ${PS(a,"coords")} = idx; - val += getX(${MS(a,"coords")}); + ${BT(a,"coords")} = idx; + val += getX(${WT(a,"coords")}); } setOutput(val); } - `}getCustomSetupFunc(e){return(t,n)=>{this.index==null&&(this.index=t.getUniformLocation(n,"index")),t.gl.uniform1f(this.index,e)}}};function MS(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.x, ${t}.y`;if(e===3)return`${t}.x, ${t}.y, ${t}.z`;if(e===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function PS(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function YY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length,c=_.getAxesPermutation([s],l),u=r;c!=null&&(u=An({inputs:{x:r},backend:n,attrs:{perm:c}}));let p=_.getInnerMostAxes(1,l)[0];if(p!==l-1)throw new Error(`WebGL cumsum shader expects an inner-most axis=${r.shape.length-1} but got axis=${s}`);let d=u.shape[p],h=Gn({inputs:{x:u},backend:n});for(let m=0;m<=Math.ceil(Math.log2(d))-1;m++){let f=new OS(u.shape,!1,o),g=f.getCustomSetupFunc(m),y=h;h=n.runWebGLProgram(f,[h],h.dtype,g),n.disposeIntermediateTensorInfo(y)}if(i){let m=new OS(u.shape,i,o),f=h;h=n.runWebGLProgram(m,[h],h.dtype),n.disposeIntermediateTensorInfo(f)}if(c!=null){let m=_.getUndoAxesPermutation(c),f=An({inputs:{x:h},backend:n,attrs:{perm:m}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(u),f}return h}var JY={kernelName:Bs,backendName:"webgl",kernelFunc:YY};function QY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i,binaryOutput:o}=a;if(r.shape.length===1){let l=n.readSync(r.dataId),c=n.readSync(s.dataId),u=tS(l,c,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}else if(r.shape.length===2){let l=n.bufferSync(r),c=n.bufferSync(s),u=C8(l,c,i,o);return n.makeTensorInfo(u.shape,s.dtype,u.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${r.shape.length}.`)}var ZY={kernelName:Md,backendName:"webgl",kernelFunc:QY},e7=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=` + `}getCustomSetupFunc(e){return(t,n)=>{this.index==null&&(this.index=t.getUniformLocation(n,"index")),t.gl.uniform1f(this.index,e)}}};function WT(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.x, ${t}.y`;if(e===3)return`${t}.x, ${t}.y, ${t}.z`;if(e===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function BT(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function _Y(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length,u=E.getAxesPermutation([s],l),c=r;u!=null&&(c=En({inputs:{x:r},backend:n,attrs:{perm:u}}));let p=E.getInnerMostAxes(1,l)[0];if(p!==l-1)throw new Error(`WebGL cumsum shader expects an inner-most axis=${r.shape.length-1} but got axis=${s}`);let d=c.shape[p],h=Gn({inputs:{x:c},backend:n});for(let m=0;m<=Math.ceil(Math.log2(d))-1;m++){let f=new VT(c.shape,!1,o),g=f.getCustomSetupFunc(m),y=h;h=n.runWebGLProgram(f,[h],h.dtype,g),n.disposeIntermediateTensorInfo(y)}if(i){let m=new VT(c.shape,i,o),f=h;h=n.runWebGLProgram(m,[h],h.dtype),n.disposeIntermediateTensorInfo(f)}if(u!=null){let m=E.getUndoAxesPermutation(u),f=En({inputs:{x:h},backend:n,attrs:{perm:m}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(c),f}return h}var EY={kernelName:Ws,backendName:"webgl",kernelFunc:_Y};function $Y(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i,binaryOutput:o}=a;if(r.shape.length===1){let l=n.readSync(r.dataId),u=n.readSync(s.dataId),c=iT(l,u,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,c)}else if(r.shape.length===2){let l=n.bufferSync(r),u=n.bufferSync(s),c=oX(l,u,i,o);return n.makeTensorInfo(c.shape,s.dtype,c.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${r.shape.length}.`)}var DY={kernelName:Rd,backendName:"webgl",kernelFunc:$Y},MY=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -2459,7 +2459,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam float result = ${this.getInputSamplingString()}; setOutput(result); } - `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}};function t7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockSize:s,dataFormat:i}=a;w.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],c=i==="NHWC"?r.shape[2]:r.shape[3],u=i==="NHWC"?r.shape[3]:r.shape[1],p=l*s,d=c*s,h=u/(s*s),m=i==="NHWC"?[o,p,d,h]:[o,h,p,d],f=new e7(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var n7={kernelName:qo,backendName:"webgl",kernelFunc:t7},LS=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.inHeight,i=e.inWidth,o=e.padInfo.top,l=e.padInfo.left,c=e.strideHeight,u=e.strideWidth,p=e.dilationHeight,d=e.dilationWidth,h=e.filterHeight,m=e.filterWidth,f=e.outChannels/e.inChannels,g="",y="";n&&(a?g=`float activation(float a) { + `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}};function RY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockSize:s,dataFormat:i}=a;I.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],c=i==="NHWC"?r.shape[3]:r.shape[1],p=l*s,d=u*s,h=c/(s*s),m=i==="NHWC"?[o,p,d,h]:[o,h,p,d],f=new MY(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var PY={kernelName:qo,backendName:"webgl",kernelFunc:RY},UT=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.inHeight,i=e.inWidth,o=e.padInfo.top,l=e.padInfo.left,u=e.strideHeight,c=e.strideWidth,p=e.dilationHeight,d=e.dilationWidth,h=e.filterHeight,m=e.filterWidth,f=e.outChannels/e.inChannels,g="",y="";n&&(a?g=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?g=`float activation(float a) { @@ -2472,7 +2472,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam `,y="result = activation(result);");let b=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),a&&this.variableNames.push("preluActivationWeights"),r&&this.variableNames.push("leakyreluAlpha"),this.userCode=` ${g} - const ivec2 strides = ivec2(${c}, ${u}); + const ivec2 strides = ivec2(${u}, ${c}); const ivec2 pads = ivec2(${o}, ${l}); void main() { @@ -2515,24 +2515,24 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam ${y} setOutput(result); } - `}},zS=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.outShape;let s=e.inHeight,i=e.inWidth,o=e.padInfo.top,l=e.padInfo.left,c=e.strideHeight,u=e.strideWidth,p=e.dilationHeight,d=e.dilationWidth,h=e.filterHeight,m=e.filterWidth,f=m,g="int xR; int xC; int xCOffset;";for(let v=0;v= 0 && xR < ${s} && xCOffset >= 0 && xCOffset < ${i}) { - xTexelR${v}C${T} = getX(batch, xR, xCOffset, d1); + xTexelR${v}C${w} = getX(batch, xR, xCOffset, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if(xCOffset + 1 >= ${i}) { - xTexelR${v}C${T}.zw = vec2(0.); + xTexelR${v}C${w}.zw = vec2(0.); } } else { - xTexelR${v}C${T} = vec4(0.); + xTexelR${v}C${w} = vec4(0.); } xCOffset = xC + 1 - 2; @@ -2545,96 +2545,96 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam previous.zw = vec2(0.); } - xR${v}C${T} = vec4(previous.zw, xTexelR${v}C${T}.xy); + xR${v}C${w} = vec4(previous.zw, xTexelR${v}C${w}.xy); } else { - xR${v}C${T} = vec4(0, 0, xTexelR${v}C${T}.xy); + xR${v}C${w} = vec4(0, 0, xTexelR${v}C${w}.xy); } `:g+=` if(xR >= 0 && xR < ${s} && xC >= 0 && xC < ${i}) { - xTexelR${v}C${T} = getX(batch, xR, xC, d1); + xTexelR${v}C${w} = getX(batch, xR, xC, d1); } else { - xTexelR${v}C${T} = vec4(0.); + xTexelR${v}C${w} = vec4(0.); } - xR${v}C${T} = xTexelR${v}C${T}; - `,T+1= 0 && xR < ${s} && xCOffset >= 0 && xCOffset < ${i}) { - xTexelR${v}C${T+2} = getX(batch, xR, xCOffset, d1); + xTexelR${v}C${w+2} = getX(batch, xR, xCOffset, d1); } `,d>1&&(g+=` xCOffset -= 2; if(xR >= 0 && xR < ${s} && xCOffset >= 0 && xCOffset < ${i}) { - xTexelR${v}C${T} = getX(batch, xR, xCOffset, d1); + xTexelR${v}C${w} = getX(batch, xR, xCOffset, d1); } else { - xTexelR${v}C${T} = vec4(0.); + xTexelR${v}C${w} = vec4(0.); } `),g+=` - xR${v}C${T+1} = vec4( - xTexelR${v}C${T}.zw, xTexelR${v}C${T+2}.xy); + xR${v}C${w+1} = vec4( + xTexelR${v}C${w}.zw, xTexelR${v}C${w+2}.xy); `):g+=` xCOffset = xC + ${S}; if(xR >= 0 && xR < ${s} && xCOffset >= 0 && xCOffset < ${i}) { - xTexelR${v}C${T+2} = getX(batch, xR, xCOffset, d1); + xTexelR${v}C${w+2} = getX(batch, xR, xCOffset, d1); } - xR${v}C${T+1} = xTexelR${v}C${T+2}; - `}}else T= 0 && xR < ${s}) { `,l%2==1?(g+=` - xCOffset = xC + 1 - ${u}; + xCOffset = xC + 1 - ${c}; if(xCOffset >= 0 && xCOffset < ${i}) { - xTexelR${v}C${T} = getX(batch, xR, xCOffset, d1); + xTexelR${v}C${w} = getX(batch, xR, xCOffset, d1); } else { - xTexelR${v}C${T} = vec4(0.); + xTexelR${v}C${w} = vec4(0.); } if(xC + 1 >= 0 && xC + 1 < ${i}) { - xTexelR${v}C${T+2} = getX(batch, xR, xC + 1, d1); + xTexelR${v}C${w+2} = getX(batch, xR, xC + 1, d1); } else { - xTexelR${v}C${T+2} = vec4(0.); + xTexelR${v}C${w+2} = vec4(0.); } - xR${v}C${T} = vec4( - xTexelR${v}C${T}.zw, xTexelR${v}C${T+2}.zw); - `,T+1= 0 && xCOffset < ${i}) { final = getX(batch, xR, xCOffset, d1); } - xR${v}C${T+1} = vec4(xTexelR${v}C${T+2}.xy, final.xy); + xR${v}C${w+1} = vec4(xTexelR${v}C${w+2}.xy, final.xy); `)):(g+=` if(xC >= 0 && xC < ${i}) { - xTexelR${v}C${T} = getX(batch, xR, xC, d1); + xTexelR${v}C${w} = getX(batch, xR, xC, d1); } else { - xTexelR${v}C${T} = vec4(0.); + xTexelR${v}C${w} = vec4(0.); } - xCOffset = xC + ${u}; + xCOffset = xC + ${c}; if(xCOffset >= 0 && xCOffset < ${i}) { - xTexelR${v}C${T+2} = getX(batch, xR, xCOffset, d1); + xTexelR${v}C${w+2} = getX(batch, xR, xCOffset, d1); } else { - xTexelR${v}C${T+2} = vec4(0.); + xTexelR${v}C${w+2} = vec4(0.); } - xR${v}C${T} = vec4( - xTexelR${v}C${T}.xy, xTexelR${v}C${T+2}.xy); - `,T+1`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=_.computeConv2DInfo(r.shape,s.shape,i,u,o,c,!0),d;return ee().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels==1?d=new zS(p):d=new LS(p),n.runWebGLProgram(d,[r,s],"float32")}var r7={kernelName:Ws,backendName:"webgl",kernelFunc:a7},s7=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.outChannels/e.inChannels;this.userCode=` + `}};function OY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l,dimRoundingMode:u}=a,c=l;c==null&&(c=[1,1]),I.assert(E.eitherStridesOrDilationsAreOne(i,c),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let p=E.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!0),d;return Z().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels==1?d=new GT(p):d=new UT(p),n.runWebGLProgram(d,[r,s],"float32")}var LY={kernelName:Bs,backendName:"webgl",kernelFunc:OY},zY=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.outChannels/e.inChannels;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -2703,7 +2703,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } setOutput(dotProd); } - `}},i7=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=t-1-e.padInfo.top,i=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=` + `}},WY=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=t-1-e.padInfo.top,i=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=` const ivec2 pads = ivec2(${s}, ${i}); void main() { @@ -2748,15 +2748,15 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } setOutput(dotProd); } - `}};function o7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:c,filterShape:u}=a,p=_.computeConv2DInfo(r.shape,u,i,o,l,c,!0),d=new s7(p);return n.runWebGLProgram(d,[r,s],"float32")}var l7={kernelName:Pd,backendName:"webgl",kernelFunc:o7};function u7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:c,inputShape:u}=a,p=_.computeConv2DInfo(u,s.shape,i,o,l,c,!0),d=new i7(p);return n.runWebGLProgram(d,[r,s],"float32")}var c7={kernelName:Od,backendName:"webgl",kernelFunc:u7},p7=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` + `}};function BY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,filterShape:c}=a,p=E.computeConv2DInfo(r.shape,c,i,o,l,u,!0),d=new zY(p);return n.runWebGLProgram(d,[r,s],"float32")}var VY={kernelName:Pd,backendName:"webgl",kernelFunc:BY};function UY(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,inputShape:c}=a,p=E.computeConv2DInfo(c,s.shape,i,o,l,u,!0),d=new WY(p);return n.runWebGLProgram(d,[r,s],"float32")}var GY={kernelName:Od,backendName:"webgl",kernelFunc:UY},HY=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` void main() { ivec2 coords = getOutputCoords(); float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; setOutput(val); } - `}};function d7(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=w.sizeFromShape(a.shape),i=ye({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new p7(s),l=n.runWebGLProgram(o,[i],i.dtype),c=ye({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),c}var h7={kernelName:Ld,backendName:"webgl",kernelFunc:d7},m7=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:n,padInfo:a,strideHeight:r,strideWidth:s,filterHeight:i,filterWidth:o,dilationHeight:l,dilationWidth:c}=e,{top:u,left:p}=a;this.userCode=` + `}};function jY(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=I.sizeFromShape(a.shape),i=ye({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new HY(s),l=n.runWebGLProgram(o,[i],i.dtype),u=ye({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}var qY={kernelName:Ld,backendName:"webgl",kernelFunc:jY},XY=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:n,padInfo:a,strideHeight:r,strideWidth:s,filterHeight:i,filterWidth:o,dilationHeight:l,dilationWidth:u}=e,{top:c,left:p}=a;this.userCode=` const ivec2 strides = ivec2(${r}, ${s}); - const ivec2 pads = ivec2(${u}, ${p}); + const ivec2 pads = ivec2(${c}, ${p}); const float neg_infinity = -3.4e38; void main() { @@ -2774,7 +2774,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam if (hIn >= 0 && hIn < ${t}) { for (int w = 0; w < ${o}; w++) { - int wIn = wBeg + w * ${c}; + int wIn = wBeg + w * ${u}; if (wIn >= 0 && wIn < ${n}) { float xVal = getX(batch, hIn, wIn, d1); @@ -2792,7 +2792,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam float result = curVal; setOutput(result); } - `}};function f7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,c=_.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),u,p=new m7(c);u=n.runWebGLProgram(p,[r,s],"float32");let d=ye({inputs:{x:u},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(u),d}var g7={kernelName:oc,backendName:"webgl",kernelFunc:f7},y7="return (x >= 0.0) ? x : (exp(x) - 1.0);",b7=` + `}};function KY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=E.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),c,p=new XY(u);c=n.runWebGLProgram(p,[r,s],"float32");let d=ye({inputs:{x:c},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(c),d}var YY={kernelName:oc,backendName:"webgl",kernelFunc:KY},JY="return (x >= 0.0) ? x : (exp(x) - 1.0);",QY=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -2801,27 +2801,27 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,x7=Ke({opSnippet:y7,packedOpSnippet:b7}),v7={kernelName:Ko,backendName:"webgl",kernelFunc:x7},w7="return (b >= 1.0) ? a : a * (b + 1.0);",k7=` +`,ZY=Xe({opSnippet:JY,packedOpSnippet:QY}),e9={kernelName:Xo,backendName:"webgl",kernelFunc:ZY},t9="return (b >= 1.0) ? a : a * (b + 1.0);",n9=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); -`,I7=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new yp(k7,a.shape,r.shape):new wu(w7,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},T7={kernelName:Wd,backendName:"webgl",kernelFunc:I7},N7=` +`,a9=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=Z().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new xp(n9,a.shape,r.shape):new wu(t9,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},r9={kernelName:Bd,backendName:"webgl",kernelFunc:a9},s9=` return vec4(equal(a, b)); -`,S7="return float(a == b);",C7=sn({opSnippet:S7,packedOpSnippet:N7,dtype:"bool"}),_7={kernelName:Yo,backendName:"webgl",kernelFunc:C7},E7=` +`,i9="return float(a == b);",o9=on({opSnippet:i9,packedOpSnippet:s9,dtype:"bool"}),l9={kernelName:Yo,backendName:"webgl",kernelFunc:o9},u9=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. - float p = ${_.ERF_P}; - float a1 = ${_.ERF_A1}; - float a2 = ${_.ERF_A2}; - float a3 = ${_.ERF_A3}; - float a4 = ${_.ERF_A4}; - float a5 = ${_.ERF_A5}; + float p = ${E.ERF_P}; + float a1 = ${E.ERF_A1}; + float a2 = ${E.ERF_A2}; + float a3 = ${E.ERF_A3}; + float a4 = ${E.ERF_A4}; + float a5 = ${E.ERF_A5}; float sign = sign(x); x = abs(x); float t = 1.0 / (1.0 + p * x); return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x)); -`,F7=Ke({opSnippet:E7}),A7={kernelName:Xo,backendName:"webgl",kernelFunc:F7},BS="return exp(x);",WS=Ke({opSnippet:BS,packedOpSnippet:BS,cpuKernelImpl:F8}),$7={kernelName:Us,backendName:"webgl",kernelFunc:WS};function sw(e){let{inputs:t,attrs:n,backend:a}=e,{dim:r}=n,{input:s}=t,i=s.shape.length,o=s.shape.slice(),l=r;return r<0&&(w.assert(-(i+1)<=r,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+r+1),o.splice(l,0,1),ye({inputs:{x:s},backend:a,attrs:{shape:o}})}var D7={kernelName:Jo,backendName:"webgl",kernelFunc:sw},VS="return exp(x) - 1.0;",R7=Ke({opSnippet:VS,packedOpSnippet:VS,cpuKernelImpl:A8}),M7={kernelName:Qo,backendName:"webgl",kernelFunc:R7},US=class{constructor(e,t,n){this.variableNames=["real","imag"];let a=t[1];this.outputShape=t;let r=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,s=n?`${a}.0`:"1.0",i;if(e==="real")i="return real * expR - imag * expI;";else if(e==="imag")i="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` +`,c9=Xe({opSnippet:u9}),p9={kernelName:Ko,backendName:"webgl",kernelFunc:c9},HT="return exp(x);",jT=Xe({opSnippet:HT,packedOpSnippet:HT,cpuKernelImpl:cX}),d9={kernelName:Us,backendName:"webgl",kernelFunc:jT};function sw(e){let{inputs:t,attrs:n,backend:a}=e,{dim:r}=n,{input:s}=t,i=s.shape.length,o=s.shape.slice(),l=r;return r<0&&(I.assert(-(i+1)<=r,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+r+1),o.splice(l,0,1),ye({inputs:{x:s},backend:a,attrs:{shape:o}})}var h9={kernelName:Jo,backendName:"webgl",kernelFunc:sw},qT="return exp(x) - 1.0;",m9=Xe({opSnippet:qT,packedOpSnippet:qT,cpuKernelImpl:pX}),f9={kernelName:Qo,backendName:"webgl",kernelFunc:m9},XT=class{constructor(e,t,n){this.variableNames=["real","imag"];let a=t[1];this.outputShape=t;let r=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,s=n?`${a}.0`:"1.0",i;if(e==="real")i="return real * expR - imag * expI;";else if(e==="imag")i="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` const float exponentMultiplier = ${r}; float unaryOpComplex(float real, float expR, float imag, float expI) { @@ -2854,13 +2854,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}};function GS(e,t,n){let a=n.texData.get(e.dataId),r=w.sizeFromShape(e.shape),s=e.shape[e.shape.length-1],i=r/s,o=ye({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,c=new US("real",l,t),u=new US("imag",l,t),p=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:l},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:l}],d=n.runWebGLProgram(c,p,"float32"),h=n.runWebGLProgram(u,p,"float32"),m=ys({inputs:{real:d,imag:h},backend:n});n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h);let f=ye({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function P7(e){let{inputs:t,backend:n}=e,{input:a}=t;return GS(a,!1,n)}var O7={kernelName:Vd,backendName:"webgl",kernelFunc:P7},L7=class{constructor(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode=` + `}};function KT(e,t,n){let a=n.texData.get(e.dataId),r=I.sizeFromShape(e.shape),s=e.shape[e.shape.length-1],i=r/s,o=ye({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,u=new XT("real",l,t),c=new XT("imag",l,t),p=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:l},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:l}],d=n.runWebGLProgram(u,p,"float32"),h=n.runWebGLProgram(c,p,"float32"),m=ys({inputs:{real:d,imag:h},backend:n});n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h);let f=ye({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function g9(e){let{inputs:t,backend:n}=e,{input:a}=t;return KT(a,!1,n)}var y9={kernelName:Vd,backendName:"webgl",kernelFunc:g9},b9=class{constructor(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode=` uniform float value; void main() { // Input can be obtained from uniform value. setOutput(value); } - `}getCustomSetupFunc(e){return(t,n)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}};function iw(e){let{backend:t,attrs:n}=e,{shape:a,value:r}=n,{dtype:s}=n;if(s=s||w.inferDtype(r),s==="string"){let i=w.getArrayFromDType(s,w.sizeFromShape(a));return i.fill(r),t.makeTensorInfo(a,s,i)}else{let i=new L7(a,r),o=i.getCustomSetupFunc(r);return t.runWebGLProgram(i,[],s,o)}}var z7={kernelName:lc,backendName:"webgl",kernelFunc:iw},B7=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e){return(t,n)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}};function iw(e){let{backend:t,attrs:n}=e,{shape:a,value:r}=n,{dtype:s}=n;if(s=s||I.inferDtype(r),s==="string"){let i=I.getArrayFromDType(s,I.sizeFromShape(a));return i.fill(r),t.makeTensorInfo(a,s,i)}else{let i=new b9(a,r),o=i.getCustomSetupFunc(r);return t.runWebGLProgram(i,[],s,o)}}var x9={kernelName:lc,backendName:"webgl",kernelFunc:iw},v9=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int x = coords[2]; @@ -2874,7 +2874,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } setOutput(outputValue); } - `}},W7={kernelName:Zo,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new B7(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},HS="return floor(x);",V7=Ke({opSnippet:HS,packedOpSnippet:HS,cpuKernelImpl:$8}),U7={kernelName:Gs,backendName:"webgl",kernelFunc:V7},G7=` + `}},w9={kernelName:Zo,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new v9(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},YT="return floor(x);",k9=Xe({opSnippet:YT,packedOpSnippet:YT,cpuKernelImpl:dX}),I9={kernelName:Gs,backendName:"webgl",kernelFunc:k9},N9=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -2884,7 +2884,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } else { return NAN; } -`,H7=` +`,T9=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); @@ -2905,7 +2905,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,j7=sn({opSnippet:G7,packedOpSnippet:H7,dtype:"int32"}),q7={kernelName:Hs,backendName:"webgl",kernelFunc:j7},K7=class{constructor(e){this.variableNames=["A"];let t=fn(),[n,a]=e;this.outputShape=e,this.userCode=` +`,S9=on({opSnippet:N9,packedOpSnippet:T9,dtype:"int32"}),C9={kernelName:Hs,backendName:"webgl",kernelFunc:S9},A9=class{constructor(e){this.variableNames=["A"];let t=fn(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -2927,7 +2927,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam setOutput(floor(value * 255.0 + 0.5)); } - `}},X7=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=fn(),[n,a]=e;this.outputShape=e,this.userCode=` + `}},F9=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=fn(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -2961,7 +2961,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam ${t.output} = result; } - `}},J7={kernelName:nh,backendName:"webgl",kernelFunc:Y7},Iu;function Y7(e){let{inputs:t,backend:n,attrs:a}=e,{pixels:r}=t,{numChannels:s}=a,i=typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement,o=typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement,l=typeof ImageBitmap!="undefined"&&r instanceof ImageBitmap,[c,u]=i?[r.videoWidth,r.videoHeight]:[r.width,r.height],p=[u,c],d=[u,c,s];(o||i||l)&&(Iu==null&&(Iu=document.createElement("canvas").getContext("2d")),Iu.canvas.width=c,Iu.canvas.height=u,Iu.drawImage(r,0,0,c,u),r=Iu.canvas);let h=n.makeTensorInfo(p,"int32");n.texData.get(h.dataId).usage=aa.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(h.dataId),r);let m=ee().getBool("WEBGL_PACK")?new X7(d):new K7(d),f=n.runWebGLProgram(m,[h],"int32");return n.disposeData(h.dataId),f}function Q7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=_.convertConv2DDataFormat(u),g=_.computeConv2DInfo(r.shape,s.shape,l,p,c,d,!1,f),y,b=[];if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))y=DS({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(ee().getBool("WEBGL_CONV_IM2COL")&&r.shape[0]===1)y=RS({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let v=i!=null,N=o!=null,T=h==="leakyrelu",S=h?Ym(h,!1):null,A=new $S(g,v,S,N,T),$=[r,s];if(i&&$.push(i),o&&$.push(o),T){let R=n.makeTensorInfo([],"float32",w.createScalarValue(m,"float32"));$.push(R),b.push(R)}y=n.runWebGLProgram(A,$,"float32")}let x=ye({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach(v=>n.disposeIntermediateTensorInfo(v)),x}var Z7={kernelName:Ti,backendName:"webgl",kernelFunc:Q7};function e9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dilations:u,dimRoundingMode:p,activation:d,leakyreluAlpha:h}=a,m=[],f=u;f==null&&(f=[1,1]),w.assert(_.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=_.computeConv2DInfo(r.shape,s.shape,l,f,c,p,!0),y=ee().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels==1,b=d?Ym(d,y):null,x=[r,s],v=i!=null,N=o!=null,T=d==="leakyrelu";if(v&&x.push(i),N&&x.push(o),T){let $=n.makeTensorInfo([],"float32",w.createScalarValue(h,"float32"));x.push($),m.push($)}let S;y?S=new zS(g,v,b,N,T):S=new LS(g,v,b,N,T);let A=n.runWebGLProgram(S,x,"float32");return m.forEach($=>n.disposeIntermediateTensorInfo($)),A}var t9={kernelName:Ni,backendName:"webgl",kernelFunc:e9},n9=class{constructor(e,t,n){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=n;let a=dt(t.length),r=dt(n.length),s=this.sliceDim>1?"strides[j]":"strides";this.userCode=` + `}},E9={kernelName:ah,backendName:"webgl",kernelFunc:_9},Iu;function _9(e){let{inputs:t,backend:n,attrs:a}=e,{pixels:r}=t,{numChannels:s}=a,i=typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement,o=typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement,[l,u]=i?[r.videoWidth,r.videoHeight]:[r.width,r.height],c=[u,l],p=[u,l,s];(o||i)&&(Iu==null&&(Iu=document.createElement("canvas").getContext("2d")),Iu.canvas.width=l,Iu.canvas.height=u,Iu.drawImage(r,0,0,l,u),r=Iu.canvas);let d=n.makeTensorInfo(c,"int32");n.texData.get(d.dataId).usage=aa.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(d.dataId),r);let h=Z().getBool("WEBGL_PACK")?new F9(p):new A9(p),m=n.runWebGLProgram(h,[d],"int32");return n.disposeData(d.dataId),m}function $9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=E.convertConv2DDataFormat(c),g=E.computeConv2DInfo(r.shape,s.shape,l,p,u,d,!1,f),y,b=[];if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))y=LT({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(Z().getBool("WEBGL_CONV_IM2COL")&&r.shape[0]===1)y=zT({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let v=i!=null,k=o!=null,w=h==="leakyrelu",S=h?Ym(h,!1):null,A=new OT(g,v,S,k,w),F=[r,s];if(i&&F.push(i),o&&F.push(o),w){let D=n.makeTensorInfo([],"float32",I.createScalarValue(m,"float32"));F.push(D),b.push(D)}y=n.runWebGLProgram(A,F,"float32")}let x=ye({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach(v=>n.disposeIntermediateTensorInfo(v)),x}var D9={kernelName:Ni,backendName:"webgl",kernelFunc:$9};function M9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:c,dimRoundingMode:p,activation:d,leakyreluAlpha:h}=a,m=[],f=c;f==null&&(f=[1,1]),I.assert(E.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=E.computeConv2DInfo(r.shape,s.shape,l,f,u,p,!0),y=Z().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels==1,b=d?Ym(d,y):null,x=[r,s],v=i!=null,k=o!=null,w=d==="leakyrelu";if(v&&x.push(i),k&&x.push(o),w){let F=n.makeTensorInfo([],"float32",I.createScalarValue(h,"float32"));x.push(F),m.push(F)}let S;y?S=new GT(g,v,b,k,w):S=new UT(g,v,b,k,w);let A=n.runWebGLProgram(S,x,"float32");return m.forEach(F=>n.disposeIntermediateTensorInfo(F)),A}var R9={kernelName:Ti,backendName:"webgl",kernelFunc:M9},P9=class{constructor(e,t,n){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=n;let a=ht(t.length),r=ht(n.length),s=this.sliceDim>1?"strides[j]":"strides";this.userCode=` ${a} strides = ${a}(${this.strides}); void main() { ${r} coords = getOutputCoords(); @@ -2972,21 +2972,21 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } setOutput(getX(flattenIndex, coords[1])); } - `}};function a9(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=r.shape,i=s[s.length-1],[o,l,c,u]=_.prepareAndValidate(a,r),p=ye({inputs:{x:r},backend:n,attrs:{shape:[l,i]}}),d=ye({inputs:{x:a},backend:n,attrs:{shape:[w.sizeFromShape(a.shape)/c,c]}}),h=new n9(i,u,[l,c]),m=n.runWebGLProgram(h,[d,p],d.dtype),f=ye({inputs:{x:m},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(m),f}var r9={kernelName:tl,backendName:"webgl",kernelFunc:a9},i9=class{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;let n=dt(this.rank),a=s9(e,2);this.userCode=` + `}};function O9(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=r.shape,i=s[s.length-1],[o,l,u,c]=E.prepareAndValidate(a,r),p=ye({inputs:{x:r},backend:n,attrs:{shape:[l,i]}}),d=ye({inputs:{x:a},backend:n,attrs:{shape:[I.sizeFromShape(a.shape)/u,u]}}),h=new P9(i,c,[l,u]),m=n.runWebGLProgram(h,[d,p],d.dtype),f=ye({inputs:{x:m},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(m),f}var L9={kernelName:tl,backendName:"webgl",kernelFunc:O9},W9=class{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;let n=ht(this.rank),a=z9(e,2);this.userCode=` void main() { ${n} resRC = getOutputCoords(); setOutput(getA(${a})); } - `}};function s9(e,t){let n=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[];for(let r=0;rn.disposeIntermediateTensorInfo(N)),n.makeTensorInfo(c.outputShape,v.dtype,v.values)}let f=new i9(d.shape,m),g=n.runWebGLProgram(f,[d,h],d.dtype);p.push(g);let y=ye({inputs:{x:g},backend:n,attrs:{shape:c.outputShape}});return p.forEach(b=>n.disposeIntermediateTensorInfo(b)),y}var l9={kernelName:el,backendName:"webgl",kernelFunc:o9},u9="return float(a > b);",c9=` + `}};function z9(e,t){let n=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[];for(let r=0;rn.disposeIntermediateTensorInfo(k)),n.makeTensorInfo(u.outputShape,v.dtype,v.values)}let f=new W9(d.shape,m),g=n.runWebGLProgram(f,[d,h],d.dtype);p.push(g);let y=ye({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return p.forEach(b=>n.disposeIntermediateTensorInfo(b)),y}var V9={kernelName:el,backendName:"webgl",kernelFunc:B9},U9="return float(a > b);",G9=` return vec4(greaterThan(a, b)); -`,p9=sn({opSnippet:u9,packedOpSnippet:c9,cpuKernelImpl:R8,dtype:"bool"}),d9={kernelName:nl,backendName:"webgl",kernelFunc:p9},h9="return float(a >= b);",m9=` +`,H9=on({opSnippet:U9,packedOpSnippet:G9,cpuKernelImpl:mX,dtype:"bool"}),j9={kernelName:nl,backendName:"webgl",kernelFunc:H9},q9="return float(a >= b);",X9=` return vec4(greaterThanEqual(a, b)); -`,f9=sn({opSnippet:h9,packedOpSnippet:m9,dtype:"bool"}),g9={kernelName:qs,backendName:"webgl",kernelFunc:f9};function y9(e){let{inputs:t,backend:n}=e,{input:a}=t;return GS(a,!0,n)}var b9={kernelName:Ud,backendName:"webgl",kernelFunc:y9},x9="return float(!isnan(x) && !isinf(x));",v9=Ke({opSnippet:x9,dtype:"bool"}),w9={kernelName:al,backendName:"webgl",kernelFunc:v9},k9="return float(isinf(x));",I9=Ke({opSnippet:k9,dtype:"bool"}),T9={kernelName:rl,backendName:"webgl",kernelFunc:I9},N9="return float(isnan(x));",S9=Ke({opSnippet:N9,dtype:"bool"}),C9={kernelName:sl,backendName:"webgl",kernelFunc:S9},_9="return float(a < b);",E9=` +`,K9=on({opSnippet:q9,packedOpSnippet:X9,dtype:"bool"}),Y9={kernelName:qs,backendName:"webgl",kernelFunc:K9};function J9(e){let{inputs:t,backend:n}=e,{input:a}=t;return KT(a,!0,n)}var Q9={kernelName:Ud,backendName:"webgl",kernelFunc:J9},Z9="return float(!isnan(x) && !isinf(x));",eJ=Xe({opSnippet:Z9,dtype:"bool"}),tJ={kernelName:al,backendName:"webgl",kernelFunc:eJ},nJ="return float(isinf(x));",aJ=Xe({opSnippet:nJ,dtype:"bool"}),rJ={kernelName:rl,backendName:"webgl",kernelFunc:aJ},sJ="return float(isnan(x));",iJ=Xe({opSnippet:sJ,dtype:"bool"}),oJ={kernelName:sl,backendName:"webgl",kernelFunc:iJ},lJ="return float(a < b);",uJ=` return vec4(lessThan(a, b)); -`,F9=sn({opSnippet:_9,packedOpSnippet:E9,cpuKernelImpl:M8,dtype:"bool"}),A9={kernelName:il,backendName:"webgl",kernelFunc:F9},$9="return float(a <= b);",D9=` +`,cJ=on({opSnippet:lJ,packedOpSnippet:uJ,cpuKernelImpl:fX,dtype:"bool"}),pJ={kernelName:il,backendName:"webgl",kernelFunc:cJ},dJ="return float(a <= b);",hJ=` return vec4(lessThanEqual(a, b)); -`,R9=sn({opSnippet:$9,packedOpSnippet:D9,dtype:"bool"}),M9={kernelName:ol,backendName:"webgl",kernelFunc:R9};function P9(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=P8(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var O9={kernelName:Hd,backendName:"webgl",kernelFunc:P9},L9=`if (x < 0.0) return NAN; - return log(x);`,z9=` +`,mJ=on({opSnippet:dJ,packedOpSnippet:hJ,dtype:"bool"}),fJ={kernelName:ol,backendName:"webgl",kernelFunc:mJ};function gJ(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=gX(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var yJ={kernelName:Hd,backendName:"webgl",kernelFunc:gJ},bJ=`if (x < 0.0) return NAN; + return log(x);`,xJ=` vec4 result = log(x); vec4 isNaN = vec4(lessThan(x, vec4(0.0))); result.r = isNaN.r == 1.0 ? NAN : result.r; @@ -2995,16 +2995,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam result.a = isNaN.a == 1.0 ? NAN : result.a; return result; -`,B9=Ke({opSnippet:L9,packedOpSnippet:z9,cpuKernelImpl:O8}),W9={kernelName:Ys,backendName:"webgl",kernelFunc:B9},V9="return log(1.0 + x);",U9=Ke({opSnippet:V9}),G9={kernelName:ll,backendName:"webgl",kernelFunc:U9},H9="return float(a >= 1.0 && b >= 1.0);",j9=` +`,vJ=Xe({opSnippet:bJ,packedOpSnippet:xJ,cpuKernelImpl:yX}),wJ={kernelName:Ys,backendName:"webgl",kernelFunc:vJ},kJ="return log(1.0 + x);",IJ=Xe({opSnippet:kJ}),NJ={kernelName:ll,backendName:"webgl",kernelFunc:IJ},TJ="return float(a >= 1.0 && b >= 1.0);",SJ=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); -`,q9=sn({opSnippet:H9,packedOpSnippet:j9,dtype:"bool"}),K9={kernelName:ul,backendName:"webgl",kernelFunc:q9},X9="return float(!(x >= 1.0));",Y9=Ke({opSnippet:X9}),J9={kernelName:uc,backendName:"webgl",kernelFunc:Y9},Q9="return float(a >= 1.0 || b >= 1.0);",Z9=` +`,CJ=on({opSnippet:TJ,packedOpSnippet:SJ,dtype:"bool"}),AJ={kernelName:ul,backendName:"webgl",kernelFunc:CJ},FJ="return float(!(x >= 1.0));",_J=Xe({opSnippet:FJ}),EJ={kernelName:uc,backendName:"webgl",kernelFunc:_J},$J="return float(a >= 1.0 || b >= 1.0);",DJ=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); -`,eJ=sn({opSnippet:Q9,packedOpSnippet:Z9,dtype:"bool"}),tJ={kernelName:cc,backendName:"webgl",kernelFunc:eJ},nJ=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[];let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` +`,MJ=on({opSnippet:$J,packedOpSnippet:DJ,dtype:"bool"}),RJ={kernelName:cc,backendName:"webgl",kernelFunc:MJ},PJ=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[];let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3023,7 +3023,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam float val = x * ${o}; setOutput(val); } - `}},aJ=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` + `}},OJ=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords.x; @@ -3085,7 +3085,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam vec4 result = xAtOutputCoords * ${o}; setOutput(result); } - `}},rJ=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,c=ee().getBool("WEBGL_PACK_NORMALIZATION")?new aJ(r.shape,s,i,o,l):new nJ(r.shape,s,i,o,l);return n.runWebGLProgram(c,[r],r.dtype)},sJ={kernelName:pc,backendName:"webgl",kernelFunc:rJ},iJ=class{constructor(e,t,n,a,r){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=a,this.beta=r,this.userCode=` + `}},LJ=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,u=Z().getBool("WEBGL_PACK_NORMALIZATION")?new OJ(r.shape,s,i,o,l):new PJ(r.shape,s,i,o,l);return n.runWebGLProgram(u,[r],r.dtype)},zJ={kernelName:pc,backendName:"webgl",kernelFunc:LJ},WJ=class{constructor(e,t,n,a,r){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=a,this.beta=r,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3140,14 +3140,14 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } setOutput(result); } - `}},oJ=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:c,beta:u}=a,p=new iJ(r.shape,o,l,c,u);return n.runWebGLProgram(p,[r,s,i],r.dtype)},lJ={kernelName:jd,backendName:"webgl",kernelFunc:oJ};function uJ(e,t,n,a){let r=w.sizeFromShape(t),s=w.sizeFromShape(e.shape)/r,i=ye({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Zi(i,e.dtype,"max",a),l=ye({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function jS(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reductionIndices:s,keepDims:i}=a,o=r.shape.length,l=w.parseAxisParam(s,r.shape),c=l,u=_.getAxesPermutation(c,o),p=u!=null,d=n.shouldExecuteOnCPU([r]),h=r;if(p){if(d){let b=n.texData.get(h.dataId).values,x=new Array(o);for(let T=0;T{let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:u,beta:c}=a,p=new WJ(r.shape,o,l,u,c);return n.runWebGLProgram(p,[r,s,i],r.dtype)},VJ={kernelName:jd,backendName:"webgl",kernelFunc:BJ};function UJ(e,t,n,a){let r=I.sizeFromShape(t),s=I.sizeFromShape(e.shape)/r,i=ye({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Zi(i,e.dtype,"max",a),l=ye({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function JT(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reductionIndices:s,keepDims:i}=a,o=r.shape.length,l=I.parseAxisParam(s,r.shape),u=l,c=E.getAxesPermutation(u,o),p=c!=null,d=n.shouldExecuteOnCPU([r]),h=r;if(p){if(d){let b=n.texData.get(h.dataId).values,x=new Array(o);for(let w=0;w`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l);if(u.filterWidth===1&&u.filterHeight===1&&w.arraysEqual(u.inShape,u.outShape))return Gn({inputs:{x:r},backend:n});let p=new bp(u,"max",!1);return n.runWebGLProgram(p,[r],r.dtype)}var gJ={kernelName:Zs,backendName:"webgl",kernelFunc:fJ};function yJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:c}=a,u=[1,1,1],p=_.computePool3DInfo(r.shape,s,i,u,o,c,l),d=new nw(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var bJ={kernelName:dc,backendName:"webgl",kernelFunc:yJ},xJ=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,n=e.strideWidth,a=e.dilationHeight,r=e.effectiveFilterHeight,s=e.effectiveFilterWidth,i=r-1-e.padInfo.top,o=s-1-e.padInfo.left,l=r*s-1;this.userCode=` +`,qJ=on({opSnippet:HJ,packedOpSnippet:jJ,cpuKernelImpl:xX}),XJ={kernelName:Qs,backendName:"webgl",kernelFunc:qJ};function KJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;yp(r,"maxPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;I.assert(E.eitherStridesOrDilationsAreOne(i,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let c=E.computePool2DInfo(r.shape,s,i,u,o,l);if(c.filterWidth===1&&c.filterHeight===1&&I.arraysEqual(c.inShape,c.outShape))return Gn({inputs:{x:r},backend:n});let p=new vp(c,"max",!1);return n.runWebGLProgram(p,[r],r.dtype)}var YJ={kernelName:Zs,backendName:"webgl",kernelFunc:KJ};function JJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:u}=a,c=[1,1,1],p=E.computePool3DInfo(r.shape,s,i,c,o,u,l),d=new nw(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var QJ={kernelName:dc,backendName:"webgl",kernelFunc:JJ},ZJ=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,n=e.strideWidth,a=e.dilationHeight,r=e.effectiveFilterHeight,s=e.effectiveFilterWidth,i=r-1-e.padInfo.top,o=s-1-e.padInfo.left,l=r*s-1;this.userCode=` const ivec2 pads = ivec2(${i}, ${o}); void main() { @@ -3193,8 +3193,8 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } setOutput(dotProd); } - `}},vJ=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.dilationDepth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,c=e.effectiveFilterWidth,u=o-1-e.padInfo.front,p=l-1-e.padInfo.top,d=c-1-e.padInfo.left,h=o*l*c-1;this.userCode=` - const ivec3 pads = ivec3(${u}, ${p}, ${d}); + `}},eQ=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.dilationDepth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,u=e.effectiveFilterWidth,c=o-1-e.padInfo.front,p=l-1-e.padInfo.top,d=u-1-e.padInfo.left,h=o*l*u-1;this.userCode=` + const ivec3 pads = ivec3(${c}, ${p}, ${d}); void main() { ivec5 coords = getOutputCoords(); @@ -3230,7 +3230,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } int idyR = int(dyR); - for (int wC = 0; wC < ${c}; + for (int wC = 0; wC < ${u}; wC += ${i}) { float dyC = float(dyCCorner + wC) / ${a}.0; @@ -3247,8 +3247,8 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam // Get the current value, check it against the value from the // position matrix. int curPosValue = - wD * ${l} * ${c} + - wR * ${c} + wC; + wD * ${l} * ${u} + + wR * ${u} + wC; float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0); dotProd += dyValue * mask; @@ -3257,14 +3257,14 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam } setOutput(dotProd); } - `}};function wJ(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:c,dimRoundingMode:u}=a,p=[1,1,1],d=_.computePool3DInfo(i.shape,o,l,p,c,u),h=new nw(d,"max",!0),m=n.runWebGLProgram(h,[i],i.dtype),f=new vJ(d),g=n.runWebGLProgram(f,[r,m],i.dtype);return n.disposeIntermediateTensorInfo(m),g}var kJ={kernelName:Kd,backendName:"webgl",kernelFunc:wJ};function IJ(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;fp([s,i],"maxPoolGrad");let{filterSize:l,strides:c,pad:u,dimRoundingMode:p}=a,d=_.computePool2DInfo(o.shape,l,c,1,u,p),h=!0,m=new bp(d,"max",h),f=n.runWebGLProgram(m,[o],o.dtype),g=new xJ(d),y=n.runWebGLProgram(g,[r,f],o.dtype);return n.disposeIntermediateTensorInfo(f),y}var TJ={kernelName:qd,backendName:"webgl",kernelFunc:IJ};function NJ(e,t,n,a){let r=new bp(n,"max",!1),s=a.runWebGLProgram(r,[e],"float32");r=new bp(n,"max",!0,!0,t);let i=a.runWebGLProgram(r,[e],"float32");return[s,i]}var SJ={kernelName:Xd,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;w.assert(a.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.shape.length}.`);let c=[1,1];w.assert(_.eitherStridesOrDilationsAreOne(s,c),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${c}'`);let u=_.computePool2DInfo(a.shape,r,s,c,i),[p,d]=NJ(a,o,u,l);return[p,d]}};function CJ(e,t,n,a){let r=w.sizeFromShape(t),s=w.sizeFromShape(e.shape)/r,i=ye({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Zi(i,"float32","mean",a),l=ye({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var _J={kernelName:ei,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{keepDims:r,axis:s}=t,i=n,o=a.shape.length,l=w.parseAxisParam(s,a.shape),c=l,u=_.getAxesPermutation(c,o),p=u!=null,d=i.shouldExecuteOnCPU([a]),h=[],m=a;if(p){if(d){let x=i.texData.get(m.dataId).values,v=new Array(o);for(let S=0;S{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;I.assert(a.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.shape.length}.`);let u=[1,1];I.assert(E.eitherStridesOrDilationsAreOne(s,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`);let c=E.computePool2DInfo(a.shape,r,s,u,i),[p,d]=sQ(a,o,c,l);return[p,d]}};function oQ(e,t,n,a){let r=I.sizeFromShape(t),s=I.sizeFromShape(e.shape)/r,i=ye({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Zi(i,"float32","mean",a),l=ye({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var lQ={kernelName:ei,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{keepDims:r,axis:s}=t,i=n,o=a.shape.length,l=I.parseAxisParam(s,a.shape),u=l,c=E.getAxesPermutation(u,o),p=c!=null,d=i.shouldExecuteOnCPU([a]),h=[],m=a;if(p){if(d){let x=i.texData.get(m.dataId).values,v=new Array(o);for(let S=0;Sc[0]+e[u]+c[1]);let a=e.length,r=dt(a),s=t.map(c=>c[0]).join(","),i=t.map((c,u)=>c[0]+e[u]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a),l=n==="reflect"?0:1;if(a===1){this.userCode=` +`,hQ=on({opSnippet:pQ,packedOpSnippet:dQ,cpuKernelImpl:vX}),mQ={kernelName:ni,backendName:"webgl",kernelFunc:hQ},fQ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map((u,c)=>u[0]+e[c]+u[1]);let a=e.length,r=ht(a),s=t.map(u=>u[0]).join(","),i=t.map((u,c)=>u[0]+e[c]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a),l=n==="reflect"?0:1;if(a===1){this.userCode=` int start = ${s}; int end = ${i}; @@ -3293,7 +3293,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam ${r} coords = outC - start; setOutput(getX(${o})); } - `}},PJ=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((h,m)=>h[0]+e[m]+h[1]);let a=e.length,r=dt(a),s=t.map(h=>h[0]).join(","),i=t.map((h,m)=>h[0]+e[m]).join(","),o=gn("rc",a),l=gn("source",a),c=`${o[a-1]} < ${this.outputShape[a-1]}`,u=a===1?"source":`vec2(${l.slice(-2).join()})`,p=n==="reflect"?0:1,d="";if(a===1){let h=` + `}},gQ=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((h,m)=>h[0]+e[m]+h[1]);let a=e.length,r=ht(a),s=t.map(h=>h[0]).join(","),i=t.map((h,m)=>h[0]+e[m]).join(","),o=gn("rc",a),l=gn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,c=a===1?"source":`vec2(${l.slice(-2).join()})`,p=n==="reflect"?0:1,d="";if(a===1){let h=` ${r} source = rc; if (source < start) { source = start * 2 - source - ${p}; @@ -3304,11 +3304,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam `;d=` ${r} rc = outputLoc; ${h} - result[0] = getChannel(getX(${l.join()}), ${u}); + result[0] = getChannel(getX(${l.join()}), ${c}); ${o[a-1]} += 1; - if(${c}) { + if(${u}) { ${h} - result[1] = getChannel(getX(${l.join()}), ${u}); + result[1] = getChannel(getX(${l.join()}), ${c}); } `}else{let h=` ${r} source = rc; @@ -3322,21 +3322,21 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam `;d=` ${r} rc = outputLoc; ${h} - result[0] = getChannel(getX(${l.join()}), ${u}); + result[0] = getChannel(getX(${l.join()}), ${c}); ${o[a-1]} += 1; - if(${c}) { + if(${u}) { ${h} - result[1] = getChannel(getX(${l.join()}), ${u}); + result[1] = getChannel(getX(${l.join()}), ${c}); } rc = outputLoc; ${o[a-2]} += 1; if(${o[a-2]} < ${this.outputShape[a-2]}) { ${h} - result[2] = getChannel(getX(${l.join()}), ${u}); + result[2] = getChannel(getX(${l.join()}), ${c}); ${o[a-1]} += 1; - if(${c}) { + if(${u}) { ${h} - result[3] = getChannel(getX(${l.join()}), ${u}); + result[3] = getChannel(getX(${l.join()}), ${c}); } } `}this.userCode=` @@ -3349,13 +3349,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam ${d} setOutput(result); } - `}},OJ=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new PJ(a.shape,r,s):new MJ(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},LJ={kernelName:hc,backendName:"webgl",kernelFunc:OJ},zJ=`if (b == 0.0) return NAN; - return mod(a, b);`,BJ=` + `}},yQ=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=Z().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new gQ(a.shape,r,s):new fQ(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},bQ={kernelName:hc,backendName:"webgl",kernelFunc:yQ},xQ=`if (b == 0.0) return NAN; + return mod(a, b);`,vQ=` vec4 result = mod(a, b); vec4 isNaN = vec4(equal(b, vec4(0.0))); - `+Xm+` + `+Km+` return result; -`,WJ=sn({opSnippet:zJ,packedOpSnippet:BJ}),VJ={kernelName:cl,backendName:"webgl",kernelFunc:WJ},UJ=class{constructor(e,t,n){this.variableNames=["probs"],this.outputShape=[e,n],this.userCode=` +`,wQ=on({opSnippet:xQ,packedOpSnippet:vQ}),kQ={kernelName:cl,backendName:"webgl",kernelFunc:wQ},IQ=class{constructor(e,t,n){this.variableNames=["probs"],this.outputShape=[e,n],this.userCode=` uniform float seed; void main() { @@ -3377,11 +3377,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,AX=Ke({opSnippet:FX}),$X={kernelNam // If no other event happened, last event happened. setOutput(float(${t-1})); } - `}getCustomSetupFunc(e){return(t,n)=>{this.seedLoc==null&&(this.seedLoc=t.getUniformLocation(n,"seed")),t.gl.uniform1f(this.seedLoc,e)}}},GJ=` + `}getCustomSetupFunc(e){return(t,n)=>{this.seedLoc==null&&(this.seedLoc=t.getUniformLocation(n,"seed")),t.gl.uniform1f(this.seedLoc,e)}}},NQ=` if (a == b) { return 1.0; }; -return a / b;`,HJ=` +return a / b;`,TQ=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; @@ -3399,21 +3399,22 @@ return a / b;`,HJ=` } return result; -`,qS=sn({opSnippet:GJ,packedOpSnippet:HJ,checkOutOfBounds:!0}),jJ={kernelName:Vs,backendName:"webgl",kernelFunc:qS},KS="return a - b;",XS=sn({opSnippet:KS,packedOpSnippet:KS,supportsComplex:!0,cpuKernelImpl:K8}),qJ={kernelName:vi,backendName:"webgl",kernelFunc:XS};function YS(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=w.parseAxisParam([s],r.shape),o=jS({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=_.expandShapeToKeepDim(o.shape,i),c=ye({inputs:{x:o},backend:n,attrs:{shape:l}}),u=XS({inputs:{a:r,b:c},backend:n}),p=WS({inputs:{x:u},backend:n}),d=tw({inputs:{x:p},backend:n,attrs:{axis:i,keepDims:!1}}),h=ye({inputs:{x:d},backend:n,attrs:{shape:l}}),m=qS({inputs:{a:p,b:h},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),m}var KJ={kernelName:bi,backendName:"webgl",kernelFunc:YS};function XJ(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:YS({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),c=l.shape[0],u=l.shape[1],p=new UJ(c,u,s),d=p.getCustomSetupFunc(i),h=n.runWebGLProgram(p,[l],"int32",d);return o||n.disposeIntermediateTensorInfo(l),h}var YJ={kernelName:Yd,backendName:"webgl",kernelFunc:XJ},JS="return -x;";function JJ(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=V8(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return ee().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new vu(a.shape,JS):r=new gs(a.shape,JS),n.runWebGLProgram(r,[a],a.dtype)}var QJ={kernelName:pl,backendName:"webgl",kernelFunc:JJ},ZJ=Qa.nonMaxSuppressionV3Impl;function eQ(e){_.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,c=n.readSync(r.dataId),u=n.readSync(s.dataId),{selectedIndices:p}=ZJ(c,u,i,o,l);return n.makeTensorInfo([p.length],"int32",new Int32Array(p))}var tQ={kernelName:hl,backendName:"webgl",kernelFunc:eQ},nQ=Qa.nonMaxSuppressionV4Impl;function aQ(e){_.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:c}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d,validOutputs:h}=nQ(u,p,i,o,l,c);return[n.makeTensorInfo([d.length],"int32",new Int32Array(d)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var rQ={kernelName:ml,backendName:"webgl",kernelFunc:aQ},sQ=Qa.nonMaxSuppressionV5Impl;function iQ(e){_.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:c}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),d=i,h=o,m=l,f=c,{selectedIndices:g,selectedScores:y}=sQ(u,p,d,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([y.length],"float32",new Float32Array(y))]}var oQ={kernelName:fl,backendName:"webgl",kernelFunc:iQ},lQ=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` +`,QT=on({opSnippet:NQ,packedOpSnippet:TQ,checkOutOfBounds:!0}),SQ={kernelName:Vs,backendName:"webgl",kernelFunc:QT},ZT="return a - b;",eS=on({opSnippet:ZT,packedOpSnippet:ZT,supportsComplex:!0,cpuKernelImpl:AX}),CQ={kernelName:vi,backendName:"webgl",kernelFunc:eS};function tS(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=I.parseAxisParam([s],r.shape),o=JT({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=E.expandShapeToKeepDim(o.shape,i),u=ye({inputs:{x:o},backend:n,attrs:{shape:l}}),c=eS({inputs:{a:r,b:u},backend:n}),p=jT({inputs:{x:c},backend:n}),d=tw({inputs:{x:p},backend:n,attrs:{axis:i,keepDims:!1}}),h=ye({inputs:{x:d},backend:n,attrs:{shape:l}}),m=QT({inputs:{a:p,b:h},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),m}var AQ={kernelName:bi,backendName:"webgl",kernelFunc:tS};function FQ(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:tS({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],c=l.shape[1],p=new IQ(u,c,s),d=p.getCustomSetupFunc(i),h=n.runWebGLProgram(p,[l],"int32",d);return o||n.disposeIntermediateTensorInfo(l),h}var _Q={kernelName:Yd,backendName:"webgl",kernelFunc:FQ},nS="return -x;";function EQ(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=kX(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return Z().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new vu(a.shape,nS):r=new gs(a.shape,nS),n.runWebGLProgram(r,[a],a.dtype)}var $Q={kernelName:pl,backendName:"webgl",kernelFunc:EQ},DQ=Qa.nonMaxSuppressionV3Impl;function MQ(e){E.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),c=n.readSync(s.dataId),{selectedIndices:p}=DQ(u,c,i,o,l);return n.makeTensorInfo([p.length],"int32",new Int32Array(p))}var RQ={kernelName:hl,backendName:"webgl",kernelFunc:MQ},PQ=Qa.nonMaxSuppressionV4Impl;function OQ(e){E.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,c=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d,validOutputs:h}=PQ(c,p,i,o,l,u);return[n.makeTensorInfo([d.length],"int32",new Int32Array(d)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var LQ={kernelName:ml,backendName:"webgl",kernelFunc:OQ},zQ=Qa.nonMaxSuppressionV5Impl;function WQ(e){E.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,c=n.readSync(r.dataId),p=n.readSync(s.dataId),d=i,h=o,m=l,f=u,{selectedIndices:g,selectedScores:y}=zQ(c,p,d,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([y.length],"float32",new Float32Array(y))]}var BQ={kernelName:fl,backendName:"webgl",kernelFunc:WQ},VQ=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int index = round(getIndices(coords.x)); setOutput(mix(float(${a}), float(${n}), float(index == coords.y))); } - `}},uQ=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{depth:s,onValue:i,offValue:o}=a,l=w.sizeFromShape(r.shape),c=new lQ(l,s,i,o),u=ye({inputs:{x:r},backend:n,attrs:{shape:[l]}}),p=n.runWebGLProgram(c,[u],r.dtype);n.disposeIntermediateTensorInfo(u);let d=[...r.shape,s],h=ye({inputs:{x:p},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(p),h},cQ={kernelName:ri,backendName:"webgl",kernelFunc:uQ};function nf(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=vp({inputs:{input:a},backend:n}),s=nf({inputs:{x:r},backend:n}),i=tf({inputs:{input:a},backend:n}),o=nf({inputs:{x:i},backend:n}),l=ys({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return iw({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var pQ={kernelName:Dl,backendName:"webgl",kernelFunc:nf};function QS(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=vp({inputs:{input:a},backend:n}),s=QS({inputs:{x:r},backend:n}),i=tf({inputs:{input:a},backend:n}),o=nf({inputs:{x:i},backend:n}),l=ys({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return iw({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var dQ={kernelName:gl,backendName:"webgl",kernelFunc:QS};function hQ(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return sw({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(u=>{w.assertShapesMatch(s,u.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===u.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(u=>{let p=sw({inputs:{input:u},backend:n,attrs:{dim:r}});return o.push(p),p}),c=AS({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(u=>n.disposeIntermediateTensorInfo(u)),c}var mQ={kernelName:yl,backendName:"webgl",kernelFunc:hQ},fQ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map((l,c)=>l[0]+e[c]+l[1]);let a=e.length,r=dt(a),s=t.map(l=>l[0]).join(","),i=t.map((l,c)=>l[0]+e[c]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a);if(a===1){this.userCode=` + `}},UQ=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{depth:s,onValue:i,offValue:o}=a,l=I.sizeFromShape(r.shape),u=new VQ(l,s,i,o),c=ye({inputs:{x:r},backend:n,attrs:{shape:[l]}}),p=n.runWebGLProgram(u,[c],r.dtype);n.disposeIntermediateTensorInfo(c);let d=[...r.shape,s],h=ye({inputs:{x:p},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(p),h},GQ={kernelName:ri,backendName:"webgl",kernelFunc:UQ};function nf(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=kp({inputs:{input:a},backend:n}),s=nf({inputs:{x:r},backend:n}),i=tf({inputs:{input:a},backend:n}),o=nf({inputs:{x:i},backend:n}),l=ys({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return iw({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var HQ={kernelName:Dl,backendName:"webgl",kernelFunc:nf};function aS(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=kp({inputs:{input:a},backend:n}),s=aS({inputs:{x:r},backend:n}),i=tf({inputs:{input:a},backend:n}),o=nf({inputs:{x:i},backend:n}),l=ys({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return iw({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var jQ={kernelName:gl,backendName:"webgl",kernelFunc:aS};function qQ(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return sw({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{I.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),I.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(c=>{let p=sw({inputs:{input:c},backend:n,attrs:{dim:r}});return o.push(p),p}),u=PT({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(c=>n.disposeIntermediateTensorInfo(c)),u}var XQ={kernelName:yl,backendName:"webgl",kernelFunc:qQ},KQ=class{constructor(e,t,n){this.variableNames=["x"],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=` int start = ${s}; int end = ${i}; + uniform float value; void main() { int outC = getOutputCoords(); if (outC < start || outC >= end) { - setOutput(float(${n})); + setOutput(value); } else { setOutput(getX(outC - start)); } @@ -3421,33 +3422,35 @@ return a / b;`,HJ=` `;return}this.userCode=` ${r} start = ${r}(${s}); ${r} end = ${r}(${i}); + uniform float value; void main() { ${r} outC = getOutputCoords(); if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) { - setOutput(float(${n})); + setOutput(value); } else { ${r} coords = outC - start; setOutput(getX(${o})); } } - `}},gQ=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((m,f)=>m[0]+e[f]+m[1]);let a=e.length,r=dt(a),s=t.map(m=>m[0]).join(","),i=t.map((m,f)=>m[0]+e[f]).join(","),o=gn("rc",a),l=gn("source",a),c=`${o[a-1]} < ${this.outputShape[a-1]}`,u=a===1?"source":`vec2(${l.slice(-2).join()})`,p=[`${r} rc = outputLoc;`,`${o[a-1]} += 1; - if(${c}) { + `}getCustomSetupFunc(e){return(t,n)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}},YQ=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((m,f)=>m[0]+e[f]+m[1]);let a=e.length,r=ht(a),s=t.map(m=>m[0]).join(","),i=t.map((m,f)=>m[0]+e[f]).join(","),o=gn("rc",a),l=gn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,c=a===1?"source":`vec2(${l.slice(-2).join()})`,p=[`${r} rc = outputLoc;`,`${o[a-1]} += 1; + if(${u}) { `,a===1?"":`} rc = outputLoc; ${o[a-2]} += 1; if(${o[a-2]} < ${this.outputShape[a-2]}) {`,a===1?"":` ${o[a-1]} += 1; - if(${c}) {`],d=a===1?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))",h="";for(let m=0,f=a===1?2:4;m= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))",h="";for(let m=0,f=a===1?2:4;m{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a,o=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new gQ(r.shape,s,i):new fQ(r.shape,s,i);return n.runWebGLProgram(o,[r],r.dtype)},yQ={kernelName:si,backendName:"webgl",kernelFunc:ZS},bQ=` + `}getCustomSetupFunc(e){return(t,n)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}},rS=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a,o=Z().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new YQ(r.shape,s,i):new KQ(r.shape,s,i),l=o.getCustomSetupFunc(i);return n.runWebGLProgram(o,[r],r.dtype,l)},JQ={kernelName:si,backendName:"webgl",kernelFunc:rS},QQ=` if(a < 0.0 && floor(b) < b){ return NAN; } @@ -3464,7 +3467,7 @@ return a / b;`,HJ=` } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); -`,xQ=` +`,ZQ=` // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise. vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1))); vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1); @@ -3478,11 +3481,11 @@ return a / b;`,HJ=` result.a = isExpZero.a ? 1.0 : result.a; vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b)); - `+Xm+` + `+Km+` return result; -`,vQ=sn({opSnippet:bQ,packedOpSnippet:xQ}),wQ={kernelName:ii,backendName:"webgl",kernelFunc:vQ};function kQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=[],c=w.parseAxisParam(s,r.shape),u=c,p=_.getAxesPermutation(u,o),d=r;p!=null&&(d=An({inputs:{x:r},backend:n,attrs:{perm:p}}),u=_.getInnerMostAxes(u.length,o),l.push(d)),_.assertAxesAreInnerMostDims("prod",u,o);let h;if(n.shouldExecuteOnCPU([d])){let m=n.texData.get(d.dataId).values,{outVals:f,outShape:g,outDtype:y}=U8(d.shape,d.dtype,m,u);h=n.makeTensorInfo(g,y,f)}else{let[m,f]=_.computeOutAndReduceShapes(d.shape,u),g=w.sizeFromShape(f),y=ye({inputs:{x:d},backend:n,attrs:{shape:[-1,g]}}),b=lh(r.dtype),x=Zi(y,b,"prod",n);h=ye({inputs:{x},backend:n,attrs:{shape:m}}),l.push(y),l.push(x)}if(i){l.push(h);let m=_.expandShapeToKeepDim(h.shape,c);h=ye({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var IQ={kernelName:bl,backendName:"webgl",kernelFunc:kQ},e2=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=G8(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},TQ={kernelName:mc,backendName:"webgl",kernelFunc:e2},NQ="return 1.0 / x;",SQ=Ke({opSnippet:NQ}),CQ={kernelName:xl,backendName:"webgl",kernelFunc:SQ},_Q=Ma+` +`,eZ=on({opSnippet:QQ,packedOpSnippet:ZQ}),tZ={kernelName:ii,backendName:"webgl",kernelFunc:eZ};function nZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=[],u=I.parseAxisParam(s,r.shape),c=u,p=E.getAxesPermutation(c,o),d=r;p!=null&&(d=En({inputs:{x:r},backend:n,attrs:{perm:p}}),c=E.getInnerMostAxes(c.length,o),l.push(d)),E.assertAxesAreInnerMostDims("prod",c,o);let h;if(n.shouldExecuteOnCPU([d])){let m=n.texData.get(d.dataId).values,{outVals:f,outShape:g,outDtype:y}=IX(d.shape,d.dtype,m,c);h=n.makeTensorInfo(g,y,f)}else{let[m,f]=E.computeOutAndReduceShapes(d.shape,c),g=I.sizeFromShape(f),y=ye({inputs:{x:d},backend:n,attrs:{shape:[-1,g]}}),b=uh(r.dtype),x=Zi(y,b,"prod",n);h=ye({inputs:{x},backend:n,attrs:{shape:m}}),l.push(y),l.push(x)}if(i){l.push(h);let m=E.expandShapeToKeepDim(h.shape,u);h=ye({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var aZ={kernelName:bl,backendName:"webgl",kernelFunc:nZ},sS=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=NX(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},rZ={kernelName:mc,backendName:"webgl",kernelFunc:sS},sZ="return 1.0 / x;",iZ=Xe({opSnippet:sZ}),oZ={kernelName:xl,backendName:"webgl",kernelFunc:iZ},lZ=Pa+` return (x < 0.0) ? 0.0 : x; -`,EQ=` +`,uZ=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -3492,9 +3495,9 @@ return a / b;`,HJ=` result.a = isNaN.a ? x.a : result.a; return result; -`,FQ=Ke({opSnippet:_Q,packedOpSnippet:EQ}),AQ={kernelName:li,backendName:"webgl",kernelFunc:FQ},$Q=Ma+` +`,cZ=Xe({opSnippet:lZ,packedOpSnippet:uZ}),pZ={kernelName:li,backendName:"webgl",kernelFunc:cZ},dZ=Pa+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,DQ=` +`,hZ=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -3504,10 +3507,10 @@ return a / b;`,HJ=` result.a = isNaN.a ? x.a : result.a; return result; -`,RQ=Ke({opSnippet:$Q,packedOpSnippet:DQ}),MQ={kernelName:ci,backendName:"webgl",kernelFunc:RQ},PQ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let c=[a&&t>1?i-1:i,a&&n>1?o-1:o],u=[a&&t>1?t-1:t,a&&n>1?n-1:n],p;r?p="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":p="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` +`,mZ=Xe({opSnippet:dZ,packedOpSnippet:hZ}),fZ={kernelName:ci,backendName:"webgl",kernelFunc:mZ},gZ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],c=[a&&t>1?t-1:t,a&&n>1?n-1:n],p;r?p="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":p="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( - ${c[0]/u[0]}, - ${c[1]/u[1]}); + ${u[0]/c[0]}, + ${u[1]/c[1]}); const vec2 inputShapeRC = vec2(${i}.0, ${o}.0); void main() { @@ -3537,11 +3540,11 @@ return a / b;`,HJ=` setOutput(newValue); } - `}},OQ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let c=[a&&t>1?i-1:i,a&&n>1?o-1:o],u=[a&&t>1?t-1:t,a&&n>1?n-1:n],p;r?p="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":p="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}},yZ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],c=[a&&t>1?t-1:t,a&&n>1?n-1:n],p;r?p="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":p="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( - ${c[0]/u[0]}, - ${c[1]/u[1]}, - ${c[1]/u[1]}); + ${u[0]/c[0]}, + ${u[1]/c[1]}, + ${u[1]/c[1]}); const vec3 inputShapeRC = vec3(${i}.0, ${o}.0, ${o}.0); @@ -3614,7 +3617,7 @@ return a / b;`,HJ=` setOutput(newValue); } - `}};function LQ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,c]=o,u=ee().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new OQ(r.shape,l,c,s,i):new PQ(r.shape,l,c,s,i);return n.runWebGLProgram(u,[r],"float32")}var zQ={kernelName:ui,backendName:"webgl",kernelFunc:LQ},BQ=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],c=o[0]/l[0],u=o[1]/l[1],p=1/c,d=1/u,h=Math.ceil(p)*2+2,m=Math.ceil(d)*2+2;this.userCode=` + `}};function bZ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,c=Z().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new yZ(r.shape,l,u,s,i):new gZ(r.shape,l,u,s,i);return n.runWebGLProgram(c,[r],"float32")}var xZ={kernelName:ui,backendName:"webgl",kernelFunc:bZ},vZ=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],c=o[1]/l[1],p=1/u,d=1/c,h=Math.ceil(p)*2+2,m=Math.ceil(d)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3624,8 +3627,8 @@ return a / b;`,HJ=` float accumulator = 0.0; - const float heightScale = float(${c}); - const float widthScale = float(${u}); + const float heightScale = float(${u}); + const float widthScale = float(${c}); const float invHeightScale = float(${p}); const float invWidthScale = float(${d}); @@ -3695,10 +3698,10 @@ return a / b;`,HJ=` setOutput(accumulator); } - `}};function WQ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new BQ(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var VQ={kernelName:Zd,backendName:"webgl",kernelFunc:WQ},UQ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let c=[a&&t>1?i-1:i,a&&n>1?o-1:o],u=[a&&t>1?t-1:t,a&&n>1?n-1:n],p=a?"0.5":"0.0",d;r?d="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":d="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}};function wZ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new vZ(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var kZ={kernelName:Zd,backendName:"webgl",kernelFunc:wZ},IZ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],c=[a&&t>1?t-1:t,a&&n>1?n-1:n],p=a?"0.5":"0.0",d;r?d="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":d="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( - ${c[0]/u[0]}, - ${c[1]/u[1]}); + ${u[0]/c[0]}, + ${u[1]/c[1]}); const vec2 inputShapeRC = vec2(${i}.0, ${o}.0); void main() { @@ -3717,7 +3720,7 @@ return a / b;`,HJ=` setOutput(newValue); } - `}};function GQ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,c]=o,u=new UQ(r.shape,l,c,s,i);return n.runWebGLProgram(u,[r],r.dtype)}var HQ={kernelName:fc,backendName:"webgl",kernelFunc:GQ},jQ=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],c=o[0]/l[0],u=o[1]/l[1],p=1/c,d=1/u,h=Math.ceil(p)*2+2,m=Math.ceil(d)*2+2;this.userCode=` + `}};function NZ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,c=new IZ(r.shape,l,u,s,i);return n.runWebGLProgram(c,[r],r.dtype)}var TZ={kernelName:fc,backendName:"webgl",kernelFunc:NZ},SZ=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],c=o[1]/l[1],p=1/u,d=1/c,h=Math.ceil(p)*2+2,m=Math.ceil(d)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3727,8 +3730,8 @@ return a / b;`,HJ=` float accumulator = 0.0; - const float heightScale = float(${c}); - const float widthScale = float(${u}); + const float heightScale = float(${u}); + const float widthScale = float(${c}); const float invHeightScale = float(${p}); const float invWidthScale = float(${d}); @@ -3787,17 +3790,17 @@ return a / b;`,HJ=` setOutput(accumulator); } - `}};function qQ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new jQ(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var KQ={kernelName:Qd,backendName:"webgl",kernelFunc:qQ},XQ=class{constructor(e,t){this.variableNames=["x"];let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=e,n===1){this.userCode=` + `}};function CZ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new SZ(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var AZ={kernelName:Qd,backendName:"webgl",kernelFunc:CZ},FZ=class{constructor(e,t){this.variableNames=["x"];let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=e,n===1){this.userCode=` void main() { int coord = getOutputCoords(); setOutput(getX(${e[0]} - coord - 1)); } - `;return}let a=i=>t.indexOf(i)!==-1&&e[i]!==1?`${e[i]} - coords[${i}] - 1`:`coords[${i}]`,r=e.map((i,o)=>a(o)).join(","),s=dt(n);this.userCode=` + `;return}let a=i=>t.indexOf(i)!==-1&&e[i]!==1?`${e[i]} - coords[${i}] - 1`:`coords[${i}]`,r=e.map((i,o)=>a(o)).join(","),s=ht(n);this.userCode=` void main() { ${s} coords = getOutputCoords(); setOutput(getX(${r})); } - `}},YQ=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;let a=gn("rc",n),r=`${a[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${a[n-2]} + 1 < ${this.outputShape[n-2]}`,i=dt(n);n===1?this.userCode=` + `}},_Z=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;let a=gn("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=` void main(){ int rc = getOutputCoords(); vec4 result = vec4(0.); @@ -3818,31 +3821,34 @@ return a / b;`,HJ=` result.g = ${l(a.slice())}; } if(${s}) { - result.b = ${c(a.slice())}; + result.b = ${u(a.slice())}; if(${r}) { - result.a = ${u(a.slice())}; + result.a = ${c(a.slice())}; } } setOutput(result); } - `;function o(h){return p(h)}function l(h){return h[n-1]="("+h[n-1]+" + 1)",p(h)}function c(h){return h[n-2]="("+h[n-2]+" + 1)",p(h)}function u(h){return h[n-1]="("+h[n-1]+" + 1)",h[n-2]="("+h[n-2]+" + 1)",p(h)}function p(h){let m=e.map((y,b)=>d(b,h)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function d(h,m){return t.indexOf(h)!==-1&&e[h]!==1?`${e[h]} - ${m[h]} - 1`:`${m[h]}`}}};function JQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=r.shape.length,o=w.parseAxisParam(s,r.shape);if(i===0)return Gn({inputs:{x:r},backend:n});let l=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new YQ(r.shape,o):new XQ(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var QQ={kernelName:pi,backendName:"webgl",kernelFunc:JQ},ZQ=class{constructor(e,t,n,a){this.variableNames=["Image"],this.outputShape=[];let r=e[1],s=e[2],i=Math.sin(t).toFixed(3),o=Math.cos(t).toFixed(3);this.outputShape=e;let[l,c]=_.getImageCenter(a,r,s),u=l.toFixed(3),p=c.toFixed(3),d="";typeof n=="number"?d=`float outputValue = ${n.toFixed(2)};`:d=` - vec3 fill = vec3(${n.join(",")}); + `;function o(h){return p(h)}function l(h){return h[n-1]="("+h[n-1]+" + 1)",p(h)}function u(h){return h[n-2]="("+h[n-2]+" + 1)",p(h)}function c(h){return h[n-1]="("+h[n-1]+" + 1)",h[n-2]="("+h[n-2]+" + 1)",p(h)}function p(h){let m=e.map((y,b)=>d(b,h)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function d(h,m){return t.indexOf(h)!==-1&&e[h]!==1?`${e[h]} - ${m[h]} - 1`:`${m[h]}`}}};function EZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=r.shape.length,o=I.parseAxisParam(s,r.shape);if(i===0)return Gn({inputs:{x:r},backend:n});let l=Z().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new _Z(r.shape,o):new FZ(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var $Z={kernelName:pi,backendName:"webgl",kernelFunc:EZ},DZ=class{constructor(e,t){this.variableNames=["Image"],this.outputShape=[];let n=e[1],a=e[2];this.outputShape=e;let r="";typeof t=="number"?r=`float outputValue = ${t.toFixed(2)};`:r=` + vec3 fill = vec3(${t.join(",")}); float outputValue = fill[coords[3]];`,this.userCode=` + uniform vec4 params; void main() { ivec4 coords = getOutputCoords(); int x = coords[2]; int y = coords[1]; - float coordXFloat = (float(x) - ${u}) * ${o} - (float(y) - ${p}) * ${i}; - float coordYFloat = (float(x) - ${u}) * ${i} + (float(y) - ${p}) * ${o}; - int coordX = int(round(coordXFloat + ${u})); - int coordY = int(round(coordYFloat + ${p})); - ${d} - if(coordX >= 0 && coordX < ${s} && coordY >= 0 && coordY < ${r}) { + float coordXFloat = (float(x) - params[0]) * params[3] - + (float(y) - params[1]) * params[2]; + float coordYFloat = (float(x) - params[0]) * params[2] + + (float(y) - params[1]) * params[3]; + int coordX = int(round(coordXFloat + params[0])); + int coordY = int(round(coordYFloat + params[1])); + ${r} + if(coordX >= 0 && coordX < ${a} && coordY >= 0 && coordY < ${n}) { outputValue = getImage(coords[0], coordY, coordX, coords[3]); } setOutput(outputValue); } - `}},eZ={kernelName:Rl,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new ZQ(a.shape,r,s,i);return o.runWebGLProgram(l,[a],a.dtype)}},tZ=` + `}getCustomSetupFunc(e,t,n,a){return(r,s)=>{this.paramsLoc==null&&(this.paramsLoc=r.getUniformLocationNoThrow(s,"params")),r.gl.uniform4f(this.paramsLoc,e,t,n,a)}}},MZ={kernelName:Ml,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new DZ(a.shape,s),[u,c]=E.getImageCenter(i,a.shape[1],a.shape[2]),p=l.getCustomSetupFunc(u,c,Math.sin(r),Math.cos(r));return o.runWebGLProgram(l,[a],a.dtype,p)}},RZ=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); @@ -3857,7 +3863,7 @@ return a / b;`,HJ=` return base + 1.0; } } -`,nZ=Ke({opSnippet:tZ}),aZ={kernelName:di,backendName:"webgl",kernelFunc:nZ},rZ="return inversesqrt(x);",sZ=Ke({opSnippet:rZ,cpuKernelImpl:H8}),iZ={kernelName:hi,backendName:"webgl",kernelFunc:sZ},t2=class{constructor(e,t,n,a,r,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let o=dt(r.length),l=dt(s.length),c="";n===1?c="i":n===2&&(c="i, j");let u=`getIndices(${c})`,p="";a===1?p="i":a===2&&(p="i, coords[1]");let d=`getUpdates(${p})`,h=t>1?"strides[j]":"strides";this.userCode=` +`,PZ=Xe({opSnippet:RZ}),OZ={kernelName:di,backendName:"webgl",kernelFunc:PZ},LZ="return inversesqrt(x);",zZ=Xe({opSnippet:LZ,cpuKernelImpl:TX}),WZ={kernelName:hi,backendName:"webgl",kernelFunc:zZ},iS=class{constructor(e,t,n,a,r,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let o=ht(r.length),l=ht(s.length),u="";n===1?u="i":n===2&&(u="i, j");let c=`getIndices(${u})`,p="";a===1?p="i":a===2&&(p="i, coords[1]");let d=`getUpdates(${p})`,h=t>1?"strides[j]":"strides";this.userCode=` ${o} strides = ${o}(${r}); void main() { @@ -3867,7 +3873,7 @@ return a / b;`,HJ=` for (int i = 0; i < ${e}; i++) { int flattenedIndex = 0; for (int j = 0; j < ${t}; j++) { - int index = round(${u}); + int index = round(${c}); flattenedIndex += index * ${h}; } if (flattenedIndex == coords[0]) { @@ -3877,7 +3883,7 @@ return a / b;`,HJ=` } setOutput(mix(getDefaultValue(), sum, float(found))); } - `}};function oZ(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:c,strides:u,outputSize:p}=_.calculateShapes(s,r,i),d=[p/c,c];if(p===0)return n.makeTensorInfo(i,r.dtype);let h=ye({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),m=ye({inputs:{x:s},backend:n,attrs:{shape:[l,c]}}),f=n.makeTensorInfo([],"float32",new Float32Array([0])),g=new t2(l,o,h.shape.length,m.shape.length,u,d),y=n.runWebGLProgram(g,[m,h,f],m.dtype),b=ye({inputs:{x:y},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(f),b}var lZ={kernelName:wl,backendName:"webgl",kernelFunc:oZ},uZ=class{constructor(e,t,n){this.variableNames=["c","a","b"],this.outputShape=t;let a,r;if(n>4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)r="resRC",a="resRC";else{let i=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[],l=[];for(let c=0;c4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)r="resRC",a="resRC";else{let i=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[],l=[];for(let u=0;u= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); -`,hZ=Ke({opSnippet:dZ}),mZ={kernelName:Il,backendName:"webgl",kernelFunc:hZ},fZ="return 1.0 / (1.0 + exp(-1.0 * x));",gZ=Ke({opSnippet:fZ}),yZ={kernelName:fi,backendName:"webgl",kernelFunc:gZ},bZ=` +`,qZ=Xe({opSnippet:jZ}),XZ={kernelName:Il,backendName:"webgl",kernelFunc:qZ},KZ="return 1.0 / (1.0 + exp(-1.0 * x));",YZ=Xe({opSnippet:KZ}),JZ={kernelName:fi,backendName:"webgl",kernelFunc:YZ},QZ=` if (isnan(x)) { return 0.0; } return sign(x); -`,xZ=Ke({opSnippet:bZ}),vZ={kernelName:Sl,backendName:"webgl",kernelFunc:xZ},wZ=mS+` +`,ZZ=Xe({opSnippet:QZ}),eee={kernelName:Sl,backendName:"webgl",kernelFunc:ZZ},tee=xT+` return sin(x); -`,kZ=Ke({opSnippet:wZ}),IZ={kernelName:mi,backendName:"webgl",kernelFunc:kZ},TZ=` +`,nee=Xe({opSnippet:tee}),aee={kernelName:mi,backendName:"webgl",kernelFunc:nee},ree=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; -`,NZ=Ke({opSnippet:TZ}),SZ={kernelName:Nl,backendName:"webgl",kernelFunc:NZ},CZ=` +`,see=Xe({opSnippet:ree}),iee={kernelName:Tl,backendName:"webgl",kernelFunc:see},oee=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; @@ -3921,9 +3927,9 @@ return a / b;`,HJ=` result = log(exp_x + 1.0); } return result; -`,_Z=Ke({opSnippet:CZ}),EZ={kernelName:Cl,backendName:"webgl",kernelFunc:_Z},FZ=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((y,b)=>y*b),l=[[0,0]];l.push(...i);for(let y=1+s.length;yn.disposeIntermediateTensorInfo(y)),g},AZ={kernelName:gc,backendName:"webgl",kernelFunc:FZ};function $Z(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:c,strides:u,outputSize:p}=_.calculateShapes(s,r,o),d=!1,h=new t2(c,l,r.shape.length,s.shape.length,u,[p,1],d),m=n.runWebGLProgram(h,[s,r,i],s.dtype),f=ye({inputs:{x:m},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(m),f}var DZ={kernelName:eh,backendName:"webgl",kernelFunc:$Z};function RZ(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=_.prepareSplitSize(r,s,o),c=r.shape.length,u=new Array(c).fill(0),p=r.shape.slice();return l.map(d=>{let h=[...p];h[o]=d;let m=xp({inputs:{x:r},backend:n,attrs:{begin:u,size:h}});return u[o]+=d,m})}var MZ={kernelName:_l,backendName:"webgl",kernelFunc:RZ},PZ="return sqrt(x);",OZ=Ke({opSnippet:PZ}),LZ={kernelName:gi,backendName:"webgl",kernelFunc:OZ},zZ="return x * x;",BZ=Ke({opSnippet:zZ}),WZ={kernelName:yc,backendName:"webgl",kernelFunc:BZ},n2="return (a - b) * (a - b);",VZ=sn({opSnippet:n2,packedOpSnippet:n2}),UZ={kernelName:xi,backendName:"webgl",kernelFunc:VZ};function GZ({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Ma+` +`,lee=Xe({opSnippet:oee}),uee={kernelName:Cl,backendName:"webgl",kernelFunc:lee},cee=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a;I.assert(r.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((y,b)=>y*b),l=[[0,0]];l.push(...i);for(let y=1+s.length;yn.disposeIntermediateTensorInfo(y)),g},pee={kernelName:gc,backendName:"webgl",kernelFunc:cee};function dee(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,strides:c,outputSize:p}=E.calculateShapes(s,r,o),d=!1,h=new iS(u,l,r.shape.length,s.shape.length,c,[p,1],d),m=n.runWebGLProgram(h,[s,r,i],s.dtype),f=ye({inputs:{x:m},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(m),f}var hee={kernelName:eh,backendName:"webgl",kernelFunc:dee};function mee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=I.parseAxisParam(i,r.shape)[0],l=E.prepareSplitSize(r,s,o),u=r.shape.length,c=new Array(u).fill(0),p=r.shape.slice();return l.map(d=>{let h=[...p];h[o]=d;let m=wp({inputs:{x:r},backend:n,attrs:{begin:c,size:h}});return c[o]+=d,m})}var fee={kernelName:Al,backendName:"webgl",kernelFunc:mee},gee="return sqrt(x);",yee=Xe({opSnippet:gee}),bee={kernelName:gi,backendName:"webgl",kernelFunc:yee},xee="return x * x;",vee=Xe({opSnippet:xee}),wee={kernelName:yc,backendName:"webgl",kernelFunc:vee},oS="return (a - b) * (a - b);",kee=on({opSnippet:oS,packedOpSnippet:oS}),Iee={kernelName:xi,backendName:"webgl",kernelFunc:kee};function Nee({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Pa+` return x > 0.0 ? 1.0 : float(${t.alpha}); - `,s=new gs(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var HZ={kernelName:Kr,backendName:"webgl",kernelFunc:GZ},jZ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;let a=n.length,r=dt(n.length),s=dt(n.length),i="";if(a===1)i="coords * strides + begin";else{let o=0;i=n.map((l,c)=>(o++,n.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${o-1}] * strides[${c}] + begin[${c}]`)).join(",")}this.userCode=` + `,s=new gs(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var Tee={kernelName:Xr,backendName:"webgl",kernelFunc:Nee},See=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;let a=n.length,r=ht(n.length),s=ht(n.length),i="";if(a===1)i="coords * strides + begin";else{let o=0;i=n.map((l,u)=>(o++,n.length===1?`coords * strides[${u}] + begin[${u}]`:`coords[${o-1}] * strides[${u}] + begin[${u}]`)).join(",")}this.userCode=` ${r} begin = ${r}(${e}); ${r} strides = ${r}(${t}); @@ -3931,15 +3937,127 @@ return a / b;`,HJ=` ${s} coords = getOutputCoords(); setOutput(getX(${i})); } - `}};function qZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:c,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:d}=a,{nonStrided:h,$begin:m,$strides:f,size:g,newShape:y,outShape:b}=dn.sliceInfo(r.shape,s,i,o,l,c,u,p,d),x=ye({inputs:{x:r},backend:n,attrs:{shape:y}}),v;if(h){let T=xp({inputs:{x},backend:n,attrs:{begin:m,size:g}});v=ye({inputs:{x:T},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(T)}else if(b.some(T=>T===0))v=n.makeTensorInfo(b,r.dtype,[]);else if(n.shouldExecuteOnCPU([x])){let T=n.texData.get(x.dataId).values,S=Le(x.shape,x.dtype,T),A=q8(b,S,f,m);v=n.makeTensorInfo(b,x.dtype,A.values)}else{let T=new jZ(m,f,b);v=n.runWebGLProgram(T,[x],x.dtype)}let N=ye({inputs:{x:v},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(x),n.disposeIntermediateTensorInfo(v),N}var KZ={kernelName:El,backendName:"webgl",kernelFunc:qZ},XZ="return tan(x);",YZ=Ke({opSnippet:XZ}),JZ={kernelName:Fl,backendName:"webgl",kernelFunc:YZ},QZ=` + `}};function Cee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:d}=a,{nonStrided:h,$begin:m,$strides:f,size:g,newShape:y,outShape:b}=dn.sliceInfo(r.shape,s,i,o,l,u,c,p,d),x=ye({inputs:{x:r},backend:n,attrs:{shape:y}}),v;if(h){let w=wp({inputs:{x},backend:n,attrs:{begin:m,size:g}});v=ye({inputs:{x:w},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(w)}else if(b.some(w=>w===0))v=n.makeTensorInfo(b,r.dtype,[]);else if(n.shouldExecuteOnCPU([x])){let w=n.texData.get(x.dataId).values,S=Le(x.shape,x.dtype,w),A=CX(b,S,f,m);v=n.makeTensorInfo(b,x.dtype,A.values)}else{let w=new See(m,f,b);v=n.runWebGLProgram(w,[x],x.dtype)}let k=ye({inputs:{x:v},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(x),n.disposeIntermediateTensorInfo(v),k}var Aee={kernelName:Fl,backendName:"webgl",kernelFunc:Cee},Fee="return tan(x);",_ee=Xe({opSnippet:Fee}),Eee={kernelName:_l,backendName:"webgl",kernelFunc:_ee},$ee=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); -`,ZZ=Ke({opSnippet:QZ}),eee={kernelName:wi,backendName:"webgl",kernelFunc:ZZ},nee=class{constructor(e,t){this.variableNames=["A"];let n=new Array(e.length);for(let s=0;s5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${e[0]})`;let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],a=[];for(let r=0;rw.decodeString(u)),l=Le(r.shape,r.dtype,o),c=X8(l,s);return n.makeTensorInfo(c.shape,c.dtype,c.values)}let i=new nee(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var aee={kernelName:qr,backendName:"webgl",kernelFunc:a2};function ree(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a,o=n.readSync(r.dataId),[l,c]=Y8(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(c.shape,c.dtype,c.values)]}var see={kernelName:Al,backendName:"webgl",kernelFunc:ree};function iee(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;fp(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=a.readSync(s.dataId),{outputValues:o,outputShape:l,indices:c}=J8(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([c.length],"int32",c)]}var oee={kernelName:th,backendName:"webgl",kernelFunc:iee};function lee(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r,o=i.shape.length,l=r.shape[s],c=new Array(o-1),u=0;for(let f=0;fn.disposeIntermediateTensorInfo(f)),m}var uee={kernelName:$l,backendName:"webgl",kernelFunc:lee},cee=class{constructor(e,t){this.variableNames=["x","segmentIds"];let n=e.windowSize,a=e.batchSize,r=e.inSize,s=e.numSegments,i=s*Math.ceil(r/n);this.outputShape=[a,i];let o="0.0",l="sumValue",c=Math.floor(n/4)*4,u=n%4,p=` + `}};function Ree(e){let t=e.length;if(t>5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${e[0]})`;let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],a=[];for(let r=0;rI.decodeString(c)),l=Le(r.shape,r.dtype,o),u=FX(l,s);return n.makeTensorInfo(u.shape,u.dtype,u.values)}let i=new Pee(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var Oee={kernelName:qr,backendName:"webgl",kernelFunc:lS};function Lee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a,o=n.readSync(r.dataId),[l,u]=_X(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(u.shape,u.dtype,u.values)]}var zee={kernelName:El,backendName:"webgl",kernelFunc:Lee},Wee=class{constructor(e,t,n,a,r,s){this.variableNames=["Image","Transforms"],this.outputShape=s;let i=n==="nearest"?1:2,o;switch(a){case"constant":o=1;break;case"reflect":o=2;break;case"wrap":o=3;break;case"nearest":o=4;break;default:o=1;break}this.userCode=` + float mapCoord(float outCoord, float len) { + float inCoord = outCoord; + if(${o} == 2) { + if (inCoord < 0.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz2 = 2.0 * len; + if (inCoord < sz2) { + inCoord = sz2 * float(int(float(-inCoord / sz2))) + + inCoord; + } + inCoord = inCoord < -len ? inCoord + sz2 : -inCoord - 1.0; + } + } else if (inCoord > len - 1.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz2 = 2.0 * len; + inCoord -= sz2 * float(int(float(inCoord / sz2))); + if (inCoord >= len) { + inCoord = sz2 - inCoord - 1.0; + } + } + } + return clamp(inCoord, 0.0, len - 1.0); + } else if (${o} == 3) { + if (inCoord < 0.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz = len - 1.0; + inCoord += len * (float(int(float(-inCoord / sz))) + 1.0); + } + } else if (inCoord > len - 1.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz = len - 1.0; + inCoord -= len * float(int(float(inCoord / sz))); + } + } + return clamp(inCoord, 0.0, len - 1.0); + } else if (${o} == 4) { + return clamp(outCoord, 0.0, len - 1.0); + } else { + return outCoord; + } + } + + float readWithFillValue(int batch, int coordY, int coordX, + int channel) { + float outputValue; + if (0 <= coordY && coordY < ${e} && 0 <= coordX && coordX < ${t}) { + outputValue = getImage(batch, coordY, coordX, channel); + } else { + outputValue = float(${r}); + } + return outputValue; + } + + void main() { + ivec4 coords = getOutputCoords(); + float outputValue; + int batch = coords[0]; + int x = coords[2]; + int y = coords[1]; + int channel = coords[3]; + float xf = float(x); + float yf = float(y); + float a1 = getTransforms(batch, 0); + float a2 = getTransforms(batch, 1); + float a3 = getTransforms(batch, 2); + float b1 = getTransforms(batch, 3); + float b2 = getTransforms(batch, 4); + float b3 = getTransforms(batch, 5); + float c1 = getTransforms(batch, 6); + float c2 = getTransforms(batch, 7); + float projection = c1 * xf + c2 * yf + 1.0; + if (projection == 0.0) { + outputValue = float(${r}); + } else { + float inX = (a1 * xf + a2 * yf + a3) / projection; + float inY = (b1 * xf + b2 * yf + b3) / projection; + float mapX = mapCoord(inX, float(${t})); + float mapY = mapCoord(inY, float(${e})); + + if (${i} == 1) { + int coordY = int(round(mapY)); + int coordX = int(round(mapX)); + outputValue = readWithFillValue(batch, coordY, coordX, + channel); + } else { + float yFloor = floor(mapY); + float xFloor = floor(mapX); + float yCeil = yFloor + 1.0; + float xCeil = xFloor + 1.0; + float valueYFloor = (xCeil - mapX) * + readWithFillValue(batch, int(yFloor), int(xFloor), channel) + + (mapX - xFloor) * + readWithFillValue(batch, int(yFloor), int(xCeil), channel); + float valueYCeil = (xCeil - mapX) * + readWithFillValue(batch, int(yCeil), int(xFloor), channel) + + (mapX - xFloor) * + readWithFillValue(batch, int(yCeil), int(xCeil), channel); + outputValue = (yCeil - mapY) * valueYFloor + + (mapY - yFloor) * valueYCeil; + } + } + setOutput(outputValue); + } + `}};function Bee(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[c,p,d,h]=r.shape,[m,f]=u!=null?u:[p,d],g=[c,m,f,h],y=new Wee(p,d,i,o,l,g);return n.runWebGLProgram(y,[r,s],"float32")}var Vee={kernelName:th,backendName:"webgl",kernelFunc:Bee};function Uee(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;yp(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=a.readSync(s.dataId),{outputValues:o,outputShape:l,indices:u}=EX(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var Gee={kernelName:nh,backendName:"webgl",kernelFunc:Uee};function Hee(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r,o=i.shape.length,l=r.shape[s],u=new Array(o-1),c=0;for(let f=0;fn.disposeIntermediateTensorInfo(f)),m}var jee={kernelName:$l,backendName:"webgl",kernelFunc:Hee},qee=class{constructor(e,t){this.variableNames=["x","segmentIds"];let n=e.windowSize,a=e.batchSize,r=e.inSize,s=e.numSegments,i=s*Math.ceil(r/n);this.outputShape=[a,i];let o="0.0",l="sumValue",u=Math.floor(n/4)*4,c=n%4,p=` sumValue += dot(values, segFilter); `,d="";r%n>0&&(d=` if (inIdx < 0 || inIdx >= ${r}) { @@ -3972,7 +4090,7 @@ return a / b;`,HJ=` float sumValue = 0.0; - for (int i = 0; i < ${c}; i += 4) { + for (int i = 0; i < ${u}; i += 4) { int inIdx = inOffset + i; vec4 values = vec4( getValue(batch, inIdx), @@ -3991,8 +4109,8 @@ return a / b;`,HJ=` ${p} } - int inIdx = inOffset + ${c}; - if (${u===1}) { + int inIdx = inOffset + ${u}; + if (${c===1}) { vec4 values = vec4( getValue(batch, inIdx), initializationValue, @@ -4010,7 +4128,7 @@ return a / b;`,HJ=` ); ${p} - } else if (${u===2}) { + } else if (${c===2}) { vec4 values = vec4( getValue(batch, inIdx), getValue(batch, inIdx + 1), @@ -4026,7 +4144,7 @@ return a / b;`,HJ=` ); ${p} - } else if (${u===3}) { + } else if (${c===3}) { vec4 values = vec4( getValue(batch, inIdx), getValue(batch, inIdx + 1), @@ -4045,7 +4163,7 @@ return a / b;`,HJ=` } setOutput(${l}); } - `}};function pee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,segmentIds:s}=t,{numSegments:i}=a,o=r.shape.length,l=[],c=0,u=_.getAxesPermutation([c],o),p=r;u!=null&&(p=An({inputs:{x:r},backend:n,attrs:{perm:u}}),l.push(p),c=_.getInnerMostAxes(1,o)[0]);let d=_.segment_util.computeOutShape(p.shape,c,i),h=w.sizeFromShape([p.shape[c]]),m=ye({inputs:{x:p},backend:n,attrs:{shape:[-1,h]}});l.push(m);let f=lh(r.dtype),g=(v,N,T,S,A)=>{let $=v.shape[0],R=v.shape[1],B=_.segment_util.segOpComputeOptimalWindowSize(R,A),V={windowSize:B,inSize:R,batchSize:$,numSegments:A},W=new cee(V,N),G=n.compileAndRun(W,[v,T],S);if(l.push(G),G.shape[1]===A)return G;let H=e2({backend:n,attrs:{start:0,stop:A,step:1,dtype:"float32"}}),X=a2({inputs:{x:H},backend:n,attrs:{reps:[R/B]}});return l.push(H),l.push(X),g(G,N,X,S,A)},y=g(m,"unsortedSegmentSum",s,f,i),b=ye({inputs:{x:y},backend:n,attrs:{shape:d}}),x=b;if(u!=null){l.push(b);let v=_.getUndoAxesPermutation(u);x=An({inputs:{x},backend:n,attrs:{perm:v}})}return l.forEach(v=>n.disposeIntermediateTensorInfo(v)),x}var dee={kernelName:bc,backendName:"webgl",kernelFunc:pee},hee=[sJ,lJ,qK,XK,QK,tX,aX,iX,lX,cX,mX,gX,xX,kX,EX,NX,$X,PX,RX,BX,VX,GX,KX,tY,aY,uY,pY,fY,bY,_K,kY,$Y,RY,SY,LY,BY,PY,UY,jY,XY,JY,ZY,n7,l7,c7,r7,h7,g7,v7,T7,_7,A7,$7,D7,M7,O7,z7,W7,U7,q7,J7,Z7,t9,r9,l9,d9,g9,CK,b9,wY,w9,T9,C9,FK,A9,M9,O9,G9,W9,K9,J9,tJ,cJ,bJ,gJ,kJ,TJ,SJ,mJ,_J,FJ,RJ,LJ,VJ,YJ,MK,QJ,tQ,rQ,oQ,sY,cQ,dQ,mQ,yQ,wQ,$K,IQ,TQ,iY,jJ,CQ,MQ,AQ,OK,zQ,VQ,HQ,KQ,QQ,eZ,aZ,iZ,lZ,pZ,mZ,yZ,vZ,IZ,SZ,ZX,KJ,EZ,AZ,DZ,MZ,LZ,WZ,UZ,HZ,KZ,qJ,GK,JZ,eee,aee,see,HK,oee,uee,dee,pQ];for(let e of hee)vc(e);var mee="3.2.0",fee={"tfjs-core":ik,"tfjs-backend-cpu":jU,"tfjs-backend-webgl":SK,"tfjs-data":DT,"tfjs-layers":Im,"tfjs-converter":CT,tfjs:mee},Hn;(function(e){e[e.float32=0]="float32",e[e.int32=1]="int32",e[e.bool=2]="bool",e[e.string=3]="string",e[e.complex64=4]="complex64"})(Hn||(Hn={}));var wp;(function(e){e[e.linear=0]="linear",e[e.relu=1]="relu",e[e.relu6=2]="relu6",e[e.prelu=3]="prelu",e[e.leakyrelu=4]="leakyrelu"})(wp||(wp={}));var r2;function gee(e){r2=e.wasm.cwrap(Ii,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function yee(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:c,activation:u,leakyreluAlpha:p}=a,d=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(s.dataId).id,m=0;if(i!=null){let A=n.dataIdMap.get(i.dataId);if(A.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${A.shape.length}.`);m=A.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=wp[u];if(g==null)throw new Error(`${u} activation not yet supported for FusedConv2D in the wasm backend.`);let y=l?r.shape[2]:r.shape[1],b=c?s.shape[1]:s.shape[2],x=r.shape[0],v=n.makeOutput([x,y,b],r.dtype),N=n.dataIdMap.get(v.dataId).id,T=new Uint8Array(new Int32Array(r.shape).buffer),S=new Uint8Array(new Int32Array(s.shape).buffer);return r2(d,T,r.shape.length,h,S,s.shape.length,l,c,g,m,f,p||0,N),v}var bee={kernelName:Ii,backendName:"wasm",setupFunc:gee,kernelFunc:yee};function $n(e){let t;function n(r){t=r.wasm.cwrap(e,null,["number","number"])}function a(r){let{backend:s,inputs:{x:i}}=r,o=s.dataIdMap.get(i.dataId).id,l=s.makeOutput(i.shape,i.dtype),c=s.dataIdMap.get(l.dataId).id;return w.sizeFromShape(l.shape)===0||t(o,c),l}return{kernelName:e,backendName:"wasm",setupFunc:n,kernelFunc:a}}var xee=$n(Po);function yn(e,t,n){let a;function r(i){a=i.wasm.cwrap(e,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:o,inputs:l}=i,{a:c,b:u}=l,p=o.dataIdMap.get(c.dataId).id,d=o.dataIdMap.get(u.dataId).id,h=n!=null?n:c.dtype,m=_.assertAndGetBroadcastShape(c.shape,u.shape),f=o.makeOutput(m,h);if(w.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(c.shape).buffer),y=new Uint8Array(new Int32Array(u.shape).buffer),b=o.dataIdMap.get(f.dataId).id,x=()=>a(p,g,c.shape.length,d,y,u.shape.length,Hn[c.dtype],b);if(t&&c.dtype==="float32")return x(),f;let v=_.getBroadcastDims(c.shape,m),N=_.getBroadcastDims(u.shape,m),T=v.every((A,$)=>A===$),S=N.every((A,$)=>A===$);if(T&&S)return x(),f;throw new Error(`Broadcasting along outer dims is not yet supported for ${c.dtype} ${e}.`)}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var vee=!0,wee=yn(Hr,vee),s2;function kee(e){s2=e.wasm.cwrap(As,null,["array","number","number","number"])}function Iee(e){let{inputs:t,backend:n}=e,a=n.makeOutput(t[0].shape,t[0].dtype);if(w.sizeFromShape(a.shape)===0)return a;let r=t.map(o=>n.dataIdMap.get(o.dataId).id),s=new Uint8Array(new Int32Array(r).buffer),i=n.dataIdMap.get(a.dataId).id;return s2(s,r.length,Hn[a.dtype],i),a}var Tee={kernelName:As,backendName:"wasm",setupFunc:kee,kernelFunc:Iee};function af(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var Nee={kernelName:Ks,backendName:"wasm",kernelFunc:af},i2;function See(e){i2=e.wasm.cwrap(ki,null,["number","array","number","number","number","array","number"])}function rf(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=_ee(t.x.shape,a.perm),i=!0;for(let m=0;m=r&&(s===-1||a[s]>a[i])&&(s=i);a[s]=r}return[n,a]}var Eee={kernelName:ki,backendName:"wasm",kernelFunc:rf,setupFunc:See};function Tu(e,t,n){let a=e.shape,r=e.shape.length,s=w.parseAxisParam(t,a),i=s,o=_.getAxesPermutation(i,r),l=null,c=!1;if(o!=null){let u=new Array(r);for(let d=0;d`new shape: ${i}, old shape: ${a.shape}. New shape and old shape must have the same number of elements.`),e.backend.incRef(a.dataId),{dataId:a.dataId,shape:i,dtype:a.dtype}}var Pee={kernelName:vl,backendName:"wasm",kernelFunc:Pa},u2;function Oee(e){u2=e.wasm.cwrap(Rs,null,["number","array","number","number","array","number","number","number","number"])}function Lee(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=r.shape.length,c=s.shape.length,u=i?r.shape[l-2]:r.shape[l-1],p=o?s.shape[c-1]:s.shape[c-2],d=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[c-2]:s.shape[c-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=w.sizeFromShape(m),y=w.sizeFromShape(f),b=g===y||g===1||y===1;w.assert(l>=2&&c>=2&&b,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${m}) and (${f}).`);let x=(g>y?r.shape.slice(0,-2):s.shape.slice(0,-2)).concat([d,h]);w.assert(u===p,()=>`Error in matMul: inner shapes (${u}) and (${p}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let v=i?[g,u,d]:[g,d,u],N=o?[y,h,p]:[y,p,h],T=Pa({inputs:{x:r},backend:n,attrs:{shape:v}}),S=Pa({inputs:{x:s},backend:n,attrs:{shape:N}}),A=n.dataIdMap.get(T.dataId).id,$=n.dataIdMap.get(S.dataId).id,R=i?T.shape[2]:T.shape[1],B=o?S.shape[1]:S.shape[2],V=Math.max(g,y),W=n.makeOutput([V,R,B],T.dtype),G=n.dataIdMap.get(W.dataId).id,H=new Uint8Array(new Int32Array(T.shape).buffer),X=new Uint8Array(new Int32Array(S.shape).buffer);return u2(A,H,T.shape.length,$,X,S.shape.length,i,o,G),n.disposeData(T.dataId),n.disposeData(S.dataId),W.shape=x,W}var zee={kernelName:Rs,backendName:"wasm",setupFunc:Oee,kernelFunc:Lee};function sf(e){let{inputs:{x:t},attrs:{dtype:n},backend:a}=e,r=a.makeOutput(t.shape,n),s=a.typedArrayFromHeap(t);return a.typedArrayFromHeap(r).set(s),r}var Bee={kernelName:Ms,backendName:"wasm",kernelFunc:sf},Wee=$n(Ps),c2;function Vee(e){c2=e.wasm.cwrap(jr,null,["number","number","number","number"])}function Uee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o=n.dataIdMap.get(r.dataId).id,l=n.makeOutput(r.shape,r.dtype),c=n.dataIdMap.get(l.dataId).id;return c2(o,s,i,c),l}var Gee={kernelName:jr,backendName:"wasm",setupFunc:Vee,kernelFunc:Uee};function p2(e){let{inputs:t,backend:n}=e,a=w.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=_.computeOutShape(t.map(h=>h.shape),a),s=t.filter(h=>w.sizeFromShape(h.shape)>0);if(s.length===1)return af({inputs:{x:s[0]},backend:n});let i=n.makeOutput(r,t[0].dtype);if(w.sizeFromShape(r)===0)return i;let o=s.map(h=>h.shape);if(_.assertParamsConsistent(o,a),s[0].dtype==="string"){let h=s.map(x=>{let v=w.sizeFromShape(x.shape.slice(a));return Pa({inputs:{x},backend:n,attrs:{shape:[-1,v]}})}),m=h.map(x=>({vals:n.readSync(x.dataId),shape:x.shape}));r=_.computeOutShape(h.map(x=>x.shape),1);let f=h[0].shape[0]===1,g=Fv(m,r,t[0].dtype,f),y=_.computeOutShape(s.map(x=>x.shape),a);i.shape=y;let b=n.dataIdMap.get(i.dataId);return b.stringBytes=_.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),i}let l=w.sizeFromShape(s[0].shape.slice(0,a)),c=0,u=s.map(h=>{let m=w.sizeFromShape(h.shape.slice(a));return c+=m,m}),p=s.map(h=>n.typedArrayFromHeap(h)),d=n.typedArrayFromHeap(i);for(let h=0;h`cumsum does not support ${r.dtype} tensors in the WASM backend`);let c=_.getAxesPermutation([s],l),u=r;c!==null&&(u=rf({inputs:{x:r},attrs:{perm:c},backend:n}));let p=_.getInnerMostAxes(1,l)[0];_.assertAxesAreInnerMostDims("cumsum",[p],l);let d=n.makeOutput(u.shape,u.dtype),h=u.shape[p],m=n.dataIdMap.get(u.dataId).id,f=n.dataIdMap.get(d.dataId).id;f2(m,i?1:0,o?1:0,h,f,Hn[r.dtype]);let g=d;if(c!==null){let y=_.getUndoAxesPermutation(c);g=rf({inputs:{x:d},attrs:{perm:y},backend:n}),n.disposeData(u.dataId),n.disposeData(d.dataId)}return g}var rte={kernelName:Bs,backendName:"wasm",setupFunc:nte,kernelFunc:ate},g2;function ste(e){g2=e.wasm.cwrap(qo,null,["number","number","number","array","number","array","array","number","number"])}function ite(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{blockSize:s,dataFormat:i}=a;w.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],c=i==="NHWC"?r.shape[2]:r.shape[3],u=i==="NHWC"?r.shape[3]:r.shape[1],p=l*s,d=c*s,h=u/(s*s),m=i==="NHWC"?[o,p,d,h]:[o,h,p,d],f=t.makeOutput(m,"float32"),g=t.dataIdMap.get(r.dataId).id,y=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(w.computeStrides(m)).buffer),v=t.dataIdMap.get(f.dataId).id;return g2(g,s,i==="NHWC"?1:0,y,r.shape.length-1,b,x,m.length,v),f}var ote={kernelName:qo,backendName:"wasm",setupFunc:ste,kernelFunc:ite},y2;function lte(e){y2=e.wasm.cwrap(Ws,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ute(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s}=t,i=a.dataIdMap.get(r.dataId).id,o=a.dataIdMap.get(s.dataId).id,{strides:l,dilations:c,pad:u,dimRoundingMode:p}=n,d=c==null?[1,1]:c,h=_.computeConv2DInfo(r.shape,s.shape,l,d,u,p,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,y=h.padInfo.right,b=h.padInfo.bottom,x=h.padInfo.left,v=h.dilationHeight,N=h.dilationWidth,T=h.strideHeight,S=h.strideWidth,A=h.inChannels,$=h.outChannels,R=h.padInfo.type==="SAME"?1:0;if(h.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${h.dataFormat}'. Please use 'channelsLast'.`);let B=a.makeOutput(h.outShape,"float32"),V=a.dataIdMap.get(B.dataId).id;return y2(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,y,b,x,R,v,N,T,S,A,$,V),B}var cte={kernelName:Ws,backendName:"wasm",setupFunc:lte,kernelFunc:ute},pte=!1,dte=yn(Yo,pte,"bool"),hte=$n(Us);function lw(e){let{inputs:t,attrs:n,backend:a}=e,{input:r}=t,{dim:s}=n,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(w.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),Pa({inputs:{x:r},backend:a,attrs:{shape:o}})}var mte={kernelName:Jo,backendName:"wasm",kernelFunc:lw};function fte(e){let{attrs:{shape:t,value:n,dtype:a},backend:r}=e,s=r.makeOutput(t,a);return r.typedArrayFromHeap(s).fill(n),s}var gte={kernelName:lc,backendName:"wasm",kernelFunc:fte},b2;function yte(e){b2=e.wasm.cwrap(Zo,null,["number","number","number","number","number","number"])}function bte(e){let{inputs:t,backend:n}=e,{image:a}=t,r=n.makeOutput(a.shape,a.dtype),s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,[o,l,c,u]=a.shape;return b2(s,o,l,c,u,i),r}var xte={kernelName:Zo,backendName:"wasm",kernelFunc:bte,setupFunc:yte},vte=$n(Gs),wte=!1,kte=yn(Hs,wte),x2;function Ite(e){x2=e.wasm.cwrap(js,null,["number","number","number","number","number","number","number"])}function Tte(e){let{backend:t,inputs:n,attrs:a}=e,{varianceEpsilon:r}=a,{x:s,mean:i,variance:o,offset:l,scale:c}=n,u=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,d=t.dataIdMap.get(o.dataId).id,h=l!=null?t.dataIdMap.get(l.dataId).id:0,m=c!=null?t.dataIdMap.get(c.dataId).id:0,f=t.makeOutput(s.shape,s.dtype);if(w.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return x2(u,p,d,h,m,r,g),f}var Nte={kernelName:js,backendName:"wasm",setupFunc:Ite,kernelFunc:Tte},v2;function Ste(e){v2=e.wasm.cwrap(Ti,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Cte(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dilations:u,dataFormat:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=n,f=_.computeConv2DInfo(r.shape,s.shape,l,u,c,d),g=wp[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,v=0;if(i!=null){let Z=a.dataIdMap.get(i.dataId);if(Z.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${Z.shape.length}.`);if(Z.shape[0]!==x)throw new Error(`FusedConv2D bias shape (${Z.shape}) does not match the number of output channels (${x})`);v=Z.id}let N=f.filterHeight,T=f.filterWidth,S=f.padInfo.top,A=f.padInfo.right,$=f.padInfo.bottom,R=f.padInfo.left,B=f.dilationHeight,V=f.dilationWidth,W=f.strideHeight,G=f.strideWidth,H=f.inChannels,X=f.padInfo.type==="SAME"?1:0,q=f.batchSize,te=f.inHeight,Q=f.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let se=a.makeOutput(f.outShape,"float32"),ne=a.dataIdMap.get(se.dataId).id,ie=o==null?0:a.dataIdMap.get(o.dataId).id;return v2(y,q,te,Q,b,N,T,v,S,A,$,R,X,B,V,W,G,H,x,g,ie,m||0,ne),se}var _te={kernelName:Ti,backendName:"wasm",setupFunc:Ste,kernelFunc:Cte},w2;function Ete(e){w2=e.wasm.cwrap(Ni,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Fte(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dilations:u,dataFormat:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=n,f=_.computeConv2DInfo(r.shape,s.shape,l,u,c,d,!0),g=wp[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,v=0;if(i!=null){let Z=a.dataIdMap.get(i.dataId);if(Z.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${Z.shape.length}.`);if(Z.shape[0]!==x)throw new Error(`FusedDepthwiseConv2D bias shape (${Z.shape}) does not match the number of output channels (${x})`);v=Z.id}let N=f.filterHeight,T=f.filterWidth,S=f.padInfo.top,A=f.padInfo.right,$=f.padInfo.bottom,R=f.padInfo.left,B=f.dilationHeight,V=f.dilationWidth,W=f.strideHeight,G=f.strideWidth,H=f.inChannels,X=f.padInfo.type==="SAME"?1:0,q=f.batchSize,te=f.inHeight,Q=f.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let se=a.makeOutput(f.outShape,"float32"),ne=a.dataIdMap.get(se.dataId).id,ie=o==null?0:a.dataIdMap.get(o.dataId).id;return w2(y,q,te,Q,b,N,T,v,S,A,$,R,X,B,V,W,G,H,x,g,ie,m||0,ne),se}var Ate={kernelName:Ni,backendName:"wasm",setupFunc:Ete,kernelFunc:Fte},k2;function $te(e){k2=e.wasm.cwrap(tl,null,["number","number","number","number","number","number","array","number"])}function Dte(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=_y.prepareAndValidate(a,r),c=t.makeOutput(s,a.dtype);if(i===0)return c;let u=r.shape,p=u[u.length-1],d=t.dataIdMap.get(a.dataId).id,h=t.dataIdMap.get(r.dataId).id,m=new Uint8Array(new Int32Array(l).buffer),f=t.dataIdMap.get(c.dataId).id;return k2(d,Hn[a.dtype],h,i,p,o,m,f),c}var Rte={kernelName:tl,backendName:"wasm",setupFunc:$te,kernelFunc:Dte},I2;function Mte(e){I2=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function Pte(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,indices:s}=n,{axis:i,batchDims:o}=a,l=w.parseAxisParam(i,r.shape)[0],c=_.segment_util.collectGatherOpShapeInfo(r,s,l,o),u=Pa({inputs:{x:r},attrs:{shape:[c.batchSize,c.outerSize,c.dimSize,c.sliceSize]},backend:t}),p=w.sizeFromShape(s.shape),d=Pa({inputs:{x:s},attrs:{shape:[c.batchSize,p/c.batchSize]},backend:t}),h=[c.batchSize,c.outerSize,p/c.batchSize,c.sliceSize],m=t.makeOutput(h,r.dtype);if(w.sizeFromShape(r.shape)===0)return m;let f=u.shape.length-1,g=t.dataIdMap.get(u.dataId).id,y=t.dataIdMap.get(d.dataId).id,b=t.dataIdMap.get(m.dataId).id,x=new Uint8Array(new Int32Array(w.computeStrides(u.shape)).buffer),v=new Uint8Array(new Int32Array(w.computeStrides(h)).buffer);return I2(g,Hn[r.dtype],x,f,y,c.batchSize,v,b),t.disposeData(u.dataId),t.disposeData(d.dataId),m.shape=c.outputShape,m}var Ote={kernelName:el,backendName:"wasm",setupFunc:Mte,kernelFunc:Pte},Lte=!1,zte=yn(nl,Lte,"bool"),Bte=!1,Wte=yn(qs,Bte,"bool"),T2;function Vte(e){T2=e.wasm.cwrap(Xs,null,["number","number","number"])}function Ute(e){let{inputs:{x:t},attrs:{alpha:n},backend:a}=e,r=a.dataIdMap.get(t.dataId).id,s=a.makeOutput(t.shape,t.dtype);if(w.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;T2(r,n,i)}return s}var Gte={kernelName:Xs,backendName:"wasm",setupFunc:Vte,kernelFunc:Ute},Hte=!1,jte=yn(il,Hte,"bool"),qte=!1,Kte=yn(ol,qte,"bool"),Xte=$n(Ys),Yte=!1,Jte=yn(ul,Yte,"bool"),N2;function Qte(e){N2=e.wasm.cwrap(Js,null,["number, number, number"])}function Zte(e){let{backend:t,inputs:n,attrs:a}=e,{reductionIndices:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=i,{transposed:c,axes:u,originalAxes:p,inputWasTransposed:d}=Tu(i,r,t);if(d){let b=t.dataIdMap.get(c.dataId).id;l=c,o=b}let h=l.shape.length;_.assertAxesAreInnerMostDims("max",u,h);let[m,f]=_.computeOutAndReduceShapes(l.shape,u),g=w.sizeFromShape(f),y=t.makeOutput(m,i.dtype);if(w.sizeFromShape(l.shape)!==0){let b=t.dataIdMap.get(y.dataId).id;N2(o,g,b)}if(d&&t.disposeData(c.dataId),s){let b=_.expandShapeToKeepDim(y.shape,p);y.shape=b}return y}var ene={kernelName:Js,backendName:"wasm",setupFunc:Qte,kernelFunc:Zte},tne=!1,nne=yn(Qs,tne),S2;function ane(e){S2=e.wasm.cwrap(Zs,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function rne(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id,{filterSize:i,strides:o,pad:l,dimRoundingMode:c}=n,u=_.computePool2DInfo(r.shape,i,o,1,l,c),p=u.filterHeight,d=u.filterWidth,h=u.padInfo.top,m=u.padInfo.right,f=u.padInfo.bottom,g=u.padInfo.left,y=u.dilationHeight,b=u.dilationWidth,x=u.strideHeight,v=u.strideWidth,N=u.inChannels,T=u.outChannels;if(u.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${u.dataFormat}'. Please use 'channelsLast'.`);let S=a.makeOutput(u.outShape,"float32"),A=a.dataIdMap.get(S.dataId).id;return S2(s,r.shape[0],r.shape[1],r.shape[2],p,d,h,m,f,g,y,b,x,v,N,T,A),S}var sne={kernelName:Zs,backendName:"wasm",setupFunc:ane,kernelFunc:rne},C2;function ine(e){C2=e.wasm.cwrap(ei,null,["number, number, number"])}function one(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=Tu(i,r,t),m=p;if(h){let v=t.dataIdMap.get(u.dataId).id;v!==o&&(c=u,l=v,m=_.getInnerMostAxes(m.length,c.shape.length))}_.assertAxesAreInnerMostDims("mean",m,c.shape.length);let[f,g]=_.computeOutAndReduceShapes(c.shape,m),y=w.sizeFromShape(g),b=c;c.dtype!=="float32"&&(b=sf({backend:t,inputs:{x:c},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(b.dataId).id);let x=t.makeOutput(f,"float32");if(w.sizeFromShape(c.shape)!==0){let v=t.dataIdMap.get(x.dataId).id;C2(l,y,v)}if(h&&t.disposeData(u.dataId),s){let v=_.expandShapeToKeepDim(x.shape,d);x.shape=v}return c.dtype!=="float32"&&t.disposeData(b.dataId),x}var lne={kernelName:ei,backendName:"wasm",setupFunc:ine,kernelFunc:one},_2;function une(e){_2=e.wasm.cwrap(ti,null,["number, number, number"])}function cne(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=Tu(i,r,t);if(h){let x=t.dataIdMap.get(u.dataId).id;x!==o&&(c=u,l=x)}let m=c.shape.length;_.assertAxesAreInnerMostDims("min",p,m);let[f,g]=_.computeOutAndReduceShapes(c.shape,p),y=w.sizeFromShape(g),b=t.makeOutput(f,c.dtype);if(w.sizeFromShape(c.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;_2(l,y,x)}if(h&&t.disposeData(u.dataId),s){let x=_.expandShapeToKeepDim(b.shape,d);b.shape=x}return b}var pne={kernelName:ti,backendName:"wasm",setupFunc:une,kernelFunc:cne},dne=!1,hne=yn(ni,dne),mne=!0,fne=yn(ai,mne),gne=$n(pl);function uw(e,t){let n=new Int32Array(e.wasm.HEAPU8.buffer,t,4),a=n[0],r=n[1],s=n[2],i=n[3];return e.wasm._free(t),{pSelectedIndices:a,selectedSize:r,pSelectedScores:s,pValidOutputs:i}}var E2;function yne(e){E2=e.wasm.cwrap(hl,"number",["number","number","number","number","number"])}function bne(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i}=a,{boxes:o,scores:l}=n,c=t.dataIdMap.get(o.dataId).id,u=t.dataIdMap.get(l.dataId).id,p=E2(c,u,s,r,i),{pSelectedIndices:d,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=uw(t,p);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",d)}var xne={kernelName:hl,backendName:"wasm",setupFunc:yne,kernelFunc:bne},F2;function vne(e){F2=e.wasm.cwrap(ml,"number",["number","number","number","number","number","bool"])}function wne(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:o}=a,{boxes:l,scores:c}=n,u=t.dataIdMap.get(l.dataId).id,p=t.dataIdMap.get(c.dataId).id,d=F2(u,p,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=uw(t,d);t.wasm._free(f);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([],"int32",g);return[y,b]}var kne={kernelName:ml,backendName:"wasm",setupFunc:vne,kernelFunc:wne},A2;function Ine(e){A2=e.wasm.cwrap(fl,"number",["number","number","number","number","number","number"])}function Tne(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,softNmsSigma:o}=a,{boxes:l,scores:c}=n,u=t.dataIdMap.get(l.dataId).id,p=t.dataIdMap.get(c.dataId).id,d=A2(u,p,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=uw(t,d);t.wasm._free(g);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([m],"float32",f);return[y,b]}var Nne={kernelName:fl,backendName:"wasm",setupFunc:Ine,kernelFunc:Tne},Sne=!1,Cne=yn(dl,Sne,"bool"),$2;function _ne(e){$2=e.wasm.cwrap(ri,null,["number","number","number","number","number"])}function Ene(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{depth:s,onValue:i,offValue:o}=a,l=n.makeOutput([...r.shape,s],"int32"),c=n.dataIdMap.get(l.dataId).id,u=n.dataIdMap.get(r.dataId).id;return $2(u,s,i,o,c),l}var Fne={kernelName:ri,backendName:"wasm",setupFunc:_ne,kernelFunc:Ene};function Ane(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var $ne={kernelName:gl,backendName:"wasm",kernelFunc:Ane};function Dne(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return lw({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(u=>{w.assertShapesMatch(s,u.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===u.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(u=>{let p=lw({inputs:{input:u},backend:n,attrs:{dim:r}});return o.push(p),p}),c=p2({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(u=>n.disposeData(u.dataId)),c}var Rne={kernelName:yl,backendName:"wasm",kernelFunc:Dne},D2;function Mne(e){D2=e.wasm.cwrap(si,null,["number","array","number","number","array","array","number","number"])}function Pne(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,constantValue:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]),i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,c=new Uint8Array(new Int32Array(t.shape).buffer),u=a.map(m=>m[0]),p=a.map(m=>m[1]),d=new Uint8Array(new Int32Array(u).buffer),h=new Uint8Array(new Int32Array(p).buffer);return D2(i,c,t.shape.length,Hn[t.dtype],d,h,r,l),o}var One={kernelName:si,backendName:"wasm",kernelFunc:Pne,setupFunc:Mne},Lne=!1,zne=yn(ii,Lne),R2;function Bne(e){R2=e.wasm.cwrap(oi,null,["number","number","number"])}function Wne(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,o=n.makeOutput(a.shape,"float32"),l=n.dataIdMap.get(o.dataId).id;return R2(s,i,l),o}var Vne={kernelName:oi,backendName:"wasm",setupFunc:Bne,kernelFunc:Wne},M2;function Une(e){M2=e.wasm.cwrap(bl,null,["number","number","number","number"])}function Gne(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=Tu(i,r,t),m=p;if(h){let x=t.dataIdMap.get(u.dataId).id;x!==o&&(c=u,l=x,m=_.getInnerMostAxes(m.length,c.shape.length))}_.assertAxesAreInnerMostDims("prod",m,c.shape.length);let[f,g]=_.computeOutAndReduceShapes(c.shape,m),y=w.sizeFromShape(g),b=t.makeOutput(f,c.dtype);if(w.sizeFromShape(c.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;M2(l,y,Hn[b.dtype],x)}if(h&&t.disposeData(u.dataId),s){let x=_.expandShapeToKeepDim(b.shape,d);b.shape=x}return b}var Hne={kernelName:bl,backendName:"wasm",setupFunc:Une,kernelFunc:Gne},jne=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=Dv(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},qne={kernelName:mc,backendName:"wasm",kernelFunc:jne},Kne=!0,Xne=yn(Vs,Kne),Yne=$n(li),Jne=$n(ci),P2;function Qne(e){P2=e.wasm.cwrap(ui,null,["number","number","number","number","number","number","number","number","number","number"])}function Zne(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,c]=o,[u,p,d,h]=r.shape,m=[u,l,c,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=sf({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let y=f.id,b=t.makeOutput(m,"float32");if(w.sizeFromShape(r.shape)===0)return b;let x=t.dataIdMap.get(b.dataId).id;return P2(y,u,p,d,h,l,c,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),b}var eae={kernelName:ui,backendName:"wasm",setupFunc:Qne,kernelFunc:Zne},O2;function tae(e){O2=e.wasm.cwrap(pi,null,["number","array","number","array","number","number"])}function nae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=w.parseAxisParam(s,r.shape);if(r.shape.length===0)return af({inputs:{x:r},backend:n});let o=n.makeOutput(r.shape,r.dtype),l=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(r.shape).buffer);O2(l,u,i.length,p,r.shape.length,c);let d=Pa({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),d}var aae={kernelName:pi,backendName:"wasm",kernelFunc:nae,setupFunc:tae},L2;function rae(e){L2=e.wasm.cwrap(Rl,null,["number","number","number","number","number","number","number","number","array","number","number"])}function sae(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{radians:s,fillValue:i,center:o}=a,l=n.makeOutput(r.shape,r.dtype),c=n.dataIdMap.get(r.dataId).id,u=n.dataIdMap.get(l.dataId).id,[p,d,h,m]=r.shape,[f,g]=_.getImageCenter(o,d,h),y=i===0,b=255,x=typeof i=="number"?[i,i,i,y?0:b]:[...i,b],v=new Uint8Array(new Int32Array(x).buffer);return L2(c,p,d,h,m,s,f,g,v,x.length,u),l}var iae={kernelName:Rl,backendName:"wasm",kernelFunc:sae,setupFunc:rae},oae=$n(di),lae=$n(hi),z2;function uae(e){z2=e.wasm.cwrap(wl,null,["number","number","number","number","number","number","array","number","number"])}function cae(e){let{backend:t,inputs:n,attrs:a}=e,{indices:r,updates:s}=n,{shape:i}=a,o=t.makeOutput(i,s.dtype);if(w.sizeFromShape(i)===0)return o;let{sliceRank:l,numUpdates:c,sliceSize:u,strides:p,outputSize:d}=Ey.calculateShapes(s,r,i),h=t.dataIdMap.get(r.dataId).id,m=t.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(p).buffer),g=t.dataIdMap.get(o.dataId).id;return z2(h,m,Hn[s.dtype],l,c,u,f,d,g),o}var pae={kernelName:wl,backendName:"wasm",setupFunc:uae,kernelFunc:cae},B2;function dae(e){B2=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function hae(e){let{inputs:t,backend:n}=e,{condition:a,t:r,e:s}=t,i=n.dataIdMap.get(a.dataId).id,o=n.dataIdMap.get(r.dataId).id,l=n.dataIdMap.get(s.dataId).id,c=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(c.dataId).id,p=a.shape.length,d=r.shape.length,h=p===0||p>1||d===1?1:w.sizeFromShape(r.shape.slice(1));return B2(i,o,l,h,u),c}var mae={kernelName:kl,backendName:"wasm",kernelFunc:hae,setupFunc:dae},W2;function fae(e){W2=e.wasm.cwrap(fi,null,["number","number"])}function gae(e){let{backend:t,inputs:{x:n}}=e,a=t.dataIdMap.get(n.dataId).id,r=t.makeOutput(n.shape,n.dtype),s=t.dataIdMap.get(r.dataId).id;return w.sizeFromShape(r.shape)===0||W2(a,s),r}var yae={kernelName:"Sigmoid",backendName:"wasm",setupFunc:fae,kernelFunc:gae},bae=$n(mi);function of(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=dn.parseSliceParams(t,n,a),o=dn.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),c=r.makeOutput(i,t.dtype),u=w.computeStrides(t.shape),p=r.dataIdMap.get(c.dataId);if(o){let m=dn.computeFlatOffset(s,u);return t.dtype==="string"?p.stringBytes=l.slice(m,m+w.sizeFromShape(i)):r.typedArrayFromHeap(c).set(l.subarray(m,m+w.sizeFromShape(i))),c}if(t.dtype==="string"){let m=zm(l,s,i,t.shape,t.dtype);return p.stringBytes=m,c}let d=r.typedArrayFromHeap(c),h=t.shape.length;if(h===2)xae(l,u[0],d,s,i);else if(h===3)vae(l,u[0],u[1],d,s,i);else if(h===4)wae(l,u[0],u[1],u[2],d,s,i);else{let m=zm(l,s,i,t.shape,t.dtype);d.set(m)}return c}function xae(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let c=i;c{let d=[...u];d[o]=p;let h=of({inputs:{x:r},attrs:{begin:c,size:d},backend:a});return c[o]+=p,h})}var Cae={kernelName:_l,backendName:"wasm",kernelFunc:Sae},_ae=$n(gi),Eae=$n(yc),Fae=!0,Aae=yn(xi,Fae),U2;function $ae(e){U2=e.wasm.cwrap(Kr,null,["number","number","number"])}function Dae(e){let{backend:t,inputs:n,attrs:a}=e,{alpha:r}=a,{x:s}=n,i=t.dataIdMap.get(s.dataId).id,o=t.makeOutput(s.shape,s.dtype),l=t.dataIdMap.get(o.dataId).id;return U2(i,r,l),o}var Rae={kernelName:Kr,backendName:"wasm",setupFunc:$ae,kernelFunc:Dae},G2;function Mae(e){G2=e.wasm.cwrap(El,null,["number","array","number","array","array","array","array","array","number","number"])}function Pae(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{begin:s,end:i,strides:o}=a;o==null&&(o=new Array(s.length));let{beginMask:l,endMask:c,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:d}=a,h=_.slice_util.maskToAxes(u);if(h.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(u!==0&&p!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(u!==0&&d!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let m=r.shape.length-s.length,f=_.slice_util.maskToAxes(p),g=r.shape.slice();f.forEach(R=>{s[R]=0,i[R]=1,g.splice(R,0,1)});let y=Pa({inputs:{x:r},attrs:{shape:g},backend:t}),{begin:b,end:x,strides:v}=_.slice_util.getNormalizedAxes(y.shape,h,m,s,i,o,l,c,u);s=b,i=x,o=v;let N=_.slice_util.maskToAxes(d);N.forEach(R=>{i[R]=s[R]+1,o[R]=1});let T=_.slice_util.computeOutShape(s,i,o),S=T.filter((R,B)=>N.indexOf(B)===-1);if(o.every(R=>R===1)){let R=of({inputs:{x:r},attrs:{begin:s,size:T},backend:t});t.disposeData(y.dataId);let B=Pa({inputs:{x:R},attrs:{shape:S},backend:t});return t.disposeData(R.dataId),B}let A=t.makeOutput(S,"float32");if(!S.some(R=>R===0)){let R=t.dataIdMap.get(y.dataId).id,B=new Uint8Array(new Int32Array(w.computeStrides(y.shape)).buffer),V=new Uint8Array(new Int32Array(s).buffer),W=new Uint8Array(new Int32Array(i).buffer),G=new Uint8Array(new Int32Array(o).buffer),H=new Uint8Array(new Int32Array(S).buffer),X=new Uint8Array(new Int32Array(w.computeStrides(S)).buffer),q=t.dataIdMap.get(A.dataId).id;G2(R,B,y.shape.length,V,W,G,H,X,S.length,q)}t.disposeData(y.dataId);let $=Pa({inputs:{x:A},attrs:{shape:S},backend:t});return t.disposeData(A.dataId),$}var Oae={kernelName:El,backendName:"wasm",setupFunc:Mae,kernelFunc:Pae},Lae=!0,zae=yn(vi,Lae),H2;function Bae(e){H2=e.wasm.cwrap(yi,null,["number, number, number"])}function Wae(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=Tu(i,r,t),m=p;if(h){let x=t.dataIdMap.get(u.dataId).id;x!==o&&(c=u,l=x,m=_.getInnerMostAxes(m.length,c.shape.length))}_.assertAxesAreInnerMostDims("sum",m,c.shape.length);let[f,g]=_.computeOutAndReduceShapes(c.shape,m),y=w.sizeFromShape(g),b=t.makeOutput(f,c.dtype);if(w.sizeFromShape(c.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;H2(l,y,x)}if(h&&t.disposeData(u.dataId),s){let x=_.expandShapeToKeepDim(b.shape,d);b.shape=x}return b}var Vae={kernelName:yi,backendName:"wasm",setupFunc:Bae,kernelFunc:Wae},Uae=$n(wi),j2;function Gae(e){j2=e.wasm.cwrap(qr,null,["number","array","number","array","number","number"])}function Hae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,s=n.dataIdMap.get(r.dataId).id,{reps:i}=a,o=new Array(r.shape.length);for(let d=0;d{let{x:a}=e,{k:r,sorted:s}=n,i=t.dataIdMap.get(a.dataId).id,o=new Uint8Array(new Int32Array(a.shape).buffer),l=a.shape.slice();l[l.length-1]=r;let c=t.makeOutput(l,a.dtype),u=t.dataIdMap.get(c.dataId).id,p=t.makeOutput(l,"int32"),d=t.dataIdMap.get(p.dataId).id;return q2(i,o,a.shape.length,Hn[a.dtype],r,s,u,d),[c,p]},Xae={kernelName:Al,backendName:"wasm",setupFunc:qae,kernelFunc:Kae};function Yae(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape[s],o=r.shape.length,l=new Array(o-1),c=0;for(let h=0;h({dataId:h,dtype:m,shape:l}))}var Jae={kernelName:$l,backendName:"wasm",kernelFunc:Yae};function Qae(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var Zae={kernelName:Dl,backendName:"wasm",kernelFunc:Qae},ere=[xee,wee,Tee,$ee,Mee,zee,Bee,Wee,Gee,Hee,Kee,Jee,Qee,tte,rte,ote,cte,dte,hte,mte,gte,xte,vte,kte,bee,Nte,_te,Ate,Rte,Ote,zte,Wte,Nee,Gte,jte,Kte,Xte,Jte,ene,nne,sne,lne,pne,hne,fne,gne,xne,kne,Nne,Cne,Fne,$ne,Rne,One,zne,Vne,Hne,qne,Xne,Yne,Jne,Pee,eae,aae,iae,lae,oae,pae,mae,yae,bae,kae,Nae,Cae,_ae,Eae,Aae,Rae,Oae,zae,Vae,Uae,jae,Xae,Eee,Jae,Zae];for(let e of ere)vc(e);var cw=ee();cw.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11])));cw.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(cw.get("IS_NODE"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(e){return!1}});var K2=Do(_E()),tre='var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);Module["wasmModule"]=null;receiveInstance(instance);return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance;moduleLoaded()})}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["_emscripten_tls_init"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].setThreadStatus(Module["_pthread_self"](),1);try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(!Module["getNoExitRuntime"]())Module["PThread"].threadExit(result)}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["getNoExitRuntime"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}}',nre=Do(EE()),X2=class extends Zu{constructor(e){super();this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new kd(this,Ha())}write(e,t,n){let a={id:this.dataIdNextNumber++};return this.move(a,e,t,n,1),a}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=w.now();return e(),{kernelMs:w.now()-t}}move(e,t,n,a,r){let s=this.dataIdNextNumber++;if(a==="string"){let c=t;this.dataIdMap.set(e,{id:s,stringBytes:c,shape:n,dtype:a,memoryOffset:null,refCount:r});return}let i=w.sizeFromShape(n),o=i*w.bytesPerElement(a),l=this.wasm._malloc(o);this.dataIdMap.set(e,{id:s,memoryOffset:l,shape:n,dtype:a,refCount:r}),this.wasm.tfjs.registerTensor(s,i,l),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,o),l)}async read(e){return this.readSync(e)}readSync(e){let{memoryOffset:t,dtype:n,shape:a,stringBytes:r}=this.dataIdMap.get(e);if(n==="string")return r;let s=this.wasm.HEAPU8.slice(t,t+w.sizeFromShape(a)*w.bytesPerElement(n));return are(s.buffer,n)}disposeData(e,t=!1){if(this.dataIdMap.has(e)){let n=this.dataIdMap.get(e);if(n.refCount--,!t&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(e)}return!0}refCount(e){return this.dataIdMap.has(e)?this.dataIdMap.get(e).refCount:0}incRef(e){let t=this.dataIdMap.get(e);t!=null&&t.refCount++}floatPrecision(){return 32}getMemoryOffset(e){return this.dataIdMap.get(e).memoryOffset}dispose(){this.wasm.tfjs.dispose(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n){let a;if(n==null)a=this.write(null,e,t);else{let r=this.dataIdNextNumber++;a={id:r},this.dataIdMap.set(a,{id:r,memoryOffset:n,shape:e,dtype:t,refCount:1});let s=w.sizeFromShape(e);this.wasm.tfjs.registerTensor(r,s,n)}return{dataId:a,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:n}){let a=this.wasm.HEAPU8.buffer,{memoryOffset:r}=this.dataIdMap.get(n),s=w.sizeFromShape(e);switch(t){case"float32":return new Float32Array(a,r,s);case"int32":return new Int32Array(a,r,s);case"bool":return new Uint8Array(a,r,s);default:throw new Error(`Unknown dtype ${t}`)}}};function rre(e){return(t,n)=>(w.fetch(e,{credentials:"same-origin"}).then(a=>{a.ok||t.env.a(`failed to load wasm binary file at '${e}'`),a.arrayBuffer().then(r=>{WebAssembly.instantiate(r,t).then(s=>{n(s.instance)})})}),{})}function Y2(e,t,n){if(lf!=null)return lf;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),kp!=null&&kp[a]!=null?kp[a]:n+a}async function sre(){let[e,t]=await Promise.all([ee().getAsync("WASM_HAS_SIMD_SUPPORT"),ee().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let c=tre,u=new Blob([c],{type:"application/javascript"});return URL.createObjectURL(u)}return o.endsWith(".wasm")?Y2(e,t,Ip!=null?Ip:l):l+o},pw&&(r.instantiateWasm=rre(Y2(e,t,Ip!=null?Ip:"")));let s=!1;r.onAbort=()=>{s||Tp||(Tp=!0,a({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"}))};let i;t&&e&&lf==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+K2.default.toString()],{type:"text/javascript"}),i=(0,K2.default)(r)):i=(0,nre.default)(r),i.then(o=>{s=!0,Tp=!1;let l=null;o.tfjs={init:o.cwrap("init",null,[]),registerTensor:o.cwrap("register_tensor",null,["number","number","number"]),disposeData:o.cwrap("dispose_data",l,["number"]),dispose:o.cwrap("dispose",l,[])},n({wasm:o})})})}function are(e,t){switch(t){case"float32":return new Float32Array(e);case"int32":return new Int32Array(e);case"bool":return new Uint8Array(e);default:throw new Error(`Unknown dtype ${t}`)}}var ire=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],lf=null,Ip=null,kp={},Tp=!1,pw=!1;function ore(e,t=!1){if(My("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),Tp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");lf=e,pw=t}function lre(e,t=!1){if(Tp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof e=="string")Ip=e;else{kp=e;let n=ire.filter(a=>kp[a]==null);if(n.length>0)throw new Error(`There were no entries found for the following binaries: ${n.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}pw=t}var ure="3.2.0",cre=2;fh("wasm",async()=>{let{wasm:e}=await sre();return new X2(e)},cre);var Rf={};Ju(Rf,{AnchorPosition:()=>lr,DrawBox:()=>yf,DrawBoxOptions:()=>Iw,DrawFaceLandmarks:()=>Nw,DrawFaceLandmarksOptions:()=>Tw,DrawTextField:()=>vs,DrawTextFieldOptions:()=>Np,drawContour:()=>_r,drawDetections:()=>xre,drawFaceExpressions:()=>vre,drawFaceLandmarks:()=>kre});function _r(e,t,n=!1){if(e.beginPath(),t.slice(1).forEach(({x:a,y:r},s)=>{let i=t[s];e.moveTo(i.x,i.y),e.lineTo(a,r)}),n){let a=t[t.length-1],r=t[0];if(!a||!r)return;e.moveTo(a.x,a.y),e.lineTo(r.x,r.y)}e.stroke()}var uf={};Ju(uf,{computeReshapedDimensions:()=>mw,getCenterPoint:()=>no,isDimensions:()=>pf,isEven:()=>cf,isFloat:()=>hw,isTensor:()=>eo,isTensor1D:()=>pre,isTensor2D:()=>dw,isTensor3D:()=>Er,isTensor4D:()=>ra,isValidNumber:()=>Oa,isValidProbablitiy:()=>Nu,range:()=>ir,round:()=>to});var un=class{constructor(t,n){if(!Oa(t)||!Oa(n))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:n})}`);this._width=t,this._height=n}get width(){return this._width}get height(){return this._height}reverse(){return new un(1/this.width,1/this.height)}};function eo(e,t){return e instanceof Ee&&e.shape.length===t}function pre(e){return eo(e,1)}function dw(e){return eo(e,2)}function Er(e){return eo(e,3)}function ra(e){return eo(e,4)}function hw(e){return e%1!=0}function cf(e){return e%2==0}function to(e,t=2){let n=10**t;return Math.floor(e*n)/n}function pf(e){return e&&e.width&&e.height}function mw({width:e,height:t},n){let a=n/Math.max(t,e);return new un(Math.round(e*a),Math.round(t*a))}function no(e){return e.reduce((t,n)=>t.add(n),new De(0,0)).div(new De(e.length,e.length))}function ir(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function Oa(e){return!!e&&e!==Infinity&&e!==-Infinity&&!Number.isNaN(e)||e===0}function Nu(e){return Oa(e)&&e>=0&&e<=1}var De=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new De(this.x+t.x,this.y+t.y)}sub(t){return new De(this.x-t.x,this.y-t.y)}mul(t){return new De(this.x*t.x,this.y*t.y)}div(t){return new De(this.x/t.x,this.y/t.y)}abs(){return new De(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new De(Math.floor(this.x),Math.floor(this.y))}};var it=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Oa)}static assertIsValidBox(t,n,a=!1){if(!it.isRect(t))throw new Error(`${n} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!a&&(t.width<0||t.height<0))throw new Error(`${n} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,n=!0){let a=t||{},r=[a.left,a.top,a.right,a.bottom].every(Oa),s=[a.x,a.y,a.width,a.height].every(Oa);if(!s&&!r)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(a)}`);let[i,o,l,c]=s?[a.x,a.y,a.width,a.height]:[a.left,a.top,a.right-a.left,a.bottom-a.top];it.assertIsValidBox({x:i,y:o,width:l,height:c},"Box.constructor",n),this._x=i,this._y=o,this._width=l,this._height=c}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new De(this.left,this.top)}get topRight(){return new De(this.right,this.top)}get bottomLeft(){return new De(this.left,this.bottom)}get bottomRight(){return new De(this.right,this.bottom)}round(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new it({x:t,y:n,width:a,height:r})}floor(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new it({x:t,y:n,width:a,height:r})}toSquare(){let{x:t,y:n,width:a,height:r}=this,s=Math.abs(a-r);return an&&(o=-p+n+a,p=n),d>t&&(l=-d+t+r,d=t),c<1&&(l=2-c,c=1),u<1&&(l=2-u,u=1),{dy:i,edy:l,dx:s,edx:o,y:u,ey:d,x:c,ex:p,w:a,h:r}}calibrate(t){return new it({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var ao=class extends it{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var Fr=class{constructor(t,n,a,r,s){this._imageDims=new un(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new it(r).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new it(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new Fr(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var mt=class extends Fr{constructor(t,n,a){super(t,t,"",n,a)}forSize(t,n){let{score:a,relativeBox:r,imageDims:s}=super.forSize(t,n);return new mt(a,r,s)}};function df(e,t,n=!0){let a=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),r=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),s=a*r;return n?s/(e.area+t.area-s):s/Math.min(e.area,t.area)}function hf(e){let t=e.map(o=>o.x),n=e.map(o=>o.y),a=t.reduce((o,l)=>lloo({score:i,boxIndex:o})).sort((i,o)=>i.score-o.score).map(i=>i.boxIndex),s=[];for(;r.length>0;){let i=r.pop();s.push(i);let o=r,l=[];for(let c=0;cl[u]<=n)}return s}function wa(e,t){return D(()=>{let[n,a,r]=t,s=Cn([...e.shape.slice(0,3),1],n,"float32"),i=Cn([...e.shape.slice(0,3),1],a,"float32"),o=Cn([...e.shape.slice(0,3),1],r,"float32"),l=Je([s,i,o],3);return me(e,l)})}function ff(e,t=!1){return D(()=>{let[n,a]=e.shape.slice(1);if(n===a)return e;let r=Math.abs(n-a),s=Math.round(r*(t?.5:1)),i=n>a?2:1,o=d=>{let h=e.shape.slice();return h[i]=d,Cn(h,0,"float32")},l=o(s),c=r-l.shape[i],p=[t&&c?o(c):null,e,l].filter(d=>!!d).map(d=>ue(d,"float32"));return Je(p,i)})}function J2(e){let t=e.slice();for(let n=t.length-1;n>0;n--){let a=Math.floor(Math.random()*(n+1)),r=t[n];t[n]=t[a],t[a]=r}return t}function Su(e){return 1/(1+Math.exp(-e))}function Q2(e){return Math.log(e/(1-e))}var ro=class extends it{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var dre=.5,hre=.43,mre=.45,jn=class{constructor(t,n,a=new De(0,0)){let{width:r,height:s}=n;this._imgDims=new un(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new De(r,s)).add(a))}get shift(){return new De(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new De(this.imageWidth,this.imageHeight)))}forSize(t,n){return new this.constructor(this.relativePositions,{width:t,height:n})}shiftBy(t,n){return new this.constructor(this.relativePositions,this._imgDims,new De(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof mt?t.box.floor():new it(t);return this.shiftBy(s.x,s.y).align(null,n)}let{useDlibAlignment:a,minBoxPadding:r}={useDlibAlignment:!1,minBoxPadding:.2,...n};return a?this.alignDlib():this.alignMinBbox(r)}alignDlib(){let t=this.getRefPointsForAlignment(),[n,a,r]=t,s=p=>r.sub(p).magnitude(),i=(s(n)+s(a))/2,o=Math.floor(i/mre),l=no(t),c=Math.floor(Math.max(0,l.x-dre*o)),u=Math.floor(Math.max(0,l.y-hre*o));return new ro(c,u,Math.min(o,this.imageWidth+c),Math.min(o,this.imageHeight+u))}alignMinBbox(t){let n=hf(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var fw=class extends jn{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],no([t[3],t[4]])]}};var so=class extends jn{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(no)}};var Cu=class{constructor(t,n){this._label=t,this._distance=n}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${to(this.distance)})`:""}`}};var _u=class extends it{static assertIsValidLabeledBox(t,n){if(it.assertIsValidBox(t,n),!Oa(t.label))throw new Error(`${n} - expected property label (${t.label}) to be a number`)}constructor(t,n){super(t);this._label=n}get label(){return this._label}};var or=class{constructor(t,n){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(n)||n.some(a=>!(a instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=n}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let n=t.descriptors.map(a=>new Float32Array(a));return new or(t.label,n)}};var gw=class extends _u{static assertIsValidPredictedBox(t,n){if(_u.assertIsValidLabeledBox(t,n),!Nu(t.score)||!Nu(t.classScore))throw new Error(`${n} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,n,a,r){super(t,n);this._score=a,this._classScore=r}get score(){return this._score}get classScore(){return this._classScore}};function La(e){return e.detection instanceof mt}function bs(e,t){return{...e,...{detection:t}}}function yw(){let e=window.fetch;if(!e)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:e,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function gf(e){let t="";if(!e)try{e=require("fs")}catch(a){t=a.toString()}return{readFile:e?a=>new Promise((r,s)=>{e.readFile(a,(i,o)=>i?s(i):r(o))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function bw(){let e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=()=>{if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},a=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},r=global.fetch,s=gf();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:n,createImageElement:a,fetch:r,...s}}function xw(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var vw=lE(eC()),Qt;function yre(){if(!Qt)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return Qt}function ww(e){Qt=e}function kw(){return xw()?ww(yw()):(0,vw.isNodejs)()?ww(bw()):null}function bre(e){if(Qt||kw(),!Qt)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=Qt.Canvas,Image:n=Qt.Image}=e;Qt.Canvas=t,Qt.Image=n,Qt.createCanvasElement=e.createCanvasElement||(()=>new t),Qt.createImageElement=e.createImageElement||(()=>new n),Qt.ImageData=e.ImageData||Qt.ImageData,Qt.Video=e.Video||Qt.Video,Qt.fetch=e.fetch||Qt.fetch,Qt.readFile=e.readFile||Qt.readFile}var tt={getEnv:yre,setEnv:ww,initialize:kw,createBrowserEnv:yw,createFileSystem:gf,createNodejsEnv:bw,monkeyPatch:bre,isBrowser:xw,isNodejs:vw.isNodejs};kw();function xs(e){return!tt.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function bn(e){let{Canvas:t,CanvasRenderingContext2D:n}=tt.getEnv();if(e instanceof n)return e;let a=xs(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d");if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var lr;(function(e){e.TOP_LEFT="TOP_LEFT",e.TOP_RIGHT="TOP_RIGHT",e.BOTTOM_LEFT="BOTTOM_LEFT",e.BOTTOM_RIGHT="BOTTOM_RIGHT"})(lr||(lr={}));var Np=class{constructor(t={}){let{anchorPosition:n,backgroundColor:a,fontColor:r,fontSize:s,fontStyle:i,padding:o}=t;this.anchorPosition=n||lr.TOP_LEFT,this.backgroundColor=a||"rgba(0, 0, 0, 0.5)",this.fontColor=r||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=i||"Georgia",this.padding=o||4}},vs=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof vs?t.text:t,this.anchor=n,this.options=new Np(a)}measureWidth(t){let{padding:n}=this.options;return this.text.map(a=>t.measureText(a).width).reduce((a,r)=>a{let m=l+p.x,f=l+p.y+(h+1)*i;a.fillText(d,m,f)})}};var Iw=class{constructor(t={}){let{boxColor:n,lineWidth:a,label:r,drawLabelOptions:s}=t;this.boxColor=n||"rgba(0, 0, 255, 1)",this.lineWidth=a||2,this.label=r;let i={anchorPosition:lr.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Np({...i,...s})}},yf=class{constructor(t,n={}){this.box=new it(t),this.options=new Iw(n)}draw(t){let n=bn(t),{boxColor:a,lineWidth:r}=this.options,{x:s,y:i,width:o,height:l}=this.box;n.strokeStyle=a,n.lineWidth=r,n.strokeRect(s,i,o,l);let{label:c}=this.options;c&&new vs([c],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function xre(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof mt?a.score:La(a)?a.detection.score:void 0,s=a instanceof mt?a.box:La(a)?a.detection.box:new it(a),i=r?`${to(r)}`:void 0;new yf(s,{label:i}).draw(e)})}function Eu(e){let{Image:t,Video:n}=tt.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function bf(e){return new Promise((t,n)=>{if(e instanceof tt.getEnv().Canvas||Eu(e))return t(null);function a(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),n(s))}function r(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),t(s))}e.addEventListener("load",r),e.addEventListener("error",a)})}function xf(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToImage - expected buf to be of type: Blob"));let a=new FileReader;a.onload=()=>{typeof a.result!="string"&&n(new Error("bufferToImage - expected reader.result to be a string, in onload"));let r=tt.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function ws(e){let{Image:t,Video:n}=tt.getEnv();return e instanceof t?new un(e.naturalWidth,e.naturalHeight):e instanceof n?new un(e.videoWidth,e.videoHeight):new un(e.width,e.height)}function ks({width:e,height:t}){let{createCanvasElement:n}=tt.getEnv(),a=n();return a.width=e,a.height=t,a}function Fu(e,t){let{ImageData:n}=tt.getEnv();if(!(e instanceof n)&&!Eu(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||ws(e),s=ks({width:a,height:r});return e instanceof n?bn(s).putImageData(e,0,0):bn(s).drawImage(e,0,0,a,r),s}async function vf(e,t){let n=t||tt.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(ra(e)?1:0),i=D(()=>e.as3D(a,r,s).toInt());return await Ei.toPixels(i,n),i.dispose(),n}function Sp(e){let{Image:t,Canvas:n,Video:a}=tt.getEnv();return e instanceof t||e instanceof n||e instanceof a}function wf(e,t,n=!1){let{Image:a,Canvas:r}=tt.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return ks({width:1,height:1});let s=ws(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,c=ks({width:t,height:t}),u=e instanceof r?e:Fu(e),p=Math.abs(o-l)/2,d=n&&o0&&u.height>0&&bn(c).drawImage(u,d,h,o,l),c}var ur=class{constructor(t,n=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=n,this._batchSize=t.length,t.forEach((a,r)=>{if(Er(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(ra(a)){let i=a.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[r]=a,this._inputDimensions[r]=a.shape.slice(1);return}let s=a instanceof tt.getEnv().Canvas?a:Fu(a);this._canvases[r]=s,this._inputDimensions[r]=[s.height,s.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return ir(this.batchSize,0,1).map((t,n)=>this.getReshapedInputDimensions(n))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let n=this.getInputWidth(t),a=this.getInputHeight(t);return mw({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,D(()=>{let a=ir(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Ee){let o=ra(i)?i:i.expandDims();return o=ff(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=Ja.resizeBilinear(o,[t,t])),o.as3D(t,t,3)}if(i instanceof tt.getEnv().Canvas)return Ei.fromPixels(wf(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return $t(a.map(s=>ue(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function ht(e){if(e instanceof ur)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");let n=r=>Array.isArray(e)?` at input index ${r}:`:"",a=t.map(xs);return a.forEach((r,s)=>{if(!Sp(r)&&!Er(r)&&!ra(r))throw typeof t[s]=="string"?new Error(`toNetInput -${n(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${n(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(ra(r)){let i=r.shape[0];if(i!==1)throw new Error(`toNetInput -${n(s)} tf.Tensor4D with batchSize ${i} passed, but not supported in input array`)}}),await Promise.all(a.map(r=>Sp(r)&&bf(r))),new ur(a,Array.isArray(e))}async function io(e,t){let{Canvas:n}=tt.getEnv(),a=e;if(!(e instanceof n)){let i=await ht(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await vf(o)}let r=bn(a);return t.map(i=>i instanceof mt?i.forSize(a.width,a.height).box.floor():i).map(i=>i.clipAtImageBorders(a.width,a.height)).map(({x:i,y:o,width:l,height:c})=>{let u=ks({width:l,height:c});return l>0&&c>0&&bn(u).putImageData(r.getImageData(i,o,l,c),0,0),u})}async function oo(e,t){if(!Er(e)&&!ra(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(ra(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return D(()=>{let[n,a,r]=e.shape.slice(ra(e)?1:0);return t.map(o=>o instanceof mt?o.forSize(a,n).box:o).map(o=>o.clipAtImageBorders(a,n)).map(({x:o,y:l,width:c,height:u})=>Yl(e.as3D(n,a,r),[l,o,0],[u,c,r]))})}async function Is(e,t){let{fetch:n}=tt.getEnv(),a=await n(e,t);if(!(a.status<400))throw new Error(`failed to fetch: (${a.status}) ${a.statusText}, from url: ${a.url}`);return a}async function tC(e){let t=await Is(e),n=await t.blob();if(!n.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${n.type}, for url: ${t.url}`);return xf(n)}async function kf(e){return(await Is(e)).json()}async function nC(e){return new Float32Array(await(await Is(e)).arrayBuffer())}function If(e,t){let n=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:n};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${n}`};let a=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(a,"");let r=e.split("/").filter(o=>o),s=e.endsWith(".json")?r[r.length-1]:n,i=a+(e.endsWith(".json")?r.slice(0,r.length-1):r).join("/");return i=e.startsWith("/")?`/${i}`:i,{modelBaseUri:i,manifestUri:i==="/"?`/${s}`:`${i}/${s}`}}async function Tf(e,t){let{manifestUri:n,modelBaseUri:a}=If(e,t),r=await kf(n);return Ht.loadWeights(r,a)}function aC(e,t,n=!1){let{width:a,height:r}=n?ws(t):t;return e.width=a,e.height=r,{width:a,height:r}}var Zt=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:n,objProp:a}=this.traversePropertyPath(t);return n[a]}reassignParamFromPath(t,n){let{obj:a,objProp:r}=this.traversePropertyPath(t);a[r].dispose(),a[r]=n}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof Xr)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof Xr))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=Jn(n.dataSync());n.dispose(),this.reassignParamFromPath(t,a)})}dispose(t=!0){this.getParamList().forEach(n=>{if(t&&n.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${n.path}`);n.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,n)=>t.concat(n)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let n=await Tf(t,this.getDefaultModelName());this.loadFromWeightMap(n)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:n}=tt.getEnv(),{manifestUri:a,modelBaseUri:r}=If(t,this.getDefaultModelName()),s=c=>Promise.all(c.map(u=>n(u).then(p=>p.buffer))),i=Ht.weightsLoaderFactory(s),o=JSON.parse((await n(a)).toString()),l=await i(o,r);this.loadFromWeightMap(l)}loadFromWeightMap(t){let{paramMappings:n,params:a}=this.extractParamsFromWeightMap(t);this._paramMappings=n,this._params=a}extractWeights(t){let{paramMappings:n,params:a}=this.extractParams(t);this._paramMappings=n,this._params=a}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let n=t.split("/").reduce((s,i)=>{if(!s.nextObj.hasOwnProperty(i))throw new Error(`traversePropertyPath - object does not have property ${i}, for path ${t}`);return{obj:s.nextObj,objProp:i,nextObj:s.nextObj[i]}},{nextObj:this.params}),{obj:a,objProp:r}=n;if(!a||!r||!(a[r]instanceof Ee))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function Dn(e,t,n){return D(()=>{let a=Pi(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=J(a,t.bias),a})}function Nf(e,t,n=!1){return D(()=>{let a=qe(n?J(Ft(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Dn(e,t.conv0,[2,2])),r=Dn(a,t.conv1,[1,1]),s=qe(J(a,r)),i=Dn(s,t.conv2,[1,1]);return qe(J(a,J(r,i)))})}function Cp(e,t,n=!1,a=!0){return D(()=>{let r=qe(n?J(Ft(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):Dn(e,t.conv0,a?[2,2]:[1,1])),s=Dn(r,t.conv1,[1,1]),i=qe(J(r,s)),o=Dn(i,t.conv2,[1,1]),l=qe(J(r,J(s,o))),c=Dn(l,t.conv3,[1,1]);return qe(J(r,J(s,J(o,c))))})}function lo(e,t,n="same",a=!1){return D(()=>{let r=J(Ft(e,t.filters,[1,1],n),t.bias);return a?qe(r):r})}function xn(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function Au(e,t){return(n,a,r,s)=>{let i=Ca(e(n*a*r*r),[r,r,n,a]),o=Ze(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function Sf(e,t){return(n,a,r)=>{let s=Sa(e(n*a),[n,a]),i=Ze(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var Cf=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function $u(e,t){return(n,a,r)=>{let s=Ca(e(3*3*n),[3,3,n,1]),i=Ca(e(n*a),[1,1,n,a]),o=Ze(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new Cf(s,i,o)}}function Du(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new Cf(n,a,r)}}function qn(e,t){return(n,a,r)=>{let s=e[n];if(!eo(s,a))throw new Error(`expected weightMap[${n}] to be a Tensor${a}D, instead have ${s}`);return t.push({originalPath:n,paramPath:r||n}),s}}function vn(e){let t=e;function n(r){let s=t.slice(0,r);return t=t.slice(r),s}function a(){return t}return{extractWeights:n,getRemainingWeights:a}}function _f(e,t){let n=Au(e,t),a=$u(e,t);function r(i,o,l,c=!1){let u=c?n(i,o,3,`${l}/conv0`):a(i,o,`${l}/conv0`),p=a(o,o,`${l}/conv1`),d=a(o,o,`${l}/conv2`);return{conv0:u,conv1:p,conv2:d}}function s(i,o,l,c=!1){let{conv0:u,conv1:p,conv2:d}=r(i,o,l,c),h=a(o,o,`${l}/conv3`);return{conv0:u,conv1:p,conv2:d,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:s}}function rC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=vn(e),{extractDenseBlock4Params:r}=_f(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2"),l=r(128,256,"dense3");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o,dense3:l}}}function Ef(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function Ff(e,t){let n=qn(e,t),a=Ef(n),r=Du(n);function s(o,l=!1){let c=l?a(`${o}/conv0`):r(`${o}/conv0`),u=r(`${o}/conv1`),p=r(`${o}/conv2`);return{conv0:c,conv1:u,conv2:p}}function i(o,l=!1){let c=l?a(`${o}/conv0`):r(`${o}/conv0`),u=r(`${o}/conv1`),p=r(`${o}/conv2`),d=r(`${o}/conv3`);return{conv0:c,conv1:u,conv2:p,conv3:d}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function sC(e){let t=[],{extractDenseBlock4Params:n}=Ff(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return xn(e,t),{params:a,paramMappings:t}}var _p=class extends Zt{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return D(()=>{let a=ue(t.toBatchTensor(112,!0),"float32"),s=wa(a,[122.782,117.001,104.298]).div(pe(255)),i=Cp(s,n.dense0,!0);return i=Cp(i,n.dense1),i=Cp(i,n.dense2),i=Cp(i,n.dense3),i=Zn(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await ht(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return sC(t)}extractParams(t){return rC(t)}};function Ep(e,t){return D(()=>J(ze(e,t.weights),t.bias))}function iC(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=vn(e),o=Sf(r,a)(t,n,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:a,params:{fc:o}}}function oC(e){let t=[],n=qn(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:a("fc")};return xn(e,t),{params:r,paramMappings:t}}function Af(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=a.startsWith("fc")?n:t;r[a]=e[a]}),{featureExtractorMap:t,classifierMap:n}}var Fp=class extends Zt{constructor(t,n){super(t);this._faceFeatureExtractor=n}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:n}=this;if(!n)throw new Error(`${this._name} - load model before inference`);return D(()=>{let a=t instanceof ur?this.faceFeatureExtractor.forwardInput(t):t;return Ep(a.as2D(a.shape[0],-1),n.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:n,paramMappings:a}=this.extractClassifierParams(t);this._params=n,this._paramMappings=a}extractClassifierParams(t){return iC(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=Af(t);return this.faceFeatureExtractor.loadFromWeightMap(n),oC(a)}extractParams(t){let n=this.getClassifierChannelsIn(),a=this.getClassifierChannelsOut(),r=a*n+a,s=t.slice(0,t.length-r),i=t.slice(t.length-r);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(i)}};var $f=["neutral","happy","sad","angry","fearful","disgusted","surprised"],Ar=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);$f.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return $f.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var Ap=class extends Fp{constructor(t=new _p){super("FaceExpressionNet",t)}forwardInput(t){return D(()=>Na(this.runNet(t)))}async forward(t){return this.forwardInput(await ht(t))}async predictExpressions(t){let n=await ht(t),a=await this.forwardInput(n),r=await Promise.all(ut(a).map(async i=>{let o=await i.data();return i.dispose(),o}));a.dispose();let s=r.map(i=>new Ar(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Df(e){return e.expressions instanceof Ar}function $p(e,t){return{...e,...{expressions:t}}}function vre(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof Ar?s:Df(s)?s.expressions:void 0;if(!i)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let l=i.asSortedArray().filter(p=>p.probability>n),c=La(s)?s.detection.box.bottomLeft:a||new De(0,0);new vs(l.map(p=>`${p.expression} (${to(p.probability)})`),c).draw(e)})}function Ts(e){return La(e)&&e.landmarks instanceof jn&&e.unshiftedLandmarks instanceof jn&&e.alignedRect instanceof mt}function wre(e){let t=(o,l,c,u)=>Math.atan2(u-l,c-o)%Math.PI,n=o=>o*180/Math.PI,a={roll:void 0,pitch:void 0,yaw:void 0};if(!e||!e._positions||e._positions.length!==68)return a;let r=e._positions;a.roll=-t(r[36]._x,r[36]._y,r[45]._x,r[45]._y),a.pitch=t(0,Math.abs(r[0]._x-r[30]._x)/r[30]._x,Math.PI,Math.abs(r[16]._x-r[30]._x)/r[30]._x);let s=r.reduce((o,l)=>oo>l._y?o:l._y,-Infinity);return a.yaw=Math.PI*(e._imgDims._height/(i-s)/1.4-1),a}function uo(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new mt(e.detection.score,r.rescale(s.reverse()),s),o=wre(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var Tw=class{constructor(t={}){let{drawLines:n=!0,drawPoints:a=!0,lineWidth:r,lineColor:s,pointSize:i,pointColor:o}=t;this.drawLines=n,this.drawPoints=a,this.lineWidth=r||1,this.pointSize=i||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=o||"rgba(255, 0, 255, 1)"}},Nw=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new Tw(n)}draw(t){let n=bn(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof so&&(n.strokeStyle=i,n.lineWidth=s,_r(n,this.faceLandmarks.getJawOutline()),_r(n,this.faceLandmarks.getLeftEyeBrow()),_r(n,this.faceLandmarks.getRightEyeBrow()),_r(n,this.faceLandmarks.getNose()),_r(n,this.faceLandmarks.getLeftEye(),!0),_r(n,this.faceLandmarks.getRightEye(),!0),_r(n,this.faceLandmarks.getMouth(),!0)),r){n.strokeStyle=l,n.fillStyle=l;let c=u=>{n.beginPath(),n.arc(u.x,u.y,o,0,2*Math.PI),n.fill()};this.faceLandmarks.positions.forEach(c)}}};function kre(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof jn?a:Ts(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new Nw(r).draw(e)})}var lC="1.0.1";function Ire(e,t){let n=Au(e,t),a=$u(e,t);function r(i,o,l){let c=a(i,o,`${l}/separable_conv0`),u=a(o,o,`${l}/separable_conv1`),p=n(i,o,1,`${l}/expansion_conv`);return{separable_conv0:c,separable_conv1:u,expansion_conv:p}}function s(i,o){let l=a(i,i,`${o}/separable_conv0`),c=a(i,i,`${o}/separable_conv1`),u=a(i,i,`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:c,separable_conv2:u}}return{extractConvParams:n,extractSeparableConvParams:a,extractReductionBlockParams:r,extractMainBlockParams:s}}function uC(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=vn(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=Ire(a,n),c=s(3,32,3,"entry_flow/conv_in"),u=o(32,64,"entry_flow/reduction_block_0"),p=o(64,128,"entry_flow/reduction_block_1"),d={conv_in:c,reduction_block_0:u,reduction_block_1:p},h={};ir(t,0,1).forEach(y=>{h[`main_block_${y}`]=l(128,`middle_flow/main_block_${y}`)});let m=o(128,256,"exit_flow/reduction_block"),f=i(256,512,"exit_flow/separable_conv"),g={reduction_block:m,separable_conv:f};if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:n,params:{entry_flow:d,middle_flow:h,exit_flow:g}}}function Tre(e,t){let n=qn(e,t),a=Ef(n),r=Du(n);function s(o){let l=r(`${o}/separable_conv0`),c=r(`${o}/separable_conv1`),u=a(`${o}/expansion_conv`);return{separable_conv0:l,separable_conv1:c,expansion_conv:u}}function i(o){let l=r(`${o}/separable_conv0`),c=r(`${o}/separable_conv1`),u=r(`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:c,separable_conv2:u}}return{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}}function cC(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=Tre(e,n),o=a("entry_flow/conv_in"),l=s("entry_flow/reduction_block_0"),c=s("entry_flow/reduction_block_1"),u={conv_in:o,reduction_block_0:l,reduction_block_1:c},p={};ir(t,0,1).forEach(f=>{p[`main_block_${f}`]=i(`middle_flow/main_block_${f}`)});let d=s("exit_flow/reduction_block"),h=r("exit_flow/separable_conv"),m={reduction_block:d,separable_conv:h};return xn(e,n),{params:{entry_flow:u,middle_flow:p,exit_flow:m},paramMappings:n}}function pC(e,t,n){return J(Ft(e,t.filters,n,"same"),t.bias)}function Sw(e,t,n=!0){let a=n?qe(e):e;return a=Dn(a,t.separable_conv0,[1,1]),a=Dn(qe(a),t.separable_conv1,[1,1]),a=At(a,[3,3],[2,2],"same"),a=J(a,pC(e,t.expansion_conv,[2,2])),a}function Nre(e,t){let n=Dn(qe(e),t.separable_conv0,[1,1]);return n=Dn(qe(n),t.separable_conv1,[1,1]),n=Dn(qe(n),t.separable_conv2,[1,1]),n=J(n,e),n}var Cw=class extends Zt{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyXception - load model before inference");return D(()=>{let a=ue(t.toBatchTensor(112,!0),"float32"),s=wa(a,[122.782,117.001,104.298]).div(pe(256)),i=qe(pC(s,n.entry_flow.conv_in,[2,2]));return i=Sw(i,n.entry_flow.reduction_block_0,!1),i=Sw(i,n.entry_flow.reduction_block_1),ir(this._numMainBlocks,0,1).forEach(o=>{i=Nre(i,n.middle_flow[`main_block_${o}`])}),i=Sw(i,n.exit_flow.reduction_block),i=qe(Dn(i,n.exit_flow.separable_conv,[1,1])),i})}async forward(t){return this.forwardInput(await ht(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return cC(t,this._numMainBlocks)}extractParams(t){return uC(t,this._numMainBlocks)}};function dC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=vn(e),r=Sf(n,t),s=r(512,1,"fc/age"),i=r(512,2,"fc/gender");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{fc:{age:s,gender:i}}}}function hC(e){let t=[],n=qn(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:{age:a("fc/age"),gender:a("fc/gender")}};return xn(e,t),{params:r,paramMappings:t}}var cr;(function(e){e.FEMALE="female",e.MALE="male"})(cr||(cr={}));var Dp=class extends Zt{constructor(t=new Cw(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:n}=this;if(!n)throw new Error(`${this._name} - load model before inference`);return D(()=>{let a=t instanceof ur?this.faceFeatureExtractor.forwardInput(t):t,r=Zn(a,[7,7],[2,2],"valid").as2D(a.shape[0],-1),s=Ep(r,n.fc.age).as1D(),i=Ep(r,n.fc.gender);return{age:s,gender:i}})}forwardInput(t){return D(()=>{let{age:n,gender:a}=this.runNet(t);return{age:n,gender:Na(a)}})}async forward(t){return this.forwardInput(await ht(t))}async predictAgeAndGender(t){let n=await ht(t),a=await this.forwardInput(n),r=ut(a.age),s=ut(a.gender),i=r.map((l,c)=>({ageTensor:l,genderTensor:s[c]})),o=await Promise.all(i.map(async({ageTensor:l,genderTensor:c})=>{let u=(await l.data())[0],p=(await c.data())[0],d=p>.5,h=d?cr.MALE:cr.FEMALE,m=d?p:1-p;return l.dispose(),c.dispose(),{age:u,gender:h,genderProbability:m}}));return a.age.dispose(),a.gender.dispose(),n.isBatchInput?o:o[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:n,paramMappings:a}=this.extractClassifierParams(t);this._params=n,this._paramMappings=a}extractClassifierParams(t){return dC(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=Af(t);return this.faceFeatureExtractor.loadFromWeightMap(n),hC(a)}extractParams(t){let n=512*1+1+(512*2+2),a=t.slice(0,t.length-n),r=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(r)}};var Rp=class extends Fp{postProcess(t,n,a){let r=a.map(({width:i,height:o})=>{let l=n/Math.max(o,i);return{width:i*l,height:o*l}}),s=r.length;return D(()=>{let i=(p,d)=>$t([Cn([68],p,"float32"),Cn([68],d,"float32")],1).as2D(1,136).as1D(),o=(p,d)=>{let{width:h,height:m}=r[p];return d(h,m)?Math.abs(h-m)/2:0},l=p=>o(p,(d,h)=>do(p,(d,h)=>hi(l(d),c(d))))).div($t(Array.from(Array(s),(p,d)=>i(r[d].width,r[d].height))))})}forwardInput(t){return D(()=>{let n=this.runNet(t);return this.postProcess(n,t.inputSize,t.inputDimensions.map(([a,r])=>({height:a,width:r})))})}async forward(t){return this.forwardInput(await ht(t))}async detectLandmarks(t){let n=await ht(t),a=D(()=>ut(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(await s.data()),l=o.filter((u,p)=>cf(p)),c=o.filter((u,p)=>!cf(p));return new so(Array(68).fill(0).map((u,p)=>new De(l[p],c[p])),{height:n.getInputHeight(i),width:n.getInputWidth(i)})}));return a.forEach(s=>s.dispose()),n.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}};var co=class extends Rp{constructor(t=new _p){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function mC(e){let t=[],{extractDenseBlock3Params:n}=Ff(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return xn(e,t),{params:a,paramMappings:t}}function fC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=vn(e),{extractDenseBlock3Params:r}=_f(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o}}}var _w=class extends Zt{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return D(()=>{let a=ue(t.toBatchTensor(112,!0),"float32"),s=wa(a,[122.782,117.001,104.298]).div(pe(255)),i=Nf(s,n.dense0,!0);return i=Nf(i,n.dense1),i=Nf(i,n.dense2),i=Zn(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await ht(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return mC(t)}extractParams(t){return fC(t)}};var Mp=class extends Rp{constructor(t=new _w){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Ew=class extends co{};function gC(e,t){return J(L(e,t.weights),t.biases)}function Fw(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=Ft(e,s,n,r);return o=J(o,i),o=gC(o,t.scale),a?qe(o):o}function yC(e,t){return Fw(e,t,[1,1],!0)}function Aw(e,t){return Fw(e,t,[1,1],!1)}function Mf(e,t){return Fw(e,t,[2,2],!0,"valid")}function Sre(e,t){function n(o,l,c){let u=e(o),p=u.length/(l*c*c);if(hw(p))throw new Error(`depth has to be an integer: ${p}, weights.length: ${u.length}, numFilters: ${l}, filterSize: ${c}`);return D(()=>Ve(Ca(u,[l,p,c,c]),[2,3,1,0]))}function a(o,l,c,u){let p=n(o,l,c),d=Ze(e(l));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/bias`}),{filters:p,bias:d}}function r(o,l){let c=Ze(e(o)),u=Ze(e(o));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:c,biases:u}}function s(o,l,c,u){let p=a(o,l,c,`${u}/conv`),d=r(l,`${u}/scale`);return{conv:p,scale:d}}function i(o,l,c,u,p=!1){let d=s((p?.5:1)*o,l,c,`${u}/conv1`),h=s(o,l,c,`${u}/conv2`);return{conv1:d,conv2:h}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function bC(e){let{extractWeights:t,getRemainingWeights:n}=vn(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=Sre(t,a),i=r(4704,32,7,"conv32_down"),o=s(9216,32,3,"conv32_1"),l=s(9216,32,3,"conv32_2"),c=s(9216,32,3,"conv32_3"),u=s(36864,64,3,"conv64_down",!0),p=s(36864,64,3,"conv64_1"),d=s(36864,64,3,"conv64_2"),h=s(36864,64,3,"conv64_3"),m=s(147456,128,3,"conv128_down",!0),f=s(147456,128,3,"conv128_1"),g=s(147456,128,3,"conv128_2"),y=s(589824,256,3,"conv256_down",!0),b=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),v=s(589824,256,3,"conv256_down_out"),N=D(()=>Ve(Sa(t(256*128),[128,256]),[1,0]));if(a.push({paramPath:"fc"}),n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{params:{conv32_down:i,conv32_1:o,conv32_2:l,conv32_3:c,conv64_down:u,conv64_1:p,conv64_2:d,conv64_3:h,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:y,conv256_1:b,conv256_2:x,conv256_down_out:v,fc:N},paramMappings:a}}function Cre(e,t){let n=qn(e,t);function a(i){let o=n(`${i}/scale/weights`,1),l=n(`${i}/scale/biases`,1);return{weights:o,biases:l}}function r(i){let o=n(`${i}/conv/filters`,4),l=n(`${i}/conv/bias`,1),c=a(i);return{conv:{filters:o,bias:l},scale:c}}function s(i){return{conv1:r(`${i}/conv1`),conv2:r(`${i}/conv2`)}}return{extractConvLayerParams:r,extractResidualLayerParams:s}}function xC(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Cre(e,t),r=n("conv32_down"),s=a("conv32_1"),i=a("conv32_2"),o=a("conv32_3"),l=a("conv64_down"),c=a("conv64_1"),u=a("conv64_2"),p=a("conv64_3"),d=a("conv128_down"),h=a("conv128_1"),m=a("conv128_2"),f=a("conv256_down"),g=a("conv256_1"),y=a("conv256_2"),b=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!dw(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);let v={conv32_down:r,conv32_1:s,conv32_2:i,conv32_3:o,conv64_down:l,conv64_1:c,conv64_2:u,conv64_3:p,conv128_down:d,conv128_1:h,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:y,conv256_down_out:b,fc:x};return xn(e,t),{params:v,paramMappings:t}}function za(e,t){let n=yC(e,t.conv1);return n=Aw(n,t.conv2),n=J(n,e),n=qe(n),n}function Pp(e,t){let n=Mf(e,t.conv1);n=Aw(n,t.conv2);let a=Zn(e,2,2,"valid"),r=xt(a.shape),s=a.shape[3]!==n.shape[3];if(a.shape[1]!==n.shape[1]||a.shape[2]!==n.shape[2]){let o=[...n.shape];o[1]=1;let l=xt(o);n=Je([n,l],1);let c=[...n.shape];c[2]=1;let u=xt(c);n=Je([n,u],2)}return a=s?Je([a,r],3):a,n=J(a,n),n=qe(n),n}var po=class extends Zt{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return D(()=>{let a=ue(t.toBatchTensor(150,!0),"float32"),s=wa(a,[122.782,117.001,104.298]).div(pe(256)),i=Mf(s,n.conv32_down);i=At(i,3,2,"valid"),i=za(i,n.conv32_1),i=za(i,n.conv32_2),i=za(i,n.conv32_3),i=Pp(i,n.conv64_down),i=za(i,n.conv64_1),i=za(i,n.conv64_2),i=za(i,n.conv64_3),i=Pp(i,n.conv128_down),i=za(i,n.conv128_1),i=za(i,n.conv128_2),i=Pp(i,n.conv256_down),i=za(i,n.conv256_1),i=za(i,n.conv256_2),i=Pp(i,n.conv256_down_out);let o=i.mean([1,2]);return ze(o,n.fc)})}async forward(t){return this.forwardInput(await ht(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)==null?void 0:s.some(i=>i<=0))return new Float32Array(128);let n=await ht(t),a=D(()=>ut(this.forwardInput(n))),r=await Promise.all(a.map(i=>i.data()));return a.forEach(i=>i.dispose()),n.isBatchInput?r:r[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return xC(t)}extractParams(t){return bC(t)}};function vC(e){let t=new po;return t.extractWeights(e),t}function Op(e,t){return{...e,...{descriptor:t}}}function wC(e){return typeof e.age=="number"}function Lp(e,t){return{...e,...{age:t}}}function kC(e){return(e.gender===cr.MALE||e.gender===cr.FEMALE)&&Nu(e.genderProbability)}function zp(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function _re(e,t){function n(l,c){let u=Ca(e(3*3*l),[3,3,l,1]),p=Ze(e(l)),d=Ze(e(l)),h=Ze(e(l)),m=Ze(e(l));return t.push({paramPath:`${c}/filters`},{paramPath:`${c}/batch_norm_scale`},{paramPath:`${c}/batch_norm_offset`},{paramPath:`${c}/batch_norm_mean`},{paramPath:`${c}/batch_norm_variance`}),{filters:u,batch_norm_scale:p,batch_norm_offset:d,batch_norm_mean:h,batch_norm_variance:m}}function a(l,c,u,p,d){let h=Ca(e(l*c*u*u),[u,u,l,c]),m=Ze(e(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/${d?"batch_norm_offset":"bias"}`}),{filters:h,bias:m}}function r(l,c,u,p){let{filters:d,bias:h}=a(l,c,u,p,!0);return{filters:d,batch_norm_offset:h}}function s(l,c,u){let p=n(l,`${u}/depthwise_conv`),d=r(l,c,1,`${u}/pointwise_conv`);return{depthwise_conv:p,pointwise_conv:d}}function i(){let l=r(3,32,3,"mobilenetv1/conv_0"),c=s(32,64,"mobilenetv1/conv_1"),u=s(64,128,"mobilenetv1/conv_2"),p=s(128,128,"mobilenetv1/conv_3"),d=s(128,256,"mobilenetv1/conv_4"),h=s(256,256,"mobilenetv1/conv_5"),m=s(256,512,"mobilenetv1/conv_6"),f=s(512,512,"mobilenetv1/conv_7"),g=s(512,512,"mobilenetv1/conv_8"),y=s(512,512,"mobilenetv1/conv_9"),b=s(512,512,"mobilenetv1/conv_10"),x=s(512,512,"mobilenetv1/conv_11"),v=s(512,1024,"mobilenetv1/conv_12"),N=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:c,conv_2:u,conv_3:p,conv_4:d,conv_5:h,conv_6:m,conv_7:f,conv_8:g,conv_9:y,conv_10:b,conv_11:x,conv_12:v,conv_13:N}}function o(){let l=r(1024,256,1,"prediction_layer/conv_0"),c=r(256,512,3,"prediction_layer/conv_1"),u=r(512,128,1,"prediction_layer/conv_2"),p=r(128,256,3,"prediction_layer/conv_3"),d=r(256,128,1,"prediction_layer/conv_4"),h=r(128,256,3,"prediction_layer/conv_5"),m=r(256,64,1,"prediction_layer/conv_6"),f=r(64,128,3,"prediction_layer/conv_7"),g=a(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),b=a(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=a(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),v=a(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),N=a(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),T=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),S=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),A=a(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),$=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),R=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),B=a(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:l,conv_1:c,conv_2:u,conv_3:p,conv_4:d,conv_5:h,conv_6:m,conv_7:f,box_predictor_0:{box_encoding_predictor:g,class_predictor:y},box_predictor_1:{box_encoding_predictor:b,class_predictor:x},box_predictor_2:{box_encoding_predictor:v,class_predictor:N},box_predictor_3:{box_encoding_predictor:T,class_predictor:S},box_predictor_4:{box_encoding_predictor:A,class_predictor:$},box_predictor_5:{box_encoding_predictor:R,class_predictor:B}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function IC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=vn(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=_re(n,t),i=r(),o=s(),c={extra_dim:dh(n(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:{mobilenetv1:i,prediction_layer:o,output_layer:c},paramMappings:t}}function Ere(e,t){let n=qn(e,t);function a(c,u,p){let d=n(`${c}/Conv2d_${u}_pointwise/weights`,4,`${p}/filters`),h=n(`${c}/Conv2d_${u}_pointwise/convolution_bn_offset`,1,`${p}/batch_norm_offset`);return{filters:d,batch_norm_offset:h}}function r(c){let u=`mobilenetv1/conv_${c}`,p=`MobilenetV1/Conv2d_${c}_depthwise`,d=`${u}/depthwise_conv`,h=`${u}/pointwise_conv`,m=n(`${p}/depthwise_weights`,4,`${d}/filters`),f=n(`${p}/BatchNorm/gamma`,1,`${d}/batch_norm_scale`),g=n(`${p}/BatchNorm/beta`,1,`${d}/batch_norm_offset`),y=n(`${p}/BatchNorm/moving_mean`,1,`${d}/batch_norm_mean`),b=n(`${p}/BatchNorm/moving_variance`,1,`${d}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:y,batch_norm_variance:b},pointwise_conv:a("MobilenetV1",c,h)}}function s(){return{conv_0:a("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:r(1),conv_2:r(2),conv_3:r(3),conv_4:r(4),conv_5:r(5),conv_6:r(6),conv_7:r(7),conv_8:r(8),conv_9:r(9),conv_10:r(10),conv_11:r(11),conv_12:r(12),conv_13:r(13)}}function i(c,u){let p=n(`${c}/weights`,4,`${u}/filters`),d=n(`${c}/biases`,1,`${u}/bias`);return{filters:p,bias:d}}function o(c){let u=i(`Prediction/BoxPredictor_${c}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${c}/box_encoding_predictor`),p=i(`Prediction/BoxPredictor_${c}/ClassPredictor`,`prediction_layer/box_predictor_${c}/class_predictor`);return{box_encoding_predictor:u,class_predictor:p}}function l(){return{conv_0:a("Prediction",0,"prediction_layer/conv_0"),conv_1:a("Prediction",1,"prediction_layer/conv_1"),conv_2:a("Prediction",2,"prediction_layer/conv_2"),conv_3:a("Prediction",3,"prediction_layer/conv_3"),conv_4:a("Prediction",4,"prediction_layer/conv_4"),conv_5:a("Prediction",5,"prediction_layer/conv_5"),conv_6:a("Prediction",6,"prediction_layer/conv_6"),conv_7:a("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:o(0),box_predictor_1:o(1),box_predictor_2:o(2),box_predictor_3:o(3),box_predictor_4:o(4),box_predictor_5:o(5)}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:l}}function TC(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=Ere(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Er(r))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${r}`);let s={mobilenetv1:n(),prediction_layer:a(),output_layer:{extra_dim:r}};return xn(e,t),{params:s,paramMappings:t}}function ka(e,t,n){return D(()=>{let a=Ft(e,t.filters,n,"same");return a=J(a,t.batch_norm_offset),qt(a,0,6)})}var Fre=.0010000000474974513;function Are(e,t,n){return D(()=>{let a=ns(e,t.filters,n,"same");return a=br(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Fre),qt(a,0,6)})}function $re(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function NC(e,t){return D(()=>{let n,a=ka(e,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((s,i)=>{let o=i+1,l=$re(o);a=Are(a,s.depthwise_conv,l),a=ka(a,s.pointwise_conv,[1,1]),o===11&&(n=a)}),n===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:a,conv11:n}})}function Dre(e,t,n){let a=e.arraySync(),r=Math.min(a[t][0],a[t][2]),s=Math.min(a[t][1],a[t][3]),i=Math.max(a[t][0],a[t][2]),o=Math.max(a[t][1],a[t][3]),l=Math.min(a[n][0],a[n][2]),c=Math.min(a[n][1],a[n][3]),u=Math.max(a[n][0],a[n][2]),p=Math.max(a[n][1],a[n][3]),d=(i-r)*(o-s),h=(u-l)*(p-c);if(d<=0||h<=0)return 0;let m=Math.max(r,l),f=Math.max(s,c),g=Math.min(i,u),y=Math.min(o,p),b=Math.max(g-m,0)*Math.max(y-f,0);return b/(d+h-b)}function SC(e,t,n,a,r){let s=e.shape[0],i=Math.min(n,s),o=t.map((u,p)=>({score:u,boxIndex:p})).filter(u=>u.score>r).sort((u,p)=>p.score-u.score),l=u=>u<=a?1:0,c=[];return o.forEach(u=>{if(c.length>=i)return;let p=u.score;for(let d=c.length-1;d>=0;--d){let h=Dre(e,u.boxIndex,c[d]);if(h!==0&&(u.score*=l(h),u.score<=r))break}p===u.score&&c.push(u.boxIndex)}),c}function Rre(e){let t=ut(Ve(e,[1,0])),n=[me(t[2],t[0]),me(t[3],t[1])],a=[J(t[0],xe(n[0],pe(2))),J(t[1],xe(n[1],pe(2)))];return{sizes:n,centers:a}}function Mre(e,t){let{sizes:n,centers:a}=Rre(e),r=ut(Ve(t,[1,0])),s=xe(L(hn(xe(r[2],pe(5))),n[0]),pe(2)),i=J(L(xe(r[0],pe(10)),n[0]),a[0]),o=xe(L(hn(xe(r[3],pe(5))),n[1]),pe(2)),l=J(L(xe(r[1],pe(10)),n[1]),a[1]);return Ve($t([me(i,s),me(l,o),J(i,s),J(l,o)]),[1,0])}function CC(e,t,n){return D(()=>{let a=e.shape[0],r=Mre(U(qa(n.extra_dim,[a,1,1]),[-1,4]),U(e,[-1,4]));r=U(r,[a,r.shape[0]/a,4]);let s=da(We(t,[0,0,1],[-1,-1,-1])),i=We(s,[0,0,0],[-1,-1,1]);i=U(i,[a,i.shape[1]]);let o=ut(r),l=ut(i);return{boxes:o,scores:l}})}function ho(e,t){return D(()=>{let n=e.shape[0],a=U(lo(e,t.box_encoding_predictor),[n,-1,1,4]),r=U(lo(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function _C(e,t,n){return D(()=>{let a=ka(e,n.conv_0,[1,1]),r=ka(a,n.conv_1,[2,2]),s=ka(r,n.conv_2,[1,1]),i=ka(s,n.conv_3,[2,2]),o=ka(i,n.conv_4,[1,1]),l=ka(o,n.conv_5,[2,2]),c=ka(l,n.conv_6,[1,1]),u=ka(c,n.conv_7,[2,2]),p=ho(t,n.box_predictor_0),d=ho(e,n.box_predictor_1),h=ho(r,n.box_predictor_2),m=ho(i,n.box_predictor_3),f=ho(l,n.box_predictor_4),g=ho(u,n.box_predictor_5),y=Je([p.boxPredictionEncoding,d.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),b=Je([p.classPrediction,d.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:y,classPredictions:b}})}var sa=class{constructor({minConfidence:t,maxResults:n}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=n||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var Ns=class extends Zt{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return D(()=>{let a=ue(t.toBatchTensor(512,!1),"float32"),r=me(L(a,pe(.007843137718737125)),pe(1)),s=NC(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=_C(s.out,s.conv11,n.prediction_layer);return CC(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await ht(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new sa(n),s=await ht(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],c=o[0];for(let x=1;x{let[v,N]=[Math.max(0,y[x][0]),Math.min(1,y[x][2])].map(A=>A*g),[T,S]=[Math.max(0,y[x][1]),Math.min(1,y[x][3])].map(A=>A*f);return new mt(u[x],new ro(T,v,S-T,N-v),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),c.dispose(),b}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return TC(t)}extractParams(t){return IC(t)}};function $w(e){let t=new Ns;return t.extractWeights(e),t}function EC(e){return $w(e)}var Dw=class extends Ns{};var FC=.4,AC=[new De(.738768,.874946),new De(2.42204,2.65704),new De(4.30971,7.04493),new De(10.246,4.59428),new De(12.6868,11.8741)],$C=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],DC=[117.001,114.697,97.404],RC="tiny_yolov2_model",MC="tiny_yolov2_separable_conv_model";var Pf=e=>typeof e=="number";function Of(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!Pf(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>Pf(t.x)&&Pf(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(Pf)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function Ru(e){return D(()=>{let t=L(e,pe(.10000000149011612));return J(qe(me(e,t)),t)})}function $r(e,t){return D(()=>{let n=ta(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Ft(n,t.conv.filters,[1,1],"valid"),n=me(n,t.bn.sub),n=L(n,t.bn.truediv),n=J(n,t.conv.bias),Ru(n)})}function Dr(e,t){return D(()=>{let n=ta(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Pi(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=J(n,t.bias),Ru(n)})}function Pre(e,t){let n=Au(e,t);function a(i,o){let l=Ze(e(i)),c=Ze(e(i));return t.push({paramPath:`${o}/sub`},{paramPath:`${o}/truediv`}),{sub:l,truediv:c}}function r(i,o,l){let c=n(i,o,3,`${l}/conv`),u=a(o,`${l}/bn`);return{conv:c,bn:u}}let s=$u(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function PC(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=vn(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:c}=Pre(r,i),u;if(t.withSeparableConvs){let[p,d,h,m,f,g,y,b,x]=a,v=t.isFirstLayerConv2d?o(p,d,3,"conv0"):c(p,d,"conv0"),N=c(d,h,"conv1"),T=c(h,m,"conv2"),S=c(m,f,"conv3"),A=c(f,g,"conv4"),$=c(g,y,"conv5"),R=b?c(y,b,"conv6"):void 0,B=x?c(b,x,"conv7"):void 0,V=o(x||b||y,5*n,1,"conv8");u={conv0:v,conv1:N,conv2:T,conv3:S,conv4:A,conv5:$,conv6:R,conv7:B,conv8:V}}else{let[p,d,h,m,f,g,y,b,x]=a,v=l(p,d,"conv0"),N=l(d,h,"conv1"),T=l(h,m,"conv2"),S=l(m,f,"conv3"),A=l(f,g,"conv4"),$=l(g,y,"conv5"),R=l(y,b,"conv6"),B=l(b,x,"conv7"),V=o(x,5*n,1,"conv8");u={conv0:v,conv1:N,conv2:T,conv3:S,conv4:A,conv5:$,conv6:R,conv7:B,conv8:V}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:u,paramMappings:i}}function Ore(e,t){let n=qn(e,t);function a(o){let l=n(`${o}/sub`,1),c=n(`${o}/truediv`,1);return{sub:l,truediv:c}}function r(o){let l=n(`${o}/filters`,4),c=n(`${o}/bias`,1);return{filters:l,bias:c}}function s(o){let l=r(`${o}/conv`),c=a(`${o}/bn`);return{conv:l,bn:c}}let i=Du(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function OC(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=Ore(e,n),i;if(t.withSeparableConvs){let o=t.filterSizes&&t.filterSizes.length||9;i={conv0:t.isFirstLayerConv2d?a("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:o>7?s("conv6"):void 0,conv7:o>8?s("conv7"):void 0,conv8:a("conv8")}}else i={conv0:r("conv0"),conv1:r("conv1"),conv2:r("conv2"),conv3:r("conv3"),conv4:r("conv4"),conv5:r("conv5"),conv6:r("conv6"),conv7:r("conv7"),conv8:a("conv8")};return xn(e,n),{params:i,paramMappings:n}}var Ba=class{constructor({inputSize:t,scoreThreshold:n}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=n||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var Rw=class extends Zt{constructor(t){super("TinyYolov2");Of(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,n){let a=$r(t,n.conv0);return a=At(a,[2,2],[2,2],"same"),a=$r(a,n.conv1),a=At(a,[2,2],[2,2],"same"),a=$r(a,n.conv2),a=At(a,[2,2],[2,2],"same"),a=$r(a,n.conv3),a=At(a,[2,2],[2,2],"same"),a=$r(a,n.conv4),a=At(a,[2,2],[2,2],"same"),a=$r(a,n.conv5),a=At(a,[2,2],[1,1],"same"),a=$r(a,n.conv6),a=$r(a,n.conv7),lo(a,n.conv8,"valid",!1)}runMobilenet(t,n){let a=this.config.isFirstLayerConv2d?Ru(lo(t,n.conv0,"valid",!1)):Dr(t,n.conv0);return a=At(a,[2,2],[2,2],"same"),a=Dr(a,n.conv1),a=At(a,[2,2],[2,2],"same"),a=Dr(a,n.conv2),a=At(a,[2,2],[2,2],"same"),a=Dr(a,n.conv3),a=At(a,[2,2],[2,2],"same"),a=Dr(a,n.conv4),a=At(a,[2,2],[2,2],"same"),a=Dr(a,n.conv5),a=At(a,[2,2],[1,1],"same"),a=n.conv6?Dr(a,n.conv6):a,a=n.conv7?Dr(a,n.conv7):a,lo(a,n.conv8,"valid",!1)}forwardInput(t,n){let{params:a}=this;if(!a)throw new Error("TinyYolov2 - load model before inference");return D(()=>{let r=ue(t.toBatchTensor(n,!1),"float32");return r=this.config.meanRgb?wa(r,this.config.meanRgb):r,r=r.div(pe(256)),this.config.withSeparableConvs?this.runMobilenet(r,a):this.runTinyYolov2(r,a)})}async forward(t,n){return this.forwardInput(await ht(t),n)}async detect(t,n={}){let{inputSize:a,scoreThreshold:r}=new Ba(n),s=await ht(t),i=await this.forwardInput(s,a),o=D(()=>ut(i)[0].expandDims()),l={width:s.getInputWidth(0),height:s.getInputHeight(0)},c=await this.extractBoxes(o,s.getReshapedInputDimensions(0),r);i.dispose(),o.dispose();let u=c.map(g=>g.box),p=c.map(g=>g.score),d=c.map(g=>g.classScore),h=c.map(g=>this.config.classes[g.label]);return mf(u.map(g=>g.rescale(a)),p,this.config.iouThreshold,!0).map(g=>new Fr(p[g],d[g],h[g],u[g],l))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return OC(t,this.config)}extractParams(t){let n=this.config.filterSizes||Rw.DEFAULT_FILTER_SIZES,a=n?n.length:void 0;if(a!==7&&a!==8&&a!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${a} filterSizes in config`);return PC(t,this.config,this.boxEncodingSize,n)}async extractBoxes(t,n,a){let{width:r,height:s}=n,i=Math.max(r,s),o=i/r,l=i/s,c=t.shape[1],u=this.config.anchors.length,[p,d,h]=D(()=>{let y=t.reshape([c,c,u,this.boxEncodingSize]),b=y.slice([0,0,0,0],[c,c,u,4]),x=y.slice([0,0,0,4],[c,c,u,1]),v=this.withClassScores?Na(y.slice([0,0,0,5],[c,c,u,this.config.classes.length]),3):pe(0);return[b,x,v]}),m=[],f=await d.array(),g=await p.array();for(let y=0;ya){let N=(b+Su(g[y][b][x][0]))/c*o,T=(y+Su(g[y][b][x][1]))/c*l,S=Math.exp(g[y][b][x][2])*this.config.anchors[x].x/c*o,A=Math.exp(g[y][b][x][3])*this.config.anchors[x].y/c*l,$=N-S/2,R=T-A/2,B={row:y,col:b,anchor:x},{classScore:V,label:W}=this.withClassScores?await this.extractPredictedClass(h,B):{classScore:1,label:0};m.push({box:new ao($,R,$+S,R+A),score:v,classScore:v*V,label:W,...B})}}return p.dispose(),d.dispose(),h.dispose(),m}async extractPredictedClass(t,n){let{row:a,col:r,anchor:s}=n,i=await t.array();return Array(this.config.classes.length).fill(0).map((o,l)=>i[a][r][s][l]).map((o,l)=>({classScore:o,label:l})).reduce((o,l)=>o.classScore>l.classScore?o:l)}},Mu=Rw;Mu.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var mo=class extends Mu{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:FC,classes:["face"],...t?{anchors:$C,meanRgb:DC}:{anchors:AC,withClassScores:!0}};super(n)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new mt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?MC:RC}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function LC(e,t=!0){let n=new mo(t);return n.extractWeights(e),n}var Bp=class extends Ba{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var ia=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function fo(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>Ts(l)?r(l):l.detection),i=a||(t instanceof Ee?await oo(t,s):await io(t,s)),o=await n(i);return i.forEach(l=>l instanceof Ee&&l.dispose()),o}async function Pu(e,t,n,a,r){return fo([e],t,async s=>n(s[0]),a,r)}var zC=.4,BC=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],WC=[117.001,114.697,97.404];var go=class extends Mu{constructor(){let t={withSeparableConvs:!0,iouThreshold:zC,classes:["face"],anchors:BC,meanRgb:WC,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new mt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var Qe={ssdMobilenetv1:new Ns,tinyFaceDetector:new go,tinyYolov2:new mo,faceLandmark68Net:new co,faceLandmark68TinyNet:new Mp,faceRecognitionNet:new po,faceExpressionNet:new Ap,ageGenderNet:new Dp},Mw=(e,t)=>Qe.ssdMobilenetv1.locateFaces(e,t),VC=(e,t)=>Qe.tinyFaceDetector.locateFaces(e,t),UC=(e,t)=>Qe.tinyYolov2.locateFaces(e,t),Pw=e=>Qe.faceLandmark68Net.detectLandmarks(e),GC=e=>Qe.faceLandmark68TinyNet.detectLandmarks(e),HC=e=>Qe.faceRecognitionNet.computeFaceDescriptor(e),jC=e=>Qe.faceExpressionNet.predictExpressions(e),qC=e=>Qe.ageGenderNet.predictAgeAndGender(e),Ow=e=>Qe.ssdMobilenetv1.load(e),KC=e=>Qe.tinyFaceDetector.load(e),XC=e=>Qe.tinyYolov2.load(e),YC=e=>Qe.faceLandmark68Net.load(e),JC=e=>Qe.faceLandmark68TinyNet.load(e),QC=e=>Qe.faceRecognitionNet.load(e),ZC=e=>Qe.faceExpressionNet.load(e),e_=e=>Qe.ageGenderNet.load(e),t_=Ow,n_=Mw,a_=Pw;var Lw=class extends ia{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.extractedFaces=a}},zu=class extends Lw{async run(){let t=await this.parentTask,n=await fo(t,this.input,async a=>Promise.all(a.map(r=>Qe.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>$p(a,n[r]))}withAgeAndGender(){return new Ou(this,this.input)}},Bu=class extends Lw{async run(){let t=await this.parentTask;if(!t)return;let n=await Pu(t,this.input,a=>Qe.faceExpressionNet.predictExpressions(a),this.extractedFaces);return $p(t,n)}withAgeAndGender(){return new Lu(this,this.input)}},xo=class extends zu{withAgeAndGender(){return new yo(this,this.input)}withFaceDescriptors(){return new Rr(this,this.input)}},vo=class extends Bu{withAgeAndGender(){return new bo(this,this.input)}withFaceDescriptor(){return new Mr(this,this.input)}};var zw=class extends ia{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.extractedFaces=a}},Ou=class extends zw{async run(){let t=await this.parentTask,n=await fo(t,this.input,async a=>Promise.all(a.map(r=>Qe.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return Lp(zp(a,i,o),s)})}withFaceExpressions(){return new zu(this,this.input)}},Lu=class extends zw{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await Pu(t,this.input,s=>Qe.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return Lp(zp(t,a,r),n)}withFaceExpressions(){return new Bu(this,this.input)}},yo=class extends Ou{withFaceExpressions(){return new xo(this,this.input)}withFaceDescriptors(){return new Rr(this,this.input)}},bo=class extends Lu{withFaceExpressions(){return new vo(this,this.input)}withFaceDescriptor(){return new Mr(this,this.input)}};var Wp=class extends ia{constructor(t,n){super();this.parentTask=t;this.input=n}},Rr=class extends Wp{async run(){let t=await this.parentTask;return(await fo(t,this.input,a=>Promise.all(a.map(r=>Qe.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>Op(t[r],a))}withFaceExpressions(){return new xo(this,this.input)}withAgeAndGender(){return new yo(this,this.input)}},Mr=class extends Wp{async run(){let t=await this.parentTask;if(!t)return;let n=await Pu(t,this.input,a=>Qe.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return Op(t,n)}withFaceExpressions(){return new vo(this,this.input)}withAgeAndGender(){return new bo(this,this.input)}};var Vp=class extends ia{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.useTinyLandmarkNet=a}get landmarkNet(){return this.useTinyLandmarkNet?Qe.faceLandmark68TinyNet:Qe.faceLandmark68Net}},Up=class extends Vp{async run(){let t=await this.parentTask,n=t.map(s=>s.detection),a=this.input instanceof Ee?await oo(this.input,n):await io(this.input,n),r=await Promise.all(a.map(s=>this.landmarkNet.detectLandmarks(s)));return a.forEach(s=>s instanceof Ee&&s.dispose()),t.map((s,i)=>uo(s,r[i]))}withFaceExpressions(){return new xo(this,this.input)}withAgeAndGender(){return new yo(this,this.input)}withFaceDescriptors(){return new Rr(this,this.input)}},Gp=class extends Vp{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Ee?await oo(this.input,[n]):await io(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Ee&&s.dispose()),uo(t,r)}withFaceExpressions(){return new vo(this,this.input)}withAgeAndGender(){return new bo(this,this.input)}withFaceDescriptor(){return new Mr(this,this.input)}};var Hp=class extends ia{constructor(t,n=new sa){super();this.input=t;this.options=n}},Wu=class extends Hp{async run(){let{input:t,options:n}=this,a;if(n instanceof Bp)a=Qe.tinyFaceDetector.locateFaces(t,n);else if(n instanceof sa)a=Qe.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof Ba)a=Qe.tinyYolov2.locateFaces(t,n);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return a}runAndExtendWithFaceDetections(){return new Promise(async t=>{let n=await this.run();t(n.map(a=>bs({},a)))})}withFaceLandmarks(t=!1){return new Up(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new zu(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Ou(this.runAndExtendWithFaceDetections(),this.input)}},jp=class extends Hp{async run(){let t=await new Wu(this.input,this.options),n=t[0];return t.forEach(a=>{a.score>n.score&&(n=a)}),n}runAndExtendWithFaceDetection(){return new Promise(async t=>{let n=await this.run();t(n?bs({},n):void 0)})}withFaceLandmarks(t=!1){return new Gp(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Bu(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Lu(this.runAndExtendWithFaceDetection(),this.input)}};function r_(e,t=new sa){return new jp(e,t)}function qp(e,t=new sa){return new Wu(e,t)}async function Bw(e,t){return qp(e,new sa(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function s_(e,t={}){return qp(e,new Ba(t)).withFaceLandmarks().withFaceDescriptors()}var i_=Bw;function Lf(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let n=Array.from(e),a=Array.from(t);return Math.sqrt(n.map((r,s)=>r-a[s]).reduce((r,s)=>r+s**2,0))}var Kp=class{constructor(t,n=.6){this._distanceThreshold=n;let a=Array.isArray(t)?t:[t];if(!a.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let r=1,s=()=>`person ${r++}`;this._labeledDescriptors=a.map(i=>{if(i instanceof or)return i;if(i instanceof Float32Array)return new or(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new or(s(),[i.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,n){return n.map(a=>Lf(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new Cu(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>or.fromJSON(a));return new Kp(n,t.distanceThreshold)}};function o_(e){let t=new go;return t.extractWeights(e),t}function Ww(e,t){let{width:n,height:a}=new un(t.width,t.height);if(n<=0||a<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:n,height:a})}`);if(Array.isArray(e))return e.map(r=>Ww(r,{width:n,height:a}));if(Ts(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return uo(bs(e,r),s)}return La(e)?bs(e,e.detection.forSize(n,a)):e instanceof jn||e instanceof mt?e.forSize(n,a):e}var zre=typeof process!="undefined",Bre=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",l_={faceapi:lC,node:zre,browser:Bre};return Lre;})(); + `}};function Xee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,segmentIds:s}=t,{numSegments:i}=a,o=r.shape.length,l=[],u=0,c=E.getAxesPermutation([u],o),p=r;c!=null&&(p=En({inputs:{x:r},backend:n,attrs:{perm:c}}),l.push(p),u=E.getInnerMostAxes(1,o)[0]);let d=E.segment_util.computeOutShape(p.shape,u,i),h=I.sizeFromShape([p.shape[u]]),m=ye({inputs:{x:p},backend:n,attrs:{shape:[-1,h]}});l.push(m);let f=uh(r.dtype),g=(v,k,w,S,A)=>{let F=v.shape[0],D=v.shape[1],R=E.segment_util.segOpComputeOptimalWindowSize(D,A),L={windowSize:R,inSize:D,batchSize:F,numSegments:A},W=new qee(L,k),U=n.compileAndRun(W,[v,w],S);if(l.push(U),U.shape[1]===A)return U;let G=sS({backend:n,attrs:{start:0,stop:A,step:1,dtype:"float32"}}),X=lS({inputs:{x:G},backend:n,attrs:{reps:[D/R]}});return l.push(G),l.push(X),g(U,k,X,S,A)},y=g(m,"unsortedSegmentSum",s,f,i),b=ye({inputs:{x:y},backend:n,attrs:{shape:d}}),x=b;if(c!=null){l.push(b);let v=E.getUndoAxesPermutation(c);x=En({inputs:{x},backend:n,attrs:{perm:v}})}return l.forEach(v=>n.disposeIntermediateTensorInfo(v)),x}var Kee={kernelName:bc,backendName:"webgl",kernelFunc:Xee},Yee=[zJ,VJ,CK,FK,$K,RK,OK,WK,VK,GK,XK,YK,ZK,n7,u7,s7,d7,g7,m7,v7,k7,N7,A7,R7,O7,U7,H7,K7,Q7,lK,nY,dY,mY,iY,bY,vY,gY,IY,SY,FY,EY,DY,PY,VY,GY,LY,qY,YY,e9,r9,l9,p9,d9,h9,f9,y9,x9,w9,I9,C9,E9,D9,R9,L9,V9,j9,Y9,oK,Q9,tY,tJ,rJ,oJ,cK,pJ,fJ,yJ,NJ,wJ,AJ,EJ,RJ,GJ,QJ,YJ,nQ,rQ,iQ,XJ,lQ,cQ,mQ,bQ,kQ,_Q,fK,$Q,RQ,LQ,BQ,z7,GQ,jQ,XQ,JQ,tZ,dK,aZ,rZ,W7,SQ,oZ,fZ,pZ,yK,xZ,kZ,TZ,AZ,$Z,MZ,OZ,WZ,VZ,HZ,XZ,JZ,eee,aee,iee,D7,AQ,uee,pee,hee,fee,bee,wee,Iee,Tee,Aee,CQ,NK,Eee,Mee,Oee,zee,Vee,TK,Gee,jee,Kee,HQ];for(let e of Yee)vc(e);var Jee="3.3.0",Qee={"tfjs-core":c1,"tfjs-backend-cpu":bG,"tfjs-backend-webgl":iK,"tfjs-data":ON,"tfjs-layers":Im,"tfjs-converter":EN,tfjs:Jee},Hn;(function(e){e[e.float32=0]="float32",e[e.int32=1]="int32",e[e.bool=2]="bool",e[e.string=3]="string",e[e.complex64=4]="complex64"})(Hn||(Hn={}));var Ip;(function(e){e[e.linear=0]="linear",e[e.relu=1]="relu",e[e.relu6=2]="relu6",e[e.prelu=3]="prelu",e[e.leakyrelu=4]="leakyrelu"})(Ip||(Ip={}));var uS;function Zee(e){uS=e.wasm.cwrap(Ii,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function ete(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:u,activation:c,leakyreluAlpha:p}=a,d=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(s.dataId).id,m=0;if(i!=null){let A=n.dataIdMap.get(i.dataId);if(A.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${A.shape.length}.`);m=A.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=Ip[c];if(g==null)throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);let y=l?r.shape[2]:r.shape[1],b=u?s.shape[1]:s.shape[2],x=r.shape[0],v=n.makeOutput([x,y,b],r.dtype),k=n.dataIdMap.get(v.dataId).id,w=new Uint8Array(new Int32Array(r.shape).buffer),S=new Uint8Array(new Int32Array(s.shape).buffer);return uS(d,w,r.shape.length,h,S,s.shape.length,l,u,g,m,f,p||0,k),v}var tte={kernelName:Ii,backendName:"wasm",setupFunc:Zee,kernelFunc:ete};function $n(e){let t;function n(r){t=r.wasm.cwrap(e,null,["number","number"])}function a(r){let{backend:s,inputs:{x:i}}=r,o=s.dataIdMap.get(i.dataId).id,l=s.makeOutput(i.shape,i.dtype),u=s.dataIdMap.get(l.dataId).id;return I.sizeFromShape(l.shape)===0||t(o,u),l}return{kernelName:e,backendName:"wasm",setupFunc:n,kernelFunc:a}}var nte=$n(Po);function yn(e,t,n){let a;function r(i){a=i.wasm.cwrap(e,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:o,inputs:l}=i,{a:u,b:c}=l,p=o.dataIdMap.get(u.dataId).id,d=o.dataIdMap.get(c.dataId).id,h=n!=null?n:u.dtype,m=E.assertAndGetBroadcastShape(u.shape,c.shape),f=o.makeOutput(m,h);if(I.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(u.shape).buffer),y=new Uint8Array(new Int32Array(c.shape).buffer),b=o.dataIdMap.get(f.dataId).id,x=()=>a(p,g,u.shape.length,d,y,c.shape.length,Hn[u.dtype],b);if(t&&u.dtype==="float32")return x(),f;let v=E.getBroadcastDims(u.shape,m),k=E.getBroadcastDims(c.shape,m),w=v.every((A,F)=>A===F),S=k.every((A,F)=>A===F);if(w&&S)return x(),f;throw new Error(`Broadcasting along outer dims is not yet supported for ${u.dtype} ${e}.`)}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var ate=!0,rte=yn(Hr,ate),cS;function ste(e){cS=e.wasm.cwrap(Es,null,["array","number","number","number"])}function ite(e){let{inputs:t,backend:n}=e,a=n.makeOutput(t[0].shape,t[0].dtype);if(I.sizeFromShape(a.shape)===0)return a;let r=t.map(o=>n.dataIdMap.get(o.dataId).id),s=new Uint8Array(new Int32Array(r).buffer),i=n.dataIdMap.get(a.dataId).id;return cS(s,r.length,Hn[a.dtype],i),a}var ote={kernelName:Es,backendName:"wasm",setupFunc:ste,kernelFunc:ite};function af(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var lte={kernelName:Xs,backendName:"wasm",kernelFunc:af},pS;function ute(e){pS=e.wasm.cwrap(ki,null,["number","array","number","number","number","array","number"])}function rf(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=pte(t.x.shape,a.perm),i=!0;for(let m=0;m=r&&(s===-1||a[s]>a[i])&&(s=i);a[s]=r}return[n,a]}var dte={kernelName:ki,backendName:"wasm",kernelFunc:rf,setupFunc:ute};function Nu(e,t,n){let a=e.shape,r=e.shape.length,s=I.parseAxisParam(t,a),i=s,o=E.getAxesPermutation(i,r),l=null,u=!1;if(o!=null){let c=new Array(r);for(let d=0;d`new shape: ${i}, old shape: ${a.shape}. New shape and old shape must have the same number of elements.`),e.backend.incRef(a.dataId),{dataId:a.dataId,shape:i,dtype:a.dtype}}var xte={kernelName:vl,backendName:"wasm",kernelFunc:Oa},mS;function vte(e){mS=e.wasm.cwrap(Ms,null,["number","array","number","number","array","number","number","number","number"])}function wte(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=r.shape.length,u=s.shape.length,c=i?r.shape[l-2]:r.shape[l-1],p=o?s.shape[u-1]:s.shape[u-2],d=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[u-2]:s.shape[u-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=I.sizeFromShape(m),y=I.sizeFromShape(f),b=g===y||g===1||y===1;I.assert(l>=2&&u>=2&&b,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${m}) and (${f}).`);let x=(g>y?r.shape.slice(0,-2):s.shape.slice(0,-2)).concat([d,h]);I.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let v=i?[g,c,d]:[g,d,c],k=o?[y,h,p]:[y,p,h],w=Oa({inputs:{x:r},backend:n,attrs:{shape:v}}),S=Oa({inputs:{x:s},backend:n,attrs:{shape:k}}),A=n.dataIdMap.get(w.dataId).id,F=n.dataIdMap.get(S.dataId).id,D=i?w.shape[2]:w.shape[1],R=o?S.shape[1]:S.shape[2],L=Math.max(g,y),W=n.makeOutput([L,D,R],w.dtype),U=n.dataIdMap.get(W.dataId).id,G=new Uint8Array(new Int32Array(w.shape).buffer),X=new Uint8Array(new Int32Array(S.shape).buffer);return mS(A,G,w.shape.length,F,X,S.shape.length,i,o,U),n.disposeData(w.dataId),n.disposeData(S.dataId),W.shape=x,W}var kte={kernelName:Ms,backendName:"wasm",setupFunc:vte,kernelFunc:wte};function sf(e){let{inputs:{x:t},attrs:{dtype:n},backend:a}=e,r=a.makeOutput(t.shape,n),s=a.typedArrayFromHeap(t);return a.typedArrayFromHeap(r).set(s),r}var Ite={kernelName:Rs,backendName:"wasm",kernelFunc:sf},Nte=$n(Ps),fS;function Tte(e){fS=e.wasm.cwrap(jr,null,["number","number","number","number"])}function Ste(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o=n.dataIdMap.get(r.dataId).id,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(l.dataId).id;return fS(o,s,i,u),l}var Cte={kernelName:jr,backendName:"wasm",setupFunc:Tte,kernelFunc:Ste};function gS(e){let{inputs:t,backend:n}=e,a=I.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=E.computeOutShape(t.map(h=>h.shape),a),s=t.filter(h=>I.sizeFromShape(h.shape)>0);if(s.length===1)return af({inputs:{x:s[0]},backend:n});let i=n.makeOutput(r,t[0].dtype);if(I.sizeFromShape(r)===0)return i;let o=s.map(h=>h.shape);if(E.assertParamsConsistent(o,a),s[0].dtype==="string"){let h=s.map(x=>{let v=I.sizeFromShape(x.shape.slice(a));return Oa({inputs:{x},backend:n,attrs:{shape:[-1,v]}})}),m=h.map(x=>({vals:n.readSync(x.dataId),shape:x.shape}));r=E.computeOutShape(h.map(x=>x.shape),1);let f=h[0].shape[0]===1,g=_v(m,r,t[0].dtype,f),y=E.computeOutShape(s.map(x=>x.shape),a);i.shape=y;let b=n.dataIdMap.get(i.dataId);return b.stringBytes=E.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),i}let l=I.sizeFromShape(s[0].shape.slice(0,a)),u=0,c=s.map(h=>{let m=I.sizeFromShape(h.shape.slice(a));return u+=m,m}),p=s.map(h=>n.typedArrayFromHeap(h)),d=n.typedArrayFromHeap(i);for(let h=0;h`cumsum does not support ${r.dtype} tensors in the WASM backend`);let u=E.getAxesPermutation([s],l),c=r;u!==null&&(c=rf({inputs:{x:r},attrs:{perm:u},backend:n}));let p=E.getInnerMostAxes(1,l)[0];E.assertAxesAreInnerMostDims("cumsum",[p],l);let d=n.makeOutput(c.shape,c.dtype),h=c.shape[p],m=n.dataIdMap.get(c.dataId).id,f=n.dataIdMap.get(d.dataId).id;vS(m,i?1:0,o?1:0,h,f,Hn[r.dtype]);let g=d;if(u!==null){let y=E.getUndoAxesPermutation(u);g=rf({inputs:{x:d},attrs:{perm:y},backend:n}),n.disposeData(c.dataId),n.disposeData(d.dataId)}return g}var Bte={kernelName:Ws,backendName:"wasm",setupFunc:zte,kernelFunc:Wte},wS;function Vte(e){wS=e.wasm.cwrap(qo,null,["number","number","number","array","number","array","array","number","number"])}function Ute(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{blockSize:s,dataFormat:i}=a;I.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],c=i==="NHWC"?r.shape[3]:r.shape[1],p=l*s,d=u*s,h=c/(s*s),m=i==="NHWC"?[o,p,d,h]:[o,h,p,d],f=t.makeOutput(m,"float32"),g=t.dataIdMap.get(r.dataId).id,y=new Uint8Array(new Int32Array(I.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(I.computeStrides(m)).buffer),v=t.dataIdMap.get(f.dataId).id;return wS(g,s,i==="NHWC"?1:0,y,r.shape.length-1,b,x,m.length,v),f}var Gte={kernelName:qo,backendName:"wasm",setupFunc:Vte,kernelFunc:Ute},kS;function Hte(e){kS=e.wasm.cwrap(Bs,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function jte(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s}=t,i=a.dataIdMap.get(r.dataId).id,o=a.dataIdMap.get(s.dataId).id,{strides:l,dilations:u,pad:c,dimRoundingMode:p}=n,d=u==null?[1,1]:u,h=E.computeConv2DInfo(r.shape,s.shape,l,d,c,p,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,y=h.padInfo.right,b=h.padInfo.bottom,x=h.padInfo.left,v=h.dilationHeight,k=h.dilationWidth,w=h.strideHeight,S=h.strideWidth,A=h.inChannels,F=h.outChannels,D=h.padInfo.type==="SAME"?1:0;if(h.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${h.dataFormat}'. Please use 'channelsLast'.`);let R=a.makeOutput(h.outShape,"float32"),L=a.dataIdMap.get(R.dataId).id;return kS(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,y,b,x,D,v,k,w,S,A,F,L),R}var qte={kernelName:Bs,backendName:"wasm",setupFunc:Hte,kernelFunc:jte},Xte=!1,Kte=yn(Yo,Xte,"bool"),Yte=$n(Us);function lw(e){let{inputs:t,attrs:n,backend:a}=e,{input:r}=t,{dim:s}=n,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(I.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),Oa({inputs:{x:r},backend:a,attrs:{shape:o}})}var Jte={kernelName:Jo,backendName:"wasm",kernelFunc:lw};function Qte(e){let{attrs:{shape:t,value:n,dtype:a},backend:r}=e,s=r.makeOutput(t,a);return r.typedArrayFromHeap(s).fill(n),s}var Zte={kernelName:lc,backendName:"wasm",kernelFunc:Qte},IS;function ene(e){IS=e.wasm.cwrap(Zo,null,["number","number","number","number","number","number"])}function tne(e){let{inputs:t,backend:n}=e,{image:a}=t,r=n.makeOutput(a.shape,a.dtype),s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,[o,l,u,c]=a.shape;return IS(s,o,l,u,c,i),r}var nne={kernelName:Zo,backendName:"wasm",kernelFunc:tne,setupFunc:ene},ane=$n(Gs),rne=!1,sne=yn(Hs,rne),NS;function ine(e){NS=e.wasm.cwrap(js,null,["number","number","number","number","number","number","number"])}function one(e){let{backend:t,inputs:n,attrs:a}=e,{varianceEpsilon:r}=a,{x:s,mean:i,variance:o,offset:l,scale:u}=n,c=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,d=t.dataIdMap.get(o.dataId).id,h=l!=null?t.dataIdMap.get(l.dataId).id:0,m=u!=null?t.dataIdMap.get(u.dataId).id:0,f=t.makeOutput(s.shape,s.dtype);if(I.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return NS(c,p,d,h,m,r,g),f}var lne={kernelName:js,backendName:"wasm",setupFunc:ine,kernelFunc:one},TS;function une(e){TS=e.wasm.cwrap(Ni,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function cne(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:c,dataFormat:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=n,f=E.computeConv2DInfo(r.shape,s.shape,l,c,u,d),g=Ip[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,v=0;if(i!=null){let ee=a.dataIdMap.get(i.dataId);if(ee.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ee.shape.length}.`);if(ee.shape[0]!==x)throw new Error(`FusedConv2D bias shape (${ee.shape}) does not match the number of output channels (${x})`);v=ee.id}let k=f.filterHeight,w=f.filterWidth,S=f.padInfo.top,A=f.padInfo.right,F=f.padInfo.bottom,D=f.padInfo.left,R=f.dilationHeight,L=f.dilationWidth,W=f.strideHeight,U=f.strideWidth,G=f.inChannels,X=f.padInfo.type==="SAME"?1:0,j=f.batchSize,te=f.inHeight,Q=f.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let se=a.makeOutput(f.outShape,"float32"),ne=a.dataIdMap.get(se.dataId).id,ie=o==null?0:a.dataIdMap.get(o.dataId).id;return TS(y,j,te,Q,b,k,w,v,S,A,F,D,X,R,L,W,U,G,x,g,ie,m||0,ne),se}var pne={kernelName:Ni,backendName:"wasm",setupFunc:une,kernelFunc:cne},SS;function dne(e){SS=e.wasm.cwrap(Ti,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function hne(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:c,dataFormat:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=n,f=E.computeConv2DInfo(r.shape,s.shape,l,c,u,d,!0),g=Ip[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,v=0;if(i!=null){let ee=a.dataIdMap.get(i.dataId);if(ee.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ee.shape.length}.`);if(ee.shape[0]!==x)throw new Error(`FusedDepthwiseConv2D bias shape (${ee.shape}) does not match the number of output channels (${x})`);v=ee.id}let k=f.filterHeight,w=f.filterWidth,S=f.padInfo.top,A=f.padInfo.right,F=f.padInfo.bottom,D=f.padInfo.left,R=f.dilationHeight,L=f.dilationWidth,W=f.strideHeight,U=f.strideWidth,G=f.inChannels,X=f.padInfo.type==="SAME"?1:0,j=f.batchSize,te=f.inHeight,Q=f.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let se=a.makeOutput(f.outShape,"float32"),ne=a.dataIdMap.get(se.dataId).id,ie=o==null?0:a.dataIdMap.get(o.dataId).id;return SS(y,j,te,Q,b,k,w,v,S,A,F,D,X,R,L,W,U,G,x,g,ie,m||0,ne),se}var mne={kernelName:Ti,backendName:"wasm",setupFunc:dne,kernelFunc:hne},CS;function fne(e){CS=e.wasm.cwrap(tl,null,["number","number","number","number","number","number","array","number"])}function gne(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=Ay.prepareAndValidate(a,r),u=t.makeOutput(s,a.dtype);if(i===0)return u;let c=r.shape,p=c[c.length-1],d=t.dataIdMap.get(a.dataId).id,h=t.dataIdMap.get(r.dataId).id,m=new Uint8Array(new Int32Array(l).buffer),f=t.dataIdMap.get(u.dataId).id;return CS(d,Hn[a.dtype],h,i,p,o,m,f),u}var yne={kernelName:tl,backendName:"wasm",setupFunc:fne,kernelFunc:gne},AS;function bne(e){AS=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function xne(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,indices:s}=n,{axis:i,batchDims:o}=a,l=I.parseAxisParam(i,r.shape)[0],u=E.segment_util.collectGatherOpShapeInfo(r,s,l,o),c=Oa({inputs:{x:r},attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]},backend:t}),p=I.sizeFromShape(s.shape),d=Oa({inputs:{x:s},attrs:{shape:[u.batchSize,p/u.batchSize]},backend:t}),h=[u.batchSize,u.outerSize,p/u.batchSize,u.sliceSize],m=t.makeOutput(h,r.dtype);if(I.sizeFromShape(r.shape)===0)return m;let f=c.shape.length-1,g=t.dataIdMap.get(c.dataId).id,y=t.dataIdMap.get(d.dataId).id,b=t.dataIdMap.get(m.dataId).id,x=new Uint8Array(new Int32Array(I.computeStrides(c.shape)).buffer),v=new Uint8Array(new Int32Array(I.computeStrides(h)).buffer);return AS(g,Hn[r.dtype],x,f,y,u.batchSize,v,b),t.disposeData(c.dataId),t.disposeData(d.dataId),m.shape=u.outputShape,m}var vne={kernelName:el,backendName:"wasm",setupFunc:bne,kernelFunc:xne},wne=!1,kne=yn(nl,wne,"bool"),Ine=!1,Nne=yn(qs,Ine,"bool"),FS;function Tne(e){FS=e.wasm.cwrap(Ks,null,["number","number","number"])}function Sne(e){let{inputs:{x:t},attrs:{alpha:n},backend:a}=e,r=a.dataIdMap.get(t.dataId).id,s=a.makeOutput(t.shape,t.dtype);if(I.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;FS(r,n,i)}return s}var Cne={kernelName:Ks,backendName:"wasm",setupFunc:Tne,kernelFunc:Sne},Ane=!1,Fne=yn(il,Ane,"bool"),_ne=!1,Ene=yn(ol,_ne,"bool"),$ne=$n(Ys),Dne=!1,Mne=yn(ul,Dne,"bool"),_S;function Rne(e){_S=e.wasm.cwrap(Js,null,["number, number, number"])}function Pne(e){let{backend:t,inputs:n,attrs:a}=e,{reductionIndices:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=i,{transposed:u,axes:c,originalAxes:p,inputWasTransposed:d}=Nu(i,r,t);if(d){let b=t.dataIdMap.get(u.dataId).id;l=u,o=b}let h=l.shape.length;E.assertAxesAreInnerMostDims("max",c,h);let[m,f]=E.computeOutAndReduceShapes(l.shape,c),g=I.sizeFromShape(f),y=t.makeOutput(m,i.dtype);if(I.sizeFromShape(l.shape)!==0){let b=t.dataIdMap.get(y.dataId).id;_S(o,g,b)}if(d&&t.disposeData(u.dataId),s){let b=E.expandShapeToKeepDim(y.shape,p);y.shape=b}return y}var One={kernelName:Js,backendName:"wasm",setupFunc:Rne,kernelFunc:Pne},Lne=!1,zne=yn(Qs,Lne),ES;function Wne(e){ES=e.wasm.cwrap(Zs,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Bne(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=n,c=E.computePool2DInfo(r.shape,i,o,1,l,u),p=c.filterHeight,d=c.filterWidth,h=c.padInfo.top,m=c.padInfo.right,f=c.padInfo.bottom,g=c.padInfo.left,y=c.dilationHeight,b=c.dilationWidth,x=c.strideHeight,v=c.strideWidth,k=c.inChannels,w=c.outChannels;if(c.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let S=a.makeOutput(c.outShape,"float32"),A=a.dataIdMap.get(S.dataId).id;return ES(s,r.shape[0],r.shape[1],r.shape[2],p,d,h,m,f,g,y,b,x,v,k,w,A),S}var Vne={kernelName:Zs,backendName:"wasm",setupFunc:Wne,kernelFunc:Bne},$S;function Une(e){$S=e.wasm.cwrap(ei,null,["number, number, number"])}function Gne(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:c,axes:p,originalAxes:d,inputWasTransposed:h}=Nu(i,r,t),m=p;if(h){let v=t.dataIdMap.get(c.dataId).id;v!==o&&(u=c,l=v,m=E.getInnerMostAxes(m.length,u.shape.length))}E.assertAxesAreInnerMostDims("mean",m,u.shape.length);let[f,g]=E.computeOutAndReduceShapes(u.shape,m),y=I.sizeFromShape(g),b=u;u.dtype!=="float32"&&(b=sf({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(b.dataId).id);let x=t.makeOutput(f,"float32");if(I.sizeFromShape(u.shape)!==0){let v=t.dataIdMap.get(x.dataId).id;$S(l,y,v)}if(h&&t.disposeData(c.dataId),s){let v=E.expandShapeToKeepDim(x.shape,d);x.shape=v}return u.dtype!=="float32"&&t.disposeData(b.dataId),x}var Hne={kernelName:ei,backendName:"wasm",setupFunc:Une,kernelFunc:Gne},DS;function jne(e){DS=e.wasm.cwrap(ti,null,["number, number, number"])}function qne(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:c,axes:p,originalAxes:d,inputWasTransposed:h}=Nu(i,r,t);if(h){let x=t.dataIdMap.get(c.dataId).id;x!==o&&(u=c,l=x)}let m=u.shape.length;E.assertAxesAreInnerMostDims("min",p,m);let[f,g]=E.computeOutAndReduceShapes(u.shape,p),y=I.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(I.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;DS(l,y,x)}if(h&&t.disposeData(c.dataId),s){let x=E.expandShapeToKeepDim(b.shape,d);b.shape=x}return b}var Xne={kernelName:ti,backendName:"wasm",setupFunc:jne,kernelFunc:qne},Kne=!1,Yne=yn(ni,Kne),Jne=!0,Qne=yn(ai,Jne),Zne=$n(pl);function uw(e,t){let n=new Int32Array(e.wasm.HEAPU8.buffer,t,4),a=n[0],r=n[1],s=n[2],i=n[3];return e.wasm._free(t),{pSelectedIndices:a,selectedSize:r,pSelectedScores:s,pValidOutputs:i}}var MS;function eae(e){MS=e.wasm.cwrap(hl,"number",["number","number","number","number","number"])}function tae(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i}=a,{boxes:o,scores:l}=n,u=t.dataIdMap.get(o.dataId).id,c=t.dataIdMap.get(l.dataId).id,p=MS(u,c,s,r,i),{pSelectedIndices:d,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=uw(t,p);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",d)}var nae={kernelName:hl,backendName:"wasm",setupFunc:eae,kernelFunc:tae},RS;function aae(e){RS=e.wasm.cwrap(ml,"number",["number","number","number","number","number","bool"])}function rae(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:o}=a,{boxes:l,scores:u}=n,c=t.dataIdMap.get(l.dataId).id,p=t.dataIdMap.get(u.dataId).id,d=RS(c,p,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=uw(t,d);t.wasm._free(f);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([],"int32",g);return[y,b]}var sae={kernelName:ml,backendName:"wasm",setupFunc:aae,kernelFunc:rae},PS;function iae(e){PS=e.wasm.cwrap(fl,"number",["number","number","number","number","number","number"])}function oae(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,softNmsSigma:o}=a,{boxes:l,scores:u}=n,c=t.dataIdMap.get(l.dataId).id,p=t.dataIdMap.get(u.dataId).id,d=PS(c,p,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=uw(t,d);t.wasm._free(g);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([m],"float32",f);return[y,b]}var lae={kernelName:fl,backendName:"wasm",setupFunc:iae,kernelFunc:oae},uae=!1,cae=yn(dl,uae,"bool"),OS;function pae(e){OS=e.wasm.cwrap(ri,null,["number","number","number","number","number"])}function dae(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{depth:s,onValue:i,offValue:o}=a,l=n.makeOutput([...r.shape,s],"int32"),u=n.dataIdMap.get(l.dataId).id,c=n.dataIdMap.get(r.dataId).id;return OS(c,s,i,o,u),l}var hae={kernelName:ri,backendName:"wasm",setupFunc:pae,kernelFunc:dae};function mae(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var fae={kernelName:gl,backendName:"wasm",kernelFunc:mae};function gae(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return lw({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{I.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),I.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(c=>{let p=lw({inputs:{input:c},backend:n,attrs:{dim:r}});return o.push(p),p}),u=gS({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(c=>n.disposeData(c.dataId)),u}var yae={kernelName:yl,backendName:"wasm",kernelFunc:gae},LS;function bae(e){LS=e.wasm.cwrap(si,null,["number","array","number","number","array","array","number","number"])}function xae(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,constantValue:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]),i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(t.shape).buffer),c=a.map(m=>m[0]),p=a.map(m=>m[1]),d=new Uint8Array(new Int32Array(c).buffer),h=new Uint8Array(new Int32Array(p).buffer);return LS(i,u,t.shape.length,Hn[t.dtype],d,h,r,l),o}var vae={kernelName:si,backendName:"wasm",kernelFunc:xae,setupFunc:bae},wae=!1,kae=yn(ii,wae),zS;function Iae(e){zS=e.wasm.cwrap(oi,null,["number","number","number"])}function Nae(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,o=n.makeOutput(a.shape,"float32"),l=n.dataIdMap.get(o.dataId).id;return zS(s,i,l),o}var Tae={kernelName:oi,backendName:"wasm",setupFunc:Iae,kernelFunc:Nae},WS;function Sae(e){WS=e.wasm.cwrap(bl,null,["number","number","number","number"])}function Cae(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:c,axes:p,originalAxes:d,inputWasTransposed:h}=Nu(i,r,t),m=p;if(h){let x=t.dataIdMap.get(c.dataId).id;x!==o&&(u=c,l=x,m=E.getInnerMostAxes(m.length,u.shape.length))}E.assertAxesAreInnerMostDims("prod",m,u.shape.length);let[f,g]=E.computeOutAndReduceShapes(u.shape,m),y=I.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(I.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;WS(l,y,Hn[b.dtype],x)}if(h&&t.disposeData(c.dataId),s){let x=E.expandShapeToKeepDim(b.shape,d);b.shape=x}return b}var Aae={kernelName:bl,backendName:"wasm",setupFunc:Sae,kernelFunc:Cae},Fae=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=Dv(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},_ae={kernelName:mc,backendName:"wasm",kernelFunc:Fae},Eae=!0,$ae=yn(Vs,Eae),Dae=$n(li),Mae=$n(ci),BS;function Rae(e){BS=e.wasm.cwrap(ui,null,["number","number","number","number","number","number","number","number","number","number"])}function Pae(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[c,p,d,h]=r.shape,m=[c,l,u,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=sf({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let y=f.id,b=t.makeOutput(m,"float32");if(I.sizeFromShape(r.shape)===0)return b;let x=t.dataIdMap.get(b.dataId).id;return BS(y,c,p,d,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),b}var Oae={kernelName:ui,backendName:"wasm",setupFunc:Rae,kernelFunc:Pae},VS;function Lae(e){VS=e.wasm.cwrap(pi,null,["number","array","number","array","number","number"])}function zae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=I.parseAxisParam(s,r.shape);if(r.shape.length===0)return af({inputs:{x:r},backend:n});let o=n.makeOutput(r.shape,r.dtype),l=n.dataIdMap.get(r.dataId).id,u=n.dataIdMap.get(o.dataId).id,c=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(r.shape).buffer);VS(l,c,i.length,p,r.shape.length,u);let d=Oa({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),d}var Wae={kernelName:pi,backendName:"wasm",kernelFunc:zae,setupFunc:Lae},US;function Bae(e){US=e.wasm.cwrap(Ml,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Vae(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{radians:s,fillValue:i,center:o}=a,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(l.dataId).id,[p,d,h,m]=r.shape,[f,g]=E.getImageCenter(o,d,h),y=i===0,b=255,x=typeof i=="number"?[i,i,i,y?0:b]:[...i,b],v=new Uint8Array(new Int32Array(x).buffer);return US(u,p,d,h,m,s,f,g,v,x.length,c),l}var Uae={kernelName:Ml,backendName:"wasm",kernelFunc:Vae,setupFunc:Bae},Gae=$n(di),Hae=$n(hi),GS;function jae(e){GS=e.wasm.cwrap(wl,null,["number","number","number","number","number","number","array","number","number"])}function qae(e){let{backend:t,inputs:n,attrs:a}=e,{indices:r,updates:s}=n,{shape:i}=a,o=t.makeOutput(i,s.dtype);if(I.sizeFromShape(i)===0)return o;let{sliceRank:l,numUpdates:u,sliceSize:c,strides:p,outputSize:d}=Fy.calculateShapes(s,r,i),h=t.dataIdMap.get(r.dataId).id,m=t.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(p).buffer),g=t.dataIdMap.get(o.dataId).id;return GS(h,m,Hn[s.dtype],l,u,c,f,d,g),o}var Xae={kernelName:wl,backendName:"wasm",setupFunc:jae,kernelFunc:qae},HS;function Kae(e){HS=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function Yae(e){let{inputs:t,backend:n}=e,{condition:a,t:r,e:s}=t,i=n.dataIdMap.get(a.dataId).id,o=n.dataIdMap.get(r.dataId).id,l=n.dataIdMap.get(s.dataId).id,u=n.makeOutput(r.shape,r.dtype),c=n.dataIdMap.get(u.dataId).id,p=a.shape.length,d=r.shape.length,h=p===0||p>1||d===1?1:I.sizeFromShape(r.shape.slice(1));return HS(i,o,l,h,c),u}var Jae={kernelName:kl,backendName:"wasm",kernelFunc:Yae,setupFunc:Kae},jS;function Qae(e){jS=e.wasm.cwrap(fi,null,["number","number"])}function Zae(e){let{backend:t,inputs:{x:n}}=e,a=t.dataIdMap.get(n.dataId).id,r=t.makeOutput(n.shape,n.dtype),s=t.dataIdMap.get(r.dataId).id;return I.sizeFromShape(r.shape)===0||jS(a,s),r}var ere={kernelName:"Sigmoid",backendName:"wasm",setupFunc:Qae,kernelFunc:Zae},tre=$n(mi);function of(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=dn.parseSliceParams(t,n,a),o=dn.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),u=r.makeOutput(i,t.dtype),c=I.computeStrides(t.shape),p=r.dataIdMap.get(u.dataId);if(o){let m=dn.computeFlatOffset(s,c);return t.dtype==="string"?p.stringBytes=l.slice(m,m+I.sizeFromShape(i)):r.typedArrayFromHeap(u).set(l.subarray(m,m+I.sizeFromShape(i))),u}if(t.dtype==="string"){let m=zm(l,s,i,t.shape,t.dtype);return p.stringBytes=m,u}let d=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)nre(l,c[0],d,s,i);else if(h===3)are(l,c[0],c[1],d,s,i);else if(h===4)rre(l,c[0],c[1],c[2],d,s,i);else{let m=zm(l,s,i,t.shape,t.dtype);d.set(m)}return u}function nre(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;u{let d=[...c];d[o]=p;let h=of({inputs:{x:r},attrs:{begin:u,size:d},backend:a});return u[o]+=p,h})}var cre={kernelName:Al,backendName:"wasm",kernelFunc:ure},pre=$n(gi),dre=$n(yc),hre=!0,mre=yn(xi,hre),XS;function fre(e){XS=e.wasm.cwrap(Xr,null,["number","number","number"])}function gre(e){let{backend:t,inputs:n,attrs:a}=e,{alpha:r}=a,{x:s}=n,i=t.dataIdMap.get(s.dataId).id,o=t.makeOutput(s.shape,s.dtype),l=t.dataIdMap.get(o.dataId).id;return XS(i,r,l),o}var yre={kernelName:Xr,backendName:"wasm",setupFunc:fre,kernelFunc:gre},KS;function bre(e){KS=e.wasm.cwrap(Fl,null,["number","array","number","array","array","array","array","array","number","number"])}function xre(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{begin:s,end:i,strides:o}=a;o==null&&(o=new Array(s.length));let{beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:d}=a,h=E.slice_util.maskToAxes(c);if(h.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(c!==0&&p!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(c!==0&&d!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let m=r.shape.length-s.length,f=E.slice_util.maskToAxes(p),g=r.shape.slice();f.forEach(D=>{s[D]=0,i[D]=1,g.splice(D,0,1)});let y=Oa({inputs:{x:r},attrs:{shape:g},backend:t}),{begin:b,end:x,strides:v}=E.slice_util.getNormalizedAxes(y.shape,h,m,s,i,o,l,u,c);s=b,i=x,o=v;let k=E.slice_util.maskToAxes(d);k.forEach(D=>{i[D]=s[D]+1,o[D]=1});let w=E.slice_util.computeOutShape(s,i,o),S=w.filter((D,R)=>k.indexOf(R)===-1);if(o.every(D=>D===1)){let D=of({inputs:{x:y},attrs:{begin:s,size:w},backend:t});t.disposeData(y.dataId);let R=Oa({inputs:{x:D},attrs:{shape:S},backend:t});return t.disposeData(D.dataId),R}let A=t.makeOutput(S,"float32");if(!S.some(D=>D===0)){let D=t.dataIdMap.get(y.dataId).id,R=new Uint8Array(new Int32Array(I.computeStrides(y.shape)).buffer),L=new Uint8Array(new Int32Array(s).buffer),W=new Uint8Array(new Int32Array(i).buffer),U=new Uint8Array(new Int32Array(o).buffer),G=new Uint8Array(new Int32Array(S).buffer),X=new Uint8Array(new Int32Array(I.computeStrides(S)).buffer),j=t.dataIdMap.get(A.dataId).id;KS(D,R,y.shape.length,L,W,U,G,X,S.length,j)}t.disposeData(y.dataId);let F=Oa({inputs:{x:A},attrs:{shape:S},backend:t});return t.disposeData(A.dataId),F}var vre={kernelName:Fl,backendName:"wasm",setupFunc:bre,kernelFunc:xre},wre=!0,kre=yn(vi,wre),YS;function Ire(e){YS=e.wasm.cwrap(yi,null,["number, number, number"])}function Nre(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:c,axes:p,originalAxes:d,inputWasTransposed:h}=Nu(i,r,t),m=p;if(h){let x=t.dataIdMap.get(c.dataId).id;x!==o&&(u=c,l=x,m=E.getInnerMostAxes(m.length,u.shape.length))}E.assertAxesAreInnerMostDims("sum",m,u.shape.length);let[f,g]=E.computeOutAndReduceShapes(u.shape,m),y=I.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(I.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;YS(l,y,x)}if(h&&t.disposeData(c.dataId),s){let x=E.expandShapeToKeepDim(b.shape,d);b.shape=x}return b}var Tre={kernelName:yi,backendName:"wasm",setupFunc:Ire,kernelFunc:Nre},Sre=$n(wi),JS;function Cre(e){JS=e.wasm.cwrap(qr,null,["number","array","number","array","number","number"])}function Are(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,s=n.dataIdMap.get(r.dataId).id,{reps:i}=a,o=new Array(r.shape.length);for(let d=0;d{let{x:a}=e,{k:r,sorted:s}=n,i=t.dataIdMap.get(a.dataId).id,o=new Uint8Array(new Int32Array(a.shape).buffer),l=a.shape.slice();l[l.length-1]=r;let u=t.makeOutput(l,a.dtype),c=t.dataIdMap.get(u.dataId).id,p=t.makeOutput(l,"int32"),d=t.dataIdMap.get(p.dataId).id;return QS(i,o,a.shape.length,Hn[a.dtype],r,s,c,d),[u,p]},$re={kernelName:El,backendName:"wasm",setupFunc:_re,kernelFunc:Ere};function Dre(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape[s],o=r.shape.length,l=new Array(o-1),u=0;for(let h=0;h({dataId:h,dtype:m,shape:l}))}var Mre={kernelName:$l,backendName:"wasm",kernelFunc:Dre};function Rre(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var Pre={kernelName:Dl,backendName:"wasm",kernelFunc:Rre},Ore=[nte,rte,ote,fte,bte,kte,Ite,Nte,Cte,Ate,Ete,Mte,Rte,Lte,Bte,Gte,qte,Kte,Yte,Jte,Zte,nne,ane,sne,tte,lne,pne,mne,yne,vne,kne,Nne,lte,Cne,Fne,Ene,$ne,Mne,One,zne,Vne,Hne,Xne,Yne,Qne,Zne,nae,sae,lae,cae,hae,fae,yae,vae,kae,Tae,Aae,_ae,$ae,Dae,Mae,xte,Oae,Wae,Uae,Hae,Gae,Xae,Jae,ere,tre,sre,lre,cre,pre,dre,mre,yre,vre,kre,Tre,Sre,Fre,$re,dte,Mre,Pre];for(let e of Ore)vc(e);var cw=Z();cw.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11])));cw.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(cw.get("IS_NODE"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(e){return!1}});var ZS=Do(XF()),Lre='var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);Module["wasmModule"]=null;receiveInstance(instance);return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance;moduleLoaded()})}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["_emscripten_tls_init"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].setThreadStatus(Module["_pthread_self"](),1);try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(!Module["getNoExitRuntime"]())Module["PThread"].threadExit(result)}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["getNoExitRuntime"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}}',zre=Do(KF()),eC=class extends Zu{constructor(e){super();this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new kd(this,Ha())}write(e,t,n){let a={id:this.dataIdNextNumber++};return this.move(a,e,t,n,1),a}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=I.now();return e(),{kernelMs:I.now()-t}}move(e,t,n,a,r){let s=this.dataIdNextNumber++;if(a==="string"){let u=t;this.dataIdMap.set(e,{id:s,stringBytes:u,shape:n,dtype:a,memoryOffset:null,refCount:r});return}let i=I.sizeFromShape(n),o=i*I.bytesPerElement(a),l=this.wasm._malloc(o);this.dataIdMap.set(e,{id:s,memoryOffset:l,shape:n,dtype:a,refCount:r}),this.wasm.tfjs.registerTensor(s,i,l),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,o),l)}async read(e){return this.readSync(e)}readSync(e){let{memoryOffset:t,dtype:n,shape:a,stringBytes:r}=this.dataIdMap.get(e);if(n==="string")return r;let s=this.wasm.HEAPU8.slice(t,t+I.sizeFromShape(a)*I.bytesPerElement(n));return Wre(s.buffer,n)}disposeData(e,t=!1){if(this.dataIdMap.has(e)){let n=this.dataIdMap.get(e);if(n.refCount--,!t&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(e)}return!0}refCount(e){return this.dataIdMap.has(e)?this.dataIdMap.get(e).refCount:0}incRef(e){let t=this.dataIdMap.get(e);t!=null&&t.refCount++}floatPrecision(){return 32}getMemoryOffset(e){return this.dataIdMap.get(e).memoryOffset}dispose(){this.wasm.tfjs.dispose(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n){let a;if(n==null)a=this.write(null,e,t);else{let r=this.dataIdNextNumber++;a={id:r},this.dataIdMap.set(a,{id:r,memoryOffset:n,shape:e,dtype:t,refCount:1});let s=I.sizeFromShape(e);this.wasm.tfjs.registerTensor(r,s,n)}return{dataId:a,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:n}){let a=this.wasm.HEAPU8.buffer,{memoryOffset:r}=this.dataIdMap.get(n),s=I.sizeFromShape(e);switch(t){case"float32":return new Float32Array(a,r,s);case"int32":return new Int32Array(a,r,s);case"bool":return new Uint8Array(a,r,s);default:throw new Error(`Unknown dtype ${t}`)}}};function Bre(e){return(t,n)=>(I.fetch(e,{credentials:"same-origin"}).then(a=>{a.ok||t.env.a(`failed to load wasm binary file at '${e}'`),a.arrayBuffer().then(r=>{WebAssembly.instantiate(r,t).then(s=>{n(s.instance)})})}),{})}function tC(e,t,n){if(lf!=null)return lf;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),Np!=null&&Np[a]!=null?Np[a]:n+a}async function Vre(){let[e,t]=await Promise.all([Z().getAsync("WASM_HAS_SIMD_SUPPORT"),Z().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let u=Lre,c=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(c)}return o.endsWith(".wasm")?tC(e,t,Tp!=null?Tp:l):l+o},pw&&(r.instantiateWasm=Bre(tC(e,t,Tp!=null?Tp:"")));let s=!1;r.onAbort=()=>{s||Sp||(Sp=!0,a({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"}))};let i;t&&e&&lf==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+ZS.default.toString()],{type:"text/javascript"}),i=(0,ZS.default)(r)):i=(0,zre.default)(r),i.then(o=>{s=!0,Sp=!1;let l=null;o.tfjs={init:o.cwrap("init",null,[]),registerTensor:o.cwrap("register_tensor",null,["number","number","number"]),disposeData:o.cwrap("dispose_data",l,["number"]),dispose:o.cwrap("dispose",l,[])},n({wasm:o})})})}function Wre(e,t){switch(t){case"float32":return new Float32Array(e);case"int32":return new Int32Array(e);case"bool":return new Uint8Array(e);default:throw new Error(`Unknown dtype ${t}`)}}var Ure=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],lf=null,Tp=null,Np={},Sp=!1,pw=!1;function Gre(e,t=!1){if(Ry("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),Sp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");lf=e,pw=t}function Hre(e,t=!1){if(Sp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof e=="string")Tp=e;else{Np=e;let n=Ure.filter(a=>Np[a]==null);if(n.length>0)throw new Error(`There were no entries found for the following binaries: ${n.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}pw=t}var jre="3.3.0",qre=2;fh("wasm",async()=>{let{wasm:e}=await Vre();return new eC(e)},qre);var Cw={};Ju(Cw,{AnchorPosition:()=>lr,DrawBox:()=>gf,DrawBoxOptions:()=>Nw,DrawFaceLandmarks:()=>Sw,DrawFaceLandmarksOptions:()=>Tw,DrawTextField:()=>vs,DrawTextFieldOptions:()=>Cp,drawContour:()=>Ar,drawDetections:()=>nse,drawFaceExpressions:()=>ase,drawFaceLandmarks:()=>sse});function Ar(e,t,n=!1){if(e.beginPath(),t.slice(1).forEach(({x:a,y:r},s)=>{let i=t[s];e.moveTo(i.x,i.y),e.lineTo(a,r)}),n){let a=t[t.length-1],r=t[0];if(!a||!r)return;e.moveTo(a.x,a.y),e.lineTo(r.x,r.y)}e.stroke()}var dw={};Ju(dw,{computeReshapedDimensions:()=>fw,getCenterPoint:()=>no,isDimensions:()=>cf,isEven:()=>uf,isFloat:()=>mw,isTensor:()=>eo,isTensor1D:()=>Xre,isTensor2D:()=>hw,isTensor3D:()=>Fr,isTensor4D:()=>ra,isValidNumber:()=>La,isValidProbablitiy:()=>Tu,range:()=>ir,round:()=>to});var cn=class{constructor(t,n){if(!La(t)||!La(n))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:n})}`);this._width=t,this._height=n}get width(){return this._width}get height(){return this._height}reverse(){return new cn(1/this.width,1/this.height)}};function eo(e,t){return e instanceof Fe&&e.shape.length===t}function Xre(e){return eo(e,1)}function hw(e){return eo(e,2)}function Fr(e){return eo(e,3)}function ra(e){return eo(e,4)}function mw(e){return e%1!=0}function uf(e){return e%2==0}function to(e,t=2){let n=10**t;return Math.floor(e*n)/n}function cf(e){return e&&e.width&&e.height}function fw({width:e,height:t},n){let a=n/Math.max(t,e);return new cn(Math.round(e*a),Math.round(t*a))}function no(e){return e.reduce((t,n)=>t.add(n),new De(0,0)).div(new De(e.length,e.length))}function ir(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function La(e){return!!e&&e!==Infinity&&e!==-Infinity&&!Number.isNaN(e)||e===0}function Tu(e){return La(e)&&e>=0&&e<=1}var De=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new De(this.x+t.x,this.y+t.y)}sub(t){return new De(this.x-t.x,this.y-t.y)}mul(t){return new De(this.x*t.x,this.y*t.y)}div(t){return new De(this.x/t.x,this.y/t.y)}abs(){return new De(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new De(Math.floor(this.x),Math.floor(this.y))}};var ot=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(La)}static assertIsValidBox(t,n,a=!1){if(!ot.isRect(t))throw new Error(`${n} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!a&&(t.width<0||t.height<0))throw new Error(`${n} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,n=!0){let a=t||{},r=[a.left,a.top,a.right,a.bottom].every(La),s=[a.x,a.y,a.width,a.height].every(La);if(!s&&!r)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(a)}`);let[i,o,l,u]=s?[a.x,a.y,a.width,a.height]:[a.left,a.top,a.right-a.left,a.bottom-a.top];ot.assertIsValidBox({x:i,y:o,width:l,height:u},"Box.constructor",n),this._x=i,this._y=o,this._width=l,this._height=u}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new De(this.left,this.top)}get topRight(){return new De(this.right,this.top)}get bottomLeft(){return new De(this.left,this.bottom)}get bottomRight(){return new De(this.right,this.bottom)}round(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new ot({x:t,y:n,width:a,height:r})}floor(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new ot({x:t,y:n,width:a,height:r})}toSquare(){let{x:t,y:n,width:a,height:r}=this,s=Math.abs(a-r);return an&&(o=-p+n+a,p=n),d>t&&(l=-d+t+r,d=t),u<1&&(l=2-u,u=1),c<1&&(l=2-c,c=1),{dy:i,edy:l,dx:s,edx:o,y:c,ey:d,x:u,ex:p,w:a,h:r}}calibrate(t){return new ot({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var ao=class extends ot{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var _r=class{constructor(t,n,a,r,s){this._imageDims=new cn(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new ot(r).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new ot(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new _r(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var ft=class extends _r{constructor(t,n,a){super(t,t,"",n,a)}forSize(t,n){let{score:a,relativeBox:r,imageDims:s}=super.forSize(t,n);return new ft(a,r,s)}};function pf(e,t,n=!0){let a=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),r=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),s=a*r;return n?s/(e.area+t.area-s):s/Math.min(e.area,t.area)}function df(e){let t=e.map(o=>o.x),n=e.map(o=>o.y),a=t.reduce((o,l)=>lloo({score:i,boxIndex:o})).sort((i,o)=>i.score-o.score).map(i=>i.boxIndex),s=[];for(;r.length>0;){let i=r.pop();s.push(i);let o=r,l=[];for(let u=0;ul[c]<=n)}return s}function wa(e,t){return M(()=>{let[n,a,r]=t,s=Cn([...e.shape.slice(0,3),1],n,"float32"),i=Cn([...e.shape.slice(0,3),1],a,"float32"),o=Cn([...e.shape.slice(0,3),1],r,"float32"),l=Je([s,i,o],3);return me(e,l)})}function mf(e,t=!1){return M(()=>{let[n,a]=e.shape.slice(1);if(n===a)return e;let r=Math.abs(n-a),s=Math.round(r*(t?.5:1)),i=n>a?2:1,o=d=>{let h=e.shape.slice();return h[i]=d,Cn(h,0,"float32")},l=o(s),u=r-l.shape[i],p=[t&&u?o(u):null,e,l].filter(d=>!!d).map(d=>ue(d,"float32"));return Je(p,i)})}function nC(e){let t=e.slice();for(let n=t.length-1;n>0;n--){let a=Math.floor(Math.random()*(n+1)),r=t[n];t[n]=t[a],t[a]=r}return t}function Su(e){return 1/(1+Math.exp(-e))}function aC(e){return Math.log(e/(1-e))}var ro=class extends ot{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var Kre=.5,Yre=.43,Jre=.45,jn=class{constructor(t,n,a=new De(0,0)){let{width:r,height:s}=n;this._imgDims=new cn(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new De(r,s)).add(a))}get shift(){return new De(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new De(this.imageWidth,this.imageHeight)))}forSize(t,n){return new this.constructor(this.relativePositions,{width:t,height:n})}shiftBy(t,n){return new this.constructor(this.relativePositions,this._imgDims,new De(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof ft?t.box.floor():new ot(t);return this.shiftBy(s.x,s.y).align(null,n)}let{useDlibAlignment:a,minBoxPadding:r}={useDlibAlignment:!1,minBoxPadding:.2,...n};return a?this.alignDlib():this.alignMinBbox(r)}alignDlib(){let t=this.getRefPointsForAlignment(),[n,a,r]=t,s=p=>r.sub(p).magnitude(),i=(s(n)+s(a))/2,o=Math.floor(i/Jre),l=no(t),u=Math.floor(Math.max(0,l.x-Kre*o)),c=Math.floor(Math.max(0,l.y-Yre*o));return new ro(u,c,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+c))}alignMinBbox(t){let n=df(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var gw=class extends jn{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],no([t[3],t[4]])]}};var so=class extends jn{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(no)}};var Cu=class{constructor(t,n){this._label=t,this._distance=n}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${to(this.distance)})`:""}`}};var Au=class extends ot{static assertIsValidLabeledBox(t,n){if(ot.assertIsValidBox(t,n),!La(t.label))throw new Error(`${n} - expected property label (${t.label}) to be a number`)}constructor(t,n){super(t);this._label=n}get label(){return this._label}};var or=class{constructor(t,n){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(n)||n.some(a=>!(a instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=n}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let n=t.descriptors.map(a=>new Float32Array(a));return new or(t.label,n)}};var yw=class extends Au{static assertIsValidPredictedBox(t,n){if(Au.assertIsValidLabeledBox(t,n),!Tu(t.score)||!Tu(t.classScore))throw new Error(`${n} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,n,a,r){super(t,n);this._score=a,this._classScore=r}get score(){return this._score}get classScore(){return this._classScore}};function za(e){return e.detection instanceof ft}function bs(e,t){return{...e,...{detection:t}}}function bw(){let e=window.fetch;if(!e)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:e,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function ff(e){let t="";if(!e)try{e=require("fs")}catch(a){t=a.toString()}return{readFile:e?a=>new Promise((r,s)=>{e.readFile(a,(i,o)=>i?s(i):r(o))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function xw(){let e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=()=>{if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},a=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},r=global.fetch,s=ff();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:n,createImageElement:a,fetch:r,...s}}function vw(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var ww=hF(sC()),Zt;function ese(){if(!Zt)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return Zt}function kw(e){Zt=e}function Iw(){return vw()?kw(bw()):(0,ww.isNodejs)()?kw(xw()):null}function tse(e){if(Zt||Iw(),!Zt)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=Zt.Canvas,Image:n=Zt.Image}=e;Zt.Canvas=t,Zt.Image=n,Zt.createCanvasElement=e.createCanvasElement||(()=>new t),Zt.createImageElement=e.createImageElement||(()=>new n),Zt.ImageData=e.ImageData||Zt.ImageData,Zt.Video=e.Video||Zt.Video,Zt.fetch=e.fetch||Zt.fetch,Zt.readFile=e.readFile||Zt.readFile}var nt={getEnv:ese,setEnv:kw,initialize:Iw,createBrowserEnv:bw,createFileSystem:ff,createNodejsEnv:xw,monkeyPatch:tse,isBrowser:vw,isNodejs:ww.isNodejs};Iw();function xs(e){return!nt.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function bn(e){let{Canvas:t,CanvasRenderingContext2D:n}=nt.getEnv();if(e instanceof n)return e;let a=xs(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d");if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var lr;(function(e){e.TOP_LEFT="TOP_LEFT",e.TOP_RIGHT="TOP_RIGHT",e.BOTTOM_LEFT="BOTTOM_LEFT",e.BOTTOM_RIGHT="BOTTOM_RIGHT"})(lr||(lr={}));var Cp=class{constructor(t={}){let{anchorPosition:n,backgroundColor:a,fontColor:r,fontSize:s,fontStyle:i,padding:o}=t;this.anchorPosition=n||lr.TOP_LEFT,this.backgroundColor=a||"rgba(0, 0, 0, 0.5)",this.fontColor=r||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=i||"Georgia",this.padding=o||4}},vs=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof vs?t.text:t,this.anchor=n,this.options=new Cp(a)}measureWidth(t){let{padding:n}=this.options;return this.text.map(a=>t.measureText(a).width).reduce((a,r)=>a{let m=l+p.x,f=l+p.y+(h+1)*i;a.fillText(d,m,f)})}};var Nw=class{constructor(t={}){let{boxColor:n,lineWidth:a,label:r,drawLabelOptions:s}=t;this.boxColor=n||"rgba(0, 0, 255, 1)",this.lineWidth=a||2,this.label=r;let i={anchorPosition:lr.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Cp({...i,...s})}},gf=class{constructor(t,n={}){this.box=new ot(t),this.options=new Nw(n)}draw(t){let n=bn(t),{boxColor:a,lineWidth:r}=this.options,{x:s,y:i,width:o,height:l}=this.box;n.strokeStyle=a,n.lineWidth=r,n.strokeRect(s,i,o,l);let{label:u}=this.options;u&&new vs([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function nse(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof ft?a.score:za(a)?a.detection.score:void 0,s=a instanceof ft?a.box:za(a)?a.detection.box:new ot(a),i=r?`${to(r)}`:void 0;new gf(s,{label:i}).draw(e)})}function Fu(e){let{Image:t,Video:n}=nt.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function yf(e){return new Promise((t,n)=>{if(e instanceof nt.getEnv().Canvas||Fu(e))return t(null);function a(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),n(s))}function r(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),t(s))}e.addEventListener("load",r),e.addEventListener("error",a)})}function bf(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToImage - expected buf to be of type: Blob"));let a=new FileReader;a.onload=()=>{typeof a.result!="string"&&n(new Error("bufferToImage - expected reader.result to be a string, in onload"));let r=nt.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function ws(e){let{Image:t,Video:n}=nt.getEnv();return e instanceof t?new cn(e.naturalWidth,e.naturalHeight):e instanceof n?new cn(e.videoWidth,e.videoHeight):new cn(e.width,e.height)}function ks({width:e,height:t}){let{createCanvasElement:n}=nt.getEnv(),a=n();return a.width=e,a.height=t,a}function _u(e,t){let{ImageData:n}=nt.getEnv();if(!(e instanceof n)&&!Fu(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||ws(e),s=ks({width:a,height:r});return e instanceof n?bn(s).putImageData(e,0,0):bn(s).drawImage(e,0,0,a,r),s}async function xf(e,t){let n=t||nt.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(ra(e)?1:0),i=M(()=>e.as3D(a,r,s).toInt());return await Fi.toPixels(i,n),i.dispose(),n}function Ap(e){let{Image:t,Canvas:n,Video:a}=nt.getEnv();return e instanceof t||e instanceof n||e instanceof a}function vf(e,t,n=!1){let{Image:a,Canvas:r}=nt.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return ks({width:1,height:1});let s=ws(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=ks({width:t,height:t}),c=e instanceof r?e:_u(e),p=Math.abs(o-l)/2,d=n&&o0&&c.height>0&&bn(u).drawImage(c,d,h,o,l),u}var ur=class{constructor(t,n=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=n,this._batchSize=t.length,t.forEach((a,r)=>{if(Fr(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(ra(a)){let i=a.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[r]=a,this._inputDimensions[r]=a.shape.slice(1);return}let s=a instanceof nt.getEnv().Canvas?a:_u(a);this._canvases[r]=s,this._inputDimensions[r]=[s.height,s.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return ir(this.batchSize,0,1).map((t,n)=>this.getReshapedInputDimensions(n))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let n=this.getInputWidth(t),a=this.getInputHeight(t);return fw({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,M(()=>{let a=ir(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Fe){let o=ra(i)?i:i.expandDims();return o=mf(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=Ja.resizeBilinear(o,[t,t])),o.as3D(t,t,3)}if(i instanceof nt.getEnv().Canvas)return Fi.fromPixels(vf(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return Dt(a.map(s=>ue(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function mt(e){if(e instanceof ur)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");let n=r=>Array.isArray(e)?` at input index ${r}:`:"",a=t.map(xs);return a.forEach((r,s)=>{if(!Ap(r)&&!Fr(r)&&!ra(r))throw typeof t[s]=="string"?new Error(`toNetInput -${n(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${n(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(ra(r)){let i=r.shape[0];if(i!==1)throw new Error(`toNetInput -${n(s)} tf.Tensor4D with batchSize ${i} passed, but not supported in input array`)}}),await Promise.all(a.map(r=>Ap(r)&&yf(r))),new ur(a,Array.isArray(e))}async function io(e,t){let{Canvas:n}=nt.getEnv(),a=e;if(!(e instanceof n)){let i=await mt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await xf(o)}let r=bn(a);return t.map(i=>i instanceof ft?i.forSize(a.width,a.height).box.floor():i).map(i=>i.clipAtImageBorders(a.width,a.height)).map(({x:i,y:o,width:l,height:u})=>{let c=ks({width:l,height:u});return l>0&&u>0&&bn(c).putImageData(r.getImageData(i,o,l,u),0,0),c})}async function oo(e,t){if(!Fr(e)&&!ra(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(ra(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return M(()=>{let[n,a,r]=e.shape.slice(ra(e)?1:0);return t.map(o=>o instanceof ft?o.forSize(a,n).box:o).map(o=>o.clipAtImageBorders(a,n)).map(({x:o,y:l,width:u,height:c})=>Yl(e.as3D(n,a,r),[l,o,0],[c,u,r]))})}async function Is(e,t){let{fetch:n}=nt.getEnv(),a=await n(e,t);if(!(a.status<400))throw new Error(`failed to fetch: (${a.status}) ${a.statusText}, from url: ${a.url}`);return a}async function iC(e){let t=await Is(e),n=await t.blob();if(!n.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${n.type}, for url: ${t.url}`);return bf(n)}async function wf(e){return(await Is(e)).json()}async function oC(e){return new Float32Array(await(await Is(e)).arrayBuffer())}function kf(e,t){let n=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:n};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${n}`};let a=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(a,"");let r=e.split("/").filter(o=>o),s=e.endsWith(".json")?r[r.length-1]:n,i=a+(e.endsWith(".json")?r.slice(0,r.length-1):r).join("/");return i=e.startsWith("/")?`/${i}`:i,{modelBaseUri:i,manifestUri:i==="/"?`/${s}`:`${i}/${s}`}}async function If(e,t){let{manifestUri:n,modelBaseUri:a}=kf(e,t),r=await wf(n);return jt.loadWeights(r,a)}function lC(e,t,n=!1){let{width:a,height:r}=n?ws(t):t;return e.width=a,e.height=r,{width:a,height:r}}var en=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:n,objProp:a}=this.traversePropertyPath(t);return n[a]}reassignParamFromPath(t,n){let{obj:a,objProp:r}=this.traversePropertyPath(t);a[r].dispose(),a[r]=n}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof Kr)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof Kr))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=Jn(n.dataSync());n.dispose(),this.reassignParamFromPath(t,a)})}dispose(t=!0){this.getParamList().forEach(n=>{if(t&&n.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${n.path}`);n.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,n)=>t.concat(n)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let n=await If(t,this.getDefaultModelName());this.loadFromWeightMap(n)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:n}=nt.getEnv(),{manifestUri:a,modelBaseUri:r}=kf(t,this.getDefaultModelName()),s=u=>Promise.all(u.map(c=>n(c).then(p=>p.buffer))),i=jt.weightsLoaderFactory(s),o=JSON.parse((await n(a)).toString()),l=await i(o,r);this.loadFromWeightMap(l)}loadFromWeightMap(t){let{paramMappings:n,params:a}=this.extractParamsFromWeightMap(t);this._paramMappings=n,this._params=a}extractWeights(t){let{paramMappings:n,params:a}=this.extractParams(t);this._paramMappings=n,this._params=a}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let n=t.split("/").reduce((s,i)=>{if(!s.nextObj.hasOwnProperty(i))throw new Error(`traversePropertyPath - object does not have property ${i}, for path ${t}`);return{obj:s.nextObj,objProp:i,nextObj:s.nextObj[i]}},{nextObj:this.params}),{obj:a,objProp:r}=n;if(!a||!r||!(a[r]instanceof Fe))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function Dn(e,t,n){return M(()=>{let a=Pi(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=J(a,t.bias),a})}function Nf(e,t,n=!1){return M(()=>{let a=qe(n?J(Et(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Dn(e,t.conv0,[2,2])),r=Dn(a,t.conv1,[1,1]),s=qe(J(a,r)),i=Dn(s,t.conv2,[1,1]);return qe(J(a,J(r,i)))})}function Fp(e,t,n=!1,a=!0){return M(()=>{let r=qe(n?J(Et(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):Dn(e,t.conv0,a?[2,2]:[1,1])),s=Dn(r,t.conv1,[1,1]),i=qe(J(r,s)),o=Dn(i,t.conv2,[1,1]),l=qe(J(r,J(s,o))),u=Dn(l,t.conv3,[1,1]);return qe(J(r,J(s,J(o,u))))})}function lo(e,t,n="same",a=!1){return M(()=>{let r=J(Et(e,t.filters,[1,1],n),t.bias);return a?qe(r):r})}function xn(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function Eu(e,t){return(n,a,r,s)=>{let i=Aa(e(n*a*r*r),[r,r,n,a]),o=Ze(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function Tf(e,t){return(n,a,r)=>{let s=Ca(e(n*a),[n,a]),i=Ze(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var Sf=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function $u(e,t){return(n,a,r)=>{let s=Aa(e(3*3*n),[3,3,n,1]),i=Aa(e(n*a),[1,1,n,a]),o=Ze(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new Sf(s,i,o)}}function Du(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new Sf(n,a,r)}}function qn(e,t){return(n,a,r)=>{let s=e[n];if(!eo(s,a))throw new Error(`expected weightMap[${n}] to be a Tensor${a}D, instead have ${s}`);return t.push({originalPath:n,paramPath:r||n}),s}}function vn(e){let t=e;function n(r){let s=t.slice(0,r);return t=t.slice(r),s}function a(){return t}return{extractWeights:n,getRemainingWeights:a}}function Cf(e,t){let n=Eu(e,t),a=$u(e,t);function r(i,o,l,u=!1){let c=u?n(i,o,3,`${l}/conv0`):a(i,o,`${l}/conv0`),p=a(o,o,`${l}/conv1`),d=a(o,o,`${l}/conv2`);return{conv0:c,conv1:p,conv2:d}}function s(i,o,l,u=!1){let{conv0:c,conv1:p,conv2:d}=r(i,o,l,u),h=a(o,o,`${l}/conv3`);return{conv0:c,conv1:p,conv2:d,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:s}}function uC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=vn(e),{extractDenseBlock4Params:r}=Cf(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2"),l=r(128,256,"dense3");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o,dense3:l}}}function Af(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function Ff(e,t){let n=qn(e,t),a=Af(n),r=Du(n);function s(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),c=r(`${o}/conv1`),p=r(`${o}/conv2`);return{conv0:u,conv1:c,conv2:p}}function i(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),c=r(`${o}/conv1`),p=r(`${o}/conv2`),d=r(`${o}/conv3`);return{conv0:u,conv1:c,conv2:p,conv3:d}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function cC(e){let t=[],{extractDenseBlock4Params:n}=Ff(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return xn(e,t),{params:a,paramMappings:t}}var _p=class extends en{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return M(()=>{let a=ue(t.toBatchTensor(112,!0),"float32"),s=wa(a,[122.782,117.001,104.298]).div(ce(255)),i=Fp(s,n.dense0,!0);return i=Fp(i,n.dense1),i=Fp(i,n.dense2),i=Fp(i,n.dense3),i=Zn(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await mt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return cC(t)}extractParams(t){return uC(t)}};function Ep(e,t){return M(()=>J(ze(e,t.weights),t.bias))}function pC(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=vn(e),o=Tf(r,a)(t,n,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:a,params:{fc:o}}}function dC(e){let t=[],n=qn(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:a("fc")};return xn(e,t),{params:r,paramMappings:t}}function _f(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=a.startsWith("fc")?n:t;r[a]=e[a]}),{featureExtractorMap:t,classifierMap:n}}var $p=class extends en{constructor(t,n){super(t);this._faceFeatureExtractor=n}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:n}=this;if(!n)throw new Error(`${this._name} - load model before inference`);return M(()=>{let a=t instanceof ur?this.faceFeatureExtractor.forwardInput(t):t;return Ep(a.as2D(a.shape[0],-1),n.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:n,paramMappings:a}=this.extractClassifierParams(t);this._params=n,this._paramMappings=a}extractClassifierParams(t){return pC(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=_f(t);return this.faceFeatureExtractor.loadFromWeightMap(n),dC(a)}extractParams(t){let n=this.getClassifierChannelsIn(),a=this.getClassifierChannelsOut(),r=a*n+a,s=t.slice(0,t.length-r),i=t.slice(t.length-r);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(i)}};var Ef=["neutral","happy","sad","angry","fearful","disgusted","surprised"],Er=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);Ef.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return Ef.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var Dp=class extends $p{constructor(t=new _p){super("FaceExpressionNet",t)}forwardInput(t){return M(()=>Sa(this.runNet(t)))}async forward(t){return this.forwardInput(await mt(t))}async predictExpressions(t){let n=await mt(t),a=await this.forwardInput(n),r=await Promise.all(ct(a).map(async i=>{let o=await i.data();return i.dispose(),o}));a.dispose();let s=r.map(i=>new Er(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function $f(e){return e.expressions instanceof Er}function Mp(e,t){return{...e,...{expressions:t}}}function ase(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof Er?s:$f(s)?s.expressions:void 0;if(!i)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let l=i.asSortedArray().filter(p=>p.probability>n),u=za(s)?s.detection.box.bottomLeft:a||new De(0,0);new vs(l.map(p=>`${p.expression} (${to(p.probability)})`),u).draw(e)})}function Ns(e){return za(e)&&e.landmarks instanceof jn&&e.unshiftedLandmarks instanceof jn&&e.alignedRect instanceof ft}function rse(e){let t=(o,l,u,c)=>Math.atan2(c-l,u-o)%Math.PI,n=o=>o*180/Math.PI,a={roll:void 0,pitch:void 0,yaw:void 0};if(!e||!e._positions||e._positions.length!==68)return a;let r=e._positions;a.roll=-t(r[36]._x,r[36]._y,r[45]._x,r[45]._y),a.pitch=t(0,Math.abs(r[0]._x-r[30]._x)/r[30]._x,Math.PI,Math.abs(r[16]._x-r[30]._x)/r[30]._x);let s=r.reduce((o,l)=>oo>l._y?o:l._y,-Infinity);return a.yaw=Math.PI*(e._imgDims._height/(i-s)/1.4-1),a}function uo(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new ft(e.detection.score,r.rescale(s.reverse()),s),o=rse(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var Tw=class{constructor(t={}){let{drawLines:n=!0,drawPoints:a=!0,lineWidth:r,lineColor:s,pointSize:i,pointColor:o}=t;this.drawLines=n,this.drawPoints=a,this.lineWidth=r||1,this.pointSize=i||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=o||"rgba(255, 0, 255, 1)"}},Sw=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new Tw(n)}draw(t){let n=bn(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof so&&(n.strokeStyle=i,n.lineWidth=s,Ar(n,this.faceLandmarks.getJawOutline()),Ar(n,this.faceLandmarks.getLeftEyeBrow()),Ar(n,this.faceLandmarks.getRightEyeBrow()),Ar(n,this.faceLandmarks.getNose()),Ar(n,this.faceLandmarks.getLeftEye(),!0),Ar(n,this.faceLandmarks.getRightEye(),!0),Ar(n,this.faceLandmarks.getMouth(),!0)),r){n.strokeStyle=l,n.fillStyle=l;let u=c=>{n.beginPath(),n.arc(c.x,c.y,o,0,2*Math.PI),n.fill()};this.faceLandmarks.positions.forEach(u)}}};function sse(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof jn?a:Ns(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new Sw(r).draw(e)})}var hC="1.0.1";function ise(e,t){let n=Eu(e,t),a=$u(e,t);function r(i,o,l){let u=a(i,o,`${l}/separable_conv0`),c=a(o,o,`${l}/separable_conv1`),p=n(i,o,1,`${l}/expansion_conv`);return{separable_conv0:u,separable_conv1:c,expansion_conv:p}}function s(i,o){let l=a(i,i,`${o}/separable_conv0`),u=a(i,i,`${o}/separable_conv1`),c=a(i,i,`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:c}}return{extractConvParams:n,extractSeparableConvParams:a,extractReductionBlockParams:r,extractMainBlockParams:s}}function mC(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=vn(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=ise(a,n),u=s(3,32,3,"entry_flow/conv_in"),c=o(32,64,"entry_flow/reduction_block_0"),p=o(64,128,"entry_flow/reduction_block_1"),d={conv_in:u,reduction_block_0:c,reduction_block_1:p},h={};ir(t,0,1).forEach(y=>{h[`main_block_${y}`]=l(128,`middle_flow/main_block_${y}`)});let m=o(128,256,"exit_flow/reduction_block"),f=i(256,512,"exit_flow/separable_conv"),g={reduction_block:m,separable_conv:f};if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:n,params:{entry_flow:d,middle_flow:h,exit_flow:g}}}function ose(e,t){let n=qn(e,t),a=Af(n),r=Du(n);function s(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),c=a(`${o}/expansion_conv`);return{separable_conv0:l,separable_conv1:u,expansion_conv:c}}function i(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),c=r(`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:c}}return{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}}function fC(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=ose(e,n),o=a("entry_flow/conv_in"),l=s("entry_flow/reduction_block_0"),u=s("entry_flow/reduction_block_1"),c={conv_in:o,reduction_block_0:l,reduction_block_1:u},p={};ir(t,0,1).forEach(f=>{p[`main_block_${f}`]=i(`middle_flow/main_block_${f}`)});let d=s("exit_flow/reduction_block"),h=r("exit_flow/separable_conv"),m={reduction_block:d,separable_conv:h};return xn(e,n),{params:{entry_flow:c,middle_flow:p,exit_flow:m},paramMappings:n}}function gC(e,t,n){return J(Et(e,t.filters,n,"same"),t.bias)}function Aw(e,t,n=!0){let a=n?qe(e):e;return a=Dn(a,t.separable_conv0,[1,1]),a=Dn(qe(a),t.separable_conv1,[1,1]),a=$t(a,[3,3],[2,2],"same"),a=J(a,gC(e,t.expansion_conv,[2,2])),a}function lse(e,t){let n=Dn(qe(e),t.separable_conv0,[1,1]);return n=Dn(qe(n),t.separable_conv1,[1,1]),n=Dn(qe(n),t.separable_conv2,[1,1]),n=J(n,e),n}var Fw=class extends en{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyXception - load model before inference");return M(()=>{let a=ue(t.toBatchTensor(112,!0),"float32"),s=wa(a,[122.782,117.001,104.298]).div(ce(256)),i=qe(gC(s,n.entry_flow.conv_in,[2,2]));return i=Aw(i,n.entry_flow.reduction_block_0,!1),i=Aw(i,n.entry_flow.reduction_block_1),ir(this._numMainBlocks,0,1).forEach(o=>{i=lse(i,n.middle_flow[`main_block_${o}`])}),i=Aw(i,n.exit_flow.reduction_block),i=qe(Dn(i,n.exit_flow.separable_conv,[1,1])),i})}async forward(t){return this.forwardInput(await mt(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return fC(t,this._numMainBlocks)}extractParams(t){return mC(t,this._numMainBlocks)}};function yC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=vn(e),r=Tf(n,t),s=r(512,1,"fc/age"),i=r(512,2,"fc/gender");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{fc:{age:s,gender:i}}}}function bC(e){let t=[],n=qn(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:{age:a("fc/age"),gender:a("fc/gender")}};return xn(e,t),{params:r,paramMappings:t}}var cr;(function(e){e.FEMALE="female",e.MALE="male"})(cr||(cr={}));var Rp=class extends en{constructor(t=new Fw(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:n}=this;if(!n)throw new Error(`${this._name} - load model before inference`);return M(()=>{let a=t instanceof ur?this.faceFeatureExtractor.forwardInput(t):t,r=Zn(a,[7,7],[2,2],"valid").as2D(a.shape[0],-1),s=Ep(r,n.fc.age).as1D(),i=Ep(r,n.fc.gender);return{age:s,gender:i}})}forwardInput(t){return M(()=>{let{age:n,gender:a}=this.runNet(t);return{age:n,gender:Sa(a)}})}async forward(t){return this.forwardInput(await mt(t))}async predictAgeAndGender(t){let n=await mt(t),a=await this.forwardInput(n),r=ct(a.age),s=ct(a.gender),i=r.map((l,u)=>({ageTensor:l,genderTensor:s[u]})),o=await Promise.all(i.map(async({ageTensor:l,genderTensor:u})=>{let c=(await l.data())[0],p=(await u.data())[0],d=p>.5,h=d?cr.MALE:cr.FEMALE,m=d?p:1-p;return l.dispose(),u.dispose(),{age:c,gender:h,genderProbability:m}}));return a.age.dispose(),a.gender.dispose(),n.isBatchInput?o:o[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:n,paramMappings:a}=this.extractClassifierParams(t);this._params=n,this._paramMappings=a}extractClassifierParams(t){return yC(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=_f(t);return this.faceFeatureExtractor.loadFromWeightMap(n),bC(a)}extractParams(t){let n=512*1+1+(512*2+2),a=t.slice(0,t.length-n),r=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(r)}};var Pp=class extends $p{postProcess(t,n,a){let r=a.map(({width:i,height:o})=>{let l=n/Math.max(o,i);return{width:i*l,height:o*l}}),s=r.length;return M(()=>{let i=(p,d)=>Dt([Cn([68],p,"float32"),Cn([68],d,"float32")],1).as2D(1,136).as1D(),o=(p,d)=>{let{width:h,height:m}=r[p];return d(h,m)?Math.abs(h-m)/2:0},l=p=>o(p,(d,h)=>do(p,(d,h)=>hi(l(d),u(d))))).div(Dt(Array.from(Array(s),(p,d)=>i(r[d].width,r[d].height))))})}forwardInput(t){return M(()=>{let n=this.runNet(t);return this.postProcess(n,t.inputSize,t.inputDimensions.map(([a,r])=>({height:a,width:r})))})}async forward(t){return this.forwardInput(await mt(t))}async detectLandmarks(t){let n=await mt(t),a=M(()=>ct(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(await s.data()),l=o.filter((c,p)=>uf(p)),u=o.filter((c,p)=>!uf(p));return new so(Array(68).fill(0).map((c,p)=>new De(l[p],u[p])),{height:n.getInputHeight(i),width:n.getInputWidth(i)})}));return a.forEach(s=>s.dispose()),n.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}};var co=class extends Pp{constructor(t=new _p){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function xC(e){let t=[],{extractDenseBlock3Params:n}=Ff(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return xn(e,t),{params:a,paramMappings:t}}function vC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=vn(e),{extractDenseBlock3Params:r}=Cf(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o}}}var _w=class extends en{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return M(()=>{let a=ue(t.toBatchTensor(112,!0),"float32"),s=wa(a,[122.782,117.001,104.298]).div(ce(255)),i=Nf(s,n.dense0,!0);return i=Nf(i,n.dense1),i=Nf(i,n.dense2),i=Zn(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await mt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return xC(t)}extractParams(t){return vC(t)}};var Op=class extends Pp{constructor(t=new _w){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Ew=class extends co{};function wC(e,t){return J(B(e,t.weights),t.biases)}function $w(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=Et(e,s,n,r);return o=J(o,i),o=wC(o,t.scale),a?qe(o):o}function kC(e,t){return $w(e,t,[1,1],!0)}function Dw(e,t){return $w(e,t,[1,1],!1)}function Df(e,t){return $w(e,t,[2,2],!0,"valid")}function use(e,t){function n(o,l,u){let c=e(o),p=c.length/(l*u*u);if(mw(p))throw new Error(`depth has to be an integer: ${p}, weights.length: ${c.length}, numFilters: ${l}, filterSize: ${u}`);return M(()=>Ve(Aa(c,[l,p,u,u]),[2,3,1,0]))}function a(o,l,u,c){let p=n(o,l,u),d=Ze(e(l));return t.push({paramPath:`${c}/filters`},{paramPath:`${c}/bias`}),{filters:p,bias:d}}function r(o,l){let u=Ze(e(o)),c=Ze(e(o));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:u,biases:c}}function s(o,l,u,c){let p=a(o,l,u,`${c}/conv`),d=r(l,`${c}/scale`);return{conv:p,scale:d}}function i(o,l,u,c,p=!1){let d=s((p?.5:1)*o,l,u,`${c}/conv1`),h=s(o,l,u,`${c}/conv2`);return{conv1:d,conv2:h}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function IC(e){let{extractWeights:t,getRemainingWeights:n}=vn(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=use(t,a),i=r(4704,32,7,"conv32_down"),o=s(9216,32,3,"conv32_1"),l=s(9216,32,3,"conv32_2"),u=s(9216,32,3,"conv32_3"),c=s(36864,64,3,"conv64_down",!0),p=s(36864,64,3,"conv64_1"),d=s(36864,64,3,"conv64_2"),h=s(36864,64,3,"conv64_3"),m=s(147456,128,3,"conv128_down",!0),f=s(147456,128,3,"conv128_1"),g=s(147456,128,3,"conv128_2"),y=s(589824,256,3,"conv256_down",!0),b=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),v=s(589824,256,3,"conv256_down_out"),k=M(()=>Ve(Ca(t(256*128),[128,256]),[1,0]));if(a.push({paramPath:"fc"}),n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{params:{conv32_down:i,conv32_1:o,conv32_2:l,conv32_3:u,conv64_down:c,conv64_1:p,conv64_2:d,conv64_3:h,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:y,conv256_1:b,conv256_2:x,conv256_down_out:v,fc:k},paramMappings:a}}function cse(e,t){let n=qn(e,t);function a(i){let o=n(`${i}/scale/weights`,1),l=n(`${i}/scale/biases`,1);return{weights:o,biases:l}}function r(i){let o=n(`${i}/conv/filters`,4),l=n(`${i}/conv/bias`,1),u=a(i);return{conv:{filters:o,bias:l},scale:u}}function s(i){return{conv1:r(`${i}/conv1`),conv2:r(`${i}/conv2`)}}return{extractConvLayerParams:r,extractResidualLayerParams:s}}function NC(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=cse(e,t),r=n("conv32_down"),s=a("conv32_1"),i=a("conv32_2"),o=a("conv32_3"),l=a("conv64_down"),u=a("conv64_1"),c=a("conv64_2"),p=a("conv64_3"),d=a("conv128_down"),h=a("conv128_1"),m=a("conv128_2"),f=a("conv256_down"),g=a("conv256_1"),y=a("conv256_2"),b=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!hw(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);let v={conv32_down:r,conv32_1:s,conv32_2:i,conv32_3:o,conv64_down:l,conv64_1:u,conv64_2:c,conv64_3:p,conv128_down:d,conv128_1:h,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:y,conv256_down_out:b,fc:x};return xn(e,t),{params:v,paramMappings:t}}function Wa(e,t){let n=kC(e,t.conv1);return n=Dw(n,t.conv2),n=J(n,e),n=qe(n),n}function Lp(e,t){let n=Df(e,t.conv1);n=Dw(n,t.conv2);let a=Zn(e,2,2,"valid"),r=vt(a.shape),s=a.shape[3]!==n.shape[3];if(a.shape[1]!==n.shape[1]||a.shape[2]!==n.shape[2]){let o=[...n.shape];o[1]=1;let l=vt(o);n=Je([n,l],1);let u=[...n.shape];u[2]=1;let c=vt(u);n=Je([n,c],2)}return a=s?Je([a,r],3):a,n=J(a,n),n=qe(n),n}var po=class extends en{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return M(()=>{let a=ue(t.toBatchTensor(150,!0),"float32"),s=wa(a,[122.782,117.001,104.298]).div(ce(256)),i=Df(s,n.conv32_down);i=$t(i,3,2,"valid"),i=Wa(i,n.conv32_1),i=Wa(i,n.conv32_2),i=Wa(i,n.conv32_3),i=Lp(i,n.conv64_down),i=Wa(i,n.conv64_1),i=Wa(i,n.conv64_2),i=Wa(i,n.conv64_3),i=Lp(i,n.conv128_down),i=Wa(i,n.conv128_1),i=Wa(i,n.conv128_2),i=Lp(i,n.conv256_down),i=Wa(i,n.conv256_1),i=Wa(i,n.conv256_2),i=Lp(i,n.conv256_down_out);let o=i.mean([1,2]);return ze(o,n.fc)})}async forward(t){return this.forwardInput(await mt(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)==null?void 0:s.some(i=>i<=0))return new Float32Array(128);let n=await mt(t),a=M(()=>ct(this.forwardInput(n))),r=await Promise.all(a.map(i=>i.data()));return a.forEach(i=>i.dispose()),n.isBatchInput?r:r[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return NC(t)}extractParams(t){return IC(t)}};function TC(e){let t=new po;return t.extractWeights(e),t}function zp(e,t){return{...e,...{descriptor:t}}}function SC(e){return typeof e.age=="number"}function Wp(e,t){return{...e,...{age:t}}}function CC(e){return(e.gender===cr.MALE||e.gender===cr.FEMALE)&&Tu(e.genderProbability)}function Bp(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function pse(e,t){function n(l,u){let c=Aa(e(3*3*l),[3,3,l,1]),p=Ze(e(l)),d=Ze(e(l)),h=Ze(e(l)),m=Ze(e(l));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/batch_norm_scale`},{paramPath:`${u}/batch_norm_offset`},{paramPath:`${u}/batch_norm_mean`},{paramPath:`${u}/batch_norm_variance`}),{filters:c,batch_norm_scale:p,batch_norm_offset:d,batch_norm_mean:h,batch_norm_variance:m}}function a(l,u,c,p,d){let h=Aa(e(l*u*c*c),[c,c,l,u]),m=Ze(e(u));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/${d?"batch_norm_offset":"bias"}`}),{filters:h,bias:m}}function r(l,u,c,p){let{filters:d,bias:h}=a(l,u,c,p,!0);return{filters:d,batch_norm_offset:h}}function s(l,u,c){let p=n(l,`${c}/depthwise_conv`),d=r(l,u,1,`${c}/pointwise_conv`);return{depthwise_conv:p,pointwise_conv:d}}function i(){let l=r(3,32,3,"mobilenetv1/conv_0"),u=s(32,64,"mobilenetv1/conv_1"),c=s(64,128,"mobilenetv1/conv_2"),p=s(128,128,"mobilenetv1/conv_3"),d=s(128,256,"mobilenetv1/conv_4"),h=s(256,256,"mobilenetv1/conv_5"),m=s(256,512,"mobilenetv1/conv_6"),f=s(512,512,"mobilenetv1/conv_7"),g=s(512,512,"mobilenetv1/conv_8"),y=s(512,512,"mobilenetv1/conv_9"),b=s(512,512,"mobilenetv1/conv_10"),x=s(512,512,"mobilenetv1/conv_11"),v=s(512,1024,"mobilenetv1/conv_12"),k=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:u,conv_2:c,conv_3:p,conv_4:d,conv_5:h,conv_6:m,conv_7:f,conv_8:g,conv_9:y,conv_10:b,conv_11:x,conv_12:v,conv_13:k}}function o(){let l=r(1024,256,1,"prediction_layer/conv_0"),u=r(256,512,3,"prediction_layer/conv_1"),c=r(512,128,1,"prediction_layer/conv_2"),p=r(128,256,3,"prediction_layer/conv_3"),d=r(256,128,1,"prediction_layer/conv_4"),h=r(128,256,3,"prediction_layer/conv_5"),m=r(256,64,1,"prediction_layer/conv_6"),f=r(64,128,3,"prediction_layer/conv_7"),g=a(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),b=a(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=a(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),v=a(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),k=a(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),w=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),S=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),A=a(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),F=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),D=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),R=a(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:l,conv_1:u,conv_2:c,conv_3:p,conv_4:d,conv_5:h,conv_6:m,conv_7:f,box_predictor_0:{box_encoding_predictor:g,class_predictor:y},box_predictor_1:{box_encoding_predictor:b,class_predictor:x},box_predictor_2:{box_encoding_predictor:v,class_predictor:k},box_predictor_3:{box_encoding_predictor:w,class_predictor:S},box_predictor_4:{box_encoding_predictor:A,class_predictor:F},box_predictor_5:{box_encoding_predictor:D,class_predictor:R}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function AC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=vn(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=pse(n,t),i=r(),o=s(),u={extra_dim:dh(n(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:{mobilenetv1:i,prediction_layer:o,output_layer:u},paramMappings:t}}function dse(e,t){let n=qn(e,t);function a(u,c,p){let d=n(`${u}/Conv2d_${c}_pointwise/weights`,4,`${p}/filters`),h=n(`${u}/Conv2d_${c}_pointwise/convolution_bn_offset`,1,`${p}/batch_norm_offset`);return{filters:d,batch_norm_offset:h}}function r(u){let c=`mobilenetv1/conv_${u}`,p=`MobilenetV1/Conv2d_${u}_depthwise`,d=`${c}/depthwise_conv`,h=`${c}/pointwise_conv`,m=n(`${p}/depthwise_weights`,4,`${d}/filters`),f=n(`${p}/BatchNorm/gamma`,1,`${d}/batch_norm_scale`),g=n(`${p}/BatchNorm/beta`,1,`${d}/batch_norm_offset`),y=n(`${p}/BatchNorm/moving_mean`,1,`${d}/batch_norm_mean`),b=n(`${p}/BatchNorm/moving_variance`,1,`${d}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:y,batch_norm_variance:b},pointwise_conv:a("MobilenetV1",u,h)}}function s(){return{conv_0:a("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:r(1),conv_2:r(2),conv_3:r(3),conv_4:r(4),conv_5:r(5),conv_6:r(6),conv_7:r(7),conv_8:r(8),conv_9:r(9),conv_10:r(10),conv_11:r(11),conv_12:r(12),conv_13:r(13)}}function i(u,c){let p=n(`${u}/weights`,4,`${c}/filters`),d=n(`${u}/biases`,1,`${c}/bias`);return{filters:p,bias:d}}function o(u){let c=i(`Prediction/BoxPredictor_${u}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${u}/box_encoding_predictor`),p=i(`Prediction/BoxPredictor_${u}/ClassPredictor`,`prediction_layer/box_predictor_${u}/class_predictor`);return{box_encoding_predictor:c,class_predictor:p}}function l(){return{conv_0:a("Prediction",0,"prediction_layer/conv_0"),conv_1:a("Prediction",1,"prediction_layer/conv_1"),conv_2:a("Prediction",2,"prediction_layer/conv_2"),conv_3:a("Prediction",3,"prediction_layer/conv_3"),conv_4:a("Prediction",4,"prediction_layer/conv_4"),conv_5:a("Prediction",5,"prediction_layer/conv_5"),conv_6:a("Prediction",6,"prediction_layer/conv_6"),conv_7:a("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:o(0),box_predictor_1:o(1),box_predictor_2:o(2),box_predictor_3:o(3),box_predictor_4:o(4),box_predictor_5:o(5)}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:l}}function FC(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=dse(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Fr(r))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${r}`);let s={mobilenetv1:n(),prediction_layer:a(),output_layer:{extra_dim:r}};return xn(e,t),{params:s,paramMappings:t}}function ka(e,t,n){return M(()=>{let a=Et(e,t.filters,n,"same");return a=J(a,t.batch_norm_offset),Xt(a,0,6)})}var hse=.0010000000474974513;function mse(e,t,n){return M(()=>{let a=ns(e,t.filters,n,"same");return a=br(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,hse),Xt(a,0,6)})}function fse(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function _C(e,t){return M(()=>{let n,a=ka(e,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((s,i)=>{let o=i+1,l=fse(o);a=mse(a,s.depthwise_conv,l),a=ka(a,s.pointwise_conv,[1,1]),o===11&&(n=a)}),n===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:a,conv11:n}})}function gse(e,t,n){let a=e.arraySync(),r=Math.min(a[t][0],a[t][2]),s=Math.min(a[t][1],a[t][3]),i=Math.max(a[t][0],a[t][2]),o=Math.max(a[t][1],a[t][3]),l=Math.min(a[n][0],a[n][2]),u=Math.min(a[n][1],a[n][3]),c=Math.max(a[n][0],a[n][2]),p=Math.max(a[n][1],a[n][3]),d=(i-r)*(o-s),h=(c-l)*(p-u);if(d<=0||h<=0)return 0;let m=Math.max(r,l),f=Math.max(s,u),g=Math.min(i,c),y=Math.min(o,p),b=Math.max(g-m,0)*Math.max(y-f,0);return b/(d+h-b)}function EC(e,t,n,a,r){let s=e.shape[0],i=Math.min(n,s),o=t.map((c,p)=>({score:c,boxIndex:p})).filter(c=>c.score>r).sort((c,p)=>p.score-c.score),l=c=>c<=a?1:0,u=[];return o.forEach(c=>{if(u.length>=i)return;let p=c.score;for(let d=u.length-1;d>=0;--d){let h=gse(e,c.boxIndex,u[d]);if(h!==0&&(c.score*=l(h),c.score<=r))break}p===c.score&&u.push(c.boxIndex)}),u}function yse(e){let t=ct(Ve(e,[1,0])),n=[me(t[2],t[0]),me(t[3],t[1])],a=[J(t[0],xe(n[0],ce(2))),J(t[1],xe(n[1],ce(2)))];return{sizes:n,centers:a}}function bse(e,t){let{sizes:n,centers:a}=yse(e),r=ct(Ve(t,[1,0])),s=xe(B(hn(xe(r[2],ce(5))),n[0]),ce(2)),i=J(B(xe(r[0],ce(10)),n[0]),a[0]),o=xe(B(hn(xe(r[3],ce(5))),n[1]),ce(2)),l=J(B(xe(r[1],ce(10)),n[1]),a[1]);return Ve(Dt([me(i,s),me(l,o),J(i,s),J(l,o)]),[1,0])}function $C(e,t,n){return M(()=>{let a=e.shape[0],r=bse(H(qa(n.extra_dim,[a,1,1]),[-1,4]),H(e,[-1,4]));r=H(r,[a,r.shape[0]/a,4]);let s=da(Be(t,[0,0,1],[-1,-1,-1])),i=Be(s,[0,0,0],[-1,-1,1]);i=H(i,[a,i.shape[1]]);let o=ct(r),l=ct(i);return{boxes:o,scores:l}})}function ho(e,t){return M(()=>{let n=e.shape[0],a=H(lo(e,t.box_encoding_predictor),[n,-1,1,4]),r=H(lo(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function DC(e,t,n){return M(()=>{let a=ka(e,n.conv_0,[1,1]),r=ka(a,n.conv_1,[2,2]),s=ka(r,n.conv_2,[1,1]),i=ka(s,n.conv_3,[2,2]),o=ka(i,n.conv_4,[1,1]),l=ka(o,n.conv_5,[2,2]),u=ka(l,n.conv_6,[1,1]),c=ka(u,n.conv_7,[2,2]),p=ho(t,n.box_predictor_0),d=ho(e,n.box_predictor_1),h=ho(r,n.box_predictor_2),m=ho(i,n.box_predictor_3),f=ho(l,n.box_predictor_4),g=ho(c,n.box_predictor_5),y=Je([p.boxPredictionEncoding,d.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),b=Je([p.classPrediction,d.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:y,classPredictions:b}})}var sa=class{constructor({minConfidence:t,maxResults:n}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=n||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var Ts=class extends en{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return M(()=>{let a=ue(t.toBatchTensor(512,!1),"float32"),r=me(B(a,ce(.007843137718737125)),ce(1)),s=_C(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=DC(s.out,s.conv11,n.prediction_layer);return $C(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await mt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new sa(n),s=await mt(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],u=o[0];for(let x=1;x{let[v,k]=[Math.max(0,y[x][0]),Math.min(1,y[x][2])].map(A=>A*g),[w,S]=[Math.max(0,y[x][1]),Math.min(1,y[x][3])].map(A=>A*f);return new ft(c[x],new ro(w,v,S-w,k-v),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),b}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return FC(t)}extractParams(t){return AC(t)}};function Mw(e){let t=new Ts;return t.extractWeights(e),t}function MC(e){return Mw(e)}var Rw=class extends Ts{};var RC=.4,PC=[new De(.738768,.874946),new De(2.42204,2.65704),new De(4.30971,7.04493),new De(10.246,4.59428),new De(12.6868,11.8741)],OC=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],LC=[117.001,114.697,97.404],zC="tiny_yolov2_model",WC="tiny_yolov2_separable_conv_model";var Mf=e=>typeof e=="number";function Rf(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!Mf(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>Mf(t.x)&&Mf(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(Mf)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function Mu(e){return M(()=>{let t=B(e,ce(.10000000149011612));return J(qe(me(e,t)),t)})}function $r(e,t){return M(()=>{let n=ta(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Et(n,t.conv.filters,[1,1],"valid"),n=me(n,t.bn.sub),n=B(n,t.bn.truediv),n=J(n,t.conv.bias),Mu(n)})}function Dr(e,t){return M(()=>{let n=ta(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Pi(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=J(n,t.bias),Mu(n)})}function xse(e,t){let n=Eu(e,t);function a(i,o){let l=Ze(e(i)),u=Ze(e(i));return t.push({paramPath:`${o}/sub`},{paramPath:`${o}/truediv`}),{sub:l,truediv:u}}function r(i,o,l){let u=n(i,o,3,`${l}/conv`),c=a(o,`${l}/bn`);return{conv:u,bn:c}}let s=$u(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function BC(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=vn(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=xse(r,i),c;if(t.withSeparableConvs){let[p,d,h,m,f,g,y,b,x]=a,v=t.isFirstLayerConv2d?o(p,d,3,"conv0"):u(p,d,"conv0"),k=u(d,h,"conv1"),w=u(h,m,"conv2"),S=u(m,f,"conv3"),A=u(f,g,"conv4"),F=u(g,y,"conv5"),D=b?u(y,b,"conv6"):void 0,R=x?u(b,x,"conv7"):void 0,L=o(x||b||y,5*n,1,"conv8");c={conv0:v,conv1:k,conv2:w,conv3:S,conv4:A,conv5:F,conv6:D,conv7:R,conv8:L}}else{let[p,d,h,m,f,g,y,b,x]=a,v=l(p,d,"conv0"),k=l(d,h,"conv1"),w=l(h,m,"conv2"),S=l(m,f,"conv3"),A=l(f,g,"conv4"),F=l(g,y,"conv5"),D=l(y,b,"conv6"),R=l(b,x,"conv7"),L=o(x,5*n,1,"conv8");c={conv0:v,conv1:k,conv2:w,conv3:S,conv4:A,conv5:F,conv6:D,conv7:R,conv8:L}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:c,paramMappings:i}}function vse(e,t){let n=qn(e,t);function a(o){let l=n(`${o}/sub`,1),u=n(`${o}/truediv`,1);return{sub:l,truediv:u}}function r(o){let l=n(`${o}/filters`,4),u=n(`${o}/bias`,1);return{filters:l,bias:u}}function s(o){let l=r(`${o}/conv`),u=a(`${o}/bn`);return{conv:l,bn:u}}let i=Du(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function VC(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=vse(e,n),i;if(t.withSeparableConvs){let o=t.filterSizes&&t.filterSizes.length||9;i={conv0:t.isFirstLayerConv2d?a("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:o>7?s("conv6"):void 0,conv7:o>8?s("conv7"):void 0,conv8:a("conv8")}}else i={conv0:r("conv0"),conv1:r("conv1"),conv2:r("conv2"),conv3:r("conv3"),conv4:r("conv4"),conv5:r("conv5"),conv6:r("conv6"),conv7:r("conv7"),conv8:a("conv8")};return xn(e,n),{params:i,paramMappings:n}}var Ba=class{constructor({inputSize:t,scoreThreshold:n}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=n||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var Pw=class extends en{constructor(t){super("TinyYolov2");Rf(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,n){let a=$r(t,n.conv0);return a=$t(a,[2,2],[2,2],"same"),a=$r(a,n.conv1),a=$t(a,[2,2],[2,2],"same"),a=$r(a,n.conv2),a=$t(a,[2,2],[2,2],"same"),a=$r(a,n.conv3),a=$t(a,[2,2],[2,2],"same"),a=$r(a,n.conv4),a=$t(a,[2,2],[2,2],"same"),a=$r(a,n.conv5),a=$t(a,[2,2],[1,1],"same"),a=$r(a,n.conv6),a=$r(a,n.conv7),lo(a,n.conv8,"valid",!1)}runMobilenet(t,n){let a=this.config.isFirstLayerConv2d?Mu(lo(t,n.conv0,"valid",!1)):Dr(t,n.conv0);return a=$t(a,[2,2],[2,2],"same"),a=Dr(a,n.conv1),a=$t(a,[2,2],[2,2],"same"),a=Dr(a,n.conv2),a=$t(a,[2,2],[2,2],"same"),a=Dr(a,n.conv3),a=$t(a,[2,2],[2,2],"same"),a=Dr(a,n.conv4),a=$t(a,[2,2],[2,2],"same"),a=Dr(a,n.conv5),a=$t(a,[2,2],[1,1],"same"),a=n.conv6?Dr(a,n.conv6):a,a=n.conv7?Dr(a,n.conv7):a,lo(a,n.conv8,"valid",!1)}forwardInput(t,n){let{params:a}=this;if(!a)throw new Error("TinyYolov2 - load model before inference");return M(()=>{let r=ue(t.toBatchTensor(n,!1),"float32");return r=this.config.meanRgb?wa(r,this.config.meanRgb):r,r=r.div(ce(256)),this.config.withSeparableConvs?this.runMobilenet(r,a):this.runTinyYolov2(r,a)})}async forward(t,n){return this.forwardInput(await mt(t),n)}async detect(t,n={}){let{inputSize:a,scoreThreshold:r}=new Ba(n),s=await mt(t),i=await this.forwardInput(s,a),o=M(()=>ct(i)[0].expandDims()),l={width:s.getInputWidth(0),height:s.getInputHeight(0)},u=await this.extractBoxes(o,s.getReshapedInputDimensions(0),r);i.dispose(),o.dispose();let c=u.map(g=>g.box),p=u.map(g=>g.score),d=u.map(g=>g.classScore),h=u.map(g=>this.config.classes[g.label]);return hf(c.map(g=>g.rescale(a)),p,this.config.iouThreshold,!0).map(g=>new _r(p[g],d[g],h[g],c[g],l))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return VC(t,this.config)}extractParams(t){let n=this.config.filterSizes||Pw.DEFAULT_FILTER_SIZES,a=n?n.length:void 0;if(a!==7&&a!==8&&a!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${a} filterSizes in config`);return BC(t,this.config,this.boxEncodingSize,n)}async extractBoxes(t,n,a){let{width:r,height:s}=n,i=Math.max(r,s),o=i/r,l=i/s,u=t.shape[1],c=this.config.anchors.length,[p,d,h]=M(()=>{let y=t.reshape([u,u,c,this.boxEncodingSize]),b=y.slice([0,0,0,0],[u,u,c,4]),x=y.slice([0,0,0,4],[u,u,c,1]),v=this.withClassScores?Sa(y.slice([0,0,0,5],[u,u,c,this.config.classes.length]),3):ce(0);return[b,x,v]}),m=[],f=await d.array(),g=await p.array();for(let y=0;ya){let k=(b+Su(g[y][b][x][0]))/u*o,w=(y+Su(g[y][b][x][1]))/u*l,S=Math.exp(g[y][b][x][2])*this.config.anchors[x].x/u*o,A=Math.exp(g[y][b][x][3])*this.config.anchors[x].y/u*l,F=k-S/2,D=w-A/2,R={row:y,col:b,anchor:x},{classScore:L,label:W}=this.withClassScores?await this.extractPredictedClass(h,R):{classScore:1,label:0};m.push({box:new ao(F,D,F+S,D+A),score:v,classScore:v*L,label:W,...R})}}return p.dispose(),d.dispose(),h.dispose(),m}async extractPredictedClass(t,n){let{row:a,col:r,anchor:s}=n,i=await t.array();return Array(this.config.classes.length).fill(0).map((o,l)=>i[a][r][s][l]).map((o,l)=>({classScore:o,label:l})).reduce((o,l)=>o.classScore>l.classScore?o:l)}},Ru=Pw;Ru.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var mo=class extends Ru{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:RC,classes:["face"],...t?{anchors:OC,meanRgb:LC}:{anchors:PC,withClassScores:!0}};super(n)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new ft(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?WC:zC}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function UC(e,t=!0){let n=new mo(t);return n.extractWeights(e),n}var Vp=class extends Ba{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var ia=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function fo(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>Ns(l)?r(l):l.detection),i=a||(t instanceof Fe?await oo(t,s):await io(t,s)),o=await n(i);return i.forEach(l=>l instanceof Fe&&l.dispose()),o}async function Pu(e,t,n,a,r){return fo([e],t,async s=>n(s[0]),a,r)}var GC=.4,HC=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],jC=[117.001,114.697,97.404];var go=class extends Ru{constructor(){let t={withSeparableConvs:!0,iouThreshold:GC,classes:["face"],anchors:HC,meanRgb:jC,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new ft(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var Qe={ssdMobilenetv1:new Ts,tinyFaceDetector:new go,tinyYolov2:new mo,faceLandmark68Net:new co,faceLandmark68TinyNet:new Op,faceRecognitionNet:new po,faceExpressionNet:new Dp,ageGenderNet:new Rp},Ow=(e,t)=>Qe.ssdMobilenetv1.locateFaces(e,t),qC=(e,t)=>Qe.tinyFaceDetector.locateFaces(e,t),XC=(e,t)=>Qe.tinyYolov2.locateFaces(e,t),Lw=e=>Qe.faceLandmark68Net.detectLandmarks(e),KC=e=>Qe.faceLandmark68TinyNet.detectLandmarks(e),YC=e=>Qe.faceRecognitionNet.computeFaceDescriptor(e),JC=e=>Qe.faceExpressionNet.predictExpressions(e),QC=e=>Qe.ageGenderNet.predictAgeAndGender(e),zw=e=>Qe.ssdMobilenetv1.load(e),ZC=e=>Qe.tinyFaceDetector.load(e),eA=e=>Qe.tinyYolov2.load(e),tA=e=>Qe.faceLandmark68Net.load(e),nA=e=>Qe.faceLandmark68TinyNet.load(e),aA=e=>Qe.faceRecognitionNet.load(e),rA=e=>Qe.faceExpressionNet.load(e),sA=e=>Qe.ageGenderNet.load(e),iA=zw,oA=Ow,lA=Lw;var Ww=class extends ia{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.extractedFaces=a}},zu=class extends Ww{async run(){let t=await this.parentTask,n=await fo(t,this.input,async a=>Promise.all(a.map(r=>Qe.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>Mp(a,n[r]))}withAgeAndGender(){return new Ou(this,this.input)}},Wu=class extends Ww{async run(){let t=await this.parentTask;if(!t)return;let n=await Pu(t,this.input,a=>Qe.faceExpressionNet.predictExpressions(a),this.extractedFaces);return Mp(t,n)}withAgeAndGender(){return new Lu(this,this.input)}},xo=class extends zu{withAgeAndGender(){return new yo(this,this.input)}withFaceDescriptors(){return new Mr(this,this.input)}},vo=class extends Wu{withAgeAndGender(){return new bo(this,this.input)}withFaceDescriptor(){return new Rr(this,this.input)}};var Bw=class extends ia{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.extractedFaces=a}},Ou=class extends Bw{async run(){let t=await this.parentTask,n=await fo(t,this.input,async a=>Promise.all(a.map(r=>Qe.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return Wp(Bp(a,i,o),s)})}withFaceExpressions(){return new zu(this,this.input)}},Lu=class extends Bw{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await Pu(t,this.input,s=>Qe.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return Wp(Bp(t,a,r),n)}withFaceExpressions(){return new Wu(this,this.input)}},yo=class extends Ou{withFaceExpressions(){return new xo(this,this.input)}withFaceDescriptors(){return new Mr(this,this.input)}},bo=class extends Lu{withFaceExpressions(){return new vo(this,this.input)}withFaceDescriptor(){return new Rr(this,this.input)}};var Up=class extends ia{constructor(t,n){super();this.parentTask=t;this.input=n}},Mr=class extends Up{async run(){let t=await this.parentTask;return(await fo(t,this.input,a=>Promise.all(a.map(r=>Qe.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>zp(t[r],a))}withFaceExpressions(){return new xo(this,this.input)}withAgeAndGender(){return new yo(this,this.input)}},Rr=class extends Up{async run(){let t=await this.parentTask;if(!t)return;let n=await Pu(t,this.input,a=>Qe.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return zp(t,n)}withFaceExpressions(){return new vo(this,this.input)}withAgeAndGender(){return new bo(this,this.input)}};var Gp=class extends ia{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.useTinyLandmarkNet=a}get landmarkNet(){return this.useTinyLandmarkNet?Qe.faceLandmark68TinyNet:Qe.faceLandmark68Net}},Hp=class extends Gp{async run(){let t=await this.parentTask,n=t.map(s=>s.detection),a=this.input instanceof Fe?await oo(this.input,n):await io(this.input,n),r=await Promise.all(a.map(s=>this.landmarkNet.detectLandmarks(s)));return a.forEach(s=>s instanceof Fe&&s.dispose()),t.map((s,i)=>uo(s,r[i]))}withFaceExpressions(){return new xo(this,this.input)}withAgeAndGender(){return new yo(this,this.input)}withFaceDescriptors(){return new Mr(this,this.input)}},jp=class extends Gp{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Fe?await oo(this.input,[n]):await io(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Fe&&s.dispose()),uo(t,r)}withFaceExpressions(){return new vo(this,this.input)}withAgeAndGender(){return new bo(this,this.input)}withFaceDescriptor(){return new Rr(this,this.input)}};var qp=class extends ia{constructor(t,n=new sa){super();this.input=t;this.options=n}},Bu=class extends qp{async run(){let{input:t,options:n}=this,a;if(n instanceof Vp)a=Qe.tinyFaceDetector.locateFaces(t,n);else if(n instanceof sa)a=Qe.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof Ba)a=Qe.tinyYolov2.locateFaces(t,n);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return a}runAndExtendWithFaceDetections(){return new Promise(async t=>{let n=await this.run();t(n.map(a=>bs({},a)))})}withFaceLandmarks(t=!1){return new Hp(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new zu(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Ou(this.runAndExtendWithFaceDetections(),this.input)}},Xp=class extends qp{async run(){let t=await new Bu(this.input,this.options),n=t[0];return t.forEach(a=>{a.score>n.score&&(n=a)}),n}runAndExtendWithFaceDetection(){return new Promise(async t=>{let n=await this.run();t(n?bs({},n):void 0)})}withFaceLandmarks(t=!1){return new jp(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Wu(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Lu(this.runAndExtendWithFaceDetection(),this.input)}};function uA(e,t=new sa){return new Xp(e,t)}function Kp(e,t=new sa){return new Bu(e,t)}async function Vw(e,t){return Kp(e,new sa(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function cA(e,t={}){return Kp(e,new Ba(t)).withFaceLandmarks().withFaceDescriptors()}var pA=Vw;function Pf(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let n=Array.from(e),a=Array.from(t);return Math.sqrt(n.map((r,s)=>r-a[s]).reduce((r,s)=>r+s**2,0))}var Yp=class{constructor(t,n=.6){this._distanceThreshold=n;let a=Array.isArray(t)?t:[t];if(!a.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let r=1,s=()=>`person ${r++}`;this._labeledDescriptors=a.map(i=>{if(i instanceof or)return i;if(i instanceof Float32Array)return new or(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new or(s(),[i.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,n){return n.map(a=>Pf(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new Cu(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>or.fromJSON(a));return new Yp(n,t.distanceThreshold)}};function dA(e){let t=new go;return t.extractWeights(e),t}function Uw(e,t){let{width:n,height:a}=new cn(t.width,t.height);if(n<=0||a<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:n,height:a})}`);if(Array.isArray(e))return e.map(r=>Uw(r,{width:n,height:a}));if(Ns(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return uo(bs(e,r),s)}return za(e)?bs(e,e.detection.forSize(n,a)):e instanceof jn||e instanceof ft?e.forSize(n,a):e}var kse=typeof process!="undefined",Ise=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",hA={faceapi:hC,node:kse,browser:Ise};return wse;})(); /** * @license * Copyright 2017 Google LLC. All Rights Reserved. diff --git a/dist/face-api.js.map b/dist/face-api.js.map index 6f8e5c8..5fb3a1d 100644 --- a/dist/face-api.js.map +++ b/dist/face-api.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../src/env/isNodejs.ts", "../src/index.ts", "../node_modules/node-fetch/browser.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "(disabled):crypto", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "../node_modules/string_decoder/lib/string_decoder.js", "(disabled):path", "(disabled):worker_threads", "(disabled):perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dense_bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ComplexAbs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ExpandDims_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LeakyRelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mean_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Neg_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/RealDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Select_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/zeros_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Scatter_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/arg_min_max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/dilation_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "../src/draw/index.ts", "../src/draw/drawContour.ts", "../src/utils/index.ts", "../src/classes/Dimensions.ts", "../src/classes/Point.ts", "../src/classes/Box.ts", "../src/classes/BoundingBox.ts", "../src/classes/ObjectDetection.ts", "../src/classes/FaceDetection.ts", "../src/ops/iou.ts", "../src/ops/minBbox.ts", "../src/ops/nonMaxSuppression.ts", "../src/ops/normalize.ts", "../src/ops/padToSquare.ts", "../src/ops/shuffleArray.ts", "../src/ops/index.ts", "../src/classes/Rect.ts", "../src/classes/FaceLandmarks.ts", "../src/classes/FaceLandmarks5.ts", "../src/classes/FaceLandmarks68.ts", "../src/classes/FaceMatch.ts", "../src/classes/LabeledBox.ts", "../src/classes/LabeledFaceDescriptors.ts", "../src/classes/PredictedBox.ts", "../src/factories/WithFaceDetection.ts", "../src/env/createBrowserEnv.ts", "../src/env/createFileSystem.ts", "../src/env/createNodejsEnv.ts", "../src/env/isBrowser.ts", "../src/env/index.ts", "../src/dom/resolveInput.ts", "../src/dom/getContext2dOrThrow.ts", "../src/draw/DrawTextField.ts", "../src/draw/DrawBox.ts", "../src/draw/drawDetections.ts", "../src/dom/isMediaLoaded.ts", "../src/dom/awaitMediaLoaded.ts", "../src/dom/bufferToImage.ts", "../src/dom/getMediaDimensions.ts", "../src/dom/createCanvas.ts", "../src/dom/imageTensorToCanvas.ts", "../src/dom/isMediaElement.ts", "../src/dom/imageToSquare.ts", "../src/dom/NetInput.ts", "../src/dom/toNetInput.ts", "../src/dom/extractFaces.ts", "../src/dom/extractFaceTensors.ts", "../src/dom/fetchOrThrow.ts", "../src/dom/fetchImage.ts", "../src/dom/fetchJson.ts", "../src/dom/fetchNetWeights.ts", "../src/common/getModelUris.ts", "../src/dom/loadWeightMap.ts", "../src/dom/matchDimensions.ts", "../src/NeuralNetwork.ts", "../src/common/depthwiseSeparableConv.ts", "../src/faceFeatureExtractor/denseBlock.ts", "../src/common/convLayer.ts", "../src/common/disposeUnusedWeightTensors.ts", "../src/common/extractConvParamsFactory.ts", "../src/common/extractFCParamsFactory.ts", "../src/common/types.ts", "../src/common/extractSeparableConvParamsFactory.ts", "../src/common/extractWeightEntryFactory.ts", "../src/common/extractWeightsFactory.ts", "../src/faceFeatureExtractor/extractorsFactory.ts", "../src/faceFeatureExtractor/extractParams.ts", "../src/common/loadConvParamsFactory.ts", "../src/faceFeatureExtractor/loadParamsFactory.ts", "../src/faceFeatureExtractor/extractParamsFromWeightMap.ts", "../src/faceFeatureExtractor/FaceFeatureExtractor.ts", "../src/common/fullyConnectedLayer.ts", "../src/faceProcessor/extractParams.ts", "../src/faceProcessor/extractParamsFromWeightMap.ts", "../src/faceProcessor/util.ts", "../src/faceProcessor/FaceProcessor.ts", "../src/faceExpressionNet/FaceExpressions.ts", "../src/faceExpressionNet/FaceExpressionNet.ts", "../src/factories/WithFaceExpressions.ts", "../src/draw/drawFaceExpressions.ts", "../src/factories/WithFaceLandmarks.ts", "../src/draw/DrawFaceLandmarks.ts", "../src/xception/extractParams.ts", "../src/xception/extractParamsFromWeightMap.ts", "../src/xception/TinyXception.ts", "../src/ageGenderNet/extractParams.ts", "../src/ageGenderNet/extractParamsFromWeightMap.ts", "../src/ageGenderNet/types.ts", "../src/ageGenderNet/AgeGenderNet.ts", "../src/faceLandmarkNet/FaceLandmark68NetBase.ts", "../src/faceLandmarkNet/FaceLandmark68Net.ts", "../src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts", "../src/faceFeatureExtractor/extractParamsTiny.ts", "../src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", "../src/faceLandmarkNet/FaceLandmark68TinyNet.ts", "../src/faceLandmarkNet/index.ts", "../src/faceRecognitionNet/scaleLayer.ts", "../src/faceRecognitionNet/convLayer.ts", "../src/faceRecognitionNet/extractParams.ts", "../src/faceRecognitionNet/extractParamsFromWeightMap.ts", "../src/faceRecognitionNet/residualLayer.ts", "../src/faceRecognitionNet/FaceRecognitionNet.ts", "../src/faceRecognitionNet/index.ts", "../src/factories/WithFaceDescriptor.ts", "../src/factories/WithAge.ts", "../src/factories/WithGender.ts", "../src/ssdMobilenetv1/extractParams.ts", "../src/ssdMobilenetv1/extractParamsFromWeightMap.ts", "../src/ssdMobilenetv1/pointwiseConvLayer.ts", "../src/ssdMobilenetv1/mobileNetV1.ts", "../src/ssdMobilenetv1/nonMaxSuppression.ts", "../src/ssdMobilenetv1/outputLayer.ts", "../src/ssdMobilenetv1/boxPredictionLayer.ts", "../src/ssdMobilenetv1/predictionLayer.ts", "../src/ssdMobilenetv1/SsdMobilenetv1Options.ts", "../src/ssdMobilenetv1/SsdMobilenetv1.ts", "../src/ssdMobilenetv1/index.ts", "../src/tinyYolov2/const.ts", "../src/tinyYolov2/config.ts", "../src/tinyYolov2/leaky.ts", "../src/tinyYolov2/convWithBatchNorm.ts", "../src/tinyYolov2/depthwiseSeparableConv.ts", "../src/tinyYolov2/extractParams.ts", "../src/tinyYolov2/extractParamsFromWeightMap.ts", "../src/tinyYolov2/TinyYolov2Options.ts", "../src/tinyYolov2/TinyYolov2Base.ts", "../src/tinyYolov2/TinyYolov2.ts", "../src/tinyYolov2/index.ts", "../src/tinyFaceDetector/TinyFaceDetectorOptions.ts", "../src/globalApi/ComposableTask.ts", "../src/globalApi/extractFacesAndComputeResults.ts", "../src/tinyFaceDetector/const.ts", "../src/tinyFaceDetector/TinyFaceDetector.ts", "../src/globalApi/nets.ts", "../src/globalApi/PredictFaceExpressionsTask.ts", "../src/globalApi/PredictAgeAndGenderTask.ts", "../src/globalApi/ComputeFaceDescriptorsTasks.ts", "../src/globalApi/DetectFaceLandmarksTasks.ts", "../src/globalApi/DetectFacesTasks.ts", "../src/globalApi/detectFaces.ts", "../src/globalApi/allFaces.ts", "../src/euclideanDistance.ts", "../src/globalApi/FaceMatcher.ts", "../src/tinyFaceDetector/index.ts", "../src/resizeResults.ts"], - "sourcesContent": ["export function isNodejs(): boolean {\n return typeof global === 'object'\n && typeof require === 'function'\n && typeof module !== 'undefined'\n // issues with gatsby.js: module.exports is undefined\n // && !!module.exports\n && typeof process !== 'undefined' && !!process.version;\n}\n", "import * as tf from '../dist/tfjs.esm';\nimport * as draw from './draw/index';\nimport * as utils from './utils/index';\nimport * as pkg from '../package.json';\n\nexport { tf, draw, utils };\n\nexport * from './ageGenderNet/index';\nexport * from './classes/index';\nexport * from './dom/index';\nexport * from './env/index';\nexport * from './faceExpressionNet/index';\nexport * from './faceLandmarkNet/index';\nexport * from './faceRecognitionNet/index';\nexport * from './factories/index';\nexport * from './globalApi/index';\nexport * from './ops/index';\nexport * from './ssdMobilenetv1/index';\nexport * from './tinyFaceDetector/index';\nexport * from './tinyYolov2/index';\nexport * from './euclideanDistance';\nexport * from './NeuralNetwork';\nexport * from './resizeResults';\n\nconst node = (typeof process !== 'undefined');\nconst browser = (typeof navigator !== 'undefined') && (typeof navigator.userAgent !== 'undefined');\nexport const version = { faceapi: pkg.version as string, node, browser };\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(typeof _scriptDir !== \"undefined\" && _scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){global.performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_MEMORY/65536,\"maximum\":2147483648/65536,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"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\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmTable=Module[\"asm\"][\"F\"];wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var ASM_CONSTS={8991:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! killThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in killThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cancelThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cancelThread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cleanupThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cleanupThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=tb;var headPtr=tb+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),tb+100>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],setThreadStatus:function(){},runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+56>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();var tb=_pthread_self();Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){spawnThread(e.data)}else if(cmd===\"cleanupThread\"){cleanupThread(d[\"thread\"])}else if(cmd===\"killThread\"){killThread(d[\"thread\"])}else if(cmd===\"cancelThread\"){cancelThread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"exitProcess\"){try{exit(d[\"returnCode\"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){if(ENVIRONMENT_IS_NODE)return require(\"os\").cpus().length;return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>=2;while(ch=GROWABLE_HEAP_U8()[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?GROWABLE_HEAP_F64()[buf++>>1]:GROWABLE_HEAP_I32()[buf]);++buf}return readAsmConstArgsArray}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension(\"WEBGL_multi_draw\"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(ext.indexOf(\"lose_context\")<0&&ext.indexOf(\"debug\")<0){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];var contextAttributes={\"alpha\":!!GROWABLE_HEAP_I32()[a+(0>>2)],\"depth\":!!GROWABLE_HEAP_I32()[a+(4>>2)],\"stencil\":!!GROWABLE_HEAP_I32()[a+(8>>2)],\"antialias\":!!GROWABLE_HEAP_I32()[a+(12>>2)],\"premultipliedAlpha\":!!GROWABLE_HEAP_I32()[a+(16>>2)],\"preserveDrawingBuffer\":!!GROWABLE_HEAP_I32()[a+(20>>2)],\"powerPreference\":__emscripten_webgl_power_preferences[powerPreference],\"failIfMajorPerformanceCaveat\":!!GROWABLE_HEAP_I32()[a+(28>>2)],majorVersion:GROWABLE_HEAP_I32()[a+(32>>2)],minorVersion:GROWABLE_HEAP_I32()[a+(36>>2)],enableExtensionsByDefault:GROWABLE_HEAP_I32()[a+(40>>2)],explicitSwapControl:GROWABLE_HEAP_I32()[a+(44>>2)],proxyContextToMainThread:GROWABLE_HEAP_I32()[a+(48>>2)],renderViaOffscreenBackBuffer:GROWABLE_HEAP_I32()[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.threadExitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! spawnThread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(64>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(100>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(76>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(172>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{spawnThread(threadParams)}return 0}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"x\":__emscripten_notify_thread_queue,\"b\":_abort,\"y\":_emscripten_asm_const_int,\"j\":_emscripten_conditional_set_current_thread_status,\"c\":_emscripten_futex_wait,\"d\":_emscripten_futex_wake,\"f\":_emscripten_get_now,\"p\":_emscripten_memcpy_big,\"z\":_emscripten_num_logical_cores,\"u\":_emscripten_receive_on_main_thread_js,\"q\":_emscripten_resize_heap,\"v\":_emscripten_set_canvas_element_size,\"i\":_emscripten_set_current_thread_status,\"t\":_emscripten_set_thread_name,\"w\":_emscripten_webgl_create_context,\"m\":_fd_close,\"n\":_fd_seek,\"g\":_fd_write,\"o\":initPthreadsJS,\"a\":wasmMemory||Module[\"wasmMemory\"],\"k\":_pthread_cleanup_pop,\"l\":_pthread_cleanup_push,\"h\":_pthread_create,\"s\":_sysconf};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _pthread_self=Module[\"_pthread_self\"]=function(){return(_pthread_self=Module[\"_pthread_self\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=function(){return(__emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var __emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=function(){return(__emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var __emscripten_thread_init=Module[\"__emscripten_thread_init\"]=function(){return(__emscripten_thread_init=Module[\"__emscripten_thread_init\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=function(){return(_emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module[\"__emscripten_allow_main_runtime_queued_calls\"]=9880;var __emscripten_main_thread_futex=Module[\"__emscripten_main_thread_futex\"]=11368;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){readyPromiseResolve(Module);postMessage({\"cmd\":\"loaded\"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exitProcess\",\"returnCode\":status});throw new ExitStatus(status)}else{}}if(noExitRuntime){}else{PThread.terminateAllThreads();EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run();\n\n\n return WasmBackendModuleThreadedSimd.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"g\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"m\"];removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _abort(){abort()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_size(){return HEAPU8.length}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}var asmLibraryArg={\"a\":_abort,\"d\":_emscripten_memcpy_big,\"e\":_emscripten_resize_heap,\"f\":_fd_close,\"c\":_fd_seek,\"b\":_fd_write};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"h\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"i\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"j\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"k\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"l\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"n\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"o\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"p\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"q\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"r\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"s\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"t\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"u\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"v\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"w\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"x\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"y\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"z\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};Module[\"cwrap\"]=cwrap;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n return WasmBackendModule.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:Module[\"_pthread_self\"]()})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance;moduleLoaded()})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;Module[\"__emscripten_thread_init\"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){if(ex instanceof Module[\"ExitStatus\"]){if(Module[\"getNoExitRuntime\"]()){}else{Module[\"PThread\"].threadExit(ex.status)}}else{Module[\"PThread\"].threadExit(-2);throw ex}}}}else if(e.data.cmd===\"cancel\"){if(Module[\"_pthread_self\"]()){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(Module[\"_pthread_self\"]()){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, "export * from './drawContour';\nexport * from './drawDetections';\nexport * from './drawFaceExpressions';\nexport * from './DrawBox';\nexport * from './DrawFaceLandmarks';\nexport * from './DrawTextField';\n", "import { Point } from '../classes/index';\n\nexport function drawContour(\n ctx: CanvasRenderingContext2D,\n points: Point[],\n isClosed: boolean = false,\n) {\n ctx.beginPath();\n\n points.slice(1).forEach(({ x, y }, prevIdx) => {\n const from = points[prevIdx];\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(x, y);\n });\n\n if (isClosed) {\n const from = points[points.length - 1];\n const to = points[0];\n if (!from || !to) {\n return;\n }\n\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(to.x, to.y);\n }\n\n ctx.stroke();\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Point } from '../classes/index';\nimport { Dimensions, IDimensions } from '../classes/Dimensions';\n\nexport function isTensor(tensor: any, dim: number) {\n return tensor instanceof tf.Tensor && tensor.shape.length === dim;\n}\n\nexport function isTensor1D(tensor: any): tensor is tf.Tensor1D {\n return isTensor(tensor, 1);\n}\n\nexport function isTensor2D(tensor: any): tensor is tf.Tensor2D {\n return isTensor(tensor, 2);\n}\n\nexport function isTensor3D(tensor: any): tensor is tf.Tensor3D {\n return isTensor(tensor, 3);\n}\n\nexport function isTensor4D(tensor: any): tensor is tf.Tensor4D {\n return isTensor(tensor, 4);\n}\n\nexport function isFloat(num: number) {\n return num % 1 !== 0;\n}\n\nexport function isEven(num: number) {\n return num % 2 === 0;\n}\n\nexport function round(num: number, prec: number = 2) {\n const f = 10 ** prec;\n return Math.floor(num * f) / f;\n}\n\nexport function isDimensions(obj: any): boolean {\n return obj && obj.width && obj.height;\n}\n\nexport function computeReshapedDimensions({ width, height }: IDimensions, inputSize: number) {\n const scale = inputSize / Math.max(height, width);\n return new Dimensions(Math.round(width * scale), Math.round(height * scale));\n}\n\nexport function getCenterPoint(pts: Point[]): Point {\n return pts.reduce((sum, pt) => sum.add(pt), new Point(0, 0))\n .div(new Point(pts.length, pts.length));\n}\n\nexport function range(num: number, start: number, step: number): number[] {\n return Array(num).fill(0).map((_, i) => start + (i * step));\n}\n\nexport function isValidNumber(num: any) {\n return !!num && (num !== Infinity) && (num !== -Infinity) && !Number.isNaN(num) || num === 0;\n}\n\nexport function isValidProbablitiy(num: any) {\n return isValidNumber(num) && num >= 0 && num <= 1.0;\n}\n", "import { isValidNumber } from '../utils/index';\n\nexport interface IDimensions {\n width: number\n height: number\n}\n\nexport class Dimensions implements IDimensions {\n private _width: number\n\n private _height: number\n\n constructor(width: number, height: number) {\n if (!isValidNumber(width) || !isValidNumber(height)) {\n throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({ width, height })}`);\n }\n\n this._width = width;\n this._height = height;\n }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public reverse(): Dimensions {\n return new Dimensions(1 / this.width, 1 / this.height);\n }\n}\n", "export interface IPoint {\n x: number\n y: number\n}\n\nexport class Point implements IPoint {\n private _x: number\n\n private _y: number\n\n constructor(x: number, y: number) {\n this._x = x;\n this._y = y;\n }\n\n get x(): number { return this._x; }\n\n get y(): number { return this._y; }\n\n public add(pt: IPoint): Point {\n return new Point(this.x + pt.x, this.y + pt.y);\n }\n\n public sub(pt: IPoint): Point {\n return new Point(this.x - pt.x, this.y - pt.y);\n }\n\n public mul(pt: IPoint): Point {\n return new Point(this.x * pt.x, this.y * pt.y);\n }\n\n public div(pt: IPoint): Point {\n return new Point(this.x / pt.x, this.y / pt.y);\n }\n\n public abs(): Point {\n return new Point(Math.abs(this.x), Math.abs(this.y));\n }\n\n public magnitude(): number {\n return Math.sqrt((this.x ** 2) + (this.y ** 2));\n }\n\n public floor(): Point {\n return new Point(Math.floor(this.x), Math.floor(this.y));\n }\n}\n", "import { isDimensions, isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { IDimensions } from './Dimensions';\nimport { Point } from './Point';\nimport { IRect } from './Rect';\n\nexport class Box implements IBoundingBox, IRect {\n public static isRect(rect: any): boolean {\n return !!rect && [rect.x, rect.y, rect.width, rect.height].every(isValidNumber);\n }\n\n public static assertIsValidBox(box: any, callee: string, allowNegativeDimensions: boolean = false) {\n if (!Box.isRect(box)) {\n throw new Error(`${callee} - invalid box: ${JSON.stringify(box)}, expected object with properties x, y, width, height`);\n }\n\n if (!allowNegativeDimensions && (box.width < 0 || box.height < 0)) {\n throw new Error(`${callee} - width (${box.width}) and height (${box.height}) must be positive numbers`);\n }\n }\n\n private _x: number\n\n private _y: number\n\n private _width: number\n\n private _height: number\n\n constructor(_box: IBoundingBox | IRect, allowNegativeDimensions: boolean = true) {\n const box = (_box || {}) as any;\n\n const isBbox = [box.left, box.top, box.right, box.bottom].every(isValidNumber);\n const isRect = [box.x, box.y, box.width, box.height].every(isValidNumber);\n\n if (!isRect && !isBbox) {\n throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(box)}`);\n }\n\n const [x, y, width, height] = isRect\n ? [box.x, box.y, box.width, box.height]\n : [box.left, box.top, box.right - box.left, box.bottom - box.top];\n\n Box.assertIsValidBox({\n x, y, width, height,\n }, 'Box.constructor', allowNegativeDimensions);\n\n this._x = x;\n this._y = y;\n this._width = width;\n this._height = height;\n }\n\n public get x(): number { return this._x; }\n\n public get y(): number { return this._y; }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public get left(): number { return this.x; }\n\n public get top(): number { return this.y; }\n\n public get right(): number { return this.x + this.width; }\n\n public get bottom(): number { return this.y + this.height; }\n\n public get area(): number { return this.width * this.height; }\n\n public get topLeft(): Point { return new Point(this.left, this.top); }\n\n public get topRight(): Point { return new Point(this.right, this.top); }\n\n public get bottomLeft(): Point { return new Point(this.left, this.bottom); }\n\n public get bottomRight(): Point { return new Point(this.right, this.bottom); }\n\n public round(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.round(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public floor(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.floor(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public toSquare(): Box {\n let {\n x, y, width, height,\n } = this;\n const diff = Math.abs(width - height);\n if (width < height) {\n x -= (diff / 2);\n width += diff;\n }\n if (height < width) {\n y -= (diff / 2);\n height += diff;\n }\n\n return new Box({\n x, y, width, height,\n });\n }\n\n public rescale(s: IDimensions | number): Box {\n const scaleX = isDimensions(s) ? (s as IDimensions).width : s as number;\n const scaleY = isDimensions(s) ? (s as IDimensions).height : s as number;\n return new Box({\n x: this.x * scaleX,\n y: this.y * scaleY,\n width: this.width * scaleX,\n height: this.height * scaleY,\n });\n }\n\n public pad(padX: number, padY: number): Box {\n const [x, y, width, height] = [\n this.x - (padX / 2),\n this.y - (padY / 2),\n this.width + padX,\n this.height + padY,\n ];\n return new Box({\n x, y, width, height,\n });\n }\n\n public clipAtImageBorders(imgWidth: number, imgHeight: number): Box {\n const {\n x, y, right, bottom,\n } = this;\n const clippedX = Math.max(x, 0);\n const clippedY = Math.max(y, 0);\n\n const newWidth = right - clippedX;\n const newHeight = bottom - clippedY;\n const clippedWidth = Math.min(newWidth, imgWidth - clippedX);\n const clippedHeight = Math.min(newHeight, imgHeight - clippedY);\n\n return (new Box({\n x: clippedX, y: clippedY, width: clippedWidth, height: clippedHeight,\n })).floor();\n }\n\n public shift(sx: number, sy: number): Box {\n const { width, height } = this;\n const x = this.x + sx;\n const y = this.y + sy;\n\n return new Box({\n x, y, width, height,\n });\n }\n\n public padAtBorders(imageHeight: number, imageWidth: number) {\n const w = this.width + 1;\n const h = this.height + 1;\n\n const dx = 1;\n const dy = 1;\n let edx = w;\n let edy = h;\n\n let x = this.left;\n let y = this.top;\n let ex = this.right;\n let ey = this.bottom;\n\n if (ex > imageWidth) {\n edx = -ex + imageWidth + w;\n ex = imageWidth;\n }\n if (ey > imageHeight) {\n edy = -ey + imageHeight + h;\n ey = imageHeight;\n }\n if (x < 1) {\n edy = 2 - x;\n x = 1;\n }\n if (y < 1) {\n edy = 2 - y;\n y = 1;\n }\n\n return {\n dy, edy, dx, edx, y, ey, x, ex, w, h,\n };\n }\n\n public calibrate(region: Box) {\n return new Box({\n left: this.left + (region.left * this.width),\n top: this.top + (region.top * this.height),\n right: this.right + (region.right * this.width),\n bottom: this.bottom + (region.bottom * this.height),\n }).toSquare().round();\n }\n}\n", "import { Box } from './Box';\n\nexport interface IBoundingBox {\n left: number\n top: number\n right: number\n bottom: number\n}\n\nexport class BoundingBox extends Box implements IBoundingBox {\n constructor(left: number, top: number, right: number, bottom: number, allowNegativeDimensions: boolean = false) {\n super({\n left, top, right, bottom,\n }, allowNegativeDimensions);\n }\n}\n", "import { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { IRect, Rect } from './Rect';\n\nexport class ObjectDetection {\n private _score: number\n\n private _classScore: number\n\n private _className: string\n\n private _box: Rect\n\n private _imageDims: Dimensions\n\n constructor(\n score: number,\n classScore: number,\n className: string,\n relativeBox: IRect,\n imageDims: IDimensions,\n ) {\n this._imageDims = new Dimensions(imageDims.width, imageDims.height);\n this._score = score;\n this._classScore = classScore;\n this._className = className;\n this._box = new Box(relativeBox).rescale(this._imageDims);\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n\n public get className(): string { return this._className; }\n\n public get box(): Box { return this._box; }\n\n public get imageDims(): Dimensions { return this._imageDims; }\n\n public get imageWidth(): number { return this.imageDims.width; }\n\n public get imageHeight(): number { return this.imageDims.height; }\n\n public get relativeBox(): Box { return new Box(this._box).rescale(this.imageDims.reverse()); }\n\n public forSize(width: number, height: number): ObjectDetection {\n return new ObjectDetection(\n this.score,\n this.classScore,\n this.className,\n this.relativeBox,\n { width, height },\n );\n }\n}\n", "import { Box } from './Box';\nimport { IDimensions } from './Dimensions';\nimport { ObjectDetection } from './ObjectDetection';\nimport { Rect } from './Rect';\n\nexport interface IFaceDetecion {\n score: number\n box: Box\n}\n\nexport class FaceDetection extends ObjectDetection implements IFaceDetecion {\n constructor(\n score: number,\n relativeBox: Rect,\n imageDims: IDimensions,\n ) {\n super(score, score, '', relativeBox, imageDims);\n }\n\n public forSize(width: number, height: number): FaceDetection {\n const { score, relativeBox, imageDims } = super.forSize(width, height);\n return new FaceDetection(score, relativeBox, imageDims);\n }\n}\n", "import { Box } from '../classes/Box';\n\nexport function iou(box1: Box, box2: Box, isIOU: boolean = true) {\n const width = Math.max(0.0, Math.min(box1.right, box2.right) - Math.max(box1.left, box2.left));\n const height = Math.max(0.0, Math.min(box1.bottom, box2.bottom) - Math.max(box1.top, box2.top));\n const interSection = width * height;\n\n return isIOU\n ? interSection / (box1.area + box2.area - interSection)\n : interSection / Math.min(box1.area, box2.area);\n}\n", "import { BoundingBox, IPoint } from '../classes/index';\n\nexport function minBbox(pts: IPoint[]): BoundingBox {\n const xs = pts.map((pt) => pt.x);\n const ys = pts.map((pt) => pt.y);\n const minX = xs.reduce((min, x) => (x < min ? x : min), Infinity);\n const minY = ys.reduce((min, y) => (y < min ? y : min), Infinity);\n const maxX = xs.reduce((max, x) => (max < x ? x : max), 0);\n const maxY = ys.reduce((max, y) => (max < y ? y : max), 0);\n\n return new BoundingBox(minX, minY, maxX, maxY);\n}\n", "import { Box } from '../classes/Box';\nimport { iou } from './iou';\n\nexport function nonMaxSuppression(\n boxes: Box[],\n scores: number[],\n iouThreshold: number,\n isIOU: boolean = true,\n): number[] {\n let indicesSortedByScore = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .sort((c1, c2) => c1.score - c2.score)\n .map((c) => c.boxIndex);\n\n const pick: number[] = [];\n\n while (indicesSortedByScore.length > 0) {\n const curr = indicesSortedByScore.pop() as number;\n pick.push(curr);\n\n const indices = indicesSortedByScore;\n\n const outputs: number[] = [];\n for (let i = 0; i < indices.length; i++) {\n const idx = indices[i];\n\n const currBox = boxes[curr];\n const idxBox = boxes[idx];\n\n outputs.push(iou(currBox, idxBox, isIOU));\n }\n\n indicesSortedByScore = indicesSortedByScore.filter(\n (_, j) => outputs[j] <= iouThreshold,\n );\n }\n\n return pick;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function normalize(x: tf.Tensor4D, meanRgb: number[]): tf.Tensor4D {\n return tf.tidy(() => {\n const [r, g, b] = meanRgb;\n const avg_r = tf.fill([...x.shape.slice(0, 3), 1], r, 'float32');\n const avg_g = tf.fill([...x.shape.slice(0, 3), 1], g, 'float32');\n const avg_b = tf.fill([...x.shape.slice(0, 3), 1], b, 'float32');\n const avg_rgb = tf.concat([avg_r, avg_g, avg_b], 3);\n\n return tf.sub(x, avg_rgb);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n/**\n * Pads the smaller dimension of an image tensor with zeros, such that width === height.\n *\n * @param imgTensor The image tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The padded tensor with width === height.\n */\nexport function padToSquare(\n imgTensor: tf.Tensor4D,\n isCenterImage: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const [height, width] = imgTensor.shape.slice(1);\n if (height === width) {\n return imgTensor;\n }\n\n const dimDiff = Math.abs(height - width);\n const paddingAmount = Math.round(dimDiff * (isCenterImage ? 0.5 : 1));\n const paddingAxis = height > width ? 2 : 1;\n\n const createPaddingTensor = (paddingAmountLocal: number): tf.Tensor => {\n const paddingTensorShape = imgTensor.shape.slice();\n paddingTensorShape[paddingAxis] = paddingAmountLocal;\n return tf.fill(paddingTensorShape, 0, 'float32');\n };\n\n const paddingTensorAppend = createPaddingTensor(paddingAmount);\n const remainingPaddingAmount = dimDiff - (paddingTensorAppend.shape[paddingAxis] as number);\n\n const paddingTensorPrepend = isCenterImage && remainingPaddingAmount\n ? createPaddingTensor(remainingPaddingAmount)\n : null;\n\n const tensorsToStack = [\n paddingTensorPrepend,\n imgTensor,\n paddingTensorAppend,\n ]\n .filter((t) => !!t)\n // .map((t: tf.Tensor) => t.toFloat()) as tf.Tensor4D[]\n .map((t: tf.Tensor) => tf.cast(t, 'float32')) as tf.Tensor4D[];\n return tf.concat(tensorsToStack, paddingAxis);\n });\n}\n", "export function shuffleArray(inputArray: any[]) {\n const array = inputArray.slice();\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const x = array[i];\n array[i] = array[j];\n array[j] = x;\n }\n return array;\n}\n", "export * from './iou';\nexport * from './minBbox';\nexport * from './nonMaxSuppression';\nexport * from './normalize';\nexport * from './padToSquare';\nexport * from './shuffleArray';\n\nexport function sigmoid(x: number) {\n return 1 / (1 + Math.exp(-x));\n}\n\nexport function inverseSigmoid(x: number) {\n return Math.log(x / (1 - x));\n}\n", "import { Box } from './Box';\n\nexport interface IRect {\n x: number\n y: number\n width: number\n height: number\n}\n\nexport class Rect extends Box implements IRect {\n constructor(x: number, y: number, width: number, height: number, allowNegativeDimensions: boolean = false) {\n super({\n x, y, width, height,\n }, allowNegativeDimensions);\n }\n}\n", "import { minBbox } from '../ops/index';\nimport { getCenterPoint } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { FaceDetection } from './FaceDetection';\nimport { Point } from './Point';\nimport { IRect, Rect } from './Rect';\n\n// face alignment constants\nconst relX = 0.5;\nconst relY = 0.43;\nconst relScale = 0.45;\n\nexport interface IFaceLandmarks {\n positions: Point[]\n shift: Point\n}\n\nexport class FaceLandmarks implements IFaceLandmarks {\n protected _shift: Point\n\n protected _positions: Point[]\n\n protected _imgDims: Dimensions\n\n constructor(\n relativeFaceLandmarkPositions: Point[],\n imgDims: IDimensions,\n shift: Point = new Point(0, 0),\n ) {\n const { width, height } = imgDims;\n this._imgDims = new Dimensions(width, height);\n this._shift = shift;\n this._positions = relativeFaceLandmarkPositions.map(\n (pt) => pt.mul(new Point(width, height)).add(shift),\n );\n }\n\n public get shift(): Point { return new Point(this._shift.x, this._shift.y); }\n\n public get imageWidth(): number { return this._imgDims.width; }\n\n public get imageHeight(): number { return this._imgDims.height; }\n\n public get positions(): Point[] { return this._positions; }\n\n public get relativePositions(): Point[] {\n return this._positions.map(\n (pt) => pt.sub(this._shift).div(new Point(this.imageWidth, this.imageHeight)),\n );\n }\n\n public forSize(width: number, height: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n { width, height },\n );\n }\n\n public shiftBy(x: number, y: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n this._imgDims,\n new Point(x, y),\n );\n }\n\n public shiftByPoint(pt: Point): T {\n return this.shiftBy(pt.x, pt.y);\n }\n\n /**\n * Aligns the face landmarks after face detection from the relative positions of the faces\n * bounding box, or it's current shift. This function should be used to align the face images\n * after face detection has been performed, before they are passed to the face recognition net.\n * This will make the computed face descriptor more accurate.\n *\n * @param detection (optional) The bounding box of the face or the face detection result. If\n * no argument was passed the position of the face landmarks are assumed to be relative to\n * it's current shift.\n * @returns The bounding box of the aligned face.\n */\n public align(\n detection?: FaceDetection | IRect | IBoundingBox | null,\n options: { useDlibAlignment?: boolean, minBoxPadding?: number } = { },\n ): Box {\n if (detection) {\n const box = detection instanceof FaceDetection\n ? detection.box.floor()\n : new Box(detection);\n\n return this.shiftBy(box.x, box.y).align(null, options);\n }\n\n const { useDlibAlignment, minBoxPadding } = { useDlibAlignment: false, minBoxPadding: 0.2, ...options };\n\n if (useDlibAlignment) {\n return this.alignDlib();\n }\n\n return this.alignMinBbox(minBoxPadding);\n }\n\n private alignDlib(): Box {\n const centers = this.getRefPointsForAlignment();\n\n const [leftEyeCenter, rightEyeCenter, mouthCenter] = centers;\n const distToMouth = (pt: Point) => mouthCenter.sub(pt).magnitude();\n const eyeToMouthDist = (distToMouth(leftEyeCenter) + distToMouth(rightEyeCenter)) / 2;\n\n const size = Math.floor(eyeToMouthDist / relScale);\n\n const refPoint = getCenterPoint(centers);\n // TODO: pad in case rectangle is out of image bounds\n const x = Math.floor(Math.max(0, refPoint.x - (relX * size)));\n const y = Math.floor(Math.max(0, refPoint.y - (relY * size)));\n\n return new Rect(x, y, Math.min(size, this.imageWidth + x), Math.min(size, this.imageHeight + y));\n }\n\n private alignMinBbox(padding: number): Box {\n const box = minBbox(this.positions);\n return box.pad(box.width * padding, box.height * padding);\n }\n\n protected getRefPointsForAlignment(): Point[] {\n throw new Error('getRefPointsForAlignment not implemented by base class');\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks5 extends FaceLandmarks {\n protected getRefPointsForAlignment(): Point[] {\n const pts = this.positions;\n return [\n pts[0],\n pts[1],\n getCenterPoint([pts[3], pts[4]]),\n ];\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks68 extends FaceLandmarks {\n public getJawOutline(): Point[] {\n return this.positions.slice(0, 17);\n }\n\n public getLeftEyeBrow(): Point[] {\n return this.positions.slice(17, 22);\n }\n\n public getRightEyeBrow(): Point[] {\n return this.positions.slice(22, 27);\n }\n\n public getNose(): Point[] {\n return this.positions.slice(27, 36);\n }\n\n public getLeftEye(): Point[] {\n return this.positions.slice(36, 42);\n }\n\n public getRightEye(): Point[] {\n return this.positions.slice(42, 48);\n }\n\n public getMouth(): Point[] {\n return this.positions.slice(48, 68);\n }\n\n protected getRefPointsForAlignment(): Point[] {\n return [\n this.getLeftEye(),\n this.getRightEye(),\n this.getMouth(),\n ].map(getCenterPoint);\n }\n}\n", "import { round } from '../utils/index';\n\nexport interface IFaceMatch {\n label: string\n distance: number\n}\n\nexport class FaceMatch implements IFaceMatch {\n private _label: string\n\n private _distance: number\n\n constructor(label: string, distance: number) {\n this._label = label;\n this._distance = distance;\n }\n\n public get label(): string { return this._label; }\n\n public get distance(): number { return this._distance; }\n\n public toString(withDistance: boolean = true): string {\n return `${this.label}${withDistance ? ` (${round(this.distance)})` : ''}`;\n }\n}\n", "import { isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { IRect } from './Rect';\n\nexport class LabeledBox extends Box {\n public static assertIsValidLabeledBox(box: any, callee: string) {\n Box.assertIsValidBox(box, callee);\n\n if (!isValidNumber(box.label)) {\n throw new Error(`${callee} - expected property label (${box.label}) to be a number`);\n }\n }\n\n private _label: number\n\n constructor(box: IBoundingBox | IRect | any, label: number) {\n super(box);\n this._label = label;\n }\n\n public get label(): number { return this._label; }\n}\n", "export class LabeledFaceDescriptors {\n private _label: string\n\n private _descriptors: Float32Array[]\n\n constructor(label: string, descriptors: Float32Array[]) {\n if (!(typeof label === 'string')) {\n throw new Error('LabeledFaceDescriptors - constructor expected label to be a string');\n }\n\n if (!Array.isArray(descriptors) || descriptors.some((desc) => !(desc instanceof Float32Array))) {\n throw new Error('LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array');\n }\n\n this._label = label;\n this._descriptors = descriptors;\n }\n\n public get label(): string { return this._label; }\n\n public get descriptors(): Float32Array[] { return this._descriptors; }\n\n public toJSON(): any {\n return {\n label: this.label,\n descriptors: this.descriptors.map((d) => Array.from(d)),\n };\n }\n\n public static fromJSON(json: any): LabeledFaceDescriptors {\n const descriptors = json.descriptors.map((d: any) => new Float32Array(d));\n return new LabeledFaceDescriptors(json.label, descriptors);\n }\n}\n", "import { isValidProbablitiy } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { LabeledBox } from './LabeledBox';\nimport { IRect } from './Rect';\n\nexport class PredictedBox extends LabeledBox {\n public static assertIsValidPredictedBox(box: any, callee: string) {\n LabeledBox.assertIsValidLabeledBox(box, callee);\n\n if (\n !isValidProbablitiy(box.score)\n || !isValidProbablitiy(box.classScore)\n ) {\n throw new Error(`${callee} - expected properties score (${box.score}) and (${box.classScore}) to be a number between [0, 1]`);\n }\n }\n\n private _score: number\n\n private _classScore: number\n\n constructor(box: IBoundingBox | IRect | any, label: number, score: number, classScore: number) {\n super(box, label);\n this._score = score;\n this._classScore = classScore;\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\n\nexport type WithFaceDetection = TSource & {\n detection: FaceDetection\n}\n\nexport function isWithFaceDetection(obj: any): obj is WithFaceDetection<{}> {\n return obj.detection instanceof FaceDetection;\n}\n\nexport function extendWithFaceDetection<\n TSource\n>(\n sourceObj: TSource,\n detection: FaceDetection,\n): WithFaceDetection {\n const extension = { detection };\n return { ...sourceObj, ...extension };\n}\n", "import { Environment } from './types';\n\nexport function createBrowserEnv(): Environment {\n const fetch = window.fetch;\n if (!fetch) throw new Error('fetch - missing fetch implementation for browser environment');\n\n const readFile = () => {\n throw new Error('readFile - filesystem not available for browser environment');\n };\n\n return {\n Canvas: HTMLCanvasElement,\n CanvasRenderingContext2D,\n Image: HTMLImageElement,\n ImageData,\n Video: HTMLVideoElement,\n createCanvasElement: () => document.createElement('canvas'),\n createImageElement: () => document.createElement('img'),\n fetch,\n readFile,\n };\n}\n", "import { FileSystem } from './types';\n\nexport function createFileSystem(fs?: any): FileSystem {\n let requireFsError = '';\n\n if (!fs) {\n try {\n // eslint-disable-next-line global-require\n fs = require('fs');\n } catch (err) {\n requireFsError = err.toString();\n }\n }\n\n const readFile = fs\n ? (filePath: string) => new Promise((resolve, reject) => {\n fs.readFile(filePath, (err: any, buffer: Buffer) => (err ? reject(err) : resolve(buffer)));\n })\n : () => {\n throw new Error(`readFile - failed to require fs in nodejs environment with error: ${requireFsError}`);\n };\n\n return {\n readFile,\n };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { createFileSystem } from './createFileSystem';\nimport { Environment } from './types';\n\nexport function createNodejsEnv(): Environment {\n // eslint-disable-next-line dot-notation\n const Canvas = global['Canvas'] || global.HTMLCanvasElement;\n const Image = global.Image || global.HTMLImageElement;\n\n const createCanvasElement = () => {\n if (Canvas) return new Canvas();\n throw new Error('createCanvasElement - missing Canvas implementation for nodejs environment');\n };\n\n const createImageElement = () => {\n if (Image) return new Image();\n throw new Error('createImageElement - missing Image implementation for nodejs environment');\n };\n\n const fetch = global.fetch;\n // if (!fetch) throw new Error('fetch - missing fetch implementation for nodejs environment');\n\n const fileSystem = createFileSystem();\n\n return {\n Canvas: Canvas || class {},\n CanvasRenderingContext2D: global.CanvasRenderingContext2D || class {},\n Image: Image || class {},\n ImageData: global.ImageData || class {},\n Video: global.HTMLVideoElement || class {},\n createCanvasElement,\n createImageElement,\n fetch,\n ...fileSystem,\n };\n}\n", "export function isBrowser(): boolean {\n return typeof window === 'object'\n && typeof document !== 'undefined'\n && typeof HTMLImageElement !== 'undefined'\n && typeof HTMLCanvasElement !== 'undefined'\n && typeof HTMLVideoElement !== 'undefined'\n && typeof ImageData !== 'undefined'\n && typeof CanvasRenderingContext2D !== 'undefined';\n}\n", "import { createBrowserEnv } from './createBrowserEnv';\nimport { createFileSystem } from './createFileSystem';\nimport { createNodejsEnv } from './createNodejsEnv';\nimport { isBrowser } from './isBrowser';\nimport { isNodejs } from './isNodejs';\nimport { Environment } from './types';\n\nlet environment: Environment | null;\n\nfunction getEnv(): Environment {\n if (!environment) {\n throw new Error('getEnv - environment is not defined, check isNodejs() and isBrowser()');\n }\n return environment;\n}\n\nfunction setEnv(env: Environment) {\n environment = env;\n}\n\nfunction initialize() {\n // check for isBrowser() first to prevent electron renderer process\n // to be initialized with wrong environment due to isNodejs() returning true\n if (isBrowser()) return setEnv(createBrowserEnv());\n if (isNodejs()) return setEnv(createNodejsEnv());\n return null;\n}\n\nfunction monkeyPatch(env: Partial) {\n if (!environment) {\n initialize();\n }\n\n if (!environment) {\n throw new Error('monkeyPatch - environment is not defined, check isNodejs() and isBrowser()');\n }\n\n const { Canvas = environment.Canvas, Image = environment.Image } = env;\n environment.Canvas = Canvas;\n environment.Image = Image;\n environment.createCanvasElement = env.createCanvasElement || (() => new Canvas());\n environment.createImageElement = env.createImageElement || (() => new Image());\n\n environment.ImageData = env.ImageData || environment.ImageData;\n environment.Video = env.Video || environment.Video;\n environment.fetch = env.fetch || environment.fetch;\n environment.readFile = env.readFile || environment.readFile;\n}\n\nexport const env = {\n getEnv,\n setEnv,\n initialize,\n createBrowserEnv,\n createFileSystem,\n createNodejsEnv,\n monkeyPatch,\n isBrowser,\n isNodejs,\n};\n\ninitialize();\n\nexport * from './types';\n", "import { env } from '../env/index';\n\nexport function resolveInput(arg: string | any) {\n if (!env.isNodejs() && typeof arg === 'string') {\n return document.getElementById(arg);\n }\n return arg;\n}\n", "import { env } from '../env/index';\nimport { resolveInput } from './resolveInput';\n\nexport function getContext2dOrThrow(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D): CanvasRenderingContext2D {\n const { Canvas, CanvasRenderingContext2D } = env.getEnv();\n\n if (canvasArg instanceof CanvasRenderingContext2D) {\n return canvasArg;\n }\n\n const canvas = resolveInput(canvasArg);\n\n if (!(canvas instanceof Canvas)) {\n throw new Error('resolveContext2d - expected canvas to be of instance of Canvas');\n }\n\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n throw new Error('resolveContext2d - canvas 2d context is null');\n }\n\n return ctx;\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IDimensions, IPoint } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { resolveInput } from '../dom/resolveInput';\n\n// eslint-disable-next-line no-shadow\nexport enum AnchorPosition {\n // eslint-disable-next-line no-unused-vars\n TOP_LEFT = 'TOP_LEFT',\n // eslint-disable-next-line no-unused-vars\n TOP_RIGHT = 'TOP_RIGHT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_LEFT = 'BOTTOM_LEFT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_RIGHT = 'BOTTOM_RIGHT'\n}\n\nexport interface IDrawTextFieldOptions {\n anchorPosition?: AnchorPosition\n backgroundColor?: string\n fontColor?: string\n fontSize?: number\n fontStyle?: string\n padding?: number\n}\n\nexport class DrawTextFieldOptions implements IDrawTextFieldOptions {\n public anchorPosition: AnchorPosition\n\n public backgroundColor: string\n\n public fontColor: string\n\n public fontSize: number\n\n public fontStyle: string\n\n public padding: number\n\n constructor(options: IDrawTextFieldOptions = {}) {\n const {\n anchorPosition, backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = options;\n this.anchorPosition = anchorPosition || AnchorPosition.TOP_LEFT;\n this.backgroundColor = backgroundColor || 'rgba(0, 0, 0, 0.5)';\n this.fontColor = fontColor || 'rgba(255, 255, 255, 1)';\n this.fontSize = fontSize || 14;\n this.fontStyle = fontStyle || 'Georgia';\n this.padding = padding || 4;\n }\n}\n\nexport class DrawTextField {\n public text: string[]\n\n public anchor : IPoint\n\n public options: DrawTextFieldOptions\n\n constructor(\n text: string | string[] | DrawTextField,\n anchor: IPoint,\n options: IDrawTextFieldOptions = {},\n ) {\n // eslint-disable-next-line no-nested-ternary\n this.text = typeof text === 'string'\n ? [text]\n : (text instanceof DrawTextField ? text.text : text);\n this.anchor = anchor;\n this.options = new DrawTextFieldOptions(options);\n }\n\n measureWidth(ctx: CanvasRenderingContext2D): number {\n const { padding } = this.options;\n return this.text.map((l) => ctx.measureText(l).width).reduce((w0, w1) => (w0 < w1 ? w1 : w0), 0) + (2 * padding);\n }\n\n measureHeight(): number {\n const { fontSize, padding } = this.options;\n return this.text.length * fontSize + (2 * padding);\n }\n\n getUpperLeft(ctx: CanvasRenderingContext2D, canvasDims?: IDimensions): IPoint {\n const { anchorPosition } = this.options;\n const isShiftLeft = anchorPosition === AnchorPosition.BOTTOM_RIGHT || anchorPosition === AnchorPosition.TOP_RIGHT;\n const isShiftTop = anchorPosition === AnchorPosition.BOTTOM_LEFT || anchorPosition === AnchorPosition.BOTTOM_RIGHT;\n\n const textFieldWidth = this.measureWidth(ctx);\n const textFieldHeight = this.measureHeight();\n const x = (isShiftLeft ? this.anchor.x - textFieldWidth : this.anchor.x);\n const y = isShiftTop ? this.anchor.y - textFieldHeight : this.anchor.y;\n\n // adjust anchor if text box exceeds canvas borders\n if (canvasDims) {\n const { width, height } = canvasDims;\n const newX = Math.max(Math.min(x, width - textFieldWidth), 0);\n const newY = Math.max(Math.min(y, height - textFieldHeight), 0);\n return { x: newX, y: newY };\n }\n return { x, y };\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const canvas = resolveInput(canvasArg);\n const ctx = getContext2dOrThrow(canvas);\n\n const {\n backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = this.options;\n\n ctx.font = `${fontSize}px ${fontStyle}`;\n const maxTextWidth = this.measureWidth(ctx);\n const textHeight = this.measureHeight();\n\n ctx.fillStyle = backgroundColor;\n const upperLeft = this.getUpperLeft(ctx, canvas);\n ctx.fillRect(upperLeft.x, upperLeft.y, maxTextWidth, textHeight);\n\n ctx.fillStyle = fontColor;\n this.text.forEach((textLine, i) => {\n const x = padding + upperLeft.x;\n const y = padding + upperLeft.y + ((i + 1) * fontSize);\n ctx.fillText(textLine, x, y);\n });\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { Box, IBoundingBox, IRect } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport {\n AnchorPosition, DrawTextField, DrawTextFieldOptions, IDrawTextFieldOptions,\n} from './DrawTextField';\n\nexport interface IDrawBoxOptions {\n boxColor?: string\n lineWidth?: number\n drawLabelOptions?: IDrawTextFieldOptions\n label?: string\n}\n\nexport class DrawBoxOptions {\n public boxColor: string\n\n public lineWidth: number\n\n public drawLabelOptions: DrawTextFieldOptions\n\n public label?: string\n\n constructor(options: IDrawBoxOptions = {}) {\n const {\n boxColor, lineWidth, label, drawLabelOptions,\n } = options;\n this.boxColor = boxColor || 'rgba(0, 0, 255, 1)';\n this.lineWidth = lineWidth || 2;\n this.label = label;\n\n const defaultDrawLabelOptions = {\n anchorPosition: AnchorPosition.BOTTOM_LEFT,\n backgroundColor: this.boxColor,\n };\n this.drawLabelOptions = new DrawTextFieldOptions({ ...defaultDrawLabelOptions, ...drawLabelOptions });\n }\n}\n\nexport class DrawBox {\n public box: Box\n\n public options: DrawBoxOptions\n\n constructor(\n box: IBoundingBox | IRect,\n options: IDrawBoxOptions = {},\n ) {\n this.box = new Box(box);\n this.options = new DrawBoxOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const { boxColor, lineWidth } = this.options;\n\n const {\n x, y, width, height,\n } = this.box;\n ctx.strokeStyle = boxColor;\n ctx.lineWidth = lineWidth;\n ctx.strokeRect(x, y, width, height);\n\n const { label } = this.options;\n if (label) {\n new DrawTextField([label], { x: x - (lineWidth / 2), y }, this.options.drawLabelOptions).draw(canvasArg);\n }\n }\n}\n", "import { Box, IBoundingBox, IRect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { round } from '../utils/index';\nimport { DrawBox } from './DrawBox';\n\nexport type TDrawDetectionsInput = IRect | IBoundingBox | FaceDetection | WithFaceDetection<{}>\n\nexport function drawDetections(\n canvasArg: string | HTMLCanvasElement,\n detections: TDrawDetectionsInput | Array,\n) {\n const detectionsArray = Array.isArray(detections) ? detections : [detections];\n\n detectionsArray.forEach((det) => {\n // eslint-disable-next-line no-nested-ternary\n const score = det instanceof FaceDetection\n ? det.score\n : (isWithFaceDetection(det) ? det.detection.score : undefined);\n\n // eslint-disable-next-line no-nested-ternary\n const box = det instanceof FaceDetection\n ? det.box\n : (isWithFaceDetection(det) ? det.detection.box : new Box(det));\n\n const label = score ? `${round(score)}` : undefined;\n new DrawBox(box, { label }).draw(canvasArg);\n });\n}\n", "import { env } from '../env/index';\n\nexport function isMediaLoaded(media: HTMLImageElement | HTMLVideoElement) : boolean {\n const { Image, Video } = env.getEnv();\n\n return (media instanceof Image && media.complete)\n || (media instanceof Video && media.readyState >= 3);\n}\n", "import { env } from '../env/index';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function awaitMediaLoaded(media: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement) {\n // eslint-disable-next-line consistent-return\n return new Promise((resolve, reject) => {\n if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) {\n return resolve(null);\n }\n\n function onError(e: Event) {\n if (!e.currentTarget) return;\n // eslint-disable-next-line no-use-before-define\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n reject(e);\n }\n\n function onLoad(e: Event) {\n if (!e.currentTarget) return;\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n resolve(e);\n }\n\n media.addEventListener('load', onLoad);\n media.addEventListener('error', onError);\n });\n}\n", "import { env } from '../env/index';\n\nexport function bufferToImage(buf: Blob): Promise {\n return new Promise((resolve, reject) => {\n if (!(buf instanceof Blob)) reject(new Error('bufferToImage - expected buf to be of type: Blob'));\n const reader = new FileReader();\n reader.onload = () => {\n if (typeof reader.result !== 'string') reject(new Error('bufferToImage - expected reader.result to be a string, in onload'));\n const img = env.getEnv().createImageElement();\n img.onload = () => resolve(img);\n img.onerror = reject;\n img.src = reader.result as string;\n };\n reader.onerror = reject;\n reader.readAsDataURL(buf);\n });\n}\n", "import { Dimensions, IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\n\nexport function getMediaDimensions(input: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | IDimensions): Dimensions {\n const { Image, Video } = env.getEnv();\n\n if (input instanceof Image) {\n return new Dimensions(input.naturalWidth, input.naturalHeight);\n }\n if (input instanceof Video) {\n return new Dimensions(input.videoWidth, input.videoHeight);\n }\n return new Dimensions(input.width, input.height);\n}\n", "import { IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function createCanvas({ width, height }: IDimensions): HTMLCanvasElement {\n const { createCanvasElement } = env.getEnv();\n const canvas = createCanvasElement();\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nexport function createCanvasFromMedia(media: HTMLImageElement | HTMLVideoElement | ImageData, dims?: IDimensions): HTMLCanvasElement {\n const { ImageData } = env.getEnv();\n\n if (!(media instanceof ImageData) && !isMediaLoaded(media)) {\n throw new Error('createCanvasFromMedia - media has not finished loading yet');\n }\n\n const { width, height } = dims || getMediaDimensions(media);\n const canvas = createCanvas({ width, height });\n\n if (media instanceof ImageData) {\n getContext2dOrThrow(canvas).putImageData(media, 0, 0);\n } else {\n getContext2dOrThrow(canvas).drawImage(media, 0, 0, width, height);\n }\n return canvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { env } from '../env/index';\nimport { isTensor4D } from '../utils/index';\n\nexport async function imageTensorToCanvas(\n imgTensor: tf.Tensor,\n canvas?: HTMLCanvasElement,\n): Promise {\n const targetCanvas = canvas || env.getEnv().createCanvasElement();\n\n const [height, width, numChannels] = imgTensor.shape.slice(isTensor4D(imgTensor) ? 1 : 0);\n const imgTensor3D = tf.tidy(() => imgTensor.as3D(height, width, numChannels).toInt());\n await tf.browser.toPixels(imgTensor3D, targetCanvas);\n\n imgTensor3D.dispose();\n\n return targetCanvas;\n}\n", "import { env } from '../env/index';\n\nexport function isMediaElement(input: any) {\n const { Image, Canvas, Video } = env.getEnv();\n\n return input instanceof Image\n || input instanceof Canvas\n || input instanceof Video;\n}\n", "import { env } from '../env/index';\nimport { createCanvas, createCanvasFromMedia } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function imageToSquare(input: HTMLImageElement | HTMLCanvasElement, inputSize: number, centerImage: boolean = false) {\n const { Image, Canvas } = env.getEnv();\n\n if (!(input instanceof Image || input instanceof Canvas)) {\n throw new Error('imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement');\n }\n\n if (inputSize <= 0) return createCanvas({ width: 1, height: 1 });\n const dims = getMediaDimensions(input);\n const scale = inputSize / Math.max(dims.height, dims.width);\n const width = scale * dims.width;\n const height = scale * dims.height;\n\n const targetCanvas = createCanvas({ width: inputSize, height: inputSize });\n const inputCanvas = input instanceof Canvas ? input : createCanvasFromMedia(input);\n\n const offset = Math.abs(width - height) / 2;\n const dx = centerImage && width < height ? offset : 0;\n const dy = centerImage && height < width ? offset : 0;\n if (inputCanvas.width > 0 && inputCanvas.height > 0) getContext2dOrThrow(targetCanvas).drawImage(inputCanvas, dx, dy, width, height);\n\n return targetCanvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Dimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { padToSquare } from '../ops/padToSquare';\nimport {\n computeReshapedDimensions, isTensor3D, isTensor4D, range,\n} from '../utils/index';\nimport { createCanvasFromMedia } from './createCanvas';\nimport { imageToSquare } from './imageToSquare';\nimport { TResolvedNetInput } from './types';\n\nexport class NetInput {\n private _imageTensors: Array = []\n\n private _canvases: HTMLCanvasElement[] = []\n\n private _batchSize: number\n\n private _treatAsBatchInput: boolean = false\n\n private _inputDimensions: number[][] = []\n\n private _inputSize: number\n\n constructor(\n inputs: Array,\n treatAsBatchInput: boolean = false,\n ) {\n if (!Array.isArray(inputs)) {\n throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${inputs}`);\n }\n\n this._treatAsBatchInput = treatAsBatchInput;\n this._batchSize = inputs.length;\n\n inputs.forEach((input, idx) => {\n if (isTensor3D(input)) {\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = input.shape;\n return;\n }\n\n if (isTensor4D(input)) {\n const batchSize = (input as any).shape[0];\n if (batchSize !== 1) {\n throw new Error(`NetInput - tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = (input as any).shape.slice(1);\n return;\n }\n\n const canvas = (input as any) instanceof env.getEnv().Canvas ? input : createCanvasFromMedia(input);\n this._canvases[idx] = canvas;\n this._inputDimensions[idx] = [canvas.height, canvas.width, 3];\n });\n }\n\n public get imageTensors(): Array {\n return this._imageTensors;\n }\n\n public get canvases(): HTMLCanvasElement[] {\n return this._canvases;\n }\n\n public get isBatchInput(): boolean {\n return this.batchSize > 1 || this._treatAsBatchInput;\n }\n\n public get batchSize(): number {\n return this._batchSize;\n }\n\n public get inputDimensions(): number[][] {\n return this._inputDimensions;\n }\n\n public get inputSize(): number | undefined {\n return this._inputSize;\n }\n\n public get reshapedInputDimensions(): Dimensions[] {\n return range(this.batchSize, 0, 1).map(\n (_, batchIdx) => this.getReshapedInputDimensions(batchIdx),\n );\n }\n\n public getInput(batchIdx: number): tf.Tensor3D | tf.Tensor4D | HTMLCanvasElement {\n return this.canvases[batchIdx] || this.imageTensors[batchIdx];\n }\n\n public getInputDimensions(batchIdx: number): number[] {\n return this._inputDimensions[batchIdx];\n }\n\n public getInputHeight(batchIdx: number): number {\n return this._inputDimensions[batchIdx][0];\n }\n\n public getInputWidth(batchIdx: number): number {\n return this._inputDimensions[batchIdx][1];\n }\n\n public getReshapedInputDimensions(batchIdx: number): Dimensions {\n if (typeof this.inputSize !== 'number') {\n throw new Error('getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet');\n }\n\n const width = this.getInputWidth(batchIdx);\n const height = this.getInputHeight(batchIdx);\n return computeReshapedDimensions({ width, height }, this.inputSize);\n }\n\n /**\n * Create a batch tensor from all input canvases and tensors\n * with size [batchSize, inputSize, inputSize, 3].\n *\n * @param inputSize Height and width of the tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The batch tensor.\n */\n public toBatchTensor(inputSize: number, isCenterInputs: boolean = true): tf.Tensor4D {\n this._inputSize = inputSize;\n\n return tf.tidy(() => {\n const inputTensors = range(this.batchSize, 0, 1).map((batchIdx) => {\n const input = this.getInput(batchIdx);\n\n if (input instanceof tf.Tensor) {\n // @ts-ignore: error TS2344: Type 'Rank.R4' does not satisfy the constraint 'Tensor'.\n let imgTensor = isTensor4D(input) ? input : input.expandDims();\n // @ts-ignore: error TS2344: Type 'Rank.R4' does not satisfy the constraint 'Tensor'.\n imgTensor = padToSquare(imgTensor, isCenterInputs);\n\n if (imgTensor.shape[1] !== inputSize || imgTensor.shape[2] !== inputSize) {\n imgTensor = tf.image.resizeBilinear(imgTensor, [inputSize, inputSize]);\n }\n\n return imgTensor.as3D(inputSize, inputSize, 3);\n }\n\n if (input instanceof env.getEnv().Canvas) {\n return tf.browser.fromPixels(imageToSquare(input, inputSize, isCenterInputs));\n }\n\n throw new Error(`toBatchTensor - at batchIdx ${batchIdx}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${input}`);\n });\n\n // const batchTensor = tf.stack(inputTensors.map(t => t.toFloat())).as4D(this.batchSize, inputSize, inputSize, 3)\n const batchTensor = tf.stack(inputTensors.map((t) => tf.cast(t, 'float32'))).as4D(this.batchSize, inputSize, inputSize, 3);\n // const batchTensor = tf.stack(inputTensors.map(t => tf.Tensor.as4D(tf.cast(t, 'float32'))), this.batchSize, inputSize, inputSize, 3);\n\n return batchTensor;\n });\n }\n}\n", "import { isTensor3D, isTensor4D } from '../utils/index';\nimport { awaitMediaLoaded } from './awaitMediaLoaded';\nimport { isMediaElement } from './isMediaElement';\nimport { NetInput } from './NetInput';\nimport { resolveInput } from './resolveInput';\nimport { TNetInput } from './types';\n\n/**\n * Validates the input to make sure, they are valid net inputs and awaits all media elements\n * to be finished loading.\n *\n * @param input The input, which can be a media element or an array of different media elements.\n * @returns A NetInput instance, which can be passed into one of the neural networks.\n */\nexport async function toNetInput(inputs: TNetInput): Promise {\n if (inputs instanceof NetInput) {\n return inputs;\n }\n\n const inputArgArray = Array.isArray(inputs)\n ? inputs\n : [inputs];\n\n if (!inputArgArray.length) {\n throw new Error('toNetInput - empty array passed as input');\n }\n\n const getIdxHint = (idx: number) => (Array.isArray(inputs) ? ` at input index ${idx}:` : '');\n\n const inputArray = inputArgArray.map(resolveInput);\n\n inputArray.forEach((input, i) => {\n if (!isMediaElement(input) && !isTensor3D(input) && !isTensor4D(input)) {\n if (typeof inputArgArray[i] === 'string') {\n throw new Error(`toNetInput -${getIdxHint(i)} string passed, but could not resolve HTMLElement for element id ${inputArgArray[i]}`);\n }\n\n throw new Error(`toNetInput -${getIdxHint(i)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);\n }\n\n if (isTensor4D(input)) {\n // if tf.Tensor4D is passed in the input array, the batch size has to be 1\n const batchSize = input.shape[0];\n if (batchSize !== 1) {\n throw new Error(`toNetInput -${getIdxHint(i)} tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n }\n });\n\n // wait for all media elements being loaded\n await Promise.all(\n inputArray.map((input) => isMediaElement(input) && awaitMediaLoaded(input)),\n );\n\n return new NetInput(inputArray, Array.isArray(inputs));\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { Rect } from '../classes/Rect';\nimport { env } from '../env/index';\nimport { createCanvas } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { imageTensorToCanvas } from './imageTensorToCanvas';\nimport { toNetInput } from './toNetInput';\nimport { TNetInput } from './types';\n\n/**\n * Extracts the image regions containing the detected faces.\n *\n * @param input The image that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns The Canvases of the corresponding image region for each detected face.\n */\nexport async function extractFaces(\n input: TNetInput,\n detections: Array,\n): Promise {\n const { Canvas } = env.getEnv();\n\n let canvas = input as HTMLCanvasElement;\n\n if (!(input instanceof Canvas)) {\n const netInput = await toNetInput(input);\n\n if (netInput.batchSize > 1) {\n throw new Error('extractFaces - batchSize > 1 not supported');\n }\n\n const tensorOrCanvas = netInput.getInput(0);\n canvas = tensorOrCanvas instanceof Canvas\n ? tensorOrCanvas\n : await imageTensorToCanvas(tensorOrCanvas);\n }\n\n const ctx = getContext2dOrThrow(canvas);\n const boxes = detections.map(\n (det) => (det instanceof FaceDetection\n ? det.forSize(canvas.width, canvas.height).box.floor()\n : det),\n )\n .map((box) => box.clipAtImageBorders(canvas.width, canvas.height));\n\n return boxes.map(({\n x, y, width, height,\n }) => {\n const faceImg = createCanvas({ width, height });\n if (width > 0 && height > 0) getContext2dOrThrow(faceImg).putImageData(ctx.getImageData(x, y, width, height), 0, 0);\n return faceImg;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isTensor3D, isTensor4D } from '../utils/index';\n\n/**\n * Extracts the tensors of the image regions containing the detected faces.\n * Useful if you want to compute the face descriptors for the face images.\n * Using this method is faster then extracting a canvas for each face and\n * converting them to tensors individually.\n *\n * @param imageTensor The image tensor that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns Tensors of the corresponding image region for each detected face.\n */\nexport async function extractFaceTensors(\n imageTensor: tf.Tensor3D | tf.Tensor4D,\n detections: Array,\n): Promise {\n if (!isTensor3D(imageTensor) && !isTensor4D(imageTensor)) {\n throw new Error('extractFaceTensors - expected image tensor to be 3D or 4D');\n }\n\n if (isTensor4D(imageTensor) && imageTensor.shape[0] > 1) {\n throw new Error('extractFaceTensors - batchSize > 1 not supported');\n }\n\n return tf.tidy(() => {\n const [imgHeight, imgWidth, numChannels] = imageTensor.shape.slice(isTensor4D(imageTensor) ? 1 : 0);\n\n const boxes = detections.map(\n (det) => (det instanceof FaceDetection\n ? det.forSize(imgWidth, imgHeight).box\n : det),\n )\n .map((box) => box.clipAtImageBorders(imgWidth, imgHeight));\n\n const faceTensors = boxes.map(({\n x, y, width, height,\n }) => tf.slice3d(imageTensor.as3D(imgHeight, imgWidth, numChannels), [y, x, 0], [height, width, numChannels]));\n\n return faceTensors;\n });\n}\n", "import { env } from '../env/index';\n\nexport async function fetchOrThrow(\n url: string,\n // eslint-disable-next-line no-undef\n init?: RequestInit,\n): Promise {\n const { fetch } = env.getEnv();\n const res = await fetch(url, init);\n if (!(res.status < 400)) {\n throw new Error(`failed to fetch: (${res.status}) ${res.statusText}, from url: ${res.url}`);\n }\n return res;\n}\n", "import { bufferToImage } from './bufferToImage';\nimport { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchImage(uri: string): Promise {\n const res = await fetchOrThrow(uri);\n const blob = await (res).blob();\n\n if (!blob.type.startsWith('image/')) {\n throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${blob.type}, for url: ${res.url}`);\n }\n return bufferToImage(blob);\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchJson(uri: string): Promise {\n return (await fetchOrThrow(uri)).json();\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchNetWeights(uri: string): Promise {\n return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());\n}\n", "export function getModelUris(uri: string | undefined, defaultModelName: string) {\n const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;\n\n if (!uri) {\n return {\n modelBaseUri: '',\n manifestUri: defaultManifestFilename,\n };\n }\n\n if (uri === '/') {\n return {\n modelBaseUri: '/',\n manifestUri: `/${defaultManifestFilename}`,\n };\n }\n // eslint-disable-next-line no-nested-ternary\n const protocol = uri.startsWith('http://') ? 'http://' : uri.startsWith('https://') ? 'https://' : '';\n uri = uri.replace(protocol, '');\n\n const parts = uri.split('/').filter((s) => s);\n\n const manifestFile = uri.endsWith('.json')\n ? parts[parts.length - 1]\n : defaultManifestFilename;\n\n let modelBaseUri = protocol + (uri.endsWith('.json') ? parts.slice(0, parts.length - 1) : parts).join('/');\n modelBaseUri = uri.startsWith('/') ? `/${modelBaseUri}` : modelBaseUri;\n\n return {\n modelBaseUri,\n manifestUri: modelBaseUri === '/' ? `/${manifestFile}` : `${modelBaseUri}/${manifestFile}`,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { getModelUris } from '../common/getModelUris';\nimport { fetchJson } from './fetchJson';\n\nexport async function loadWeightMap(\n uri: string | undefined,\n defaultModelName: string,\n): Promise {\n const { manifestUri, modelBaseUri } = getModelUris(uri, defaultModelName);\n const manifest = await fetchJson(manifestUri);\n // if (manifest['weightsManifest']) manifest = manifest['weightsManifest'];\n return tf.io.loadWeights(manifest, modelBaseUri);\n}\n", "import { IDimensions } from '../classes/index';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function matchDimensions(input: IDimensions, reference: IDimensions, useMediaDimensions: boolean = false) {\n const { width, height } = useMediaDimensions\n ? getMediaDimensions(reference)\n : reference;\n input.width = width;\n input.height = height;\n return { width, height };\n}\n", "import * as tf from '../dist/tfjs.esm';\n\nimport { ParamMapping } from './common/index';\nimport { getModelUris } from './common/getModelUris';\nimport { loadWeightMap } from './dom/index';\nimport { env } from './env/index';\n\nexport abstract class NeuralNetwork {\n constructor(name: string) {\n this._name = name;\n }\n\n protected _params: TNetParams | undefined = undefined\n\n protected _paramMappings: ParamMapping[] = []\n\n public _name: any;\n\n public get params(): TNetParams | undefined { return this._params; }\n\n public get paramMappings(): ParamMapping[] { return this._paramMappings; }\n\n public get isLoaded(): boolean { return !!this.params; }\n\n public getParamFromPath(paramPath: string): tf.Tensor {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n return obj[objProp];\n }\n\n public reassignParamFromPath(paramPath: string, tensor: tf.Tensor) {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n obj[objProp].dispose();\n obj[objProp] = tensor;\n }\n\n public getParamList() {\n return this._paramMappings.map(({ paramPath }) => ({\n path: paramPath,\n tensor: this.getParamFromPath(paramPath),\n }));\n }\n\n public getTrainableParams() {\n return this.getParamList().filter((param) => param.tensor instanceof tf.Variable);\n }\n\n public getFrozenParams() {\n return this.getParamList().filter((param) => !(param.tensor instanceof tf.Variable));\n }\n\n public variable() {\n this.getFrozenParams().forEach(({ path, tensor }) => {\n this.reassignParamFromPath(path, tensor.variable());\n });\n }\n\n public freeze() {\n this.getTrainableParams().forEach(({ path, tensor: variable }) => {\n const tensor = tf.tensor(variable.dataSync());\n variable.dispose();\n this.reassignParamFromPath(path, tensor);\n });\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.getParamList().forEach((param) => {\n if (throwOnRedispose && param.tensor.isDisposed) {\n throw new Error(`param tensor has already been disposed for path ${param.path}`);\n }\n param.tensor.dispose();\n });\n this._params = undefined;\n }\n\n public serializeParams(): Float32Array {\n return new Float32Array(\n this.getParamList()\n .map(({ tensor }) => Array.from(tensor.dataSync()) as number[])\n .reduce((flat, arr) => flat.concat(arr)),\n );\n }\n\n public async load(weightsOrUrl: Float32Array | string | undefined): Promise {\n if (weightsOrUrl instanceof Float32Array) {\n this.extractWeights(weightsOrUrl);\n return;\n }\n await this.loadFromUri(weightsOrUrl);\n }\n\n public async loadFromUri(uri: string | undefined) {\n if (uri && typeof uri !== 'string') {\n throw new Error(`${this._name}.loadFromUri - expected model uri`);\n }\n const weightMap = await loadWeightMap(uri, this.getDefaultModelName());\n this.loadFromWeightMap(weightMap);\n }\n\n public async loadFromDisk(filePath: string | undefined) {\n if (filePath && typeof filePath !== 'string') {\n throw new Error(`${this._name}.loadFromDisk - expected model file path`);\n }\n const { readFile } = env.getEnv();\n const { manifestUri, modelBaseUri } = getModelUris(filePath, this.getDefaultModelName());\n const fetchWeightsFromDisk = (filePaths: string[]) => Promise.all(filePaths.map((fp) => readFile(fp).then((buf) => buf.buffer)));\n const loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk);\n const manifest = JSON.parse((await readFile(manifestUri)).toString());\n const weightMap = await loadWeights(manifest, modelBaseUri);\n this.loadFromWeightMap(weightMap);\n }\n\n public loadFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { paramMappings, params } = this.extractParamsFromWeightMap(weightMap);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n public extractWeights(weights: Float32Array) {\n const { paramMappings, params } = this.extractParams(weights);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n private traversePropertyPath(paramPath: string) {\n if (!this.params) {\n throw new Error('traversePropertyPath - model has no loaded params');\n }\n\n const result = paramPath.split('/').reduce((res: { nextObj: any, obj?: any, objProp?: string }, objProp) => {\n // eslint-disable-next-line no-prototype-builtins\n if (!res.nextObj.hasOwnProperty(objProp)) {\n throw new Error(`traversePropertyPath - object does not have property ${objProp}, for path ${paramPath}`);\n }\n return { obj: res.nextObj, objProp, nextObj: res.nextObj[objProp] };\n }, { nextObj: this.params });\n\n const { obj, objProp } = result;\n if (!obj || !objProp || !(obj[objProp] instanceof tf.Tensor)) {\n throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${paramPath}`);\n }\n\n return { obj, objProp };\n }\n\n protected abstract getDefaultModelName(): string\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TNetParams, paramMappings: ParamMapping[] }\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParams(weights: Float32Array): { params: TNetParams, paramMappings: ParamMapping[] }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from './types';\n\nexport function depthwiseSeparableConv(\n x: tf.Tensor4D,\n params: SeparableConvParams,\n stride: [number, number],\n): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.separableConv2d(x, params.depthwise_filter, params.pointwise_filter, stride, 'same');\n out = tf.add(out, params.bias);\n return out;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, SeparableConvParams } from '../common/index';\nimport { depthwiseSeparableConv } from '../common/depthwiseSeparableConv';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function denseBlock3(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock3Params,\n isFirstLayer: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, [2, 2], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, [2, 2]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n });\n}\n\nexport function denseBlock4(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock4Params,\n isFirstLayer: boolean = false,\n isScaleDown: boolean = true,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, isScaleDown ? [2, 2] : [1, 1], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, isScaleDown ? [2, 2] : [1, 1]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n const in4 = tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n const out4 = depthwiseSeparableConv(in4, denseBlockParams.conv3, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, tf.add(out3, out4)))) as tf.Tensor4D;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\nexport function convLayer(\n x: tf.Tensor4D,\n params: ConvParams,\n padding: 'valid' | 'same' = 'same',\n withRelu: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out = tf.add(\n tf.conv2d(x, params.filters, [1, 1], padding),\n params.bias,\n ) as tf.Tensor4D;\n\n return withRelu ? tf.relu(out) : out;\n });\n}\n", "import { ParamMapping } from './types';\n\nexport function disposeUnusedWeightTensors(weightMap: any, paramMappings: ParamMapping[]) {\n Object.keys(weightMap).forEach((path) => {\n if (!paramMappings.some((pm) => pm.originalPath === path)) {\n weightMap[path].dispose();\n }\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, ExtractWeightsFunction, ParamMapping } from './types';\n\nexport function extractConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams => {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, FCParams, ParamMapping } from './types';\n\nexport function extractFCParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): FCParams => {\n const fc_weights = tf.tensor2d(extractWeights(channelsIn * channelsOut), [channelsIn, channelsOut]);\n const fc_bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return {\n weights: fc_weights,\n bias: fc_bias,\n };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n// eslint-disable-next-line no-unused-vars\nexport type ExtractWeightsFunction = (numWeights: number) => Float32Array\n\nexport type ParamMapping = {\n originalPath?: string\n paramPath: string\n}\n\nexport type ConvParams = {\n filters: tf.Tensor4D\n bias: tf.Tensor1D\n}\n\nexport type FCParams = {\n weights: tf.Tensor2D\n bias: tf.Tensor1D\n}\n\nexport class SeparableConvParams {\n // eslint-disable-next-line no-useless-constructor\n constructor(\n // eslint-disable-next-line no-unused-vars\n public depthwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public pointwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public bias: tf.Tensor1D,\n // eslint-disable-next-line no-empty-function\n ) {}\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, ParamMapping, SeparableConvParams } from './types';\n\nexport function extractSeparableConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (channelsIn: number, channelsOut: number, mappedPrefix: string): SeparableConvParams => {\n const depthwise_filter = tf.tensor4d(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1]);\n const pointwise_filter = tf.tensor4d(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut]);\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/depthwise_filter` },\n { paramPath: `${mappedPrefix}/pointwise_filter` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n\nexport function loadSeparableConvParamsFactory(\n // eslint-disable-next-line no-unused-vars\n extractWeightEntry: (originalPath: string, paramRank: number) => T,\n) {\n return (prefix: string): SeparableConvParams => {\n const depthwise_filter = extractWeightEntry(`${prefix}/depthwise_filter`, 4);\n const pointwise_filter = extractWeightEntry(`${prefix}/pointwise_filter`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n", "import { isTensor } from '../utils/index';\nimport { ParamMapping } from './types';\n\nexport function extractWeightEntryFactory(weightMap: any, paramMappings: ParamMapping[]) {\n return (originalPath: string, paramRank: number, mappedPath?: string) => {\n const tensor = weightMap[originalPath];\n\n if (!isTensor(tensor, paramRank)) {\n throw new Error(`expected weightMap[${originalPath}] to be a Tensor${paramRank}D, instead have ${tensor}`);\n }\n\n paramMappings.push(\n { originalPath, paramPath: mappedPath || originalPath },\n );\n\n return tensor;\n };\n}\n", "export function extractWeightsFactory(weights: Float32Array) {\n let remainingWeights = weights;\n\n function extractWeights(numWeights: number): Float32Array {\n const ret = remainingWeights.slice(0, numWeights);\n remainingWeights = remainingWeights.slice(numWeights);\n return ret;\n }\n\n function getRemainingWeights(): Float32Array {\n return remainingWeights;\n }\n\n return {\n extractWeights,\n getRemainingWeights,\n };\n}\n", "import {\n extractConvParamsFactory,\n extractSeparableConvParamsFactory,\n ExtractWeightsFunction,\n ParamMapping,\n} from '../common/index';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractDenseBlock3Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv0`)\n : extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/conv0`);\n const conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv1`);\n const conv2 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock4Params {\n const { conv0, conv1, conv2 } = extractDenseBlock3Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer);\n const conv3 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock4Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock4Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock4Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock4Params(64, 128, 'dense2');\n const dense3 = extractDenseBlock4Params(128, 256, 'dense3');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: {\n dense0, dense1, dense2, dense3,\n },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\n// eslint-disable-next-line no-unused-vars\nexport function loadConvParamsFactory(extractWeightEntry: (originalPath: string, paramRank: number) => T) {\n return (prefix: string): ConvParams => {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return { filters, bias };\n };\n}\n", "import { extractWeightEntryFactory, loadSeparableConvParamsFactory, ParamMapping } from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractDenseBlock3Params(prefix: string, isFirstLayer: boolean = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(prefix: string, isFirstLayer: boolean = false): DenseBlock4Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n const conv3 = extractSeparableConvParams(`${prefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock4Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock4Params('dense0', true),\n dense1: extractDenseBlock4Params('dense1'),\n dense2: extractDenseBlock4Params('dense2'),\n dense3: extractDenseBlock4Params('dense3'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock4 } from './denseBlock';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { FaceFeatureExtractorParams, IFaceFeatureExtractor } from './types';\n\nexport class FaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('FaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255)) as tf.Tensor4D;\n\n let out = denseBlock4(normalized, params.dense0, true);\n out = denseBlock4(out, params.dense1);\n out = denseBlock4(out, params.dense2);\n out = denseBlock4(out, params.dense3);\n out = tf.avgPool(out, [7, 7], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from './types';\n\nexport function fullyConnectedLayer(\n x: tf.Tensor2D,\n params: FCParams,\n): tf.Tensor2D {\n return tf.tidy(() => tf.add(\n tf.matMul(x, params.weights),\n params.bias,\n ));\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array, channelsIn: number, channelsOut: number): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const fc = extractFCParams(channelsIn, channelsOut, 'fc');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping,\n} from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: extractFcParams('fc'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function seperateWeightMaps(weightMap: tf.NamedTensorMap) {\n const featureExtractorMap: tf.NamedTensorMap = {};\n const classifierMap: tf.NamedTensorMap = {};\n\n Object.keys(weightMap).forEach((key) => {\n const map = key.startsWith('fc') ? classifierMap : featureExtractorMap;\n map[key] = weightMap[key];\n });\n\n return { featureExtractorMap, classifierMap };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { NetInput } from '../dom/index';\nimport {\n FaceFeatureExtractorParams,\n IFaceFeatureExtractor,\n TinyFaceFeatureExtractorParams,\n} from '../faceFeatureExtractor/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { NetParams } from './types';\nimport { seperateWeightMaps } from './util';\n\nexport abstract class FaceProcessor<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends NeuralNetwork {\n protected _faceFeatureExtractor: IFaceFeatureExtractor\n\n constructor(_name: string, faceFeatureExtractor: IFaceFeatureExtractor) {\n super(_name);\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): IFaceFeatureExtractor {\n return this._faceFeatureExtractor;\n }\n\n protected abstract getDefaultModelName(): string\n\n protected abstract getClassifierChannelsIn(): number\n\n protected abstract getClassifierChannelsOut(): number\n\n public runNet(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n return fullyConnectedLayer(bottleneckFeatures.as2D(bottleneckFeatures.shape[0], -1), params.fc);\n });\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights, this.getClassifierChannelsIn(), this.getClassifierChannelsOut());\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const cIn = this.getClassifierChannelsIn();\n const cOut = this.getClassifierChannelsOut();\n const classifierWeightSize = (cOut * cIn) + cOut;\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "export const FACE_EXPRESSION_LABELS = ['neutral', 'happy', 'sad', 'angry', 'fearful', 'disgusted', 'surprised'];\n\nexport class FaceExpressions {\n public neutral: number\n\n public happy: number\n\n public sad: number\n\n public angry: number\n\n public fearful: number\n\n public disgusted: number\n\n public surprised: number\n\n constructor(probabilities: number[] | Float32Array) {\n if (probabilities.length !== 7) {\n throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${probabilities.length}`);\n }\n\n FACE_EXPRESSION_LABELS.forEach((expression, idx) => {\n this[expression] = probabilities[idx];\n });\n }\n\n asSortedArray() {\n return FACE_EXPRESSION_LABELS\n .map((expression) => ({ expression, probability: this[expression] as number }))\n .sort((e0, e1) => e1.probability - e0.probability);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { FaceExpressions } from './FaceExpressions';\n\nexport class FaceExpressionNet extends FaceProcessor {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceExpressionNet', faceFeatureExtractor);\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n return tf.tidy(() => tf.softmax(this.runNet(input)));\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictExpressions(input: TNetInput) {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n const probabilitesByBatch = await Promise.all(tf.unstack(out).map(async (t) => {\n const data = await t.data();\n t.dispose();\n return data;\n }));\n out.dispose();\n\n const predictionsByBatch = probabilitesByBatch\n .map((probabilites) => new FaceExpressions(probabilites as Float32Array));\n\n return netInput.isBatchInput\n ? predictionsByBatch\n : predictionsByBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_expression_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n\n protected getClassifierChannelsOut(): number {\n return 7;\n }\n}\n", "import { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\n\nexport type WithFaceExpressions = TSource & {\n expressions: FaceExpressions\n}\n\nexport function isWithFaceExpressions(obj: any): obj is WithFaceExpressions<{}> {\n return obj.expressions instanceof FaceExpressions;\n}\n\nexport function extendWithFaceExpressions<\n TSource\n>(\n sourceObj: TSource,\n expressions: FaceExpressions,\n): WithFaceExpressions {\n const extension = { expressions };\n return { ...sourceObj, ...extension };\n}\n", "import { IPoint, Point } from '../classes/index';\nimport { FaceExpressions } from '../faceExpressionNet/index';\nimport { isWithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { round } from '../utils/index';\nimport { DrawTextField } from './DrawTextField';\n\nexport type DrawFaceExpressionsInput = FaceExpressions | WithFaceExpressions<{}>\n\nexport function drawFaceExpressions(\n canvasArg: string | HTMLCanvasElement,\n faceExpressions: DrawFaceExpressionsInput | Array,\n minConfidence = 0.1,\n textFieldAnchor?: IPoint,\n) {\n const faceExpressionsArray = Array.isArray(faceExpressions) ? faceExpressions : [faceExpressions];\n\n faceExpressionsArray.forEach((e) => {\n // eslint-disable-next-line no-nested-ternary\n const expr = e instanceof FaceExpressions\n ? e\n : (isWithFaceExpressions(e) ? e.expressions : undefined);\n if (!expr) {\n throw new Error('drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof');\n }\n\n const sorted = expr.asSortedArray();\n const resultsToDisplay = sorted.filter((exprLocal) => exprLocal.probability > minConfidence);\n\n const anchor = isWithFaceDetection(e)\n ? e.detection.box.bottomLeft\n : (textFieldAnchor || new Point(0, 0));\n\n const drawTextField = new DrawTextField(\n resultsToDisplay.map((exprLocal) => `${exprLocal.expression} (${round(exprLocal.probability)})`),\n anchor,\n );\n drawTextField.draw(canvasArg);\n });\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { isWithFaceDetection, WithFaceDetection } from './WithFaceDetection';\n\nexport type WithFaceLandmarks<\n TSource extends WithFaceDetection<{}>,\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68 > = TSource & {\n landmarks: TFaceLandmarks,\n unshiftedLandmarks: TFaceLandmarks,\n alignedRect: FaceDetection,\n angle: { roll: number | undefined, pitch: number | undefined, yaw: number | undefined },\n }\n\nexport function isWithFaceLandmarks(obj: any): obj is WithFaceLandmarks, FaceLandmarks> {\n return isWithFaceDetection(obj)\n // eslint-disable-next-line dot-notation\n && obj['landmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['unshiftedLandmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['alignedRect'] instanceof FaceDetection;\n}\n\nfunction calculateFaceAngle(mesh) {\n // returns the angle in the plane (in radians) between the positive x-axis and the ray from (0,0) to the point (x,y)\n const radians = (a1, a2, b1, b2) => (Math.atan2(b2 - a2, b1 - a1) % Math.PI);\n // convert radians to degrees\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (theta) => (theta * 180) / Math.PI;\n\n const angle = { roll: undefined, pitch: undefined, yaw: undefined };\n\n if (!mesh || !mesh._positions || mesh._positions.length !== 68) return angle;\n const pt = mesh._positions;\n\n // values are in radians in range of -pi/2 to pi/2 which is -90 to +90 degrees\n // value of 0 means center\n\n // roll is face lean from left to right\n // comparing x,y of outside corners of leftEye and rightEye\n angle.roll = -radians(pt[36]._x, pt[36]._y, pt[45]._x, pt[45]._y);\n\n // pitch is face turn from left right\n // comparing x distance of top of nose to left and right edge of face\n // precision is lacking since coordinates are not precise enough\n angle.pitch = radians(0, Math.abs(pt[0]._x - pt[30]._x) / pt[30]._x, Math.PI, Math.abs(pt[16]._x - pt[30]._x) / pt[30]._x);\n\n // yaw is face move from up to down\n // comparing size of the box around the face with top and bottom of detected landmarks\n // silly hack, but this gives us face compression on y-axis\n // e.g., tilting head up hides the forehead that doesn't have any landmarks so ratio drops\n const bottom = pt.reduce((prev, cur) => (prev < cur._y ? prev : cur._y), +Infinity);\n const top = pt.reduce((prev, cur) => (prev > cur._y ? prev : cur._y), -Infinity);\n angle.yaw = Math.PI * (mesh._imgDims._height / (top - bottom) / 1.40 - 1);\n\n return angle;\n}\n\nexport function extendWithFaceLandmarks<\n TSource extends WithFaceDetection<{}>,\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68 >(sourceObj: TSource, unshiftedLandmarks: TFaceLandmarks): WithFaceLandmarks {\n const { box: shift } = sourceObj.detection;\n const landmarks = unshiftedLandmarks.shiftBy(shift.x, shift.y);\n\n const rect = landmarks.align();\n const { imageDims } = sourceObj.detection;\n const alignedRect = new FaceDetection(sourceObj.detection.score, rect.rescale(imageDims.reverse()), imageDims);\n const angle = calculateFaceAngle(unshiftedLandmarks);\n\n const extension = {\n landmarks,\n unshiftedLandmarks,\n alignedRect,\n angle,\n };\n\n return { ...sourceObj, ...extension };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IPoint } from '../classes/index';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { drawContour } from './drawContour';\n\nexport interface IDrawFaceLandmarksOptions {\n drawLines?: boolean\n drawPoints?: boolean\n lineWidth?: number\n pointSize?: number\n lineColor?: string\n pointColor?: string\n}\n\nexport class DrawFaceLandmarksOptions {\n public drawLines: boolean\n\n public drawPoints: boolean\n\n public lineWidth: number\n\n public pointSize: number\n\n public lineColor: string\n\n public pointColor: string\n\n constructor(options: IDrawFaceLandmarksOptions = {}) {\n const {\n drawLines = true, drawPoints = true, lineWidth, lineColor, pointSize, pointColor,\n } = options;\n this.drawLines = drawLines;\n this.drawPoints = drawPoints;\n this.lineWidth = lineWidth || 1;\n this.pointSize = pointSize || 2;\n this.lineColor = lineColor || 'rgba(0, 255, 255, 1)';\n this.pointColor = pointColor || 'rgba(255, 0, 255, 1)';\n }\n}\n\nexport class DrawFaceLandmarks {\n public faceLandmarks: FaceLandmarks\n\n public options: DrawFaceLandmarksOptions\n\n constructor(\n faceLandmarks: FaceLandmarks,\n options: IDrawFaceLandmarksOptions = {},\n ) {\n this.faceLandmarks = faceLandmarks;\n this.options = new DrawFaceLandmarksOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const {\n drawLines, drawPoints, lineWidth, lineColor, pointSize, pointColor,\n } = this.options;\n\n if (drawLines && this.faceLandmarks instanceof FaceLandmarks68) {\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n drawContour(ctx, this.faceLandmarks.getJawOutline());\n drawContour(ctx, this.faceLandmarks.getLeftEyeBrow());\n drawContour(ctx, this.faceLandmarks.getRightEyeBrow());\n drawContour(ctx, this.faceLandmarks.getNose());\n drawContour(ctx, this.faceLandmarks.getLeftEye(), true);\n drawContour(ctx, this.faceLandmarks.getRightEye(), true);\n drawContour(ctx, this.faceLandmarks.getMouth(), true);\n }\n\n if (drawPoints) {\n ctx.strokeStyle = pointColor;\n ctx.fillStyle = pointColor;\n\n const drawPoint = (pt: IPoint) => {\n ctx.beginPath();\n ctx.arc(pt.x, pt.y, pointSize, 0, 2 * Math.PI);\n ctx.fill();\n };\n this.faceLandmarks.positions.forEach(drawPoint);\n }\n }\n}\n\nexport type DrawFaceLandmarksInput = FaceLandmarks | WithFaceLandmarks>\n\nexport function drawFaceLandmarks(\n canvasArg: string | HTMLCanvasElement,\n faceLandmarks: DrawFaceLandmarksInput | Array,\n) {\n const faceLandmarksArray = Array.isArray(faceLandmarks) ? faceLandmarks : [faceLandmarks];\n faceLandmarksArray.forEach((f) => {\n // eslint-disable-next-line no-nested-ternary\n const landmarks = f instanceof FaceLandmarks\n ? f\n : (isWithFaceLandmarks(f) ? f.landmarks : undefined);\n if (!landmarks) {\n throw new Error('drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof');\n }\n\n new DrawFaceLandmarks(landmarks).draw(canvasArg);\n });\n}\n", "import { extractConvParamsFactory, extractSeparableConvParamsFactory, extractWeightsFactory } from '../common/index';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractReductionBlockParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(channels: number, mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParams(weights: Float32Array, numMainBlocks: number): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const entry_flow_conv_in = extractConvParams(3, 32, 3, 'entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams(32, 64, 'entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams(64, 128, 'entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(128, `middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams(128, 256, 'exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams(256, 512, 'exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { entry_flow, middle_flow, exit_flow },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors,\n extractWeightEntryFactory,\n loadSeparableConvParamsFactory,\n ParamMapping,\n} from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractReductionBlockParams(mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(`${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(`${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n numMainBlocks: number,\n): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const entry_flow_conv_in = extractConvParams('entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams('entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams('entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(`middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams('exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams('exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params: { entry_flow, middle_flow, exit_flow }, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, depthwiseSeparableConv } from '../common/index';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { range } from '../utils/index';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction conv(x: tf.Tensor4D, params: ConvParams, stride: [number, number]): tf.Tensor4D {\n return tf.add(tf.conv2d(x, params.filters, stride, 'same'), params.bias);\n}\n\nfunction reductionBlock(x: tf.Tensor4D, params: ReductionBlockParams, isActivateInput: boolean = true): tf.Tensor4D {\n let out = isActivateInput ? tf.relu(x) : x;\n out = depthwiseSeparableConv(out, params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = tf.maxPool(out, [3, 3], [2, 2], 'same');\n out = tf.add(out, conv(x, params.expansion_conv, [2, 2]));\n return out;\n}\n\nfunction mainBlock(x: tf.Tensor4D, params: MainBlockParams): tf.Tensor4D {\n let out = depthwiseSeparableConv(tf.relu(x), params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv2, [1, 1]);\n out = tf.add(out, x);\n return out;\n}\n\nexport class TinyXception extends NeuralNetwork {\n private _numMainBlocks: number\n\n constructor(numMainBlocks: number) {\n super('TinyXception');\n this._numMainBlocks = numMainBlocks;\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n if (!params) {\n throw new Error('TinyXception - load model before inference');\n }\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(256)) as tf.Tensor4D;\n let out = tf.relu(conv(normalized, params.entry_flow.conv_in, [2, 2]));\n out = reductionBlock(out, params.entry_flow.reduction_block_0, false);\n out = reductionBlock(out, params.entry_flow.reduction_block_1);\n range(this._numMainBlocks, 0, 1).forEach((idx) => {\n out = mainBlock(out, params.middle_flow[`main_block_${idx}`]);\n });\n out = reductionBlock(out, params.exit_flow.reduction_block);\n out = tf.relu(depthwiseSeparableConv(out, params.exit_flow.separable_conv, [1, 1]));\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'tiny_xception_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this._numMainBlocks);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights, this._numMainBlocks);\n }\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const age = extractFCParams(512, 1, 'fc/age');\n const gender = extractFCParams(512, 2, 'fc/gender');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc: { age, gender } },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping,\n} from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: {\n age: extractFcParams('fc/age'),\n gender: extractFcParams('fc/gender'),\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from '../common/index';\n\n// eslint-disable-next-line no-shadow\nexport enum Gender {\n // eslint-disable-next-line no-unused-vars\n FEMALE = 'female',\n // eslint-disable-next-line no-unused-vars\n MALE = 'male'\n}\n\nexport type AgeAndGenderPrediction = {\n age: number\n gender: Gender\n genderProbability: number\n}\n\nexport type NetOutput = { age: tf.Tensor1D, gender: tf.Tensor2D }\n\nexport type NetParams = {\n fc: {\n age: FCParams\n gender: FCParams\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { seperateWeightMaps } from '../faceProcessor/util';\nimport { TinyXception } from '../xception/TinyXception';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport {\n AgeAndGenderPrediction, Gender, NetOutput, NetParams,\n} from './types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\n\nexport class AgeGenderNet extends NeuralNetwork {\n private _faceFeatureExtractor: TinyXception\n\n constructor(faceFeatureExtractor: TinyXception = new TinyXception(2)) {\n super('AgeGenderNet');\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): TinyXception {\n return this._faceFeatureExtractor;\n }\n\n public runNet(input: NetInput | tf.Tensor4D): NetOutput {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n\n const pooled = tf.avgPool(bottleneckFeatures, [7, 7], [2, 2], 'valid').as2D(bottleneckFeatures.shape[0], -1);\n const age = fullyConnectedLayer(pooled, params.fc.age).as1D();\n const gender = fullyConnectedLayer(pooled, params.fc.gender);\n return { age, gender };\n });\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): NetOutput {\n return tf.tidy(() => {\n const { age, gender } = this.runNet(input);\n return { age, gender: tf.softmax(gender) };\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictAgeAndGender(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n\n const ages = tf.unstack(out.age);\n const genders = tf.unstack(out.gender);\n const ageAndGenderTensors = ages.map((ageTensor, i) => ({\n ageTensor,\n genderTensor: genders[i],\n }));\n\n const predictionsByBatch = await Promise.all(\n ageAndGenderTensors.map(async ({ ageTensor, genderTensor }) => {\n const age = (await ageTensor.data())[0];\n const probMale = (await genderTensor.data())[0];\n const isMale = probMale > 0.5;\n const gender = isMale ? Gender.MALE : Gender.FEMALE;\n const genderProbability = isMale ? probMale : (1 - probMale);\n\n ageTensor.dispose();\n genderTensor.dispose();\n return { age, gender, genderProbability };\n }),\n );\n out.age.dispose();\n out.gender.dispose();\n\n return netInput.isBatchInput ? predictionsByBatch as AgeAndGenderPrediction[] : predictionsByBatch[0] as AgeAndGenderPrediction;\n }\n\n protected getDefaultModelName(): string {\n return 'age_gender_model';\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights);\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const classifierWeightSize = (512 * 1 + 1) + (512 * 2 + 2);\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { IDimensions, Point } from '../classes/index';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractorParams, TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { isEven } from '../utils/index';\n\nexport abstract class FaceLandmark68NetBase<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends FaceProcessor {\n public postProcess(output: tf.Tensor2D, inputSize: number, originalDimensions: IDimensions[]): tf.Tensor2D {\n const inputDimensions = originalDimensions.map(({ width, height }) => {\n const scale = inputSize / Math.max(height, width);\n return {\n width: width * scale,\n height: height * scale,\n };\n });\n\n const batchSize = inputDimensions.length;\n\n return tf.tidy(() => {\n const createInterleavedTensor = (fillX: number, fillY: number) => tf.stack([tf.fill([68], fillX, 'float32'), tf.fill([68], fillY, 'float32')], 1).as2D(1, 136).as1D();\n\n // eslint-disable-next-line no-unused-vars\n const getPadding = (batchIdx: number, cond: (w: number, h: number) => boolean): number => {\n const { width, height } = inputDimensions[batchIdx];\n return cond(width, height) ? Math.abs(width - height) / 2 : 0;\n };\n\n const getPaddingX = (batchIdx: number) => getPadding(batchIdx, (w, h) => w < h);\n const getPaddingY = (batchIdx: number) => getPadding(batchIdx, (w, h) => h < w);\n\n const landmarkTensors = output\n .mul(tf.fill([batchSize, 136], inputSize, 'float32'))\n .sub(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n getPaddingX(batchIdx),\n getPaddingY(batchIdx),\n ))))\n .div(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n inputDimensions[batchIdx].width,\n inputDimensions[batchIdx].height,\n ))));\n\n return landmarkTensors as tf.Tensor2D;\n });\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n return tf.tidy(() => {\n const out = this.runNet(input);\n return this.postProcess(\n out,\n input.inputSize as number,\n input.inputDimensions.map(([height, width]) => ({ height, width })),\n );\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async detectLandmarks(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const landmarkTensors = tf.tidy(\n () => tf.unstack(this.forwardInput(netInput)),\n );\n\n const landmarksForBatch = await Promise.all(landmarkTensors.map(\n async (landmarkTensor, batchIdx) => {\n const landmarksArray = Array.from(await landmarkTensor.data());\n const xCoords = landmarksArray.filter((_, i) => isEven(i));\n const yCoords = landmarksArray.filter((_, i) => !isEven(i));\n\n return new FaceLandmarks68(\n Array(68).fill(0).map((_, i) => new Point(xCoords[i] as number, yCoords[i] as number)),\n {\n height: netInput.getInputHeight(batchIdx),\n width: netInput.getInputWidth(batchIdx),\n },\n );\n },\n ));\n\n landmarkTensors.forEach((t) => t.dispose());\n\n return netInput.isBatchInput ? landmarksForBatch as FaceLandmarks68[] : landmarksForBatch[0] as FaceLandmarks68;\n }\n\n protected getClassifierChannelsOut(): number {\n return 136;\n }\n}\n", "import { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68Net extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceLandmark68Net', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMapTiny(\n weightMap: tf.NamedTensorMap,\n): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock3Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock3Params('dense0', true),\n dense1: extractDenseBlock3Params('dense1'),\n dense2: extractDenseBlock3Params('dense2'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsTiny(weights: Float32Array): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock3Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock3Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock3Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock3Params(64, 128, 'dense2');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { dense0, dense1, dense2 },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock3 } from './denseBlock';\nimport { extractParamsFromWeightMapTiny } from './extractParamsFromWeightMapTiny';\nimport { extractParamsTiny } from './extractParamsTiny';\nimport { IFaceFeatureExtractor, TinyFaceFeatureExtractorParams } from './types';\n\nexport class TinyFaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('TinyFaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyFaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255)) as tf.Tensor4D;\n\n let out = denseBlock3(normalized, params.dense0, true);\n out = denseBlock3(out, params.dense1);\n out = denseBlock3(out, params.dense2);\n out = tf.avgPool(out, [14, 14], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_tiny_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMapTiny(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParamsTiny(weights);\n }\n}\n", "import { TinyFaceFeatureExtractor } from '../faceFeatureExtractor/TinyFaceFeatureExtractor';\nimport { TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68TinyNet extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: TinyFaceFeatureExtractor = new TinyFaceFeatureExtractor()) {\n super('FaceLandmark68TinyNet', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_tiny_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 128;\n }\n}\n", "import { FaceLandmark68Net } from './FaceLandmark68Net';\n\nexport * from './FaceLandmark68Net';\nexport * from './FaceLandmark68TinyNet';\nexport class FaceLandmarkNet extends FaceLandmark68Net {}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ScaleLayerParams } from './types';\n\nexport function scale(x: tf.Tensor4D, params: ScaleLayerParams): tf.Tensor4D {\n return tf.add(tf.mul(x, params.weights), params.biases);\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { scale } from './scaleLayer';\nimport { ConvLayerParams } from './types';\n\nfunction convLayer(\n x: tf.Tensor4D,\n params: ConvLayerParams,\n strides: [number, number],\n withRelu: boolean,\n padding: 'valid' | 'same' = 'same',\n): tf.Tensor4D {\n const { filters, bias } = params.conv;\n\n let out = tf.conv2d(x, filters, strides, padding);\n out = tf.add(out, bias);\n out = scale(out, params.scale);\n return withRelu ? tf.relu(out) : out;\n}\n\nexport function conv(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], true);\n}\n\nexport function convNoRelu(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], false);\n}\n\nexport function convDown(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [2, 2], true, 'valid');\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ConvParams, extractWeightsFactory, ExtractWeightsFunction, ParamMapping,\n} from '../common/index';\nimport { isFloat } from '../utils/index';\nimport {\n ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams,\n} from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractFilterValues(numFilterValues: number, numFilters: number, filterSize: number): tf.Tensor4D {\n const weights = extractWeights(numFilterValues);\n const depth = weights.length / (numFilters * filterSize * filterSize);\n\n if (isFloat(depth)) {\n throw new Error(`depth has to be an integer: ${depth}, weights.length: ${weights.length}, numFilters: ${numFilters}, filterSize: ${filterSize}`);\n }\n\n return tf.tidy(\n () => tf.transpose(\n tf.tensor4d(weights, [numFilters, depth, filterSize, filterSize]),\n [2, 3, 1, 0],\n ),\n );\n }\n\n function extractConvParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams {\n const filters = extractFilterValues(numFilterValues, numFilters, filterSize);\n const bias = tf.tensor1d(extractWeights(numFilters));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n }\n\n function extractScaleLayerParams(numWeights: number, mappedPrefix: string): ScaleLayerParams {\n const weights = tf.tensor1d(extractWeights(numWeights));\n const biases = tf.tensor1d(extractWeights(numWeights));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/biases` },\n );\n\n return {\n weights,\n biases,\n };\n }\n\n function extractConvLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvLayerParams {\n const conv = extractConvParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv`);\n const scale = extractScaleLayerParams(numFilters, `${mappedPrefix}/scale`);\n\n return { conv, scale };\n }\n\n function extractResidualLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n isDown: boolean = false,\n ): ResidualLayerParams {\n const conv1 = extractConvLayerParams((isDown ? 0.5 : 1) * numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv1`);\n const conv2 = extractConvLayerParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv2`);\n\n return { conv1, conv2 };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const conv32_down = extractConvLayerParams(4704, 32, 7, 'conv32_down');\n const conv32_1 = extractResidualLayerParams(9216, 32, 3, 'conv32_1');\n const conv32_2 = extractResidualLayerParams(9216, 32, 3, 'conv32_2');\n const conv32_3 = extractResidualLayerParams(9216, 32, 3, 'conv32_3');\n\n const conv64_down = extractResidualLayerParams(36864, 64, 3, 'conv64_down', true);\n const conv64_1 = extractResidualLayerParams(36864, 64, 3, 'conv64_1');\n const conv64_2 = extractResidualLayerParams(36864, 64, 3, 'conv64_2');\n const conv64_3 = extractResidualLayerParams(36864, 64, 3, 'conv64_3');\n\n const conv128_down = extractResidualLayerParams(147456, 128, 3, 'conv128_down', true);\n const conv128_1 = extractResidualLayerParams(147456, 128, 3, 'conv128_1');\n const conv128_2 = extractResidualLayerParams(147456, 128, 3, 'conv128_2');\n\n const conv256_down = extractResidualLayerParams(589824, 256, 3, 'conv256_down', true);\n const conv256_1 = extractResidualLayerParams(589824, 256, 3, 'conv256_1');\n const conv256_2 = extractResidualLayerParams(589824, 256, 3, 'conv256_2');\n const conv256_down_out = extractResidualLayerParams(589824, 256, 3, 'conv256_down_out');\n\n const fc = tf.tidy(\n () => tf.transpose(tf.tensor2d(extractWeights(256 * 128), [128, 256]), [1, 0]),\n );\n paramMappings.push({ paramPath: 'fc' });\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from '../common/index';\nimport { isTensor2D } from '../utils/index';\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractScaleLayerParams(prefix: string): ScaleLayerParams {\n const weights = extractWeightEntry(`${prefix}/scale/weights`, 1);\n const biases = extractWeightEntry(`${prefix}/scale/biases`, 1);\n\n return { weights, biases };\n }\n\n function extractConvLayerParams(prefix: string): ConvLayerParams {\n const filters = extractWeightEntry(`${prefix}/conv/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/conv/bias`, 1);\n const scale = extractScaleLayerParams(prefix);\n\n return { conv: { filters, bias }, scale };\n }\n\n function extractResidualLayerParams(prefix: string): ResidualLayerParams {\n return {\n conv1: extractConvLayerParams(`${prefix}/conv1`),\n conv2: extractConvLayerParams(`${prefix}/conv2`),\n };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n const conv32_down = extractConvLayerParams('conv32_down');\n const conv32_1 = extractResidualLayerParams('conv32_1');\n const conv32_2 = extractResidualLayerParams('conv32_2');\n const conv32_3 = extractResidualLayerParams('conv32_3');\n\n const conv64_down = extractResidualLayerParams('conv64_down');\n const conv64_1 = extractResidualLayerParams('conv64_1');\n const conv64_2 = extractResidualLayerParams('conv64_2');\n const conv64_3 = extractResidualLayerParams('conv64_3');\n\n const conv128_down = extractResidualLayerParams('conv128_down');\n const conv128_1 = extractResidualLayerParams('conv128_1');\n const conv128_2 = extractResidualLayerParams('conv128_2');\n\n const conv256_down = extractResidualLayerParams('conv256_down');\n const conv256_1 = extractResidualLayerParams('conv256_1');\n const conv256_2 = extractResidualLayerParams('conv256_2');\n const conv256_down_out = extractResidualLayerParams('conv256_down_out');\n\n const { fc } = weightMap;\n paramMappings.push({ originalPath: 'fc', paramPath: 'fc' });\n\n if (!isTensor2D(fc)) {\n throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${fc}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { conv, convDown, convNoRelu } from './convLayer';\nimport { ResidualLayerParams } from './types';\n\nexport function residual(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = conv(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n out = tf.add(out, x);\n out = tf.relu(out);\n return out;\n}\n\nexport function residualDown(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = convDown(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n\n let pooled = tf.avgPool(x, 2, 2, 'valid') as tf.Tensor4D;\n const zeros = tf.zeros(pooled.shape);\n const isPad = pooled.shape[3] !== out.shape[3];\n const isAdjustShape = pooled.shape[1] !== out.shape[1] || pooled.shape[2] !== out.shape[2];\n\n if (isAdjustShape) {\n const padShapeX = [...out.shape] as [number, number, number, number];\n padShapeX[1] = 1;\n const zerosW = tf.zeros(padShapeX);\n out = tf.concat([out, zerosW], 1);\n\n const padShapeY = [...out.shape] as [number, number, number, number];\n padShapeY[2] = 1;\n const zerosH = tf.zeros(padShapeY);\n out = tf.concat([out, zerosH], 2);\n }\n\n pooled = isPad ? tf.concat([pooled, zeros], 3) : pooled;\n out = tf.add(pooled, out) as tf.Tensor4D;\n\n out = tf.relu(out);\n return out;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { convDown } from './convLayer';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { residual, residualDown } from './residualLayer';\nimport { NetParams } from './types';\n\nexport class FaceRecognitionNet extends NeuralNetwork {\n constructor() {\n super('FaceRecognitionNet');\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceRecognitionNet - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(150, true), 'float32');\n\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(256)) as tf.Tensor4D;\n\n let out = convDown(normalized, params.conv32_down);\n out = tf.maxPool(out, 3, 2, 'valid');\n\n out = residual(out, params.conv32_1);\n out = residual(out, params.conv32_2);\n out = residual(out, params.conv32_3);\n\n out = residualDown(out, params.conv64_down);\n out = residual(out, params.conv64_1);\n out = residual(out, params.conv64_2);\n out = residual(out, params.conv64_3);\n\n out = residualDown(out, params.conv128_down);\n out = residual(out, params.conv128_1);\n out = residual(out, params.conv128_2);\n\n out = residualDown(out, params.conv256_down);\n out = residual(out, params.conv256_1);\n out = residual(out, params.conv256_2);\n out = residualDown(out, params.conv256_down_out);\n\n const globalAvg = out.mean([1, 2]) as tf.Tensor2D;\n const fullyConnected = tf.matMul(globalAvg, params.fc);\n\n return fullyConnected;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async computeFaceDescriptor(input: TNetInput): Promise {\n if (input?.shape?.some((dim) => dim <= 0)) return new Float32Array(128);\n const netInput = await toNetInput(input);\n const faceDescriptorTensors = tf.tidy(\n () => tf.unstack(this.forwardInput(netInput)),\n );\n const faceDescriptorsForBatch = await Promise.all(faceDescriptorTensors.map((t) => t.data())) as Float32Array[];\n faceDescriptorTensors.forEach((t) => t.dispose());\n return netInput.isBatchInput ? faceDescriptorsForBatch : faceDescriptorsForBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_recognition_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { FaceRecognitionNet } from './FaceRecognitionNet';\n\nexport * from './FaceRecognitionNet';\n\nexport function createFaceRecognitionNet(weights: Float32Array) {\n const net = new FaceRecognitionNet();\n net.extractWeights(weights);\n return net;\n}\n", "export type WithFaceDescriptor = TSource & {\n descriptor: Float32Array\n}\n\nexport function extendWithFaceDescriptor<\n TSource\n>(\n sourceObj: TSource,\n descriptor: Float32Array,\n): WithFaceDescriptor {\n const extension = { descriptor };\n return { ...sourceObj, ...extension };\n}\n", "export type WithAge = TSource & {\n age: number\n}\n\nexport function isWithAge(obj: any): obj is WithAge<{}> {\n return typeof obj.age === 'number';\n}\n\nexport function extendWithAge<\n TSource\n>(\n sourceObj: TSource,\n age: number,\n): WithAge {\n const extension = { age };\n return { ...sourceObj, ...extension };\n}\n", "import { Gender } from '../ageGenderNet/types';\nimport { isValidProbablitiy } from '../utils/index';\n\nexport type WithGender = TSource & {\n gender: Gender\n genderProbability: number\n}\n\nexport function isWithGender(obj: any): obj is WithGender<{}> {\n return (obj.gender === Gender.MALE || obj.gender === Gender.FEMALE)\n && isValidProbablitiy(obj.genderProbability);\n}\n\nexport function extendWithGender<\n TSource\n>(\n sourceObj: TSource,\n gender: Gender,\n genderProbability: number,\n): WithGender {\n const extension = { gender, genderProbability };\n return { ...sourceObj, ...extension };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ExtractWeightsFunction, ParamMapping, ConvParams, extractWeightsFactory,\n} from '../common/index';\nimport {\n MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams,\n} from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractDepthwiseConvParams(numChannels: number, mappedPrefix: string): MobileNetV1.DepthwiseConvParams {\n const filters = tf.tensor4d(extractWeights(3 * 3 * numChannels), [3, 3, numChannels, 1]);\n const batch_norm_scale = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_offset = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_mean = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_variance = tf.tensor1d(extractWeights(numChannels));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/batch_norm_scale` },\n { paramPath: `${mappedPrefix}/batch_norm_offset` },\n { paramPath: `${mappedPrefix}/batch_norm_mean` },\n { paramPath: `${mappedPrefix}/batch_norm_variance` },\n );\n\n return {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n };\n }\n\n function extractConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n isPointwiseConv?: boolean,\n ): ConvParams {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/${isPointwiseConv ? 'batch_norm_offset' : 'bias'}` },\n );\n\n return { filters, bias };\n }\n\n function extractPointwiseConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): PointwiseConvParams {\n const {\n filters,\n bias,\n } = extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, true);\n\n return {\n filters,\n batch_norm_offset: bias,\n };\n }\n\n function extractConvPairParams(\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): MobileNetV1.ConvPairParams {\n const depthwise_conv = extractDepthwiseConvParams(channelsIn, `${mappedPrefix}/depthwise_conv`);\n const pointwise_conv = extractPointwiseConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/pointwise_conv`);\n\n return { depthwise_conv, pointwise_conv };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n const conv_0 = extractPointwiseConvParams(3, 32, 3, 'mobilenetv1/conv_0');\n const conv_1 = extractConvPairParams(32, 64, 'mobilenetv1/conv_1');\n const conv_2 = extractConvPairParams(64, 128, 'mobilenetv1/conv_2');\n const conv_3 = extractConvPairParams(128, 128, 'mobilenetv1/conv_3');\n const conv_4 = extractConvPairParams(128, 256, 'mobilenetv1/conv_4');\n const conv_5 = extractConvPairParams(256, 256, 'mobilenetv1/conv_5');\n const conv_6 = extractConvPairParams(256, 512, 'mobilenetv1/conv_6');\n const conv_7 = extractConvPairParams(512, 512, 'mobilenetv1/conv_7');\n const conv_8 = extractConvPairParams(512, 512, 'mobilenetv1/conv_8');\n const conv_9 = extractConvPairParams(512, 512, 'mobilenetv1/conv_9');\n const conv_10 = extractConvPairParams(512, 512, 'mobilenetv1/conv_10');\n const conv_11 = extractConvPairParams(512, 512, 'mobilenetv1/conv_11');\n const conv_12 = extractConvPairParams(512, 1024, 'mobilenetv1/conv_12');\n const conv_13 = extractConvPairParams(1024, 1024, 'mobilenetv1/conv_13');\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n conv_8,\n conv_9,\n conv_10,\n conv_11,\n conv_12,\n conv_13,\n };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n const conv_0 = extractPointwiseConvParams(1024, 256, 1, 'prediction_layer/conv_0');\n const conv_1 = extractPointwiseConvParams(256, 512, 3, 'prediction_layer/conv_1');\n const conv_2 = extractPointwiseConvParams(512, 128, 1, 'prediction_layer/conv_2');\n const conv_3 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_3');\n const conv_4 = extractPointwiseConvParams(256, 128, 1, 'prediction_layer/conv_4');\n const conv_5 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_5');\n const conv_6 = extractPointwiseConvParams(256, 64, 1, 'prediction_layer/conv_6');\n const conv_7 = extractPointwiseConvParams(64, 128, 3, 'prediction_layer/conv_7');\n const box_encoding_0_predictor = extractConvParams(512, 12, 1, 'prediction_layer/box_predictor_0/box_encoding_predictor');\n const class_predictor_0 = extractConvParams(512, 9, 1, 'prediction_layer/box_predictor_0/class_predictor');\n const box_encoding_1_predictor = extractConvParams(1024, 24, 1, 'prediction_layer/box_predictor_1/box_encoding_predictor');\n const class_predictor_1 = extractConvParams(1024, 18, 1, 'prediction_layer/box_predictor_1/class_predictor');\n const box_encoding_2_predictor = extractConvParams(512, 24, 1, 'prediction_layer/box_predictor_2/box_encoding_predictor');\n const class_predictor_2 = extractConvParams(512, 18, 1, 'prediction_layer/box_predictor_2/class_predictor');\n const box_encoding_3_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_3/box_encoding_predictor');\n const class_predictor_3 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_3/class_predictor');\n const box_encoding_4_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_4/box_encoding_predictor');\n const class_predictor_4 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_4/class_predictor');\n const box_encoding_5_predictor = extractConvParams(128, 24, 1, 'prediction_layer/box_predictor_5/box_encoding_predictor');\n const class_predictor_5 = extractConvParams(128, 18, 1, 'prediction_layer/box_predictor_5/class_predictor');\n\n const box_predictor_0 = {\n box_encoding_predictor: box_encoding_0_predictor,\n class_predictor: class_predictor_0,\n };\n const box_predictor_1 = {\n box_encoding_predictor: box_encoding_1_predictor,\n class_predictor: class_predictor_1,\n };\n const box_predictor_2 = {\n box_encoding_predictor: box_encoding_2_predictor,\n class_predictor: class_predictor_2,\n };\n const box_predictor_3 = {\n box_encoding_predictor: box_encoding_3_predictor,\n class_predictor: class_predictor_3,\n };\n const box_predictor_4 = {\n box_encoding_predictor: box_encoding_4_predictor,\n class_predictor: class_predictor_4,\n };\n const box_predictor_5 = {\n box_encoding_predictor: box_encoding_5_predictor,\n class_predictor: class_predictor_5,\n };\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n box_predictor_0,\n box_predictor_1,\n box_predictor_2,\n box_predictor_3,\n box_predictor_4,\n box_predictor_5,\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n const mobilenetv1 = extractMobilenetV1Params();\n const prediction_layer = extractPredictionLayerParams();\n const extra_dim = tf.tensor3d(\n extractWeights(5118 * 4),\n [1, 5118, 4],\n );\n const output_layer = {\n extra_dim,\n };\n paramMappings.push({ paramPath: 'output_layer/extra_dim' });\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n params: {\n mobilenetv1,\n prediction_layer,\n output_layer,\n },\n paramMappings,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ConvParams, disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping,\n} from '../common/index';\nimport { isTensor3D } from '../utils/index';\nimport {\n BoxPredictionParams, MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams,\n} from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractPointwiseConvParams(prefix: string, idx: number, mappedPrefix: string): PointwiseConvParams {\n const filters = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/weights`, 4, `${mappedPrefix}/filters`);\n const batch_norm_offset = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/convolution_bn_offset`, 1, `${mappedPrefix}/batch_norm_offset`);\n return { filters, batch_norm_offset };\n }\n\n function extractConvPairParams(idx: number): MobileNetV1.ConvPairParams {\n const mappedPrefix = `mobilenetv1/conv_${idx}`;\n const prefixDepthwiseConv = `MobilenetV1/Conv2d_${idx}_depthwise`;\n const mappedPrefixDepthwiseConv = `${mappedPrefix}/depthwise_conv`;\n const mappedPrefixPointwiseConv = `${mappedPrefix}/pointwise_conv`;\n\n const filters = extractWeightEntry(`${prefixDepthwiseConv}/depthwise_weights`, 4, `${mappedPrefixDepthwiseConv}/filters`);\n const batch_norm_scale = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/gamma`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_scale`);\n const batch_norm_offset = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/beta`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_offset`);\n const batch_norm_mean = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_mean`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_mean`);\n const batch_norm_variance = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_variance`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_variance`);\n\n return {\n depthwise_conv: {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n },\n pointwise_conv: extractPointwiseConvParams('MobilenetV1', idx, mappedPrefixPointwiseConv),\n };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n return {\n conv_0: extractPointwiseConvParams('MobilenetV1', 0, 'mobilenetv1/conv_0'),\n conv_1: extractConvPairParams(1),\n conv_2: extractConvPairParams(2),\n conv_3: extractConvPairParams(3),\n conv_4: extractConvPairParams(4),\n conv_5: extractConvPairParams(5),\n conv_6: extractConvPairParams(6),\n conv_7: extractConvPairParams(7),\n conv_8: extractConvPairParams(8),\n conv_9: extractConvPairParams(9),\n conv_10: extractConvPairParams(10),\n conv_11: extractConvPairParams(11),\n conv_12: extractConvPairParams(12),\n conv_13: extractConvPairParams(13),\n };\n }\n\n function extractConvParams(prefix: string, mappedPrefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/weights`, 4, `${mappedPrefix}/filters`);\n const bias = extractWeightEntry(`${prefix}/biases`, 1, `${mappedPrefix}/bias`);\n return { filters, bias };\n }\n\n function extractBoxPredictorParams(idx: number): BoxPredictionParams {\n const box_encoding_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/BoxEncodingPredictor`,\n `prediction_layer/box_predictor_${idx}/box_encoding_predictor`,\n );\n const class_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/ClassPredictor`,\n `prediction_layer/box_predictor_${idx}/class_predictor`,\n );\n return { box_encoding_predictor, class_predictor };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n return {\n conv_0: extractPointwiseConvParams('Prediction', 0, 'prediction_layer/conv_0'),\n conv_1: extractPointwiseConvParams('Prediction', 1, 'prediction_layer/conv_1'),\n conv_2: extractPointwiseConvParams('Prediction', 2, 'prediction_layer/conv_2'),\n conv_3: extractPointwiseConvParams('Prediction', 3, 'prediction_layer/conv_3'),\n conv_4: extractPointwiseConvParams('Prediction', 4, 'prediction_layer/conv_4'),\n conv_5: extractPointwiseConvParams('Prediction', 5, 'prediction_layer/conv_5'),\n conv_6: extractPointwiseConvParams('Prediction', 6, 'prediction_layer/conv_6'),\n conv_7: extractPointwiseConvParams('Prediction', 7, 'prediction_layer/conv_7'),\n box_predictor_0: extractBoxPredictorParams(0),\n box_predictor_1: extractBoxPredictorParams(1),\n box_predictor_2: extractBoxPredictorParams(2),\n box_predictor_3: extractBoxPredictorParams(3),\n box_predictor_4: extractBoxPredictorParams(4),\n box_predictor_5: extractBoxPredictorParams(5),\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n const extra_dim = weightMap['Output/extra_dim'];\n paramMappings.push({ originalPath: 'Output/extra_dim', paramPath: 'output_layer/extra_dim' });\n if (!isTensor3D(extra_dim)) {\n throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${extra_dim}`);\n }\n\n const params = {\n mobilenetv1: extractMobilenetV1Params(),\n prediction_layer: extractPredictionLayerParams(),\n output_layer: {\n extra_dim,\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { PointwiseConvParams } from './types';\n\nexport function pointwiseConvLayer(\n x: tf.Tensor4D,\n params: PointwiseConvParams,\n strides: [number, number],\n) {\n return tf.tidy(() => {\n let out = tf.conv2d(x, params.filters, strides, 'same');\n out = tf.add(out, params.batch_norm_offset);\n return tf.clipByValue(out, 0, 6);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { MobileNetV1 } from './types';\n\nconst epsilon = 0.0010000000474974513;\n\nfunction depthwiseConvLayer(\n x: tf.Tensor4D,\n params: MobileNetV1.DepthwiseConvParams,\n strides: [number, number],\n) {\n return tf.tidy(() => {\n let out = tf.depthwiseConv2d(x, params.filters, strides, 'same');\n out = tf.batchNorm(\n out,\n params.batch_norm_mean,\n params.batch_norm_variance,\n params.batch_norm_offset,\n params.batch_norm_scale,\n epsilon,\n );\n return tf.clipByValue(out, 0, 6);\n });\n}\n\nfunction getStridesForLayerIdx(layerIdx: number): [number, number] {\n return [2, 4, 6, 12].some((idx) => idx === layerIdx) ? [2, 2] : [1, 1];\n}\n\nexport function mobileNetV1(x: tf.Tensor4D, params: MobileNetV1.Params) {\n return tf.tidy(() => {\n let conv11;\n let out = pointwiseConvLayer(x, params.conv_0, [2, 2]);\n\n const convPairParams = [\n params.conv_1,\n params.conv_2,\n params.conv_3,\n params.conv_4,\n params.conv_5,\n params.conv_6,\n params.conv_7,\n params.conv_8,\n params.conv_9,\n params.conv_10,\n params.conv_11,\n params.conv_12,\n params.conv_13,\n ];\n\n convPairParams.forEach((param, i) => {\n const layerIdx = i + 1;\n const depthwiseConvStrides = getStridesForLayerIdx(layerIdx);\n out = depthwiseConvLayer(out, param.depthwise_conv, depthwiseConvStrides);\n out = pointwiseConvLayer(out, param.pointwise_conv, [1, 1]);\n if (layerIdx === 11) {\n conv11 = out;\n }\n });\n\n if (conv11 === null) {\n throw new Error('mobileNetV1 - output of conv layer 11 is null');\n }\n\n return {\n out,\n conv11: conv11 as any,\n };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nfunction IOU(boxes: tf.Tensor2D, i: number, j: number) {\n const boxesData = boxes.arraySync();\n const yminI = Math.min(boxesData[i][0], boxesData[i][2]);\n const xminI = Math.min(boxesData[i][1], boxesData[i][3]);\n const ymaxI = Math.max(boxesData[i][0], boxesData[i][2]);\n const xmaxI = Math.max(boxesData[i][1], boxesData[i][3]);\n const yminJ = Math.min(boxesData[j][0], boxesData[j][2]);\n const xminJ = Math.min(boxesData[j][1], boxesData[j][3]);\n const ymaxJ = Math.max(boxesData[j][0], boxesData[j][2]);\n const xmaxJ = Math.max(boxesData[j][1], boxesData[j][3]);\n const areaI = (ymaxI - yminI) * (xmaxI - xminI);\n const areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ);\n if (areaI <= 0 || areaJ <= 0) {\n return 0.0;\n }\n const intersectionYmin = Math.max(yminI, yminJ);\n const intersectionXmin = Math.max(xminI, xminJ);\n const intersectionYmax = Math.min(ymaxI, ymaxJ);\n const intersectionXmax = Math.min(xmaxI, xmaxJ);\n const intersectionArea = Math.max(intersectionYmax - intersectionYmin, 0.0)\n * Math.max(intersectionXmax - intersectionXmin, 0.0);\n return intersectionArea / (areaI + areaJ - intersectionArea);\n}\n\nexport function nonMaxSuppression(\n boxes: tf.Tensor2D,\n scores: number[],\n maxOutputSize: number,\n iouThreshold: number,\n scoreThreshold: number,\n): number[] {\n const numBoxes = boxes.shape[0];\n const outputSize = Math.min(\n maxOutputSize,\n numBoxes,\n );\n\n const candidates = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .filter((c) => c.score > scoreThreshold)\n .sort((c1, c2) => c2.score - c1.score);\n\n const suppressFunc = (x: number) => (x <= iouThreshold ? 1 : 0);\n const selected: number[] = [];\n\n candidates.forEach((c) => {\n if (selected.length >= outputSize) return;\n const originalScore = c.score;\n for (let j = selected.length - 1; j >= 0; --j) {\n const iou = IOU(boxes, c.boxIndex, selected[j]);\n if (iou === 0.0) continue;\n c.score *= suppressFunc(iou);\n if (c.score <= scoreThreshold) break;\n }\n if (originalScore === c.score) {\n selected.push(c.boxIndex);\n }\n });\n return selected;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { OutputLayerParams } from './types';\n\nfunction getCenterCoordinatesAndSizesLayer(x: tf.Tensor2D) {\n const vec = tf.unstack(tf.transpose(x, [1, 0]));\n\n const sizes = [\n tf.sub(vec[2], vec[0]),\n tf.sub(vec[3], vec[1]),\n ];\n const centers = [\n tf.add(vec[0], tf.div(sizes[0], tf.scalar(2))),\n tf.add(vec[1], tf.div(sizes[1], tf.scalar(2))),\n ];\n return {\n sizes,\n centers,\n };\n}\n\nfunction decodeBoxesLayer(x0: tf.Tensor2D, x1: tf.Tensor2D) {\n const {\n sizes,\n centers,\n } = getCenterCoordinatesAndSizesLayer(x0);\n\n const vec = tf.unstack(tf.transpose(x1, [1, 0]));\n const div0_out = tf.div(tf.mul(tf.exp(tf.div(vec[2], tf.scalar(5))), sizes[0]), tf.scalar(2));\n const add0_out = tf.add(tf.mul(tf.div(vec[0], tf.scalar(10)), sizes[0]), centers[0]);\n const div1_out = tf.div(tf.mul(tf.exp(tf.div(vec[3], tf.scalar(5))), sizes[1]), tf.scalar(2));\n const add1_out = tf.add(tf.mul(tf.div(vec[1], tf.scalar(10)), sizes[1]), centers[1]);\n\n return tf.transpose(\n tf.stack([\n tf.sub(add0_out, div0_out),\n tf.sub(add1_out, div1_out),\n tf.add(add0_out, div0_out),\n tf.add(add1_out, div1_out),\n ]),\n [1, 0],\n );\n}\n\nexport function outputLayer(\n boxPredictions: tf.Tensor4D,\n classPredictions: tf.Tensor4D,\n params: OutputLayerParams,\n) {\n return tf.tidy(() => {\n const batchSize = boxPredictions.shape[0];\n\n let boxes = decodeBoxesLayer(\n tf.reshape(tf.tile(params.extra_dim, [batchSize, 1, 1]), [-1, 4]) as tf.Tensor2D,\n tf.reshape(boxPredictions, [-1, 4]) as tf.Tensor2D,\n );\n boxes = tf.reshape(\n boxes,\n [batchSize, (boxes.shape[0] / batchSize), 4],\n );\n\n const scoresAndClasses = tf.sigmoid(tf.slice(classPredictions, [0, 0, 1], [-1, -1, -1]));\n let scores = tf.slice(scoresAndClasses, [0, 0, 0], [-1, -1, 1]) as tf.Tensor;\n\n scores = tf.reshape(\n scores,\n [batchSize, scores.shape[1] as number],\n );\n\n const boxesByBatch = tf.unstack(boxes) as tf.Tensor2D[];\n const scoresByBatch = tf.unstack(scores) as tf.Tensor1D[];\n\n return {\n boxes: boxesByBatch,\n scores: scoresByBatch,\n };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { convLayer } from '../common/index';\nimport { BoxPredictionParams } from './types';\n\nexport function boxPredictionLayer(\n x: tf.Tensor4D,\n params: BoxPredictionParams,\n) {\n return tf.tidy(() => {\n const batchSize = x.shape[0];\n const boxPredictionEncoding = tf.reshape(\n convLayer(x, params.box_encoding_predictor),\n [batchSize, -1, 1, 4],\n );\n const classPrediction = tf.reshape(\n convLayer(x, params.class_predictor),\n [batchSize, -1, 3],\n );\n return { boxPredictionEncoding, classPrediction };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { boxPredictionLayer } from './boxPredictionLayer';\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { PredictionLayerParams } from './types';\n\nexport function predictionLayer(\n x: tf.Tensor4D,\n conv11: tf.Tensor4D,\n params: PredictionLayerParams,\n) {\n return tf.tidy(() => {\n const conv0 = pointwiseConvLayer(x, params.conv_0, [1, 1]);\n const conv1 = pointwiseConvLayer(conv0, params.conv_1, [2, 2]);\n const conv2 = pointwiseConvLayer(conv1, params.conv_2, [1, 1]);\n const conv3 = pointwiseConvLayer(conv2, params.conv_3, [2, 2]);\n const conv4 = pointwiseConvLayer(conv3, params.conv_4, [1, 1]);\n const conv5 = pointwiseConvLayer(conv4, params.conv_5, [2, 2]);\n const conv6 = pointwiseConvLayer(conv5, params.conv_6, [1, 1]);\n const conv7 = pointwiseConvLayer(conv6, params.conv_7, [2, 2]);\n\n const boxPrediction0 = boxPredictionLayer(conv11, params.box_predictor_0);\n const boxPrediction1 = boxPredictionLayer(x, params.box_predictor_1);\n const boxPrediction2 = boxPredictionLayer(conv1, params.box_predictor_2);\n const boxPrediction3 = boxPredictionLayer(conv3, params.box_predictor_3);\n const boxPrediction4 = boxPredictionLayer(conv5, params.box_predictor_4);\n const boxPrediction5 = boxPredictionLayer(conv7, params.box_predictor_5);\n\n const boxPredictions = tf.concat([\n boxPrediction0.boxPredictionEncoding,\n boxPrediction1.boxPredictionEncoding,\n boxPrediction2.boxPredictionEncoding,\n boxPrediction3.boxPredictionEncoding,\n boxPrediction4.boxPredictionEncoding,\n boxPrediction5.boxPredictionEncoding,\n ], 1) as tf.Tensor4D;\n\n const classPredictions = tf.concat([\n boxPrediction0.classPrediction,\n boxPrediction1.classPrediction,\n boxPrediction2.classPrediction,\n boxPrediction3.classPrediction,\n boxPrediction4.classPrediction,\n boxPrediction5.classPrediction,\n ], 1) as tf.Tensor4D;\n\n return {\n boxPredictions,\n classPredictions,\n };\n });\n}\n", "export interface ISsdMobilenetv1Options {\n minConfidence?: number\n maxResults?: number\n}\n\nexport class SsdMobilenetv1Options {\n protected _name: string = 'SsdMobilenetv1Options'\n\n private _minConfidence: number\n\n private _maxResults: number\n\n constructor({ minConfidence, maxResults }: ISsdMobilenetv1Options = {}) {\n this._minConfidence = minConfidence || 0.5;\n this._maxResults = maxResults || 100;\n\n if (typeof this._minConfidence !== 'number' || this._minConfidence <= 0 || this._minConfidence >= 1) {\n throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);\n }\n\n if (typeof this._maxResults !== 'number') {\n throw new Error(`${this._name} - expected maxResults to be a number`);\n }\n }\n\n get minConfidence(): number { return this._minConfidence; }\n\n get maxResults(): number { return this._maxResults; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { mobileNetV1 } from './mobileNetV1';\nimport { nonMaxSuppression } from './nonMaxSuppression';\nimport { outputLayer } from './outputLayer';\nimport { predictionLayer } from './predictionLayer';\nimport { ISsdMobilenetv1Options, SsdMobilenetv1Options } from './SsdMobilenetv1Options';\nimport { NetParams } from './types';\n\nexport class SsdMobilenetv1 extends NeuralNetwork {\n constructor() {\n super('SsdMobilenetv1');\n }\n\n public forwardInput(input: NetInput) {\n const { params } = this;\n\n if (!params) {\n throw new Error('SsdMobilenetv1 - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(512, false), 'float32');\n const x = tf.sub(tf.mul(batchTensor, tf.scalar(0.007843137718737125)), tf.scalar(1)) as tf.Tensor4D;\n const features = mobileNetV1(x, params.mobilenetv1);\n\n const { boxPredictions, classPredictions } = predictionLayer(features.out, features.conv11, params.prediction_layer);\n\n return outputLayer(boxPredictions, classPredictions, params.output_layer);\n });\n }\n\n public async forward(input: TNetInput) {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async locateFaces(\n input: TNetInput,\n options: ISsdMobilenetv1Options = {},\n ): Promise {\n const { maxResults, minConfidence } = new SsdMobilenetv1Options(options);\n\n const netInput = await toNetInput(input);\n\n const {\n boxes: _boxes,\n scores: _scores,\n } = this.forwardInput(netInput);\n\n const boxes = _boxes[0];\n const scores = _scores[0];\n for (let i = 1; i < _boxes.length; i++) {\n _boxes[i].dispose();\n _scores[i].dispose();\n }\n\n const scoresData = Array.from(await scores.data());\n const iouThreshold = 0.5;\n const indices = nonMaxSuppression(\n boxes,\n scoresData as number[],\n maxResults,\n iouThreshold,\n minConfidence,\n );\n\n const reshapedDims = netInput.getReshapedInputDimensions(0);\n const inputSize = netInput.inputSize as number;\n const padX = inputSize / reshapedDims.width;\n const padY = inputSize / reshapedDims.height;\n\n const boxesData = boxes.arraySync();\n const results = indices\n .map((idx) => {\n const [top, bottom] = [\n Math.max(0, boxesData[idx][0]),\n Math.min(1.0, boxesData[idx][2]),\n ].map((val) => val * padY);\n const [left, right] = [\n Math.max(0, boxesData[idx][1]),\n Math.min(1.0, boxesData[idx][3]),\n ].map((val) => val * padX);\n return new FaceDetection(\n scoresData[idx] as number,\n new Rect(\n left,\n top,\n right - left,\n bottom - top,\n ),\n {\n height: netInput.getInputHeight(0),\n width: netInput.getInputWidth(0),\n },\n );\n });\n\n boxes.dispose();\n scores.dispose();\n return results;\n }\n\n protected getDefaultModelName(): string {\n return 'ssd_mobilenetv1_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { SsdMobilenetv1 } from './SsdMobilenetv1';\n\nexport * from './SsdMobilenetv1';\nexport * from './SsdMobilenetv1Options';\n\nexport function createSsdMobilenetv1(weights: Float32Array) {\n const net = new SsdMobilenetv1();\n net.extractWeights(weights);\n return net;\n}\n\nexport function createFaceDetectionNet(weights: Float32Array) {\n return createSsdMobilenetv1(weights);\n}\n\n// alias for backward compatibily\nexport class FaceDetectionNet extends SsdMobilenetv1 {}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(0.738768, 0.874946),\n new Point(2.42204, 2.65704),\n new Point(4.30971, 7.04493),\n new Point(10.246, 4.59428),\n new Point(12.6868, 11.8741),\n];\n\nexport const BOX_ANCHORS_SEPARABLE = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB_SEPARABLE: [number, number, number] = [117.001, 114.697, 97.404];\n\nexport const DEFAULT_MODEL_NAME = 'tiny_yolov2_model';\nexport const DEFAULT_MODEL_NAME_SEPARABLE_CONV = 'tiny_yolov2_separable_conv_model';\n", "import { Point } from '../classes/Point';\n\nexport type TinyYolov2Config = {\n withSeparableConvs: boolean\n iouThreshold: number\n anchors: Point[]\n classes: string[]\n meanRgb?: [number, number, number]\n withClassScores?: boolean,\n filterSizes?: number[]\n isFirstLayerConv2d?: boolean\n}\n\nconst isNumber = (arg: any) => typeof arg === 'number';\n\nexport function validateConfig(config: any) {\n if (!config) {\n throw new Error(`invalid config: ${config}`);\n }\n\n if (typeof config.withSeparableConvs !== 'boolean') {\n throw new Error(`config.withSeparableConvs has to be a boolean, have: ${config.withSeparableConvs}`);\n }\n\n if (!isNumber(config.iouThreshold) || config.iouThreshold < 0 || config.iouThreshold > 1.0) {\n throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${config.iouThreshold}`);\n }\n\n if (\n !Array.isArray(config.classes)\n || !config.classes.length\n || !config.classes.every((c: any) => typeof c === 'string')\n ) {\n throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(config.classes)}`);\n }\n\n if (\n !Array.isArray(config.anchors)\n || !config.anchors.length\n || !config.anchors.map((a: any) => a || {}).every((a: any) => isNumber(a.x) && isNumber(a.y))\n ) {\n throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(config.anchors)}`);\n }\n\n if (config.meanRgb && (\n !Array.isArray(config.meanRgb)\n || config.meanRgb.length !== 3\n || !config.meanRgb.every(isNumber)\n )) {\n throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(config.meanRgb)}`);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function leaky(x: tf.Tensor4D): tf.Tensor4D {\n return tf.tidy(() => {\n const min = tf.mul(x, tf.scalar(0.10000000149011612));\n return tf.add(tf.relu(tf.sub(x, min)), min);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { leaky } from './leaky';\nimport { ConvWithBatchNorm } from './types';\n\nexport function convWithBatchNorm(x: tf.Tensor4D, params: ConvWithBatchNorm): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.conv2d(out, params.conv.filters, [1, 1], 'valid');\n out = tf.sub(out, params.bn.sub);\n out = tf.mul(out, params.bn.truediv);\n out = tf.add(out, params.conv.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from '../common/types';\nimport { leaky } from './leaky';\n\nexport function depthwiseSeparableConv(x: tf.Tensor4D, params: SeparableConvParams): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.separableConv2d(out, params.depthwise_filter, params.pointwise_filter, [1, 1], 'valid');\n out = tf.add(out, params.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { extractConvParamsFactory } from '../common/index';\nimport { extractSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightsFactory } from '../common/extractWeightsFactory';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n\n function extractBatchNormParams(size: number, mappedPrefix: string): BatchNorm {\n const sub = tf.tensor1d(extractWeights(size));\n const truediv = tf.tensor1d(extractWeights(size));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/sub` },\n { paramPath: `${mappedPrefix}/truediv` },\n );\n return { sub, truediv };\n }\n\n function extractConvWithBatchNormParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv`);\n const bn = extractBatchNormParams(channelsOut, `${mappedPrefix}/bn`);\n return { conv, bn };\n }\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParams(\n weights: Float32Array,\n config: TinyYolov2Config,\n boxEncodingSize: number,\n filterSizes: number[],\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(extractWeights, paramMappings);\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = config.isFirstLayerConv2d\n ? extractConvParams(s0, s1, 3, 'conv0')\n : extractSeparableConvParams(s0, s1, 'conv0');\n const conv1 = extractSeparableConvParams(s1, s2, 'conv1');\n const conv2 = extractSeparableConvParams(s2, s3, 'conv2');\n const conv3 = extractSeparableConvParams(s3, s4, 'conv3');\n const conv4 = extractSeparableConvParams(s4, s5, 'conv4');\n const conv5 = extractSeparableConvParams(s5, s6, 'conv5');\n const conv6 = s7 ? extractSeparableConvParams(s6, s7, 'conv6') : undefined;\n const conv7 = s8 ? extractSeparableConvParams(s7, s8, 'conv7') : undefined;\n const conv8 = extractConvParams(s8 || s7 || s6, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n } else {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = extractConvWithBatchNormParams(s0, s1, 'conv0');\n const conv1 = extractConvWithBatchNormParams(s1, s2, 'conv1');\n const conv2 = extractConvWithBatchNormParams(s2, s3, 'conv2');\n const conv3 = extractConvWithBatchNormParams(s3, s4, 'conv3');\n const conv4 = extractConvWithBatchNormParams(s4, s5, 'conv4');\n const conv5 = extractConvWithBatchNormParams(s5, s6, 'conv5');\n const conv6 = extractConvWithBatchNormParams(s6, s7, 'conv6');\n const conv7 = extractConvWithBatchNormParams(s7, s8, 'conv7');\n const conv8 = extractConvParams(s8, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n }\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from '../common/index';\nimport { disposeUnusedWeightTensors } from '../common/disposeUnusedWeightTensors';\nimport { loadSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightEntryFactory } from '../common/extractWeightEntryFactory';\nimport { ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractBatchNormParams(prefix: string): BatchNorm {\n const sub = extractWeightEntry(`${prefix}/sub`, 1);\n const truediv = extractWeightEntry(`${prefix}/truediv`, 1);\n return { sub, truediv };\n }\n\n function extractConvParams(prefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { filters, bias };\n }\n\n function extractConvWithBatchNormParams(prefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(`${prefix}/conv`);\n const bn = extractBatchNormParams(`${prefix}/bn`);\n return { conv, bn };\n }\n\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n config: TinyYolov2Config,\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n // eslint-disable-next-line no-mixed-operators\n const numFilters = (config.filterSizes && config.filterSizes.length || 9);\n params = {\n conv0: config.isFirstLayerConv2d ? extractConvParams('conv0') : extractSeparableConvParams('conv0'),\n conv1: extractSeparableConvParams('conv1'),\n conv2: extractSeparableConvParams('conv2'),\n conv3: extractSeparableConvParams('conv3'),\n conv4: extractSeparableConvParams('conv4'),\n conv5: extractSeparableConvParams('conv5'),\n conv6: numFilters > 7 ? extractSeparableConvParams('conv6') : undefined,\n conv7: numFilters > 8 ? extractSeparableConvParams('conv7') : undefined,\n conv8: extractConvParams('conv8'),\n };\n } else {\n params = {\n conv0: extractConvWithBatchNormParams('conv0'),\n conv1: extractConvWithBatchNormParams('conv1'),\n conv2: extractConvWithBatchNormParams('conv2'),\n conv3: extractConvWithBatchNormParams('conv3'),\n conv4: extractConvWithBatchNormParams('conv4'),\n conv5: extractConvWithBatchNormParams('conv5'),\n conv6: extractConvWithBatchNormParams('conv6'),\n conv7: extractConvWithBatchNormParams('conv7'),\n conv8: extractConvParams('conv8'),\n };\n }\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "export interface ITinyYolov2Options {\n inputSize?: number\n scoreThreshold?: number\n}\n\nexport class TinyYolov2Options {\n protected _name: string = 'TinyYolov2Options'\n\n private _inputSize: number\n\n private _scoreThreshold: number\n\n constructor({ inputSize, scoreThreshold }: ITinyYolov2Options = {}) {\n this._inputSize = inputSize || 416;\n this._scoreThreshold = scoreThreshold || 0.5;\n\n if (typeof this._inputSize !== 'number' || this._inputSize % 32 !== 0) {\n throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);\n }\n\n if (typeof this._scoreThreshold !== 'number' || this._scoreThreshold <= 0 || this._scoreThreshold >= 1) {\n throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`);\n }\n }\n\n get inputSize(): number { return this._inputSize; }\n\n get scoreThreshold(): number { return this._scoreThreshold; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { BoundingBox } from '../classes/BoundingBox';\nimport { Dimensions } from '../classes/Dimensions';\nimport { ObjectDetection } from '../classes/ObjectDetection';\nimport { convLayer } from '../common/index';\nimport { ConvParams, SeparableConvParams } from '../common/types';\nimport { toNetInput } from '../dom/index';\nimport { NetInput } from '../dom/NetInput';\nimport { TNetInput } from '../dom/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { sigmoid } from '../ops/index';\nimport { nonMaxSuppression } from '../ops/nonMaxSuppression';\nimport { normalize } from '../ops/normalize';\nimport { TinyYolov2Config, validateConfig } from './config';\nimport { convWithBatchNorm } from './convWithBatchNorm';\nimport { depthwiseSeparableConv } from './depthwiseSeparableConv';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { leaky } from './leaky';\nimport { ITinyYolov2Options, TinyYolov2Options } from './TinyYolov2Options';\nimport { DefaultTinyYolov2NetParams, MobilenetParams, TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2Base extends NeuralNetwork {\n public static DEFAULT_FILTER_SIZES = [3, 16, 32, 64, 128, 256, 512, 1024, 1024];\n\n private _config: TinyYolov2Config\n\n constructor(config: TinyYolov2Config) {\n super('TinyYolov2');\n validateConfig(config);\n this._config = config;\n }\n\n public get config(): TinyYolov2Config {\n return this._config;\n }\n\n public get withClassScores(): boolean {\n return this.config.withClassScores || this.config.classes.length > 1;\n }\n\n public get boxEncodingSize(): number {\n return 5 + (this.withClassScores ? this.config.classes.length : 0);\n }\n\n public runTinyYolov2(x: tf.Tensor4D, params: DefaultTinyYolov2NetParams): tf.Tensor4D {\n let out = convWithBatchNorm(x, params.conv0);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = convWithBatchNorm(out, params.conv6);\n out = convWithBatchNorm(out, params.conv7);\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public runMobilenet(x: tf.Tensor4D, params: MobilenetParams): tf.Tensor4D {\n let out = this.config.isFirstLayerConv2d\n ? leaky(convLayer(x, params.conv0 as ConvParams, 'valid', false))\n : depthwiseSeparableConv(x, params.conv0 as SeparableConvParams);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = params.conv6 ? depthwiseSeparableConv(out, params.conv6) : out;\n out = params.conv7 ? depthwiseSeparableConv(out, params.conv7) : out;\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public forwardInput(input: NetInput, inputSize: number): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyYolov2 - load model before inference');\n }\n\n return tf.tidy(() => {\n let batchTensor = tf.cast(input.toBatchTensor(inputSize, false), 'float32');\n batchTensor = this.config.meanRgb\n ? normalize(batchTensor, this.config.meanRgb)\n : batchTensor;\n batchTensor = batchTensor.div(tf.scalar(256)) as tf.Tensor4D;\n return this.config.withSeparableConvs\n ? this.runMobilenet(batchTensor, params as MobilenetParams)\n : this.runTinyYolov2(batchTensor, params as DefaultTinyYolov2NetParams);\n });\n }\n\n public async forward(input: TNetInput, inputSize: number): Promise {\n return this.forwardInput(await toNetInput(input), inputSize);\n }\n\n public async detect(input: TNetInput, forwardParams: ITinyYolov2Options = {}): Promise {\n const { inputSize, scoreThreshold } = new TinyYolov2Options(forwardParams);\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput, inputSize);\n const out0 = tf.tidy(() => tf.unstack(out)[0].expandDims()) as tf.Tensor4D;\n const inputDimensions = {\n width: netInput.getInputWidth(0),\n height: netInput.getInputHeight(0),\n };\n\n const results = await this.extractBoxes(out0, netInput.getReshapedInputDimensions(0), scoreThreshold);\n out.dispose();\n out0.dispose();\n\n const boxes = results.map((res) => res.box);\n const scores = results.map((res) => res.score);\n const classScores = results.map((res) => res.classScore);\n const classNames = results.map((res) => this.config.classes[res.label]);\n\n const indices = nonMaxSuppression(\n boxes.map((box) => box.rescale(inputSize)),\n scores,\n this.config.iouThreshold,\n true,\n );\n\n const detections = indices.map((idx) => new ObjectDetection(\n scores[idx],\n classScores[idx],\n classNames[idx],\n boxes[idx],\n inputDimensions,\n ));\n return detections;\n }\n\n protected getDefaultModelName(): string {\n return '';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this.config);\n }\n\n protected extractParams(weights: Float32Array) {\n const filterSizes = this.config.filterSizes || TinyYolov2Base.DEFAULT_FILTER_SIZES;\n\n const numFilters = filterSizes ? filterSizes.length : undefined;\n if (numFilters !== 7 && numFilters !== 8 && numFilters !== 9) {\n throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${numFilters} filterSizes in config`);\n }\n return extractParams(weights, this.config, this.boxEncodingSize, filterSizes);\n }\n\n protected async extractBoxes(\n outputTensor: tf.Tensor4D,\n inputBlobDimensions: Dimensions,\n scoreThreshold?: number,\n ) {\n const { width, height } = inputBlobDimensions;\n const inputSize = Math.max(width, height);\n const correctionFactorX = inputSize / width;\n const correctionFactorY = inputSize / height;\n\n const numCells = outputTensor.shape[1];\n const numBoxes = this.config.anchors.length;\n\n const [boxesTensor, scoresTensor, classScoresTensor] = tf.tidy(() => {\n const reshaped = outputTensor.reshape([numCells, numCells, numBoxes, this.boxEncodingSize]);\n\n const boxes = reshaped.slice([0, 0, 0, 0], [numCells, numCells, numBoxes, 4]);\n const scores = reshaped.slice([0, 0, 0, 4], [numCells, numCells, numBoxes, 1]);\n const classScores = this.withClassScores\n ? tf.softmax(reshaped.slice([0, 0, 0, 5], [numCells, numCells, numBoxes, this.config.classes.length]), 3)\n : tf.scalar(0);\n return [boxes, scores, classScores];\n });\n\n const results = [] as any;\n const scoresData = await scoresTensor.array();\n const boxesData = await boxesTensor.array();\n for (let row = 0; row < numCells; row++) {\n for (let col = 0; col < numCells; col++) {\n for (let anchor = 0; anchor < numBoxes; anchor++) {\n const score = sigmoid(scoresData[row][col][anchor][0]);\n if (!scoreThreshold || score > scoreThreshold) {\n const ctX = ((col + sigmoid(boxesData[row][col][anchor][0])) / numCells) * correctionFactorX;\n const ctY = ((row + sigmoid(boxesData[row][col][anchor][1])) / numCells) * correctionFactorY;\n const widthLocal = ((Math.exp(boxesData[row][col][anchor][2]) * this.config.anchors[anchor].x) / numCells) * correctionFactorX;\n const heightLocal = ((Math.exp(boxesData[row][col][anchor][3]) * this.config.anchors[anchor].y) / numCells) * correctionFactorY;\n const x = (ctX - (widthLocal / 2));\n const y = (ctY - (heightLocal / 2));\n const pos = { row, col, anchor };\n const { classScore, label } = this.withClassScores\n ? await this.extractPredictedClass(classScoresTensor as tf.Tensor4D, pos)\n : { classScore: 1, label: 0 };\n results.push({\n box: new BoundingBox(x, y, x + widthLocal, y + heightLocal),\n score,\n classScore: score * classScore,\n label,\n ...pos,\n });\n }\n }\n }\n }\n\n boxesTensor.dispose();\n scoresTensor.dispose();\n classScoresTensor.dispose();\n return results;\n }\n\n private async extractPredictedClass(classesTensor: tf.Tensor4D, pos: { row: number, col: number, anchor: number }) {\n const { row, col, anchor } = pos;\n const classesData = await classesTensor.array();\n return Array(this.config.classes.length).fill(0)\n .map((_, i) => classesData[row][col][anchor][i])\n .map((classScore, label) => ({\n classScore,\n label,\n }))\n .reduce((max, curr) => (max.classScore > curr.classScore ? max : curr));\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/types';\nimport { TNetInput } from '../dom/types';\nimport {\n BOX_ANCHORS,\n BOX_ANCHORS_SEPARABLE,\n DEFAULT_MODEL_NAME,\n DEFAULT_MODEL_NAME_SEPARABLE_CONV,\n IOU_THRESHOLD,\n MEAN_RGB_SEPARABLE,\n} from './const';\nimport { TinyYolov2Base } from './TinyYolov2Base';\nimport { ITinyYolov2Options } from './TinyYolov2Options';\nimport { TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2 extends TinyYolov2Base {\n constructor(withSeparableConvs: boolean = true) {\n const config = {\n withSeparableConvs,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n ...(withSeparableConvs\n ? {\n anchors: BOX_ANCHORS_SEPARABLE,\n meanRgb: MEAN_RGB_SEPARABLE,\n }\n : {\n anchors: BOX_ANCHORS,\n withClassScores: true,\n }),\n };\n\n super(config);\n }\n\n public get withSeparableConvs(): boolean {\n return this.config.withSeparableConvs;\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected getDefaultModelName(): string {\n return this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME;\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { TinyYolov2 } from './TinyYolov2';\n\nexport * from './TinyYolov2Options';\nexport * from './config';\nexport * from './types';\nexport { TinyYolov2 };\n\nexport function createTinyYolov2(weights: Float32Array, withSeparableConvs: boolean = true) {\n const net = new TinyYolov2(withSeparableConvs);\n net.extractWeights(weights);\n return net;\n}\n", "import { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\n\nexport interface ITinyFaceDetectorOptions extends ITinyYolov2Options {}\n\nexport class TinyFaceDetectorOptions extends TinyYolov2Options {\n protected _name: string = 'TinyFaceDetectorOptions'\n}\n", "export class ComposableTask {\n public async then(\n // eslint-disable-next-line no-unused-vars\n onfulfilled: (value: T) => T | PromiseLike,\n ): Promise {\n return onfulfilled(await this.run());\n }\n\n public async run(): Promise {\n throw new Error('ComposableTask - run is not implemented');\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\n\nexport async function extractAllFacesAndComputeResults, TResult>(\n parentResults: TSource[],\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResults: (faces: Array) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment: (parentResult: WithFaceLandmarks) => FaceDetection = ({ alignedRect }) => alignedRect,\n) {\n const faceBoxes = parentResults.map((parentResult) => (isWithFaceLandmarks(parentResult)\n ? getRectForAlignment(parentResult)\n : parentResult.detection));\n const faces: Array = extractedFaces || (\n input instanceof tf.Tensor\n ? await extractFaceTensors(input, faceBoxes)\n : await extractFaces(input, faceBoxes)\n );\n\n const results = await computeResults(faces);\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return results;\n}\n\nexport async function extractSingleFaceAndComputeResult, TResult>(\n parentResult: TSource,\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResult: (face: HTMLCanvasElement | tf.Tensor3D) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment?: (parentResultLocal: WithFaceLandmarks) => FaceDetection,\n) {\n return extractAllFacesAndComputeResults(\n [parentResult],\n input,\n async (faces) => computeResult(faces[0]),\n extractedFaces,\n getRectForAlignment,\n );\n}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB: [number, number, number] = [117.001, 114.697, 97.404];\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/index';\nimport { TNetInput } from '../dom/index';\nimport { ITinyYolov2Options } from '../tinyYolov2/index';\nimport { TinyYolov2Base } from '../tinyYolov2/TinyYolov2Base';\nimport { TinyYolov2NetParams } from '../tinyYolov2/types';\nimport { BOX_ANCHORS, IOU_THRESHOLD, MEAN_RGB } from './const';\n\nexport class TinyFaceDetector extends TinyYolov2Base {\n constructor() {\n const config = {\n withSeparableConvs: true,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n anchors: BOX_ANCHORS,\n meanRgb: MEAN_RGB,\n isFirstLayerConv2d: true,\n filterSizes: [3, 16, 32, 64, 128, 256, 512],\n };\n\n super(config);\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected getDefaultModelName(): string {\n return 'tiny_face_detector_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { AgeGenderNet } from '../ageGenderNet/AgeGenderNet';\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressionNet } from '../faceExpressionNet/FaceExpressionNet';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { FaceRecognitionNet } from '../faceRecognitionNet/FaceRecognitionNet';\nimport { SsdMobilenetv1 } from '../ssdMobilenetv1/SsdMobilenetv1';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetector } from '../tinyFaceDetector/TinyFaceDetector';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { ITinyYolov2Options, TinyYolov2 } from '../tinyYolov2/index';\n\nexport const nets = {\n ssdMobilenetv1: new SsdMobilenetv1(),\n tinyFaceDetector: new TinyFaceDetector(),\n tinyYolov2: new TinyYolov2(),\n faceLandmark68Net: new FaceLandmark68Net(),\n faceLandmark68TinyNet: new FaceLandmark68TinyNet(),\n faceRecognitionNet: new FaceRecognitionNet(),\n faceExpressionNet: new FaceExpressionNet(),\n ageGenderNet: new AgeGenderNet(),\n};\n\n/**\n * Attempts to detect all faces in an image using SSD Mobilenetv1 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const ssdMobilenetv1 = (input: TNetInput, options: SsdMobilenetv1Options): Promise => nets.ssdMobilenetv1.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Face Detector.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyFaceDetectorOptions constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyFaceDetector = (input: TNetInput, options: TinyFaceDetectorOptions): Promise => nets.tinyFaceDetector.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Yolov2 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyYolov2Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyYolov2 = (input: TNetInput, options: ITinyYolov2Options): Promise => nets.tinyYolov2.locateFaces(input, options);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarks = (input: TNetInput): Promise => nets.faceLandmark68Net.detectLandmarks(input);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image\n * using a tinier version of the 68 point face landmark model, which is slightly\n * faster at inference, but also slightly less accurate.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarksTiny = (input: TNetInput): Promise => nets.faceLandmark68TinyNet.detectLandmarks(input);\n\n/**\n * Computes a 128 entry vector (face descriptor / face embeddings) from the face shown in an image,\n * which uniquely represents the features of that persons face. The computed face descriptor can\n * be used to measure the similarity between faces, by computing the euclidean distance of two\n * face descriptors.\n *\n * @param inputs The face image extracted from the aligned bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Face descriptor with 128 entries or array thereof in case of batch input.\n */\nexport const computeFaceDescriptor = (input: TNetInput): Promise => nets.faceRecognitionNet.computeFaceDescriptor(input);\n\n/**\n * Recognizes the facial expressions from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Facial expressions with corresponding probabilities or array thereof in case of batch input.\n */\nexport const recognizeFaceExpressions = (input: TNetInput): Promise => nets.faceExpressionNet.predictExpressions(input);\n\n/**\n * Predicts age and gender from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Predictions with age, gender and gender probability or array thereof in case of batch input.\n */\nexport const predictAgeAndGender = (input: TNetInput): Promise => nets.ageGenderNet.predictAgeAndGender(input);\n\nexport const loadSsdMobilenetv1Model = (url: string) => nets.ssdMobilenetv1.load(url);\nexport const loadTinyFaceDetectorModel = (url: string) => nets.tinyFaceDetector.load(url);\nexport const loadTinyYolov2Model = (url: string) => nets.tinyYolov2.load(url);\nexport const loadFaceLandmarkModel = (url: string) => nets.faceLandmark68Net.load(url);\nexport const loadFaceLandmarkTinyModel = (url: string) => nets.faceLandmark68TinyNet.load(url);\nexport const loadFaceRecognitionModel = (url: string) => nets.faceRecognitionNet.load(url);\nexport const loadFaceExpressionModel = (url: string) => nets.faceExpressionNet.load(url);\nexport const loadAgeGenderModel = (url: string) => nets.ageGenderNet.load(url);\n\n// backward compatibility\nexport const loadFaceDetectionModel = loadSsdMobilenetv1Model;\nexport const locateFaces = ssdMobilenetv1;\nexport const detectLandmarks = detectFaceLandmarks;\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderTask,\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\n\nexport class PredictFaceExpressionsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllFaceExpressionsTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictFaceExpressionsTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n\n const faceExpressionsByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map(\n (face) => nets.faceExpressionNet.predictExpressions(face) as Promise,\n )),\n this.extractedFaces,\n );\n\n return parentResults.map(\n (parentResult, i) => extendWithFaceExpressions(parentResult, faceExpressionsByFace[i]),\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictFaceExpressionsTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const faceExpressions = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceExpressionNet.predictExpressions(face) as Promise,\n this.extractedFaces,\n );\n\n return extendWithFaceExpressions(parentResult, faceExpressions);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictAllFaceExpressionsWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictAllFaceExpressionsTask {\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictSingleFaceExpressionsTask {\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { TNetInput } from '../dom/index';\nimport { extendWithAge, WithAge } from '../factories/WithAge';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { extendWithGender, WithGender } from '../factories/WithGender';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllFaceExpressionsTask,\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class PredictAgeAndGenderTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllAgeAndGenderTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictAgeAndGenderTaskBase>[], TSource[]> {\n public async run(): Promise>[]> {\n const parentResults = await this.parentTask;\n\n const ageAndGenderByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map(\n (face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise,\n )),\n this.extractedFaces,\n );\n\n return parentResults.map((parentResult, i) => {\n const { age, gender, genderProbability } = ageAndGenderByFace[i];\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n });\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictAgeAndGenderTaskBase> | undefined, TSource | undefined> {\n public async run(): Promise> | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const { age, gender, genderProbability } = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise,\n this.extractedFaces,\n );\n\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictAllAgeAndGenderWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictAllAgeAndGenderTask {\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictSingleAgeAndGenderTask {\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDescriptor, WithFaceDescriptor } from '../factories/WithFaceDescriptor';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\nimport {\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class ComputeFaceDescriptorsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n ) {\n super();\n }\n}\n\nexport class ComputeAllFaceDescriptorsTask<\n TSource extends WithFaceLandmarks>\n> extends ComputeFaceDescriptorsTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n\n const descriptors = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n (faces) => Promise.all(faces.map((face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise)),\n null,\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n\n return descriptors.map((descriptor, i) => extendWithFaceDescriptor(parentResults[i], descriptor));\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n\nexport class ComputeSingleFaceDescriptorTask<\n TSource extends WithFaceLandmarks>\n> extends ComputeFaceDescriptorsTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n const descriptor = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise,\n null,\n // eslint-disable-next-line no-shadow\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n\n return extendWithFaceDescriptor(parentResult, descriptor);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\nimport {\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class DetectFaceLandmarksTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected useTinyLandmarkNet: boolean,\n ) {\n super();\n }\n\n protected get landmarkNet(): FaceLandmark68Net | FaceLandmark68TinyNet {\n return this.useTinyLandmarkNet\n ? nets.faceLandmark68TinyNet\n : nets.faceLandmark68Net;\n }\n}\n\nexport class DetectAllFaceLandmarksTask<\n TSource extends WithFaceDetection<{}>\n> extends DetectFaceLandmarksTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n const detections = parentResults.map((res) => res.detection);\n\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, detections)\n : await extractFaces(this.input, detections);\n\n const faceLandmarksByFace = await Promise.all(faces.map(\n (face) => this.landmarkNet.detectLandmarks(face),\n )) as FaceLandmarks68[];\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return parentResults.map((parentResult, i) => extendWithFaceLandmarks(parentResult, faceLandmarksByFace[i]));\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class DetectSingleFaceLandmarksTask<\n TSource extends WithFaceDetection<{}>\n> extends DetectFaceLandmarksTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const { detection } = parentResult;\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, [detection])\n : await extractFaces(this.input, [detection]);\n\n const landmarks = await this.landmarkNet.detectLandmarks(faces[0]) as FaceLandmarks68;\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return extendWithFaceLandmarks(parentResult, landmarks);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { TinyYolov2Options } from '../tinyYolov2/index';\nimport { ComposableTask } from './ComposableTask';\nimport { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderTask, PredictSingleAgeAndGenderTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsTask, PredictSingleFaceExpressionsTask } from './PredictFaceExpressionsTask';\nimport { FaceDetectionOptions } from './types';\n\nexport class DetectFacesTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected options: FaceDetectionOptions = new SsdMobilenetv1Options(),\n ) {\n super();\n }\n}\n\nexport class DetectAllFacesTask extends DetectFacesTaskBase {\n public async run(): Promise {\n const { input, options } = this;\n\n let result;\n if (options instanceof TinyFaceDetectorOptions) result = nets.tinyFaceDetector.locateFaces(input, options);\n else if (options instanceof SsdMobilenetv1Options) result = nets.ssdMobilenetv1.locateFaces(input, options);\n else if (options instanceof TinyYolov2Options) result = nets.tinyYolov2.locateFaces(input, options);\n else throw new Error('detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options');\n\n return result;\n }\n\n private runAndExtendWithFaceDetections(): Promise[]> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise[]>(async (resolve) => {\n const detections = await this.run();\n resolve(detections.map((detection) => extendWithFaceDetection({}, detection)));\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet: boolean = false) {\n return new DetectAllFaceLandmarksTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n}\n\nexport class DetectSingleFaceTask extends DetectFacesTaskBase {\n public async run(): Promise {\n const faceDetections = await new DetectAllFacesTask(this.input, this.options);\n let faceDetectionWithHighestScore = faceDetections[0];\n faceDetections.forEach((faceDetection) => {\n if (faceDetection.score > faceDetectionWithHighestScore.score) faceDetectionWithHighestScore = faceDetection;\n });\n return faceDetectionWithHighestScore;\n }\n\n private runAndExtendWithFaceDetection(): Promise | undefined> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise | undefined>(async (resolve) => {\n const detection = await this.run();\n resolve(detection ? extendWithFaceDetection<{}>({}, detection) : undefined);\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet: boolean = false) {\n return new DetectSingleFaceLandmarksTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n}\n", "import { TNetInput } from '../dom/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { DetectAllFacesTask, DetectSingleFaceTask } from './DetectFacesTasks';\nimport { FaceDetectionOptions } from './types';\n\nexport function detectSingleFace(input: TNetInput, options: FaceDetectionOptions = new SsdMobilenetv1Options()): DetectSingleFaceTask {\n return new DetectSingleFaceTask(input, options);\n}\n\nexport function detectAllFaces(input: TNetInput, options: FaceDetectionOptions = new SsdMobilenetv1Options()): DetectAllFacesTask {\n return new DetectAllFacesTask(input, options);\n}\n", "import { TNetInput } from '../dom/index';\nimport { WithFaceDescriptor, WithFaceDetection, WithFaceLandmarks } from '../factories/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/index';\nimport { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\nimport { detectAllFaces } from './detectFaces';\n\n// export allFaces API for backward compatibility\n\nexport async function allFacesSsdMobilenetv1(\n input: TNetInput,\n minConfidence?: number,\n): Promise>>[]> {\n return detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? { minConfidence } : {}))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport async function allFacesTinyYolov2(\n input: TNetInput,\n forwardParams: ITinyYolov2Options = {},\n): Promise>>[]> {\n return detectAllFaces(input, new TinyYolov2Options(forwardParams))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport const allFaces = allFacesSsdMobilenetv1;\n", "export function euclideanDistance(arr1: number[] | Float32Array, arr2: number[] | Float32Array) {\n if (arr1.length !== arr2.length) throw new Error('euclideanDistance: arr1.length !== arr2.length');\n\n const desc1 = Array.from(arr1);\n const desc2 = Array.from(arr2);\n\n return Math.sqrt(\n desc1\n .map((val, i) => val - desc2[i])\n .reduce((res, diff) => res + (diff ** 2), 0),\n );\n}\n", "import { FaceMatch } from '../classes/FaceMatch';\nimport { LabeledFaceDescriptors } from '../classes/LabeledFaceDescriptors';\nimport { euclideanDistance } from '../euclideanDistance';\nimport { WithFaceDescriptor } from '../factories/index';\n\nexport class FaceMatcher {\n private _labeledDescriptors: LabeledFaceDescriptors[]\n\n private _distanceThreshold: number\n\n constructor(\n inputs: LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>,\n distanceThreshold: number = 0.6,\n ) {\n this._distanceThreshold = distanceThreshold;\n\n const inputArray = Array.isArray(inputs) ? inputs : [inputs];\n\n if (!inputArray.length) {\n throw new Error('FaceRecognizer.constructor - expected atleast one input');\n }\n\n let count = 1;\n const createUniqueLabel = () => `person ${count++}`;\n\n this._labeledDescriptors = inputArray.map((desc) => {\n if (desc instanceof LabeledFaceDescriptors) {\n return desc;\n }\n\n if (desc instanceof Float32Array) {\n return new LabeledFaceDescriptors(createUniqueLabel(), [desc]);\n }\n\n if (desc.descriptor && desc.descriptor instanceof Float32Array) {\n return new LabeledFaceDescriptors(createUniqueLabel(), [desc.descriptor]);\n }\n\n throw new Error('FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>');\n });\n }\n\n public get labeledDescriptors(): LabeledFaceDescriptors[] { return this._labeledDescriptors; }\n\n public get distanceThreshold(): number { return this._distanceThreshold; }\n\n public computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number {\n return descriptors\n .map((d) => euclideanDistance(d, queryDescriptor))\n .reduce((d1, d2) => d1 + d2, 0)\n / (descriptors.length || 1);\n }\n\n public matchDescriptor(queryDescriptor: Float32Array): FaceMatch {\n return this.labeledDescriptors\n .map(({ descriptors, label }) => new FaceMatch(\n label,\n this.computeMeanDistance(queryDescriptor, descriptors),\n ))\n .reduce((best, curr) => (best.distance < curr.distance ? best : curr));\n }\n\n public findBestMatch(queryDescriptor: Float32Array): FaceMatch {\n const bestMatch = this.matchDescriptor(queryDescriptor);\n return bestMatch.distance < this.distanceThreshold\n ? bestMatch\n : new FaceMatch('unknown', bestMatch.distance);\n }\n\n public toJSON(): any {\n return {\n distanceThreshold: this.distanceThreshold,\n labeledDescriptors: this.labeledDescriptors.map((ld) => ld.toJSON()),\n };\n }\n\n public static fromJSON(json: any): FaceMatcher {\n const labeledDescriptors = json.labeledDescriptors\n .map((ld: any) => LabeledFaceDescriptors.fromJSON(ld));\n return new FaceMatcher(labeledDescriptors, json.distanceThreshold);\n }\n}\n", "import { TinyFaceDetector } from './TinyFaceDetector';\n\nexport * from './TinyFaceDetector';\nexport * from './TinyFaceDetectorOptions';\n\nexport function createTinyFaceDetector(weights: Float32Array) {\n const net = new TinyFaceDetector();\n net.extractWeights(weights);\n return net;\n}\n", "import { Dimensions, IDimensions } from './classes/index';\nimport { FaceDetection } from './classes/FaceDetection';\nimport { FaceLandmarks } from './classes/FaceLandmarks';\nimport { extendWithFaceDetection, isWithFaceDetection } from './factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, isWithFaceLandmarks } from './factories/WithFaceLandmarks';\n\nexport function resizeResults(results: T, dimensions: IDimensions): T {\n const { width, height } = new Dimensions(dimensions.width, dimensions.height);\n\n if (width <= 0 || height <= 0) {\n throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({ width, height })}`);\n }\n\n if (Array.isArray(results)) {\n // return results.map(obj => resizeResults(obj, { width, height })) as any as T\n return (results as Array).map((obj) => resizeResults(obj, { width, height } as IDimensions)) as any as T;\n }\n\n if (isWithFaceLandmarks(results)) {\n const resizedDetection = results.detection.forSize(width, height);\n const resizedLandmarks = results.unshiftedLandmarks.forSize(resizedDetection.box.width, resizedDetection.box.height);\n return extendWithFaceLandmarks(extendWithFaceDetection(results, resizedDetection), resizedLandmarks);\n }\n\n if (isWithFaceDetection(results)) {\n return extendWithFaceDetection(results, results.detection.forSize(width, height));\n }\n\n if (results instanceof FaceLandmarks || results instanceof FaceDetection) {\n return (results as any).forSize(width, height);\n }\n\n return results;\n}\n"], - "mappings": "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O,CAAC,EAAG,IAAM,GAAU,EAAI,MCRtB,GAA+B,CAC1C,WAAY,GACZ,SAAU,CAAC,EAAc,EAAiB,IAAuB,CAC/D,GAAM,GAA2B,EAC3B,CAAC,KAAA,GAAQ,EACf,MAAO,CAAC,MAAO,IAAM,GAAM,EAAI,MCItB,GAA2C,CACtD,WAAY,GACZ,aAAc,CAAC,cACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAc,EAKrB,MAAO,CAAC,EAHK,IACJ,GAAoB,EAAI,MAMrC,YAA+C,EAAM,EAAiB,CAIpE,GAAM,GAAqB,GAAQ,EAAS,GAAU,IAChD,EAAW,GAAO,EAAG,GACvB,EAAa,GAAa,EAAS,GAAO,EAAG,UAC3C,EAAW,EAAS,KAAO,EAAW,KAC5C,OAAS,GAAI,EAAG,EAAI,EAAU,EAAE,EAC9B,EAAa,GAAW,EAAY,EAAI,GAE1C,EAAa,GAAW,EAAY,GAAK,EAAS,MAAO,SACzD,GAAM,GAAY,GAAU,GAC5B,MAAO,IAAM,EAAY,EAAU,GClC9B,GAAM,IAAkC,CAC7C,WAAY,GACZ,SAAW,GACF,EAAC,EAAG,IAAM,GAAU,MC+FzB,GAA4B,CAChC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAkB,IAC3B,GAAiB,GCxMnB,IAAuB,UAAU,I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GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAgB,IACzB,GAAe,GE5TjB,GAAM,IAAmD,GAEnD,GAA2C,CAC/C,MAAO,GACP,UAAW,GACX,mBAAoB,GACpB,sBAAuB,GACvB,MAAO,GACP,QAAS,GACT,6BAA8B,IAO1B,YACF,EAAsB,EAAyB,CACjD,GAAS,GAAgB,EAGrB,YAA0B,EAAoB,CAClD,GAAI,CAAE,KAAgB,KAAW,CAC/B,GAAM,GAAS,GAAyB,GACxC,GAAI,IAAW,KACb,GAAS,GAAgB,MAEzB,OAAA,SAAQ,IAAI,0CAA2C,GAChD,KAGX,GAAM,GAAK,GAAS,GACpB,MAAI,GAAG,gBACL,OAAO,IAAS,GACT,GAAgB,IAGzB,GAAG,QAAQ,EAAG,YACd,EAAG,QAAQ,EAAG,cACd,EAAG,QAAQ,EAAG,OACd,EAAG,QAAQ,EAAG,QACd,EAAG,QAAQ,EAAG,qBACd,EAAG,QAAQ,EAAG,iBACd,EAAG,OAAO,EAAG,cACb,EAAG,OAAO,EAAG,WACb,EAAG,SAAS,EAAG,MAER,GAAS,IAGlB,YAAsB,EAAoB,CACxC,GAAI,MAAO,kBAAoB,aAAe,IAAiB,EAC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", + "sources": ["../src/env/isNodejs.ts", "../src/index.ts", "../node_modules/node-fetch/browser.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/tychei.js", "(disabled):crypto", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/index.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "../node_modules/string_decoder/lib/string_decoder.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/tychei.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/index.js", "(disabled):path", "(disabled):worker_threads", "(disabled):perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dense_bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/transform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ComplexAbs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ExpandDims_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LeakyRelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mean_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Neg_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/RealDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Select_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/zeros_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Scatter_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transform.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/arg_min_max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/dilation_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transform_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transform.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "../src/draw/index.ts", "../src/draw/drawContour.ts", "../src/utils/index.ts", "../src/classes/Dimensions.ts", "../src/classes/Point.ts", "../src/classes/Box.ts", "../src/classes/BoundingBox.ts", "../src/classes/ObjectDetection.ts", "../src/classes/FaceDetection.ts", "../src/ops/iou.ts", "../src/ops/minBbox.ts", "../src/ops/nonMaxSuppression.ts", "../src/ops/normalize.ts", "../src/ops/padToSquare.ts", "../src/ops/shuffleArray.ts", "../src/ops/index.ts", "../src/classes/Rect.ts", "../src/classes/FaceLandmarks.ts", "../src/classes/FaceLandmarks5.ts", "../src/classes/FaceLandmarks68.ts", "../src/classes/FaceMatch.ts", "../src/classes/LabeledBox.ts", "../src/classes/LabeledFaceDescriptors.ts", "../src/classes/PredictedBox.ts", "../src/factories/WithFaceDetection.ts", "../src/env/createBrowserEnv.ts", "../src/env/createFileSystem.ts", "../src/env/createNodejsEnv.ts", "../src/env/isBrowser.ts", "../src/env/index.ts", "../src/dom/resolveInput.ts", "../src/dom/getContext2dOrThrow.ts", "../src/draw/DrawTextField.ts", "../src/draw/DrawBox.ts", "../src/draw/drawDetections.ts", "../src/dom/isMediaLoaded.ts", "../src/dom/awaitMediaLoaded.ts", "../src/dom/bufferToImage.ts", "../src/dom/getMediaDimensions.ts", "../src/dom/createCanvas.ts", "../src/dom/imageTensorToCanvas.ts", "../src/dom/isMediaElement.ts", "../src/dom/imageToSquare.ts", "../src/dom/NetInput.ts", "../src/dom/toNetInput.ts", "../src/dom/extractFaces.ts", "../src/dom/extractFaceTensors.ts", "../src/dom/fetchOrThrow.ts", "../src/dom/fetchImage.ts", "../src/dom/fetchJson.ts", "../src/dom/fetchNetWeights.ts", "../src/common/getModelUris.ts", "../src/dom/loadWeightMap.ts", "../src/dom/matchDimensions.ts", "../src/NeuralNetwork.ts", "../src/common/depthwiseSeparableConv.ts", "../src/faceFeatureExtractor/denseBlock.ts", "../src/common/convLayer.ts", "../src/common/disposeUnusedWeightTensors.ts", "../src/common/extractConvParamsFactory.ts", "../src/common/extractFCParamsFactory.ts", "../src/common/types.ts", "../src/common/extractSeparableConvParamsFactory.ts", "../src/common/extractWeightEntryFactory.ts", "../src/common/extractWeightsFactory.ts", "../src/faceFeatureExtractor/extractorsFactory.ts", "../src/faceFeatureExtractor/extractParams.ts", "../src/common/loadConvParamsFactory.ts", "../src/faceFeatureExtractor/loadParamsFactory.ts", "../src/faceFeatureExtractor/extractParamsFromWeightMap.ts", "../src/faceFeatureExtractor/FaceFeatureExtractor.ts", "../src/common/fullyConnectedLayer.ts", "../src/faceProcessor/extractParams.ts", "../src/faceProcessor/extractParamsFromWeightMap.ts", "../src/faceProcessor/util.ts", "../src/faceProcessor/FaceProcessor.ts", "../src/faceExpressionNet/FaceExpressions.ts", "../src/faceExpressionNet/FaceExpressionNet.ts", "../src/factories/WithFaceExpressions.ts", "../src/draw/drawFaceExpressions.ts", "../src/factories/WithFaceLandmarks.ts", "../src/draw/DrawFaceLandmarks.ts", "../src/xception/extractParams.ts", "../src/xception/extractParamsFromWeightMap.ts", "../src/xception/TinyXception.ts", "../src/ageGenderNet/extractParams.ts", "../src/ageGenderNet/extractParamsFromWeightMap.ts", "../src/ageGenderNet/types.ts", "../src/ageGenderNet/AgeGenderNet.ts", "../src/faceLandmarkNet/FaceLandmark68NetBase.ts", "../src/faceLandmarkNet/FaceLandmark68Net.ts", "../src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts", "../src/faceFeatureExtractor/extractParamsTiny.ts", "../src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", "../src/faceLandmarkNet/FaceLandmark68TinyNet.ts", "../src/faceLandmarkNet/index.ts", "../src/faceRecognitionNet/scaleLayer.ts", "../src/faceRecognitionNet/convLayer.ts", "../src/faceRecognitionNet/extractParams.ts", "../src/faceRecognitionNet/extractParamsFromWeightMap.ts", "../src/faceRecognitionNet/residualLayer.ts", "../src/faceRecognitionNet/FaceRecognitionNet.ts", "../src/faceRecognitionNet/index.ts", "../src/factories/WithFaceDescriptor.ts", "../src/factories/WithAge.ts", "../src/factories/WithGender.ts", "../src/ssdMobilenetv1/extractParams.ts", "../src/ssdMobilenetv1/extractParamsFromWeightMap.ts", "../src/ssdMobilenetv1/pointwiseConvLayer.ts", "../src/ssdMobilenetv1/mobileNetV1.ts", "../src/ssdMobilenetv1/nonMaxSuppression.ts", "../src/ssdMobilenetv1/outputLayer.ts", "../src/ssdMobilenetv1/boxPredictionLayer.ts", "../src/ssdMobilenetv1/predictionLayer.ts", "../src/ssdMobilenetv1/SsdMobilenetv1Options.ts", "../src/ssdMobilenetv1/SsdMobilenetv1.ts", "../src/ssdMobilenetv1/index.ts", "../src/tinyYolov2/const.ts", "../src/tinyYolov2/config.ts", "../src/tinyYolov2/leaky.ts", "../src/tinyYolov2/convWithBatchNorm.ts", "../src/tinyYolov2/depthwiseSeparableConv.ts", "../src/tinyYolov2/extractParams.ts", "../src/tinyYolov2/extractParamsFromWeightMap.ts", "../src/tinyYolov2/TinyYolov2Options.ts", "../src/tinyYolov2/TinyYolov2Base.ts", "../src/tinyYolov2/TinyYolov2.ts", "../src/tinyYolov2/index.ts", "../src/tinyFaceDetector/TinyFaceDetectorOptions.ts", "../src/globalApi/ComposableTask.ts", "../src/globalApi/extractFacesAndComputeResults.ts", "../src/tinyFaceDetector/const.ts", "../src/tinyFaceDetector/TinyFaceDetector.ts", "../src/globalApi/nets.ts", "../src/globalApi/PredictFaceExpressionsTask.ts", "../src/globalApi/PredictAgeAndGenderTask.ts", "../src/globalApi/ComputeFaceDescriptorsTasks.ts", "../src/globalApi/DetectFaceLandmarksTasks.ts", "../src/globalApi/DetectFacesTasks.ts", "../src/globalApi/detectFaces.ts", "../src/globalApi/allFaces.ts", "../src/euclideanDistance.ts", "../src/globalApi/FaceMatcher.ts", "../src/tinyFaceDetector/index.ts", "../src/resizeResults.ts"], + "sourcesContent": ["export function isNodejs(): boolean {\n return typeof global === 'object'\n && typeof require === 'function'\n && typeof module !== 'undefined'\n // issues with gatsby.js: module.exports is undefined\n // && !!module.exports\n && typeof process !== 'undefined' && !!process.version;\n}\n", "import * as tf from '../dist/tfjs.esm';\nimport * as draw from './draw/index';\nimport * as utils from './utils/index';\nimport * as pkg from '../package.json';\n\nexport { tf, draw, utils };\n\nexport * from './ageGenderNet/index';\nexport * from './classes/index';\nexport * from './dom/index';\nexport * from './env/index';\nexport * from './faceExpressionNet/index';\nexport * from './faceLandmarkNet/index';\nexport * from './faceRecognitionNet/index';\nexport * from './factories/index';\nexport * from './globalApi/index';\nexport * from './ops/index';\nexport * from './ssdMobilenetv1/index';\nexport * from './tinyFaceDetector/index';\nexport * from './tinyYolov2/index';\nexport * from './euclideanDistance';\nexport * from './NeuralNetwork';\nexport * from './resizeResults';\n\nconst node = (typeof process !== 'undefined');\nconst browser = (typeof navigator !== 'undefined') && (typeof navigator.userAgent !== 'undefined');\nexport const version = { faceapi: pkg.version as string, node, browser };\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\n// Detect the global object, even if operating in strict mode.\n// http://stackoverflow.com/a/14387057/265298\nvar global = (0, eval)('this'),\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(typeof _scriptDir !== \"undefined\" && _scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){global.performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_MEMORY/65536,\"maximum\":2147483648/65536,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"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\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmTable=Module[\"asm\"][\"F\"];wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var ASM_CONSTS={8991:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! killThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in killThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cancelThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cancelThread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cleanupThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cleanupThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=tb;var headPtr=tb+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),tb+100>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],setThreadStatus:function(){},runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+56>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();var tb=_pthread_self();Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){spawnThread(e.data)}else if(cmd===\"cleanupThread\"){cleanupThread(d[\"thread\"])}else if(cmd===\"killThread\"){killThread(d[\"thread\"])}else if(cmd===\"cancelThread\"){cancelThread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"exitProcess\"){try{exit(d[\"returnCode\"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){if(ENVIRONMENT_IS_NODE)return require(\"os\").cpus().length;return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>=2;while(ch=GROWABLE_HEAP_U8()[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?GROWABLE_HEAP_F64()[buf++>>1]:GROWABLE_HEAP_I32()[buf]);++buf}return readAsmConstArgsArray}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension(\"WEBGL_multi_draw\"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(ext.indexOf(\"lose_context\")<0&&ext.indexOf(\"debug\")<0){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];var contextAttributes={\"alpha\":!!GROWABLE_HEAP_I32()[a+(0>>2)],\"depth\":!!GROWABLE_HEAP_I32()[a+(4>>2)],\"stencil\":!!GROWABLE_HEAP_I32()[a+(8>>2)],\"antialias\":!!GROWABLE_HEAP_I32()[a+(12>>2)],\"premultipliedAlpha\":!!GROWABLE_HEAP_I32()[a+(16>>2)],\"preserveDrawingBuffer\":!!GROWABLE_HEAP_I32()[a+(20>>2)],\"powerPreference\":__emscripten_webgl_power_preferences[powerPreference],\"failIfMajorPerformanceCaveat\":!!GROWABLE_HEAP_I32()[a+(28>>2)],majorVersion:GROWABLE_HEAP_I32()[a+(32>>2)],minorVersion:GROWABLE_HEAP_I32()[a+(36>>2)],enableExtensionsByDefault:GROWABLE_HEAP_I32()[a+(40>>2)],explicitSwapControl:GROWABLE_HEAP_I32()[a+(44>>2)],proxyContextToMainThread:GROWABLE_HEAP_I32()[a+(48>>2)],renderViaOffscreenBackBuffer:GROWABLE_HEAP_I32()[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.threadExitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! spawnThread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(64>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(100>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(76>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(172>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{spawnThread(threadParams)}return 0}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"x\":__emscripten_notify_thread_queue,\"b\":_abort,\"y\":_emscripten_asm_const_int,\"j\":_emscripten_conditional_set_current_thread_status,\"c\":_emscripten_futex_wait,\"d\":_emscripten_futex_wake,\"f\":_emscripten_get_now,\"p\":_emscripten_memcpy_big,\"z\":_emscripten_num_logical_cores,\"u\":_emscripten_receive_on_main_thread_js,\"q\":_emscripten_resize_heap,\"v\":_emscripten_set_canvas_element_size,\"i\":_emscripten_set_current_thread_status,\"t\":_emscripten_set_thread_name,\"w\":_emscripten_webgl_create_context,\"m\":_fd_close,\"n\":_fd_seek,\"g\":_fd_write,\"o\":initPthreadsJS,\"a\":wasmMemory||Module[\"wasmMemory\"],\"k\":_pthread_cleanup_pop,\"l\":_pthread_cleanup_push,\"h\":_pthread_create,\"s\":_sysconf};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _pthread_self=Module[\"_pthread_self\"]=function(){return(_pthread_self=Module[\"_pthread_self\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=function(){return(__emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var __emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=function(){return(__emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var __emscripten_thread_init=Module[\"__emscripten_thread_init\"]=function(){return(__emscripten_thread_init=Module[\"__emscripten_thread_init\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=function(){return(_emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module[\"__emscripten_allow_main_runtime_queued_calls\"]=9880;var __emscripten_main_thread_futex=Module[\"__emscripten_main_thread_futex\"]=11368;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){readyPromiseResolve(Module);postMessage({\"cmd\":\"loaded\"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exitProcess\",\"returnCode\":status});throw new ExitStatus(status)}else{}}if(noExitRuntime){}else{PThread.terminateAllThreads();EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run();\n\n\n return WasmBackendModuleThreadedSimd.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"g\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"m\"];removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _abort(){abort()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_size(){return HEAPU8.length}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}var asmLibraryArg={\"a\":_abort,\"d\":_emscripten_memcpy_big,\"e\":_emscripten_resize_heap,\"f\":_fd_close,\"c\":_fd_seek,\"b\":_fd_write};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"h\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"i\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"j\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"k\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"l\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"n\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"o\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"p\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"q\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"r\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"s\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"t\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"u\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"v\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"w\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"x\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"y\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"z\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};Module[\"cwrap\"]=cwrap;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n return WasmBackendModule.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:Module[\"_pthread_self\"]()})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance;moduleLoaded()})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;Module[\"__emscripten_thread_init\"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){if(ex instanceof Module[\"ExitStatus\"]){if(Module[\"getNoExitRuntime\"]()){}else{Module[\"PThread\"].threadExit(ex.status)}}else{Module[\"PThread\"].threadExit(-2);throw ex}}}}else if(e.data.cmd===\"cancel\"){if(Module[\"_pthread_self\"]()){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(Module[\"_pthread_self\"]()){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, "export * from './drawContour';\nexport * from './drawDetections';\nexport * from './drawFaceExpressions';\nexport * from './DrawBox';\nexport * from './DrawFaceLandmarks';\nexport * from './DrawTextField';\n", "import { Point } from '../classes/index';\n\nexport function drawContour(\n ctx: CanvasRenderingContext2D,\n points: Point[],\n isClosed: boolean = false,\n) {\n ctx.beginPath();\n\n points.slice(1).forEach(({ x, y }, prevIdx) => {\n const from = points[prevIdx];\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(x, y);\n });\n\n if (isClosed) {\n const from = points[points.length - 1];\n const to = points[0];\n if (!from || !to) {\n return;\n }\n\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(to.x, to.y);\n }\n\n ctx.stroke();\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Point } from '../classes/index';\nimport { Dimensions, IDimensions } from '../classes/Dimensions';\n\nexport function isTensor(tensor: any, dim: number) {\n return tensor instanceof tf.Tensor && tensor.shape.length === dim;\n}\n\nexport function isTensor1D(tensor: any): tensor is tf.Tensor1D {\n return isTensor(tensor, 1);\n}\n\nexport function isTensor2D(tensor: any): tensor is tf.Tensor2D {\n return isTensor(tensor, 2);\n}\n\nexport function isTensor3D(tensor: any): tensor is tf.Tensor3D {\n return isTensor(tensor, 3);\n}\n\nexport function isTensor4D(tensor: any): tensor is tf.Tensor4D {\n return isTensor(tensor, 4);\n}\n\nexport function isFloat(num: number) {\n return num % 1 !== 0;\n}\n\nexport function isEven(num: number) {\n return num % 2 === 0;\n}\n\nexport function round(num: number, prec: number = 2) {\n const f = 10 ** prec;\n return Math.floor(num * f) / f;\n}\n\nexport function isDimensions(obj: any): boolean {\n return obj && obj.width && obj.height;\n}\n\nexport function computeReshapedDimensions({ width, height }: IDimensions, inputSize: number) {\n const scale = inputSize / Math.max(height, width);\n return new Dimensions(Math.round(width * scale), Math.round(height * scale));\n}\n\nexport function getCenterPoint(pts: Point[]): Point {\n return pts.reduce((sum, pt) => sum.add(pt), new Point(0, 0))\n .div(new Point(pts.length, pts.length));\n}\n\nexport function range(num: number, start: number, step: number): number[] {\n return Array(num).fill(0).map((_, i) => start + (i * step));\n}\n\nexport function isValidNumber(num: any) {\n return !!num && (num !== Infinity) && (num !== -Infinity) && !Number.isNaN(num) || num === 0;\n}\n\nexport function isValidProbablitiy(num: any) {\n return isValidNumber(num) && num >= 0 && num <= 1.0;\n}\n", "import { isValidNumber } from '../utils/index';\n\nexport interface IDimensions {\n width: number\n height: number\n}\n\nexport class Dimensions implements IDimensions {\n private _width: number\n\n private _height: number\n\n constructor(width: number, height: number) {\n if (!isValidNumber(width) || !isValidNumber(height)) {\n throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({ width, height })}`);\n }\n\n this._width = width;\n this._height = height;\n }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public reverse(): Dimensions {\n return new Dimensions(1 / this.width, 1 / this.height);\n }\n}\n", "export interface IPoint {\n x: number\n y: number\n}\n\nexport class Point implements IPoint {\n private _x: number\n\n private _y: number\n\n constructor(x: number, y: number) {\n this._x = x;\n this._y = y;\n }\n\n get x(): number { return this._x; }\n\n get y(): number { return this._y; }\n\n public add(pt: IPoint): Point {\n return new Point(this.x + pt.x, this.y + pt.y);\n }\n\n public sub(pt: IPoint): Point {\n return new Point(this.x - pt.x, this.y - pt.y);\n }\n\n public mul(pt: IPoint): Point {\n return new Point(this.x * pt.x, this.y * pt.y);\n }\n\n public div(pt: IPoint): Point {\n return new Point(this.x / pt.x, this.y / pt.y);\n }\n\n public abs(): Point {\n return new Point(Math.abs(this.x), Math.abs(this.y));\n }\n\n public magnitude(): number {\n return Math.sqrt((this.x ** 2) + (this.y ** 2));\n }\n\n public floor(): Point {\n return new Point(Math.floor(this.x), Math.floor(this.y));\n }\n}\n", "import { isDimensions, isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { IDimensions } from './Dimensions';\nimport { Point } from './Point';\nimport { IRect } from './Rect';\n\nexport class Box implements IBoundingBox, IRect {\n public static isRect(rect: any): boolean {\n return !!rect && [rect.x, rect.y, rect.width, rect.height].every(isValidNumber);\n }\n\n public static assertIsValidBox(box: any, callee: string, allowNegativeDimensions: boolean = false) {\n if (!Box.isRect(box)) {\n throw new Error(`${callee} - invalid box: ${JSON.stringify(box)}, expected object with properties x, y, width, height`);\n }\n\n if (!allowNegativeDimensions && (box.width < 0 || box.height < 0)) {\n throw new Error(`${callee} - width (${box.width}) and height (${box.height}) must be positive numbers`);\n }\n }\n\n private _x: number\n\n private _y: number\n\n private _width: number\n\n private _height: number\n\n constructor(_box: IBoundingBox | IRect, allowNegativeDimensions: boolean = true) {\n const box = (_box || {}) as any;\n\n const isBbox = [box.left, box.top, box.right, box.bottom].every(isValidNumber);\n const isRect = [box.x, box.y, box.width, box.height].every(isValidNumber);\n\n if (!isRect && !isBbox) {\n throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(box)}`);\n }\n\n const [x, y, width, height] = isRect\n ? [box.x, box.y, box.width, box.height]\n : [box.left, box.top, box.right - box.left, box.bottom - box.top];\n\n Box.assertIsValidBox({\n x, y, width, height,\n }, 'Box.constructor', allowNegativeDimensions);\n\n this._x = x;\n this._y = y;\n this._width = width;\n this._height = height;\n }\n\n public get x(): number { return this._x; }\n\n public get y(): number { return this._y; }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public get left(): number { return this.x; }\n\n public get top(): number { return this.y; }\n\n public get right(): number { return this.x + this.width; }\n\n public get bottom(): number { return this.y + this.height; }\n\n public get area(): number { return this.width * this.height; }\n\n public get topLeft(): Point { return new Point(this.left, this.top); }\n\n public get topRight(): Point { return new Point(this.right, this.top); }\n\n public get bottomLeft(): Point { return new Point(this.left, this.bottom); }\n\n public get bottomRight(): Point { return new Point(this.right, this.bottom); }\n\n public round(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.round(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public floor(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.floor(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public toSquare(): Box {\n let {\n x, y, width, height,\n } = this;\n const diff = Math.abs(width - height);\n if (width < height) {\n x -= (diff / 2);\n width += diff;\n }\n if (height < width) {\n y -= (diff / 2);\n height += diff;\n }\n\n return new Box({\n x, y, width, height,\n });\n }\n\n public rescale(s: IDimensions | number): Box {\n const scaleX = isDimensions(s) ? (s as IDimensions).width : s as number;\n const scaleY = isDimensions(s) ? (s as IDimensions).height : s as number;\n return new Box({\n x: this.x * scaleX,\n y: this.y * scaleY,\n width: this.width * scaleX,\n height: this.height * scaleY,\n });\n }\n\n public pad(padX: number, padY: number): Box {\n const [x, y, width, height] = [\n this.x - (padX / 2),\n this.y - (padY / 2),\n this.width + padX,\n this.height + padY,\n ];\n return new Box({\n x, y, width, height,\n });\n }\n\n public clipAtImageBorders(imgWidth: number, imgHeight: number): Box {\n const {\n x, y, right, bottom,\n } = this;\n const clippedX = Math.max(x, 0);\n const clippedY = Math.max(y, 0);\n\n const newWidth = right - clippedX;\n const newHeight = bottom - clippedY;\n const clippedWidth = Math.min(newWidth, imgWidth - clippedX);\n const clippedHeight = Math.min(newHeight, imgHeight - clippedY);\n\n return (new Box({\n x: clippedX, y: clippedY, width: clippedWidth, height: clippedHeight,\n })).floor();\n }\n\n public shift(sx: number, sy: number): Box {\n const { width, height } = this;\n const x = this.x + sx;\n const y = this.y + sy;\n\n return new Box({\n x, y, width, height,\n });\n }\n\n public padAtBorders(imageHeight: number, imageWidth: number) {\n const w = this.width + 1;\n const h = this.height + 1;\n\n const dx = 1;\n const dy = 1;\n let edx = w;\n let edy = h;\n\n let x = this.left;\n let y = this.top;\n let ex = this.right;\n let ey = this.bottom;\n\n if (ex > imageWidth) {\n edx = -ex + imageWidth + w;\n ex = imageWidth;\n }\n if (ey > imageHeight) {\n edy = -ey + imageHeight + h;\n ey = imageHeight;\n }\n if (x < 1) {\n edy = 2 - x;\n x = 1;\n }\n if (y < 1) {\n edy = 2 - y;\n y = 1;\n }\n\n return {\n dy, edy, dx, edx, y, ey, x, ex, w, h,\n };\n }\n\n public calibrate(region: Box) {\n return new Box({\n left: this.left + (region.left * this.width),\n top: this.top + (region.top * this.height),\n right: this.right + (region.right * this.width),\n bottom: this.bottom + (region.bottom * this.height),\n }).toSquare().round();\n }\n}\n", "import { Box } from './Box';\n\nexport interface IBoundingBox {\n left: number\n top: number\n right: number\n bottom: number\n}\n\nexport class BoundingBox extends Box implements IBoundingBox {\n constructor(left: number, top: number, right: number, bottom: number, allowNegativeDimensions: boolean = false) {\n super({\n left, top, right, bottom,\n }, allowNegativeDimensions);\n }\n}\n", "import { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { IRect, Rect } from './Rect';\n\nexport class ObjectDetection {\n private _score: number\n\n private _classScore: number\n\n private _className: string\n\n private _box: Rect\n\n private _imageDims: Dimensions\n\n constructor(\n score: number,\n classScore: number,\n className: string,\n relativeBox: IRect,\n imageDims: IDimensions,\n ) {\n this._imageDims = new Dimensions(imageDims.width, imageDims.height);\n this._score = score;\n this._classScore = classScore;\n this._className = className;\n this._box = new Box(relativeBox).rescale(this._imageDims);\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n\n public get className(): string { return this._className; }\n\n public get box(): Box { return this._box; }\n\n public get imageDims(): Dimensions { return this._imageDims; }\n\n public get imageWidth(): number { return this.imageDims.width; }\n\n public get imageHeight(): number { return this.imageDims.height; }\n\n public get relativeBox(): Box { return new Box(this._box).rescale(this.imageDims.reverse()); }\n\n public forSize(width: number, height: number): ObjectDetection {\n return new ObjectDetection(\n this.score,\n this.classScore,\n this.className,\n this.relativeBox,\n { width, height },\n );\n }\n}\n", "import { Box } from './Box';\nimport { IDimensions } from './Dimensions';\nimport { ObjectDetection } from './ObjectDetection';\nimport { Rect } from './Rect';\n\nexport interface IFaceDetecion {\n score: number\n box: Box\n}\n\nexport class FaceDetection extends ObjectDetection implements IFaceDetecion {\n constructor(\n score: number,\n relativeBox: Rect,\n imageDims: IDimensions,\n ) {\n super(score, score, '', relativeBox, imageDims);\n }\n\n public forSize(width: number, height: number): FaceDetection {\n const { score, relativeBox, imageDims } = super.forSize(width, height);\n return new FaceDetection(score, relativeBox, imageDims);\n }\n}\n", "import { Box } from '../classes/Box';\n\nexport function iou(box1: Box, box2: Box, isIOU: boolean = true) {\n const width = Math.max(0.0, Math.min(box1.right, box2.right) - Math.max(box1.left, box2.left));\n const height = Math.max(0.0, Math.min(box1.bottom, box2.bottom) - Math.max(box1.top, box2.top));\n const interSection = width * height;\n\n return isIOU\n ? interSection / (box1.area + box2.area - interSection)\n : interSection / Math.min(box1.area, box2.area);\n}\n", "import { BoundingBox, IPoint } from '../classes/index';\n\nexport function minBbox(pts: IPoint[]): BoundingBox {\n const xs = pts.map((pt) => pt.x);\n const ys = pts.map((pt) => pt.y);\n const minX = xs.reduce((min, x) => (x < min ? x : min), Infinity);\n const minY = ys.reduce((min, y) => (y < min ? y : min), Infinity);\n const maxX = xs.reduce((max, x) => (max < x ? x : max), 0);\n const maxY = ys.reduce((max, y) => (max < y ? y : max), 0);\n\n return new BoundingBox(minX, minY, maxX, maxY);\n}\n", "import { Box } from '../classes/Box';\nimport { iou } from './iou';\n\nexport function nonMaxSuppression(\n boxes: Box[],\n scores: number[],\n iouThreshold: number,\n isIOU: boolean = true,\n): number[] {\n let indicesSortedByScore = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .sort((c1, c2) => c1.score - c2.score)\n .map((c) => c.boxIndex);\n\n const pick: number[] = [];\n\n while (indicesSortedByScore.length > 0) {\n const curr = indicesSortedByScore.pop() as number;\n pick.push(curr);\n\n const indices = indicesSortedByScore;\n\n const outputs: number[] = [];\n for (let i = 0; i < indices.length; i++) {\n const idx = indices[i];\n\n const currBox = boxes[curr];\n const idxBox = boxes[idx];\n\n outputs.push(iou(currBox, idxBox, isIOU));\n }\n\n indicesSortedByScore = indicesSortedByScore.filter(\n (_, j) => outputs[j] <= iouThreshold,\n );\n }\n\n return pick;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function normalize(x: tf.Tensor4D, meanRgb: number[]): tf.Tensor4D {\n return tf.tidy(() => {\n const [r, g, b] = meanRgb;\n const avg_r = tf.fill([...x.shape.slice(0, 3), 1], r, 'float32');\n const avg_g = tf.fill([...x.shape.slice(0, 3), 1], g, 'float32');\n const avg_b = tf.fill([...x.shape.slice(0, 3), 1], b, 'float32');\n const avg_rgb = tf.concat([avg_r, avg_g, avg_b], 3);\n\n return tf.sub(x, avg_rgb);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n/**\n * Pads the smaller dimension of an image tensor with zeros, such that width === height.\n *\n * @param imgTensor The image tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The padded tensor with width === height.\n */\nexport function padToSquare(\n imgTensor: tf.Tensor4D,\n isCenterImage: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const [height, width] = imgTensor.shape.slice(1);\n if (height === width) {\n return imgTensor;\n }\n\n const dimDiff = Math.abs(height - width);\n const paddingAmount = Math.round(dimDiff * (isCenterImage ? 0.5 : 1));\n const paddingAxis = height > width ? 2 : 1;\n\n const createPaddingTensor = (paddingAmountLocal: number): tf.Tensor => {\n const paddingTensorShape = imgTensor.shape.slice();\n paddingTensorShape[paddingAxis] = paddingAmountLocal;\n return tf.fill(paddingTensorShape, 0, 'float32');\n };\n\n const paddingTensorAppend = createPaddingTensor(paddingAmount);\n const remainingPaddingAmount = dimDiff - (paddingTensorAppend.shape[paddingAxis] as number);\n\n const paddingTensorPrepend = isCenterImage && remainingPaddingAmount\n ? createPaddingTensor(remainingPaddingAmount)\n : null;\n\n const tensorsToStack = [\n paddingTensorPrepend,\n imgTensor,\n paddingTensorAppend,\n ]\n .filter((t) => !!t)\n // .map((t: tf.Tensor) => t.toFloat()) as tf.Tensor4D[]\n .map((t: tf.Tensor) => tf.cast(t, 'float32')) as tf.Tensor4D[];\n return tf.concat(tensorsToStack, paddingAxis);\n });\n}\n", "export function shuffleArray(inputArray: any[]) {\n const array = inputArray.slice();\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const x = array[i];\n array[i] = array[j];\n array[j] = x;\n }\n return array;\n}\n", "export * from './iou';\nexport * from './minBbox';\nexport * from './nonMaxSuppression';\nexport * from './normalize';\nexport * from './padToSquare';\nexport * from './shuffleArray';\n\nexport function sigmoid(x: number) {\n return 1 / (1 + Math.exp(-x));\n}\n\nexport function inverseSigmoid(x: number) {\n return Math.log(x / (1 - x));\n}\n", "import { Box } from './Box';\n\nexport interface IRect {\n x: number\n y: number\n width: number\n height: number\n}\n\nexport class Rect extends Box implements IRect {\n constructor(x: number, y: number, width: number, height: number, allowNegativeDimensions: boolean = false) {\n super({\n x, y, width, height,\n }, allowNegativeDimensions);\n }\n}\n", "import { minBbox } from '../ops/index';\nimport { getCenterPoint } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { FaceDetection } from './FaceDetection';\nimport { Point } from './Point';\nimport { IRect, Rect } from './Rect';\n\n// face alignment constants\nconst relX = 0.5;\nconst relY = 0.43;\nconst relScale = 0.45;\n\nexport interface IFaceLandmarks {\n positions: Point[]\n shift: Point\n}\n\nexport class FaceLandmarks implements IFaceLandmarks {\n protected _shift: Point\n\n protected _positions: Point[]\n\n protected _imgDims: Dimensions\n\n constructor(\n relativeFaceLandmarkPositions: Point[],\n imgDims: IDimensions,\n shift: Point = new Point(0, 0),\n ) {\n const { width, height } = imgDims;\n this._imgDims = new Dimensions(width, height);\n this._shift = shift;\n this._positions = relativeFaceLandmarkPositions.map(\n (pt) => pt.mul(new Point(width, height)).add(shift),\n );\n }\n\n public get shift(): Point { return new Point(this._shift.x, this._shift.y); }\n\n public get imageWidth(): number { return this._imgDims.width; }\n\n public get imageHeight(): number { return this._imgDims.height; }\n\n public get positions(): Point[] { return this._positions; }\n\n public get relativePositions(): Point[] {\n return this._positions.map(\n (pt) => pt.sub(this._shift).div(new Point(this.imageWidth, this.imageHeight)),\n );\n }\n\n public forSize(width: number, height: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n { width, height },\n );\n }\n\n public shiftBy(x: number, y: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n this._imgDims,\n new Point(x, y),\n );\n }\n\n public shiftByPoint(pt: Point): T {\n return this.shiftBy(pt.x, pt.y);\n }\n\n /**\n * Aligns the face landmarks after face detection from the relative positions of the faces\n * bounding box, or it's current shift. This function should be used to align the face images\n * after face detection has been performed, before they are passed to the face recognition net.\n * This will make the computed face descriptor more accurate.\n *\n * @param detection (optional) The bounding box of the face or the face detection result. If\n * no argument was passed the position of the face landmarks are assumed to be relative to\n * it's current shift.\n * @returns The bounding box of the aligned face.\n */\n public align(\n detection?: FaceDetection | IRect | IBoundingBox | null,\n options: { useDlibAlignment?: boolean, minBoxPadding?: number } = { },\n ): Box {\n if (detection) {\n const box = detection instanceof FaceDetection\n ? detection.box.floor()\n : new Box(detection);\n\n return this.shiftBy(box.x, box.y).align(null, options);\n }\n\n const { useDlibAlignment, minBoxPadding } = { useDlibAlignment: false, minBoxPadding: 0.2, ...options };\n\n if (useDlibAlignment) {\n return this.alignDlib();\n }\n\n return this.alignMinBbox(minBoxPadding);\n }\n\n private alignDlib(): Box {\n const centers = this.getRefPointsForAlignment();\n\n const [leftEyeCenter, rightEyeCenter, mouthCenter] = centers;\n const distToMouth = (pt: Point) => mouthCenter.sub(pt).magnitude();\n const eyeToMouthDist = (distToMouth(leftEyeCenter) + distToMouth(rightEyeCenter)) / 2;\n\n const size = Math.floor(eyeToMouthDist / relScale);\n\n const refPoint = getCenterPoint(centers);\n // TODO: pad in case rectangle is out of image bounds\n const x = Math.floor(Math.max(0, refPoint.x - (relX * size)));\n const y = Math.floor(Math.max(0, refPoint.y - (relY * size)));\n\n return new Rect(x, y, Math.min(size, this.imageWidth + x), Math.min(size, this.imageHeight + y));\n }\n\n private alignMinBbox(padding: number): Box {\n const box = minBbox(this.positions);\n return box.pad(box.width * padding, box.height * padding);\n }\n\n protected getRefPointsForAlignment(): Point[] {\n throw new Error('getRefPointsForAlignment not implemented by base class');\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks5 extends FaceLandmarks {\n protected getRefPointsForAlignment(): Point[] {\n const pts = this.positions;\n return [\n pts[0],\n pts[1],\n getCenterPoint([pts[3], pts[4]]),\n ];\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks68 extends FaceLandmarks {\n public getJawOutline(): Point[] {\n return this.positions.slice(0, 17);\n }\n\n public getLeftEyeBrow(): Point[] {\n return this.positions.slice(17, 22);\n }\n\n public getRightEyeBrow(): Point[] {\n return this.positions.slice(22, 27);\n }\n\n public getNose(): Point[] {\n return this.positions.slice(27, 36);\n }\n\n public getLeftEye(): Point[] {\n return this.positions.slice(36, 42);\n }\n\n public getRightEye(): Point[] {\n return this.positions.slice(42, 48);\n }\n\n public getMouth(): Point[] {\n return this.positions.slice(48, 68);\n }\n\n protected getRefPointsForAlignment(): Point[] {\n return [\n this.getLeftEye(),\n this.getRightEye(),\n this.getMouth(),\n ].map(getCenterPoint);\n }\n}\n", "import { round } from '../utils/index';\n\nexport interface IFaceMatch {\n label: string\n distance: number\n}\n\nexport class FaceMatch implements IFaceMatch {\n private _label: string\n\n private _distance: number\n\n constructor(label: string, distance: number) {\n this._label = label;\n this._distance = distance;\n }\n\n public get label(): string { return this._label; }\n\n public get distance(): number { return this._distance; }\n\n public toString(withDistance: boolean = true): string {\n return `${this.label}${withDistance ? ` (${round(this.distance)})` : ''}`;\n }\n}\n", "import { isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { IRect } from './Rect';\n\nexport class LabeledBox extends Box {\n public static assertIsValidLabeledBox(box: any, callee: string) {\n Box.assertIsValidBox(box, callee);\n\n if (!isValidNumber(box.label)) {\n throw new Error(`${callee} - expected property label (${box.label}) to be a number`);\n }\n }\n\n private _label: number\n\n constructor(box: IBoundingBox | IRect | any, label: number) {\n super(box);\n this._label = label;\n }\n\n public get label(): number { return this._label; }\n}\n", "export class LabeledFaceDescriptors {\n private _label: string\n\n private _descriptors: Float32Array[]\n\n constructor(label: string, descriptors: Float32Array[]) {\n if (!(typeof label === 'string')) {\n throw new Error('LabeledFaceDescriptors - constructor expected label to be a string');\n }\n\n if (!Array.isArray(descriptors) || descriptors.some((desc) => !(desc instanceof Float32Array))) {\n throw new Error('LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array');\n }\n\n this._label = label;\n this._descriptors = descriptors;\n }\n\n public get label(): string { return this._label; }\n\n public get descriptors(): Float32Array[] { return this._descriptors; }\n\n public toJSON(): any {\n return {\n label: this.label,\n descriptors: this.descriptors.map((d) => Array.from(d)),\n };\n }\n\n public static fromJSON(json: any): LabeledFaceDescriptors {\n const descriptors = json.descriptors.map((d: any) => new Float32Array(d));\n return new LabeledFaceDescriptors(json.label, descriptors);\n }\n}\n", "import { isValidProbablitiy } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { LabeledBox } from './LabeledBox';\nimport { IRect } from './Rect';\n\nexport class PredictedBox extends LabeledBox {\n public static assertIsValidPredictedBox(box: any, callee: string) {\n LabeledBox.assertIsValidLabeledBox(box, callee);\n\n if (\n !isValidProbablitiy(box.score)\n || !isValidProbablitiy(box.classScore)\n ) {\n throw new Error(`${callee} - expected properties score (${box.score}) and (${box.classScore}) to be a number between [0, 1]`);\n }\n }\n\n private _score: number\n\n private _classScore: number\n\n constructor(box: IBoundingBox | IRect | any, label: number, score: number, classScore: number) {\n super(box, label);\n this._score = score;\n this._classScore = classScore;\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\n\nexport type WithFaceDetection = TSource & {\n detection: FaceDetection\n}\n\nexport function isWithFaceDetection(obj: any): obj is WithFaceDetection<{}> {\n return obj.detection instanceof FaceDetection;\n}\n\nexport function extendWithFaceDetection<\n TSource\n>(\n sourceObj: TSource,\n detection: FaceDetection,\n): WithFaceDetection {\n const extension = { detection };\n return { ...sourceObj, ...extension };\n}\n", "import { Environment } from './types';\n\nexport function createBrowserEnv(): Environment {\n const fetch = window.fetch;\n if (!fetch) throw new Error('fetch - missing fetch implementation for browser environment');\n\n const readFile = () => {\n throw new Error('readFile - filesystem not available for browser environment');\n };\n\n return {\n Canvas: HTMLCanvasElement,\n CanvasRenderingContext2D,\n Image: HTMLImageElement,\n ImageData,\n Video: HTMLVideoElement,\n createCanvasElement: () => document.createElement('canvas'),\n createImageElement: () => document.createElement('img'),\n fetch,\n readFile,\n };\n}\n", "import { FileSystem } from './types';\n\nexport function createFileSystem(fs?: any): FileSystem {\n let requireFsError = '';\n\n if (!fs) {\n try {\n // eslint-disable-next-line global-require\n fs = require('fs');\n } catch (err) {\n requireFsError = err.toString();\n }\n }\n\n const readFile = fs\n ? (filePath: string) => new Promise((resolve, reject) => {\n fs.readFile(filePath, (err: any, buffer: Buffer) => (err ? reject(err) : resolve(buffer)));\n })\n : () => {\n throw new Error(`readFile - failed to require fs in nodejs environment with error: ${requireFsError}`);\n };\n\n return {\n readFile,\n };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { createFileSystem } from './createFileSystem';\nimport { Environment } from './types';\n\nexport function createNodejsEnv(): Environment {\n // eslint-disable-next-line dot-notation\n const Canvas = global['Canvas'] || global.HTMLCanvasElement;\n const Image = global.Image || global.HTMLImageElement;\n\n const createCanvasElement = () => {\n if (Canvas) return new Canvas();\n throw new Error('createCanvasElement - missing Canvas implementation for nodejs environment');\n };\n\n const createImageElement = () => {\n if (Image) return new Image();\n throw new Error('createImageElement - missing Image implementation for nodejs environment');\n };\n\n const fetch = global.fetch;\n // if (!fetch) throw new Error('fetch - missing fetch implementation for nodejs environment');\n\n const fileSystem = createFileSystem();\n\n return {\n Canvas: Canvas || class {},\n CanvasRenderingContext2D: global.CanvasRenderingContext2D || class {},\n Image: Image || class {},\n ImageData: global.ImageData || class {},\n Video: global.HTMLVideoElement || class {},\n createCanvasElement,\n createImageElement,\n fetch,\n ...fileSystem,\n };\n}\n", "export function isBrowser(): boolean {\n return typeof window === 'object'\n && typeof document !== 'undefined'\n && typeof HTMLImageElement !== 'undefined'\n && typeof HTMLCanvasElement !== 'undefined'\n && typeof HTMLVideoElement !== 'undefined'\n && typeof ImageData !== 'undefined'\n && typeof CanvasRenderingContext2D !== 'undefined';\n}\n", "import { createBrowserEnv } from './createBrowserEnv';\nimport { createFileSystem } from './createFileSystem';\nimport { createNodejsEnv } from './createNodejsEnv';\nimport { isBrowser } from './isBrowser';\nimport { isNodejs } from './isNodejs';\nimport { Environment } from './types';\n\nlet environment: Environment | null;\n\nfunction getEnv(): Environment {\n if (!environment) {\n throw new Error('getEnv - environment is not defined, check isNodejs() and isBrowser()');\n }\n return environment;\n}\n\nfunction setEnv(env: Environment) {\n environment = env;\n}\n\nfunction initialize() {\n // check for isBrowser() first to prevent electron renderer process\n // to be initialized with wrong environment due to isNodejs() returning true\n if (isBrowser()) return setEnv(createBrowserEnv());\n if (isNodejs()) return setEnv(createNodejsEnv());\n return null;\n}\n\nfunction monkeyPatch(env: Partial) {\n if (!environment) {\n initialize();\n }\n\n if (!environment) {\n throw new Error('monkeyPatch - environment is not defined, check isNodejs() and isBrowser()');\n }\n\n const { Canvas = environment.Canvas, Image = environment.Image } = env;\n environment.Canvas = Canvas;\n environment.Image = Image;\n environment.createCanvasElement = env.createCanvasElement || (() => new Canvas());\n environment.createImageElement = env.createImageElement || (() => new Image());\n\n environment.ImageData = env.ImageData || environment.ImageData;\n environment.Video = env.Video || environment.Video;\n environment.fetch = env.fetch || environment.fetch;\n environment.readFile = env.readFile || environment.readFile;\n}\n\nexport const env = {\n getEnv,\n setEnv,\n initialize,\n createBrowserEnv,\n createFileSystem,\n createNodejsEnv,\n monkeyPatch,\n isBrowser,\n isNodejs,\n};\n\ninitialize();\n\nexport * from './types';\n", "import { env } from '../env/index';\n\nexport function resolveInput(arg: string | any) {\n if (!env.isNodejs() && typeof arg === 'string') {\n return document.getElementById(arg);\n }\n return arg;\n}\n", "import { env } from '../env/index';\nimport { resolveInput } from './resolveInput';\n\nexport function getContext2dOrThrow(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D): CanvasRenderingContext2D {\n const { Canvas, CanvasRenderingContext2D } = env.getEnv();\n\n if (canvasArg instanceof CanvasRenderingContext2D) {\n return canvasArg;\n }\n\n const canvas = resolveInput(canvasArg);\n\n if (!(canvas instanceof Canvas)) {\n throw new Error('resolveContext2d - expected canvas to be of instance of Canvas');\n }\n\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n throw new Error('resolveContext2d - canvas 2d context is null');\n }\n\n return ctx;\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IDimensions, IPoint } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { resolveInput } from '../dom/resolveInput';\n\n// eslint-disable-next-line no-shadow\nexport enum AnchorPosition {\n // eslint-disable-next-line no-unused-vars\n TOP_LEFT = 'TOP_LEFT',\n // eslint-disable-next-line no-unused-vars\n TOP_RIGHT = 'TOP_RIGHT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_LEFT = 'BOTTOM_LEFT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_RIGHT = 'BOTTOM_RIGHT'\n}\n\nexport interface IDrawTextFieldOptions {\n anchorPosition?: AnchorPosition\n backgroundColor?: string\n fontColor?: string\n fontSize?: number\n fontStyle?: string\n padding?: number\n}\n\nexport class DrawTextFieldOptions implements IDrawTextFieldOptions {\n public anchorPosition: AnchorPosition\n\n public backgroundColor: string\n\n public fontColor: string\n\n public fontSize: number\n\n public fontStyle: string\n\n public padding: number\n\n constructor(options: IDrawTextFieldOptions = {}) {\n const {\n anchorPosition, backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = options;\n this.anchorPosition = anchorPosition || AnchorPosition.TOP_LEFT;\n this.backgroundColor = backgroundColor || 'rgba(0, 0, 0, 0.5)';\n this.fontColor = fontColor || 'rgba(255, 255, 255, 1)';\n this.fontSize = fontSize || 14;\n this.fontStyle = fontStyle || 'Georgia';\n this.padding = padding || 4;\n }\n}\n\nexport class DrawTextField {\n public text: string[]\n\n public anchor : IPoint\n\n public options: DrawTextFieldOptions\n\n constructor(\n text: string | string[] | DrawTextField,\n anchor: IPoint,\n options: IDrawTextFieldOptions = {},\n ) {\n // eslint-disable-next-line no-nested-ternary\n this.text = typeof text === 'string'\n ? [text]\n : (text instanceof DrawTextField ? text.text : text);\n this.anchor = anchor;\n this.options = new DrawTextFieldOptions(options);\n }\n\n measureWidth(ctx: CanvasRenderingContext2D): number {\n const { padding } = this.options;\n return this.text.map((l) => ctx.measureText(l).width).reduce((w0, w1) => (w0 < w1 ? w1 : w0), 0) + (2 * padding);\n }\n\n measureHeight(): number {\n const { fontSize, padding } = this.options;\n return this.text.length * fontSize + (2 * padding);\n }\n\n getUpperLeft(ctx: CanvasRenderingContext2D, canvasDims?: IDimensions): IPoint {\n const { anchorPosition } = this.options;\n const isShiftLeft = anchorPosition === AnchorPosition.BOTTOM_RIGHT || anchorPosition === AnchorPosition.TOP_RIGHT;\n const isShiftTop = anchorPosition === AnchorPosition.BOTTOM_LEFT || anchorPosition === AnchorPosition.BOTTOM_RIGHT;\n\n const textFieldWidth = this.measureWidth(ctx);\n const textFieldHeight = this.measureHeight();\n const x = (isShiftLeft ? this.anchor.x - textFieldWidth : this.anchor.x);\n const y = isShiftTop ? this.anchor.y - textFieldHeight : this.anchor.y;\n\n // adjust anchor if text box exceeds canvas borders\n if (canvasDims) {\n const { width, height } = canvasDims;\n const newX = Math.max(Math.min(x, width - textFieldWidth), 0);\n const newY = Math.max(Math.min(y, height - textFieldHeight), 0);\n return { x: newX, y: newY };\n }\n return { x, y };\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const canvas = resolveInput(canvasArg);\n const ctx = getContext2dOrThrow(canvas);\n\n const {\n backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = this.options;\n\n ctx.font = `${fontSize}px ${fontStyle}`;\n const maxTextWidth = this.measureWidth(ctx);\n const textHeight = this.measureHeight();\n\n ctx.fillStyle = backgroundColor;\n const upperLeft = this.getUpperLeft(ctx, canvas);\n ctx.fillRect(upperLeft.x, upperLeft.y, maxTextWidth, textHeight);\n\n ctx.fillStyle = fontColor;\n this.text.forEach((textLine, i) => {\n const x = padding + upperLeft.x;\n const y = padding + upperLeft.y + ((i + 1) * fontSize);\n ctx.fillText(textLine, x, y);\n });\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { Box, IBoundingBox, IRect } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport {\n AnchorPosition, DrawTextField, DrawTextFieldOptions, IDrawTextFieldOptions,\n} from './DrawTextField';\n\nexport interface IDrawBoxOptions {\n boxColor?: string\n lineWidth?: number\n drawLabelOptions?: IDrawTextFieldOptions\n label?: string\n}\n\nexport class DrawBoxOptions {\n public boxColor: string\n\n public lineWidth: number\n\n public drawLabelOptions: DrawTextFieldOptions\n\n public label?: string\n\n constructor(options: IDrawBoxOptions = {}) {\n const {\n boxColor, lineWidth, label, drawLabelOptions,\n } = options;\n this.boxColor = boxColor || 'rgba(0, 0, 255, 1)';\n this.lineWidth = lineWidth || 2;\n this.label = label;\n\n const defaultDrawLabelOptions = {\n anchorPosition: AnchorPosition.BOTTOM_LEFT,\n backgroundColor: this.boxColor,\n };\n this.drawLabelOptions = new DrawTextFieldOptions({ ...defaultDrawLabelOptions, ...drawLabelOptions });\n }\n}\n\nexport class DrawBox {\n public box: Box\n\n public options: DrawBoxOptions\n\n constructor(\n box: IBoundingBox | IRect,\n options: IDrawBoxOptions = {},\n ) {\n this.box = new Box(box);\n this.options = new DrawBoxOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const { boxColor, lineWidth } = this.options;\n\n const {\n x, y, width, height,\n } = this.box;\n ctx.strokeStyle = boxColor;\n ctx.lineWidth = lineWidth;\n ctx.strokeRect(x, y, width, height);\n\n const { label } = this.options;\n if (label) {\n new DrawTextField([label], { x: x - (lineWidth / 2), y }, this.options.drawLabelOptions).draw(canvasArg);\n }\n }\n}\n", "import { Box, IBoundingBox, IRect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { round } from '../utils/index';\nimport { DrawBox } from './DrawBox';\n\nexport type TDrawDetectionsInput = IRect | IBoundingBox | FaceDetection | WithFaceDetection<{}>\n\nexport function drawDetections(\n canvasArg: string | HTMLCanvasElement,\n detections: TDrawDetectionsInput | Array,\n) {\n const detectionsArray = Array.isArray(detections) ? detections : [detections];\n\n detectionsArray.forEach((det) => {\n // eslint-disable-next-line no-nested-ternary\n const score = det instanceof FaceDetection\n ? det.score\n : (isWithFaceDetection(det) ? det.detection.score : undefined);\n\n // eslint-disable-next-line no-nested-ternary\n const box = det instanceof FaceDetection\n ? det.box\n : (isWithFaceDetection(det) ? det.detection.box : new Box(det));\n\n const label = score ? `${round(score)}` : undefined;\n new DrawBox(box, { label }).draw(canvasArg);\n });\n}\n", "import { env } from '../env/index';\n\nexport function isMediaLoaded(media: HTMLImageElement | HTMLVideoElement) : boolean {\n const { Image, Video } = env.getEnv();\n\n return (media instanceof Image && media.complete)\n || (media instanceof Video && media.readyState >= 3);\n}\n", "import { env } from '../env/index';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function awaitMediaLoaded(media: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement) {\n // eslint-disable-next-line consistent-return\n return new Promise((resolve, reject) => {\n if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) {\n return resolve(null);\n }\n\n function onError(e: Event) {\n if (!e.currentTarget) return;\n // eslint-disable-next-line no-use-before-define\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n reject(e);\n }\n\n function onLoad(e: Event) {\n if (!e.currentTarget) return;\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n resolve(e);\n }\n\n media.addEventListener('load', onLoad);\n media.addEventListener('error', onError);\n });\n}\n", "import { env } from '../env/index';\n\nexport function bufferToImage(buf: Blob): Promise {\n return new Promise((resolve, reject) => {\n if (!(buf instanceof Blob)) reject(new Error('bufferToImage - expected buf to be of type: Blob'));\n const reader = new FileReader();\n reader.onload = () => {\n if (typeof reader.result !== 'string') reject(new Error('bufferToImage - expected reader.result to be a string, in onload'));\n const img = env.getEnv().createImageElement();\n img.onload = () => resolve(img);\n img.onerror = reject;\n img.src = reader.result as string;\n };\n reader.onerror = reject;\n reader.readAsDataURL(buf);\n });\n}\n", "import { Dimensions, IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\n\nexport function getMediaDimensions(input: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | IDimensions): Dimensions {\n const { Image, Video } = env.getEnv();\n\n if (input instanceof Image) {\n return new Dimensions(input.naturalWidth, input.naturalHeight);\n }\n if (input instanceof Video) {\n return new Dimensions(input.videoWidth, input.videoHeight);\n }\n return new Dimensions(input.width, input.height);\n}\n", "import { IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function createCanvas({ width, height }: IDimensions): HTMLCanvasElement {\n const { createCanvasElement } = env.getEnv();\n const canvas = createCanvasElement();\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nexport function createCanvasFromMedia(media: HTMLImageElement | HTMLVideoElement | ImageData, dims?: IDimensions): HTMLCanvasElement {\n const { ImageData } = env.getEnv();\n\n if (!(media instanceof ImageData) && !isMediaLoaded(media)) {\n throw new Error('createCanvasFromMedia - media has not finished loading yet');\n }\n\n const { width, height } = dims || getMediaDimensions(media);\n const canvas = createCanvas({ width, height });\n\n if (media instanceof ImageData) {\n getContext2dOrThrow(canvas).putImageData(media, 0, 0);\n } else {\n getContext2dOrThrow(canvas).drawImage(media, 0, 0, width, height);\n }\n return canvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { env } from '../env/index';\nimport { isTensor4D } from '../utils/index';\n\nexport async function imageTensorToCanvas(\n imgTensor: tf.Tensor,\n canvas?: HTMLCanvasElement,\n): Promise {\n const targetCanvas = canvas || env.getEnv().createCanvasElement();\n\n const [height, width, numChannels] = imgTensor.shape.slice(isTensor4D(imgTensor) ? 1 : 0);\n const imgTensor3D = tf.tidy(() => imgTensor.as3D(height, width, numChannels).toInt());\n await tf.browser.toPixels(imgTensor3D, targetCanvas);\n\n imgTensor3D.dispose();\n\n return targetCanvas;\n}\n", "import { env } from '../env/index';\n\nexport function isMediaElement(input: any) {\n const { Image, Canvas, Video } = env.getEnv();\n\n return input instanceof Image\n || input instanceof Canvas\n || input instanceof Video;\n}\n", "import { env } from '../env/index';\nimport { createCanvas, createCanvasFromMedia } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function imageToSquare(input: HTMLImageElement | HTMLCanvasElement, inputSize: number, centerImage: boolean = false) {\n const { Image, Canvas } = env.getEnv();\n\n if (!(input instanceof Image || input instanceof Canvas)) {\n throw new Error('imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement');\n }\n\n if (inputSize <= 0) return createCanvas({ width: 1, height: 1 });\n const dims = getMediaDimensions(input);\n const scale = inputSize / Math.max(dims.height, dims.width);\n const width = scale * dims.width;\n const height = scale * dims.height;\n\n const targetCanvas = createCanvas({ width: inputSize, height: inputSize });\n const inputCanvas = input instanceof Canvas ? input : createCanvasFromMedia(input);\n\n const offset = Math.abs(width - height) / 2;\n const dx = centerImage && width < height ? offset : 0;\n const dy = centerImage && height < width ? offset : 0;\n if (inputCanvas.width > 0 && inputCanvas.height > 0) getContext2dOrThrow(targetCanvas).drawImage(inputCanvas, dx, dy, width, height);\n\n return targetCanvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Dimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { padToSquare } from '../ops/padToSquare';\nimport {\n computeReshapedDimensions, isTensor3D, isTensor4D, range,\n} from '../utils/index';\nimport { createCanvasFromMedia } from './createCanvas';\nimport { imageToSquare } from './imageToSquare';\nimport { TResolvedNetInput } from './types';\n\nexport class NetInput {\n private _imageTensors: Array = []\n\n private _canvases: HTMLCanvasElement[] = []\n\n private _batchSize: number\n\n private _treatAsBatchInput: boolean = false\n\n private _inputDimensions: number[][] = []\n\n private _inputSize: number\n\n constructor(\n inputs: Array,\n treatAsBatchInput: boolean = false,\n ) {\n if (!Array.isArray(inputs)) {\n throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${inputs}`);\n }\n\n this._treatAsBatchInput = treatAsBatchInput;\n this._batchSize = inputs.length;\n\n inputs.forEach((input, idx) => {\n if (isTensor3D(input)) {\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = input.shape;\n return;\n }\n\n if (isTensor4D(input)) {\n const batchSize = (input as any).shape[0];\n if (batchSize !== 1) {\n throw new Error(`NetInput - tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = (input as any).shape.slice(1);\n return;\n }\n\n const canvas = (input as any) instanceof env.getEnv().Canvas ? input : createCanvasFromMedia(input);\n this._canvases[idx] = canvas;\n this._inputDimensions[idx] = [canvas.height, canvas.width, 3];\n });\n }\n\n public get imageTensors(): Array {\n return this._imageTensors;\n }\n\n public get canvases(): HTMLCanvasElement[] {\n return this._canvases;\n }\n\n public get isBatchInput(): boolean {\n return this.batchSize > 1 || this._treatAsBatchInput;\n }\n\n public get batchSize(): number {\n return this._batchSize;\n }\n\n public get inputDimensions(): number[][] {\n return this._inputDimensions;\n }\n\n public get inputSize(): number | undefined {\n return this._inputSize;\n }\n\n public get reshapedInputDimensions(): Dimensions[] {\n return range(this.batchSize, 0, 1).map(\n (_, batchIdx) => this.getReshapedInputDimensions(batchIdx),\n );\n }\n\n public getInput(batchIdx: number): tf.Tensor3D | tf.Tensor4D | HTMLCanvasElement {\n return this.canvases[batchIdx] || this.imageTensors[batchIdx];\n }\n\n public getInputDimensions(batchIdx: number): number[] {\n return this._inputDimensions[batchIdx];\n }\n\n public getInputHeight(batchIdx: number): number {\n return this._inputDimensions[batchIdx][0];\n }\n\n public getInputWidth(batchIdx: number): number {\n return this._inputDimensions[batchIdx][1];\n }\n\n public getReshapedInputDimensions(batchIdx: number): Dimensions {\n if (typeof this.inputSize !== 'number') {\n throw new Error('getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet');\n }\n\n const width = this.getInputWidth(batchIdx);\n const height = this.getInputHeight(batchIdx);\n return computeReshapedDimensions({ width, height }, this.inputSize);\n }\n\n /**\n * Create a batch tensor from all input canvases and tensors\n * with size [batchSize, inputSize, inputSize, 3].\n *\n * @param inputSize Height and width of the tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The batch tensor.\n */\n public toBatchTensor(inputSize: number, isCenterInputs: boolean = true): tf.Tensor4D {\n this._inputSize = inputSize;\n\n return tf.tidy(() => {\n const inputTensors = range(this.batchSize, 0, 1).map((batchIdx) => {\n const input = this.getInput(batchIdx);\n\n if (input instanceof tf.Tensor) {\n // @ts-ignore: error TS2344: Type 'Rank.R4' does not satisfy the constraint 'Tensor'.\n let imgTensor = isTensor4D(input) ? input : input.expandDims();\n // @ts-ignore: error TS2344: Type 'Rank.R4' does not satisfy the constraint 'Tensor'.\n imgTensor = padToSquare(imgTensor, isCenterInputs);\n\n if (imgTensor.shape[1] !== inputSize || imgTensor.shape[2] !== inputSize) {\n imgTensor = tf.image.resizeBilinear(imgTensor, [inputSize, inputSize]);\n }\n\n return imgTensor.as3D(inputSize, inputSize, 3);\n }\n\n if (input instanceof env.getEnv().Canvas) {\n return tf.browser.fromPixels(imageToSquare(input, inputSize, isCenterInputs));\n }\n\n throw new Error(`toBatchTensor - at batchIdx ${batchIdx}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${input}`);\n });\n\n // const batchTensor = tf.stack(inputTensors.map(t => t.toFloat())).as4D(this.batchSize, inputSize, inputSize, 3)\n const batchTensor = tf.stack(inputTensors.map((t) => tf.cast(t, 'float32'))).as4D(this.batchSize, inputSize, inputSize, 3);\n // const batchTensor = tf.stack(inputTensors.map(t => tf.Tensor.as4D(tf.cast(t, 'float32'))), this.batchSize, inputSize, inputSize, 3);\n\n return batchTensor;\n });\n }\n}\n", "import { isTensor3D, isTensor4D } from '../utils/index';\nimport { awaitMediaLoaded } from './awaitMediaLoaded';\nimport { isMediaElement } from './isMediaElement';\nimport { NetInput } from './NetInput';\nimport { resolveInput } from './resolveInput';\nimport { TNetInput } from './types';\n\n/**\n * Validates the input to make sure, they are valid net inputs and awaits all media elements\n * to be finished loading.\n *\n * @param input The input, which can be a media element or an array of different media elements.\n * @returns A NetInput instance, which can be passed into one of the neural networks.\n */\nexport async function toNetInput(inputs: TNetInput): Promise {\n if (inputs instanceof NetInput) {\n return inputs;\n }\n\n const inputArgArray = Array.isArray(inputs)\n ? inputs\n : [inputs];\n\n if (!inputArgArray.length) {\n throw new Error('toNetInput - empty array passed as input');\n }\n\n const getIdxHint = (idx: number) => (Array.isArray(inputs) ? ` at input index ${idx}:` : '');\n\n const inputArray = inputArgArray.map(resolveInput);\n\n inputArray.forEach((input, i) => {\n if (!isMediaElement(input) && !isTensor3D(input) && !isTensor4D(input)) {\n if (typeof inputArgArray[i] === 'string') {\n throw new Error(`toNetInput -${getIdxHint(i)} string passed, but could not resolve HTMLElement for element id ${inputArgArray[i]}`);\n }\n\n throw new Error(`toNetInput -${getIdxHint(i)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);\n }\n\n if (isTensor4D(input)) {\n // if tf.Tensor4D is passed in the input array, the batch size has to be 1\n const batchSize = input.shape[0];\n if (batchSize !== 1) {\n throw new Error(`toNetInput -${getIdxHint(i)} tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n }\n });\n\n // wait for all media elements being loaded\n await Promise.all(\n inputArray.map((input) => isMediaElement(input) && awaitMediaLoaded(input)),\n );\n\n return new NetInput(inputArray, Array.isArray(inputs));\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { Rect } from '../classes/Rect';\nimport { env } from '../env/index';\nimport { createCanvas } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { imageTensorToCanvas } from './imageTensorToCanvas';\nimport { toNetInput } from './toNetInput';\nimport { TNetInput } from './types';\n\n/**\n * Extracts the image regions containing the detected faces.\n *\n * @param input The image that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns The Canvases of the corresponding image region for each detected face.\n */\nexport async function extractFaces(\n input: TNetInput,\n detections: Array,\n): Promise {\n const { Canvas } = env.getEnv();\n\n let canvas = input as HTMLCanvasElement;\n\n if (!(input instanceof Canvas)) {\n const netInput = await toNetInput(input);\n\n if (netInput.batchSize > 1) {\n throw new Error('extractFaces - batchSize > 1 not supported');\n }\n\n const tensorOrCanvas = netInput.getInput(0);\n canvas = tensorOrCanvas instanceof Canvas\n ? tensorOrCanvas\n : await imageTensorToCanvas(tensorOrCanvas);\n }\n\n const ctx = getContext2dOrThrow(canvas);\n const boxes = detections.map(\n (det) => (det instanceof FaceDetection\n ? det.forSize(canvas.width, canvas.height).box.floor()\n : det),\n )\n .map((box) => box.clipAtImageBorders(canvas.width, canvas.height));\n\n return boxes.map(({\n x, y, width, height,\n }) => {\n const faceImg = createCanvas({ width, height });\n if (width > 0 && height > 0) getContext2dOrThrow(faceImg).putImageData(ctx.getImageData(x, y, width, height), 0, 0);\n return faceImg;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isTensor3D, isTensor4D } from '../utils/index';\n\n/**\n * Extracts the tensors of the image regions containing the detected faces.\n * Useful if you want to compute the face descriptors for the face images.\n * Using this method is faster then extracting a canvas for each face and\n * converting them to tensors individually.\n *\n * @param imageTensor The image tensor that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns Tensors of the corresponding image region for each detected face.\n */\nexport async function extractFaceTensors(\n imageTensor: tf.Tensor3D | tf.Tensor4D,\n detections: Array,\n): Promise {\n if (!isTensor3D(imageTensor) && !isTensor4D(imageTensor)) {\n throw new Error('extractFaceTensors - expected image tensor to be 3D or 4D');\n }\n\n if (isTensor4D(imageTensor) && imageTensor.shape[0] > 1) {\n throw new Error('extractFaceTensors - batchSize > 1 not supported');\n }\n\n return tf.tidy(() => {\n const [imgHeight, imgWidth, numChannels] = imageTensor.shape.slice(isTensor4D(imageTensor) ? 1 : 0);\n\n const boxes = detections.map(\n (det) => (det instanceof FaceDetection\n ? det.forSize(imgWidth, imgHeight).box\n : det),\n )\n .map((box) => box.clipAtImageBorders(imgWidth, imgHeight));\n\n const faceTensors = boxes.map(({\n x, y, width, height,\n }) => tf.slice3d(imageTensor.as3D(imgHeight, imgWidth, numChannels), [y, x, 0], [height, width, numChannels]));\n\n return faceTensors;\n });\n}\n", "import { env } from '../env/index';\n\nexport async function fetchOrThrow(\n url: string,\n // eslint-disable-next-line no-undef\n init?: RequestInit,\n): Promise {\n const { fetch } = env.getEnv();\n const res = await fetch(url, init);\n if (!(res.status < 400)) {\n throw new Error(`failed to fetch: (${res.status}) ${res.statusText}, from url: ${res.url}`);\n }\n return res;\n}\n", "import { bufferToImage } from './bufferToImage';\nimport { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchImage(uri: string): Promise {\n const res = await fetchOrThrow(uri);\n const blob = await (res).blob();\n\n if (!blob.type.startsWith('image/')) {\n throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${blob.type}, for url: ${res.url}`);\n }\n return bufferToImage(blob);\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchJson(uri: string): Promise {\n return (await fetchOrThrow(uri)).json();\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchNetWeights(uri: string): Promise {\n return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());\n}\n", "export function getModelUris(uri: string | undefined, defaultModelName: string) {\n const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;\n\n if (!uri) {\n return {\n modelBaseUri: '',\n manifestUri: defaultManifestFilename,\n };\n }\n\n if (uri === '/') {\n return {\n modelBaseUri: '/',\n manifestUri: `/${defaultManifestFilename}`,\n };\n }\n // eslint-disable-next-line no-nested-ternary\n const protocol = uri.startsWith('http://') ? 'http://' : uri.startsWith('https://') ? 'https://' : '';\n uri = uri.replace(protocol, '');\n\n const parts = uri.split('/').filter((s) => s);\n\n const manifestFile = uri.endsWith('.json')\n ? parts[parts.length - 1]\n : defaultManifestFilename;\n\n let modelBaseUri = protocol + (uri.endsWith('.json') ? parts.slice(0, parts.length - 1) : parts).join('/');\n modelBaseUri = uri.startsWith('/') ? `/${modelBaseUri}` : modelBaseUri;\n\n return {\n modelBaseUri,\n manifestUri: modelBaseUri === '/' ? `/${manifestFile}` : `${modelBaseUri}/${manifestFile}`,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { getModelUris } from '../common/getModelUris';\nimport { fetchJson } from './fetchJson';\n\nexport async function loadWeightMap(\n uri: string | undefined,\n defaultModelName: string,\n): Promise {\n const { manifestUri, modelBaseUri } = getModelUris(uri, defaultModelName);\n const manifest = await fetchJson(manifestUri);\n // if (manifest['weightsManifest']) manifest = manifest['weightsManifest'];\n return tf.io.loadWeights(manifest, modelBaseUri);\n}\n", "import { IDimensions } from '../classes/index';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function matchDimensions(input: IDimensions, reference: IDimensions, useMediaDimensions: boolean = false) {\n const { width, height } = useMediaDimensions\n ? getMediaDimensions(reference)\n : reference;\n input.width = width;\n input.height = height;\n return { width, height };\n}\n", "import * as tf from '../dist/tfjs.esm';\n\nimport { ParamMapping } from './common/index';\nimport { getModelUris } from './common/getModelUris';\nimport { loadWeightMap } from './dom/index';\nimport { env } from './env/index';\n\nexport abstract class NeuralNetwork {\n constructor(name: string) {\n this._name = name;\n }\n\n protected _params: TNetParams | undefined = undefined\n\n protected _paramMappings: ParamMapping[] = []\n\n public _name: any;\n\n public get params(): TNetParams | undefined { return this._params; }\n\n public get paramMappings(): ParamMapping[] { return this._paramMappings; }\n\n public get isLoaded(): boolean { return !!this.params; }\n\n public getParamFromPath(paramPath: string): tf.Tensor {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n return obj[objProp];\n }\n\n public reassignParamFromPath(paramPath: string, tensor: tf.Tensor) {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n obj[objProp].dispose();\n obj[objProp] = tensor;\n }\n\n public getParamList() {\n return this._paramMappings.map(({ paramPath }) => ({\n path: paramPath,\n tensor: this.getParamFromPath(paramPath),\n }));\n }\n\n public getTrainableParams() {\n return this.getParamList().filter((param) => param.tensor instanceof tf.Variable);\n }\n\n public getFrozenParams() {\n return this.getParamList().filter((param) => !(param.tensor instanceof tf.Variable));\n }\n\n public variable() {\n this.getFrozenParams().forEach(({ path, tensor }) => {\n this.reassignParamFromPath(path, tensor.variable());\n });\n }\n\n public freeze() {\n this.getTrainableParams().forEach(({ path, tensor: variable }) => {\n const tensor = tf.tensor(variable.dataSync());\n variable.dispose();\n this.reassignParamFromPath(path, tensor);\n });\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.getParamList().forEach((param) => {\n if (throwOnRedispose && param.tensor.isDisposed) {\n throw new Error(`param tensor has already been disposed for path ${param.path}`);\n }\n param.tensor.dispose();\n });\n this._params = undefined;\n }\n\n public serializeParams(): Float32Array {\n return new Float32Array(\n this.getParamList()\n .map(({ tensor }) => Array.from(tensor.dataSync()) as number[])\n .reduce((flat, arr) => flat.concat(arr)),\n );\n }\n\n public async load(weightsOrUrl: Float32Array | string | undefined): Promise {\n if (weightsOrUrl instanceof Float32Array) {\n this.extractWeights(weightsOrUrl);\n return;\n }\n await this.loadFromUri(weightsOrUrl);\n }\n\n public async loadFromUri(uri: string | undefined) {\n if (uri && typeof uri !== 'string') {\n throw new Error(`${this._name}.loadFromUri - expected model uri`);\n }\n const weightMap = await loadWeightMap(uri, this.getDefaultModelName());\n this.loadFromWeightMap(weightMap);\n }\n\n public async loadFromDisk(filePath: string | undefined) {\n if (filePath && typeof filePath !== 'string') {\n throw new Error(`${this._name}.loadFromDisk - expected model file path`);\n }\n const { readFile } = env.getEnv();\n const { manifestUri, modelBaseUri } = getModelUris(filePath, this.getDefaultModelName());\n const fetchWeightsFromDisk = (filePaths: string[]) => Promise.all(filePaths.map((fp) => readFile(fp).then((buf) => buf.buffer)));\n const loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk);\n const manifest = JSON.parse((await readFile(manifestUri)).toString());\n const weightMap = await loadWeights(manifest, modelBaseUri);\n this.loadFromWeightMap(weightMap);\n }\n\n public loadFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { paramMappings, params } = this.extractParamsFromWeightMap(weightMap);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n public extractWeights(weights: Float32Array) {\n const { paramMappings, params } = this.extractParams(weights);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n private traversePropertyPath(paramPath: string) {\n if (!this.params) {\n throw new Error('traversePropertyPath - model has no loaded params');\n }\n\n const result = paramPath.split('/').reduce((res: { nextObj: any, obj?: any, objProp?: string }, objProp) => {\n // eslint-disable-next-line no-prototype-builtins\n if (!res.nextObj.hasOwnProperty(objProp)) {\n throw new Error(`traversePropertyPath - object does not have property ${objProp}, for path ${paramPath}`);\n }\n return { obj: res.nextObj, objProp, nextObj: res.nextObj[objProp] };\n }, { nextObj: this.params });\n\n const { obj, objProp } = result;\n if (!obj || !objProp || !(obj[objProp] instanceof tf.Tensor)) {\n throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${paramPath}`);\n }\n\n return { obj, objProp };\n }\n\n protected abstract getDefaultModelName(): string\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TNetParams, paramMappings: ParamMapping[] }\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParams(weights: Float32Array): { params: TNetParams, paramMappings: ParamMapping[] }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from './types';\n\nexport function depthwiseSeparableConv(\n x: tf.Tensor4D,\n params: SeparableConvParams,\n stride: [number, number],\n): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.separableConv2d(x, params.depthwise_filter, params.pointwise_filter, stride, 'same');\n out = tf.add(out, params.bias);\n return out;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, SeparableConvParams } from '../common/index';\nimport { depthwiseSeparableConv } from '../common/depthwiseSeparableConv';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function denseBlock3(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock3Params,\n isFirstLayer: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, [2, 2], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, [2, 2]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n });\n}\n\nexport function denseBlock4(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock4Params,\n isFirstLayer: boolean = false,\n isScaleDown: boolean = true,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, isScaleDown ? [2, 2] : [1, 1], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, isScaleDown ? [2, 2] : [1, 1]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n const in4 = tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n const out4 = depthwiseSeparableConv(in4, denseBlockParams.conv3, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, tf.add(out3, out4)))) as tf.Tensor4D;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\nexport function convLayer(\n x: tf.Tensor4D,\n params: ConvParams,\n padding: 'valid' | 'same' = 'same',\n withRelu: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out = tf.add(\n tf.conv2d(x, params.filters, [1, 1], padding),\n params.bias,\n ) as tf.Tensor4D;\n\n return withRelu ? tf.relu(out) : out;\n });\n}\n", "import { ParamMapping } from './types';\n\nexport function disposeUnusedWeightTensors(weightMap: any, paramMappings: ParamMapping[]) {\n Object.keys(weightMap).forEach((path) => {\n if (!paramMappings.some((pm) => pm.originalPath === path)) {\n weightMap[path].dispose();\n }\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, ExtractWeightsFunction, ParamMapping } from './types';\n\nexport function extractConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams => {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, FCParams, ParamMapping } from './types';\n\nexport function extractFCParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): FCParams => {\n const fc_weights = tf.tensor2d(extractWeights(channelsIn * channelsOut), [channelsIn, channelsOut]);\n const fc_bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return {\n weights: fc_weights,\n bias: fc_bias,\n };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n// eslint-disable-next-line no-unused-vars\nexport type ExtractWeightsFunction = (numWeights: number) => Float32Array\n\nexport type ParamMapping = {\n originalPath?: string\n paramPath: string\n}\n\nexport type ConvParams = {\n filters: tf.Tensor4D\n bias: tf.Tensor1D\n}\n\nexport type FCParams = {\n weights: tf.Tensor2D\n bias: tf.Tensor1D\n}\n\nexport class SeparableConvParams {\n // eslint-disable-next-line no-useless-constructor\n constructor(\n // eslint-disable-next-line no-unused-vars\n public depthwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public pointwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public bias: tf.Tensor1D,\n // eslint-disable-next-line no-empty-function\n ) {}\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, ParamMapping, SeparableConvParams } from './types';\n\nexport function extractSeparableConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (channelsIn: number, channelsOut: number, mappedPrefix: string): SeparableConvParams => {\n const depthwise_filter = tf.tensor4d(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1]);\n const pointwise_filter = tf.tensor4d(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut]);\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/depthwise_filter` },\n { paramPath: `${mappedPrefix}/pointwise_filter` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n\nexport function loadSeparableConvParamsFactory(\n // eslint-disable-next-line no-unused-vars\n extractWeightEntry: (originalPath: string, paramRank: number) => T,\n) {\n return (prefix: string): SeparableConvParams => {\n const depthwise_filter = extractWeightEntry(`${prefix}/depthwise_filter`, 4);\n const pointwise_filter = extractWeightEntry(`${prefix}/pointwise_filter`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n", "import { isTensor } from '../utils/index';\nimport { ParamMapping } from './types';\n\nexport function extractWeightEntryFactory(weightMap: any, paramMappings: ParamMapping[]) {\n return (originalPath: string, paramRank: number, mappedPath?: string) => {\n const tensor = weightMap[originalPath];\n\n if (!isTensor(tensor, paramRank)) {\n throw new Error(`expected weightMap[${originalPath}] to be a Tensor${paramRank}D, instead have ${tensor}`);\n }\n\n paramMappings.push(\n { originalPath, paramPath: mappedPath || originalPath },\n );\n\n return tensor;\n };\n}\n", "export function extractWeightsFactory(weights: Float32Array) {\n let remainingWeights = weights;\n\n function extractWeights(numWeights: number): Float32Array {\n const ret = remainingWeights.slice(0, numWeights);\n remainingWeights = remainingWeights.slice(numWeights);\n return ret;\n }\n\n function getRemainingWeights(): Float32Array {\n return remainingWeights;\n }\n\n return {\n extractWeights,\n getRemainingWeights,\n };\n}\n", "import {\n extractConvParamsFactory,\n extractSeparableConvParamsFactory,\n ExtractWeightsFunction,\n ParamMapping,\n} from '../common/index';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractDenseBlock3Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv0`)\n : extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/conv0`);\n const conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv1`);\n const conv2 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock4Params {\n const { conv0, conv1, conv2 } = extractDenseBlock3Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer);\n const conv3 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock4Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock4Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock4Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock4Params(64, 128, 'dense2');\n const dense3 = extractDenseBlock4Params(128, 256, 'dense3');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: {\n dense0, dense1, dense2, dense3,\n },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\n// eslint-disable-next-line no-unused-vars\nexport function loadConvParamsFactory(extractWeightEntry: (originalPath: string, paramRank: number) => T) {\n return (prefix: string): ConvParams => {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return { filters, bias };\n };\n}\n", "import { extractWeightEntryFactory, loadSeparableConvParamsFactory, ParamMapping } from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractDenseBlock3Params(prefix: string, isFirstLayer: boolean = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(prefix: string, isFirstLayer: boolean = false): DenseBlock4Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n const conv3 = extractSeparableConvParams(`${prefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock4Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock4Params('dense0', true),\n dense1: extractDenseBlock4Params('dense1'),\n dense2: extractDenseBlock4Params('dense2'),\n dense3: extractDenseBlock4Params('dense3'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock4 } from './denseBlock';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { FaceFeatureExtractorParams, IFaceFeatureExtractor } from './types';\n\nexport class FaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('FaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255)) as tf.Tensor4D;\n\n let out = denseBlock4(normalized, params.dense0, true);\n out = denseBlock4(out, params.dense1);\n out = denseBlock4(out, params.dense2);\n out = denseBlock4(out, params.dense3);\n out = tf.avgPool(out, [7, 7], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from './types';\n\nexport function fullyConnectedLayer(\n x: tf.Tensor2D,\n params: FCParams,\n): tf.Tensor2D {\n return tf.tidy(() => tf.add(\n tf.matMul(x, params.weights),\n params.bias,\n ));\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array, channelsIn: number, channelsOut: number): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const fc = extractFCParams(channelsIn, channelsOut, 'fc');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping,\n} from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: extractFcParams('fc'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function seperateWeightMaps(weightMap: tf.NamedTensorMap) {\n const featureExtractorMap: tf.NamedTensorMap = {};\n const classifierMap: tf.NamedTensorMap = {};\n\n Object.keys(weightMap).forEach((key) => {\n const map = key.startsWith('fc') ? classifierMap : featureExtractorMap;\n map[key] = weightMap[key];\n });\n\n return { featureExtractorMap, classifierMap };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { NetInput } from '../dom/index';\nimport {\n FaceFeatureExtractorParams,\n IFaceFeatureExtractor,\n TinyFaceFeatureExtractorParams,\n} from '../faceFeatureExtractor/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { NetParams } from './types';\nimport { seperateWeightMaps } from './util';\n\nexport abstract class FaceProcessor<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends NeuralNetwork {\n protected _faceFeatureExtractor: IFaceFeatureExtractor\n\n constructor(_name: string, faceFeatureExtractor: IFaceFeatureExtractor) {\n super(_name);\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): IFaceFeatureExtractor {\n return this._faceFeatureExtractor;\n }\n\n protected abstract getDefaultModelName(): string\n\n protected abstract getClassifierChannelsIn(): number\n\n protected abstract getClassifierChannelsOut(): number\n\n public runNet(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n return fullyConnectedLayer(bottleneckFeatures.as2D(bottleneckFeatures.shape[0], -1), params.fc);\n });\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights, this.getClassifierChannelsIn(), this.getClassifierChannelsOut());\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const cIn = this.getClassifierChannelsIn();\n const cOut = this.getClassifierChannelsOut();\n const classifierWeightSize = (cOut * cIn) + cOut;\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "export const FACE_EXPRESSION_LABELS = ['neutral', 'happy', 'sad', 'angry', 'fearful', 'disgusted', 'surprised'];\n\nexport class FaceExpressions {\n public neutral: number\n\n public happy: number\n\n public sad: number\n\n public angry: number\n\n public fearful: number\n\n public disgusted: number\n\n public surprised: number\n\n constructor(probabilities: number[] | Float32Array) {\n if (probabilities.length !== 7) {\n throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${probabilities.length}`);\n }\n\n FACE_EXPRESSION_LABELS.forEach((expression, idx) => {\n this[expression] = probabilities[idx];\n });\n }\n\n asSortedArray() {\n return FACE_EXPRESSION_LABELS\n .map((expression) => ({ expression, probability: this[expression] as number }))\n .sort((e0, e1) => e1.probability - e0.probability);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { FaceExpressions } from './FaceExpressions';\n\nexport class FaceExpressionNet extends FaceProcessor {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceExpressionNet', faceFeatureExtractor);\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n return tf.tidy(() => tf.softmax(this.runNet(input)));\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictExpressions(input: TNetInput) {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n const probabilitesByBatch = await Promise.all(tf.unstack(out).map(async (t) => {\n const data = await t.data();\n t.dispose();\n return data;\n }));\n out.dispose();\n\n const predictionsByBatch = probabilitesByBatch\n .map((probabilites) => new FaceExpressions(probabilites as Float32Array));\n\n return netInput.isBatchInput\n ? predictionsByBatch\n : predictionsByBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_expression_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n\n protected getClassifierChannelsOut(): number {\n return 7;\n }\n}\n", "import { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\n\nexport type WithFaceExpressions = TSource & {\n expressions: FaceExpressions\n}\n\nexport function isWithFaceExpressions(obj: any): obj is WithFaceExpressions<{}> {\n return obj.expressions instanceof FaceExpressions;\n}\n\nexport function extendWithFaceExpressions<\n TSource\n>(\n sourceObj: TSource,\n expressions: FaceExpressions,\n): WithFaceExpressions {\n const extension = { expressions };\n return { ...sourceObj, ...extension };\n}\n", "import { IPoint, Point } from '../classes/index';\nimport { FaceExpressions } from '../faceExpressionNet/index';\nimport { isWithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { round } from '../utils/index';\nimport { DrawTextField } from './DrawTextField';\n\nexport type DrawFaceExpressionsInput = FaceExpressions | WithFaceExpressions<{}>\n\nexport function drawFaceExpressions(\n canvasArg: string | HTMLCanvasElement,\n faceExpressions: DrawFaceExpressionsInput | Array,\n minConfidence = 0.1,\n textFieldAnchor?: IPoint,\n) {\n const faceExpressionsArray = Array.isArray(faceExpressions) ? faceExpressions : [faceExpressions];\n\n faceExpressionsArray.forEach((e) => {\n // eslint-disable-next-line no-nested-ternary\n const expr = e instanceof FaceExpressions\n ? e\n : (isWithFaceExpressions(e) ? e.expressions : undefined);\n if (!expr) {\n throw new Error('drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof');\n }\n\n const sorted = expr.asSortedArray();\n const resultsToDisplay = sorted.filter((exprLocal) => exprLocal.probability > minConfidence);\n\n const anchor = isWithFaceDetection(e)\n ? e.detection.box.bottomLeft\n : (textFieldAnchor || new Point(0, 0));\n\n const drawTextField = new DrawTextField(\n resultsToDisplay.map((exprLocal) => `${exprLocal.expression} (${round(exprLocal.probability)})`),\n anchor,\n );\n drawTextField.draw(canvasArg);\n });\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { isWithFaceDetection, WithFaceDetection } from './WithFaceDetection';\n\nexport type WithFaceLandmarks<\n TSource extends WithFaceDetection<{}>,\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68 > = TSource & {\n landmarks: TFaceLandmarks,\n unshiftedLandmarks: TFaceLandmarks,\n alignedRect: FaceDetection,\n angle: { roll: number | undefined, pitch: number | undefined, yaw: number | undefined },\n }\n\nexport function isWithFaceLandmarks(obj: any): obj is WithFaceLandmarks, FaceLandmarks> {\n return isWithFaceDetection(obj)\n // eslint-disable-next-line dot-notation\n && obj['landmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['unshiftedLandmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['alignedRect'] instanceof FaceDetection;\n}\n\nfunction calculateFaceAngle(mesh) {\n // returns the angle in the plane (in radians) between the positive x-axis and the ray from (0,0) to the point (x,y)\n const radians = (a1, a2, b1, b2) => (Math.atan2(b2 - a2, b1 - a1) % Math.PI);\n // convert radians to degrees\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (theta) => (theta * 180) / Math.PI;\n\n const angle = { roll: undefined, pitch: undefined, yaw: undefined };\n\n if (!mesh || !mesh._positions || mesh._positions.length !== 68) return angle;\n const pt = mesh._positions;\n\n // values are in radians in range of -pi/2 to pi/2 which is -90 to +90 degrees\n // value of 0 means center\n\n // roll is face lean from left to right\n // comparing x,y of outside corners of leftEye and rightEye\n angle.roll = -radians(pt[36]._x, pt[36]._y, pt[45]._x, pt[45]._y);\n\n // pitch is face turn from left right\n // comparing x distance of top of nose to left and right edge of face\n // precision is lacking since coordinates are not precise enough\n angle.pitch = radians(0, Math.abs(pt[0]._x - pt[30]._x) / pt[30]._x, Math.PI, Math.abs(pt[16]._x - pt[30]._x) / pt[30]._x);\n\n // yaw is face move from up to down\n // comparing size of the box around the face with top and bottom of detected landmarks\n // silly hack, but this gives us face compression on y-axis\n // e.g., tilting head up hides the forehead that doesn't have any landmarks so ratio drops\n const bottom = pt.reduce((prev, cur) => (prev < cur._y ? prev : cur._y), +Infinity);\n const top = pt.reduce((prev, cur) => (prev > cur._y ? prev : cur._y), -Infinity);\n angle.yaw = Math.PI * (mesh._imgDims._height / (top - bottom) / 1.40 - 1);\n\n return angle;\n}\n\nexport function extendWithFaceLandmarks<\n TSource extends WithFaceDetection<{}>,\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68 >(sourceObj: TSource, unshiftedLandmarks: TFaceLandmarks): WithFaceLandmarks {\n const { box: shift } = sourceObj.detection;\n const landmarks = unshiftedLandmarks.shiftBy(shift.x, shift.y);\n\n const rect = landmarks.align();\n const { imageDims } = sourceObj.detection;\n const alignedRect = new FaceDetection(sourceObj.detection.score, rect.rescale(imageDims.reverse()), imageDims);\n const angle = calculateFaceAngle(unshiftedLandmarks);\n\n const extension = {\n landmarks,\n unshiftedLandmarks,\n alignedRect,\n angle,\n };\n\n return { ...sourceObj, ...extension };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IPoint } from '../classes/index';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { drawContour } from './drawContour';\n\nexport interface IDrawFaceLandmarksOptions {\n drawLines?: boolean\n drawPoints?: boolean\n lineWidth?: number\n pointSize?: number\n lineColor?: string\n pointColor?: string\n}\n\nexport class DrawFaceLandmarksOptions {\n public drawLines: boolean\n\n public drawPoints: boolean\n\n public lineWidth: number\n\n public pointSize: number\n\n public lineColor: string\n\n public pointColor: string\n\n constructor(options: IDrawFaceLandmarksOptions = {}) {\n const {\n drawLines = true, drawPoints = true, lineWidth, lineColor, pointSize, pointColor,\n } = options;\n this.drawLines = drawLines;\n this.drawPoints = drawPoints;\n this.lineWidth = lineWidth || 1;\n this.pointSize = pointSize || 2;\n this.lineColor = lineColor || 'rgba(0, 255, 255, 1)';\n this.pointColor = pointColor || 'rgba(255, 0, 255, 1)';\n }\n}\n\nexport class DrawFaceLandmarks {\n public faceLandmarks: FaceLandmarks\n\n public options: DrawFaceLandmarksOptions\n\n constructor(\n faceLandmarks: FaceLandmarks,\n options: IDrawFaceLandmarksOptions = {},\n ) {\n this.faceLandmarks = faceLandmarks;\n this.options = new DrawFaceLandmarksOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const {\n drawLines, drawPoints, lineWidth, lineColor, pointSize, pointColor,\n } = this.options;\n\n if (drawLines && this.faceLandmarks instanceof FaceLandmarks68) {\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n drawContour(ctx, this.faceLandmarks.getJawOutline());\n drawContour(ctx, this.faceLandmarks.getLeftEyeBrow());\n drawContour(ctx, this.faceLandmarks.getRightEyeBrow());\n drawContour(ctx, this.faceLandmarks.getNose());\n drawContour(ctx, this.faceLandmarks.getLeftEye(), true);\n drawContour(ctx, this.faceLandmarks.getRightEye(), true);\n drawContour(ctx, this.faceLandmarks.getMouth(), true);\n }\n\n if (drawPoints) {\n ctx.strokeStyle = pointColor;\n ctx.fillStyle = pointColor;\n\n const drawPoint = (pt: IPoint) => {\n ctx.beginPath();\n ctx.arc(pt.x, pt.y, pointSize, 0, 2 * Math.PI);\n ctx.fill();\n };\n this.faceLandmarks.positions.forEach(drawPoint);\n }\n }\n}\n\nexport type DrawFaceLandmarksInput = FaceLandmarks | WithFaceLandmarks>\n\nexport function drawFaceLandmarks(\n canvasArg: string | HTMLCanvasElement,\n faceLandmarks: DrawFaceLandmarksInput | Array,\n) {\n const faceLandmarksArray = Array.isArray(faceLandmarks) ? faceLandmarks : [faceLandmarks];\n faceLandmarksArray.forEach((f) => {\n // eslint-disable-next-line no-nested-ternary\n const landmarks = f instanceof FaceLandmarks\n ? f\n : (isWithFaceLandmarks(f) ? f.landmarks : undefined);\n if (!landmarks) {\n throw new Error('drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof');\n }\n\n new DrawFaceLandmarks(landmarks).draw(canvasArg);\n });\n}\n", "import { extractConvParamsFactory, extractSeparableConvParamsFactory, extractWeightsFactory } from '../common/index';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractReductionBlockParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(channels: number, mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParams(weights: Float32Array, numMainBlocks: number): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const entry_flow_conv_in = extractConvParams(3, 32, 3, 'entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams(32, 64, 'entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams(64, 128, 'entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(128, `middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams(128, 256, 'exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams(256, 512, 'exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { entry_flow, middle_flow, exit_flow },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors,\n extractWeightEntryFactory,\n loadSeparableConvParamsFactory,\n ParamMapping,\n} from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractReductionBlockParams(mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(`${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(`${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n numMainBlocks: number,\n): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const entry_flow_conv_in = extractConvParams('entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams('entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams('entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(`middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams('exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams('exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params: { entry_flow, middle_flow, exit_flow }, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, depthwiseSeparableConv } from '../common/index';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { range } from '../utils/index';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction conv(x: tf.Tensor4D, params: ConvParams, stride: [number, number]): tf.Tensor4D {\n return tf.add(tf.conv2d(x, params.filters, stride, 'same'), params.bias);\n}\n\nfunction reductionBlock(x: tf.Tensor4D, params: ReductionBlockParams, isActivateInput: boolean = true): tf.Tensor4D {\n let out = isActivateInput ? tf.relu(x) : x;\n out = depthwiseSeparableConv(out, params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = tf.maxPool(out, [3, 3], [2, 2], 'same');\n out = tf.add(out, conv(x, params.expansion_conv, [2, 2]));\n return out;\n}\n\nfunction mainBlock(x: tf.Tensor4D, params: MainBlockParams): tf.Tensor4D {\n let out = depthwiseSeparableConv(tf.relu(x), params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv2, [1, 1]);\n out = tf.add(out, x);\n return out;\n}\n\nexport class TinyXception extends NeuralNetwork {\n private _numMainBlocks: number\n\n constructor(numMainBlocks: number) {\n super('TinyXception');\n this._numMainBlocks = numMainBlocks;\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n if (!params) {\n throw new Error('TinyXception - load model before inference');\n }\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(256)) as tf.Tensor4D;\n let out = tf.relu(conv(normalized, params.entry_flow.conv_in, [2, 2]));\n out = reductionBlock(out, params.entry_flow.reduction_block_0, false);\n out = reductionBlock(out, params.entry_flow.reduction_block_1);\n range(this._numMainBlocks, 0, 1).forEach((idx) => {\n out = mainBlock(out, params.middle_flow[`main_block_${idx}`]);\n });\n out = reductionBlock(out, params.exit_flow.reduction_block);\n out = tf.relu(depthwiseSeparableConv(out, params.exit_flow.separable_conv, [1, 1]));\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'tiny_xception_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this._numMainBlocks);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights, this._numMainBlocks);\n }\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const age = extractFCParams(512, 1, 'fc/age');\n const gender = extractFCParams(512, 2, 'fc/gender');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc: { age, gender } },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping,\n} from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: {\n age: extractFcParams('fc/age'),\n gender: extractFcParams('fc/gender'),\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from '../common/index';\n\n// eslint-disable-next-line no-shadow\nexport enum Gender {\n // eslint-disable-next-line no-unused-vars\n FEMALE = 'female',\n // eslint-disable-next-line no-unused-vars\n MALE = 'male'\n}\n\nexport type AgeAndGenderPrediction = {\n age: number\n gender: Gender\n genderProbability: number\n}\n\nexport type NetOutput = { age: tf.Tensor1D, gender: tf.Tensor2D }\n\nexport type NetParams = {\n fc: {\n age: FCParams\n gender: FCParams\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { seperateWeightMaps } from '../faceProcessor/util';\nimport { TinyXception } from '../xception/TinyXception';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport {\n AgeAndGenderPrediction, Gender, NetOutput, NetParams,\n} from './types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\n\nexport class AgeGenderNet extends NeuralNetwork {\n private _faceFeatureExtractor: TinyXception\n\n constructor(faceFeatureExtractor: TinyXception = new TinyXception(2)) {\n super('AgeGenderNet');\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): TinyXception {\n return this._faceFeatureExtractor;\n }\n\n public runNet(input: NetInput | tf.Tensor4D): NetOutput {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n\n const pooled = tf.avgPool(bottleneckFeatures, [7, 7], [2, 2], 'valid').as2D(bottleneckFeatures.shape[0], -1);\n const age = fullyConnectedLayer(pooled, params.fc.age).as1D();\n const gender = fullyConnectedLayer(pooled, params.fc.gender);\n return { age, gender };\n });\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): NetOutput {\n return tf.tidy(() => {\n const { age, gender } = this.runNet(input);\n return { age, gender: tf.softmax(gender) };\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictAgeAndGender(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n\n const ages = tf.unstack(out.age);\n const genders = tf.unstack(out.gender);\n const ageAndGenderTensors = ages.map((ageTensor, i) => ({\n ageTensor,\n genderTensor: genders[i],\n }));\n\n const predictionsByBatch = await Promise.all(\n ageAndGenderTensors.map(async ({ ageTensor, genderTensor }) => {\n const age = (await ageTensor.data())[0];\n const probMale = (await genderTensor.data())[0];\n const isMale = probMale > 0.5;\n const gender = isMale ? Gender.MALE : Gender.FEMALE;\n const genderProbability = isMale ? probMale : (1 - probMale);\n\n ageTensor.dispose();\n genderTensor.dispose();\n return { age, gender, genderProbability };\n }),\n );\n out.age.dispose();\n out.gender.dispose();\n\n return netInput.isBatchInput ? predictionsByBatch as AgeAndGenderPrediction[] : predictionsByBatch[0] as AgeAndGenderPrediction;\n }\n\n protected getDefaultModelName(): string {\n return 'age_gender_model';\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights);\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const classifierWeightSize = (512 * 1 + 1) + (512 * 2 + 2);\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { IDimensions, Point } from '../classes/index';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractorParams, TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { isEven } from '../utils/index';\n\nexport abstract class FaceLandmark68NetBase<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends FaceProcessor {\n public postProcess(output: tf.Tensor2D, inputSize: number, originalDimensions: IDimensions[]): tf.Tensor2D {\n const inputDimensions = originalDimensions.map(({ width, height }) => {\n const scale = inputSize / Math.max(height, width);\n return {\n width: width * scale,\n height: height * scale,\n };\n });\n\n const batchSize = inputDimensions.length;\n\n return tf.tidy(() => {\n const createInterleavedTensor = (fillX: number, fillY: number) => tf.stack([tf.fill([68], fillX, 'float32'), tf.fill([68], fillY, 'float32')], 1).as2D(1, 136).as1D();\n\n // eslint-disable-next-line no-unused-vars\n const getPadding = (batchIdx: number, cond: (w: number, h: number) => boolean): number => {\n const { width, height } = inputDimensions[batchIdx];\n return cond(width, height) ? Math.abs(width - height) / 2 : 0;\n };\n\n const getPaddingX = (batchIdx: number) => getPadding(batchIdx, (w, h) => w < h);\n const getPaddingY = (batchIdx: number) => getPadding(batchIdx, (w, h) => h < w);\n\n const landmarkTensors = output\n .mul(tf.fill([batchSize, 136], inputSize, 'float32'))\n .sub(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n getPaddingX(batchIdx),\n getPaddingY(batchIdx),\n ))))\n .div(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n inputDimensions[batchIdx].width,\n inputDimensions[batchIdx].height,\n ))));\n\n return landmarkTensors as tf.Tensor2D;\n });\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n return tf.tidy(() => {\n const out = this.runNet(input);\n return this.postProcess(\n out,\n input.inputSize as number,\n input.inputDimensions.map(([height, width]) => ({ height, width })),\n );\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async detectLandmarks(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const landmarkTensors = tf.tidy(\n () => tf.unstack(this.forwardInput(netInput)),\n );\n\n const landmarksForBatch = await Promise.all(landmarkTensors.map(\n async (landmarkTensor, batchIdx) => {\n const landmarksArray = Array.from(await landmarkTensor.data());\n const xCoords = landmarksArray.filter((_, i) => isEven(i));\n const yCoords = landmarksArray.filter((_, i) => !isEven(i));\n\n return new FaceLandmarks68(\n Array(68).fill(0).map((_, i) => new Point(xCoords[i] as number, yCoords[i] as number)),\n {\n height: netInput.getInputHeight(batchIdx),\n width: netInput.getInputWidth(batchIdx),\n },\n );\n },\n ));\n\n landmarkTensors.forEach((t) => t.dispose());\n\n return netInput.isBatchInput ? landmarksForBatch as FaceLandmarks68[] : landmarksForBatch[0] as FaceLandmarks68;\n }\n\n protected getClassifierChannelsOut(): number {\n return 136;\n }\n}\n", "import { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68Net extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceLandmark68Net', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMapTiny(\n weightMap: tf.NamedTensorMap,\n): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock3Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock3Params('dense0', true),\n dense1: extractDenseBlock3Params('dense1'),\n dense2: extractDenseBlock3Params('dense2'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsTiny(weights: Float32Array): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock3Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock3Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock3Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock3Params(64, 128, 'dense2');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { dense0, dense1, dense2 },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock3 } from './denseBlock';\nimport { extractParamsFromWeightMapTiny } from './extractParamsFromWeightMapTiny';\nimport { extractParamsTiny } from './extractParamsTiny';\nimport { IFaceFeatureExtractor, TinyFaceFeatureExtractorParams } from './types';\n\nexport class TinyFaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('TinyFaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyFaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255)) as tf.Tensor4D;\n\n let out = denseBlock3(normalized, params.dense0, true);\n out = denseBlock3(out, params.dense1);\n out = denseBlock3(out, params.dense2);\n out = tf.avgPool(out, [14, 14], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_tiny_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMapTiny(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParamsTiny(weights);\n }\n}\n", "import { TinyFaceFeatureExtractor } from '../faceFeatureExtractor/TinyFaceFeatureExtractor';\nimport { TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68TinyNet extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: TinyFaceFeatureExtractor = new TinyFaceFeatureExtractor()) {\n super('FaceLandmark68TinyNet', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_tiny_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 128;\n }\n}\n", "import { FaceLandmark68Net } from './FaceLandmark68Net';\n\nexport * from './FaceLandmark68Net';\nexport * from './FaceLandmark68TinyNet';\nexport class FaceLandmarkNet extends FaceLandmark68Net {}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ScaleLayerParams } from './types';\n\nexport function scale(x: tf.Tensor4D, params: ScaleLayerParams): tf.Tensor4D {\n return tf.add(tf.mul(x, params.weights), params.biases);\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { scale } from './scaleLayer';\nimport { ConvLayerParams } from './types';\n\nfunction convLayer(\n x: tf.Tensor4D,\n params: ConvLayerParams,\n strides: [number, number],\n withRelu: boolean,\n padding: 'valid' | 'same' = 'same',\n): tf.Tensor4D {\n const { filters, bias } = params.conv;\n\n let out = tf.conv2d(x, filters, strides, padding);\n out = tf.add(out, bias);\n out = scale(out, params.scale);\n return withRelu ? tf.relu(out) : out;\n}\n\nexport function conv(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], true);\n}\n\nexport function convNoRelu(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], false);\n}\n\nexport function convDown(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [2, 2], true, 'valid');\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ConvParams, extractWeightsFactory, ExtractWeightsFunction, ParamMapping,\n} from '../common/index';\nimport { isFloat } from '../utils/index';\nimport {\n ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams,\n} from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractFilterValues(numFilterValues: number, numFilters: number, filterSize: number): tf.Tensor4D {\n const weights = extractWeights(numFilterValues);\n const depth = weights.length / (numFilters * filterSize * filterSize);\n\n if (isFloat(depth)) {\n throw new Error(`depth has to be an integer: ${depth}, weights.length: ${weights.length}, numFilters: ${numFilters}, filterSize: ${filterSize}`);\n }\n\n return tf.tidy(\n () => tf.transpose(\n tf.tensor4d(weights, [numFilters, depth, filterSize, filterSize]),\n [2, 3, 1, 0],\n ),\n );\n }\n\n function extractConvParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams {\n const filters = extractFilterValues(numFilterValues, numFilters, filterSize);\n const bias = tf.tensor1d(extractWeights(numFilters));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n }\n\n function extractScaleLayerParams(numWeights: number, mappedPrefix: string): ScaleLayerParams {\n const weights = tf.tensor1d(extractWeights(numWeights));\n const biases = tf.tensor1d(extractWeights(numWeights));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/biases` },\n );\n\n return {\n weights,\n biases,\n };\n }\n\n function extractConvLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvLayerParams {\n const conv = extractConvParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv`);\n const scale = extractScaleLayerParams(numFilters, `${mappedPrefix}/scale`);\n\n return { conv, scale };\n }\n\n function extractResidualLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n isDown: boolean = false,\n ): ResidualLayerParams {\n const conv1 = extractConvLayerParams((isDown ? 0.5 : 1) * numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv1`);\n const conv2 = extractConvLayerParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv2`);\n\n return { conv1, conv2 };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const conv32_down = extractConvLayerParams(4704, 32, 7, 'conv32_down');\n const conv32_1 = extractResidualLayerParams(9216, 32, 3, 'conv32_1');\n const conv32_2 = extractResidualLayerParams(9216, 32, 3, 'conv32_2');\n const conv32_3 = extractResidualLayerParams(9216, 32, 3, 'conv32_3');\n\n const conv64_down = extractResidualLayerParams(36864, 64, 3, 'conv64_down', true);\n const conv64_1 = extractResidualLayerParams(36864, 64, 3, 'conv64_1');\n const conv64_2 = extractResidualLayerParams(36864, 64, 3, 'conv64_2');\n const conv64_3 = extractResidualLayerParams(36864, 64, 3, 'conv64_3');\n\n const conv128_down = extractResidualLayerParams(147456, 128, 3, 'conv128_down', true);\n const conv128_1 = extractResidualLayerParams(147456, 128, 3, 'conv128_1');\n const conv128_2 = extractResidualLayerParams(147456, 128, 3, 'conv128_2');\n\n const conv256_down = extractResidualLayerParams(589824, 256, 3, 'conv256_down', true);\n const conv256_1 = extractResidualLayerParams(589824, 256, 3, 'conv256_1');\n const conv256_2 = extractResidualLayerParams(589824, 256, 3, 'conv256_2');\n const conv256_down_out = extractResidualLayerParams(589824, 256, 3, 'conv256_down_out');\n\n const fc = tf.tidy(\n () => tf.transpose(tf.tensor2d(extractWeights(256 * 128), [128, 256]), [1, 0]),\n );\n paramMappings.push({ paramPath: 'fc' });\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from '../common/index';\nimport { isTensor2D } from '../utils/index';\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractScaleLayerParams(prefix: string): ScaleLayerParams {\n const weights = extractWeightEntry(`${prefix}/scale/weights`, 1);\n const biases = extractWeightEntry(`${prefix}/scale/biases`, 1);\n\n return { weights, biases };\n }\n\n function extractConvLayerParams(prefix: string): ConvLayerParams {\n const filters = extractWeightEntry(`${prefix}/conv/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/conv/bias`, 1);\n const scale = extractScaleLayerParams(prefix);\n\n return { conv: { filters, bias }, scale };\n }\n\n function extractResidualLayerParams(prefix: string): ResidualLayerParams {\n return {\n conv1: extractConvLayerParams(`${prefix}/conv1`),\n conv2: extractConvLayerParams(`${prefix}/conv2`),\n };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n const conv32_down = extractConvLayerParams('conv32_down');\n const conv32_1 = extractResidualLayerParams('conv32_1');\n const conv32_2 = extractResidualLayerParams('conv32_2');\n const conv32_3 = extractResidualLayerParams('conv32_3');\n\n const conv64_down = extractResidualLayerParams('conv64_down');\n const conv64_1 = extractResidualLayerParams('conv64_1');\n const conv64_2 = extractResidualLayerParams('conv64_2');\n const conv64_3 = extractResidualLayerParams('conv64_3');\n\n const conv128_down = extractResidualLayerParams('conv128_down');\n const conv128_1 = extractResidualLayerParams('conv128_1');\n const conv128_2 = extractResidualLayerParams('conv128_2');\n\n const conv256_down = extractResidualLayerParams('conv256_down');\n const conv256_1 = extractResidualLayerParams('conv256_1');\n const conv256_2 = extractResidualLayerParams('conv256_2');\n const conv256_down_out = extractResidualLayerParams('conv256_down_out');\n\n const { fc } = weightMap;\n paramMappings.push({ originalPath: 'fc', paramPath: 'fc' });\n\n if (!isTensor2D(fc)) {\n throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${fc}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { conv, convDown, convNoRelu } from './convLayer';\nimport { ResidualLayerParams } from './types';\n\nexport function residual(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = conv(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n out = tf.add(out, x);\n out = tf.relu(out);\n return out;\n}\n\nexport function residualDown(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = convDown(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n\n let pooled = tf.avgPool(x, 2, 2, 'valid') as tf.Tensor4D;\n const zeros = tf.zeros(pooled.shape);\n const isPad = pooled.shape[3] !== out.shape[3];\n const isAdjustShape = pooled.shape[1] !== out.shape[1] || pooled.shape[2] !== out.shape[2];\n\n if (isAdjustShape) {\n const padShapeX = [...out.shape] as [number, number, number, number];\n padShapeX[1] = 1;\n const zerosW = tf.zeros(padShapeX);\n out = tf.concat([out, zerosW], 1);\n\n const padShapeY = [...out.shape] as [number, number, number, number];\n padShapeY[2] = 1;\n const zerosH = tf.zeros(padShapeY);\n out = tf.concat([out, zerosH], 2);\n }\n\n pooled = isPad ? tf.concat([pooled, zeros], 3) : pooled;\n out = tf.add(pooled, out) as tf.Tensor4D;\n\n out = tf.relu(out);\n return out;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { convDown } from './convLayer';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { residual, residualDown } from './residualLayer';\nimport { NetParams } from './types';\n\nexport class FaceRecognitionNet extends NeuralNetwork {\n constructor() {\n super('FaceRecognitionNet');\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceRecognitionNet - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(150, true), 'float32');\n\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(256)) as tf.Tensor4D;\n\n let out = convDown(normalized, params.conv32_down);\n out = tf.maxPool(out, 3, 2, 'valid');\n\n out = residual(out, params.conv32_1);\n out = residual(out, params.conv32_2);\n out = residual(out, params.conv32_3);\n\n out = residualDown(out, params.conv64_down);\n out = residual(out, params.conv64_1);\n out = residual(out, params.conv64_2);\n out = residual(out, params.conv64_3);\n\n out = residualDown(out, params.conv128_down);\n out = residual(out, params.conv128_1);\n out = residual(out, params.conv128_2);\n\n out = residualDown(out, params.conv256_down);\n out = residual(out, params.conv256_1);\n out = residual(out, params.conv256_2);\n out = residualDown(out, params.conv256_down_out);\n\n const globalAvg = out.mean([1, 2]) as tf.Tensor2D;\n const fullyConnected = tf.matMul(globalAvg, params.fc);\n\n return fullyConnected;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async computeFaceDescriptor(input: TNetInput): Promise {\n if (input?.shape?.some((dim) => dim <= 0)) return new Float32Array(128);\n const netInput = await toNetInput(input);\n const faceDescriptorTensors = tf.tidy(\n () => tf.unstack(this.forwardInput(netInput)),\n );\n const faceDescriptorsForBatch = await Promise.all(faceDescriptorTensors.map((t) => t.data())) as Float32Array[];\n faceDescriptorTensors.forEach((t) => t.dispose());\n return netInput.isBatchInput ? faceDescriptorsForBatch : faceDescriptorsForBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_recognition_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { FaceRecognitionNet } from './FaceRecognitionNet';\n\nexport * from './FaceRecognitionNet';\n\nexport function createFaceRecognitionNet(weights: Float32Array) {\n const net = new FaceRecognitionNet();\n net.extractWeights(weights);\n return net;\n}\n", "export type WithFaceDescriptor = TSource & {\n descriptor: Float32Array\n}\n\nexport function extendWithFaceDescriptor<\n TSource\n>(\n sourceObj: TSource,\n descriptor: Float32Array,\n): WithFaceDescriptor {\n const extension = { descriptor };\n return { ...sourceObj, ...extension };\n}\n", "export type WithAge = TSource & {\n age: number\n}\n\nexport function isWithAge(obj: any): obj is WithAge<{}> {\n return typeof obj.age === 'number';\n}\n\nexport function extendWithAge<\n TSource\n>(\n sourceObj: TSource,\n age: number,\n): WithAge {\n const extension = { age };\n return { ...sourceObj, ...extension };\n}\n", "import { Gender } from '../ageGenderNet/types';\nimport { isValidProbablitiy } from '../utils/index';\n\nexport type WithGender = TSource & {\n gender: Gender\n genderProbability: number\n}\n\nexport function isWithGender(obj: any): obj is WithGender<{}> {\n return (obj.gender === Gender.MALE || obj.gender === Gender.FEMALE)\n && isValidProbablitiy(obj.genderProbability);\n}\n\nexport function extendWithGender<\n TSource\n>(\n sourceObj: TSource,\n gender: Gender,\n genderProbability: number,\n): WithGender {\n const extension = { gender, genderProbability };\n return { ...sourceObj, ...extension };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ExtractWeightsFunction, ParamMapping, ConvParams, extractWeightsFactory,\n} from '../common/index';\nimport {\n MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams,\n} from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractDepthwiseConvParams(numChannels: number, mappedPrefix: string): MobileNetV1.DepthwiseConvParams {\n const filters = tf.tensor4d(extractWeights(3 * 3 * numChannels), [3, 3, numChannels, 1]);\n const batch_norm_scale = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_offset = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_mean = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_variance = tf.tensor1d(extractWeights(numChannels));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/batch_norm_scale` },\n { paramPath: `${mappedPrefix}/batch_norm_offset` },\n { paramPath: `${mappedPrefix}/batch_norm_mean` },\n { paramPath: `${mappedPrefix}/batch_norm_variance` },\n );\n\n return {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n };\n }\n\n function extractConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n isPointwiseConv?: boolean,\n ): ConvParams {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/${isPointwiseConv ? 'batch_norm_offset' : 'bias'}` },\n );\n\n return { filters, bias };\n }\n\n function extractPointwiseConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): PointwiseConvParams {\n const {\n filters,\n bias,\n } = extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, true);\n\n return {\n filters,\n batch_norm_offset: bias,\n };\n }\n\n function extractConvPairParams(\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): MobileNetV1.ConvPairParams {\n const depthwise_conv = extractDepthwiseConvParams(channelsIn, `${mappedPrefix}/depthwise_conv`);\n const pointwise_conv = extractPointwiseConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/pointwise_conv`);\n\n return { depthwise_conv, pointwise_conv };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n const conv_0 = extractPointwiseConvParams(3, 32, 3, 'mobilenetv1/conv_0');\n const conv_1 = extractConvPairParams(32, 64, 'mobilenetv1/conv_1');\n const conv_2 = extractConvPairParams(64, 128, 'mobilenetv1/conv_2');\n const conv_3 = extractConvPairParams(128, 128, 'mobilenetv1/conv_3');\n const conv_4 = extractConvPairParams(128, 256, 'mobilenetv1/conv_4');\n const conv_5 = extractConvPairParams(256, 256, 'mobilenetv1/conv_5');\n const conv_6 = extractConvPairParams(256, 512, 'mobilenetv1/conv_6');\n const conv_7 = extractConvPairParams(512, 512, 'mobilenetv1/conv_7');\n const conv_8 = extractConvPairParams(512, 512, 'mobilenetv1/conv_8');\n const conv_9 = extractConvPairParams(512, 512, 'mobilenetv1/conv_9');\n const conv_10 = extractConvPairParams(512, 512, 'mobilenetv1/conv_10');\n const conv_11 = extractConvPairParams(512, 512, 'mobilenetv1/conv_11');\n const conv_12 = extractConvPairParams(512, 1024, 'mobilenetv1/conv_12');\n const conv_13 = extractConvPairParams(1024, 1024, 'mobilenetv1/conv_13');\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n conv_8,\n conv_9,\n conv_10,\n conv_11,\n conv_12,\n conv_13,\n };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n const conv_0 = extractPointwiseConvParams(1024, 256, 1, 'prediction_layer/conv_0');\n const conv_1 = extractPointwiseConvParams(256, 512, 3, 'prediction_layer/conv_1');\n const conv_2 = extractPointwiseConvParams(512, 128, 1, 'prediction_layer/conv_2');\n const conv_3 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_3');\n const conv_4 = extractPointwiseConvParams(256, 128, 1, 'prediction_layer/conv_4');\n const conv_5 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_5');\n const conv_6 = extractPointwiseConvParams(256, 64, 1, 'prediction_layer/conv_6');\n const conv_7 = extractPointwiseConvParams(64, 128, 3, 'prediction_layer/conv_7');\n const box_encoding_0_predictor = extractConvParams(512, 12, 1, 'prediction_layer/box_predictor_0/box_encoding_predictor');\n const class_predictor_0 = extractConvParams(512, 9, 1, 'prediction_layer/box_predictor_0/class_predictor');\n const box_encoding_1_predictor = extractConvParams(1024, 24, 1, 'prediction_layer/box_predictor_1/box_encoding_predictor');\n const class_predictor_1 = extractConvParams(1024, 18, 1, 'prediction_layer/box_predictor_1/class_predictor');\n const box_encoding_2_predictor = extractConvParams(512, 24, 1, 'prediction_layer/box_predictor_2/box_encoding_predictor');\n const class_predictor_2 = extractConvParams(512, 18, 1, 'prediction_layer/box_predictor_2/class_predictor');\n const box_encoding_3_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_3/box_encoding_predictor');\n const class_predictor_3 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_3/class_predictor');\n const box_encoding_4_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_4/box_encoding_predictor');\n const class_predictor_4 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_4/class_predictor');\n const box_encoding_5_predictor = extractConvParams(128, 24, 1, 'prediction_layer/box_predictor_5/box_encoding_predictor');\n const class_predictor_5 = extractConvParams(128, 18, 1, 'prediction_layer/box_predictor_5/class_predictor');\n\n const box_predictor_0 = {\n box_encoding_predictor: box_encoding_0_predictor,\n class_predictor: class_predictor_0,\n };\n const box_predictor_1 = {\n box_encoding_predictor: box_encoding_1_predictor,\n class_predictor: class_predictor_1,\n };\n const box_predictor_2 = {\n box_encoding_predictor: box_encoding_2_predictor,\n class_predictor: class_predictor_2,\n };\n const box_predictor_3 = {\n box_encoding_predictor: box_encoding_3_predictor,\n class_predictor: class_predictor_3,\n };\n const box_predictor_4 = {\n box_encoding_predictor: box_encoding_4_predictor,\n class_predictor: class_predictor_4,\n };\n const box_predictor_5 = {\n box_encoding_predictor: box_encoding_5_predictor,\n class_predictor: class_predictor_5,\n };\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n box_predictor_0,\n box_predictor_1,\n box_predictor_2,\n box_predictor_3,\n box_predictor_4,\n box_predictor_5,\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n const mobilenetv1 = extractMobilenetV1Params();\n const prediction_layer = extractPredictionLayerParams();\n const extra_dim = tf.tensor3d(\n extractWeights(5118 * 4),\n [1, 5118, 4],\n );\n const output_layer = {\n extra_dim,\n };\n paramMappings.push({ paramPath: 'output_layer/extra_dim' });\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n params: {\n mobilenetv1,\n prediction_layer,\n output_layer,\n },\n paramMappings,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ConvParams, disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping,\n} from '../common/index';\nimport { isTensor3D } from '../utils/index';\nimport {\n BoxPredictionParams, MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams,\n} from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractPointwiseConvParams(prefix: string, idx: number, mappedPrefix: string): PointwiseConvParams {\n const filters = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/weights`, 4, `${mappedPrefix}/filters`);\n const batch_norm_offset = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/convolution_bn_offset`, 1, `${mappedPrefix}/batch_norm_offset`);\n return { filters, batch_norm_offset };\n }\n\n function extractConvPairParams(idx: number): MobileNetV1.ConvPairParams {\n const mappedPrefix = `mobilenetv1/conv_${idx}`;\n const prefixDepthwiseConv = `MobilenetV1/Conv2d_${idx}_depthwise`;\n const mappedPrefixDepthwiseConv = `${mappedPrefix}/depthwise_conv`;\n const mappedPrefixPointwiseConv = `${mappedPrefix}/pointwise_conv`;\n\n const filters = extractWeightEntry(`${prefixDepthwiseConv}/depthwise_weights`, 4, `${mappedPrefixDepthwiseConv}/filters`);\n const batch_norm_scale = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/gamma`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_scale`);\n const batch_norm_offset = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/beta`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_offset`);\n const batch_norm_mean = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_mean`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_mean`);\n const batch_norm_variance = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_variance`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_variance`);\n\n return {\n depthwise_conv: {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n },\n pointwise_conv: extractPointwiseConvParams('MobilenetV1', idx, mappedPrefixPointwiseConv),\n };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n return {\n conv_0: extractPointwiseConvParams('MobilenetV1', 0, 'mobilenetv1/conv_0'),\n conv_1: extractConvPairParams(1),\n conv_2: extractConvPairParams(2),\n conv_3: extractConvPairParams(3),\n conv_4: extractConvPairParams(4),\n conv_5: extractConvPairParams(5),\n conv_6: extractConvPairParams(6),\n conv_7: extractConvPairParams(7),\n conv_8: extractConvPairParams(8),\n conv_9: extractConvPairParams(9),\n conv_10: extractConvPairParams(10),\n conv_11: extractConvPairParams(11),\n conv_12: extractConvPairParams(12),\n conv_13: extractConvPairParams(13),\n };\n }\n\n function extractConvParams(prefix: string, mappedPrefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/weights`, 4, `${mappedPrefix}/filters`);\n const bias = extractWeightEntry(`${prefix}/biases`, 1, `${mappedPrefix}/bias`);\n return { filters, bias };\n }\n\n function extractBoxPredictorParams(idx: number): BoxPredictionParams {\n const box_encoding_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/BoxEncodingPredictor`,\n `prediction_layer/box_predictor_${idx}/box_encoding_predictor`,\n );\n const class_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/ClassPredictor`,\n `prediction_layer/box_predictor_${idx}/class_predictor`,\n );\n return { box_encoding_predictor, class_predictor };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n return {\n conv_0: extractPointwiseConvParams('Prediction', 0, 'prediction_layer/conv_0'),\n conv_1: extractPointwiseConvParams('Prediction', 1, 'prediction_layer/conv_1'),\n conv_2: extractPointwiseConvParams('Prediction', 2, 'prediction_layer/conv_2'),\n conv_3: extractPointwiseConvParams('Prediction', 3, 'prediction_layer/conv_3'),\n conv_4: extractPointwiseConvParams('Prediction', 4, 'prediction_layer/conv_4'),\n conv_5: extractPointwiseConvParams('Prediction', 5, 'prediction_layer/conv_5'),\n conv_6: extractPointwiseConvParams('Prediction', 6, 'prediction_layer/conv_6'),\n conv_7: extractPointwiseConvParams('Prediction', 7, 'prediction_layer/conv_7'),\n box_predictor_0: extractBoxPredictorParams(0),\n box_predictor_1: extractBoxPredictorParams(1),\n box_predictor_2: extractBoxPredictorParams(2),\n box_predictor_3: extractBoxPredictorParams(3),\n box_predictor_4: extractBoxPredictorParams(4),\n box_predictor_5: extractBoxPredictorParams(5),\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n const extra_dim = weightMap['Output/extra_dim'];\n paramMappings.push({ originalPath: 'Output/extra_dim', paramPath: 'output_layer/extra_dim' });\n if (!isTensor3D(extra_dim)) {\n throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${extra_dim}`);\n }\n\n const params = {\n mobilenetv1: extractMobilenetV1Params(),\n prediction_layer: extractPredictionLayerParams(),\n output_layer: {\n extra_dim,\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { PointwiseConvParams } from './types';\n\nexport function pointwiseConvLayer(\n x: tf.Tensor4D,\n params: PointwiseConvParams,\n strides: [number, number],\n) {\n return tf.tidy(() => {\n let out = tf.conv2d(x, params.filters, strides, 'same');\n out = tf.add(out, params.batch_norm_offset);\n return tf.clipByValue(out, 0, 6);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { MobileNetV1 } from './types';\n\nconst epsilon = 0.0010000000474974513;\n\nfunction depthwiseConvLayer(\n x: tf.Tensor4D,\n params: MobileNetV1.DepthwiseConvParams,\n strides: [number, number],\n) {\n return tf.tidy(() => {\n let out = tf.depthwiseConv2d(x, params.filters, strides, 'same');\n out = tf.batchNorm(\n out,\n params.batch_norm_mean,\n params.batch_norm_variance,\n params.batch_norm_offset,\n params.batch_norm_scale,\n epsilon,\n );\n return tf.clipByValue(out, 0, 6);\n });\n}\n\nfunction getStridesForLayerIdx(layerIdx: number): [number, number] {\n return [2, 4, 6, 12].some((idx) => idx === layerIdx) ? [2, 2] : [1, 1];\n}\n\nexport function mobileNetV1(x: tf.Tensor4D, params: MobileNetV1.Params) {\n return tf.tidy(() => {\n let conv11;\n let out = pointwiseConvLayer(x, params.conv_0, [2, 2]);\n\n const convPairParams = [\n params.conv_1,\n params.conv_2,\n params.conv_3,\n params.conv_4,\n params.conv_5,\n params.conv_6,\n params.conv_7,\n params.conv_8,\n params.conv_9,\n params.conv_10,\n params.conv_11,\n params.conv_12,\n params.conv_13,\n ];\n\n convPairParams.forEach((param, i) => {\n const layerIdx = i + 1;\n const depthwiseConvStrides = getStridesForLayerIdx(layerIdx);\n out = depthwiseConvLayer(out, param.depthwise_conv, depthwiseConvStrides);\n out = pointwiseConvLayer(out, param.pointwise_conv, [1, 1]);\n if (layerIdx === 11) {\n conv11 = out;\n }\n });\n\n if (conv11 === null) {\n throw new Error('mobileNetV1 - output of conv layer 11 is null');\n }\n\n return {\n out,\n conv11: conv11 as any,\n };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nfunction IOU(boxes: tf.Tensor2D, i: number, j: number) {\n const boxesData = boxes.arraySync();\n const yminI = Math.min(boxesData[i][0], boxesData[i][2]);\n const xminI = Math.min(boxesData[i][1], boxesData[i][3]);\n const ymaxI = Math.max(boxesData[i][0], boxesData[i][2]);\n const xmaxI = Math.max(boxesData[i][1], boxesData[i][3]);\n const yminJ = Math.min(boxesData[j][0], boxesData[j][2]);\n const xminJ = Math.min(boxesData[j][1], boxesData[j][3]);\n const ymaxJ = Math.max(boxesData[j][0], boxesData[j][2]);\n const xmaxJ = Math.max(boxesData[j][1], boxesData[j][3]);\n const areaI = (ymaxI - yminI) * (xmaxI - xminI);\n const areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ);\n if (areaI <= 0 || areaJ <= 0) {\n return 0.0;\n }\n const intersectionYmin = Math.max(yminI, yminJ);\n const intersectionXmin = Math.max(xminI, xminJ);\n const intersectionYmax = Math.min(ymaxI, ymaxJ);\n const intersectionXmax = Math.min(xmaxI, xmaxJ);\n const intersectionArea = Math.max(intersectionYmax - intersectionYmin, 0.0)\n * Math.max(intersectionXmax - intersectionXmin, 0.0);\n return intersectionArea / (areaI + areaJ - intersectionArea);\n}\n\nexport function nonMaxSuppression(\n boxes: tf.Tensor2D,\n scores: number[],\n maxOutputSize: number,\n iouThreshold: number,\n scoreThreshold: number,\n): number[] {\n const numBoxes = boxes.shape[0];\n const outputSize = Math.min(\n maxOutputSize,\n numBoxes,\n );\n\n const candidates = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .filter((c) => c.score > scoreThreshold)\n .sort((c1, c2) => c2.score - c1.score);\n\n const suppressFunc = (x: number) => (x <= iouThreshold ? 1 : 0);\n const selected: number[] = [];\n\n candidates.forEach((c) => {\n if (selected.length >= outputSize) return;\n const originalScore = c.score;\n for (let j = selected.length - 1; j >= 0; --j) {\n const iou = IOU(boxes, c.boxIndex, selected[j]);\n if (iou === 0.0) continue;\n c.score *= suppressFunc(iou);\n if (c.score <= scoreThreshold) break;\n }\n if (originalScore === c.score) {\n selected.push(c.boxIndex);\n }\n });\n return selected;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { OutputLayerParams } from './types';\n\nfunction getCenterCoordinatesAndSizesLayer(x: tf.Tensor2D) {\n const vec = tf.unstack(tf.transpose(x, [1, 0]));\n\n const sizes = [\n tf.sub(vec[2], vec[0]),\n tf.sub(vec[3], vec[1]),\n ];\n const centers = [\n tf.add(vec[0], tf.div(sizes[0], tf.scalar(2))),\n tf.add(vec[1], tf.div(sizes[1], tf.scalar(2))),\n ];\n return {\n sizes,\n centers,\n };\n}\n\nfunction decodeBoxesLayer(x0: tf.Tensor2D, x1: tf.Tensor2D) {\n const {\n sizes,\n centers,\n } = getCenterCoordinatesAndSizesLayer(x0);\n\n const vec = tf.unstack(tf.transpose(x1, [1, 0]));\n const div0_out = tf.div(tf.mul(tf.exp(tf.div(vec[2], tf.scalar(5))), sizes[0]), tf.scalar(2));\n const add0_out = tf.add(tf.mul(tf.div(vec[0], tf.scalar(10)), sizes[0]), centers[0]);\n const div1_out = tf.div(tf.mul(tf.exp(tf.div(vec[3], tf.scalar(5))), sizes[1]), tf.scalar(2));\n const add1_out = tf.add(tf.mul(tf.div(vec[1], tf.scalar(10)), sizes[1]), centers[1]);\n\n return tf.transpose(\n tf.stack([\n tf.sub(add0_out, div0_out),\n tf.sub(add1_out, div1_out),\n tf.add(add0_out, div0_out),\n tf.add(add1_out, div1_out),\n ]),\n [1, 0],\n );\n}\n\nexport function outputLayer(\n boxPredictions: tf.Tensor4D,\n classPredictions: tf.Tensor4D,\n params: OutputLayerParams,\n) {\n return tf.tidy(() => {\n const batchSize = boxPredictions.shape[0];\n\n let boxes = decodeBoxesLayer(\n tf.reshape(tf.tile(params.extra_dim, [batchSize, 1, 1]), [-1, 4]) as tf.Tensor2D,\n tf.reshape(boxPredictions, [-1, 4]) as tf.Tensor2D,\n );\n boxes = tf.reshape(\n boxes,\n [batchSize, (boxes.shape[0] / batchSize), 4],\n );\n\n const scoresAndClasses = tf.sigmoid(tf.slice(classPredictions, [0, 0, 1], [-1, -1, -1]));\n let scores = tf.slice(scoresAndClasses, [0, 0, 0], [-1, -1, 1]) as tf.Tensor;\n\n scores = tf.reshape(\n scores,\n [batchSize, scores.shape[1] as number],\n );\n\n const boxesByBatch = tf.unstack(boxes) as tf.Tensor2D[];\n const scoresByBatch = tf.unstack(scores) as tf.Tensor1D[];\n\n return {\n boxes: boxesByBatch,\n scores: scoresByBatch,\n };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { convLayer } from '../common/index';\nimport { BoxPredictionParams } from './types';\n\nexport function boxPredictionLayer(\n x: tf.Tensor4D,\n params: BoxPredictionParams,\n) {\n return tf.tidy(() => {\n const batchSize = x.shape[0];\n const boxPredictionEncoding = tf.reshape(\n convLayer(x, params.box_encoding_predictor),\n [batchSize, -1, 1, 4],\n );\n const classPrediction = tf.reshape(\n convLayer(x, params.class_predictor),\n [batchSize, -1, 3],\n );\n return { boxPredictionEncoding, classPrediction };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { boxPredictionLayer } from './boxPredictionLayer';\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { PredictionLayerParams } from './types';\n\nexport function predictionLayer(\n x: tf.Tensor4D,\n conv11: tf.Tensor4D,\n params: PredictionLayerParams,\n) {\n return tf.tidy(() => {\n const conv0 = pointwiseConvLayer(x, params.conv_0, [1, 1]);\n const conv1 = pointwiseConvLayer(conv0, params.conv_1, [2, 2]);\n const conv2 = pointwiseConvLayer(conv1, params.conv_2, [1, 1]);\n const conv3 = pointwiseConvLayer(conv2, params.conv_3, [2, 2]);\n const conv4 = pointwiseConvLayer(conv3, params.conv_4, [1, 1]);\n const conv5 = pointwiseConvLayer(conv4, params.conv_5, [2, 2]);\n const conv6 = pointwiseConvLayer(conv5, params.conv_6, [1, 1]);\n const conv7 = pointwiseConvLayer(conv6, params.conv_7, [2, 2]);\n\n const boxPrediction0 = boxPredictionLayer(conv11, params.box_predictor_0);\n const boxPrediction1 = boxPredictionLayer(x, params.box_predictor_1);\n const boxPrediction2 = boxPredictionLayer(conv1, params.box_predictor_2);\n const boxPrediction3 = boxPredictionLayer(conv3, params.box_predictor_3);\n const boxPrediction4 = boxPredictionLayer(conv5, params.box_predictor_4);\n const boxPrediction5 = boxPredictionLayer(conv7, params.box_predictor_5);\n\n const boxPredictions = tf.concat([\n boxPrediction0.boxPredictionEncoding,\n boxPrediction1.boxPredictionEncoding,\n boxPrediction2.boxPredictionEncoding,\n boxPrediction3.boxPredictionEncoding,\n boxPrediction4.boxPredictionEncoding,\n boxPrediction5.boxPredictionEncoding,\n ], 1) as tf.Tensor4D;\n\n const classPredictions = tf.concat([\n boxPrediction0.classPrediction,\n boxPrediction1.classPrediction,\n boxPrediction2.classPrediction,\n boxPrediction3.classPrediction,\n boxPrediction4.classPrediction,\n boxPrediction5.classPrediction,\n ], 1) as tf.Tensor4D;\n\n return {\n boxPredictions,\n classPredictions,\n };\n });\n}\n", "export interface ISsdMobilenetv1Options {\n minConfidence?: number\n maxResults?: number\n}\n\nexport class SsdMobilenetv1Options {\n protected _name: string = 'SsdMobilenetv1Options'\n\n private _minConfidence: number\n\n private _maxResults: number\n\n constructor({ minConfidence, maxResults }: ISsdMobilenetv1Options = {}) {\n this._minConfidence = minConfidence || 0.5;\n this._maxResults = maxResults || 100;\n\n if (typeof this._minConfidence !== 'number' || this._minConfidence <= 0 || this._minConfidence >= 1) {\n throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);\n }\n\n if (typeof this._maxResults !== 'number') {\n throw new Error(`${this._name} - expected maxResults to be a number`);\n }\n }\n\n get minConfidence(): number { return this._minConfidence; }\n\n get maxResults(): number { return this._maxResults; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { mobileNetV1 } from './mobileNetV1';\nimport { nonMaxSuppression } from './nonMaxSuppression';\nimport { outputLayer } from './outputLayer';\nimport { predictionLayer } from './predictionLayer';\nimport { ISsdMobilenetv1Options, SsdMobilenetv1Options } from './SsdMobilenetv1Options';\nimport { NetParams } from './types';\n\nexport class SsdMobilenetv1 extends NeuralNetwork {\n constructor() {\n super('SsdMobilenetv1');\n }\n\n public forwardInput(input: NetInput) {\n const { params } = this;\n\n if (!params) {\n throw new Error('SsdMobilenetv1 - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(512, false), 'float32');\n const x = tf.sub(tf.mul(batchTensor, tf.scalar(0.007843137718737125)), tf.scalar(1)) as tf.Tensor4D;\n const features = mobileNetV1(x, params.mobilenetv1);\n\n const { boxPredictions, classPredictions } = predictionLayer(features.out, features.conv11, params.prediction_layer);\n\n return outputLayer(boxPredictions, classPredictions, params.output_layer);\n });\n }\n\n public async forward(input: TNetInput) {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async locateFaces(\n input: TNetInput,\n options: ISsdMobilenetv1Options = {},\n ): Promise {\n const { maxResults, minConfidence } = new SsdMobilenetv1Options(options);\n\n const netInput = await toNetInput(input);\n\n const {\n boxes: _boxes,\n scores: _scores,\n } = this.forwardInput(netInput);\n\n const boxes = _boxes[0];\n const scores = _scores[0];\n for (let i = 1; i < _boxes.length; i++) {\n _boxes[i].dispose();\n _scores[i].dispose();\n }\n\n const scoresData = Array.from(await scores.data());\n const iouThreshold = 0.5;\n const indices = nonMaxSuppression(\n boxes,\n scoresData as number[],\n maxResults,\n iouThreshold,\n minConfidence,\n );\n\n const reshapedDims = netInput.getReshapedInputDimensions(0);\n const inputSize = netInput.inputSize as number;\n const padX = inputSize / reshapedDims.width;\n const padY = inputSize / reshapedDims.height;\n\n const boxesData = boxes.arraySync();\n const results = indices\n .map((idx) => {\n const [top, bottom] = [\n Math.max(0, boxesData[idx][0]),\n Math.min(1.0, boxesData[idx][2]),\n ].map((val) => val * padY);\n const [left, right] = [\n Math.max(0, boxesData[idx][1]),\n Math.min(1.0, boxesData[idx][3]),\n ].map((val) => val * padX);\n return new FaceDetection(\n scoresData[idx] as number,\n new Rect(\n left,\n top,\n right - left,\n bottom - top,\n ),\n {\n height: netInput.getInputHeight(0),\n width: netInput.getInputWidth(0),\n },\n );\n });\n\n boxes.dispose();\n scores.dispose();\n return results;\n }\n\n protected getDefaultModelName(): string {\n return 'ssd_mobilenetv1_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { SsdMobilenetv1 } from './SsdMobilenetv1';\n\nexport * from './SsdMobilenetv1';\nexport * from './SsdMobilenetv1Options';\n\nexport function createSsdMobilenetv1(weights: Float32Array) {\n const net = new SsdMobilenetv1();\n net.extractWeights(weights);\n return net;\n}\n\nexport function createFaceDetectionNet(weights: Float32Array) {\n return createSsdMobilenetv1(weights);\n}\n\n// alias for backward compatibily\nexport class FaceDetectionNet extends SsdMobilenetv1 {}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(0.738768, 0.874946),\n new Point(2.42204, 2.65704),\n new Point(4.30971, 7.04493),\n new Point(10.246, 4.59428),\n new Point(12.6868, 11.8741),\n];\n\nexport const BOX_ANCHORS_SEPARABLE = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB_SEPARABLE: [number, number, number] = [117.001, 114.697, 97.404];\n\nexport const DEFAULT_MODEL_NAME = 'tiny_yolov2_model';\nexport const DEFAULT_MODEL_NAME_SEPARABLE_CONV = 'tiny_yolov2_separable_conv_model';\n", "import { Point } from '../classes/Point';\n\nexport type TinyYolov2Config = {\n withSeparableConvs: boolean\n iouThreshold: number\n anchors: Point[]\n classes: string[]\n meanRgb?: [number, number, number]\n withClassScores?: boolean,\n filterSizes?: number[]\n isFirstLayerConv2d?: boolean\n}\n\nconst isNumber = (arg: any) => typeof arg === 'number';\n\nexport function validateConfig(config: any) {\n if (!config) {\n throw new Error(`invalid config: ${config}`);\n }\n\n if (typeof config.withSeparableConvs !== 'boolean') {\n throw new Error(`config.withSeparableConvs has to be a boolean, have: ${config.withSeparableConvs}`);\n }\n\n if (!isNumber(config.iouThreshold) || config.iouThreshold < 0 || config.iouThreshold > 1.0) {\n throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${config.iouThreshold}`);\n }\n\n if (\n !Array.isArray(config.classes)\n || !config.classes.length\n || !config.classes.every((c: any) => typeof c === 'string')\n ) {\n throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(config.classes)}`);\n }\n\n if (\n !Array.isArray(config.anchors)\n || !config.anchors.length\n || !config.anchors.map((a: any) => a || {}).every((a: any) => isNumber(a.x) && isNumber(a.y))\n ) {\n throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(config.anchors)}`);\n }\n\n if (config.meanRgb && (\n !Array.isArray(config.meanRgb)\n || config.meanRgb.length !== 3\n || !config.meanRgb.every(isNumber)\n )) {\n throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(config.meanRgb)}`);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function leaky(x: tf.Tensor4D): tf.Tensor4D {\n return tf.tidy(() => {\n const min = tf.mul(x, tf.scalar(0.10000000149011612));\n return tf.add(tf.relu(tf.sub(x, min)), min);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { leaky } from './leaky';\nimport { ConvWithBatchNorm } from './types';\n\nexport function convWithBatchNorm(x: tf.Tensor4D, params: ConvWithBatchNorm): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.conv2d(out, params.conv.filters, [1, 1], 'valid');\n out = tf.sub(out, params.bn.sub);\n out = tf.mul(out, params.bn.truediv);\n out = tf.add(out, params.conv.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from '../common/types';\nimport { leaky } from './leaky';\n\nexport function depthwiseSeparableConv(x: tf.Tensor4D, params: SeparableConvParams): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.separableConv2d(out, params.depthwise_filter, params.pointwise_filter, [1, 1], 'valid');\n out = tf.add(out, params.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { extractConvParamsFactory } from '../common/index';\nimport { extractSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightsFactory } from '../common/extractWeightsFactory';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n\n function extractBatchNormParams(size: number, mappedPrefix: string): BatchNorm {\n const sub = tf.tensor1d(extractWeights(size));\n const truediv = tf.tensor1d(extractWeights(size));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/sub` },\n { paramPath: `${mappedPrefix}/truediv` },\n );\n return { sub, truediv };\n }\n\n function extractConvWithBatchNormParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv`);\n const bn = extractBatchNormParams(channelsOut, `${mappedPrefix}/bn`);\n return { conv, bn };\n }\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParams(\n weights: Float32Array,\n config: TinyYolov2Config,\n boxEncodingSize: number,\n filterSizes: number[],\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(extractWeights, paramMappings);\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = config.isFirstLayerConv2d\n ? extractConvParams(s0, s1, 3, 'conv0')\n : extractSeparableConvParams(s0, s1, 'conv0');\n const conv1 = extractSeparableConvParams(s1, s2, 'conv1');\n const conv2 = extractSeparableConvParams(s2, s3, 'conv2');\n const conv3 = extractSeparableConvParams(s3, s4, 'conv3');\n const conv4 = extractSeparableConvParams(s4, s5, 'conv4');\n const conv5 = extractSeparableConvParams(s5, s6, 'conv5');\n const conv6 = s7 ? extractSeparableConvParams(s6, s7, 'conv6') : undefined;\n const conv7 = s8 ? extractSeparableConvParams(s7, s8, 'conv7') : undefined;\n const conv8 = extractConvParams(s8 || s7 || s6, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n } else {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = extractConvWithBatchNormParams(s0, s1, 'conv0');\n const conv1 = extractConvWithBatchNormParams(s1, s2, 'conv1');\n const conv2 = extractConvWithBatchNormParams(s2, s3, 'conv2');\n const conv3 = extractConvWithBatchNormParams(s3, s4, 'conv3');\n const conv4 = extractConvWithBatchNormParams(s4, s5, 'conv4');\n const conv5 = extractConvWithBatchNormParams(s5, s6, 'conv5');\n const conv6 = extractConvWithBatchNormParams(s6, s7, 'conv6');\n const conv7 = extractConvWithBatchNormParams(s7, s8, 'conv7');\n const conv8 = extractConvParams(s8, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n }\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from '../common/index';\nimport { disposeUnusedWeightTensors } from '../common/disposeUnusedWeightTensors';\nimport { loadSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightEntryFactory } from '../common/extractWeightEntryFactory';\nimport { ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractBatchNormParams(prefix: string): BatchNorm {\n const sub = extractWeightEntry(`${prefix}/sub`, 1);\n const truediv = extractWeightEntry(`${prefix}/truediv`, 1);\n return { sub, truediv };\n }\n\n function extractConvParams(prefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { filters, bias };\n }\n\n function extractConvWithBatchNormParams(prefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(`${prefix}/conv`);\n const bn = extractBatchNormParams(`${prefix}/bn`);\n return { conv, bn };\n }\n\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n config: TinyYolov2Config,\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n // eslint-disable-next-line no-mixed-operators\n const numFilters = (config.filterSizes && config.filterSizes.length || 9);\n params = {\n conv0: config.isFirstLayerConv2d ? extractConvParams('conv0') : extractSeparableConvParams('conv0'),\n conv1: extractSeparableConvParams('conv1'),\n conv2: extractSeparableConvParams('conv2'),\n conv3: extractSeparableConvParams('conv3'),\n conv4: extractSeparableConvParams('conv4'),\n conv5: extractSeparableConvParams('conv5'),\n conv6: numFilters > 7 ? extractSeparableConvParams('conv6') : undefined,\n conv7: numFilters > 8 ? extractSeparableConvParams('conv7') : undefined,\n conv8: extractConvParams('conv8'),\n };\n } else {\n params = {\n conv0: extractConvWithBatchNormParams('conv0'),\n conv1: extractConvWithBatchNormParams('conv1'),\n conv2: extractConvWithBatchNormParams('conv2'),\n conv3: extractConvWithBatchNormParams('conv3'),\n conv4: extractConvWithBatchNormParams('conv4'),\n conv5: extractConvWithBatchNormParams('conv5'),\n conv6: extractConvWithBatchNormParams('conv6'),\n conv7: extractConvWithBatchNormParams('conv7'),\n conv8: extractConvParams('conv8'),\n };\n }\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "export interface ITinyYolov2Options {\n inputSize?: number\n scoreThreshold?: number\n}\n\nexport class TinyYolov2Options {\n protected _name: string = 'TinyYolov2Options'\n\n private _inputSize: number\n\n private _scoreThreshold: number\n\n constructor({ inputSize, scoreThreshold }: ITinyYolov2Options = {}) {\n this._inputSize = inputSize || 416;\n this._scoreThreshold = scoreThreshold || 0.5;\n\n if (typeof this._inputSize !== 'number' || this._inputSize % 32 !== 0) {\n throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);\n }\n\n if (typeof this._scoreThreshold !== 'number' || this._scoreThreshold <= 0 || this._scoreThreshold >= 1) {\n throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`);\n }\n }\n\n get inputSize(): number { return this._inputSize; }\n\n get scoreThreshold(): number { return this._scoreThreshold; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { BoundingBox } from '../classes/BoundingBox';\nimport { Dimensions } from '../classes/Dimensions';\nimport { ObjectDetection } from '../classes/ObjectDetection';\nimport { convLayer } from '../common/index';\nimport { ConvParams, SeparableConvParams } from '../common/types';\nimport { toNetInput } from '../dom/index';\nimport { NetInput } from '../dom/NetInput';\nimport { TNetInput } from '../dom/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { sigmoid } from '../ops/index';\nimport { nonMaxSuppression } from '../ops/nonMaxSuppression';\nimport { normalize } from '../ops/normalize';\nimport { TinyYolov2Config, validateConfig } from './config';\nimport { convWithBatchNorm } from './convWithBatchNorm';\nimport { depthwiseSeparableConv } from './depthwiseSeparableConv';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { leaky } from './leaky';\nimport { ITinyYolov2Options, TinyYolov2Options } from './TinyYolov2Options';\nimport { DefaultTinyYolov2NetParams, MobilenetParams, TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2Base extends NeuralNetwork {\n public static DEFAULT_FILTER_SIZES = [3, 16, 32, 64, 128, 256, 512, 1024, 1024];\n\n private _config: TinyYolov2Config\n\n constructor(config: TinyYolov2Config) {\n super('TinyYolov2');\n validateConfig(config);\n this._config = config;\n }\n\n public get config(): TinyYolov2Config {\n return this._config;\n }\n\n public get withClassScores(): boolean {\n return this.config.withClassScores || this.config.classes.length > 1;\n }\n\n public get boxEncodingSize(): number {\n return 5 + (this.withClassScores ? this.config.classes.length : 0);\n }\n\n public runTinyYolov2(x: tf.Tensor4D, params: DefaultTinyYolov2NetParams): tf.Tensor4D {\n let out = convWithBatchNorm(x, params.conv0);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = convWithBatchNorm(out, params.conv6);\n out = convWithBatchNorm(out, params.conv7);\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public runMobilenet(x: tf.Tensor4D, params: MobilenetParams): tf.Tensor4D {\n let out = this.config.isFirstLayerConv2d\n ? leaky(convLayer(x, params.conv0 as ConvParams, 'valid', false))\n : depthwiseSeparableConv(x, params.conv0 as SeparableConvParams);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = params.conv6 ? depthwiseSeparableConv(out, params.conv6) : out;\n out = params.conv7 ? depthwiseSeparableConv(out, params.conv7) : out;\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public forwardInput(input: NetInput, inputSize: number): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyYolov2 - load model before inference');\n }\n\n return tf.tidy(() => {\n let batchTensor = tf.cast(input.toBatchTensor(inputSize, false), 'float32');\n batchTensor = this.config.meanRgb\n ? normalize(batchTensor, this.config.meanRgb)\n : batchTensor;\n batchTensor = batchTensor.div(tf.scalar(256)) as tf.Tensor4D;\n return this.config.withSeparableConvs\n ? this.runMobilenet(batchTensor, params as MobilenetParams)\n : this.runTinyYolov2(batchTensor, params as DefaultTinyYolov2NetParams);\n });\n }\n\n public async forward(input: TNetInput, inputSize: number): Promise {\n return this.forwardInput(await toNetInput(input), inputSize);\n }\n\n public async detect(input: TNetInput, forwardParams: ITinyYolov2Options = {}): Promise {\n const { inputSize, scoreThreshold } = new TinyYolov2Options(forwardParams);\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput, inputSize);\n const out0 = tf.tidy(() => tf.unstack(out)[0].expandDims()) as tf.Tensor4D;\n const inputDimensions = {\n width: netInput.getInputWidth(0),\n height: netInput.getInputHeight(0),\n };\n\n const results = await this.extractBoxes(out0, netInput.getReshapedInputDimensions(0), scoreThreshold);\n out.dispose();\n out0.dispose();\n\n const boxes = results.map((res) => res.box);\n const scores = results.map((res) => res.score);\n const classScores = results.map((res) => res.classScore);\n const classNames = results.map((res) => this.config.classes[res.label]);\n\n const indices = nonMaxSuppression(\n boxes.map((box) => box.rescale(inputSize)),\n scores,\n this.config.iouThreshold,\n true,\n );\n\n const detections = indices.map((idx) => new ObjectDetection(\n scores[idx],\n classScores[idx],\n classNames[idx],\n boxes[idx],\n inputDimensions,\n ));\n return detections;\n }\n\n protected getDefaultModelName(): string {\n return '';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this.config);\n }\n\n protected extractParams(weights: Float32Array) {\n const filterSizes = this.config.filterSizes || TinyYolov2Base.DEFAULT_FILTER_SIZES;\n\n const numFilters = filterSizes ? filterSizes.length : undefined;\n if (numFilters !== 7 && numFilters !== 8 && numFilters !== 9) {\n throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${numFilters} filterSizes in config`);\n }\n return extractParams(weights, this.config, this.boxEncodingSize, filterSizes);\n }\n\n protected async extractBoxes(\n outputTensor: tf.Tensor4D,\n inputBlobDimensions: Dimensions,\n scoreThreshold?: number,\n ) {\n const { width, height } = inputBlobDimensions;\n const inputSize = Math.max(width, height);\n const correctionFactorX = inputSize / width;\n const correctionFactorY = inputSize / height;\n\n const numCells = outputTensor.shape[1];\n const numBoxes = this.config.anchors.length;\n\n const [boxesTensor, scoresTensor, classScoresTensor] = tf.tidy(() => {\n const reshaped = outputTensor.reshape([numCells, numCells, numBoxes, this.boxEncodingSize]);\n\n const boxes = reshaped.slice([0, 0, 0, 0], [numCells, numCells, numBoxes, 4]);\n const scores = reshaped.slice([0, 0, 0, 4], [numCells, numCells, numBoxes, 1]);\n const classScores = this.withClassScores\n ? tf.softmax(reshaped.slice([0, 0, 0, 5], [numCells, numCells, numBoxes, this.config.classes.length]), 3)\n : tf.scalar(0);\n return [boxes, scores, classScores];\n });\n\n const results = [] as any;\n const scoresData = await scoresTensor.array();\n const boxesData = await boxesTensor.array();\n for (let row = 0; row < numCells; row++) {\n for (let col = 0; col < numCells; col++) {\n for (let anchor = 0; anchor < numBoxes; anchor++) {\n const score = sigmoid(scoresData[row][col][anchor][0]);\n if (!scoreThreshold || score > scoreThreshold) {\n const ctX = ((col + sigmoid(boxesData[row][col][anchor][0])) / numCells) * correctionFactorX;\n const ctY = ((row + sigmoid(boxesData[row][col][anchor][1])) / numCells) * correctionFactorY;\n const widthLocal = ((Math.exp(boxesData[row][col][anchor][2]) * this.config.anchors[anchor].x) / numCells) * correctionFactorX;\n const heightLocal = ((Math.exp(boxesData[row][col][anchor][3]) * this.config.anchors[anchor].y) / numCells) * correctionFactorY;\n const x = (ctX - (widthLocal / 2));\n const y = (ctY - (heightLocal / 2));\n const pos = { row, col, anchor };\n const { classScore, label } = this.withClassScores\n ? await this.extractPredictedClass(classScoresTensor as tf.Tensor4D, pos)\n : { classScore: 1, label: 0 };\n results.push({\n box: new BoundingBox(x, y, x + widthLocal, y + heightLocal),\n score,\n classScore: score * classScore,\n label,\n ...pos,\n });\n }\n }\n }\n }\n\n boxesTensor.dispose();\n scoresTensor.dispose();\n classScoresTensor.dispose();\n return results;\n }\n\n private async extractPredictedClass(classesTensor: tf.Tensor4D, pos: { row: number, col: number, anchor: number }) {\n const { row, col, anchor } = pos;\n const classesData = await classesTensor.array();\n return Array(this.config.classes.length).fill(0)\n .map((_, i) => classesData[row][col][anchor][i])\n .map((classScore, label) => ({\n classScore,\n label,\n }))\n .reduce((max, curr) => (max.classScore > curr.classScore ? max : curr));\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/types';\nimport { TNetInput } from '../dom/types';\nimport {\n BOX_ANCHORS,\n BOX_ANCHORS_SEPARABLE,\n DEFAULT_MODEL_NAME,\n DEFAULT_MODEL_NAME_SEPARABLE_CONV,\n IOU_THRESHOLD,\n MEAN_RGB_SEPARABLE,\n} from './const';\nimport { TinyYolov2Base } from './TinyYolov2Base';\nimport { ITinyYolov2Options } from './TinyYolov2Options';\nimport { TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2 extends TinyYolov2Base {\n constructor(withSeparableConvs: boolean = true) {\n const config = {\n withSeparableConvs,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n ...(withSeparableConvs\n ? {\n anchors: BOX_ANCHORS_SEPARABLE,\n meanRgb: MEAN_RGB_SEPARABLE,\n }\n : {\n anchors: BOX_ANCHORS,\n withClassScores: true,\n }),\n };\n\n super(config);\n }\n\n public get withSeparableConvs(): boolean {\n return this.config.withSeparableConvs;\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected getDefaultModelName(): string {\n return this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME;\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { TinyYolov2 } from './TinyYolov2';\n\nexport * from './TinyYolov2Options';\nexport * from './config';\nexport * from './types';\nexport { TinyYolov2 };\n\nexport function createTinyYolov2(weights: Float32Array, withSeparableConvs: boolean = true) {\n const net = new TinyYolov2(withSeparableConvs);\n net.extractWeights(weights);\n return net;\n}\n", "import { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\n\nexport interface ITinyFaceDetectorOptions extends ITinyYolov2Options {}\n\nexport class TinyFaceDetectorOptions extends TinyYolov2Options {\n protected _name: string = 'TinyFaceDetectorOptions'\n}\n", "export class ComposableTask {\n public async then(\n // eslint-disable-next-line no-unused-vars\n onfulfilled: (value: T) => T | PromiseLike,\n ): Promise {\n return onfulfilled(await this.run());\n }\n\n public async run(): Promise {\n throw new Error('ComposableTask - run is not implemented');\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\n\nexport async function extractAllFacesAndComputeResults, TResult>(\n parentResults: TSource[],\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResults: (faces: Array) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment: (parentResult: WithFaceLandmarks) => FaceDetection = ({ alignedRect }) => alignedRect,\n) {\n const faceBoxes = parentResults.map((parentResult) => (isWithFaceLandmarks(parentResult)\n ? getRectForAlignment(parentResult)\n : parentResult.detection));\n const faces: Array = extractedFaces || (\n input instanceof tf.Tensor\n ? await extractFaceTensors(input, faceBoxes)\n : await extractFaces(input, faceBoxes)\n );\n\n const results = await computeResults(faces);\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return results;\n}\n\nexport async function extractSingleFaceAndComputeResult, TResult>(\n parentResult: TSource,\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResult: (face: HTMLCanvasElement | tf.Tensor3D) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment?: (parentResultLocal: WithFaceLandmarks) => FaceDetection,\n) {\n return extractAllFacesAndComputeResults(\n [parentResult],\n input,\n async (faces) => computeResult(faces[0]),\n extractedFaces,\n getRectForAlignment,\n );\n}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB: [number, number, number] = [117.001, 114.697, 97.404];\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/index';\nimport { TNetInput } from '../dom/index';\nimport { ITinyYolov2Options } from '../tinyYolov2/index';\nimport { TinyYolov2Base } from '../tinyYolov2/TinyYolov2Base';\nimport { TinyYolov2NetParams } from '../tinyYolov2/types';\nimport { BOX_ANCHORS, IOU_THRESHOLD, MEAN_RGB } from './const';\n\nexport class TinyFaceDetector extends TinyYolov2Base {\n constructor() {\n const config = {\n withSeparableConvs: true,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n anchors: BOX_ANCHORS,\n meanRgb: MEAN_RGB,\n isFirstLayerConv2d: true,\n filterSizes: [3, 16, 32, 64, 128, 256, 512],\n };\n\n super(config);\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected getDefaultModelName(): string {\n return 'tiny_face_detector_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { AgeGenderNet } from '../ageGenderNet/AgeGenderNet';\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressionNet } from '../faceExpressionNet/FaceExpressionNet';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { FaceRecognitionNet } from '../faceRecognitionNet/FaceRecognitionNet';\nimport { SsdMobilenetv1 } from '../ssdMobilenetv1/SsdMobilenetv1';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetector } from '../tinyFaceDetector/TinyFaceDetector';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { ITinyYolov2Options, TinyYolov2 } from '../tinyYolov2/index';\n\nexport const nets = {\n ssdMobilenetv1: new SsdMobilenetv1(),\n tinyFaceDetector: new TinyFaceDetector(),\n tinyYolov2: new TinyYolov2(),\n faceLandmark68Net: new FaceLandmark68Net(),\n faceLandmark68TinyNet: new FaceLandmark68TinyNet(),\n faceRecognitionNet: new FaceRecognitionNet(),\n faceExpressionNet: new FaceExpressionNet(),\n ageGenderNet: new AgeGenderNet(),\n};\n\n/**\n * Attempts to detect all faces in an image using SSD Mobilenetv1 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const ssdMobilenetv1 = (input: TNetInput, options: SsdMobilenetv1Options): Promise => nets.ssdMobilenetv1.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Face Detector.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyFaceDetectorOptions constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyFaceDetector = (input: TNetInput, options: TinyFaceDetectorOptions): Promise => nets.tinyFaceDetector.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Yolov2 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyYolov2Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyYolov2 = (input: TNetInput, options: ITinyYolov2Options): Promise => nets.tinyYolov2.locateFaces(input, options);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarks = (input: TNetInput): Promise => nets.faceLandmark68Net.detectLandmarks(input);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image\n * using a tinier version of the 68 point face landmark model, which is slightly\n * faster at inference, but also slightly less accurate.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarksTiny = (input: TNetInput): Promise => nets.faceLandmark68TinyNet.detectLandmarks(input);\n\n/**\n * Computes a 128 entry vector (face descriptor / face embeddings) from the face shown in an image,\n * which uniquely represents the features of that persons face. The computed face descriptor can\n * be used to measure the similarity between faces, by computing the euclidean distance of two\n * face descriptors.\n *\n * @param inputs The face image extracted from the aligned bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Face descriptor with 128 entries or array thereof in case of batch input.\n */\nexport const computeFaceDescriptor = (input: TNetInput): Promise => nets.faceRecognitionNet.computeFaceDescriptor(input);\n\n/**\n * Recognizes the facial expressions from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Facial expressions with corresponding probabilities or array thereof in case of batch input.\n */\nexport const recognizeFaceExpressions = (input: TNetInput): Promise => nets.faceExpressionNet.predictExpressions(input);\n\n/**\n * Predicts age and gender from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Predictions with age, gender and gender probability or array thereof in case of batch input.\n */\nexport const predictAgeAndGender = (input: TNetInput): Promise => nets.ageGenderNet.predictAgeAndGender(input);\n\nexport const loadSsdMobilenetv1Model = (url: string) => nets.ssdMobilenetv1.load(url);\nexport const loadTinyFaceDetectorModel = (url: string) => nets.tinyFaceDetector.load(url);\nexport const loadTinyYolov2Model = (url: string) => nets.tinyYolov2.load(url);\nexport const loadFaceLandmarkModel = (url: string) => nets.faceLandmark68Net.load(url);\nexport const loadFaceLandmarkTinyModel = (url: string) => nets.faceLandmark68TinyNet.load(url);\nexport const loadFaceRecognitionModel = (url: string) => nets.faceRecognitionNet.load(url);\nexport const loadFaceExpressionModel = (url: string) => nets.faceExpressionNet.load(url);\nexport const loadAgeGenderModel = (url: string) => nets.ageGenderNet.load(url);\n\n// backward compatibility\nexport const loadFaceDetectionModel = loadSsdMobilenetv1Model;\nexport const locateFaces = ssdMobilenetv1;\nexport const detectLandmarks = detectFaceLandmarks;\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderTask,\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\n\nexport class PredictFaceExpressionsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllFaceExpressionsTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictFaceExpressionsTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n\n const faceExpressionsByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map(\n (face) => nets.faceExpressionNet.predictExpressions(face) as Promise,\n )),\n this.extractedFaces,\n );\n\n return parentResults.map(\n (parentResult, i) => extendWithFaceExpressions(parentResult, faceExpressionsByFace[i]),\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictFaceExpressionsTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const faceExpressions = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceExpressionNet.predictExpressions(face) as Promise,\n this.extractedFaces,\n );\n\n return extendWithFaceExpressions(parentResult, faceExpressions);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictAllFaceExpressionsWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictAllFaceExpressionsTask {\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictSingleFaceExpressionsTask {\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { TNetInput } from '../dom/index';\nimport { extendWithAge, WithAge } from '../factories/WithAge';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { extendWithGender, WithGender } from '../factories/WithGender';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllFaceExpressionsTask,\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class PredictAgeAndGenderTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllAgeAndGenderTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictAgeAndGenderTaskBase>[], TSource[]> {\n public async run(): Promise>[]> {\n const parentResults = await this.parentTask;\n\n const ageAndGenderByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map(\n (face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise,\n )),\n this.extractedFaces,\n );\n\n return parentResults.map((parentResult, i) => {\n const { age, gender, genderProbability } = ageAndGenderByFace[i];\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n });\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictAgeAndGenderTaskBase> | undefined, TSource | undefined> {\n public async run(): Promise> | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const { age, gender, genderProbability } = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise,\n this.extractedFaces,\n );\n\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictAllAgeAndGenderWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictAllAgeAndGenderTask {\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictSingleAgeAndGenderTask {\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDescriptor, WithFaceDescriptor } from '../factories/WithFaceDescriptor';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\nimport {\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class ComputeFaceDescriptorsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n ) {\n super();\n }\n}\n\nexport class ComputeAllFaceDescriptorsTask<\n TSource extends WithFaceLandmarks>\n> extends ComputeFaceDescriptorsTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n\n const descriptors = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n (faces) => Promise.all(faces.map((face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise)),\n null,\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n\n return descriptors.map((descriptor, i) => extendWithFaceDescriptor(parentResults[i], descriptor));\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n\nexport class ComputeSingleFaceDescriptorTask<\n TSource extends WithFaceLandmarks>\n> extends ComputeFaceDescriptorsTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n const descriptor = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise,\n null,\n // eslint-disable-next-line no-shadow\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n\n return extendWithFaceDescriptor(parentResult, descriptor);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\nimport {\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class DetectFaceLandmarksTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected useTinyLandmarkNet: boolean,\n ) {\n super();\n }\n\n protected get landmarkNet(): FaceLandmark68Net | FaceLandmark68TinyNet {\n return this.useTinyLandmarkNet\n ? nets.faceLandmark68TinyNet\n : nets.faceLandmark68Net;\n }\n}\n\nexport class DetectAllFaceLandmarksTask<\n TSource extends WithFaceDetection<{}>\n> extends DetectFaceLandmarksTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n const detections = parentResults.map((res) => res.detection);\n\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, detections)\n : await extractFaces(this.input, detections);\n\n const faceLandmarksByFace = await Promise.all(faces.map(\n (face) => this.landmarkNet.detectLandmarks(face),\n )) as FaceLandmarks68[];\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return parentResults.map((parentResult, i) => extendWithFaceLandmarks(parentResult, faceLandmarksByFace[i]));\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class DetectSingleFaceLandmarksTask<\n TSource extends WithFaceDetection<{}>\n> extends DetectFaceLandmarksTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const { detection } = parentResult;\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, [detection])\n : await extractFaces(this.input, [detection]);\n\n const landmarks = await this.landmarkNet.detectLandmarks(faces[0]) as FaceLandmarks68;\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return extendWithFaceLandmarks(parentResult, landmarks);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { TinyYolov2Options } from '../tinyYolov2/index';\nimport { ComposableTask } from './ComposableTask';\nimport { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderTask, PredictSingleAgeAndGenderTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsTask, PredictSingleFaceExpressionsTask } from './PredictFaceExpressionsTask';\nimport { FaceDetectionOptions } from './types';\n\nexport class DetectFacesTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected options: FaceDetectionOptions = new SsdMobilenetv1Options(),\n ) {\n super();\n }\n}\n\nexport class DetectAllFacesTask extends DetectFacesTaskBase {\n public async run(): Promise {\n const { input, options } = this;\n\n let result;\n if (options instanceof TinyFaceDetectorOptions) result = nets.tinyFaceDetector.locateFaces(input, options);\n else if (options instanceof SsdMobilenetv1Options) result = nets.ssdMobilenetv1.locateFaces(input, options);\n else if (options instanceof TinyYolov2Options) result = nets.tinyYolov2.locateFaces(input, options);\n else throw new Error('detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options');\n\n return result;\n }\n\n private runAndExtendWithFaceDetections(): Promise[]> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise[]>(async (resolve) => {\n const detections = await this.run();\n resolve(detections.map((detection) => extendWithFaceDetection({}, detection)));\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet: boolean = false) {\n return new DetectAllFaceLandmarksTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n}\n\nexport class DetectSingleFaceTask extends DetectFacesTaskBase {\n public async run(): Promise {\n const faceDetections = await new DetectAllFacesTask(this.input, this.options);\n let faceDetectionWithHighestScore = faceDetections[0];\n faceDetections.forEach((faceDetection) => {\n if (faceDetection.score > faceDetectionWithHighestScore.score) faceDetectionWithHighestScore = faceDetection;\n });\n return faceDetectionWithHighestScore;\n }\n\n private runAndExtendWithFaceDetection(): Promise | undefined> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise | undefined>(async (resolve) => {\n const detection = await this.run();\n resolve(detection ? extendWithFaceDetection<{}>({}, detection) : undefined);\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet: boolean = false) {\n return new DetectSingleFaceLandmarksTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n}\n", "import { TNetInput } from '../dom/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { DetectAllFacesTask, DetectSingleFaceTask } from './DetectFacesTasks';\nimport { FaceDetectionOptions } from './types';\n\nexport function detectSingleFace(input: TNetInput, options: FaceDetectionOptions = new SsdMobilenetv1Options()): DetectSingleFaceTask {\n return new DetectSingleFaceTask(input, options);\n}\n\nexport function detectAllFaces(input: TNetInput, options: FaceDetectionOptions = new SsdMobilenetv1Options()): DetectAllFacesTask {\n return new DetectAllFacesTask(input, options);\n}\n", "import { TNetInput } from '../dom/index';\nimport { WithFaceDescriptor, WithFaceDetection, WithFaceLandmarks } from '../factories/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/index';\nimport { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\nimport { detectAllFaces } from './detectFaces';\n\n// export allFaces API for backward compatibility\n\nexport async function allFacesSsdMobilenetv1(\n input: TNetInput,\n minConfidence?: number,\n): Promise>>[]> {\n return detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? { minConfidence } : {}))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport async function allFacesTinyYolov2(\n input: TNetInput,\n forwardParams: ITinyYolov2Options = {},\n): Promise>>[]> {\n return detectAllFaces(input, new TinyYolov2Options(forwardParams))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport const allFaces = allFacesSsdMobilenetv1;\n", "export function euclideanDistance(arr1: number[] | Float32Array, arr2: number[] | Float32Array) {\n if (arr1.length !== arr2.length) throw new Error('euclideanDistance: arr1.length !== arr2.length');\n\n const desc1 = Array.from(arr1);\n const desc2 = Array.from(arr2);\n\n return Math.sqrt(\n desc1\n .map((val, i) => val - desc2[i])\n .reduce((res, diff) => res + (diff ** 2), 0),\n );\n}\n", "import { FaceMatch } from '../classes/FaceMatch';\nimport { LabeledFaceDescriptors } from '../classes/LabeledFaceDescriptors';\nimport { euclideanDistance } from '../euclideanDistance';\nimport { WithFaceDescriptor } from '../factories/index';\n\nexport class FaceMatcher {\n private _labeledDescriptors: LabeledFaceDescriptors[]\n\n private _distanceThreshold: number\n\n constructor(\n inputs: LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>,\n distanceThreshold: number = 0.6,\n ) {\n this._distanceThreshold = distanceThreshold;\n\n const inputArray = Array.isArray(inputs) ? inputs : [inputs];\n\n if (!inputArray.length) {\n throw new Error('FaceRecognizer.constructor - expected atleast one input');\n }\n\n let count = 1;\n const createUniqueLabel = () => `person ${count++}`;\n\n this._labeledDescriptors = inputArray.map((desc) => {\n if (desc instanceof LabeledFaceDescriptors) {\n return desc;\n }\n\n if (desc instanceof Float32Array) {\n return new LabeledFaceDescriptors(createUniqueLabel(), [desc]);\n }\n\n if (desc.descriptor && desc.descriptor instanceof Float32Array) {\n return new LabeledFaceDescriptors(createUniqueLabel(), [desc.descriptor]);\n }\n\n throw new Error('FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>');\n });\n }\n\n public get labeledDescriptors(): LabeledFaceDescriptors[] { return this._labeledDescriptors; }\n\n public get distanceThreshold(): number { return this._distanceThreshold; }\n\n public computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number {\n return descriptors\n .map((d) => euclideanDistance(d, queryDescriptor))\n .reduce((d1, d2) => d1 + d2, 0)\n / (descriptors.length || 1);\n }\n\n public matchDescriptor(queryDescriptor: Float32Array): FaceMatch {\n return this.labeledDescriptors\n .map(({ descriptors, label }) => new FaceMatch(\n label,\n this.computeMeanDistance(queryDescriptor, descriptors),\n ))\n .reduce((best, curr) => (best.distance < curr.distance ? best : curr));\n }\n\n public findBestMatch(queryDescriptor: Float32Array): FaceMatch {\n const bestMatch = this.matchDescriptor(queryDescriptor);\n return bestMatch.distance < this.distanceThreshold\n ? bestMatch\n : new FaceMatch('unknown', bestMatch.distance);\n }\n\n public toJSON(): any {\n return {\n distanceThreshold: this.distanceThreshold,\n labeledDescriptors: this.labeledDescriptors.map((ld) => ld.toJSON()),\n };\n }\n\n public static fromJSON(json: any): FaceMatcher {\n const labeledDescriptors = json.labeledDescriptors\n .map((ld: any) => LabeledFaceDescriptors.fromJSON(ld));\n return new FaceMatcher(labeledDescriptors, json.distanceThreshold);\n }\n}\n", "import { TinyFaceDetector } from './TinyFaceDetector';\n\nexport * from './TinyFaceDetector';\nexport * from './TinyFaceDetectorOptions';\n\nexport function createTinyFaceDetector(weights: Float32Array) {\n const net = new TinyFaceDetector();\n net.extractWeights(weights);\n return net;\n}\n", "import { Dimensions, IDimensions } from './classes/index';\nimport { FaceDetection } from './classes/FaceDetection';\nimport { FaceLandmarks } from './classes/FaceLandmarks';\nimport { extendWithFaceDetection, isWithFaceDetection } from './factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, isWithFaceLandmarks } from './factories/WithFaceLandmarks';\n\nexport function resizeResults(results: T, dimensions: IDimensions): T {\n const { width, height } = new Dimensions(dimensions.width, dimensions.height);\n\n if (width <= 0 || height <= 0) {\n throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({ width, height })}`);\n }\n\n if (Array.isArray(results)) {\n // return results.map(obj => resizeResults(obj, { width, height })) as any as T\n return (results as Array).map((obj) => resizeResults(obj, { width, height } as IDimensions)) as any as T;\n }\n\n if (isWithFaceLandmarks(results)) {\n const resizedDetection = results.detection.forSize(width, height);\n const resizedLandmarks = results.unshiftedLandmarks.forSize(resizedDetection.box.width, resizedDetection.box.height);\n return extendWithFaceLandmarks(extendWithFaceDetection(results, resizedDetection), resizedLandmarks);\n }\n\n if (isWithFaceDetection(results)) {\n return extendWithFaceDetection(results, results.detection.forSize(width, height));\n }\n\n if (results instanceof FaceLandmarks || results instanceof FaceDetection) {\n return (results as any).forSize(width, height);\n }\n\n return results;\n}\n"], + "mappings": "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C5C,OAAS,GAAI,EAAG,EAAI,EAAU,EAAE,EAC9B,EAAa,GAAW,EAAY,EAAI,GAE1C,EAAa,GAAW,EAAY,GAAK,EAAS,MAAO,SACzD,GAAM,GAAY,GAAU,GAC5B,MAAO,IAAM,EAAY,EAAU,GClC9B,GAAM,IAAkC,CAC7C,WAAY,GACZ,SAAW,GACF,EAAC,EAAG,IAAM,GAAU,MC+FzB,GAA4B,CAChC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAkB,IAC3B,GAAiB,GCxMnB,IAAuB,UAAU,IAAM,UAAA,CACrC,MAAA,MAAK,kBACE,GAAI,OCFb,IAAuB,UAAU,KAAO,UAAA,CACtC,MAAA,MAAK,kBACE,GAAK,OCFd,IAAuB,UAAU,MAAQ,UAAA,CACvC,MAAA,MAAK,kBACE,GAAM,OCHf,IAAuB,UAAU,IAAM,SACnC,EAAoB,CACtB,MAAA,MAAK,kBACE,EAAI,KAAM,ICHnB,IAAuB,UAAU,IAAM,SAC1B,EAAwB,EAAkB,CACrD,MAAA,MAAK,kBACE,GAAI,KAAM,EAAM,ICHzB,IAAuB,UAAU,IAAM,SAC1B,EAAwB,EAAkB,CACrD,MAAA,MAAK,kBACE,GAAI,KAAM,EAAM,ICJzB,IAAuB,UAAU,OAAS,SACtC,EAAa,CACf,MAAA,MAAK,kBA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,GAAS,CAAC,OAAQ,CAAC,EAAG,EAAY,EAAG,GAAI,QAAA,IACvC,EACF,GAAI,CAAC,OAAQ,CAAC,GAAS,QAAA,EAAS,MAAO,CAAC,KAAM,EAAG,SAAU,MAC/D,EAAI,KAAK,GACT,EAAc,KAAK,GACnB,EAAc,KAAK,GACnB,EAAc,KAAK,GACnB,EAAc,KAAK,GACnB,EAAc,KAAK,GAGrB,GAAM,GAAS,GAAK,CAAC,OAAQ,EAAK,QAAA,EAAS,MAAO,CAAC,KAAM,KAEzD,MAAA,GAAc,QAAQ,GAAK,EAAQ,8BAA8B,IAE1D,EAGF,GAAM,IAAyC,CACpD,WAAY,GACZ,YAAa,MACb,WAAY,IC4FR,GAAgC,CACpC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAgB,IACzB,GAAe,GE9TjB,GAAM,IAAmD,GAEnD,GA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,WAAY,KC6DR,IAAgC,CACpC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IAGF,OAAW,KAAgB,KACzB,GAAe,GEvUjB,GAAM,KAAU,QCyCH,IAAU,CACrB,YAAa,GACb,mBAAoB,GACpB,qBAAsB,GACtB,YAAa,GACb,cAAe,GACf,iBAAkB,GAClB,KAAQ,KCjCE,GAAZ,AAAA,UAAY,EAAQ,CAClB,EAAA,EAAA,QAAA,GAAA,UACA,EAAA,EAAA,MAAA,GAAA,QACA,EAAA,EAAA,KAAA,GAAA,OACA,EAAA,EAAA,OAAA,GAAA,SACA,EAAA,EAAA,UAAA,GAAA,cALU,IAAA,IAAQ,KASpB,GAAY,IAAZ,AAAA,UAAY,EAAiB,CAC3B,EAAA,EAAA,OAAA,GAAA,SACA,EAAA,EAAA,KAAA,GAAA,OACA,EAAA,EAAA,MAAA,GAAA,QACA,E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", "names": [] } diff --git a/dist/face-api.json b/dist/face-api.json deleted file mode 100644 index c709e05..0000000 --- a/dist/face-api.json +++ /dev/null @@ -1,3073 +0,0 @@ -{ - "inputs": { - "dist/tfjs.esm.js": { - "bytes": 1047769, - "imports": [] - }, - "src/draw/drawContour.ts": { - "bytes": 539, - "imports": [] - }, - "src/classes/Dimensions.ts": { - "bytes": 745, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/utils/index.ts": { - "bytes": 1793, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/Point.ts": { - "bytes": 925, - "imports": [] - }, - "src/classes/Box.ts": { - "bytes": 5690, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Point.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/BoundingBox.ts": { - "bytes": 402, - "imports": [ - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/ObjectDetection.ts": { - "bytes": 1424, - "imports": [ - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceDetection.ts": { - "bytes": 656, - "imports": [ - { - "path": "src/classes/ObjectDetection.ts", - "kind": "import-statement" - } - ] - }, - "src/ops/iou.ts": { - "bytes": 473, - "imports": [] - }, - "src/ops/minBbox.ts": { - "bytes": 498, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ops/nonMaxSuppression.ts": { - "bytes": 924, - "imports": [ - { - "path": "src/ops/iou.ts", - "kind": "import-statement" - } - ] - }, - "src/ops/normalize.ts": { - "bytes": 483, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ops/padToSquare.ts": { - "bytes": 1684, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ops/shuffleArray.ts": { - "bytes": 273, - "imports": [] - }, - "src/ops/index.ts": { - "bytes": 331, - "imports": [ - { - "path": "src/ops/iou.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/minBbox.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/nonMaxSuppression.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/normalize.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/padToSquare.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/shuffleArray.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/Rect.ts": { - "bytes": 359, - "imports": [ - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceLandmarks.ts": { - "bytes": 4199, - "imports": [ - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Point.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Rect.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceLandmarks5.ts": { - "bytes": 360, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceLandmarks68.ts": { - "bytes": 915, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceMatch.ts": { - "bytes": 578, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/LabeledBox.ts": { - "bytes": 645, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/LabeledFaceDescriptors.ts": { - "bytes": 1072, - "imports": [] - }, - "src/classes/PredictedBox.ts": { - "bytes": 952, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledBox.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/index.ts": { - "bytes": 436, - "imports": [ - { - "path": "src/classes/BoundingBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks5.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks68.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceMatch.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledFaceDescriptors.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/ObjectDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Point.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/PredictedBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Rect.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceDetection.ts": { - "bytes": 486, - "imports": [ - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - } - ] - }, - "src/env/createBrowserEnv.ts": { - "bytes": 636, - "imports": [] - }, - "src/env/createFileSystem.ts": { - "bytes": 654, - "imports": [] - }, - "src/env/createNodejsEnv.ts": { - "bytes": 1202, - "imports": [ - { - "path": "src/env/createFileSystem.ts", - "kind": "import-statement" - } - ] - }, - "src/env/isBrowser.ts": { - "bytes": 354, - "imports": [] - }, - "src/env/isNodejs.ts": { - "bytes": 295, - "imports": [] - }, - "src/env/types.ts": { - "bytes": 570, - "imports": [] - }, - "src/env/index.ts": { - "bytes": 1817, - "imports": [ - { - "path": "src/env/createBrowserEnv.ts", - "kind": "import-statement" - }, - { - "path": "src/env/createFileSystem.ts", - "kind": "import-statement" - }, - { - "path": "src/env/createNodejsEnv.ts", - "kind": "import-statement" - }, - { - "path": "src/env/isBrowser.ts", - "kind": "import-statement" - }, - { - "path": "src/env/isNodejs.ts", - "kind": "import-statement" - }, - { - "path": "src/env/types.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/resolveInput.ts": { - "bytes": 200, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/getContext2dOrThrow.ts": { - "bytes": 673, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/DrawTextField.ts": { - "bytes": 4094, - "imports": [ - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/DrawBox.ts": { - "bytes": 1831, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawTextField.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/drawDetections.ts": { - "bytes": 1128, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawBox.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/isMediaLoaded.ts": { - "bytes": 277, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/awaitMediaLoaded.ts": { - "bytes": 963, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaLoaded.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/bufferToImage.ts": { - "bytes": 687, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/getMediaDimensions.ts": { - "bytes": 529, - "imports": [ - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/createCanvas.ts": { - "bytes": 1139, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaLoaded.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/imageTensorToCanvas.ts": { - "bytes": 615, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/isMediaElement.ts": { - "bytes": 228, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/imageToSquare.ts": { - "bytes": 1296, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/NetInput.ts": { - "bytes": 5508, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/padToSquare.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageToSquare.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/toNetInput.ts": { - "bytes": 2115, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/awaitMediaLoaded.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaElement.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/NetInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/extractFaces.ts": { - "bytes": 1804, - "imports": [ - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageTensorToCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/toNetInput.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/extractFaceTensors.ts": { - "bytes": 1730, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchOrThrow.ts": { - "bytes": 390, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchImage.ts": { - "bytes": 451, - "imports": [ - { - "path": "src/dom/bufferToImage.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchJson.ts": { - "bytes": 155, - "imports": [ - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchNetWeights.ts": { - "bytes": 200, - "imports": [ - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - } - ] - }, - "src/common/getModelUris.ts": { - "bytes": 1052, - "imports": [] - }, - "src/dom/loadWeightMap.ts": { - "bytes": 552, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/getModelUris.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchJson.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/matchDimensions.ts": { - "bytes": 401, - "imports": [ - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/types.ts": { - "bytes": 383, - "imports": [] - }, - "src/dom/index.ts": { - "bytes": 696, - "imports": [ - { - "path": "src/dom/awaitMediaLoaded.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/bufferToImage.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/extractFaces.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/extractFaceTensors.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchImage.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchJson.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchNetWeights.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageTensorToCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageToSquare.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaElement.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaLoaded.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/loadWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/matchDimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/NetInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/toNetInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/types.ts", - "kind": "import-statement" - } - ] - }, - "src/NeuralNetwork.ts": { - "bytes": 5291, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/getModelUris.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/common/depthwiseSeparableConv.ts": { - "bytes": 414, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/denseBlock.ts": { - "bytes": 2038, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/depthwiseSeparableConv.ts", - "kind": "import-statement" - } - ] - }, - "src/common/convLayer.ts": { - "bytes": 428, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/common/disposeUnusedWeightTensors.ts": { - "bytes": 290, - "imports": [] - }, - "src/common/extractConvParamsFactory.ts": { - "bytes": 766, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/common/extractFCParamsFactory.ts": { - "bytes": 711, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/common/types.ts": { - "bytes": 797, - "imports": [] - }, - "src/common/extractSeparableConvParamsFactory.ts": { - "bytes": 1533, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/types.ts", - "kind": "import-statement" - } - ] - }, - "src/common/extractWeightEntryFactory.ts": { - "bytes": 579, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/common/extractWeightsFactory.ts": { - "bytes": 441, - "imports": [] - }, - "src/common/index.ts": { - "bytes": 399, - "imports": [ - { - "path": "src/common/convLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/common/depthwiseSeparableConv.ts", - "kind": "import-statement" - }, - { - "path": "src/common/disposeUnusedWeightTensors.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractFCParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractSeparableConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightEntryFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/getModelUris.ts", - "kind": "import-statement" - }, - { - "path": "src/common/types.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractorsFactory.ts": { - "bytes": 1587, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParams.ts": { - "bytes": 1030, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractorsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/common/loadConvParamsFactory.ts": { - "bytes": 466, - "imports": [] - }, - "src/faceFeatureExtractor/loadParamsFactory.ts": { - "bytes": 1547, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/common/loadConvParamsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParamsFromWeightMap.ts": { - "bytes": 838, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/loadParamsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/FaceFeatureExtractor.ts": { - "bytes": 1806, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/denseBlock.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParamsFromWeightMap.ts", - "kind": "import-statement" - } - ] - }, - "src/common/fullyConnectedLayer.ts": { - "bytes": 263, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/faceProcessor/extractParams.ts": { - "bytes": 759, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceProcessor/extractParamsFromWeightMap.ts": { - "bytes": 823, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceProcessor/util.ts": { - "bytes": 421, - "imports": [] - }, - "src/faceProcessor/FaceProcessor.ts": { - "bytes": 3034, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/fullyConnectedLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/util.ts", - "kind": "import-statement" - } - ] - }, - "src/faceExpressionNet/FaceExpressions.ts": { - "bytes": 869, - "imports": [] - }, - "src/faceExpressionNet/FaceExpressionNet.ts": { - "bytes": 1664, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/FaceFeatureExtractor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/FaceProcessor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/FaceExpressions.ts", - "kind": "import-statement" - } - ] - }, - "src/faceExpressionNet/index.ts": { - "bytes": 72, - "imports": [ - { - "path": "src/faceExpressionNet/FaceExpressionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/FaceExpressions.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceExpressions.ts": { - "bytes": 524, - "imports": [ - { - "path": "src/faceExpressionNet/FaceExpressions.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/drawFaceExpressions.ts": { - "bytes": 1612, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawTextField.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceLandmarks.ts": { - "bytes": 3592, - "imports": [ - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/DrawFaceLandmarks.ts": { - "bytes": 3528, - "imports": [ - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks68.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/drawContour.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/index.ts": { - "bytes": 201, - "imports": [ - { - "path": "src/draw/drawContour.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/drawDetections.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/drawFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawBox.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawTextField.ts", - "kind": "import-statement" - } - ] - }, - "package.json": { - "bytes": 2040, - "imports": [] - }, - "src/xception/extractParams.ts": { - "bytes": 3440, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/xception/extractParamsFromWeightMap.ts": { - "bytes": 3130, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/common/loadConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/xception/TinyXception.ts": { - "bytes": 3143, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/xception/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/xception/extractParamsFromWeightMap.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/extractParams.ts": { - "bytes": 778, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/extractParamsFromWeightMap.ts": { - "bytes": 891, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/types.ts": { - "bytes": 525, - "imports": [] - }, - "src/ageGenderNet/AgeGenderNet.ts": { - "bytes": 4269, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/fullyConnectedLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/util.ts", - "kind": "import-statement" - }, - { - "path": "src/xception/TinyXception.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/types.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/index.ts": { - "bytes": 57, - "imports": [ - { - "path": "src/ageGenderNet/AgeGenderNet.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/types.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/FaceLandmark68NetBase.ts": { - "bytes": 3717, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks68.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/FaceProcessor.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/FaceLandmark68Net.ts": { - "bytes": 622, - "imports": [ - { - "path": "src/faceFeatureExtractor/FaceFeatureExtractor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68NetBase.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts": { - "bytes": 802, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/loadParamsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParamsTiny.ts": { - "bytes": 960, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractorsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts": { - "bytes": 1816, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/denseBlock.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParamsTiny.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/FaceLandmark68TinyNet.ts": { - "bytes": 659, - "imports": [ - { - "path": "src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68NetBase.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/index.ts": { - "bytes": 194, - "imports": [ - { - "path": "src/faceLandmarkNet/FaceLandmark68Net.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68Net.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68TinyNet.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/scaleLayer.ts": { - "bytes": 229, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/convLayer.ts": { - "bytes": 850, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/scaleLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/extractParams.ts": { - "bytes": 4907, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/extractParamsFromWeightMap.ts": { - "bytes": 3098, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/residualLayer.ts": { - "bytes": 1342, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/convLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/FaceRecognitionNet.ts": { - "bytes": 2959, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/convLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/residualLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/index.ts": { - "bytes": 252, - "imports": [ - { - "path": "src/faceRecognitionNet/FaceRecognitionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/FaceRecognitionNet.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceDescriptor.ts": { - "bytes": 301, - "imports": [] - }, - "src/factories/WithAge.ts": { - "bytes": 334, - "imports": [] - }, - "src/factories/WithGender.ts": { - "bytes": 618, - "imports": [ - { - "path": "src/ageGenderNet/types.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/index.ts": { - "bytes": 208, - "imports": [ - { - "path": "src/factories/WithFaceDescriptor.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithAge.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithGender.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/extractParams.ts": { - "bytes": 8330, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/extractParamsFromWeightMap.ts": { - "bytes": 5775, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/pointwiseConvLayer.ts": { - "bytes": 391, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/mobileNetV1.ts": { - "bytes": 1811, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/pointwiseConvLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/nonMaxSuppression.ts": { - "bytes": 2170, - "imports": [] - }, - "src/ssdMobilenetv1/outputLayer.ts": { - "bytes": 2183, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/boxPredictionLayer.ts": { - "bytes": 598, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/predictionLayer.ts": { - "bytes": 2055, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/boxPredictionLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/pointwiseConvLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/SsdMobilenetv1Options.ts": { - "bytes": 881, - "imports": [] - }, - "src/ssdMobilenetv1/SsdMobilenetv1.ts": { - "bytes": 3652, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/mobileNetV1.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/nonMaxSuppression.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/outputLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/predictionLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/index.ts": { - "bytes": 471, - "imports": [ - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/const.ts": { - "bytes": 704, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/config.ts": { - "bytes": 1701, - "imports": [] - }, - "src/tinyYolov2/leaky.ts": { - "bytes": 238, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/convWithBatchNorm.ts": { - "bytes": 530, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/leaky.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/depthwiseSeparableConv.ts": { - "bytes": 500, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/leaky.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/extractParams.ts": { - "bytes": 3911, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractSeparableConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/extractParamsFromWeightMap.ts": { - "bytes": 3282, - "imports": [ - { - "path": "src/common/disposeUnusedWeightTensors.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractSeparableConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightEntryFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/TinyYolov2Options.ts": { - "bytes": 913, - "imports": [] - }, - "src/tinyYolov2/TinyYolov2Base.ts": { - "bytes": 9606, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/BoundingBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/ObjectDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/nonMaxSuppression.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/normalize.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/config.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/convWithBatchNorm.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/depthwiseSeparableConv.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/leaky.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Options.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/TinyYolov2.ts": { - "bytes": 1801, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/const.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Base.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/types.ts": { - "bytes": 952, - "imports": [] - }, - "src/tinyYolov2/index.ts": { - "bytes": 347, - "imports": [ - { - "path": "src/tinyYolov2/TinyYolov2.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Options.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/config.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/types.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/TinyFaceDetectorOptions.ts": { - "bytes": 272, - "imports": [ - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/ComposableTask.ts": { - "bytes": 322, - "imports": [] - }, - "src/globalApi/extractFacesAndComputeResults.ts": { - "bytes": 2037, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/const.ts": { - "bytes": 354, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/TinyFaceDetector.ts": { - "bytes": 1470, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Base.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/const.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/nets.ts": { - "bytes": 6336, - "imports": [ - { - "path": "src/ageGenderNet/AgeGenderNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/FaceExpressionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68Net.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68TinyNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/FaceRecognitionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetector.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/PredictFaceExpressionsTask.ts": { - "bytes": 3827, - "imports": [ - { - "path": "src/factories/WithFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/extractFacesAndComputeResults.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/PredictAgeAndGenderTask.ts": { - "bytes": 4008, - "imports": [ - { - "path": "src/factories/WithAge.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithGender.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/extractFacesAndComputeResults.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/ComputeFaceDescriptorsTasks.ts": { - "bytes": 3215, - "imports": [ - { - "path": "src/factories/WithFaceDescriptor.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/extractFacesAndComputeResults.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/DetectFaceLandmarksTasks.ts": { - "bytes": 4002, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/DetectFacesTasks.ts": { - "bytes": 4124, - "imports": [ - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetectorOptions.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFaceLandmarksTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/detectFaces.ts": { - "bytes": 624, - "imports": [ - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFacesTasks.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/allFaces.ts": { - "bytes": 1056, - "imports": [ - { - "path": "src/ssdMobilenetv1/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/detectFaces.ts", - "kind": "import-statement" - } - ] - }, - "src/euclideanDistance.ts": { - "bytes": 398, - "imports": [] - }, - "src/globalApi/FaceMatcher.ts": { - "bytes": 2992, - "imports": [ - { - "path": "src/classes/FaceMatch.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledFaceDescriptors.ts", - "kind": "import-statement" - }, - { - "path": "src/euclideanDistance.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/types.ts": { - "bytes": 556, - "imports": [] - }, - "src/globalApi/index.ts": { - "bytes": 300, - "imports": [ - { - "path": "src/globalApi/allFaces.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/detectFaces.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFacesTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFaceLandmarksTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/FaceMatcher.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/types.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/index.ts": { - "bytes": 285, - "imports": [ - { - "path": "src/tinyFaceDetector/TinyFaceDetector.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetector.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetectorOptions.ts", - "kind": "import-statement" - } - ] - }, - "src/resizeResults.ts": { - "bytes": 1519, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/index.ts": { - "bytes": 987, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/draw/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "package.json", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/index.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - }, - { - "path": "src/euclideanDistance.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/resizeResults.ts", - "kind": "import-statement" - } - ] - } - }, - "outputs": { - "dist/face-api.js.map": { - "imports": [], - "exports": [], - "inputs": {}, - "bytes": 1466673 - }, - "dist/face-api.js": { - "imports": [], - "exports": [], - "entryPoint": "src/index.ts", - "inputs": { - "src/env/isNodejs.ts": { - "bytesInOutput": 181 - }, - "src/index.ts": { - "bytesInOutput": 3011 - }, - "dist/tfjs.esm.js": { - "bytesInOutput": 1039248 - }, - "src/draw/index.ts": { - "bytesInOutput": 280 - }, - "src/draw/drawContour.ts": { - "bytesInOutput": 213 - }, - "src/utils/index.ts": { - "bytesInOutput": 997 - }, - "src/classes/Dimensions.ts": { - "bytesInOutput": 337 - }, - "src/classes/Point.ts": { - "bytesInOutput": 440 - }, - "src/classes/Box.ts": { - "bytesInOutput": 2661 - }, - "src/classes/BoundingBox.ts": { - "bytesInOutput": 93 - }, - "src/classes/index.ts": { - "bytesInOutput": 0 - }, - "src/classes/ObjectDetection.ts": { - "bytesInOutput": 627 - }, - "src/classes/FaceDetection.ts": { - "bytesInOutput": 155 - }, - "src/ops/iou.ts": { - "bytesInOutput": 215 - }, - "src/ops/index.ts": { - "bytesInOutput": 81 - }, - "src/ops/minBbox.ts": { - "bytesInOutput": 204 - }, - "src/ops/nonMaxSuppression.ts": { - "bytesInOutput": 282 - }, - "src/ops/normalize.ts": { - "bytesInOutput": 209 - }, - "src/ops/padToSquare.ts": { - "bytesInOutput": 295 - }, - "src/ops/shuffleArray.ts": { - "bytesInOutput": 132 - }, - "src/classes/Rect.ts": { - "bytesInOutput": 88 - }, - "src/classes/FaceLandmarks.ts": { - "bytesInOutput": 1408 - }, - "src/classes/FaceLandmarks5.ts": { - "bytesInOutput": 108 - }, - "src/classes/FaceLandmarks68.ts": { - "bytesInOutput": 465 - }, - "src/classes/FaceMatch.ts": { - "bytesInOutput": 201 - }, - "src/classes/LabeledBox.ts": { - "bytesInOutput": 252 - }, - "src/classes/LabeledFaceDescriptors.ts": { - "bytesInOutput": 595 - }, - "src/classes/PredictedBox.ts": { - "bytesInOutput": 385 - }, - "src/factories/WithFaceDetection.ts": { - "bytesInOutput": 95 - }, - "src/env/createBrowserEnv.ts": { - "bytesInOutput": 445 - }, - "src/env/createFileSystem.ts": { - "bytesInOutput": 247 - }, - "src/env/createNodejsEnv.ts": { - "bytesInOutput": 600 - }, - "src/env/isBrowser.ts": { - "bytesInOutput": 267 - }, - "src/env/index.ts": { - "bytesInOutput": 820 - }, - "src/dom/resolveInput.ts": { - "bytesInOutput": 85 - }, - "src/dom/getContext2dOrThrow.ts": { - "bytesInOutput": 314 - }, - "src/draw/DrawTextField.ts": { - "bytesInOutput": 1485 - }, - "src/draw/DrawBox.ts": { - "bytesInOutput": 583 - }, - "src/draw/drawDetections.ts": { - "bytesInOutput": 224 - }, - "src/dom/isMediaLoaded.ts": { - "bytesInOutput": 115 - }, - "src/dom/awaitMediaLoaded.ts": { - "bytesInOutput": 424 - }, - "src/dom/index.ts": { - "bytesInOutput": 0 - }, - "src/dom/bufferToImage.ts": { - "bytesInOutput": 387 - }, - "src/dom/getMediaDimensions.ts": { - "bytesInOutput": 184 - }, - "src/dom/createCanvas.ts": { - "bytesInOutput": 393 - }, - "src/dom/imageTensorToCanvas.ts": { - "bytesInOutput": 174 - }, - "src/dom/isMediaElement.ts": { - "bytesInOutput": 111 - }, - "src/dom/imageToSquare.ts": { - "bytesInOutput": 444 - }, - "src/dom/NetInput.ts": { - "bytesInOutput": 2173 - }, - "src/dom/toNetInput.ts": { - "bytesInOutput": 776 - }, - "src/dom/extractFaces.ts": { - "bytesInOutput": 490 - }, - "src/dom/extractFaceTensors.ts": { - "bytesInOutput": 418 - }, - "src/dom/fetchOrThrow.ts": { - "bytesInOutput": 177 - }, - "src/dom/fetchImage.ts": { - "bytesInOutput": 218 - }, - "src/dom/fetchJson.ts": { - "bytesInOutput": 48 - }, - "src/dom/fetchNetWeights.ts": { - "bytesInOutput": 79 - }, - "src/common/getModelUris.ts": { - "bytesInOutput": 473 - }, - "src/dom/loadWeightMap.ts": { - "bytesInOutput": 106 - }, - "src/dom/matchDimensions.ts": { - "bytesInOutput": 101 - }, - "src/NeuralNetwork.ts": { - "bytesInOutput": 2607 - }, - "src/common/depthwiseSeparableConv.ts": { - "bytesInOutput": 117 - }, - "src/faceFeatureExtractor/denseBlock.ts": { - "bytesInOutput": 468 - }, - "src/common/convLayer.ts": { - "bytesInOutput": 104 - }, - "src/common/index.ts": { - "bytesInOutput": 0 - }, - "src/common/disposeUnusedWeightTensors.ts": { - "bytesInOutput": 92 - }, - "src/common/extractConvParamsFactory.ts": { - "bytesInOutput": 163 - }, - "src/common/extractFCParamsFactory.ts": { - "bytesInOutput": 153 - }, - "src/common/types.ts": { - "bytesInOutput": 94 - }, - "src/common/extractSeparableConvParamsFactory.ts": { - "bytesInOutput": 355 - }, - "src/common/extractWeightEntryFactory.ts": { - "bytesInOutput": 189 - }, - "src/common/extractWeightsFactory.ts": { - "bytesInOutput": 147 - }, - "src/faceFeatureExtractor/extractorsFactory.ts": { - "bytesInOutput": 377 - }, - "src/faceFeatureExtractor/extractParams.ts": { - "bytesInOutput": 344 - }, - "src/common/loadConvParamsFactory.ts": { - "bytesInOutput": 97 - }, - "src/faceFeatureExtractor/loadParamsFactory.ts": { - "bytesInOutput": 389 - }, - "src/faceFeatureExtractor/extractParamsFromWeightMap.ts": { - "bytesInOutput": 186 - }, - "src/faceFeatureExtractor/FaceFeatureExtractor.ts": { - "bytesInOutput": 583 - }, - "src/common/fullyConnectedLayer.ts": { - "bytesInOutput": 57 - }, - "src/faceProcessor/extractParams.ts": { - "bytesInOutput": 215 - }, - "src/faceProcessor/extractParamsFromWeightMap.ts": { - "bytesInOutput": 179 - }, - "src/faceProcessor/util.ts": { - "bytesInOutput": 144 - }, - "src/faceProcessor/FaceProcessor.ts": { - "bytesInOutput": 1018 - }, - "src/faceExpressionNet/FaceExpressions.ts": { - "bytesInOutput": 369 - }, - "src/faceExpressionNet/FaceExpressionNet.ts": { - "bytesInOutput": 533 - }, - "src/faceExpressionNet/index.ts": { - "bytesInOutput": 0 - }, - "src/factories/WithFaceExpressions.ts": { - "bytesInOutput": 99 - }, - "src/draw/drawFaceExpressions.ts": { - "bytesInOutput": 422 - }, - "src/factories/WithFaceLandmarks.ts": { - "bytesInOutput": 835 - }, - "src/draw/DrawFaceLandmarks.ts": { - "bytesInOutput": 1228 - }, - "package.json": { - "bytesInOutput": 15 - }, - "src/xception/extractParams.ts": { - "bytesInOutput": 1237 - }, - "src/xception/extractParamsFromWeightMap.ts": { - "bytesInOutput": 1051 - }, - "src/xception/TinyXception.ts": { - "bytesInOutput": 1194 - }, - "src/ageGenderNet/extractParams.ts": { - "bytesInOutput": 259 - }, - "src/ageGenderNet/extractParamsFromWeightMap.ts": { - "bytesInOutput": 211 - }, - "src/ageGenderNet/types.ts": { - "bytesInOutput": 67 - }, - "src/ageGenderNet/AgeGenderNet.ts": { - "bytesInOutput": 1633 - }, - "src/ageGenderNet/index.ts": { - "bytesInOutput": 0 - }, - "src/faceLandmarkNet/FaceLandmark68NetBase.ts": { - "bytesInOutput": 1118 - }, - "src/faceLandmarkNet/FaceLandmark68Net.ts": { - "bytesInOutput": 167 - }, - "src/faceLandmarkNet/index.ts": { - "bytesInOutput": 26 - }, - "src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts": { - "bytesInOutput": 167 - }, - "src/faceFeatureExtractor/extractParamsTiny.ts": { - "bytesInOutput": 313 - }, - "src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts": { - "bytesInOutput": 581 - }, - "src/faceLandmarkNet/FaceLandmark68TinyNet.ts": { - "bytesInOutput": 176 - }, - "src/faceRecognitionNet/scaleLayer.ts": { - "bytesInOutput": 51 - }, - "src/faceRecognitionNet/convLayer.ts": { - "bytesInOutput": 246 - }, - "src/faceRecognitionNet/extractParams.ts": { - "bytesInOutput": 1725 - }, - "src/faceRecognitionNet/extractParamsFromWeightMap.ts": { - "bytesInOutput": 1117 - }, - "src/faceRecognitionNet/residualLayer.ts": { - "bytesInOutput": 397 - }, - "src/faceRecognitionNet/FaceRecognitionNet.ts": { - "bytesInOutput": 1106 - }, - "src/faceRecognitionNet/index.ts": { - "bytesInOutput": 57 - }, - "src/factories/WithFaceDescriptor.ts": { - "bytesInOutput": 48 - }, - "src/factories/index.ts": { - "bytesInOutput": 0 - }, - "src/factories/WithAge.ts": { - "bytesInOutput": 86 - }, - "src/factories/WithGender.ts": { - "bytesInOutput": 155 - }, - "src/ssdMobilenetv1/extractParams.ts": { - "bytesInOutput": 3495 - }, - "src/ssdMobilenetv1/extractParamsFromWeightMap.ts": { - "bytesInOutput": 2467 - }, - "src/ssdMobilenetv1/pointwiseConvLayer.ts": { - "bytesInOutput": 110 - }, - "src/ssdMobilenetv1/mobileNetV1.ts": { - "bytesInOutput": 659 - }, - "src/ssdMobilenetv1/nonMaxSuppression.ts": { - "bytesInOutput": 794 - }, - "src/ssdMobilenetv1/outputLayer.ts": { - "bytesInOutput": 670 - }, - "src/ssdMobilenetv1/boxPredictionLayer.ts": { - "bytesInOutput": 185 - }, - "src/ssdMobilenetv1/predictionLayer.ts": { - "bytesInOutput": 695 - }, - "src/ssdMobilenetv1/SsdMobilenetv1Options.ts": { - "bytesInOutput": 519 - }, - "src/ssdMobilenetv1/SsdMobilenetv1.ts": { - "bytesInOutput": 1176 - }, - "src/ssdMobilenetv1/index.ts": { - "bytesInOutput": 111 - }, - "src/tinyYolov2/const.ts": { - "bytesInOutput": 358 - }, - "src/tinyYolov2/config.ts": { - "bytesInOutput": 1012 - }, - "src/tinyYolov2/leaky.ts": { - "bytesInOutput": 89 - }, - "src/tinyYolov2/convWithBatchNorm.ts": { - "bytesInOutput": 177 - }, - "src/tinyYolov2/depthwiseSeparableConv.ts": { - "bytesInOutput": 158 - }, - "src/tinyYolov2/extractParams.ts": { - "bytesInOutput": 1237 - }, - "src/tinyYolov2/extractParamsFromWeightMap.ts": { - "bytesInOutput": 976 - }, - "src/tinyYolov2/TinyYolov2Options.ts": { - "bytesInOutput": 556 - }, - "src/tinyYolov2/TinyYolov2Base.ts": { - "bytesInOutput": 3499 - }, - "src/tinyYolov2/TinyYolov2.ts": { - "bytesInOutput": 546 - }, - "src/tinyYolov2/index.ts": { - "bytesInOutput": 65 - }, - "src/tinyFaceDetector/TinyFaceDetectorOptions.ts": { - "bytesInOutput": 97 - }, - "src/globalApi/ComposableTask.ts": { - "bytesInOutput": 127 - }, - "src/globalApi/extractFacesAndComputeResults.ts": { - "bytesInOutput": 272 - }, - "src/tinyFaceDetector/const.ts": { - "bytesInOutput": 173 - }, - "src/tinyFaceDetector/TinyFaceDetector.ts": { - "bytesInOutput": 496 - }, - "src/globalApi/nets.ts": { - "bytesInOutput": 861 - }, - "src/globalApi/PredictFaceExpressionsTask.ts": { - "bytesInOutput": 854 - }, - "src/globalApi/PredictAgeAndGenderTask.ts": { - "bytesInOutput": 959 - }, - "src/globalApi/ComputeFaceDescriptorsTasks.ts": { - "bytesInOutput": 754 - }, - "src/globalApi/DetectFaceLandmarksTasks.ts": { - "bytesInOutput": 1093 - }, - "src/globalApi/DetectFacesTasks.ts": { - "bytesInOutput": 1340 - }, - "src/globalApi/detectFaces.ts": { - "bytesInOutput": 86 - }, - "src/globalApi/allFaces.ts": { - "bytesInOutput": 210 - }, - "src/globalApi/index.ts": { - "bytesInOutput": 0 - }, - "src/euclideanDistance.ts": { - "bytesInOutput": 205 - }, - "src/globalApi/FaceMatcher.ts": { - "bytesInOutput": 1333 - }, - "src/tinyFaceDetector/index.ts": { - "bytesInOutput": 57 - }, - "src/resizeResults.ts": { - "bytesInOutput": 446 - } - }, - "bytes": 1127366 - } - } -} diff --git a/dist/face-api.node-cpu.js b/dist/face-api.node-cpu.js index efbb849..ed98b04 100644 --- a/dist/face-api.node-cpu.js +++ b/dist/face-api.node-cpu.js @@ -5,5 +5,5 @@ author: ' */ -var fn=Object.create,Ye=Object.defineProperty,hn=Object.getPrototypeOf,xn=Object.prototype.hasOwnProperty,bn=Object.getOwnPropertyNames,gn=Object.getOwnPropertyDescriptor;var Er=o=>Ye(o,"__esModule",{value:!0});var xo=(o,t)=>()=>(t||(t={exports:{}},o(t.exports,t)),t.exports),Ge=(o,t)=>{for(var e in t)Ye(o,e,{get:t[e],enumerable:!0})},vn=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of bn(t))!xn.call(o,r)&&r!=="default"&&Ye(o,r,{get:()=>t[r],enumerable:!(e=gn(t,r))||e.enumerable});return o},b=o=>vn(Er(Ye(o!=null?fn(hn(o)):{},"default",o&&o.__esModule&&"default"in o?{get:()=>o.default,enumerable:!0}:{value:o,enumerable:!0})),o);var g=xo(Mr=>{var yn=Object.create,Cr=Object.defineProperty,Fn=Object.getPrototypeOf,Tn=Object.prototype.hasOwnProperty,Pn=Object.getOwnPropertyNames,_n=Object.getOwnPropertyDescriptor,bo=o=>Cr(o,"__esModule",{value:!0}),go=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Pn(t))!Tn.call(o,r)&&r!=="default"&&Cr(o,r,{get:()=>t[r],enumerable:!(e=_n(t,r))||e.enumerable});return o},wn=o=>go(bo(Cr(o!=null?yn(Fn(o)):{},"default",o&&o.__esModule&&"default"in o?{get:()=>o.default,enumerable:!0}:{value:o,enumerable:!0})),o);bo(Mr);go(Mr,wn(require("@tensorflow/tfjs")))});var Po=xo((Ln,To)=>{Er(Ln);Ge(Ln,{isNodejs:()=>kn});function kn(){return typeof global=="object"&&!0&&typeof To!="undefined"&&typeof process!="undefined"&&!!process.version}});Er(exports);Ge(exports,{AgeGenderNet:()=>pr,BoundingBox:()=>re,Box:()=>D,ComposableTask:()=>tt,ComputeAllFaceDescriptorsTask:()=>At,ComputeFaceDescriptorsTaskBase:()=>vr,ComputeSingleFaceDescriptorTask:()=>Wt,DetectAllFaceLandmarksTask:()=>Fr,DetectAllFacesTask:()=>He,DetectFaceLandmarksTaskBase:()=>yr,DetectFacesTaskBase:()=>Pr,DetectSingleFaceLandmarksTask:()=>Tr,DetectSingleFaceTask:()=>_r,Dimensions:()=>A,FACE_EXPRESSION_LABELS:()=>Zr,FaceDetection:()=>M,FaceDetectionNet:()=>qo,FaceExpressionNet:()=>cr,FaceExpressions:()=>It,FaceLandmark68Net:()=>fe,FaceLandmark68TinyNet:()=>dr,FaceLandmarkNet:()=>Ro,FaceLandmarks:()=>V,FaceLandmarks5:()=>yo,FaceLandmarks68:()=>ne,FaceMatch:()=>Ee,FaceMatcher:()=>Dr,FaceRecognitionNet:()=>xe,Gender:()=>vt,LabeledBox:()=>Me,LabeledFaceDescriptors:()=>xt,NetInput:()=>bt,NeuralNetwork:()=>S,ObjectDetection:()=>Dt,Point:()=>x,PredictedBox:()=>Fo,Rect:()=>oe,SsdMobilenetv1:()=>Xt,SsdMobilenetv1Options:()=>Z,TinyFaceDetector:()=>Fe,TinyFaceDetectorOptions:()=>gr,TinyYolov2:()=>ve,TinyYolov2Options:()=>lt,allFaces:()=>Ea,allFacesSsdMobilenetv1:()=>un,allFacesTinyYolov2:()=>Da,awaitMediaLoaded:()=>zr,bufferToImage:()=>Vr,computeFaceDescriptor:()=>ua,createCanvas:()=>Yt,createCanvasFromMedia:()=>Ie,createFaceDetectionNet:()=>aa,createFaceRecognitionNet:()=>Xn,createSsdMobilenetv1:()=>Jo,createTinyFaceDetector:()=>Ma,createTinyYolov2:()=>ca,detectAllFaces:()=>wr,detectFaceLandmarks:()=>pn,detectFaceLandmarksTiny:()=>da,detectLandmarks:()=>_a,detectSingleFace:()=>wa,draw:()=>eo,env:()=>w,euclideanDistance:()=>fo,extendWithAge:()=>hr,extendWithFaceDescriptor:()=>fr,extendWithFaceDetection:()=>$t,extendWithFaceExpressions:()=>mr,extendWithFaceLandmarks:()=>le,extendWithGender:()=>xr,extractFaceTensors:()=>se,extractFaces:()=>ae,fetchImage:()=>Bn,fetchJson:()=>Jr,fetchNetWeights:()=>Rn,fetchOrThrow:()=>Gt,getContext2dOrThrow:()=>O,getMediaDimensions:()=>Ht,imageTensorToCanvas:()=>Ur,imageToSquare:()=>Xr,inverseSigmoid:()=>Mn,iou:()=>Sr,isMediaElement:()=>qe,isMediaLoaded:()=>Ne,isWithAge:()=>Jn,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>Kr,isWithFaceLandmarks:()=>Vt,isWithGender:()=>qn,loadAgeGenderModel:()=>Fa,loadFaceDetectionModel:()=>Ta,loadFaceExpressionModel:()=>ya,loadFaceLandmarkModel:()=>ba,loadFaceLandmarkTinyModel:()=>ga,loadFaceRecognitionModel:()=>va,loadSsdMobilenetv1Model:()=>dn,loadTinyFaceDetectorModel:()=>ha,loadTinyYolov2Model:()=>xa,loadWeightMap:()=>qr,locateFaces:()=>Pa,matchDimensions:()=>On,minBbox:()=>Ar,nets:()=>P,nonMaxSuppression:()=>Wr,normalize:()=>ot,padToSquare:()=>Br,predictAgeAndGender:()=>fa,recognizeFaceExpressions:()=>la,resizeResults:()=>ln,resolveInput:()=>jt,shuffleArray:()=>En,sigmoid:()=>De,ssdMobilenetv1:()=>mn,tf:()=>Ca,tinyFaceDetector:()=>ma,tinyYolov2:()=>pa,toNetInput:()=>E,utils:()=>Nr,validateConfig:()=>io,version:()=>La});var Ca=b(g());var eo={};Ge(eo,{AnchorPosition:()=>dt,DrawBox:()=>Xe,DrawBoxOptions:()=>Gr,DrawFaceLandmarks:()=>to,DrawFaceLandmarksOptions:()=>Qr,DrawTextField:()=>Mt,DrawTextFieldOptions:()=>Ce,drawContour:()=>ft,drawDetections:()=>Wn,drawFaceExpressions:()=>$n,drawFaceLandmarks:()=>Hn});function ft(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},a)=>{let s=t[a];o.moveTo(s.x,s.y),o.lineTo(r,n)}),e){let r=t[t.length-1],n=t[0];if(!r||!n)return;o.moveTo(r.x,r.y),o.lineTo(n.x,n.y)}o.stroke()}var Nr={};Ge(Nr,{computeReshapedDimensions:()=>kr,getCenterPoint:()=>Ot,isDimensions:()=>Ve,isEven:()=>ze,isFloat:()=>Lr,isTensor:()=>Bt,isTensor1D:()=>Dn,isTensor2D:()=>Ir,isTensor3D:()=>ht,isTensor4D:()=>z,isValidNumber:()=>rt,isValidProbablitiy:()=>ee,range:()=>ct,round:()=>Rt});var vo=b(g());var A=class{constructor(t,e){if(!rt(t)||!rt(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new A(1/this.width,1/this.height)}};function Bt(o,t){return o instanceof vo.Tensor&&o.shape.length===t}function Dn(o){return Bt(o,1)}function Ir(o){return Bt(o,2)}function ht(o){return Bt(o,3)}function z(o){return Bt(o,4)}function Lr(o){return o%1!=0}function ze(o){return o%2==0}function Rt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function Ve(o){return o&&o.width&&o.height}function kr({width:o,height:t},e){let r=e/Math.max(t,o);return new A(Math.round(o*r),Math.round(t*r))}function Ot(o){return o.reduce((t,e)=>t.add(e),new x(0,0)).div(new x(o.length,o.length))}function ct(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function rt(o){return!!o&&o!==Infinity&&o!==-Infinity&&!Number.isNaN(o)||o===0}function ee(o){return rt(o)&&o>=0&&o<=1}var x=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new x(this.x+t.x,this.y+t.y)}sub(t){return new x(this.x-t.x,this.y-t.y)}mul(t){return new x(this.x*t.x,this.y*t.y)}div(t){return new x(this.x/t.x,this.y/t.y)}abs(){return new x(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new x(Math.floor(this.x),Math.floor(this.y))}};var D=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(rt)}static assertIsValidBox(t,e,r=!1){if(!D.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},n=[r.left,r.top,r.right,r.bottom].every(rt),a=[r.x,r.y,r.width,r.height].every(rt);if(!a&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,i,c,m]=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];D.assertIsValidBox({x:s,y:i,width:c,height:m},"Box.constructor",e),this._x=s,this._y=i,this._width=c,this._height=m}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new x(this.left,this.top)}get topRight(){return new x(this.right,this.top)}get bottomLeft(){return new x(this.left,this.bottom)}get bottomRight(){return new x(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.round(a));return new D({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.floor(a));return new D({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,a=Math.abs(r-n);return re&&(i=-d+e+r,d=e),u>t&&(c=-u+t+n,u=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:s,edy:c,dx:a,edx:i,y:p,ey:u,x:m,ex:d,w:r,h:n}}calibrate(t){return new D({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var re=class extends D{constructor(t,e,r,n,a=!1){super({left:t,top:e,right:r,bottom:n},a)}};var Dt=class{constructor(t,e,r,n,a){this._imageDims=new A(a.width,a.height),this._score=t,this._classScore=e,this._className=r,this._box=new D(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new D(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new Dt(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class extends Dt{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:a}=super.forSize(t,e);return new M(r,n,a)}};function Sr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),n=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),a=r*n;return e?a/(o.area+t.area-a):a/Math.min(o.area,t.area)}function Ar(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:s,boxIndex:i})).sort((s,i)=>s.score-i.score).map(s=>s.boxIndex),a=[];for(;n.length>0;){let s=n.pop();a.push(s);let i=n,c=[];for(let m=0;mc[p]<=e)}return a}var mt=b(g());function ot(o,t){return mt.tidy(()=>{let[e,r,n]=t,a=mt.fill([...o.shape.slice(0,3),1],e,"float32"),s=mt.fill([...o.shape.slice(0,3),1],r,"float32"),i=mt.fill([...o.shape.slice(0,3),1],n,"float32"),c=mt.concat([a,s,i],3);return mt.sub(o,c)})}var Et=b(g());function Br(o,t=!1){return Et.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),a=Math.round(n*(t?.5:1)),s=e>r?2:1,i=u=>{let l=o.shape.slice();return l[s]=u,Et.fill(l,0,"float32")},c=i(a),m=n-c.shape[s],d=[t&&m?i(m):null,o,c].filter(u=>!!u).map(u=>Et.cast(u,"float32"));return Et.concat(d,s)})}function En(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function De(o){return 1/(1+Math.exp(-o))}function Mn(o){return Math.log(o/(1-o))}var oe=class extends D{constructor(t,e,r,n,a=!1){super({x:t,y:e,width:r,height:n},a)}};var Cn=.5,Nn=.43,In=.45,V=class{constructor(t,e,r=new x(0,0)){let{width:n,height:a}=e;this._imgDims=new A(n,a),this._shift=r,this._positions=t.map(s=>s.mul(new x(n,a)).add(r))}get shift(){return new x(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new x(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new x(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let a=t instanceof M?t.box.floor():new D(t);return this.shiftBy(a.x,a.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:n}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(n)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,n]=t,a=d=>n.sub(d).magnitude(),s=(a(e)+a(r))/2,i=Math.floor(s/In),c=Ot(t),m=Math.floor(Math.max(0,c.x-Cn*i)),p=Math.floor(Math.max(0,c.y-Nn*i));return new oe(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Ar(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var yo=class extends V{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],Ot([t[3],t[4]])]}};var ne=class extends V{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(Ot)}};var Ee=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Rt(this.distance)})`:""}`}};var Me=class extends D{static assertIsValidLabeledBox(t,e){if(D.assertIsValidBox(t,e),!rt(t.label))throw new Error(`${e} - expected property label (${t.label}) to be a number`)}constructor(t,e){super(t);this._label=e}get label(){return this._label}};var xt=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new xt(t.label,e)}};var Fo=class extends Me{static assertIsValidPredictedBox(t,e){if(Me.assertIsValidLabeledBox(t,e),!ee(t.score)||!ee(t.classScore))throw new Error(`${e} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,e,r,n){super(t,e);this._score=r,this._classScore=n}get score(){return this._score}get classScore(){return this._classScore}};function pt(o){return o.detection instanceof M}function $t(o,t){return{...o,...{detection:t}}}function Rr(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Ue(o){let t="";if(!o)try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,a)=>{o.readFile(r,(s,i)=>s?a(s):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Or(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},n=global.fetch,a=Ue();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:e,createImageElement:r,fetch:n,...a}}function $r(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var jr=b(Po()),k;function Sn(){if(!k)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return k}function Hr(o){k=o}function Yr(){return $r()?Hr(Rr()):(0,jr.isNodejs)()?Hr(Or()):null}function An(o){if(k||Yr(),!k)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=k.Canvas,Image:e=k.Image}=o;k.Canvas=t,k.Image=e,k.createCanvasElement=o.createCanvasElement||(()=>new t),k.createImageElement=o.createImageElement||(()=>new e),k.ImageData=o.ImageData||k.ImageData,k.Video=o.Video||k.Video,k.fetch=o.fetch||k.fetch,k.readFile=o.readFile||k.readFile}var w={getEnv:Sn,setEnv:Hr,initialize:Yr,createBrowserEnv:Rr,createFileSystem:Ue,createNodejsEnv:Or,monkeyPatch:An,isBrowser:$r,isNodejs:jr.isNodejs};Yr();function jt(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function O(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=jt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d");if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var dt;(function(o){o.TOP_LEFT="TOP_LEFT",o.TOP_RIGHT="TOP_RIGHT",o.BOTTOM_LEFT="BOTTOM_LEFT",o.BOTTOM_RIGHT="BOTTOM_RIGHT"})(dt||(dt={}));var Ce=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:a,fontStyle:s,padding:i}=t;this.anchorPosition=e||dt.TOP_LEFT,this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=a||14,this.fontStyle=s||"Georgia",this.padding=i||4}},Mt=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof Mt?t.text:t,this.anchor=e,this.options=new Ce(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let v=c+d.x,_=c+d.y+(l+1)*s;r.fillText(u,v,_)})}};var Gr=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:a}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let s={anchorPosition:dt.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Ce({...s,...a})}},Xe=class{constructor(t,e={}){this.box=new D(t),this.options=new Gr(e)}draw(t){let e=O(t),{boxColor:r,lineWidth:n}=this.options,{x:a,y:s,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(a,s,i,c);let{label:m}=this.options;m&&new Mt([m],{x:a-n/2,y:s},this.options.drawLabelOptions).draw(t)}};function Wn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,a=r instanceof M?r.box:pt(r)?r.detection.box:new D(r),s=n?`${Rt(n)}`:void 0;new Xe(a,{label:s}).draw(o)})}var ue=b(g());function Ne(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function zr(o){return new Promise((t,e)=>{if(o instanceof w.getEnv().Canvas||Ne(o))return t(null);function r(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),e(a))}function n(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),t(a))}o.addEventListener("load",n),o.addEventListener("error",r)})}function Vr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let n=w.getEnv().createImageElement();n.onload=()=>t(n),n.onerror=e,n.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Ht(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new A(o.naturalWidth,o.naturalHeight):o instanceof e?new A(o.videoWidth,o.videoHeight):new A(o.width,o.height)}function Yt({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function Ie(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ne(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Ht(o),a=Yt({width:r,height:n});return o instanceof e?O(a).putImageData(o,0,0):O(a).drawImage(o,0,0,r,n),a}var Je=b(g());async function Ur(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,a]=o.shape.slice(z(o)?1:0),s=Je.tidy(()=>o.as3D(r,n,a).toInt());return await Je.browser.toPixels(s,e),s.dispose(),e}function qe(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var J=b(g());function Xr(o,t,e=!1){let{Image:r,Canvas:n}=w.getEnv();if(!(o instanceof r||o instanceof n))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Yt({width:1,height:1});let a=Ht(o),s=t/Math.max(a.height,a.width),i=s*a.width,c=s*a.height,m=Yt({width:t,height:t}),p=o instanceof n?o:Ie(o),d=Math.abs(i-c)/2,u=e&&i0&&p.height>0&&O(m).drawImage(p,u,l,i,c),m}var bt=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=e,this._batchSize=t.length,t.forEach((r,n)=>{if(ht(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(z(r)){let s=r.shape[0];if(s!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${s} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let a=r instanceof w.getEnv().Canvas?r:Ie(r);this._canvases[n]=a,this._inputDimensions[n]=[a.height,a.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return ct(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return kr({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,J.tidy(()=>{let r=ct(this.batchSize,0,1).map(a=>{let s=this.getInput(a);if(s instanceof J.Tensor){let i=z(s)?s:s.expandDims();return i=Br(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=J.image.resizeBilinear(i,[t,t])),i.as3D(t,t,3)}if(s instanceof w.getEnv().Canvas)return J.browser.fromPixels(Xr(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${a}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return J.stack(r.map(a=>J.cast(a,"float32"))).as4D(this.batchSize,t,t,3)})}};async function E(o){if(o instanceof bt)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=n=>Array.isArray(o)?` at input index ${n}:`:"",r=t.map(jt);return r.forEach((n,a)=>{if(!qe(n)&&!ht(n)&&!z(n))throw typeof t[a]=="string"?new Error(`toNetInput -${e(a)} string passed, but could not resolve HTMLElement for element id ${t[a]}`):new Error(`toNetInput -${e(a)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(z(n)){let s=n.shape[0];if(s!==1)throw new Error(`toNetInput -${e(a)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>qe(n)&&zr(n))),new bt(r,Array.isArray(o))}async function ae(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let s=await E(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=s.getInput(0);r=i instanceof e?i:await Ur(i)}let n=O(r);return t.map(s=>s instanceof M?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:i,width:c,height:m})=>{let p=Yt({width:c,height:m});return c>0&&m>0&&O(p).putImageData(n.getImageData(s,i,c,m),0,0),p})}var Ze=b(g());async function se(o,t){if(!ht(o)&&!z(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(z(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return Ze.tidy(()=>{let[e,r,n]=o.shape.slice(z(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).map(({x:i,y:c,width:m,height:p})=>Ze.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function Gt(o,t){let{fetch:e}=w.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Bn(o){let t=await Gt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return Vr(e)}async function Jr(o){return(await Gt(o)).json()}async function Rn(o){return new Float32Array(await(await Gt(o)).arrayBuffer())}var _o=b(g());function Ke(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let n=o.split("/").filter(i=>i),a=o.endsWith(".json")?n[n.length-1]:e,s=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${a}`:`${s}/${a}`}}async function qr(o,t){let{manifestUri:e,modelBaseUri:r}=Ke(o,t),n=await Jr(e);return _o.io.loadWeights(n,r)}function On(o,t,e=!1){let{width:r,height:n}=e?Ht(t):t;return o.width=r,o.height=n,{width:r,height:n}}var Nt=b(g());var gt=b(g());var S=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:n}=this.traversePropertyPath(t);r[n].dispose(),r[n]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof gt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof gt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=gt.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await qr(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=w.getEnv(),{manifestUri:r,modelBaseUri:n}=Ke(t,this.getDefaultModelName()),a=m=>Promise.all(m.map(p=>e(p).then(d=>d.buffer))),s=gt.io.weightsLoaderFactory(a),i=JSON.parse((await e(r)).toString()),c=await s(i,n);this.loadFromWeightMap(c)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((a,s)=>{if(!a.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:a.nextObj,objProp:s,nextObj:a.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof gt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var C=b(g());var ie=b(g());function $(o,t,e){return ie.tidy(()=>{let r=ie.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=ie.add(r,t.bias),r})}function Qe(o,t,e=!1){return C.tidy(()=>{let r=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):$(o,t.conv0,[2,2])),n=$(r,t.conv1,[1,1]),a=C.relu(C.add(r,n)),s=$(a,t.conv2,[1,1]);return C.relu(C.add(r,C.add(n,s)))})}function Le(o,t,e=!1,r=!0){return C.tidy(()=>{let n=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):$(o,t.conv0,r?[2,2]:[1,1])),a=$(n,t.conv1,[1,1]),s=C.relu(C.add(n,a)),i=$(s,t.conv2,[1,1]),c=C.relu(C.add(n,C.add(a,i))),m=$(c,t.conv3,[1,1]);return C.relu(C.add(n,C.add(a,C.add(i,m))))})}var Ct=b(g());function zt(o,t,e="same",r=!1){return Ct.tidy(()=>{let n=Ct.add(Ct.conv2d(o,t.filters,[1,1],e),t.bias);return r?Ct.relu(n):n})}function W(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var tr=b(g());function ce(o,t){return(e,r,n,a)=>{let s=tr.tensor4d(o(e*r*n*n),[n,n,e,r]),i=tr.tensor1d(o(r));return t.push({paramPath:`${a}/filters`},{paramPath:`${a}/bias`}),{filters:s,bias:i}}}var er=b(g());function rr(o,t){return(e,r,n)=>{let a=er.tensor2d(o(e*r),[e,r]),s=er.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:a,bias:s}}}var ke=b(g());var or=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function me(o,t){return(e,r,n)=>{let a=ke.tensor4d(o(3*3*e),[3,3,e,1]),s=ke.tensor4d(o(e*r),[1,1,e,r]),i=ke.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new or(a,s,i)}}function pe(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new or(e,r,n)}}function j(o,t){return(e,r,n)=>{let a=o[e];if(!Bt(a,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${a}`);return t.push({originalPath:e,paramPath:n||e}),a}}function B(o){let t=o;function e(n){let a=t.slice(0,n);return t=t.slice(n),a}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function nr(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c,m=!1){let p=m?e(s,i,3,`${c}/conv0`):r(s,i,`${c}/conv0`),d=r(i,i,`${c}/conv1`),u=r(i,i,`${c}/conv2`);return{conv0:p,conv1:d,conv2:u}}function a(s,i,c,m=!1){let{conv0:p,conv1:d,conv2:u}=n(s,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:d,conv2:u,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:a}}function wo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock4Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2"),c=n(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i,dense3:c}}}function ar(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function sr(o,t){let e=j(o,t),r=ar(e),n=pe(e);function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:d}}function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`),u=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:d,conv3:u}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Do(o){let t=[],{extractDenseBlock4Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return W(o,t),{params:r,paramMappings:t}}var Se=class extends S{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return Nt.tidy(()=>{let r=Nt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(Nt.scalar(255)),s=Le(a,e.dense0,!0);return s=Le(s,e.dense1),s=Le(s,e.dense2),s=Le(s,e.dense3),s=Nt.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Do(t)}extractParams(t){return wo(t)}};var Co=b(g());var de=b(g());function Ae(o,t){return de.tidy(()=>de.add(de.matMul(o,t.weights),t.bias))}function Eo(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:a}=B(o),i=rr(n,r)(t,e,"fc");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:r,params:{fc:i}}}function Mo(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:r("fc")};return W(o,t),{params:n,paramMappings:t}}function ir(o){let t={},e={};return Object.keys(o).forEach(r=>{let n=r.startsWith("fc")?e:t;n[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var We=class extends S{constructor(t,e){super(t);this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return Co.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t;return Ae(r.as2D(r.shape[0],-1),e.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return Eo(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Mo(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),n=r*e+r,a=t.slice(0,t.length-n),s=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(s)}};var Zr=["neutral","happy","sad","angry","fearful","disgusted","surprised"],It=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);Zr.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return Zr.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var cr=class extends We{constructor(t=new Se){super("FaceExpressionNet",t)}forwardInput(t){return ue.tidy(()=>ue.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await E(t))}async predictExpressions(t){let e=await E(t),r=await this.forwardInput(e),n=await Promise.all(ue.unstack(r).map(async s=>{let i=await s.data();return s.dispose(),i}));r.dispose();let a=n.map(s=>new It(s));return e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Kr(o){return o.expressions instanceof It}function mr(o,t){return{...o,...{expressions:t}}}function $n(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(a=>{let s=a instanceof It?a:Kr(a)?a.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=s.asSortedArray().filter(d=>d.probability>e),m=pt(a)?a.detection.box.bottomLeft:r||new x(0,0);new Mt(c.map(d=>`${d.expression} (${Rt(d.probability)})`),m).draw(o)})}function Vt(o){return pt(o)&&o.landmarks instanceof V&&o.unshiftedLandmarks instanceof V&&o.alignedRect instanceof M}function jn(o){let t=(i,c,m,p)=>Math.atan2(p-c,m-i)%Math.PI,e=i=>i*180/Math.PI,r={roll:void 0,pitch:void 0,yaw:void 0};if(!o||!o._positions||o._positions.length!==68)return r;let n=o._positions;r.roll=-t(n[36]._x,n[36]._y,n[45]._x,n[45]._y),r.pitch=t(0,Math.abs(n[0]._x-n[30]._x)/n[30]._x,Math.PI,Math.abs(n[16]._x-n[30]._x)/n[30]._x);let a=n.reduce((i,c)=>ii>c._y?i:c._y,-Infinity);return r.yaw=Math.PI*(o._imgDims._height/(s-a)/1.4-1),r}function le(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:a}=o.detection,s=new M(o.detection.score,n.rescale(a.reverse()),a),i=jn(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s,angle:i}}}var Qr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:a,pointSize:s,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=s||2,this.lineColor=a||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},to=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new Qr(e)}draw(t){let e=O(t),{drawLines:r,drawPoints:n,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof ne&&(e.strokeStyle=s,e.lineWidth=a,ft(e,this.faceLandmarks.getJawOutline()),ft(e,this.faceLandmarks.getLeftEyeBrow()),ft(e,this.faceLandmarks.getRightEyeBrow()),ft(e,this.faceLandmarks.getNose()),ft(e,this.faceLandmarks.getLeftEye(),!0),ft(e,this.faceLandmarks.getRightEye(),!0),ft(e,this.faceLandmarks.getMouth(),!0)),n){e.strokeStyle=c,e.fillStyle=c;let m=p=>{e.beginPath(),e.arc(p.x,p.y,i,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(m)}}};function Hn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof V?r:Vt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new to(n).draw(o)})}var No="1.0.1";var ut=b(g());var I=b(g());function Yn(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c){let m=r(s,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),d=e(s,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:d}}function a(s,i){let c=r(s,s,`${i}/separable_conv0`),m=r(s,s,`${i}/separable_conv1`),p=r(s,s,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:a}}function Io(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=B(o),{extractConvParams:a,extractSeparableConvParams:s,extractReductionBlockParams:i,extractMainBlockParams:c}=Yn(r,e),m=a(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),d=i(64,128,"entry_flow/reduction_block_1"),u={conv_in:m,reduction_block_0:p,reduction_block_1:d},l={};ct(t,0,1).forEach(y=>{l[`main_block_${y}`]=c(128,`middle_flow/main_block_${y}`)});let v=i(128,256,"exit_flow/reduction_block"),_=s(256,512,"exit_flow/separable_conv"),h={reduction_block:v,separable_conv:_};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:u,middle_flow:l,exit_flow:h}}}function Gn(o,t){let e=j(o,t),r=ar(e),n=pe(e);function a(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=r(`${i}/expansion_conv`);return{separable_conv0:c,separable_conv1:m,expansion_conv:p}}function s(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=n(`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}}function Lo(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}=Gn(o,e),i=r("entry_flow/conv_in"),c=a("entry_flow/reduction_block_0"),m=a("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},d={};ct(t,0,1).forEach(_=>{d[`main_block_${_}`]=s(`middle_flow/main_block_${_}`)});let u=a("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),v={reduction_block:u,separable_conv:l};return W(o,e),{params:{entry_flow:p,middle_flow:d,exit_flow:v},paramMappings:e}}function ko(o,t,e){return I.add(I.conv2d(o,t.filters,e,"same"),t.bias)}function ro(o,t,e=!0){let r=e?I.relu(o):o;return r=$(r,t.separable_conv0,[1,1]),r=$(I.relu(r),t.separable_conv1,[1,1]),r=I.maxPool(r,[3,3],[2,2],"same"),r=I.add(r,ko(o,t.expansion_conv,[2,2])),r}function zn(o,t){let e=$(I.relu(o),t.separable_conv0,[1,1]);return e=$(I.relu(e),t.separable_conv1,[1,1]),e=$(I.relu(e),t.separable_conv2,[1,1]),e=I.add(e,o),e}var oo=class extends S{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyXception - load model before inference");return I.tidy(()=>{let r=I.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(I.scalar(256)),s=I.relu(ko(a,e.entry_flow.conv_in,[2,2]));return s=ro(s,e.entry_flow.reduction_block_0,!1),s=ro(s,e.entry_flow.reduction_block_1),ct(this._numMainBlocks,0,1).forEach(i=>{s=zn(s,e.middle_flow[`main_block_${i}`])}),s=ro(s,e.exit_flow.reduction_block),s=I.relu($(s,e.exit_flow.separable_conv,[1,1])),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return Lo(t,this._numMainBlocks)}extractParams(t){return Io(t,this._numMainBlocks)}};function So(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),n=rr(e,t),a=n(512,1,"fc/age"),s=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:a,gender:s}}}}function Ao(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return W(o,t),{params:n,paramMappings:t}}var vt;(function(o){o.FEMALE="female",o.MALE="male"})(vt||(vt={}));var pr=class extends S{constructor(t=new oo(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return ut.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t,n=ut.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),a=Ae(n,e.fc.age).as1D(),s=Ae(n,e.fc.gender);return{age:a,gender:s}})}forwardInput(t){return ut.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:ut.softmax(r)}})}async forward(t){return this.forwardInput(await E(t))}async predictAgeAndGender(t){let e=await E(t),r=await this.forwardInput(e),n=ut.unstack(r.age),a=ut.unstack(r.gender),s=n.map((c,m)=>({ageTensor:c,genderTensor:a[m]})),i=await Promise.all(s.map(async({ageTensor:c,genderTensor:m})=>{let p=(await c.data())[0],d=(await m.data())[0],u=d>.5,l=u?vt.MALE:vt.FEMALE,v=u?d:1-d;return c.dispose(),m.dispose(),{age:p,gender:l,genderProbability:v}}));return r.age.dispose(),r.gender.dispose(),e.isBatchInput?i:i[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return So(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Ao(r)}extractParams(t){let e=512*1+1+(512*2+2),r=t.slice(0,t.length-e),n=t.slice(t.length-e);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(n)}};var H=b(g());var Be=class extends We{postProcess(t,e,r){let n=r.map(({width:s,height:i})=>{let c=e/Math.max(i,s);return{width:s*c,height:i*c}}),a=n.length;return H.tidy(()=>{let s=(d,u)=>H.stack([H.fill([68],d,"float32"),H.fill([68],u,"float32")],1).as2D(1,136).as1D(),i=(d,u)=>{let{width:l,height:v}=n[d];return u(l,v)?Math.abs(l-v)/2:0},c=d=>i(d,(u,l)=>ui(d,(u,l)=>ls(c(u),m(u))))).div(H.stack(Array.from(Array(a),(d,u)=>s(n[u].width,n[u].height))))})}forwardInput(t){return H.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,n])=>({height:r,width:n})))})}async forward(t){return this.forwardInput(await E(t))}async detectLandmarks(t){let e=await E(t),r=H.tidy(()=>H.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(a,s)=>{let i=Array.from(await a.data()),c=i.filter((p,d)=>ze(d)),m=i.filter((p,d)=>!ze(d));return new ne(Array(68).fill(0).map((p,d)=>new x(c[d],m[d])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var fe=class extends Be{constructor(t=new Se){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var Lt=b(g());function Wo(o){let t=[],{extractDenseBlock3Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return W(o,t),{params:r,paramMappings:t}}function Bo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock3Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i}}}var no=class extends S{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return Lt.tidy(()=>{let r=Lt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(Lt.scalar(255)),s=Qe(a,e.dense0,!0);return s=Qe(s,e.dense1),s=Qe(s,e.dense2),s=Lt.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Wo(t)}extractParams(t){return Bo(t)}};var dr=class extends Be{constructor(t=new no){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Ro=class extends fe{};var U=b(g());var he=b(g());var ur=b(g());function Oo(o,t){return ur.add(ur.mul(o,t.weights),t.biases)}function ao(o,t,e,r,n="same"){let{filters:a,bias:s}=t.conv,i=he.conv2d(o,a,e,n);return i=he.add(i,s),i=Oo(i,t.scale),r?he.relu(i):i}function $o(o,t){return ao(o,t,[1,1],!0)}function so(o,t){return ao(o,t,[1,1],!1)}function lr(o,t){return ao(o,t,[2,2],!0,"valid")}var Y=b(g());function Vn(o,t){function e(i,c,m){let p=o(i),d=p.length/(c*m*m);if(Lr(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return Y.tidy(()=>Y.transpose(Y.tensor4d(p,[c,d,m,m]),[2,3,1,0]))}function r(i,c,m,p){let d=e(i,c,m),u=Y.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:u}}function n(i,c){let m=Y.tensor1d(o(i)),p=Y.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function a(i,c,m,p){let d=r(i,c,m,`${p}/conv`),u=n(c,`${p}/scale`);return{conv:d,scale:u}}function s(i,c,m,p,d=!1){let u=a((d?.5:1)*i,c,m,`${p}/conv1`),l=a(i,c,m,`${p}/conv2`);return{conv1:u,conv2:l}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function jo(o){let{extractWeights:t,getRemainingWeights:e}=B(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Vn(t,r),s=n(4704,32,7,"conv32_down"),i=a(9216,32,3,"conv32_1"),c=a(9216,32,3,"conv32_2"),m=a(9216,32,3,"conv32_3"),p=a(36864,64,3,"conv64_down",!0),d=a(36864,64,3,"conv64_1"),u=a(36864,64,3,"conv64_2"),l=a(36864,64,3,"conv64_3"),v=a(147456,128,3,"conv128_down",!0),_=a(147456,128,3,"conv128_1"),h=a(147456,128,3,"conv128_2"),y=a(589824,256,3,"conv256_down",!0),T=a(589824,256,3,"conv256_1"),F=a(589824,256,3,"conv256_2"),L=a(589824,256,3,"conv256_down_out"),G=Y.tidy(()=>Y.transpose(Y.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:s,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:d,conv64_2:u,conv64_3:l,conv128_down:v,conv128_1:_,conv128_2:h,conv256_down:y,conv256_1:T,conv256_2:F,conv256_down_out:L,fc:G},paramMappings:r}}function Un(o,t){let e=j(o,t);function r(s){let i=e(`${s}/scale/weights`,1),c=e(`${s}/scale/biases`,1);return{weights:i,biases:c}}function n(s){let i=e(`${s}/conv/filters`,4),c=e(`${s}/conv/bias`,1),m=r(s);return{conv:{filters:i,bias:c},scale:m}}function a(s){return{conv1:n(`${s}/conv1`),conv2:n(`${s}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:a}}function Ho(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Un(o,t),n=e("conv32_down"),a=r("conv32_1"),s=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),d=r("conv64_3"),u=r("conv128_down"),l=r("conv128_1"),v=r("conv128_2"),_=r("conv256_down"),h=r("conv256_1"),y=r("conv256_2"),T=r("conv256_down_out"),{fc:F}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Ir(F))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${F}`);let L={conv32_down:n,conv32_1:a,conv32_2:s,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:d,conv128_down:u,conv128_1:l,conv128_2:v,conv256_down:_,conv256_1:h,conv256_2:y,conv256_down_out:T,fc:F};return W(o,t),{params:L,paramMappings:t}}var R=b(g());function nt(o,t){let e=$o(o,t.conv1);return e=so(e,t.conv2),e=R.add(e,o),e=R.relu(e),e}function Re(o,t){let e=lr(o,t.conv1);e=so(e,t.conv2);let r=R.avgPool(o,2,2,"valid"),n=R.zeros(r.shape),a=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let i=[...e.shape];i[1]=1;let c=R.zeros(i);e=R.concat([e,c],1);let m=[...e.shape];m[2]=1;let p=R.zeros(m);e=R.concat([e,p],2)}return r=a?R.concat([r,n],3):r,e=R.add(r,e),e=R.relu(e),e}var xe=class extends S{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return U.tidy(()=>{let r=U.cast(t.toBatchTensor(150,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(U.scalar(256)),s=lr(a,e.conv32_down);s=U.maxPool(s,3,2,"valid"),s=nt(s,e.conv32_1),s=nt(s,e.conv32_2),s=nt(s,e.conv32_3),s=Re(s,e.conv64_down),s=nt(s,e.conv64_1),s=nt(s,e.conv64_2),s=nt(s,e.conv64_3),s=Re(s,e.conv128_down),s=nt(s,e.conv128_1),s=nt(s,e.conv128_2),s=Re(s,e.conv256_down),s=nt(s,e.conv256_1),s=nt(s,e.conv256_2),s=Re(s,e.conv256_down_out);let i=s.mean([1,2]);return U.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await E(t))}async computeFaceDescriptor(t){var a;if((a=t==null?void 0:t.shape)==null?void 0:a.some(s=>s<=0))return new Float32Array(128);let e=await E(t),r=U.tidy(()=>U.unstack(this.forwardInput(e))),n=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Ho(t)}extractParams(t){return jo(t)}};function Xn(o){let t=new xe;return t.extractWeights(o),t}function fr(o,t){return{...o,...{descriptor:t}}}function Jn(o){return typeof o.age=="number"}function hr(o,t){return{...o,...{age:t}}}function qn(o){return(o.gender===vt.MALE||o.gender===vt.FEMALE)&&ee(o.genderProbability)}function xr(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var st=b(g());var at=b(g());function Zn(o,t){function e(c,m){let p=at.tensor4d(o(3*3*c),[3,3,c,1]),d=at.tensor1d(o(c)),u=at.tensor1d(o(c)),l=at.tensor1d(o(c)),v=at.tensor1d(o(c));return t.push({paramPath:`${m}/filters`},{paramPath:`${m}/batch_norm_scale`},{paramPath:`${m}/batch_norm_offset`},{paramPath:`${m}/batch_norm_mean`},{paramPath:`${m}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:u,batch_norm_mean:l,batch_norm_variance:v}}function r(c,m,p,d,u){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),v=at.tensor1d(o(m));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${u?"batch_norm_offset":"bias"}`}),{filters:l,bias:v}}function n(c,m,p,d){let{filters:u,bias:l}=r(c,m,p,d,!0);return{filters:u,batch_norm_offset:l}}function a(c,m,p){let d=e(c,`${p}/depthwise_conv`),u=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:u}}function s(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=a(32,64,"mobilenetv1/conv_1"),p=a(64,128,"mobilenetv1/conv_2"),d=a(128,128,"mobilenetv1/conv_3"),u=a(128,256,"mobilenetv1/conv_4"),l=a(256,256,"mobilenetv1/conv_5"),v=a(256,512,"mobilenetv1/conv_6"),_=a(512,512,"mobilenetv1/conv_7"),h=a(512,512,"mobilenetv1/conv_8"),y=a(512,512,"mobilenetv1/conv_9"),T=a(512,512,"mobilenetv1/conv_10"),F=a(512,512,"mobilenetv1/conv_11"),L=a(512,1024,"mobilenetv1/conv_12"),G=a(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:v,conv_7:_,conv_8:h,conv_9:y,conv_10:T,conv_11:F,conv_12:L,conv_13:G}}function i(){let c=n(1024,256,1,"prediction_layer/conv_0"),m=n(256,512,3,"prediction_layer/conv_1"),p=n(512,128,1,"prediction_layer/conv_2"),d=n(128,256,3,"prediction_layer/conv_3"),u=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),v=n(256,64,1,"prediction_layer/conv_6"),_=n(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),T=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),F=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),L=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),G=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),et=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),it=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),X=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),Pt=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),_t=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),wt=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:v,conv_7:_,box_predictor_0:{box_encoding_predictor:h,class_predictor:y},box_predictor_1:{box_encoding_predictor:T,class_predictor:F},box_predictor_2:{box_encoding_predictor:L,class_predictor:G},box_predictor_3:{box_encoding_predictor:et,class_predictor:it},box_predictor_4:{box_encoding_predictor:X,class_predictor:Pt},box_predictor_5:{box_encoding_predictor:_t,class_predictor:wt}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:i}}function Yo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=Zn(e,t),s=n(),i=a(),m={extra_dim:at.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:s,prediction_layer:i,output_layer:m},paramMappings:t}}function Kn(o,t){let e=j(o,t);function r(m,p,d){let u=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:u,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,d=`MobilenetV1/Conv2d_${m}_depthwise`,u=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,v=e(`${d}/depthwise_weights`,4,`${u}/filters`),_=e(`${d}/BatchNorm/gamma`,1,`${u}/batch_norm_scale`),h=e(`${d}/BatchNorm/beta`,1,`${u}/batch_norm_offset`),y=e(`${d}/BatchNorm/moving_mean`,1,`${u}/batch_norm_mean`),T=e(`${d}/BatchNorm/moving_variance`,1,`${u}/batch_norm_variance`);return{depthwise_conv:{filters:v,batch_norm_scale:_,batch_norm_offset:h,batch_norm_mean:y,batch_norm_variance:T},pointwise_conv:r("MobilenetV1",m,l)}}function a(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:n(1),conv_2:n(2),conv_3:n(3),conv_4:n(4),conv_5:n(5),conv_6:n(6),conv_7:n(7),conv_8:n(8),conv_9:n(9),conv_10:n(10),conv_11:n(11),conv_12:n(12),conv_13:n(13)}}function s(m,p){let d=e(`${m}/weights`,4,`${p}/filters`),u=e(`${m}/biases`,1,`${p}/bias`);return{filters:d,bias:u}}function i(m){let p=s(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),d=s(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:c}}function Go(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=Kn(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!ht(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let a={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return W(o,t),{params:a,paramMappings:t}}var yt=b(g());var kt=b(g());function q(o,t,e){return kt.tidy(()=>{let r=kt.conv2d(o,t.filters,e,"same");return r=kt.add(r,t.batch_norm_offset),kt.clipByValue(r,0,6)})}var Qn=.0010000000474974513;function ta(o,t,e){return yt.tidy(()=>{let r=yt.depthwiseConv2d(o,t.filters,e,"same");return r=yt.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Qn),yt.clipByValue(r,0,6)})}function ea(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function zo(o,t){return yt.tidy(()=>{let e,r=q(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((a,s)=>{let i=s+1,c=ea(i);r=ta(r,a.depthwise_conv,c),r=q(r,a.pointwise_conv,[1,1]),i===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function ra(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),i=Math.max(r[t][1],r[t][3]),c=Math.min(r[e][0],r[e][2]),m=Math.min(r[e][1],r[e][3]),p=Math.max(r[e][0],r[e][2]),d=Math.max(r[e][1],r[e][3]),u=(s-n)*(i-a),l=(p-c)*(d-m);if(u<=0||l<=0)return 0;let v=Math.max(n,c),_=Math.max(a,m),h=Math.min(s,p),y=Math.min(i,d),T=Math.max(h-v,0)*Math.max(y-_,0);return T/(u+l-T)}function Vo(o,t,e,r,n){let a=o.shape[0],s=Math.min(e,a),i=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>n).sort((p,d)=>d.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=s)return;let d=p.score;for(let u=m.length-1;u>=0;--u){let l=ra(o,p.boxIndex,m[u]);if(l!==0&&(p.score*=c(l),p.score<=n))break}d===p.score&&m.push(p.boxIndex)}),m}var f=b(g());function oa(o){let t=f.unstack(f.transpose(o,[1,0])),e=[f.sub(t[2],t[0]),f.sub(t[3],t[1])],r=[f.add(t[0],f.div(e[0],f.scalar(2))),f.add(t[1],f.div(e[1],f.scalar(2)))];return{sizes:e,centers:r}}function na(o,t){let{sizes:e,centers:r}=oa(o),n=f.unstack(f.transpose(t,[1,0])),a=f.div(f.mul(f.exp(f.div(n[2],f.scalar(5))),e[0]),f.scalar(2)),s=f.add(f.mul(f.div(n[0],f.scalar(10)),e[0]),r[0]),i=f.div(f.mul(f.exp(f.div(n[3],f.scalar(5))),e[1]),f.scalar(2)),c=f.add(f.mul(f.div(n[1],f.scalar(10)),e[1]),r[1]);return f.transpose(f.stack([f.sub(s,a),f.sub(c,i),f.add(s,a),f.add(c,i)]),[1,0])}function Uo(o,t,e){return f.tidy(()=>{let r=o.shape[0],n=na(f.reshape(f.tile(e.extra_dim,[r,1,1]),[-1,4]),f.reshape(o,[-1,4]));n=f.reshape(n,[r,n.shape[0]/r,4]);let a=f.sigmoid(f.slice(t,[0,0,1],[-1,-1,-1])),s=f.slice(a,[0,0,0],[-1,-1,1]);s=f.reshape(s,[r,s.shape[1]]);let i=f.unstack(n),c=f.unstack(s);return{boxes:i,scores:c}})}var $e=b(g());var Oe=b(g());function Ut(o,t){return Oe.tidy(()=>{let e=o.shape[0],r=Oe.reshape(zt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Oe.reshape(zt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Xo(o,t,e){return $e.tidy(()=>{let r=q(o,e.conv_0,[1,1]),n=q(r,e.conv_1,[2,2]),a=q(n,e.conv_2,[1,1]),s=q(a,e.conv_3,[2,2]),i=q(s,e.conv_4,[1,1]),c=q(i,e.conv_5,[2,2]),m=q(c,e.conv_6,[1,1]),p=q(m,e.conv_7,[2,2]),d=Ut(t,e.box_predictor_0),u=Ut(o,e.box_predictor_1),l=Ut(n,e.box_predictor_2),v=Ut(s,e.box_predictor_3),_=Ut(c,e.box_predictor_4),h=Ut(p,e.box_predictor_5),y=$e.concat([d.boxPredictionEncoding,u.boxPredictionEncoding,l.boxPredictionEncoding,v.boxPredictionEncoding,_.boxPredictionEncoding,h.boxPredictionEncoding],1),T=$e.concat([d.classPrediction,u.classPrediction,l.classPrediction,v.classPrediction,_.classPrediction,h.classPrediction],1);return{boxPredictions:y,classPredictions:T}})}var Z=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var Xt=class extends S{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return st.tidy(()=>{let r=st.cast(t.toBatchTensor(512,!1),"float32"),n=st.sub(st.mul(r,st.scalar(.007843137718737125)),st.scalar(1)),a=zo(n,e.mobilenetv1),{boxPredictions:s,classPredictions:i}=Xo(a.out,a.conv11,e.prediction_layer);return Uo(s,i,e.output_layer)})}async forward(t){return this.forwardInput(await E(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new Z(e),a=await E(t),{boxes:s,scores:i}=this.forwardInput(a),c=s[0],m=i[0];for(let F=1;F{let[L,G]=[Math.max(0,y[F][0]),Math.min(1,y[F][2])].map(X=>X*h),[et,it]=[Math.max(0,y[F][1]),Math.min(1,y[F][3])].map(X=>X*_);return new M(p[F],new oe(et,L,it-et,G-L),{height:a.getInputHeight(0),width:a.getInputWidth(0)})});return c.dispose(),m.dispose(),T}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Go(t)}extractParams(t){return Yo(t)}};function Jo(o){let t=new Xt;return t.extractWeights(o),t}function aa(o){return Jo(o)}var qo=class extends Xt{};var Zo=.4,Ko=[new x(.738768,.874946),new x(2.42204,2.65704),new x(4.30971,7.04493),new x(10.246,4.59428),new x(12.6868,11.8741)],Qo=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],tn=[117.001,114.697,97.404],en="tiny_yolov2_model",rn="tiny_yolov2_separable_conv_model";var N=b(g());var br=o=>typeof o=="number";function io(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!br(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>br(t.x)&&br(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(br)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=b(g());var K=b(g());function be(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function Ft(o,t){return Q.tidy(()=>{let e=Q.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Q.conv2d(e,t.conv.filters,[1,1],"valid"),e=Q.sub(e,t.bn.sub),e=Q.mul(e,t.bn.truediv),e=Q.add(e,t.conv.bias),be(e)})}var St=b(g());function Tt(o,t){return St.tidy(()=>{let e=St.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=St.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=St.add(e,t.bias),be(e)})}var co=b(g());function sa(o,t){let e=ce(o,t);function r(s,i){let c=co.tensor1d(o(s)),m=co.tensor1d(o(s));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(s,i,c){let m=e(s,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let a=me(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}}function on(o,t,e,r){let{extractWeights:n,getRemainingWeights:a}=B(o),s=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=sa(n,s),p;if(t.withSeparableConvs){let[d,u,l,v,_,h,y,T,F]=r,L=t.isFirstLayerConv2d?i(d,u,3,"conv0"):m(d,u,"conv0"),G=m(u,l,"conv1"),et=m(l,v,"conv2"),it=m(v,_,"conv3"),X=m(_,h,"conv4"),Pt=m(h,y,"conv5"),_t=T?m(y,T,"conv6"):void 0,wt=F?m(T,F,"conv7"):void 0,te=i(F||T||y,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:Pt,conv6:_t,conv7:wt,conv8:te}}else{let[d,u,l,v,_,h,y,T,F]=r,L=c(d,u,"conv0"),G=c(u,l,"conv1"),et=c(l,v,"conv2"),it=c(v,_,"conv3"),X=c(_,h,"conv4"),Pt=c(h,y,"conv5"),_t=c(y,T,"conv6"),wt=c(T,F,"conv7"),te=i(F,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:Pt,conv6:_t,conv7:wt,conv8:te}}if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:p,paramMappings:s}}function ia(o,t){let e=j(o,t);function r(i){let c=e(`${i}/sub`,1),m=e(`${i}/truediv`,1);return{sub:c,truediv:m}}function n(i){let c=e(`${i}/filters`,4),m=e(`${i}/bias`,1);return{filters:c,bias:m}}function a(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let s=pe(e);return{extractConvParams:n,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function nn(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}=ia(o,e),s;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:i>7?a("conv6"):void 0,conv7:i>8?a("conv7"):void 0,conv8:r("conv8")}}else s={conv0:n("conv0"),conv1:n("conv1"),conv2:n("conv2"),conv3:n("conv3"),conv4:n("conv4"),conv5:n("conv5"),conv6:n("conv6"),conv7:n("conv7"),conv8:r("conv8")};return W(o,e),{params:s,paramMappings:e}}var lt=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var mo=class extends S{constructor(t){super("TinyYolov2");io(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,e){let r=Ft(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=Ft(r,e.conv6),r=Ft(r,e.conv7),zt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?be(zt(t,e.conv0,"valid",!1)):Tt(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?Tt(r,e.conv6):r,r=e.conv7?Tt(r,e.conv7):r,zt(r,e.conv8,"valid",!1)}forwardInput(t,e){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return N.tidy(()=>{let n=N.cast(t.toBatchTensor(e,!1),"float32");return n=this.config.meanRgb?ot(n,this.config.meanRgb):n,n=n.div(N.scalar(256)),this.config.withSeparableConvs?this.runMobilenet(n,r):this.runTinyYolov2(n,r)})}async forward(t,e){return this.forwardInput(await E(t),e)}async detect(t,e={}){let{inputSize:r,scoreThreshold:n}=new lt(e),a=await E(t),s=await this.forwardInput(a,r),i=N.tidy(()=>N.unstack(s)[0].expandDims()),c={width:a.getInputWidth(0),height:a.getInputHeight(0)},m=await this.extractBoxes(i,a.getReshapedInputDimensions(0),n);s.dispose(),i.dispose();let p=m.map(h=>h.box),d=m.map(h=>h.score),u=m.map(h=>h.classScore),l=m.map(h=>this.config.classes[h.label]);return Wr(p.map(h=>h.rescale(r)),d,this.config.iouThreshold,!0).map(h=>new Dt(d[h],u[h],l[h],p[h],c))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return nn(t,this.config)}extractParams(t){let e=this.config.filterSizes||mo.DEFAULT_FILTER_SIZES,r=e?e.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return on(t,this.config,this.boxEncodingSize,e)}async extractBoxes(t,e,r){let{width:n,height:a}=e,s=Math.max(n,a),i=s/n,c=s/a,m=t.shape[1],p=this.config.anchors.length,[d,u,l]=N.tidy(()=>{let y=t.reshape([m,m,p,this.boxEncodingSize]),T=y.slice([0,0,0,0],[m,m,p,4]),F=y.slice([0,0,0,4],[m,m,p,1]),L=this.withClassScores?N.softmax(y.slice([0,0,0,5],[m,m,p,this.config.classes.length]),3):N.scalar(0);return[T,F,L]}),v=[],_=await u.array(),h=await d.array();for(let y=0;yr){let G=(T+De(h[y][T][F][0]))/m*i,et=(y+De(h[y][T][F][1]))/m*c,it=Math.exp(h[y][T][F][2])*this.config.anchors[F].x/m*i,X=Math.exp(h[y][T][F][3])*this.config.anchors[F].y/m*c,Pt=G-it/2,_t=et-X/2,wt={row:y,col:T,anchor:F},{classScore:te,label:ho}=this.withClassScores?await this.extractPredictedClass(l,wt):{classScore:1,label:0};v.push({box:new re(Pt,_t,Pt+it,_t+X),score:L,classScore:L*te,label:ho,...wt})}}return d.dispose(),u.dispose(),l.dispose(),v}async extractPredictedClass(t,e){let{row:r,col:n,anchor:a}=e,s=await t.array();return Array(this.config.classes.length).fill(0).map((i,c)=>s[r][n][a][c]).map((i,c)=>({classScore:i,label:c})).reduce((i,c)=>i.classScore>c.classScore?i:c)}},ge=mo;ge.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var ve=class extends ge{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:Zo,classes:["face"],...t?{anchors:Qo,meanRgb:tn}:{anchors:Ko,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?rn:en}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function ca(o,t=!0){let e=new ve(t);return e.extractWeights(o),e}var gr=class extends lt{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var tt=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var je=b(g());var po=b(g());async function Jt(o,t,e,r,n=({alignedRect:a})=>a){let a=o.map(c=>Vt(c)?n(c):c.detection),s=r||(t instanceof po.Tensor?await se(t,a):await ae(t,a)),i=await e(s);return s.forEach(c=>c instanceof po.Tensor&&c.dispose()),i}async function ye(o,t,e,r,n){return Jt([o],t,async a=>e(a[0]),r,n)}var an=.4,sn=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],cn=[117.001,114.697,97.404];var Fe=class extends ge{constructor(){let t={withSeparableConvs:!0,iouThreshold:an,classes:["face"],anchors:sn,meanRgb:cn,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var P={ssdMobilenetv1:new Xt,tinyFaceDetector:new Fe,tinyYolov2:new ve,faceLandmark68Net:new fe,faceLandmark68TinyNet:new dr,faceRecognitionNet:new xe,faceExpressionNet:new cr,ageGenderNet:new pr},mn=(o,t)=>P.ssdMobilenetv1.locateFaces(o,t),ma=(o,t)=>P.tinyFaceDetector.locateFaces(o,t),pa=(o,t)=>P.tinyYolov2.locateFaces(o,t),pn=o=>P.faceLandmark68Net.detectLandmarks(o),da=o=>P.faceLandmark68TinyNet.detectLandmarks(o),ua=o=>P.faceRecognitionNet.computeFaceDescriptor(o),la=o=>P.faceExpressionNet.predictExpressions(o),fa=o=>P.ageGenderNet.predictAgeAndGender(o),dn=o=>P.ssdMobilenetv1.load(o),ha=o=>P.tinyFaceDetector.load(o),xa=o=>P.tinyYolov2.load(o),ba=o=>P.faceLandmark68Net.load(o),ga=o=>P.faceLandmark68TinyNet.load(o),va=o=>P.faceRecognitionNet.load(o),ya=o=>P.faceExpressionNet.load(o),Fa=o=>P.ageGenderNet.load(o),Ta=dn,Pa=mn,_a=pn;var uo=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},_e=class extends uo{async run(){let t=await this.parentTask,e=await Jt(t,this.input,async r=>Promise.all(r.map(n=>P.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>mr(r,e[n]))}withAgeAndGender(){return new Te(this,this.input)}},we=class extends uo{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>P.faceExpressionNet.predictExpressions(r),this.extractedFaces);return mr(t,e)}withAgeAndGender(){return new Pe(this,this.input)}},Kt=class extends _e{withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Qt=class extends we{withAgeAndGender(){return new Zt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var lo=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},Te=class extends lo{async run(){let t=await this.parentTask,e=await Jt(t,this.input,async r=>Promise.all(r.map(n=>P.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:a,gender:s,genderProbability:i}=e[n];return hr(xr(r,s,i),a)})}withFaceExpressions(){return new _e(this,this.input)}},Pe=class extends lo{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await ye(t,this.input,a=>P.ageGenderNet.predictAgeAndGender(a),this.extractedFaces);return hr(xr(t,r,n),e)}withFaceExpressions(){return new we(this,this.input)}},qt=class extends Te{withFaceExpressions(){return new Kt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Zt=class extends Pe{withFaceExpressions(){return new Qt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var vr=class extends tt{constructor(t,e){super();this.parentTask=t;this.input=e}},At=class extends vr{async run(){let t=await this.parentTask;return(await Jt(t,this.input,r=>Promise.all(r.map(n=>P.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>fr(t[n],r))}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}},Wt=class extends vr{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>P.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return fr(t,e)}withFaceExpressions(){return new Qt(this,this.input)}withAgeAndGender(){return new Zt(this,this.input)}};var yr=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?P.faceLandmark68TinyNet:P.faceLandmark68Net}},Fr=class extends yr{async run(){let t=await this.parentTask,e=t.map(a=>a.detection),r=this.input instanceof je.Tensor?await se(this.input,e):await ae(this.input,e),n=await Promise.all(r.map(a=>this.landmarkNet.detectLandmarks(a)));return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),t.map((a,s)=>le(a,n[s]))}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Tr=class extends yr{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof je.Tensor?await se(this.input,[e]):await ae(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),le(t,n)}withFaceExpressions(){return new Qt(this,this.input)}withAgeAndGender(){return new Zt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var Pr=class extends tt{constructor(t,e=new Z){super();this.input=t;this.options=e}},He=class extends Pr{async run(){let{input:t,options:e}=this,r;if(e instanceof gr)r=P.tinyFaceDetector.locateFaces(t,e);else if(e instanceof Z)r=P.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof lt)r=P.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise(async t=>{let e=await this.run();t(e.map(r=>$t({},r)))})}withFaceLandmarks(t=!1){return new Fr(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new _e(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Te(this.runAndExtendWithFaceDetections(),this.input)}},_r=class extends Pr{async run(){let t=await new He(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?$t({},e):void 0)})}withFaceLandmarks(t=!1){return new Tr(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new we(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Pe(this.runAndExtendWithFaceDetection(),this.input)}};function wa(o,t=new Z){return new _r(o,t)}function wr(o,t=new Z){return new He(o,t)}async function un(o,t){return wr(o,new Z(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function Da(o,t={}){return wr(o,new lt(t)).withFaceLandmarks().withFaceDescriptors()}var Ea=un;function fo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((n,a)=>n-r[a]).reduce((n,a)=>n+a**2,0))}var Dr=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1,a=()=>`person ${n++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof xt)return s;if(s instanceof Float32Array)return new xt(a(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new xt(a(),[s.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>fo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new Ee(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>xt.fromJSON(r));return new Dr(e,t.distanceThreshold)}};function Ma(o){let t=new Fe;return t.extractWeights(o),t}function ln(o,t){let{width:e,height:r}=new A(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(n=>ln(n,{width:e,height:r}));if(Vt(o)){let n=o.detection.forSize(e,r),a=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return le($t(o,n),a)}return pt(o)?$t(o,o.detection.forSize(e,r)):o instanceof V||o instanceof M?o.forSize(e,r):o}var Na=typeof process!="undefined",Ia=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",La={faceapi:No,node:Na,browser:Ia}; +var fn=Object.create,Ye=Object.defineProperty,hn=Object.getPrototypeOf,xn=Object.prototype.hasOwnProperty,bn=Object.getOwnPropertyNames,gn=Object.getOwnPropertyDescriptor;var Er=o=>Ye(o,"__esModule",{value:!0});var fo=(o,t)=>()=>(t||(t={exports:{}},o(t.exports,t)),t.exports),Ge=(o,t)=>{for(var e in t)Ye(o,e,{get:t[e],enumerable:!0})},vn=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of bn(t))!xn.call(o,r)&&r!=="default"&&Ye(o,r,{get:()=>t[r],enumerable:!(e=gn(t,r))||e.enumerable});return o},b=o=>vn(Er(Ye(o!=null?fn(hn(o)):{},"default",o&&o.__esModule&&"default"in o?{get:()=>o.default,enumerable:!0}:{value:o,enumerable:!0})),o);var g=fo(Mr=>{var yn=Object.create,Cr=Object.defineProperty,Fn=Object.getPrototypeOf,Tn=Object.prototype.hasOwnProperty,_n=Object.getOwnPropertyNames,wn=Object.getOwnPropertyDescriptor,ho=o=>Cr(o,"__esModule",{value:!0}),xo=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of _n(t))!Tn.call(o,r)&&r!=="default"&&Cr(o,r,{get:()=>t[r],enumerable:!(e=wn(t,r))||e.enumerable});return o},Pn=o=>xo(ho(Cr(o!=null?yn(Fn(o)):{},"default",o&&o.__esModule&&"default"in o?{get:()=>o.default,enumerable:!0}:{value:o,enumerable:!0})),o);ho(Mr);xo(Mr,Pn(require("@tensorflow/tfjs")))});var To=fo((Ln,Fo)=>{Er(Ln);Ge(Ln,{isNodejs:()=>kn});function kn(){return typeof global=="object"&&!0&&typeof Fo!="undefined"&&typeof process!="undefined"&&!!process.version}});Er(exports);Ge(exports,{AgeGenderNet:()=>pr,BoundingBox:()=>re,Box:()=>D,ComposableTask:()=>tt,ComputeAllFaceDescriptorsTask:()=>At,ComputeFaceDescriptorsTaskBase:()=>vr,ComputeSingleFaceDescriptorTask:()=>Wt,DetectAllFaceLandmarksTask:()=>Fr,DetectAllFacesTask:()=>He,DetectFaceLandmarksTaskBase:()=>yr,DetectFacesTaskBase:()=>_r,DetectSingleFaceLandmarksTask:()=>Tr,DetectSingleFaceTask:()=>wr,Dimensions:()=>A,FACE_EXPRESSION_LABELS:()=>qr,FaceDetection:()=>M,FaceDetectionNet:()=>qo,FaceExpressionNet:()=>cr,FaceExpressions:()=>It,FaceLandmark68Net:()=>fe,FaceLandmark68TinyNet:()=>dr,FaceLandmarkNet:()=>Ro,FaceLandmarks:()=>V,FaceLandmarks5:()=>vo,FaceLandmarks68:()=>ne,FaceMatch:()=>Ee,FaceMatcher:()=>Dr,FaceRecognitionNet:()=>xe,Gender:()=>vt,LabeledBox:()=>Me,LabeledFaceDescriptors:()=>xt,NetInput:()=>bt,NeuralNetwork:()=>S,ObjectDetection:()=>Dt,Point:()=>x,PredictedBox:()=>yo,Rect:()=>oe,SsdMobilenetv1:()=>Xt,SsdMobilenetv1Options:()=>Z,TinyFaceDetector:()=>Fe,TinyFaceDetectorOptions:()=>gr,TinyYolov2:()=>ve,TinyYolov2Options:()=>lt,allFaces:()=>Ea,allFacesSsdMobilenetv1:()=>un,allFacesTinyYolov2:()=>Da,awaitMediaLoaded:()=>Gr,bufferToImage:()=>zr,computeFaceDescriptor:()=>ua,createCanvas:()=>Yt,createCanvasFromMedia:()=>Ie,createFaceDetectionNet:()=>aa,createFaceRecognitionNet:()=>Xn,createSsdMobilenetv1:()=>Jo,createTinyFaceDetector:()=>Ma,createTinyYolov2:()=>ca,detectAllFaces:()=>Pr,detectFaceLandmarks:()=>pn,detectFaceLandmarksTiny:()=>da,detectLandmarks:()=>wa,detectSingleFace:()=>Pa,draw:()=>Co,env:()=>P,euclideanDistance:()=>uo,extendWithAge:()=>hr,extendWithFaceDescriptor:()=>fr,extendWithFaceDetection:()=>Ot,extendWithFaceExpressions:()=>mr,extendWithFaceLandmarks:()=>le,extendWithGender:()=>xr,extractFaceTensors:()=>se,extractFaces:()=>ae,fetchImage:()=>Bn,fetchJson:()=>Xr,fetchNetWeights:()=>Rn,fetchOrThrow:()=>Gt,getContext2dOrThrow:()=>$,getMediaDimensions:()=>Ht,imageTensorToCanvas:()=>Vr,imageToSquare:()=>Ur,inverseSigmoid:()=>Mn,iou:()=>kr,isMediaElement:()=>qe,isMediaLoaded:()=>Ne,isWithAge:()=>Jn,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>Zr,isWithFaceLandmarks:()=>Vt,isWithGender:()=>qn,loadAgeGenderModel:()=>Fa,loadFaceDetectionModel:()=>Ta,loadFaceExpressionModel:()=>ya,loadFaceLandmarkModel:()=>ba,loadFaceLandmarkTinyModel:()=>ga,loadFaceRecognitionModel:()=>va,loadSsdMobilenetv1Model:()=>dn,loadTinyFaceDetectorModel:()=>ha,loadTinyYolov2Model:()=>xa,loadWeightMap:()=>Jr,locateFaces:()=>_a,matchDimensions:()=>$n,minBbox:()=>Sr,nets:()=>_,nonMaxSuppression:()=>Ar,normalize:()=>ot,padToSquare:()=>Wr,predictAgeAndGender:()=>fa,recognizeFaceExpressions:()=>la,resizeResults:()=>ln,resolveInput:()=>jt,shuffleArray:()=>En,sigmoid:()=>De,ssdMobilenetv1:()=>mn,tf:()=>Ca,tinyFaceDetector:()=>ma,tinyYolov2:()=>pa,toNetInput:()=>E,utils:()=>bo,validateConfig:()=>ao,version:()=>La});var Ca=b(g());var Co={};Ge(Co,{AnchorPosition:()=>dt,DrawBox:()=>Xe,DrawBoxOptions:()=>Yr,DrawFaceLandmarks:()=>Qr,DrawFaceLandmarksOptions:()=>Kr,DrawTextField:()=>Mt,DrawTextFieldOptions:()=>Ce,drawContour:()=>ft,drawDetections:()=>Wn,drawFaceExpressions:()=>On,drawFaceLandmarks:()=>Hn});function ft(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},a)=>{let s=t[a];o.moveTo(s.x,s.y),o.lineTo(r,n)}),e){let r=t[t.length-1],n=t[0];if(!r||!n)return;o.moveTo(r.x,r.y),o.lineTo(n.x,n.y)}o.stroke()}var bo={};Ge(bo,{computeReshapedDimensions:()=>Lr,getCenterPoint:()=>$t,isDimensions:()=>Ve,isEven:()=>ze,isFloat:()=>Ir,isTensor:()=>Bt,isTensor1D:()=>Dn,isTensor2D:()=>Nr,isTensor3D:()=>ht,isTensor4D:()=>z,isValidNumber:()=>rt,isValidProbablitiy:()=>ee,range:()=>ct,round:()=>Rt});var go=b(g());var A=class{constructor(t,e){if(!rt(t)||!rt(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new A(1/this.width,1/this.height)}};function Bt(o,t){return o instanceof go.Tensor&&o.shape.length===t}function Dn(o){return Bt(o,1)}function Nr(o){return Bt(o,2)}function ht(o){return Bt(o,3)}function z(o){return Bt(o,4)}function Ir(o){return o%1!=0}function ze(o){return o%2==0}function Rt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function Ve(o){return o&&o.width&&o.height}function Lr({width:o,height:t},e){let r=e/Math.max(t,o);return new A(Math.round(o*r),Math.round(t*r))}function $t(o){return o.reduce((t,e)=>t.add(e),new x(0,0)).div(new x(o.length,o.length))}function ct(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function rt(o){return!!o&&o!==Infinity&&o!==-Infinity&&!Number.isNaN(o)||o===0}function ee(o){return rt(o)&&o>=0&&o<=1}var x=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new x(this.x+t.x,this.y+t.y)}sub(t){return new x(this.x-t.x,this.y-t.y)}mul(t){return new x(this.x*t.x,this.y*t.y)}div(t){return new x(this.x/t.x,this.y/t.y)}abs(){return new x(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new x(Math.floor(this.x),Math.floor(this.y))}};var D=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(rt)}static assertIsValidBox(t,e,r=!1){if(!D.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},n=[r.left,r.top,r.right,r.bottom].every(rt),a=[r.x,r.y,r.width,r.height].every(rt);if(!a&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,i,c,m]=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];D.assertIsValidBox({x:s,y:i,width:c,height:m},"Box.constructor",e),this._x=s,this._y=i,this._width=c,this._height=m}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new x(this.left,this.top)}get topRight(){return new x(this.right,this.top)}get bottomLeft(){return new x(this.left,this.bottom)}get bottomRight(){return new x(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.round(a));return new D({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.floor(a));return new D({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,a=Math.abs(r-n);return re&&(i=-d+e+r,d=e),u>t&&(c=-u+t+n,u=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:s,edy:c,dx:a,edx:i,y:p,ey:u,x:m,ex:d,w:r,h:n}}calibrate(t){return new D({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var re=class extends D{constructor(t,e,r,n,a=!1){super({left:t,top:e,right:r,bottom:n},a)}};var Dt=class{constructor(t,e,r,n,a){this._imageDims=new A(a.width,a.height),this._score=t,this._classScore=e,this._className=r,this._box=new D(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new D(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new Dt(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class extends Dt{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:a}=super.forSize(t,e);return new M(r,n,a)}};function kr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),n=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),a=r*n;return e?a/(o.area+t.area-a):a/Math.min(o.area,t.area)}function Sr(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:s,boxIndex:i})).sort((s,i)=>s.score-i.score).map(s=>s.boxIndex),a=[];for(;n.length>0;){let s=n.pop();a.push(s);let i=n,c=[];for(let m=0;mc[p]<=e)}return a}var mt=b(g());function ot(o,t){return mt.tidy(()=>{let[e,r,n]=t,a=mt.fill([...o.shape.slice(0,3),1],e,"float32"),s=mt.fill([...o.shape.slice(0,3),1],r,"float32"),i=mt.fill([...o.shape.slice(0,3),1],n,"float32"),c=mt.concat([a,s,i],3);return mt.sub(o,c)})}var Et=b(g());function Wr(o,t=!1){return Et.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),a=Math.round(n*(t?.5:1)),s=e>r?2:1,i=u=>{let l=o.shape.slice();return l[s]=u,Et.fill(l,0,"float32")},c=i(a),m=n-c.shape[s],d=[t&&m?i(m):null,o,c].filter(u=>!!u).map(u=>Et.cast(u,"float32"));return Et.concat(d,s)})}function En(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function De(o){return 1/(1+Math.exp(-o))}function Mn(o){return Math.log(o/(1-o))}var oe=class extends D{constructor(t,e,r,n,a=!1){super({x:t,y:e,width:r,height:n},a)}};var Cn=.5,Nn=.43,In=.45,V=class{constructor(t,e,r=new x(0,0)){let{width:n,height:a}=e;this._imgDims=new A(n,a),this._shift=r,this._positions=t.map(s=>s.mul(new x(n,a)).add(r))}get shift(){return new x(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new x(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new x(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let a=t instanceof M?t.box.floor():new D(t);return this.shiftBy(a.x,a.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:n}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(n)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,n]=t,a=d=>n.sub(d).magnitude(),s=(a(e)+a(r))/2,i=Math.floor(s/In),c=$t(t),m=Math.floor(Math.max(0,c.x-Cn*i)),p=Math.floor(Math.max(0,c.y-Nn*i));return new oe(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Sr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var vo=class extends V{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],$t([t[3],t[4]])]}};var ne=class extends V{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map($t)}};var Ee=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Rt(this.distance)})`:""}`}};var Me=class extends D{static assertIsValidLabeledBox(t,e){if(D.assertIsValidBox(t,e),!rt(t.label))throw new Error(`${e} - expected property label (${t.label}) to be a number`)}constructor(t,e){super(t);this._label=e}get label(){return this._label}};var xt=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new xt(t.label,e)}};var yo=class extends Me{static assertIsValidPredictedBox(t,e){if(Me.assertIsValidLabeledBox(t,e),!ee(t.score)||!ee(t.classScore))throw new Error(`${e} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,e,r,n){super(t,e);this._score=r,this._classScore=n}get score(){return this._score}get classScore(){return this._classScore}};function pt(o){return o.detection instanceof M}function Ot(o,t){return{...o,...{detection:t}}}function Br(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Ue(o){let t="";if(!o)try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,a)=>{o.readFile(r,(s,i)=>s?a(s):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Rr(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},n=global.fetch,a=Ue();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:e,createImageElement:r,fetch:n,...a}}function $r(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var Or=b(To()),k;function Sn(){if(!k)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return k}function jr(o){k=o}function Hr(){return $r()?jr(Br()):(0,Or.isNodejs)()?jr(Rr()):null}function An(o){if(k||Hr(),!k)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=k.Canvas,Image:e=k.Image}=o;k.Canvas=t,k.Image=e,k.createCanvasElement=o.createCanvasElement||(()=>new t),k.createImageElement=o.createImageElement||(()=>new e),k.ImageData=o.ImageData||k.ImageData,k.Video=o.Video||k.Video,k.fetch=o.fetch||k.fetch,k.readFile=o.readFile||k.readFile}var P={getEnv:Sn,setEnv:jr,initialize:Hr,createBrowserEnv:Br,createFileSystem:Ue,createNodejsEnv:Rr,monkeyPatch:An,isBrowser:$r,isNodejs:Or.isNodejs};Hr();function jt(o){return!P.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function $(o){let{Canvas:t,CanvasRenderingContext2D:e}=P.getEnv();if(o instanceof e)return o;let r=jt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d");if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var dt;(function(o){o.TOP_LEFT="TOP_LEFT",o.TOP_RIGHT="TOP_RIGHT",o.BOTTOM_LEFT="BOTTOM_LEFT",o.BOTTOM_RIGHT="BOTTOM_RIGHT"})(dt||(dt={}));var Ce=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:a,fontStyle:s,padding:i}=t;this.anchorPosition=e||dt.TOP_LEFT,this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=a||14,this.fontStyle=s||"Georgia",this.padding=i||4}},Mt=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof Mt?t.text:t,this.anchor=e,this.options=new Ce(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let v=c+d.x,w=c+d.y+(l+1)*s;r.fillText(u,v,w)})}};var Yr=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:a}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let s={anchorPosition:dt.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Ce({...s,...a})}},Xe=class{constructor(t,e={}){this.box=new D(t),this.options=new Yr(e)}draw(t){let e=$(t),{boxColor:r,lineWidth:n}=this.options,{x:a,y:s,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(a,s,i,c);let{label:m}=this.options;m&&new Mt([m],{x:a-n/2,y:s},this.options.drawLabelOptions).draw(t)}};function Wn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,a=r instanceof M?r.box:pt(r)?r.detection.box:new D(r),s=n?`${Rt(n)}`:void 0;new Xe(a,{label:s}).draw(o)})}var ue=b(g());function Ne(o){let{Image:t,Video:e}=P.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function Gr(o){return new Promise((t,e)=>{if(o instanceof P.getEnv().Canvas||Ne(o))return t(null);function r(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),e(a))}function n(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),t(a))}o.addEventListener("load",n),o.addEventListener("error",r)})}function zr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let n=P.getEnv().createImageElement();n.onload=()=>t(n),n.onerror=e,n.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Ht(o){let{Image:t,Video:e}=P.getEnv();return o instanceof t?new A(o.naturalWidth,o.naturalHeight):o instanceof e?new A(o.videoWidth,o.videoHeight):new A(o.width,o.height)}function Yt({width:o,height:t}){let{createCanvasElement:e}=P.getEnv(),r=e();return r.width=o,r.height=t,r}function Ie(o,t){let{ImageData:e}=P.getEnv();if(!(o instanceof e)&&!Ne(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Ht(o),a=Yt({width:r,height:n});return o instanceof e?$(a).putImageData(o,0,0):$(a).drawImage(o,0,0,r,n),a}var Je=b(g());async function Vr(o,t){let e=t||P.getEnv().createCanvasElement(),[r,n,a]=o.shape.slice(z(o)?1:0),s=Je.tidy(()=>o.as3D(r,n,a).toInt());return await Je.browser.toPixels(s,e),s.dispose(),e}function qe(o){let{Image:t,Canvas:e,Video:r}=P.getEnv();return o instanceof t||o instanceof e||o instanceof r}var J=b(g());function Ur(o,t,e=!1){let{Image:r,Canvas:n}=P.getEnv();if(!(o instanceof r||o instanceof n))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Yt({width:1,height:1});let a=Ht(o),s=t/Math.max(a.height,a.width),i=s*a.width,c=s*a.height,m=Yt({width:t,height:t}),p=o instanceof n?o:Ie(o),d=Math.abs(i-c)/2,u=e&&i0&&p.height>0&&$(m).drawImage(p,u,l,i,c),m}var bt=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=e,this._batchSize=t.length,t.forEach((r,n)=>{if(ht(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(z(r)){let s=r.shape[0];if(s!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${s} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let a=r instanceof P.getEnv().Canvas?r:Ie(r);this._canvases[n]=a,this._inputDimensions[n]=[a.height,a.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return ct(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return Lr({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,J.tidy(()=>{let r=ct(this.batchSize,0,1).map(a=>{let s=this.getInput(a);if(s instanceof J.Tensor){let i=z(s)?s:s.expandDims();return i=Wr(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=J.image.resizeBilinear(i,[t,t])),i.as3D(t,t,3)}if(s instanceof P.getEnv().Canvas)return J.browser.fromPixels(Ur(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${a}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return J.stack(r.map(a=>J.cast(a,"float32"))).as4D(this.batchSize,t,t,3)})}};async function E(o){if(o instanceof bt)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=n=>Array.isArray(o)?` at input index ${n}:`:"",r=t.map(jt);return r.forEach((n,a)=>{if(!qe(n)&&!ht(n)&&!z(n))throw typeof t[a]=="string"?new Error(`toNetInput -${e(a)} string passed, but could not resolve HTMLElement for element id ${t[a]}`):new Error(`toNetInput -${e(a)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(z(n)){let s=n.shape[0];if(s!==1)throw new Error(`toNetInput -${e(a)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>qe(n)&&Gr(n))),new bt(r,Array.isArray(o))}async function ae(o,t){let{Canvas:e}=P.getEnv(),r=o;if(!(o instanceof e)){let s=await E(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=s.getInput(0);r=i instanceof e?i:await Vr(i)}let n=$(r);return t.map(s=>s instanceof M?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:i,width:c,height:m})=>{let p=Yt({width:c,height:m});return c>0&&m>0&&$(p).putImageData(n.getImageData(s,i,c,m),0,0),p})}var Ze=b(g());async function se(o,t){if(!ht(o)&&!z(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(z(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return Ze.tidy(()=>{let[e,r,n]=o.shape.slice(z(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).map(({x:i,y:c,width:m,height:p})=>Ze.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function Gt(o,t){let{fetch:e}=P.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Bn(o){let t=await Gt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return zr(e)}async function Xr(o){return(await Gt(o)).json()}async function Rn(o){return new Float32Array(await(await Gt(o)).arrayBuffer())}var _o=b(g());function Ke(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let n=o.split("/").filter(i=>i),a=o.endsWith(".json")?n[n.length-1]:e,s=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${a}`:`${s}/${a}`}}async function Jr(o,t){let{manifestUri:e,modelBaseUri:r}=Ke(o,t),n=await Xr(e);return _o.io.loadWeights(n,r)}function $n(o,t,e=!1){let{width:r,height:n}=e?Ht(t):t;return o.width=r,o.height=n,{width:r,height:n}}var Nt=b(g());var gt=b(g());var S=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:n}=this.traversePropertyPath(t);r[n].dispose(),r[n]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof gt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof gt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=gt.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await Jr(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=P.getEnv(),{manifestUri:r,modelBaseUri:n}=Ke(t,this.getDefaultModelName()),a=m=>Promise.all(m.map(p=>e(p).then(d=>d.buffer))),s=gt.io.weightsLoaderFactory(a),i=JSON.parse((await e(r)).toString()),c=await s(i,n);this.loadFromWeightMap(c)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((a,s)=>{if(!a.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:a.nextObj,objProp:s,nextObj:a.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof gt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var C=b(g());var ie=b(g());function O(o,t,e){return ie.tidy(()=>{let r=ie.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=ie.add(r,t.bias),r})}function Qe(o,t,e=!1){return C.tidy(()=>{let r=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):O(o,t.conv0,[2,2])),n=O(r,t.conv1,[1,1]),a=C.relu(C.add(r,n)),s=O(a,t.conv2,[1,1]);return C.relu(C.add(r,C.add(n,s)))})}function Le(o,t,e=!1,r=!0){return C.tidy(()=>{let n=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):O(o,t.conv0,r?[2,2]:[1,1])),a=O(n,t.conv1,[1,1]),s=C.relu(C.add(n,a)),i=O(s,t.conv2,[1,1]),c=C.relu(C.add(n,C.add(a,i))),m=O(c,t.conv3,[1,1]);return C.relu(C.add(n,C.add(a,C.add(i,m))))})}var Ct=b(g());function zt(o,t,e="same",r=!1){return Ct.tidy(()=>{let n=Ct.add(Ct.conv2d(o,t.filters,[1,1],e),t.bias);return r?Ct.relu(n):n})}function W(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var tr=b(g());function ce(o,t){return(e,r,n,a)=>{let s=tr.tensor4d(o(e*r*n*n),[n,n,e,r]),i=tr.tensor1d(o(r));return t.push({paramPath:`${a}/filters`},{paramPath:`${a}/bias`}),{filters:s,bias:i}}}var er=b(g());function rr(o,t){return(e,r,n)=>{let a=er.tensor2d(o(e*r),[e,r]),s=er.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:a,bias:s}}}var ke=b(g());var or=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function me(o,t){return(e,r,n)=>{let a=ke.tensor4d(o(3*3*e),[3,3,e,1]),s=ke.tensor4d(o(e*r),[1,1,e,r]),i=ke.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new or(a,s,i)}}function pe(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new or(e,r,n)}}function j(o,t){return(e,r,n)=>{let a=o[e];if(!Bt(a,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${a}`);return t.push({originalPath:e,paramPath:n||e}),a}}function B(o){let t=o;function e(n){let a=t.slice(0,n);return t=t.slice(n),a}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function nr(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c,m=!1){let p=m?e(s,i,3,`${c}/conv0`):r(s,i,`${c}/conv0`),d=r(i,i,`${c}/conv1`),u=r(i,i,`${c}/conv2`);return{conv0:p,conv1:d,conv2:u}}function a(s,i,c,m=!1){let{conv0:p,conv1:d,conv2:u}=n(s,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:d,conv2:u,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:a}}function wo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock4Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2"),c=n(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i,dense3:c}}}function ar(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function sr(o,t){let e=j(o,t),r=ar(e),n=pe(e);function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:d}}function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`),u=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:d,conv3:u}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Po(o){let t=[],{extractDenseBlock4Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return W(o,t),{params:r,paramMappings:t}}var Se=class extends S{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return Nt.tidy(()=>{let r=Nt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(Nt.scalar(255)),s=Le(a,e.dense0,!0);return s=Le(s,e.dense1),s=Le(s,e.dense2),s=Le(s,e.dense3),s=Nt.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Po(t)}extractParams(t){return wo(t)}};var Mo=b(g());var de=b(g());function Ae(o,t){return de.tidy(()=>de.add(de.matMul(o,t.weights),t.bias))}function Do(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:a}=B(o),i=rr(n,r)(t,e,"fc");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:r,params:{fc:i}}}function Eo(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:r("fc")};return W(o,t),{params:n,paramMappings:t}}function ir(o){let t={},e={};return Object.keys(o).forEach(r=>{let n=r.startsWith("fc")?e:t;n[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var We=class extends S{constructor(t,e){super(t);this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return Mo.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t;return Ae(r.as2D(r.shape[0],-1),e.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return Do(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Eo(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),n=r*e+r,a=t.slice(0,t.length-n),s=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(s)}};var qr=["neutral","happy","sad","angry","fearful","disgusted","surprised"],It=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);qr.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return qr.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var cr=class extends We{constructor(t=new Se){super("FaceExpressionNet",t)}forwardInput(t){return ue.tidy(()=>ue.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await E(t))}async predictExpressions(t){let e=await E(t),r=await this.forwardInput(e),n=await Promise.all(ue.unstack(r).map(async s=>{let i=await s.data();return s.dispose(),i}));r.dispose();let a=n.map(s=>new It(s));return e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Zr(o){return o.expressions instanceof It}function mr(o,t){return{...o,...{expressions:t}}}function On(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(a=>{let s=a instanceof It?a:Zr(a)?a.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=s.asSortedArray().filter(d=>d.probability>e),m=pt(a)?a.detection.box.bottomLeft:r||new x(0,0);new Mt(c.map(d=>`${d.expression} (${Rt(d.probability)})`),m).draw(o)})}function Vt(o){return pt(o)&&o.landmarks instanceof V&&o.unshiftedLandmarks instanceof V&&o.alignedRect instanceof M}function jn(o){let t=(i,c,m,p)=>Math.atan2(p-c,m-i)%Math.PI,e=i=>i*180/Math.PI,r={roll:void 0,pitch:void 0,yaw:void 0};if(!o||!o._positions||o._positions.length!==68)return r;let n=o._positions;r.roll=-t(n[36]._x,n[36]._y,n[45]._x,n[45]._y),r.pitch=t(0,Math.abs(n[0]._x-n[30]._x)/n[30]._x,Math.PI,Math.abs(n[16]._x-n[30]._x)/n[30]._x);let a=n.reduce((i,c)=>ii>c._y?i:c._y,-Infinity);return r.yaw=Math.PI*(o._imgDims._height/(s-a)/1.4-1),r}function le(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:a}=o.detection,s=new M(o.detection.score,n.rescale(a.reverse()),a),i=jn(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s,angle:i}}}var Kr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:a,pointSize:s,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=s||2,this.lineColor=a||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},Qr=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new Kr(e)}draw(t){let e=$(t),{drawLines:r,drawPoints:n,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof ne&&(e.strokeStyle=s,e.lineWidth=a,ft(e,this.faceLandmarks.getJawOutline()),ft(e,this.faceLandmarks.getLeftEyeBrow()),ft(e,this.faceLandmarks.getRightEyeBrow()),ft(e,this.faceLandmarks.getNose()),ft(e,this.faceLandmarks.getLeftEye(),!0),ft(e,this.faceLandmarks.getRightEye(),!0),ft(e,this.faceLandmarks.getMouth(),!0)),n){e.strokeStyle=c,e.fillStyle=c;let m=p=>{e.beginPath(),e.arc(p.x,p.y,i,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(m)}}};function Hn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof V?r:Vt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new Qr(n).draw(o)})}var No="1.0.1";var ut=b(g());var I=b(g());function Yn(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c){let m=r(s,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),d=e(s,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:d}}function a(s,i){let c=r(s,s,`${i}/separable_conv0`),m=r(s,s,`${i}/separable_conv1`),p=r(s,s,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:a}}function Io(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=B(o),{extractConvParams:a,extractSeparableConvParams:s,extractReductionBlockParams:i,extractMainBlockParams:c}=Yn(r,e),m=a(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),d=i(64,128,"entry_flow/reduction_block_1"),u={conv_in:m,reduction_block_0:p,reduction_block_1:d},l={};ct(t,0,1).forEach(y=>{l[`main_block_${y}`]=c(128,`middle_flow/main_block_${y}`)});let v=i(128,256,"exit_flow/reduction_block"),w=s(256,512,"exit_flow/separable_conv"),h={reduction_block:v,separable_conv:w};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:u,middle_flow:l,exit_flow:h}}}function Gn(o,t){let e=j(o,t),r=ar(e),n=pe(e);function a(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=r(`${i}/expansion_conv`);return{separable_conv0:c,separable_conv1:m,expansion_conv:p}}function s(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=n(`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}}function Lo(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}=Gn(o,e),i=r("entry_flow/conv_in"),c=a("entry_flow/reduction_block_0"),m=a("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},d={};ct(t,0,1).forEach(w=>{d[`main_block_${w}`]=s(`middle_flow/main_block_${w}`)});let u=a("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),v={reduction_block:u,separable_conv:l};return W(o,e),{params:{entry_flow:p,middle_flow:d,exit_flow:v},paramMappings:e}}function ko(o,t,e){return I.add(I.conv2d(o,t.filters,e,"same"),t.bias)}function to(o,t,e=!0){let r=e?I.relu(o):o;return r=O(r,t.separable_conv0,[1,1]),r=O(I.relu(r),t.separable_conv1,[1,1]),r=I.maxPool(r,[3,3],[2,2],"same"),r=I.add(r,ko(o,t.expansion_conv,[2,2])),r}function zn(o,t){let e=O(I.relu(o),t.separable_conv0,[1,1]);return e=O(I.relu(e),t.separable_conv1,[1,1]),e=O(I.relu(e),t.separable_conv2,[1,1]),e=I.add(e,o),e}var eo=class extends S{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyXception - load model before inference");return I.tidy(()=>{let r=I.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(I.scalar(256)),s=I.relu(ko(a,e.entry_flow.conv_in,[2,2]));return s=to(s,e.entry_flow.reduction_block_0,!1),s=to(s,e.entry_flow.reduction_block_1),ct(this._numMainBlocks,0,1).forEach(i=>{s=zn(s,e.middle_flow[`main_block_${i}`])}),s=to(s,e.exit_flow.reduction_block),s=I.relu(O(s,e.exit_flow.separable_conv,[1,1])),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return Lo(t,this._numMainBlocks)}extractParams(t){return Io(t,this._numMainBlocks)}};function So(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),n=rr(e,t),a=n(512,1,"fc/age"),s=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:a,gender:s}}}}function Ao(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return W(o,t),{params:n,paramMappings:t}}var vt;(function(o){o.FEMALE="female",o.MALE="male"})(vt||(vt={}));var pr=class extends S{constructor(t=new eo(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return ut.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t,n=ut.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),a=Ae(n,e.fc.age).as1D(),s=Ae(n,e.fc.gender);return{age:a,gender:s}})}forwardInput(t){return ut.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:ut.softmax(r)}})}async forward(t){return this.forwardInput(await E(t))}async predictAgeAndGender(t){let e=await E(t),r=await this.forwardInput(e),n=ut.unstack(r.age),a=ut.unstack(r.gender),s=n.map((c,m)=>({ageTensor:c,genderTensor:a[m]})),i=await Promise.all(s.map(async({ageTensor:c,genderTensor:m})=>{let p=(await c.data())[0],d=(await m.data())[0],u=d>.5,l=u?vt.MALE:vt.FEMALE,v=u?d:1-d;return c.dispose(),m.dispose(),{age:p,gender:l,genderProbability:v}}));return r.age.dispose(),r.gender.dispose(),e.isBatchInput?i:i[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return So(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Ao(r)}extractParams(t){let e=512*1+1+(512*2+2),r=t.slice(0,t.length-e),n=t.slice(t.length-e);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(n)}};var H=b(g());var Be=class extends We{postProcess(t,e,r){let n=r.map(({width:s,height:i})=>{let c=e/Math.max(i,s);return{width:s*c,height:i*c}}),a=n.length;return H.tidy(()=>{let s=(d,u)=>H.stack([H.fill([68],d,"float32"),H.fill([68],u,"float32")],1).as2D(1,136).as1D(),i=(d,u)=>{let{width:l,height:v}=n[d];return u(l,v)?Math.abs(l-v)/2:0},c=d=>i(d,(u,l)=>ui(d,(u,l)=>ls(c(u),m(u))))).div(H.stack(Array.from(Array(a),(d,u)=>s(n[u].width,n[u].height))))})}forwardInput(t){return H.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,n])=>({height:r,width:n})))})}async forward(t){return this.forwardInput(await E(t))}async detectLandmarks(t){let e=await E(t),r=H.tidy(()=>H.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(a,s)=>{let i=Array.from(await a.data()),c=i.filter((p,d)=>ze(d)),m=i.filter((p,d)=>!ze(d));return new ne(Array(68).fill(0).map((p,d)=>new x(c[d],m[d])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var fe=class extends Be{constructor(t=new Se){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var Lt=b(g());function Wo(o){let t=[],{extractDenseBlock3Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return W(o,t),{params:r,paramMappings:t}}function Bo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock3Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i}}}var ro=class extends S{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return Lt.tidy(()=>{let r=Lt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(Lt.scalar(255)),s=Qe(a,e.dense0,!0);return s=Qe(s,e.dense1),s=Qe(s,e.dense2),s=Lt.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Wo(t)}extractParams(t){return Bo(t)}};var dr=class extends Be{constructor(t=new ro){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Ro=class extends fe{};var U=b(g());var he=b(g());var ur=b(g());function $o(o,t){return ur.add(ur.mul(o,t.weights),t.biases)}function oo(o,t,e,r,n="same"){let{filters:a,bias:s}=t.conv,i=he.conv2d(o,a,e,n);return i=he.add(i,s),i=$o(i,t.scale),r?he.relu(i):i}function Oo(o,t){return oo(o,t,[1,1],!0)}function no(o,t){return oo(o,t,[1,1],!1)}function lr(o,t){return oo(o,t,[2,2],!0,"valid")}var Y=b(g());function Vn(o,t){function e(i,c,m){let p=o(i),d=p.length/(c*m*m);if(Ir(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return Y.tidy(()=>Y.transpose(Y.tensor4d(p,[c,d,m,m]),[2,3,1,0]))}function r(i,c,m,p){let d=e(i,c,m),u=Y.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:u}}function n(i,c){let m=Y.tensor1d(o(i)),p=Y.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function a(i,c,m,p){let d=r(i,c,m,`${p}/conv`),u=n(c,`${p}/scale`);return{conv:d,scale:u}}function s(i,c,m,p,d=!1){let u=a((d?.5:1)*i,c,m,`${p}/conv1`),l=a(i,c,m,`${p}/conv2`);return{conv1:u,conv2:l}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function jo(o){let{extractWeights:t,getRemainingWeights:e}=B(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Vn(t,r),s=n(4704,32,7,"conv32_down"),i=a(9216,32,3,"conv32_1"),c=a(9216,32,3,"conv32_2"),m=a(9216,32,3,"conv32_3"),p=a(36864,64,3,"conv64_down",!0),d=a(36864,64,3,"conv64_1"),u=a(36864,64,3,"conv64_2"),l=a(36864,64,3,"conv64_3"),v=a(147456,128,3,"conv128_down",!0),w=a(147456,128,3,"conv128_1"),h=a(147456,128,3,"conv128_2"),y=a(589824,256,3,"conv256_down",!0),T=a(589824,256,3,"conv256_1"),F=a(589824,256,3,"conv256_2"),L=a(589824,256,3,"conv256_down_out"),G=Y.tidy(()=>Y.transpose(Y.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:s,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:d,conv64_2:u,conv64_3:l,conv128_down:v,conv128_1:w,conv128_2:h,conv256_down:y,conv256_1:T,conv256_2:F,conv256_down_out:L,fc:G},paramMappings:r}}function Un(o,t){let e=j(o,t);function r(s){let i=e(`${s}/scale/weights`,1),c=e(`${s}/scale/biases`,1);return{weights:i,biases:c}}function n(s){let i=e(`${s}/conv/filters`,4),c=e(`${s}/conv/bias`,1),m=r(s);return{conv:{filters:i,bias:c},scale:m}}function a(s){return{conv1:n(`${s}/conv1`),conv2:n(`${s}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:a}}function Ho(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Un(o,t),n=e("conv32_down"),a=r("conv32_1"),s=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),d=r("conv64_3"),u=r("conv128_down"),l=r("conv128_1"),v=r("conv128_2"),w=r("conv256_down"),h=r("conv256_1"),y=r("conv256_2"),T=r("conv256_down_out"),{fc:F}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Nr(F))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${F}`);let L={conv32_down:n,conv32_1:a,conv32_2:s,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:d,conv128_down:u,conv128_1:l,conv128_2:v,conv256_down:w,conv256_1:h,conv256_2:y,conv256_down_out:T,fc:F};return W(o,t),{params:L,paramMappings:t}}var R=b(g());function nt(o,t){let e=Oo(o,t.conv1);return e=no(e,t.conv2),e=R.add(e,o),e=R.relu(e),e}function Re(o,t){let e=lr(o,t.conv1);e=no(e,t.conv2);let r=R.avgPool(o,2,2,"valid"),n=R.zeros(r.shape),a=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let i=[...e.shape];i[1]=1;let c=R.zeros(i);e=R.concat([e,c],1);let m=[...e.shape];m[2]=1;let p=R.zeros(m);e=R.concat([e,p],2)}return r=a?R.concat([r,n],3):r,e=R.add(r,e),e=R.relu(e),e}var xe=class extends S{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return U.tidy(()=>{let r=U.cast(t.toBatchTensor(150,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(U.scalar(256)),s=lr(a,e.conv32_down);s=U.maxPool(s,3,2,"valid"),s=nt(s,e.conv32_1),s=nt(s,e.conv32_2),s=nt(s,e.conv32_3),s=Re(s,e.conv64_down),s=nt(s,e.conv64_1),s=nt(s,e.conv64_2),s=nt(s,e.conv64_3),s=Re(s,e.conv128_down),s=nt(s,e.conv128_1),s=nt(s,e.conv128_2),s=Re(s,e.conv256_down),s=nt(s,e.conv256_1),s=nt(s,e.conv256_2),s=Re(s,e.conv256_down_out);let i=s.mean([1,2]);return U.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await E(t))}async computeFaceDescriptor(t){var a;if((a=t==null?void 0:t.shape)==null?void 0:a.some(s=>s<=0))return new Float32Array(128);let e=await E(t),r=U.tidy(()=>U.unstack(this.forwardInput(e))),n=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Ho(t)}extractParams(t){return jo(t)}};function Xn(o){let t=new xe;return t.extractWeights(o),t}function fr(o,t){return{...o,...{descriptor:t}}}function Jn(o){return typeof o.age=="number"}function hr(o,t){return{...o,...{age:t}}}function qn(o){return(o.gender===vt.MALE||o.gender===vt.FEMALE)&&ee(o.genderProbability)}function xr(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var st=b(g());var at=b(g());function Zn(o,t){function e(c,m){let p=at.tensor4d(o(3*3*c),[3,3,c,1]),d=at.tensor1d(o(c)),u=at.tensor1d(o(c)),l=at.tensor1d(o(c)),v=at.tensor1d(o(c));return t.push({paramPath:`${m}/filters`},{paramPath:`${m}/batch_norm_scale`},{paramPath:`${m}/batch_norm_offset`},{paramPath:`${m}/batch_norm_mean`},{paramPath:`${m}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:u,batch_norm_mean:l,batch_norm_variance:v}}function r(c,m,p,d,u){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),v=at.tensor1d(o(m));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${u?"batch_norm_offset":"bias"}`}),{filters:l,bias:v}}function n(c,m,p,d){let{filters:u,bias:l}=r(c,m,p,d,!0);return{filters:u,batch_norm_offset:l}}function a(c,m,p){let d=e(c,`${p}/depthwise_conv`),u=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:u}}function s(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=a(32,64,"mobilenetv1/conv_1"),p=a(64,128,"mobilenetv1/conv_2"),d=a(128,128,"mobilenetv1/conv_3"),u=a(128,256,"mobilenetv1/conv_4"),l=a(256,256,"mobilenetv1/conv_5"),v=a(256,512,"mobilenetv1/conv_6"),w=a(512,512,"mobilenetv1/conv_7"),h=a(512,512,"mobilenetv1/conv_8"),y=a(512,512,"mobilenetv1/conv_9"),T=a(512,512,"mobilenetv1/conv_10"),F=a(512,512,"mobilenetv1/conv_11"),L=a(512,1024,"mobilenetv1/conv_12"),G=a(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:v,conv_7:w,conv_8:h,conv_9:y,conv_10:T,conv_11:F,conv_12:L,conv_13:G}}function i(){let c=n(1024,256,1,"prediction_layer/conv_0"),m=n(256,512,3,"prediction_layer/conv_1"),p=n(512,128,1,"prediction_layer/conv_2"),d=n(128,256,3,"prediction_layer/conv_3"),u=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),v=n(256,64,1,"prediction_layer/conv_6"),w=n(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),T=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),F=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),L=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),G=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),et=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),it=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),X=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),_t=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),wt=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),Pt=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:v,conv_7:w,box_predictor_0:{box_encoding_predictor:h,class_predictor:y},box_predictor_1:{box_encoding_predictor:T,class_predictor:F},box_predictor_2:{box_encoding_predictor:L,class_predictor:G},box_predictor_3:{box_encoding_predictor:et,class_predictor:it},box_predictor_4:{box_encoding_predictor:X,class_predictor:_t},box_predictor_5:{box_encoding_predictor:wt,class_predictor:Pt}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:i}}function Yo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=Zn(e,t),s=n(),i=a(),m={extra_dim:at.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:s,prediction_layer:i,output_layer:m},paramMappings:t}}function Kn(o,t){let e=j(o,t);function r(m,p,d){let u=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:u,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,d=`MobilenetV1/Conv2d_${m}_depthwise`,u=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,v=e(`${d}/depthwise_weights`,4,`${u}/filters`),w=e(`${d}/BatchNorm/gamma`,1,`${u}/batch_norm_scale`),h=e(`${d}/BatchNorm/beta`,1,`${u}/batch_norm_offset`),y=e(`${d}/BatchNorm/moving_mean`,1,`${u}/batch_norm_mean`),T=e(`${d}/BatchNorm/moving_variance`,1,`${u}/batch_norm_variance`);return{depthwise_conv:{filters:v,batch_norm_scale:w,batch_norm_offset:h,batch_norm_mean:y,batch_norm_variance:T},pointwise_conv:r("MobilenetV1",m,l)}}function a(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:n(1),conv_2:n(2),conv_3:n(3),conv_4:n(4),conv_5:n(5),conv_6:n(6),conv_7:n(7),conv_8:n(8),conv_9:n(9),conv_10:n(10),conv_11:n(11),conv_12:n(12),conv_13:n(13)}}function s(m,p){let d=e(`${m}/weights`,4,`${p}/filters`),u=e(`${m}/biases`,1,`${p}/bias`);return{filters:d,bias:u}}function i(m){let p=s(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),d=s(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:c}}function Go(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=Kn(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!ht(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let a={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return W(o,t),{params:a,paramMappings:t}}var yt=b(g());var kt=b(g());function q(o,t,e){return kt.tidy(()=>{let r=kt.conv2d(o,t.filters,e,"same");return r=kt.add(r,t.batch_norm_offset),kt.clipByValue(r,0,6)})}var Qn=.0010000000474974513;function ta(o,t,e){return yt.tidy(()=>{let r=yt.depthwiseConv2d(o,t.filters,e,"same");return r=yt.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Qn),yt.clipByValue(r,0,6)})}function ea(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function zo(o,t){return yt.tidy(()=>{let e,r=q(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((a,s)=>{let i=s+1,c=ea(i);r=ta(r,a.depthwise_conv,c),r=q(r,a.pointwise_conv,[1,1]),i===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function ra(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),i=Math.max(r[t][1],r[t][3]),c=Math.min(r[e][0],r[e][2]),m=Math.min(r[e][1],r[e][3]),p=Math.max(r[e][0],r[e][2]),d=Math.max(r[e][1],r[e][3]),u=(s-n)*(i-a),l=(p-c)*(d-m);if(u<=0||l<=0)return 0;let v=Math.max(n,c),w=Math.max(a,m),h=Math.min(s,p),y=Math.min(i,d),T=Math.max(h-v,0)*Math.max(y-w,0);return T/(u+l-T)}function Vo(o,t,e,r,n){let a=o.shape[0],s=Math.min(e,a),i=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>n).sort((p,d)=>d.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=s)return;let d=p.score;for(let u=m.length-1;u>=0;--u){let l=ra(o,p.boxIndex,m[u]);if(l!==0&&(p.score*=c(l),p.score<=n))break}d===p.score&&m.push(p.boxIndex)}),m}var f=b(g());function oa(o){let t=f.unstack(f.transpose(o,[1,0])),e=[f.sub(t[2],t[0]),f.sub(t[3],t[1])],r=[f.add(t[0],f.div(e[0],f.scalar(2))),f.add(t[1],f.div(e[1],f.scalar(2)))];return{sizes:e,centers:r}}function na(o,t){let{sizes:e,centers:r}=oa(o),n=f.unstack(f.transpose(t,[1,0])),a=f.div(f.mul(f.exp(f.div(n[2],f.scalar(5))),e[0]),f.scalar(2)),s=f.add(f.mul(f.div(n[0],f.scalar(10)),e[0]),r[0]),i=f.div(f.mul(f.exp(f.div(n[3],f.scalar(5))),e[1]),f.scalar(2)),c=f.add(f.mul(f.div(n[1],f.scalar(10)),e[1]),r[1]);return f.transpose(f.stack([f.sub(s,a),f.sub(c,i),f.add(s,a),f.add(c,i)]),[1,0])}function Uo(o,t,e){return f.tidy(()=>{let r=o.shape[0],n=na(f.reshape(f.tile(e.extra_dim,[r,1,1]),[-1,4]),f.reshape(o,[-1,4]));n=f.reshape(n,[r,n.shape[0]/r,4]);let a=f.sigmoid(f.slice(t,[0,0,1],[-1,-1,-1])),s=f.slice(a,[0,0,0],[-1,-1,1]);s=f.reshape(s,[r,s.shape[1]]);let i=f.unstack(n),c=f.unstack(s);return{boxes:i,scores:c}})}var Oe=b(g());var $e=b(g());function Ut(o,t){return $e.tidy(()=>{let e=o.shape[0],r=$e.reshape(zt(o,t.box_encoding_predictor),[e,-1,1,4]),n=$e.reshape(zt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Xo(o,t,e){return Oe.tidy(()=>{let r=q(o,e.conv_0,[1,1]),n=q(r,e.conv_1,[2,2]),a=q(n,e.conv_2,[1,1]),s=q(a,e.conv_3,[2,2]),i=q(s,e.conv_4,[1,1]),c=q(i,e.conv_5,[2,2]),m=q(c,e.conv_6,[1,1]),p=q(m,e.conv_7,[2,2]),d=Ut(t,e.box_predictor_0),u=Ut(o,e.box_predictor_1),l=Ut(n,e.box_predictor_2),v=Ut(s,e.box_predictor_3),w=Ut(c,e.box_predictor_4),h=Ut(p,e.box_predictor_5),y=Oe.concat([d.boxPredictionEncoding,u.boxPredictionEncoding,l.boxPredictionEncoding,v.boxPredictionEncoding,w.boxPredictionEncoding,h.boxPredictionEncoding],1),T=Oe.concat([d.classPrediction,u.classPrediction,l.classPrediction,v.classPrediction,w.classPrediction,h.classPrediction],1);return{boxPredictions:y,classPredictions:T}})}var Z=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var Xt=class extends S{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return st.tidy(()=>{let r=st.cast(t.toBatchTensor(512,!1),"float32"),n=st.sub(st.mul(r,st.scalar(.007843137718737125)),st.scalar(1)),a=zo(n,e.mobilenetv1),{boxPredictions:s,classPredictions:i}=Xo(a.out,a.conv11,e.prediction_layer);return Uo(s,i,e.output_layer)})}async forward(t){return this.forwardInput(await E(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new Z(e),a=await E(t),{boxes:s,scores:i}=this.forwardInput(a),c=s[0],m=i[0];for(let F=1;F{let[L,G]=[Math.max(0,y[F][0]),Math.min(1,y[F][2])].map(X=>X*h),[et,it]=[Math.max(0,y[F][1]),Math.min(1,y[F][3])].map(X=>X*w);return new M(p[F],new oe(et,L,it-et,G-L),{height:a.getInputHeight(0),width:a.getInputWidth(0)})});return c.dispose(),m.dispose(),T}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Go(t)}extractParams(t){return Yo(t)}};function Jo(o){let t=new Xt;return t.extractWeights(o),t}function aa(o){return Jo(o)}var qo=class extends Xt{};var Zo=.4,Ko=[new x(.738768,.874946),new x(2.42204,2.65704),new x(4.30971,7.04493),new x(10.246,4.59428),new x(12.6868,11.8741)],Qo=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],tn=[117.001,114.697,97.404],en="tiny_yolov2_model",rn="tiny_yolov2_separable_conv_model";var N=b(g());var br=o=>typeof o=="number";function ao(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!br(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>br(t.x)&&br(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(br)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=b(g());var K=b(g());function be(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function Ft(o,t){return Q.tidy(()=>{let e=Q.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Q.conv2d(e,t.conv.filters,[1,1],"valid"),e=Q.sub(e,t.bn.sub),e=Q.mul(e,t.bn.truediv),e=Q.add(e,t.conv.bias),be(e)})}var St=b(g());function Tt(o,t){return St.tidy(()=>{let e=St.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=St.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=St.add(e,t.bias),be(e)})}var so=b(g());function sa(o,t){let e=ce(o,t);function r(s,i){let c=so.tensor1d(o(s)),m=so.tensor1d(o(s));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(s,i,c){let m=e(s,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let a=me(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}}function on(o,t,e,r){let{extractWeights:n,getRemainingWeights:a}=B(o),s=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=sa(n,s),p;if(t.withSeparableConvs){let[d,u,l,v,w,h,y,T,F]=r,L=t.isFirstLayerConv2d?i(d,u,3,"conv0"):m(d,u,"conv0"),G=m(u,l,"conv1"),et=m(l,v,"conv2"),it=m(v,w,"conv3"),X=m(w,h,"conv4"),_t=m(h,y,"conv5"),wt=T?m(y,T,"conv6"):void 0,Pt=F?m(T,F,"conv7"):void 0,te=i(F||T||y,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:_t,conv6:wt,conv7:Pt,conv8:te}}else{let[d,u,l,v,w,h,y,T,F]=r,L=c(d,u,"conv0"),G=c(u,l,"conv1"),et=c(l,v,"conv2"),it=c(v,w,"conv3"),X=c(w,h,"conv4"),_t=c(h,y,"conv5"),wt=c(y,T,"conv6"),Pt=c(T,F,"conv7"),te=i(F,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:_t,conv6:wt,conv7:Pt,conv8:te}}if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:p,paramMappings:s}}function ia(o,t){let e=j(o,t);function r(i){let c=e(`${i}/sub`,1),m=e(`${i}/truediv`,1);return{sub:c,truediv:m}}function n(i){let c=e(`${i}/filters`,4),m=e(`${i}/bias`,1);return{filters:c,bias:m}}function a(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let s=pe(e);return{extractConvParams:n,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function nn(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}=ia(o,e),s;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:i>7?a("conv6"):void 0,conv7:i>8?a("conv7"):void 0,conv8:r("conv8")}}else s={conv0:n("conv0"),conv1:n("conv1"),conv2:n("conv2"),conv3:n("conv3"),conv4:n("conv4"),conv5:n("conv5"),conv6:n("conv6"),conv7:n("conv7"),conv8:r("conv8")};return W(o,e),{params:s,paramMappings:e}}var lt=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var io=class extends S{constructor(t){super("TinyYolov2");ao(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,e){let r=Ft(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=Ft(r,e.conv6),r=Ft(r,e.conv7),zt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?be(zt(t,e.conv0,"valid",!1)):Tt(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?Tt(r,e.conv6):r,r=e.conv7?Tt(r,e.conv7):r,zt(r,e.conv8,"valid",!1)}forwardInput(t,e){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return N.tidy(()=>{let n=N.cast(t.toBatchTensor(e,!1),"float32");return n=this.config.meanRgb?ot(n,this.config.meanRgb):n,n=n.div(N.scalar(256)),this.config.withSeparableConvs?this.runMobilenet(n,r):this.runTinyYolov2(n,r)})}async forward(t,e){return this.forwardInput(await E(t),e)}async detect(t,e={}){let{inputSize:r,scoreThreshold:n}=new lt(e),a=await E(t),s=await this.forwardInput(a,r),i=N.tidy(()=>N.unstack(s)[0].expandDims()),c={width:a.getInputWidth(0),height:a.getInputHeight(0)},m=await this.extractBoxes(i,a.getReshapedInputDimensions(0),n);s.dispose(),i.dispose();let p=m.map(h=>h.box),d=m.map(h=>h.score),u=m.map(h=>h.classScore),l=m.map(h=>this.config.classes[h.label]);return Ar(p.map(h=>h.rescale(r)),d,this.config.iouThreshold,!0).map(h=>new Dt(d[h],u[h],l[h],p[h],c))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return nn(t,this.config)}extractParams(t){let e=this.config.filterSizes||io.DEFAULT_FILTER_SIZES,r=e?e.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return on(t,this.config,this.boxEncodingSize,e)}async extractBoxes(t,e,r){let{width:n,height:a}=e,s=Math.max(n,a),i=s/n,c=s/a,m=t.shape[1],p=this.config.anchors.length,[d,u,l]=N.tidy(()=>{let y=t.reshape([m,m,p,this.boxEncodingSize]),T=y.slice([0,0,0,0],[m,m,p,4]),F=y.slice([0,0,0,4],[m,m,p,1]),L=this.withClassScores?N.softmax(y.slice([0,0,0,5],[m,m,p,this.config.classes.length]),3):N.scalar(0);return[T,F,L]}),v=[],w=await u.array(),h=await d.array();for(let y=0;yr){let G=(T+De(h[y][T][F][0]))/m*i,et=(y+De(h[y][T][F][1]))/m*c,it=Math.exp(h[y][T][F][2])*this.config.anchors[F].x/m*i,X=Math.exp(h[y][T][F][3])*this.config.anchors[F].y/m*c,_t=G-it/2,wt=et-X/2,Pt={row:y,col:T,anchor:F},{classScore:te,label:lo}=this.withClassScores?await this.extractPredictedClass(l,Pt):{classScore:1,label:0};v.push({box:new re(_t,wt,_t+it,wt+X),score:L,classScore:L*te,label:lo,...Pt})}}return d.dispose(),u.dispose(),l.dispose(),v}async extractPredictedClass(t,e){let{row:r,col:n,anchor:a}=e,s=await t.array();return Array(this.config.classes.length).fill(0).map((i,c)=>s[r][n][a][c]).map((i,c)=>({classScore:i,label:c})).reduce((i,c)=>i.classScore>c.classScore?i:c)}},ge=io;ge.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var ve=class extends ge{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:Zo,classes:["face"],...t?{anchors:Qo,meanRgb:tn}:{anchors:Ko,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?rn:en}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function ca(o,t=!0){let e=new ve(t);return e.extractWeights(o),e}var gr=class extends lt{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var tt=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var je=b(g());var co=b(g());async function Jt(o,t,e,r,n=({alignedRect:a})=>a){let a=o.map(c=>Vt(c)?n(c):c.detection),s=r||(t instanceof co.Tensor?await se(t,a):await ae(t,a)),i=await e(s);return s.forEach(c=>c instanceof co.Tensor&&c.dispose()),i}async function ye(o,t,e,r,n){return Jt([o],t,async a=>e(a[0]),r,n)}var an=.4,sn=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],cn=[117.001,114.697,97.404];var Fe=class extends ge{constructor(){let t={withSeparableConvs:!0,iouThreshold:an,classes:["face"],anchors:sn,meanRgb:cn,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var _={ssdMobilenetv1:new Xt,tinyFaceDetector:new Fe,tinyYolov2:new ve,faceLandmark68Net:new fe,faceLandmark68TinyNet:new dr,faceRecognitionNet:new xe,faceExpressionNet:new cr,ageGenderNet:new pr},mn=(o,t)=>_.ssdMobilenetv1.locateFaces(o,t),ma=(o,t)=>_.tinyFaceDetector.locateFaces(o,t),pa=(o,t)=>_.tinyYolov2.locateFaces(o,t),pn=o=>_.faceLandmark68Net.detectLandmarks(o),da=o=>_.faceLandmark68TinyNet.detectLandmarks(o),ua=o=>_.faceRecognitionNet.computeFaceDescriptor(o),la=o=>_.faceExpressionNet.predictExpressions(o),fa=o=>_.ageGenderNet.predictAgeAndGender(o),dn=o=>_.ssdMobilenetv1.load(o),ha=o=>_.tinyFaceDetector.load(o),xa=o=>_.tinyYolov2.load(o),ba=o=>_.faceLandmark68Net.load(o),ga=o=>_.faceLandmark68TinyNet.load(o),va=o=>_.faceRecognitionNet.load(o),ya=o=>_.faceExpressionNet.load(o),Fa=o=>_.ageGenderNet.load(o),Ta=dn,_a=mn,wa=pn;var mo=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},we=class extends mo{async run(){let t=await this.parentTask,e=await Jt(t,this.input,async r=>Promise.all(r.map(n=>_.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>mr(r,e[n]))}withAgeAndGender(){return new Te(this,this.input)}},Pe=class extends mo{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>_.faceExpressionNet.predictExpressions(r),this.extractedFaces);return mr(t,e)}withAgeAndGender(){return new _e(this,this.input)}},Kt=class extends we{withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Qt=class extends Pe{withAgeAndGender(){return new Zt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var po=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},Te=class extends po{async run(){let t=await this.parentTask,e=await Jt(t,this.input,async r=>Promise.all(r.map(n=>_.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:a,gender:s,genderProbability:i}=e[n];return hr(xr(r,s,i),a)})}withFaceExpressions(){return new we(this,this.input)}},_e=class extends po{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await ye(t,this.input,a=>_.ageGenderNet.predictAgeAndGender(a),this.extractedFaces);return hr(xr(t,r,n),e)}withFaceExpressions(){return new Pe(this,this.input)}},qt=class extends Te{withFaceExpressions(){return new Kt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Zt=class extends _e{withFaceExpressions(){return new Qt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var vr=class extends tt{constructor(t,e){super();this.parentTask=t;this.input=e}},At=class extends vr{async run(){let t=await this.parentTask;return(await Jt(t,this.input,r=>Promise.all(r.map(n=>_.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>fr(t[n],r))}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}},Wt=class extends vr{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>_.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return fr(t,e)}withFaceExpressions(){return new Qt(this,this.input)}withAgeAndGender(){return new Zt(this,this.input)}};var yr=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?_.faceLandmark68TinyNet:_.faceLandmark68Net}},Fr=class extends yr{async run(){let t=await this.parentTask,e=t.map(a=>a.detection),r=this.input instanceof je.Tensor?await se(this.input,e):await ae(this.input,e),n=await Promise.all(r.map(a=>this.landmarkNet.detectLandmarks(a)));return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),t.map((a,s)=>le(a,n[s]))}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Tr=class extends yr{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof je.Tensor?await se(this.input,[e]):await ae(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),le(t,n)}withFaceExpressions(){return new Qt(this,this.input)}withAgeAndGender(){return new Zt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var _r=class extends tt{constructor(t,e=new Z){super();this.input=t;this.options=e}},He=class extends _r{async run(){let{input:t,options:e}=this,r;if(e instanceof gr)r=_.tinyFaceDetector.locateFaces(t,e);else if(e instanceof Z)r=_.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof lt)r=_.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise(async t=>{let e=await this.run();t(e.map(r=>Ot({},r)))})}withFaceLandmarks(t=!1){return new Fr(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new we(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Te(this.runAndExtendWithFaceDetections(),this.input)}},wr=class extends _r{async run(){let t=await new He(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?Ot({},e):void 0)})}withFaceLandmarks(t=!1){return new Tr(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Pe(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new _e(this.runAndExtendWithFaceDetection(),this.input)}};function Pa(o,t=new Z){return new wr(o,t)}function Pr(o,t=new Z){return new He(o,t)}async function un(o,t){return Pr(o,new Z(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function Da(o,t={}){return Pr(o,new lt(t)).withFaceLandmarks().withFaceDescriptors()}var Ea=un;function uo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((n,a)=>n-r[a]).reduce((n,a)=>n+a**2,0))}var Dr=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1,a=()=>`person ${n++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof xt)return s;if(s instanceof Float32Array)return new xt(a(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new xt(a(),[s.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>uo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new Ee(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>xt.fromJSON(r));return new Dr(e,t.distanceThreshold)}};function Ma(o){let t=new Fe;return t.extractWeights(o),t}function ln(o,t){let{width:e,height:r}=new A(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(n=>ln(n,{width:e,height:r}));if(Vt(o)){let n=o.detection.forSize(e,r),a=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return le(Ot(o,n),a)}return pt(o)?Ot(o,o.detection.forSize(e,r)):o instanceof V||o instanceof M?o.forSize(e,r):o}var Na=typeof process!="undefined",Ia=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",La={faceapi:No,node:Na,browser:Ia}; //# sourceMappingURL=face-api.node-cpu.js.map diff --git a/dist/face-api.node-cpu.json b/dist/face-api.node-cpu.json deleted file mode 100644 index a5922a4..0000000 --- a/dist/face-api.node-cpu.json +++ /dev/null @@ -1,3073 +0,0 @@ -{ - "inputs": { - "dist/tfjs.esm.js": { - "bytes": 726, - "imports": [] - }, - "src/draw/drawContour.ts": { - "bytes": 539, - "imports": [] - }, - "src/classes/Dimensions.ts": { - "bytes": 745, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/utils/index.ts": { - "bytes": 1793, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/Point.ts": { - "bytes": 925, - "imports": [] - }, - "src/classes/Box.ts": { - "bytes": 5690, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Point.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/BoundingBox.ts": { - "bytes": 402, - "imports": [ - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/ObjectDetection.ts": { - "bytes": 1424, - "imports": [ - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceDetection.ts": { - "bytes": 656, - "imports": [ - { - "path": "src/classes/ObjectDetection.ts", - "kind": "import-statement" - } - ] - }, - "src/ops/iou.ts": { - "bytes": 473, - "imports": [] - }, - "src/ops/minBbox.ts": { - "bytes": 498, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ops/nonMaxSuppression.ts": { - "bytes": 924, - "imports": [ - { - "path": "src/ops/iou.ts", - "kind": "import-statement" - } - ] - }, - "src/ops/normalize.ts": { - "bytes": 483, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ops/padToSquare.ts": { - "bytes": 1684, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ops/shuffleArray.ts": { - "bytes": 273, - "imports": [] - }, - "src/ops/index.ts": { - "bytes": 331, - "imports": [ - { - "path": "src/ops/iou.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/minBbox.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/nonMaxSuppression.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/normalize.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/padToSquare.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/shuffleArray.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/Rect.ts": { - "bytes": 359, - "imports": [ - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceLandmarks.ts": { - "bytes": 4199, - "imports": [ - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Point.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Rect.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceLandmarks5.ts": { - "bytes": 360, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceLandmarks68.ts": { - "bytes": 915, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceMatch.ts": { - "bytes": 578, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/LabeledBox.ts": { - "bytes": 645, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/LabeledFaceDescriptors.ts": { - "bytes": 1072, - "imports": [] - }, - "src/classes/PredictedBox.ts": { - "bytes": 952, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledBox.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/index.ts": { - "bytes": 436, - "imports": [ - { - "path": "src/classes/BoundingBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks5.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks68.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceMatch.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledFaceDescriptors.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/ObjectDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Point.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/PredictedBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Rect.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceDetection.ts": { - "bytes": 486, - "imports": [ - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - } - ] - }, - "src/env/createBrowserEnv.ts": { - "bytes": 636, - "imports": [] - }, - "src/env/createFileSystem.ts": { - "bytes": 654, - "imports": [] - }, - "src/env/createNodejsEnv.ts": { - "bytes": 1202, - "imports": [ - { - "path": "src/env/createFileSystem.ts", - "kind": "import-statement" - } - ] - }, - "src/env/isBrowser.ts": { - "bytes": 354, - "imports": [] - }, - "src/env/isNodejs.ts": { - "bytes": 295, - "imports": [] - }, - "src/env/types.ts": { - "bytes": 570, - "imports": [] - }, - "src/env/index.ts": { - "bytes": 1817, - "imports": [ - { - "path": "src/env/createBrowserEnv.ts", - "kind": "import-statement" - }, - { - "path": "src/env/createFileSystem.ts", - "kind": "import-statement" - }, - { - "path": "src/env/createNodejsEnv.ts", - "kind": "import-statement" - }, - { - "path": "src/env/isBrowser.ts", - "kind": "import-statement" - }, - { - "path": "src/env/isNodejs.ts", - "kind": "import-statement" - }, - { - "path": "src/env/types.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/resolveInput.ts": { - "bytes": 200, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/getContext2dOrThrow.ts": { - "bytes": 673, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/DrawTextField.ts": { - "bytes": 4094, - "imports": [ - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/DrawBox.ts": { - "bytes": 1831, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawTextField.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/drawDetections.ts": { - "bytes": 1128, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawBox.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/isMediaLoaded.ts": { - "bytes": 277, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/awaitMediaLoaded.ts": { - "bytes": 963, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaLoaded.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/bufferToImage.ts": { - "bytes": 687, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/getMediaDimensions.ts": { - "bytes": 529, - "imports": [ - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/createCanvas.ts": { - "bytes": 1139, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaLoaded.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/imageTensorToCanvas.ts": { - "bytes": 615, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/isMediaElement.ts": { - "bytes": 228, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/imageToSquare.ts": { - "bytes": 1296, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/NetInput.ts": { - "bytes": 5508, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/padToSquare.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageToSquare.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/toNetInput.ts": { - "bytes": 2115, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/awaitMediaLoaded.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaElement.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/NetInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/extractFaces.ts": { - "bytes": 1804, - "imports": [ - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageTensorToCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/toNetInput.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/extractFaceTensors.ts": { - "bytes": 1730, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchOrThrow.ts": { - "bytes": 390, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchImage.ts": { - "bytes": 451, - "imports": [ - { - "path": "src/dom/bufferToImage.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchJson.ts": { - "bytes": 155, - "imports": [ - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchNetWeights.ts": { - "bytes": 200, - "imports": [ - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - } - ] - }, - "src/common/getModelUris.ts": { - "bytes": 1052, - "imports": [] - }, - "src/dom/loadWeightMap.ts": { - "bytes": 552, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/getModelUris.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchJson.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/matchDimensions.ts": { - "bytes": 401, - "imports": [ - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/types.ts": { - "bytes": 383, - "imports": [] - }, - "src/dom/index.ts": { - "bytes": 696, - "imports": [ - { - "path": "src/dom/awaitMediaLoaded.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/bufferToImage.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/extractFaces.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/extractFaceTensors.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchImage.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchJson.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchNetWeights.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageTensorToCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageToSquare.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaElement.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaLoaded.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/loadWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/matchDimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/NetInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/toNetInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/types.ts", - "kind": "import-statement" - } - ] - }, - "src/NeuralNetwork.ts": { - "bytes": 5291, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/getModelUris.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/common/depthwiseSeparableConv.ts": { - "bytes": 414, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/denseBlock.ts": { - "bytes": 2038, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/depthwiseSeparableConv.ts", - "kind": "import-statement" - } - ] - }, - "src/common/convLayer.ts": { - "bytes": 428, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/common/disposeUnusedWeightTensors.ts": { - "bytes": 290, - "imports": [] - }, - "src/common/extractConvParamsFactory.ts": { - "bytes": 766, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/common/extractFCParamsFactory.ts": { - "bytes": 711, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/common/types.ts": { - "bytes": 797, - "imports": [] - }, - "src/common/extractSeparableConvParamsFactory.ts": { - "bytes": 1533, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/types.ts", - "kind": "import-statement" - } - ] - }, - "src/common/extractWeightEntryFactory.ts": { - "bytes": 579, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/common/extractWeightsFactory.ts": { - "bytes": 441, - "imports": [] - }, - "src/common/index.ts": { - "bytes": 399, - "imports": [ - { - "path": "src/common/convLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/common/depthwiseSeparableConv.ts", - "kind": "import-statement" - }, - { - "path": "src/common/disposeUnusedWeightTensors.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractFCParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractSeparableConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightEntryFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/getModelUris.ts", - "kind": "import-statement" - }, - { - "path": "src/common/types.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractorsFactory.ts": { - "bytes": 1587, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParams.ts": { - "bytes": 1030, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractorsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/common/loadConvParamsFactory.ts": { - "bytes": 466, - "imports": [] - }, - "src/faceFeatureExtractor/loadParamsFactory.ts": { - "bytes": 1547, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/common/loadConvParamsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParamsFromWeightMap.ts": { - "bytes": 838, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/loadParamsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/FaceFeatureExtractor.ts": { - "bytes": 1806, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/denseBlock.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParamsFromWeightMap.ts", - "kind": "import-statement" - } - ] - }, - "src/common/fullyConnectedLayer.ts": { - "bytes": 263, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/faceProcessor/extractParams.ts": { - "bytes": 759, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceProcessor/extractParamsFromWeightMap.ts": { - "bytes": 823, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceProcessor/util.ts": { - "bytes": 421, - "imports": [] - }, - "src/faceProcessor/FaceProcessor.ts": { - "bytes": 3034, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/fullyConnectedLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/util.ts", - "kind": "import-statement" - } - ] - }, - "src/faceExpressionNet/FaceExpressions.ts": { - "bytes": 869, - "imports": [] - }, - "src/faceExpressionNet/FaceExpressionNet.ts": { - "bytes": 1664, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/FaceFeatureExtractor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/FaceProcessor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/FaceExpressions.ts", - "kind": "import-statement" - } - ] - }, - "src/faceExpressionNet/index.ts": { - "bytes": 72, - "imports": [ - { - "path": "src/faceExpressionNet/FaceExpressionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/FaceExpressions.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceExpressions.ts": { - "bytes": 524, - "imports": [ - { - "path": "src/faceExpressionNet/FaceExpressions.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/drawFaceExpressions.ts": { - "bytes": 1612, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawTextField.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceLandmarks.ts": { - "bytes": 3592, - "imports": [ - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/DrawFaceLandmarks.ts": { - "bytes": 3528, - "imports": [ - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks68.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/drawContour.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/index.ts": { - "bytes": 201, - "imports": [ - { - "path": "src/draw/drawContour.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/drawDetections.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/drawFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawBox.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawTextField.ts", - "kind": "import-statement" - } - ] - }, - "package.json": { - "bytes": 2040, - "imports": [] - }, - "src/xception/extractParams.ts": { - "bytes": 3440, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/xception/extractParamsFromWeightMap.ts": { - "bytes": 3130, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/common/loadConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/xception/TinyXception.ts": { - "bytes": 3143, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/xception/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/xception/extractParamsFromWeightMap.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/extractParams.ts": { - "bytes": 778, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/extractParamsFromWeightMap.ts": { - "bytes": 891, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/types.ts": { - "bytes": 525, - "imports": [] - }, - "src/ageGenderNet/AgeGenderNet.ts": { - "bytes": 4269, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/fullyConnectedLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/util.ts", - "kind": "import-statement" - }, - { - "path": "src/xception/TinyXception.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/types.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/index.ts": { - "bytes": 57, - "imports": [ - { - "path": "src/ageGenderNet/AgeGenderNet.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/types.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/FaceLandmark68NetBase.ts": { - "bytes": 3717, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks68.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/FaceProcessor.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/FaceLandmark68Net.ts": { - "bytes": 622, - "imports": [ - { - "path": "src/faceFeatureExtractor/FaceFeatureExtractor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68NetBase.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts": { - "bytes": 802, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/loadParamsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParamsTiny.ts": { - "bytes": 960, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractorsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts": { - "bytes": 1816, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/denseBlock.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParamsTiny.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/FaceLandmark68TinyNet.ts": { - "bytes": 659, - "imports": [ - { - "path": "src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68NetBase.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/index.ts": { - "bytes": 194, - "imports": [ - { - "path": "src/faceLandmarkNet/FaceLandmark68Net.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68Net.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68TinyNet.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/scaleLayer.ts": { - "bytes": 229, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/convLayer.ts": { - "bytes": 850, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/scaleLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/extractParams.ts": { - "bytes": 4907, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/extractParamsFromWeightMap.ts": { - "bytes": 3098, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/residualLayer.ts": { - "bytes": 1342, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/convLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/FaceRecognitionNet.ts": { - "bytes": 2959, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/convLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/residualLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/index.ts": { - "bytes": 252, - "imports": [ - { - "path": "src/faceRecognitionNet/FaceRecognitionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/FaceRecognitionNet.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceDescriptor.ts": { - "bytes": 301, - "imports": [] - }, - "src/factories/WithAge.ts": { - "bytes": 334, - "imports": [] - }, - "src/factories/WithGender.ts": { - "bytes": 618, - "imports": [ - { - "path": "src/ageGenderNet/types.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/index.ts": { - "bytes": 208, - "imports": [ - { - "path": "src/factories/WithFaceDescriptor.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithAge.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithGender.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/extractParams.ts": { - "bytes": 8330, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/extractParamsFromWeightMap.ts": { - "bytes": 5775, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/pointwiseConvLayer.ts": { - "bytes": 391, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/mobileNetV1.ts": { - "bytes": 1811, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/pointwiseConvLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/nonMaxSuppression.ts": { - "bytes": 2170, - "imports": [] - }, - "src/ssdMobilenetv1/outputLayer.ts": { - "bytes": 2183, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/boxPredictionLayer.ts": { - "bytes": 598, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/predictionLayer.ts": { - "bytes": 2055, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/boxPredictionLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/pointwiseConvLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/SsdMobilenetv1Options.ts": { - "bytes": 881, - "imports": [] - }, - "src/ssdMobilenetv1/SsdMobilenetv1.ts": { - "bytes": 3652, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/mobileNetV1.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/nonMaxSuppression.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/outputLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/predictionLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/index.ts": { - "bytes": 471, - "imports": [ - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/const.ts": { - "bytes": 704, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/config.ts": { - "bytes": 1701, - "imports": [] - }, - "src/tinyYolov2/leaky.ts": { - "bytes": 238, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/convWithBatchNorm.ts": { - "bytes": 530, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/leaky.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/depthwiseSeparableConv.ts": { - "bytes": 500, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/leaky.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/extractParams.ts": { - "bytes": 3911, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractSeparableConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/extractParamsFromWeightMap.ts": { - "bytes": 3282, - "imports": [ - { - "path": "src/common/disposeUnusedWeightTensors.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractSeparableConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightEntryFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/TinyYolov2Options.ts": { - "bytes": 913, - "imports": [] - }, - "src/tinyYolov2/TinyYolov2Base.ts": { - "bytes": 9606, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/BoundingBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/ObjectDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/nonMaxSuppression.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/normalize.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/config.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/convWithBatchNorm.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/depthwiseSeparableConv.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/leaky.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Options.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/TinyYolov2.ts": { - "bytes": 1801, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/const.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Base.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/types.ts": { - "bytes": 952, - "imports": [] - }, - "src/tinyYolov2/index.ts": { - "bytes": 347, - "imports": [ - { - "path": "src/tinyYolov2/TinyYolov2.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Options.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/config.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/types.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/TinyFaceDetectorOptions.ts": { - "bytes": 272, - "imports": [ - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/ComposableTask.ts": { - "bytes": 322, - "imports": [] - }, - "src/globalApi/extractFacesAndComputeResults.ts": { - "bytes": 2037, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/const.ts": { - "bytes": 354, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/TinyFaceDetector.ts": { - "bytes": 1470, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Base.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/const.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/nets.ts": { - "bytes": 6336, - "imports": [ - { - "path": "src/ageGenderNet/AgeGenderNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/FaceExpressionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68Net.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68TinyNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/FaceRecognitionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetector.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/PredictFaceExpressionsTask.ts": { - "bytes": 3827, - "imports": [ - { - "path": "src/factories/WithFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/extractFacesAndComputeResults.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/PredictAgeAndGenderTask.ts": { - "bytes": 4008, - "imports": [ - { - "path": "src/factories/WithAge.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithGender.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/extractFacesAndComputeResults.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/ComputeFaceDescriptorsTasks.ts": { - "bytes": 3215, - "imports": [ - { - "path": "src/factories/WithFaceDescriptor.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/extractFacesAndComputeResults.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/DetectFaceLandmarksTasks.ts": { - "bytes": 4002, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/DetectFacesTasks.ts": { - "bytes": 4124, - "imports": [ - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetectorOptions.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFaceLandmarksTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/detectFaces.ts": { - "bytes": 624, - "imports": [ - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFacesTasks.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/allFaces.ts": { - "bytes": 1056, - "imports": [ - { - "path": "src/ssdMobilenetv1/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/detectFaces.ts", - "kind": "import-statement" - } - ] - }, - "src/euclideanDistance.ts": { - "bytes": 398, - "imports": [] - }, - "src/globalApi/FaceMatcher.ts": { - "bytes": 2992, - "imports": [ - { - "path": "src/classes/FaceMatch.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledFaceDescriptors.ts", - "kind": "import-statement" - }, - { - "path": "src/euclideanDistance.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/types.ts": { - "bytes": 556, - "imports": [] - }, - "src/globalApi/index.ts": { - "bytes": 300, - "imports": [ - { - "path": "src/globalApi/allFaces.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/detectFaces.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFacesTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFaceLandmarksTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/FaceMatcher.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/types.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/index.ts": { - "bytes": 285, - "imports": [ - { - "path": "src/tinyFaceDetector/TinyFaceDetector.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetector.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetectorOptions.ts", - "kind": "import-statement" - } - ] - }, - "src/resizeResults.ts": { - "bytes": 1519, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/index.ts": { - "bytes": 987, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/draw/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "package.json", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/index.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - }, - { - "path": "src/euclideanDistance.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/resizeResults.ts", - "kind": "import-statement" - } - ] - } - }, - "outputs": { - "dist/face-api.node-cpu.js.map": { - "imports": [], - "exports": [], - "inputs": {}, - "bytes": 315807 - }, - "dist/face-api.node-cpu.js": { - "imports": [], - "exports": [], - "entryPoint": "src/index.ts", - "inputs": { - "dist/tfjs.esm.js": { - "bytesInOutput": 589 - }, - "src/env/isNodejs.ts": { - "bytesInOutput": 176 - }, - "src/index.ts": { - "bytesInOutput": 3015 - }, - "src/draw/index.ts": { - "bytesInOutput": 277 - }, - "src/draw/drawContour.ts": { - "bytesInOutput": 213 - }, - "src/utils/index.ts": { - "bytesInOutput": 1011 - }, - "src/classes/Dimensions.ts": { - "bytesInOutput": 335 - }, - "src/classes/Point.ts": { - "bytesInOutput": 433 - }, - "src/classes/Box.ts": { - "bytesInOutput": 2646 - }, - "src/classes/BoundingBox.ts": { - "bytesInOutput": 92 - }, - "src/classes/index.ts": { - "bytesInOutput": 0 - }, - "src/classes/ObjectDetection.ts": { - "bytesInOutput": 624 - }, - "src/classes/FaceDetection.ts": { - "bytesInOutput": 153 - }, - "src/ops/iou.ts": { - "bytesInOutput": 215 - }, - "src/ops/index.ts": { - "bytesInOutput": 81 - }, - "src/ops/minBbox.ts": { - "bytesInOutput": 204 - }, - "src/ops/nonMaxSuppression.ts": { - "bytesInOutput": 282 - }, - "src/ops/normalize.ts": { - "bytesInOutput": 255 - }, - "src/ops/padToSquare.ts": { - "bytesInOutput": 332 - }, - "src/ops/shuffleArray.ts": { - "bytesInOutput": 132 - }, - "src/classes/Rect.ts": { - "bytesInOutput": 87 - }, - "src/classes/FaceLandmarks.ts": { - "bytesInOutput": 1393 - }, - "src/classes/FaceLandmarks5.ts": { - "bytesInOutput": 107 - }, - "src/classes/FaceLandmarks68.ts": { - "bytesInOutput": 464 - }, - "src/classes/FaceMatch.ts": { - "bytesInOutput": 201 - }, - "src/classes/LabeledBox.ts": { - "bytesInOutput": 250 - }, - "src/classes/LabeledFaceDescriptors.ts": { - "bytesInOutput": 595 - }, - "src/classes/PredictedBox.ts": { - "bytesInOutput": 385 - }, - "src/factories/WithFaceDetection.ts": { - "bytesInOutput": 94 - }, - "src/env/createBrowserEnv.ts": { - "bytesInOutput": 445 - }, - "src/env/createFileSystem.ts": { - "bytesInOutput": 247 - }, - "src/env/createNodejsEnv.ts": { - "bytesInOutput": 600 - }, - "src/env/isBrowser.ts": { - "bytesInOutput": 267 - }, - "src/env/index.ts": { - "bytesInOutput": 794 - }, - "src/dom/resolveInput.ts": { - "bytesInOutput": 84 - }, - "src/dom/getContext2dOrThrow.ts": { - "bytesInOutput": 312 - }, - "src/draw/DrawTextField.ts": { - "bytesInOutput": 1484 - }, - "src/draw/DrawBox.ts": { - "bytesInOutput": 581 - }, - "src/draw/drawDetections.ts": { - "bytesInOutput": 220 - }, - "src/faceExpressionNet/FaceExpressionNet.ts": { - "bytesInOutput": 567 - }, - "src/dom/isMediaLoaded.ts": { - "bytesInOutput": 114 - }, - "src/dom/awaitMediaLoaded.ts": { - "bytesInOutput": 423 - }, - "src/dom/index.ts": { - "bytesInOutput": 0 - }, - "src/dom/bufferToImage.ts": { - "bytesInOutput": 386 - }, - "src/dom/getMediaDimensions.ts": { - "bytesInOutput": 180 - }, - "src/dom/createCanvas.ts": { - "bytesInOutput": 389 - }, - "src/dom/imageTensorToCanvas.ts": { - "bytesInOutput": 200 - }, - "src/dom/isMediaElement.ts": { - "bytesInOutput": 110 - }, - "src/dom/NetInput.ts": { - "bytesInOutput": 2214 - }, - "src/dom/imageToSquare.ts": { - "bytesInOutput": 442 - }, - "src/dom/toNetInput.ts": { - "bytesInOutput": 773 - }, - "src/dom/extractFaces.ts": { - "bytesInOutput": 485 - }, - "src/dom/extractFaceTensors.ts": { - "bytesInOutput": 442 - }, - "src/dom/fetchOrThrow.ts": { - "bytesInOutput": 176 - }, - "src/dom/fetchImage.ts": { - "bytesInOutput": 218 - }, - "src/dom/fetchJson.ts": { - "bytesInOutput": 48 - }, - "src/dom/fetchNetWeights.ts": { - "bytesInOutput": 79 - }, - "src/dom/loadWeightMap.ts": { - "bytesInOutput": 123 - }, - "src/common/getModelUris.ts": { - "bytesInOutput": 473 - }, - "src/dom/matchDimensions.ts": { - "bytesInOutput": 101 - }, - "src/faceFeatureExtractor/FaceFeatureExtractor.ts": { - "bytesInOutput": 621 - }, - "src/NeuralNetwork.ts": { - "bytesInOutput": 2654 - }, - "src/faceFeatureExtractor/denseBlock.ts": { - "bytesInOutput": 568 - }, - "src/common/depthwiseSeparableConv.ts": { - "bytesInOutput": 157 - }, - "src/common/convLayer.ts": { - "bytesInOutput": 141 - }, - "src/common/index.ts": { - "bytesInOutput": 0 - }, - "src/common/disposeUnusedWeightTensors.ts": { - "bytesInOutput": 91 - }, - "src/common/extractConvParamsFactory.ts": { - "bytesInOutput": 195 - }, - "src/common/extractFCParamsFactory.ts": { - "bytesInOutput": 185 - }, - "src/common/extractSeparableConvParamsFactory.ts": { - "bytesInOutput": 396 - }, - "src/common/types.ts": { - "bytesInOutput": 94 - }, - "src/common/extractWeightEntryFactory.ts": { - "bytesInOutput": 188 - }, - "src/common/extractWeightsFactory.ts": { - "bytesInOutput": 146 - }, - "src/faceFeatureExtractor/extractorsFactory.ts": { - "bytesInOutput": 377 - }, - "src/faceFeatureExtractor/extractParams.ts": { - "bytesInOutput": 343 - }, - "src/common/loadConvParamsFactory.ts": { - "bytesInOutput": 97 - }, - "src/faceFeatureExtractor/loadParamsFactory.ts": { - "bytesInOutput": 388 - }, - "src/faceFeatureExtractor/extractParamsFromWeightMap.ts": { - "bytesInOutput": 185 - }, - "src/faceProcessor/FaceProcessor.ts": { - "bytesInOutput": 1037 - }, - "src/common/fullyConnectedLayer.ts": { - "bytesInOutput": 89 - }, - "src/faceProcessor/extractParams.ts": { - "bytesInOutput": 214 - }, - "src/faceProcessor/extractParamsFromWeightMap.ts": { - "bytesInOutput": 177 - }, - "src/faceProcessor/util.ts": { - "bytesInOutput": 144 - }, - "src/faceExpressionNet/FaceExpressions.ts": { - "bytesInOutput": 369 - }, - "src/faceExpressionNet/index.ts": { - "bytesInOutput": 0 - }, - "src/factories/WithFaceExpressions.ts": { - "bytesInOutput": 99 - }, - "src/draw/drawFaceExpressions.ts": { - "bytesInOutput": 420 - }, - "src/factories/WithFaceLandmarks.ts": { - "bytesInOutput": 829 - }, - "src/draw/DrawFaceLandmarks.ts": { - "bytesInOutput": 1225 - }, - "package.json": { - "bytesInOutput": 15 - }, - "src/ageGenderNet/AgeGenderNet.ts": { - "bytesInOutput": 1688 - }, - "src/xception/TinyXception.ts": { - "bytesInOutput": 1265 - }, - "src/xception/extractParams.ts": { - "bytesInOutput": 1234 - }, - "src/xception/extractParamsFromWeightMap.ts": { - "bytesInOutput": 1047 - }, - "src/ageGenderNet/extractParams.ts": { - "bytesInOutput": 258 - }, - "src/ageGenderNet/extractParamsFromWeightMap.ts": { - "bytesInOutput": 209 - }, - "src/ageGenderNet/types.ts": { - "bytesInOutput": 67 - }, - "src/ageGenderNet/index.ts": { - "bytesInOutput": 0 - }, - "src/faceLandmarkNet/FaceLandmark68NetBase.ts": { - "bytesInOutput": 1177 - }, - "src/faceLandmarkNet/FaceLandmark68Net.ts": { - "bytesInOutput": 167 - }, - "src/faceLandmarkNet/index.ts": { - "bytesInOutput": 26 - }, - "src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts": { - "bytesInOutput": 619 - }, - "src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts": { - "bytesInOutput": 166 - }, - "src/faceFeatureExtractor/extractParamsTiny.ts": { - "bytesInOutput": 312 - }, - "src/faceLandmarkNet/FaceLandmark68TinyNet.ts": { - "bytesInOutput": 176 - }, - "src/faceRecognitionNet/FaceRecognitionNet.ts": { - "bytesInOutput": 1156 - }, - "src/faceRecognitionNet/convLayer.ts": { - "bytesInOutput": 277 - }, - "src/faceRecognitionNet/scaleLayer.ts": { - "bytesInOutput": 75 - }, - "src/faceRecognitionNet/extractParams.ts": { - "bytesInOutput": 1803 - }, - "src/faceRecognitionNet/extractParamsFromWeightMap.ts": { - "bytesInOutput": 1113 - }, - "src/faceRecognitionNet/residualLayer.ts": { - "bytesInOutput": 466 - }, - "src/faceRecognitionNet/index.ts": { - "bytesInOutput": 57 - }, - "src/factories/WithFaceDescriptor.ts": { - "bytesInOutput": 48 - }, - "src/factories/index.ts": { - "bytesInOutput": 0 - }, - "src/factories/WithAge.ts": { - "bytesInOutput": 86 - }, - "src/factories/WithGender.ts": { - "bytesInOutput": 155 - }, - "src/ssdMobilenetv1/SsdMobilenetv1.ts": { - "bytesInOutput": 1224 - }, - "src/ssdMobilenetv1/extractParams.ts": { - "bytesInOutput": 3588 - }, - "src/ssdMobilenetv1/extractParamsFromWeightMap.ts": { - "bytesInOutput": 2463 - }, - "src/ssdMobilenetv1/mobileNetV1.ts": { - "bytesInOutput": 715 - }, - "src/ssdMobilenetv1/pointwiseConvLayer.ts": { - "bytesInOutput": 153 - }, - "src/ssdMobilenetv1/nonMaxSuppression.ts": { - "bytesInOutput": 792 - }, - "src/ssdMobilenetv1/outputLayer.ts": { - "bytesInOutput": 927 - }, - "src/ssdMobilenetv1/predictionLayer.ts": { - "bytesInOutput": 721 - }, - "src/ssdMobilenetv1/boxPredictionLayer.ts": { - "bytesInOutput": 223 - }, - "src/ssdMobilenetv1/SsdMobilenetv1Options.ts": { - "bytesInOutput": 518 - }, - "src/ssdMobilenetv1/index.ts": { - "bytesInOutput": 111 - }, - "src/tinyYolov2/const.ts": { - "bytesInOutput": 348 - }, - "src/tinyYolov2/TinyYolov2Base.ts": { - "bytesInOutput": 3656 - }, - "src/tinyYolov2/config.ts": { - "bytesInOutput": 1012 - }, - "src/tinyYolov2/convWithBatchNorm.ts": { - "bytesInOutput": 215 - }, - "src/tinyYolov2/leaky.ts": { - "bytesInOutput": 128 - }, - "src/tinyYolov2/depthwiseSeparableConv.ts": { - "bytesInOutput": 203 - }, - "src/tinyYolov2/extractParams.ts": { - "bytesInOutput": 1290 - }, - "src/tinyYolov2/extractParamsFromWeightMap.ts": { - "bytesInOutput": 972 - }, - "src/tinyYolov2/TinyYolov2Options.ts": { - "bytesInOutput": 556 - }, - "src/tinyYolov2/TinyYolov2.ts": { - "bytesInOutput": 545 - }, - "src/tinyYolov2/index.ts": { - "bytesInOutput": 65 - }, - "src/tinyFaceDetector/TinyFaceDetectorOptions.ts": { - "bytesInOutput": 97 - }, - "src/globalApi/ComposableTask.ts": { - "bytesInOutput": 127 - }, - "src/globalApi/DetectFaceLandmarksTasks.ts": { - "bytesInOutput": 1133 - }, - "src/globalApi/extractFacesAndComputeResults.ts": { - "bytesInOutput": 300 - }, - "src/tinyFaceDetector/const.ts": { - "bytesInOutput": 168 - }, - "src/tinyFaceDetector/TinyFaceDetector.ts": { - "bytesInOutput": 495 - }, - "src/globalApi/nets.ts": { - "bytesInOutput": 844 - }, - "src/globalApi/PredictFaceExpressionsTask.ts": { - "bytesInOutput": 852 - }, - "src/globalApi/PredictAgeAndGenderTask.ts": { - "bytesInOutput": 957 - }, - "src/globalApi/ComputeFaceDescriptorsTasks.ts": { - "bytesInOutput": 752 - }, - "src/globalApi/DetectFacesTasks.ts": { - "bytesInOutput": 1335 - }, - "src/globalApi/detectFaces.ts": { - "bytesInOutput": 84 - }, - "src/globalApi/allFaces.ts": { - "bytesInOutput": 209 - }, - "src/globalApi/index.ts": { - "bytesInOutput": 0 - }, - "src/euclideanDistance.ts": { - "bytesInOutput": 205 - }, - "src/globalApi/FaceMatcher.ts": { - "bytesInOutput": 1333 - }, - "src/tinyFaceDetector/index.ts": { - "bytesInOutput": 57 - }, - "src/resizeResults.ts": { - "bytesInOutput": 443 - } - }, - "bytes": 83346 - } - } -} diff --git a/dist/face-api.node-gpu.js b/dist/face-api.node-gpu.js index 29a45fd..3aec920 100644 --- a/dist/face-api.node-gpu.js +++ b/dist/face-api.node-gpu.js @@ -5,5 +5,5 @@ author: ' */ -var fn=Object.create,Ye=Object.defineProperty,hn=Object.getPrototypeOf,xn=Object.prototype.hasOwnProperty,bn=Object.getOwnPropertyNames,gn=Object.getOwnPropertyDescriptor;var Er=o=>Ye(o,"__esModule",{value:!0});var xo=(o,t)=>()=>(t||(t={exports:{}},o(t.exports,t)),t.exports),Ge=(o,t)=>{for(var e in t)Ye(o,e,{get:t[e],enumerable:!0})},vn=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of bn(t))!xn.call(o,r)&&r!=="default"&&Ye(o,r,{get:()=>t[r],enumerable:!(e=gn(t,r))||e.enumerable});return o},b=o=>vn(Er(Ye(o!=null?fn(hn(o)):{},"default",o&&o.__esModule&&"default"in o?{get:()=>o.default,enumerable:!0}:{value:o,enumerable:!0})),o);var g=xo(Mr=>{var yn=Object.create,Cr=Object.defineProperty,Fn=Object.getPrototypeOf,Tn=Object.prototype.hasOwnProperty,Pn=Object.getOwnPropertyNames,_n=Object.getOwnPropertyDescriptor,bo=o=>Cr(o,"__esModule",{value:!0}),go=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Pn(t))!Tn.call(o,r)&&r!=="default"&&Cr(o,r,{get:()=>t[r],enumerable:!(e=_n(t,r))||e.enumerable});return o},wn=o=>go(bo(Cr(o!=null?yn(Fn(o)):{},"default",o&&o.__esModule&&"default"in o?{get:()=>o.default,enumerable:!0}:{value:o,enumerable:!0})),o);bo(Mr);go(Mr,wn(require("@tensorflow/tfjs-node-gpu")))});var Po=xo((Ln,To)=>{Er(Ln);Ge(Ln,{isNodejs:()=>kn});function kn(){return typeof global=="object"&&!0&&typeof To!="undefined"&&typeof process!="undefined"&&!!process.version}});Er(exports);Ge(exports,{AgeGenderNet:()=>pr,BoundingBox:()=>re,Box:()=>D,ComposableTask:()=>tt,ComputeAllFaceDescriptorsTask:()=>At,ComputeFaceDescriptorsTaskBase:()=>vr,ComputeSingleFaceDescriptorTask:()=>Wt,DetectAllFaceLandmarksTask:()=>Fr,DetectAllFacesTask:()=>He,DetectFaceLandmarksTaskBase:()=>yr,DetectFacesTaskBase:()=>Pr,DetectSingleFaceLandmarksTask:()=>Tr,DetectSingleFaceTask:()=>_r,Dimensions:()=>A,FACE_EXPRESSION_LABELS:()=>Zr,FaceDetection:()=>M,FaceDetectionNet:()=>qo,FaceExpressionNet:()=>cr,FaceExpressions:()=>It,FaceLandmark68Net:()=>fe,FaceLandmark68TinyNet:()=>dr,FaceLandmarkNet:()=>Ro,FaceLandmarks:()=>V,FaceLandmarks5:()=>yo,FaceLandmarks68:()=>ne,FaceMatch:()=>Ee,FaceMatcher:()=>Dr,FaceRecognitionNet:()=>xe,Gender:()=>vt,LabeledBox:()=>Me,LabeledFaceDescriptors:()=>xt,NetInput:()=>bt,NeuralNetwork:()=>S,ObjectDetection:()=>Dt,Point:()=>x,PredictedBox:()=>Fo,Rect:()=>oe,SsdMobilenetv1:()=>Xt,SsdMobilenetv1Options:()=>Z,TinyFaceDetector:()=>Fe,TinyFaceDetectorOptions:()=>gr,TinyYolov2:()=>ve,TinyYolov2Options:()=>lt,allFaces:()=>Ea,allFacesSsdMobilenetv1:()=>un,allFacesTinyYolov2:()=>Da,awaitMediaLoaded:()=>zr,bufferToImage:()=>Vr,computeFaceDescriptor:()=>ua,createCanvas:()=>Yt,createCanvasFromMedia:()=>Ie,createFaceDetectionNet:()=>aa,createFaceRecognitionNet:()=>Xn,createSsdMobilenetv1:()=>Jo,createTinyFaceDetector:()=>Ma,createTinyYolov2:()=>ca,detectAllFaces:()=>wr,detectFaceLandmarks:()=>pn,detectFaceLandmarksTiny:()=>da,detectLandmarks:()=>_a,detectSingleFace:()=>wa,draw:()=>eo,env:()=>w,euclideanDistance:()=>fo,extendWithAge:()=>hr,extendWithFaceDescriptor:()=>fr,extendWithFaceDetection:()=>$t,extendWithFaceExpressions:()=>mr,extendWithFaceLandmarks:()=>le,extendWithGender:()=>xr,extractFaceTensors:()=>se,extractFaces:()=>ae,fetchImage:()=>Bn,fetchJson:()=>Jr,fetchNetWeights:()=>Rn,fetchOrThrow:()=>Gt,getContext2dOrThrow:()=>O,getMediaDimensions:()=>Ht,imageTensorToCanvas:()=>Ur,imageToSquare:()=>Xr,inverseSigmoid:()=>Mn,iou:()=>Sr,isMediaElement:()=>qe,isMediaLoaded:()=>Ne,isWithAge:()=>Jn,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>Kr,isWithFaceLandmarks:()=>Vt,isWithGender:()=>qn,loadAgeGenderModel:()=>Fa,loadFaceDetectionModel:()=>Ta,loadFaceExpressionModel:()=>ya,loadFaceLandmarkModel:()=>ba,loadFaceLandmarkTinyModel:()=>ga,loadFaceRecognitionModel:()=>va,loadSsdMobilenetv1Model:()=>dn,loadTinyFaceDetectorModel:()=>ha,loadTinyYolov2Model:()=>xa,loadWeightMap:()=>qr,locateFaces:()=>Pa,matchDimensions:()=>On,minBbox:()=>Ar,nets:()=>P,nonMaxSuppression:()=>Wr,normalize:()=>ot,padToSquare:()=>Br,predictAgeAndGender:()=>fa,recognizeFaceExpressions:()=>la,resizeResults:()=>ln,resolveInput:()=>jt,shuffleArray:()=>En,sigmoid:()=>De,ssdMobilenetv1:()=>mn,tf:()=>Ca,tinyFaceDetector:()=>ma,tinyYolov2:()=>pa,toNetInput:()=>E,utils:()=>Nr,validateConfig:()=>io,version:()=>La});var Ca=b(g());var eo={};Ge(eo,{AnchorPosition:()=>dt,DrawBox:()=>Xe,DrawBoxOptions:()=>Gr,DrawFaceLandmarks:()=>to,DrawFaceLandmarksOptions:()=>Qr,DrawTextField:()=>Mt,DrawTextFieldOptions:()=>Ce,drawContour:()=>ft,drawDetections:()=>Wn,drawFaceExpressions:()=>$n,drawFaceLandmarks:()=>Hn});function ft(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},a)=>{let s=t[a];o.moveTo(s.x,s.y),o.lineTo(r,n)}),e){let r=t[t.length-1],n=t[0];if(!r||!n)return;o.moveTo(r.x,r.y),o.lineTo(n.x,n.y)}o.stroke()}var Nr={};Ge(Nr,{computeReshapedDimensions:()=>kr,getCenterPoint:()=>Ot,isDimensions:()=>Ve,isEven:()=>ze,isFloat:()=>Lr,isTensor:()=>Bt,isTensor1D:()=>Dn,isTensor2D:()=>Ir,isTensor3D:()=>ht,isTensor4D:()=>z,isValidNumber:()=>rt,isValidProbablitiy:()=>ee,range:()=>ct,round:()=>Rt});var vo=b(g());var A=class{constructor(t,e){if(!rt(t)||!rt(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new A(1/this.width,1/this.height)}};function Bt(o,t){return o instanceof vo.Tensor&&o.shape.length===t}function Dn(o){return Bt(o,1)}function Ir(o){return Bt(o,2)}function ht(o){return Bt(o,3)}function z(o){return Bt(o,4)}function Lr(o){return o%1!=0}function ze(o){return o%2==0}function Rt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function Ve(o){return o&&o.width&&o.height}function kr({width:o,height:t},e){let r=e/Math.max(t,o);return new A(Math.round(o*r),Math.round(t*r))}function Ot(o){return o.reduce((t,e)=>t.add(e),new x(0,0)).div(new x(o.length,o.length))}function ct(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function rt(o){return!!o&&o!==Infinity&&o!==-Infinity&&!Number.isNaN(o)||o===0}function ee(o){return rt(o)&&o>=0&&o<=1}var x=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new x(this.x+t.x,this.y+t.y)}sub(t){return new x(this.x-t.x,this.y-t.y)}mul(t){return new x(this.x*t.x,this.y*t.y)}div(t){return new x(this.x/t.x,this.y/t.y)}abs(){return new x(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new x(Math.floor(this.x),Math.floor(this.y))}};var D=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(rt)}static assertIsValidBox(t,e,r=!1){if(!D.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},n=[r.left,r.top,r.right,r.bottom].every(rt),a=[r.x,r.y,r.width,r.height].every(rt);if(!a&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,i,c,m]=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];D.assertIsValidBox({x:s,y:i,width:c,height:m},"Box.constructor",e),this._x=s,this._y=i,this._width=c,this._height=m}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new x(this.left,this.top)}get topRight(){return new x(this.right,this.top)}get bottomLeft(){return new x(this.left,this.bottom)}get bottomRight(){return new x(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.round(a));return new D({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.floor(a));return new D({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,a=Math.abs(r-n);return re&&(i=-d+e+r,d=e),u>t&&(c=-u+t+n,u=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:s,edy:c,dx:a,edx:i,y:p,ey:u,x:m,ex:d,w:r,h:n}}calibrate(t){return new D({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var re=class extends D{constructor(t,e,r,n,a=!1){super({left:t,top:e,right:r,bottom:n},a)}};var Dt=class{constructor(t,e,r,n,a){this._imageDims=new A(a.width,a.height),this._score=t,this._classScore=e,this._className=r,this._box=new D(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new D(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new Dt(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class extends Dt{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:a}=super.forSize(t,e);return new M(r,n,a)}};function Sr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),n=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),a=r*n;return e?a/(o.area+t.area-a):a/Math.min(o.area,t.area)}function Ar(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:s,boxIndex:i})).sort((s,i)=>s.score-i.score).map(s=>s.boxIndex),a=[];for(;n.length>0;){let s=n.pop();a.push(s);let i=n,c=[];for(let m=0;mc[p]<=e)}return a}var mt=b(g());function ot(o,t){return mt.tidy(()=>{let[e,r,n]=t,a=mt.fill([...o.shape.slice(0,3),1],e,"float32"),s=mt.fill([...o.shape.slice(0,3),1],r,"float32"),i=mt.fill([...o.shape.slice(0,3),1],n,"float32"),c=mt.concat([a,s,i],3);return mt.sub(o,c)})}var Et=b(g());function Br(o,t=!1){return Et.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),a=Math.round(n*(t?.5:1)),s=e>r?2:1,i=u=>{let l=o.shape.slice();return l[s]=u,Et.fill(l,0,"float32")},c=i(a),m=n-c.shape[s],d=[t&&m?i(m):null,o,c].filter(u=>!!u).map(u=>Et.cast(u,"float32"));return Et.concat(d,s)})}function En(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function De(o){return 1/(1+Math.exp(-o))}function Mn(o){return Math.log(o/(1-o))}var oe=class extends D{constructor(t,e,r,n,a=!1){super({x:t,y:e,width:r,height:n},a)}};var Cn=.5,Nn=.43,In=.45,V=class{constructor(t,e,r=new x(0,0)){let{width:n,height:a}=e;this._imgDims=new A(n,a),this._shift=r,this._positions=t.map(s=>s.mul(new x(n,a)).add(r))}get shift(){return new x(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new x(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new x(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let a=t instanceof M?t.box.floor():new D(t);return this.shiftBy(a.x,a.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:n}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(n)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,n]=t,a=d=>n.sub(d).magnitude(),s=(a(e)+a(r))/2,i=Math.floor(s/In),c=Ot(t),m=Math.floor(Math.max(0,c.x-Cn*i)),p=Math.floor(Math.max(0,c.y-Nn*i));return new oe(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Ar(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var yo=class extends V{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],Ot([t[3],t[4]])]}};var ne=class extends V{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(Ot)}};var Ee=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Rt(this.distance)})`:""}`}};var Me=class extends D{static assertIsValidLabeledBox(t,e){if(D.assertIsValidBox(t,e),!rt(t.label))throw new Error(`${e} - expected property label (${t.label}) to be a number`)}constructor(t,e){super(t);this._label=e}get label(){return this._label}};var xt=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new xt(t.label,e)}};var Fo=class extends Me{static assertIsValidPredictedBox(t,e){if(Me.assertIsValidLabeledBox(t,e),!ee(t.score)||!ee(t.classScore))throw new Error(`${e} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,e,r,n){super(t,e);this._score=r,this._classScore=n}get score(){return this._score}get classScore(){return this._classScore}};function pt(o){return o.detection instanceof M}function $t(o,t){return{...o,...{detection:t}}}function Rr(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Ue(o){let t="";if(!o)try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,a)=>{o.readFile(r,(s,i)=>s?a(s):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Or(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},n=global.fetch,a=Ue();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:e,createImageElement:r,fetch:n,...a}}function $r(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var jr=b(Po()),k;function Sn(){if(!k)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return k}function Hr(o){k=o}function Yr(){return $r()?Hr(Rr()):(0,jr.isNodejs)()?Hr(Or()):null}function An(o){if(k||Yr(),!k)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=k.Canvas,Image:e=k.Image}=o;k.Canvas=t,k.Image=e,k.createCanvasElement=o.createCanvasElement||(()=>new t),k.createImageElement=o.createImageElement||(()=>new e),k.ImageData=o.ImageData||k.ImageData,k.Video=o.Video||k.Video,k.fetch=o.fetch||k.fetch,k.readFile=o.readFile||k.readFile}var w={getEnv:Sn,setEnv:Hr,initialize:Yr,createBrowserEnv:Rr,createFileSystem:Ue,createNodejsEnv:Or,monkeyPatch:An,isBrowser:$r,isNodejs:jr.isNodejs};Yr();function jt(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function O(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=jt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d");if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var dt;(function(o){o.TOP_LEFT="TOP_LEFT",o.TOP_RIGHT="TOP_RIGHT",o.BOTTOM_LEFT="BOTTOM_LEFT",o.BOTTOM_RIGHT="BOTTOM_RIGHT"})(dt||(dt={}));var Ce=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:a,fontStyle:s,padding:i}=t;this.anchorPosition=e||dt.TOP_LEFT,this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=a||14,this.fontStyle=s||"Georgia",this.padding=i||4}},Mt=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof Mt?t.text:t,this.anchor=e,this.options=new Ce(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let v=c+d.x,_=c+d.y+(l+1)*s;r.fillText(u,v,_)})}};var Gr=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:a}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let s={anchorPosition:dt.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Ce({...s,...a})}},Xe=class{constructor(t,e={}){this.box=new D(t),this.options=new Gr(e)}draw(t){let e=O(t),{boxColor:r,lineWidth:n}=this.options,{x:a,y:s,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(a,s,i,c);let{label:m}=this.options;m&&new Mt([m],{x:a-n/2,y:s},this.options.drawLabelOptions).draw(t)}};function Wn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,a=r instanceof M?r.box:pt(r)?r.detection.box:new D(r),s=n?`${Rt(n)}`:void 0;new Xe(a,{label:s}).draw(o)})}var ue=b(g());function Ne(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function zr(o){return new Promise((t,e)=>{if(o instanceof w.getEnv().Canvas||Ne(o))return t(null);function r(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),e(a))}function n(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),t(a))}o.addEventListener("load",n),o.addEventListener("error",r)})}function Vr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let n=w.getEnv().createImageElement();n.onload=()=>t(n),n.onerror=e,n.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Ht(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new A(o.naturalWidth,o.naturalHeight):o instanceof e?new A(o.videoWidth,o.videoHeight):new A(o.width,o.height)}function Yt({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function Ie(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ne(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Ht(o),a=Yt({width:r,height:n});return o instanceof e?O(a).putImageData(o,0,0):O(a).drawImage(o,0,0,r,n),a}var Je=b(g());async function Ur(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,a]=o.shape.slice(z(o)?1:0),s=Je.tidy(()=>o.as3D(r,n,a).toInt());return await Je.browser.toPixels(s,e),s.dispose(),e}function qe(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var J=b(g());function Xr(o,t,e=!1){let{Image:r,Canvas:n}=w.getEnv();if(!(o instanceof r||o instanceof n))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Yt({width:1,height:1});let a=Ht(o),s=t/Math.max(a.height,a.width),i=s*a.width,c=s*a.height,m=Yt({width:t,height:t}),p=o instanceof n?o:Ie(o),d=Math.abs(i-c)/2,u=e&&i0&&p.height>0&&O(m).drawImage(p,u,l,i,c),m}var bt=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=e,this._batchSize=t.length,t.forEach((r,n)=>{if(ht(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(z(r)){let s=r.shape[0];if(s!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${s} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let a=r instanceof w.getEnv().Canvas?r:Ie(r);this._canvases[n]=a,this._inputDimensions[n]=[a.height,a.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return ct(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return kr({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,J.tidy(()=>{let r=ct(this.batchSize,0,1).map(a=>{let s=this.getInput(a);if(s instanceof J.Tensor){let i=z(s)?s:s.expandDims();return i=Br(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=J.image.resizeBilinear(i,[t,t])),i.as3D(t,t,3)}if(s instanceof w.getEnv().Canvas)return J.browser.fromPixels(Xr(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${a}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return J.stack(r.map(a=>J.cast(a,"float32"))).as4D(this.batchSize,t,t,3)})}};async function E(o){if(o instanceof bt)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=n=>Array.isArray(o)?` at input index ${n}:`:"",r=t.map(jt);return r.forEach((n,a)=>{if(!qe(n)&&!ht(n)&&!z(n))throw typeof t[a]=="string"?new Error(`toNetInput -${e(a)} string passed, but could not resolve HTMLElement for element id ${t[a]}`):new Error(`toNetInput -${e(a)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(z(n)){let s=n.shape[0];if(s!==1)throw new Error(`toNetInput -${e(a)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>qe(n)&&zr(n))),new bt(r,Array.isArray(o))}async function ae(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let s=await E(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=s.getInput(0);r=i instanceof e?i:await Ur(i)}let n=O(r);return t.map(s=>s instanceof M?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:i,width:c,height:m})=>{let p=Yt({width:c,height:m});return c>0&&m>0&&O(p).putImageData(n.getImageData(s,i,c,m),0,0),p})}var Ze=b(g());async function se(o,t){if(!ht(o)&&!z(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(z(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return Ze.tidy(()=>{let[e,r,n]=o.shape.slice(z(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).map(({x:i,y:c,width:m,height:p})=>Ze.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function Gt(o,t){let{fetch:e}=w.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Bn(o){let t=await Gt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return Vr(e)}async function Jr(o){return(await Gt(o)).json()}async function Rn(o){return new Float32Array(await(await Gt(o)).arrayBuffer())}var _o=b(g());function Ke(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let n=o.split("/").filter(i=>i),a=o.endsWith(".json")?n[n.length-1]:e,s=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${a}`:`${s}/${a}`}}async function qr(o,t){let{manifestUri:e,modelBaseUri:r}=Ke(o,t),n=await Jr(e);return _o.io.loadWeights(n,r)}function On(o,t,e=!1){let{width:r,height:n}=e?Ht(t):t;return o.width=r,o.height=n,{width:r,height:n}}var Nt=b(g());var gt=b(g());var S=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:n}=this.traversePropertyPath(t);r[n].dispose(),r[n]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof gt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof gt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=gt.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await qr(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=w.getEnv(),{manifestUri:r,modelBaseUri:n}=Ke(t,this.getDefaultModelName()),a=m=>Promise.all(m.map(p=>e(p).then(d=>d.buffer))),s=gt.io.weightsLoaderFactory(a),i=JSON.parse((await e(r)).toString()),c=await s(i,n);this.loadFromWeightMap(c)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((a,s)=>{if(!a.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:a.nextObj,objProp:s,nextObj:a.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof gt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var C=b(g());var ie=b(g());function $(o,t,e){return ie.tidy(()=>{let r=ie.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=ie.add(r,t.bias),r})}function Qe(o,t,e=!1){return C.tidy(()=>{let r=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):$(o,t.conv0,[2,2])),n=$(r,t.conv1,[1,1]),a=C.relu(C.add(r,n)),s=$(a,t.conv2,[1,1]);return C.relu(C.add(r,C.add(n,s)))})}function Le(o,t,e=!1,r=!0){return C.tidy(()=>{let n=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):$(o,t.conv0,r?[2,2]:[1,1])),a=$(n,t.conv1,[1,1]),s=C.relu(C.add(n,a)),i=$(s,t.conv2,[1,1]),c=C.relu(C.add(n,C.add(a,i))),m=$(c,t.conv3,[1,1]);return C.relu(C.add(n,C.add(a,C.add(i,m))))})}var Ct=b(g());function zt(o,t,e="same",r=!1){return Ct.tidy(()=>{let n=Ct.add(Ct.conv2d(o,t.filters,[1,1],e),t.bias);return r?Ct.relu(n):n})}function W(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var tr=b(g());function ce(o,t){return(e,r,n,a)=>{let s=tr.tensor4d(o(e*r*n*n),[n,n,e,r]),i=tr.tensor1d(o(r));return t.push({paramPath:`${a}/filters`},{paramPath:`${a}/bias`}),{filters:s,bias:i}}}var er=b(g());function rr(o,t){return(e,r,n)=>{let a=er.tensor2d(o(e*r),[e,r]),s=er.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:a,bias:s}}}var ke=b(g());var or=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function me(o,t){return(e,r,n)=>{let a=ke.tensor4d(o(3*3*e),[3,3,e,1]),s=ke.tensor4d(o(e*r),[1,1,e,r]),i=ke.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new or(a,s,i)}}function pe(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new or(e,r,n)}}function j(o,t){return(e,r,n)=>{let a=o[e];if(!Bt(a,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${a}`);return t.push({originalPath:e,paramPath:n||e}),a}}function B(o){let t=o;function e(n){let a=t.slice(0,n);return t=t.slice(n),a}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function nr(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c,m=!1){let p=m?e(s,i,3,`${c}/conv0`):r(s,i,`${c}/conv0`),d=r(i,i,`${c}/conv1`),u=r(i,i,`${c}/conv2`);return{conv0:p,conv1:d,conv2:u}}function a(s,i,c,m=!1){let{conv0:p,conv1:d,conv2:u}=n(s,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:d,conv2:u,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:a}}function wo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock4Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2"),c=n(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i,dense3:c}}}function ar(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function sr(o,t){let e=j(o,t),r=ar(e),n=pe(e);function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:d}}function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`),u=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:d,conv3:u}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Do(o){let t=[],{extractDenseBlock4Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return W(o,t),{params:r,paramMappings:t}}var Se=class extends S{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return Nt.tidy(()=>{let r=Nt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(Nt.scalar(255)),s=Le(a,e.dense0,!0);return s=Le(s,e.dense1),s=Le(s,e.dense2),s=Le(s,e.dense3),s=Nt.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Do(t)}extractParams(t){return wo(t)}};var Co=b(g());var de=b(g());function Ae(o,t){return de.tidy(()=>de.add(de.matMul(o,t.weights),t.bias))}function Eo(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:a}=B(o),i=rr(n,r)(t,e,"fc");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:r,params:{fc:i}}}function Mo(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:r("fc")};return W(o,t),{params:n,paramMappings:t}}function ir(o){let t={},e={};return Object.keys(o).forEach(r=>{let n=r.startsWith("fc")?e:t;n[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var We=class extends S{constructor(t,e){super(t);this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return Co.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t;return Ae(r.as2D(r.shape[0],-1),e.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return Eo(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Mo(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),n=r*e+r,a=t.slice(0,t.length-n),s=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(s)}};var Zr=["neutral","happy","sad","angry","fearful","disgusted","surprised"],It=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);Zr.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return Zr.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var cr=class extends We{constructor(t=new Se){super("FaceExpressionNet",t)}forwardInput(t){return ue.tidy(()=>ue.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await E(t))}async predictExpressions(t){let e=await E(t),r=await this.forwardInput(e),n=await Promise.all(ue.unstack(r).map(async s=>{let i=await s.data();return s.dispose(),i}));r.dispose();let a=n.map(s=>new It(s));return e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Kr(o){return o.expressions instanceof It}function mr(o,t){return{...o,...{expressions:t}}}function $n(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(a=>{let s=a instanceof It?a:Kr(a)?a.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=s.asSortedArray().filter(d=>d.probability>e),m=pt(a)?a.detection.box.bottomLeft:r||new x(0,0);new Mt(c.map(d=>`${d.expression} (${Rt(d.probability)})`),m).draw(o)})}function Vt(o){return pt(o)&&o.landmarks instanceof V&&o.unshiftedLandmarks instanceof V&&o.alignedRect instanceof M}function jn(o){let t=(i,c,m,p)=>Math.atan2(p-c,m-i)%Math.PI,e=i=>i*180/Math.PI,r={roll:void 0,pitch:void 0,yaw:void 0};if(!o||!o._positions||o._positions.length!==68)return r;let n=o._positions;r.roll=-t(n[36]._x,n[36]._y,n[45]._x,n[45]._y),r.pitch=t(0,Math.abs(n[0]._x-n[30]._x)/n[30]._x,Math.PI,Math.abs(n[16]._x-n[30]._x)/n[30]._x);let a=n.reduce((i,c)=>ii>c._y?i:c._y,-Infinity);return r.yaw=Math.PI*(o._imgDims._height/(s-a)/1.4-1),r}function le(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:a}=o.detection,s=new M(o.detection.score,n.rescale(a.reverse()),a),i=jn(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s,angle:i}}}var Qr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:a,pointSize:s,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=s||2,this.lineColor=a||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},to=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new Qr(e)}draw(t){let e=O(t),{drawLines:r,drawPoints:n,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof ne&&(e.strokeStyle=s,e.lineWidth=a,ft(e,this.faceLandmarks.getJawOutline()),ft(e,this.faceLandmarks.getLeftEyeBrow()),ft(e,this.faceLandmarks.getRightEyeBrow()),ft(e,this.faceLandmarks.getNose()),ft(e,this.faceLandmarks.getLeftEye(),!0),ft(e,this.faceLandmarks.getRightEye(),!0),ft(e,this.faceLandmarks.getMouth(),!0)),n){e.strokeStyle=c,e.fillStyle=c;let m=p=>{e.beginPath(),e.arc(p.x,p.y,i,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(m)}}};function Hn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof V?r:Vt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new to(n).draw(o)})}var No="1.0.1";var ut=b(g());var I=b(g());function Yn(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c){let m=r(s,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),d=e(s,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:d}}function a(s,i){let c=r(s,s,`${i}/separable_conv0`),m=r(s,s,`${i}/separable_conv1`),p=r(s,s,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:a}}function Io(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=B(o),{extractConvParams:a,extractSeparableConvParams:s,extractReductionBlockParams:i,extractMainBlockParams:c}=Yn(r,e),m=a(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),d=i(64,128,"entry_flow/reduction_block_1"),u={conv_in:m,reduction_block_0:p,reduction_block_1:d},l={};ct(t,0,1).forEach(y=>{l[`main_block_${y}`]=c(128,`middle_flow/main_block_${y}`)});let v=i(128,256,"exit_flow/reduction_block"),_=s(256,512,"exit_flow/separable_conv"),h={reduction_block:v,separable_conv:_};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:u,middle_flow:l,exit_flow:h}}}function Gn(o,t){let e=j(o,t),r=ar(e),n=pe(e);function a(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=r(`${i}/expansion_conv`);return{separable_conv0:c,separable_conv1:m,expansion_conv:p}}function s(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=n(`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}}function Lo(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}=Gn(o,e),i=r("entry_flow/conv_in"),c=a("entry_flow/reduction_block_0"),m=a("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},d={};ct(t,0,1).forEach(_=>{d[`main_block_${_}`]=s(`middle_flow/main_block_${_}`)});let u=a("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),v={reduction_block:u,separable_conv:l};return W(o,e),{params:{entry_flow:p,middle_flow:d,exit_flow:v},paramMappings:e}}function ko(o,t,e){return I.add(I.conv2d(o,t.filters,e,"same"),t.bias)}function ro(o,t,e=!0){let r=e?I.relu(o):o;return r=$(r,t.separable_conv0,[1,1]),r=$(I.relu(r),t.separable_conv1,[1,1]),r=I.maxPool(r,[3,3],[2,2],"same"),r=I.add(r,ko(o,t.expansion_conv,[2,2])),r}function zn(o,t){let e=$(I.relu(o),t.separable_conv0,[1,1]);return e=$(I.relu(e),t.separable_conv1,[1,1]),e=$(I.relu(e),t.separable_conv2,[1,1]),e=I.add(e,o),e}var oo=class extends S{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyXception - load model before inference");return I.tidy(()=>{let r=I.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(I.scalar(256)),s=I.relu(ko(a,e.entry_flow.conv_in,[2,2]));return s=ro(s,e.entry_flow.reduction_block_0,!1),s=ro(s,e.entry_flow.reduction_block_1),ct(this._numMainBlocks,0,1).forEach(i=>{s=zn(s,e.middle_flow[`main_block_${i}`])}),s=ro(s,e.exit_flow.reduction_block),s=I.relu($(s,e.exit_flow.separable_conv,[1,1])),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return Lo(t,this._numMainBlocks)}extractParams(t){return Io(t,this._numMainBlocks)}};function So(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),n=rr(e,t),a=n(512,1,"fc/age"),s=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:a,gender:s}}}}function Ao(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return W(o,t),{params:n,paramMappings:t}}var vt;(function(o){o.FEMALE="female",o.MALE="male"})(vt||(vt={}));var pr=class extends S{constructor(t=new oo(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return ut.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t,n=ut.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),a=Ae(n,e.fc.age).as1D(),s=Ae(n,e.fc.gender);return{age:a,gender:s}})}forwardInput(t){return ut.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:ut.softmax(r)}})}async forward(t){return this.forwardInput(await E(t))}async predictAgeAndGender(t){let e=await E(t),r=await this.forwardInput(e),n=ut.unstack(r.age),a=ut.unstack(r.gender),s=n.map((c,m)=>({ageTensor:c,genderTensor:a[m]})),i=await Promise.all(s.map(async({ageTensor:c,genderTensor:m})=>{let p=(await c.data())[0],d=(await m.data())[0],u=d>.5,l=u?vt.MALE:vt.FEMALE,v=u?d:1-d;return c.dispose(),m.dispose(),{age:p,gender:l,genderProbability:v}}));return r.age.dispose(),r.gender.dispose(),e.isBatchInput?i:i[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return So(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Ao(r)}extractParams(t){let e=512*1+1+(512*2+2),r=t.slice(0,t.length-e),n=t.slice(t.length-e);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(n)}};var H=b(g());var Be=class extends We{postProcess(t,e,r){let n=r.map(({width:s,height:i})=>{let c=e/Math.max(i,s);return{width:s*c,height:i*c}}),a=n.length;return H.tidy(()=>{let s=(d,u)=>H.stack([H.fill([68],d,"float32"),H.fill([68],u,"float32")],1).as2D(1,136).as1D(),i=(d,u)=>{let{width:l,height:v}=n[d];return u(l,v)?Math.abs(l-v)/2:0},c=d=>i(d,(u,l)=>ui(d,(u,l)=>ls(c(u),m(u))))).div(H.stack(Array.from(Array(a),(d,u)=>s(n[u].width,n[u].height))))})}forwardInput(t){return H.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,n])=>({height:r,width:n})))})}async forward(t){return this.forwardInput(await E(t))}async detectLandmarks(t){let e=await E(t),r=H.tidy(()=>H.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(a,s)=>{let i=Array.from(await a.data()),c=i.filter((p,d)=>ze(d)),m=i.filter((p,d)=>!ze(d));return new ne(Array(68).fill(0).map((p,d)=>new x(c[d],m[d])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var fe=class extends Be{constructor(t=new Se){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var Lt=b(g());function Wo(o){let t=[],{extractDenseBlock3Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return W(o,t),{params:r,paramMappings:t}}function Bo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock3Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i}}}var no=class extends S{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return Lt.tidy(()=>{let r=Lt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(Lt.scalar(255)),s=Qe(a,e.dense0,!0);return s=Qe(s,e.dense1),s=Qe(s,e.dense2),s=Lt.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Wo(t)}extractParams(t){return Bo(t)}};var dr=class extends Be{constructor(t=new no){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Ro=class extends fe{};var U=b(g());var he=b(g());var ur=b(g());function Oo(o,t){return ur.add(ur.mul(o,t.weights),t.biases)}function ao(o,t,e,r,n="same"){let{filters:a,bias:s}=t.conv,i=he.conv2d(o,a,e,n);return i=he.add(i,s),i=Oo(i,t.scale),r?he.relu(i):i}function $o(o,t){return ao(o,t,[1,1],!0)}function so(o,t){return ao(o,t,[1,1],!1)}function lr(o,t){return ao(o,t,[2,2],!0,"valid")}var Y=b(g());function Vn(o,t){function e(i,c,m){let p=o(i),d=p.length/(c*m*m);if(Lr(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return Y.tidy(()=>Y.transpose(Y.tensor4d(p,[c,d,m,m]),[2,3,1,0]))}function r(i,c,m,p){let d=e(i,c,m),u=Y.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:u}}function n(i,c){let m=Y.tensor1d(o(i)),p=Y.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function a(i,c,m,p){let d=r(i,c,m,`${p}/conv`),u=n(c,`${p}/scale`);return{conv:d,scale:u}}function s(i,c,m,p,d=!1){let u=a((d?.5:1)*i,c,m,`${p}/conv1`),l=a(i,c,m,`${p}/conv2`);return{conv1:u,conv2:l}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function jo(o){let{extractWeights:t,getRemainingWeights:e}=B(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Vn(t,r),s=n(4704,32,7,"conv32_down"),i=a(9216,32,3,"conv32_1"),c=a(9216,32,3,"conv32_2"),m=a(9216,32,3,"conv32_3"),p=a(36864,64,3,"conv64_down",!0),d=a(36864,64,3,"conv64_1"),u=a(36864,64,3,"conv64_2"),l=a(36864,64,3,"conv64_3"),v=a(147456,128,3,"conv128_down",!0),_=a(147456,128,3,"conv128_1"),h=a(147456,128,3,"conv128_2"),y=a(589824,256,3,"conv256_down",!0),T=a(589824,256,3,"conv256_1"),F=a(589824,256,3,"conv256_2"),L=a(589824,256,3,"conv256_down_out"),G=Y.tidy(()=>Y.transpose(Y.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:s,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:d,conv64_2:u,conv64_3:l,conv128_down:v,conv128_1:_,conv128_2:h,conv256_down:y,conv256_1:T,conv256_2:F,conv256_down_out:L,fc:G},paramMappings:r}}function Un(o,t){let e=j(o,t);function r(s){let i=e(`${s}/scale/weights`,1),c=e(`${s}/scale/biases`,1);return{weights:i,biases:c}}function n(s){let i=e(`${s}/conv/filters`,4),c=e(`${s}/conv/bias`,1),m=r(s);return{conv:{filters:i,bias:c},scale:m}}function a(s){return{conv1:n(`${s}/conv1`),conv2:n(`${s}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:a}}function Ho(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Un(o,t),n=e("conv32_down"),a=r("conv32_1"),s=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),d=r("conv64_3"),u=r("conv128_down"),l=r("conv128_1"),v=r("conv128_2"),_=r("conv256_down"),h=r("conv256_1"),y=r("conv256_2"),T=r("conv256_down_out"),{fc:F}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Ir(F))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${F}`);let L={conv32_down:n,conv32_1:a,conv32_2:s,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:d,conv128_down:u,conv128_1:l,conv128_2:v,conv256_down:_,conv256_1:h,conv256_2:y,conv256_down_out:T,fc:F};return W(o,t),{params:L,paramMappings:t}}var R=b(g());function nt(o,t){let e=$o(o,t.conv1);return e=so(e,t.conv2),e=R.add(e,o),e=R.relu(e),e}function Re(o,t){let e=lr(o,t.conv1);e=so(e,t.conv2);let r=R.avgPool(o,2,2,"valid"),n=R.zeros(r.shape),a=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let i=[...e.shape];i[1]=1;let c=R.zeros(i);e=R.concat([e,c],1);let m=[...e.shape];m[2]=1;let p=R.zeros(m);e=R.concat([e,p],2)}return r=a?R.concat([r,n],3):r,e=R.add(r,e),e=R.relu(e),e}var xe=class extends S{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return U.tidy(()=>{let r=U.cast(t.toBatchTensor(150,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(U.scalar(256)),s=lr(a,e.conv32_down);s=U.maxPool(s,3,2,"valid"),s=nt(s,e.conv32_1),s=nt(s,e.conv32_2),s=nt(s,e.conv32_3),s=Re(s,e.conv64_down),s=nt(s,e.conv64_1),s=nt(s,e.conv64_2),s=nt(s,e.conv64_3),s=Re(s,e.conv128_down),s=nt(s,e.conv128_1),s=nt(s,e.conv128_2),s=Re(s,e.conv256_down),s=nt(s,e.conv256_1),s=nt(s,e.conv256_2),s=Re(s,e.conv256_down_out);let i=s.mean([1,2]);return U.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await E(t))}async computeFaceDescriptor(t){var a;if((a=t==null?void 0:t.shape)==null?void 0:a.some(s=>s<=0))return new Float32Array(128);let e=await E(t),r=U.tidy(()=>U.unstack(this.forwardInput(e))),n=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Ho(t)}extractParams(t){return jo(t)}};function Xn(o){let t=new xe;return t.extractWeights(o),t}function fr(o,t){return{...o,...{descriptor:t}}}function Jn(o){return typeof o.age=="number"}function hr(o,t){return{...o,...{age:t}}}function qn(o){return(o.gender===vt.MALE||o.gender===vt.FEMALE)&&ee(o.genderProbability)}function xr(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var st=b(g());var at=b(g());function Zn(o,t){function e(c,m){let p=at.tensor4d(o(3*3*c),[3,3,c,1]),d=at.tensor1d(o(c)),u=at.tensor1d(o(c)),l=at.tensor1d(o(c)),v=at.tensor1d(o(c));return t.push({paramPath:`${m}/filters`},{paramPath:`${m}/batch_norm_scale`},{paramPath:`${m}/batch_norm_offset`},{paramPath:`${m}/batch_norm_mean`},{paramPath:`${m}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:u,batch_norm_mean:l,batch_norm_variance:v}}function r(c,m,p,d,u){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),v=at.tensor1d(o(m));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${u?"batch_norm_offset":"bias"}`}),{filters:l,bias:v}}function n(c,m,p,d){let{filters:u,bias:l}=r(c,m,p,d,!0);return{filters:u,batch_norm_offset:l}}function a(c,m,p){let d=e(c,`${p}/depthwise_conv`),u=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:u}}function s(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=a(32,64,"mobilenetv1/conv_1"),p=a(64,128,"mobilenetv1/conv_2"),d=a(128,128,"mobilenetv1/conv_3"),u=a(128,256,"mobilenetv1/conv_4"),l=a(256,256,"mobilenetv1/conv_5"),v=a(256,512,"mobilenetv1/conv_6"),_=a(512,512,"mobilenetv1/conv_7"),h=a(512,512,"mobilenetv1/conv_8"),y=a(512,512,"mobilenetv1/conv_9"),T=a(512,512,"mobilenetv1/conv_10"),F=a(512,512,"mobilenetv1/conv_11"),L=a(512,1024,"mobilenetv1/conv_12"),G=a(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:v,conv_7:_,conv_8:h,conv_9:y,conv_10:T,conv_11:F,conv_12:L,conv_13:G}}function i(){let c=n(1024,256,1,"prediction_layer/conv_0"),m=n(256,512,3,"prediction_layer/conv_1"),p=n(512,128,1,"prediction_layer/conv_2"),d=n(128,256,3,"prediction_layer/conv_3"),u=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),v=n(256,64,1,"prediction_layer/conv_6"),_=n(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),T=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),F=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),L=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),G=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),et=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),it=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),X=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),Pt=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),_t=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),wt=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:v,conv_7:_,box_predictor_0:{box_encoding_predictor:h,class_predictor:y},box_predictor_1:{box_encoding_predictor:T,class_predictor:F},box_predictor_2:{box_encoding_predictor:L,class_predictor:G},box_predictor_3:{box_encoding_predictor:et,class_predictor:it},box_predictor_4:{box_encoding_predictor:X,class_predictor:Pt},box_predictor_5:{box_encoding_predictor:_t,class_predictor:wt}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:i}}function Yo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=Zn(e,t),s=n(),i=a(),m={extra_dim:at.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:s,prediction_layer:i,output_layer:m},paramMappings:t}}function Kn(o,t){let e=j(o,t);function r(m,p,d){let u=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:u,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,d=`MobilenetV1/Conv2d_${m}_depthwise`,u=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,v=e(`${d}/depthwise_weights`,4,`${u}/filters`),_=e(`${d}/BatchNorm/gamma`,1,`${u}/batch_norm_scale`),h=e(`${d}/BatchNorm/beta`,1,`${u}/batch_norm_offset`),y=e(`${d}/BatchNorm/moving_mean`,1,`${u}/batch_norm_mean`),T=e(`${d}/BatchNorm/moving_variance`,1,`${u}/batch_norm_variance`);return{depthwise_conv:{filters:v,batch_norm_scale:_,batch_norm_offset:h,batch_norm_mean:y,batch_norm_variance:T},pointwise_conv:r("MobilenetV1",m,l)}}function a(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:n(1),conv_2:n(2),conv_3:n(3),conv_4:n(4),conv_5:n(5),conv_6:n(6),conv_7:n(7),conv_8:n(8),conv_9:n(9),conv_10:n(10),conv_11:n(11),conv_12:n(12),conv_13:n(13)}}function s(m,p){let d=e(`${m}/weights`,4,`${p}/filters`),u=e(`${m}/biases`,1,`${p}/bias`);return{filters:d,bias:u}}function i(m){let p=s(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),d=s(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:c}}function Go(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=Kn(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!ht(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let a={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return W(o,t),{params:a,paramMappings:t}}var yt=b(g());var kt=b(g());function q(o,t,e){return kt.tidy(()=>{let r=kt.conv2d(o,t.filters,e,"same");return r=kt.add(r,t.batch_norm_offset),kt.clipByValue(r,0,6)})}var Qn=.0010000000474974513;function ta(o,t,e){return yt.tidy(()=>{let r=yt.depthwiseConv2d(o,t.filters,e,"same");return r=yt.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Qn),yt.clipByValue(r,0,6)})}function ea(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function zo(o,t){return yt.tidy(()=>{let e,r=q(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((a,s)=>{let i=s+1,c=ea(i);r=ta(r,a.depthwise_conv,c),r=q(r,a.pointwise_conv,[1,1]),i===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function ra(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),i=Math.max(r[t][1],r[t][3]),c=Math.min(r[e][0],r[e][2]),m=Math.min(r[e][1],r[e][3]),p=Math.max(r[e][0],r[e][2]),d=Math.max(r[e][1],r[e][3]),u=(s-n)*(i-a),l=(p-c)*(d-m);if(u<=0||l<=0)return 0;let v=Math.max(n,c),_=Math.max(a,m),h=Math.min(s,p),y=Math.min(i,d),T=Math.max(h-v,0)*Math.max(y-_,0);return T/(u+l-T)}function Vo(o,t,e,r,n){let a=o.shape[0],s=Math.min(e,a),i=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>n).sort((p,d)=>d.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=s)return;let d=p.score;for(let u=m.length-1;u>=0;--u){let l=ra(o,p.boxIndex,m[u]);if(l!==0&&(p.score*=c(l),p.score<=n))break}d===p.score&&m.push(p.boxIndex)}),m}var f=b(g());function oa(o){let t=f.unstack(f.transpose(o,[1,0])),e=[f.sub(t[2],t[0]),f.sub(t[3],t[1])],r=[f.add(t[0],f.div(e[0],f.scalar(2))),f.add(t[1],f.div(e[1],f.scalar(2)))];return{sizes:e,centers:r}}function na(o,t){let{sizes:e,centers:r}=oa(o),n=f.unstack(f.transpose(t,[1,0])),a=f.div(f.mul(f.exp(f.div(n[2],f.scalar(5))),e[0]),f.scalar(2)),s=f.add(f.mul(f.div(n[0],f.scalar(10)),e[0]),r[0]),i=f.div(f.mul(f.exp(f.div(n[3],f.scalar(5))),e[1]),f.scalar(2)),c=f.add(f.mul(f.div(n[1],f.scalar(10)),e[1]),r[1]);return f.transpose(f.stack([f.sub(s,a),f.sub(c,i),f.add(s,a),f.add(c,i)]),[1,0])}function Uo(o,t,e){return f.tidy(()=>{let r=o.shape[0],n=na(f.reshape(f.tile(e.extra_dim,[r,1,1]),[-1,4]),f.reshape(o,[-1,4]));n=f.reshape(n,[r,n.shape[0]/r,4]);let a=f.sigmoid(f.slice(t,[0,0,1],[-1,-1,-1])),s=f.slice(a,[0,0,0],[-1,-1,1]);s=f.reshape(s,[r,s.shape[1]]);let i=f.unstack(n),c=f.unstack(s);return{boxes:i,scores:c}})}var $e=b(g());var Oe=b(g());function Ut(o,t){return Oe.tidy(()=>{let e=o.shape[0],r=Oe.reshape(zt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Oe.reshape(zt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Xo(o,t,e){return $e.tidy(()=>{let r=q(o,e.conv_0,[1,1]),n=q(r,e.conv_1,[2,2]),a=q(n,e.conv_2,[1,1]),s=q(a,e.conv_3,[2,2]),i=q(s,e.conv_4,[1,1]),c=q(i,e.conv_5,[2,2]),m=q(c,e.conv_6,[1,1]),p=q(m,e.conv_7,[2,2]),d=Ut(t,e.box_predictor_0),u=Ut(o,e.box_predictor_1),l=Ut(n,e.box_predictor_2),v=Ut(s,e.box_predictor_3),_=Ut(c,e.box_predictor_4),h=Ut(p,e.box_predictor_5),y=$e.concat([d.boxPredictionEncoding,u.boxPredictionEncoding,l.boxPredictionEncoding,v.boxPredictionEncoding,_.boxPredictionEncoding,h.boxPredictionEncoding],1),T=$e.concat([d.classPrediction,u.classPrediction,l.classPrediction,v.classPrediction,_.classPrediction,h.classPrediction],1);return{boxPredictions:y,classPredictions:T}})}var Z=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var Xt=class extends S{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return st.tidy(()=>{let r=st.cast(t.toBatchTensor(512,!1),"float32"),n=st.sub(st.mul(r,st.scalar(.007843137718737125)),st.scalar(1)),a=zo(n,e.mobilenetv1),{boxPredictions:s,classPredictions:i}=Xo(a.out,a.conv11,e.prediction_layer);return Uo(s,i,e.output_layer)})}async forward(t){return this.forwardInput(await E(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new Z(e),a=await E(t),{boxes:s,scores:i}=this.forwardInput(a),c=s[0],m=i[0];for(let F=1;F{let[L,G]=[Math.max(0,y[F][0]),Math.min(1,y[F][2])].map(X=>X*h),[et,it]=[Math.max(0,y[F][1]),Math.min(1,y[F][3])].map(X=>X*_);return new M(p[F],new oe(et,L,it-et,G-L),{height:a.getInputHeight(0),width:a.getInputWidth(0)})});return c.dispose(),m.dispose(),T}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Go(t)}extractParams(t){return Yo(t)}};function Jo(o){let t=new Xt;return t.extractWeights(o),t}function aa(o){return Jo(o)}var qo=class extends Xt{};var Zo=.4,Ko=[new x(.738768,.874946),new x(2.42204,2.65704),new x(4.30971,7.04493),new x(10.246,4.59428),new x(12.6868,11.8741)],Qo=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],tn=[117.001,114.697,97.404],en="tiny_yolov2_model",rn="tiny_yolov2_separable_conv_model";var N=b(g());var br=o=>typeof o=="number";function io(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!br(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>br(t.x)&&br(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(br)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=b(g());var K=b(g());function be(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function Ft(o,t){return Q.tidy(()=>{let e=Q.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Q.conv2d(e,t.conv.filters,[1,1],"valid"),e=Q.sub(e,t.bn.sub),e=Q.mul(e,t.bn.truediv),e=Q.add(e,t.conv.bias),be(e)})}var St=b(g());function Tt(o,t){return St.tidy(()=>{let e=St.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=St.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=St.add(e,t.bias),be(e)})}var co=b(g());function sa(o,t){let e=ce(o,t);function r(s,i){let c=co.tensor1d(o(s)),m=co.tensor1d(o(s));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(s,i,c){let m=e(s,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let a=me(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}}function on(o,t,e,r){let{extractWeights:n,getRemainingWeights:a}=B(o),s=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=sa(n,s),p;if(t.withSeparableConvs){let[d,u,l,v,_,h,y,T,F]=r,L=t.isFirstLayerConv2d?i(d,u,3,"conv0"):m(d,u,"conv0"),G=m(u,l,"conv1"),et=m(l,v,"conv2"),it=m(v,_,"conv3"),X=m(_,h,"conv4"),Pt=m(h,y,"conv5"),_t=T?m(y,T,"conv6"):void 0,wt=F?m(T,F,"conv7"):void 0,te=i(F||T||y,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:Pt,conv6:_t,conv7:wt,conv8:te}}else{let[d,u,l,v,_,h,y,T,F]=r,L=c(d,u,"conv0"),G=c(u,l,"conv1"),et=c(l,v,"conv2"),it=c(v,_,"conv3"),X=c(_,h,"conv4"),Pt=c(h,y,"conv5"),_t=c(y,T,"conv6"),wt=c(T,F,"conv7"),te=i(F,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:Pt,conv6:_t,conv7:wt,conv8:te}}if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:p,paramMappings:s}}function ia(o,t){let e=j(o,t);function r(i){let c=e(`${i}/sub`,1),m=e(`${i}/truediv`,1);return{sub:c,truediv:m}}function n(i){let c=e(`${i}/filters`,4),m=e(`${i}/bias`,1);return{filters:c,bias:m}}function a(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let s=pe(e);return{extractConvParams:n,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function nn(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}=ia(o,e),s;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:i>7?a("conv6"):void 0,conv7:i>8?a("conv7"):void 0,conv8:r("conv8")}}else s={conv0:n("conv0"),conv1:n("conv1"),conv2:n("conv2"),conv3:n("conv3"),conv4:n("conv4"),conv5:n("conv5"),conv6:n("conv6"),conv7:n("conv7"),conv8:r("conv8")};return W(o,e),{params:s,paramMappings:e}}var lt=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var mo=class extends S{constructor(t){super("TinyYolov2");io(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,e){let r=Ft(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=Ft(r,e.conv6),r=Ft(r,e.conv7),zt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?be(zt(t,e.conv0,"valid",!1)):Tt(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?Tt(r,e.conv6):r,r=e.conv7?Tt(r,e.conv7):r,zt(r,e.conv8,"valid",!1)}forwardInput(t,e){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return N.tidy(()=>{let n=N.cast(t.toBatchTensor(e,!1),"float32");return n=this.config.meanRgb?ot(n,this.config.meanRgb):n,n=n.div(N.scalar(256)),this.config.withSeparableConvs?this.runMobilenet(n,r):this.runTinyYolov2(n,r)})}async forward(t,e){return this.forwardInput(await E(t),e)}async detect(t,e={}){let{inputSize:r,scoreThreshold:n}=new lt(e),a=await E(t),s=await this.forwardInput(a,r),i=N.tidy(()=>N.unstack(s)[0].expandDims()),c={width:a.getInputWidth(0),height:a.getInputHeight(0)},m=await this.extractBoxes(i,a.getReshapedInputDimensions(0),n);s.dispose(),i.dispose();let p=m.map(h=>h.box),d=m.map(h=>h.score),u=m.map(h=>h.classScore),l=m.map(h=>this.config.classes[h.label]);return Wr(p.map(h=>h.rescale(r)),d,this.config.iouThreshold,!0).map(h=>new Dt(d[h],u[h],l[h],p[h],c))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return nn(t,this.config)}extractParams(t){let e=this.config.filterSizes||mo.DEFAULT_FILTER_SIZES,r=e?e.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return on(t,this.config,this.boxEncodingSize,e)}async extractBoxes(t,e,r){let{width:n,height:a}=e,s=Math.max(n,a),i=s/n,c=s/a,m=t.shape[1],p=this.config.anchors.length,[d,u,l]=N.tidy(()=>{let y=t.reshape([m,m,p,this.boxEncodingSize]),T=y.slice([0,0,0,0],[m,m,p,4]),F=y.slice([0,0,0,4],[m,m,p,1]),L=this.withClassScores?N.softmax(y.slice([0,0,0,5],[m,m,p,this.config.classes.length]),3):N.scalar(0);return[T,F,L]}),v=[],_=await u.array(),h=await d.array();for(let y=0;yr){let G=(T+De(h[y][T][F][0]))/m*i,et=(y+De(h[y][T][F][1]))/m*c,it=Math.exp(h[y][T][F][2])*this.config.anchors[F].x/m*i,X=Math.exp(h[y][T][F][3])*this.config.anchors[F].y/m*c,Pt=G-it/2,_t=et-X/2,wt={row:y,col:T,anchor:F},{classScore:te,label:ho}=this.withClassScores?await this.extractPredictedClass(l,wt):{classScore:1,label:0};v.push({box:new re(Pt,_t,Pt+it,_t+X),score:L,classScore:L*te,label:ho,...wt})}}return d.dispose(),u.dispose(),l.dispose(),v}async extractPredictedClass(t,e){let{row:r,col:n,anchor:a}=e,s=await t.array();return Array(this.config.classes.length).fill(0).map((i,c)=>s[r][n][a][c]).map((i,c)=>({classScore:i,label:c})).reduce((i,c)=>i.classScore>c.classScore?i:c)}},ge=mo;ge.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var ve=class extends ge{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:Zo,classes:["face"],...t?{anchors:Qo,meanRgb:tn}:{anchors:Ko,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?rn:en}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function ca(o,t=!0){let e=new ve(t);return e.extractWeights(o),e}var gr=class extends lt{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var tt=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var je=b(g());var po=b(g());async function Jt(o,t,e,r,n=({alignedRect:a})=>a){let a=o.map(c=>Vt(c)?n(c):c.detection),s=r||(t instanceof po.Tensor?await se(t,a):await ae(t,a)),i=await e(s);return s.forEach(c=>c instanceof po.Tensor&&c.dispose()),i}async function ye(o,t,e,r,n){return Jt([o],t,async a=>e(a[0]),r,n)}var an=.4,sn=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],cn=[117.001,114.697,97.404];var Fe=class extends ge{constructor(){let t={withSeparableConvs:!0,iouThreshold:an,classes:["face"],anchors:sn,meanRgb:cn,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var P={ssdMobilenetv1:new Xt,tinyFaceDetector:new Fe,tinyYolov2:new ve,faceLandmark68Net:new fe,faceLandmark68TinyNet:new dr,faceRecognitionNet:new xe,faceExpressionNet:new cr,ageGenderNet:new pr},mn=(o,t)=>P.ssdMobilenetv1.locateFaces(o,t),ma=(o,t)=>P.tinyFaceDetector.locateFaces(o,t),pa=(o,t)=>P.tinyYolov2.locateFaces(o,t),pn=o=>P.faceLandmark68Net.detectLandmarks(o),da=o=>P.faceLandmark68TinyNet.detectLandmarks(o),ua=o=>P.faceRecognitionNet.computeFaceDescriptor(o),la=o=>P.faceExpressionNet.predictExpressions(o),fa=o=>P.ageGenderNet.predictAgeAndGender(o),dn=o=>P.ssdMobilenetv1.load(o),ha=o=>P.tinyFaceDetector.load(o),xa=o=>P.tinyYolov2.load(o),ba=o=>P.faceLandmark68Net.load(o),ga=o=>P.faceLandmark68TinyNet.load(o),va=o=>P.faceRecognitionNet.load(o),ya=o=>P.faceExpressionNet.load(o),Fa=o=>P.ageGenderNet.load(o),Ta=dn,Pa=mn,_a=pn;var uo=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},_e=class extends uo{async run(){let t=await this.parentTask,e=await Jt(t,this.input,async r=>Promise.all(r.map(n=>P.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>mr(r,e[n]))}withAgeAndGender(){return new Te(this,this.input)}},we=class extends uo{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>P.faceExpressionNet.predictExpressions(r),this.extractedFaces);return mr(t,e)}withAgeAndGender(){return new Pe(this,this.input)}},Kt=class extends _e{withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Qt=class extends we{withAgeAndGender(){return new Zt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var lo=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},Te=class extends lo{async run(){let t=await this.parentTask,e=await Jt(t,this.input,async r=>Promise.all(r.map(n=>P.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:a,gender:s,genderProbability:i}=e[n];return hr(xr(r,s,i),a)})}withFaceExpressions(){return new _e(this,this.input)}},Pe=class extends lo{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await ye(t,this.input,a=>P.ageGenderNet.predictAgeAndGender(a),this.extractedFaces);return hr(xr(t,r,n),e)}withFaceExpressions(){return new we(this,this.input)}},qt=class extends Te{withFaceExpressions(){return new Kt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Zt=class extends Pe{withFaceExpressions(){return new Qt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var vr=class extends tt{constructor(t,e){super();this.parentTask=t;this.input=e}},At=class extends vr{async run(){let t=await this.parentTask;return(await Jt(t,this.input,r=>Promise.all(r.map(n=>P.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>fr(t[n],r))}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}},Wt=class extends vr{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>P.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return fr(t,e)}withFaceExpressions(){return new Qt(this,this.input)}withAgeAndGender(){return new Zt(this,this.input)}};var yr=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?P.faceLandmark68TinyNet:P.faceLandmark68Net}},Fr=class extends yr{async run(){let t=await this.parentTask,e=t.map(a=>a.detection),r=this.input instanceof je.Tensor?await se(this.input,e):await ae(this.input,e),n=await Promise.all(r.map(a=>this.landmarkNet.detectLandmarks(a)));return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),t.map((a,s)=>le(a,n[s]))}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Tr=class extends yr{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof je.Tensor?await se(this.input,[e]):await ae(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),le(t,n)}withFaceExpressions(){return new Qt(this,this.input)}withAgeAndGender(){return new Zt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var Pr=class extends tt{constructor(t,e=new Z){super();this.input=t;this.options=e}},He=class extends Pr{async run(){let{input:t,options:e}=this,r;if(e instanceof gr)r=P.tinyFaceDetector.locateFaces(t,e);else if(e instanceof Z)r=P.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof lt)r=P.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise(async t=>{let e=await this.run();t(e.map(r=>$t({},r)))})}withFaceLandmarks(t=!1){return new Fr(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new _e(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Te(this.runAndExtendWithFaceDetections(),this.input)}},_r=class extends Pr{async run(){let t=await new He(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?$t({},e):void 0)})}withFaceLandmarks(t=!1){return new Tr(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new we(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Pe(this.runAndExtendWithFaceDetection(),this.input)}};function wa(o,t=new Z){return new _r(o,t)}function wr(o,t=new Z){return new He(o,t)}async function un(o,t){return wr(o,new Z(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function Da(o,t={}){return wr(o,new lt(t)).withFaceLandmarks().withFaceDescriptors()}var Ea=un;function fo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((n,a)=>n-r[a]).reduce((n,a)=>n+a**2,0))}var Dr=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1,a=()=>`person ${n++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof xt)return s;if(s instanceof Float32Array)return new xt(a(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new xt(a(),[s.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>fo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new Ee(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>xt.fromJSON(r));return new Dr(e,t.distanceThreshold)}};function Ma(o){let t=new Fe;return t.extractWeights(o),t}function ln(o,t){let{width:e,height:r}=new A(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(n=>ln(n,{width:e,height:r}));if(Vt(o)){let n=o.detection.forSize(e,r),a=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return le($t(o,n),a)}return pt(o)?$t(o,o.detection.forSize(e,r)):o instanceof V||o instanceof M?o.forSize(e,r):o}var Na=typeof process!="undefined",Ia=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",La={faceapi:No,node:Na,browser:Ia}; +var fn=Object.create,Ye=Object.defineProperty,hn=Object.getPrototypeOf,xn=Object.prototype.hasOwnProperty,bn=Object.getOwnPropertyNames,gn=Object.getOwnPropertyDescriptor;var Er=o=>Ye(o,"__esModule",{value:!0});var fo=(o,t)=>()=>(t||(t={exports:{}},o(t.exports,t)),t.exports),Ge=(o,t)=>{for(var e in t)Ye(o,e,{get:t[e],enumerable:!0})},vn=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of bn(t))!xn.call(o,r)&&r!=="default"&&Ye(o,r,{get:()=>t[r],enumerable:!(e=gn(t,r))||e.enumerable});return o},b=o=>vn(Er(Ye(o!=null?fn(hn(o)):{},"default",o&&o.__esModule&&"default"in o?{get:()=>o.default,enumerable:!0}:{value:o,enumerable:!0})),o);var g=fo(Mr=>{var yn=Object.create,Cr=Object.defineProperty,Fn=Object.getPrototypeOf,Tn=Object.prototype.hasOwnProperty,_n=Object.getOwnPropertyNames,wn=Object.getOwnPropertyDescriptor,ho=o=>Cr(o,"__esModule",{value:!0}),xo=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of _n(t))!Tn.call(o,r)&&r!=="default"&&Cr(o,r,{get:()=>t[r],enumerable:!(e=wn(t,r))||e.enumerable});return o},Pn=o=>xo(ho(Cr(o!=null?yn(Fn(o)):{},"default",o&&o.__esModule&&"default"in o?{get:()=>o.default,enumerable:!0}:{value:o,enumerable:!0})),o);ho(Mr);xo(Mr,Pn(require("@tensorflow/tfjs-node-gpu")))});var To=fo((Ln,Fo)=>{Er(Ln);Ge(Ln,{isNodejs:()=>kn});function kn(){return typeof global=="object"&&!0&&typeof Fo!="undefined"&&typeof process!="undefined"&&!!process.version}});Er(exports);Ge(exports,{AgeGenderNet:()=>pr,BoundingBox:()=>re,Box:()=>D,ComposableTask:()=>tt,ComputeAllFaceDescriptorsTask:()=>At,ComputeFaceDescriptorsTaskBase:()=>vr,ComputeSingleFaceDescriptorTask:()=>Wt,DetectAllFaceLandmarksTask:()=>Fr,DetectAllFacesTask:()=>He,DetectFaceLandmarksTaskBase:()=>yr,DetectFacesTaskBase:()=>_r,DetectSingleFaceLandmarksTask:()=>Tr,DetectSingleFaceTask:()=>wr,Dimensions:()=>A,FACE_EXPRESSION_LABELS:()=>qr,FaceDetection:()=>M,FaceDetectionNet:()=>qo,FaceExpressionNet:()=>cr,FaceExpressions:()=>It,FaceLandmark68Net:()=>fe,FaceLandmark68TinyNet:()=>dr,FaceLandmarkNet:()=>Ro,FaceLandmarks:()=>V,FaceLandmarks5:()=>vo,FaceLandmarks68:()=>ne,FaceMatch:()=>Ee,FaceMatcher:()=>Dr,FaceRecognitionNet:()=>xe,Gender:()=>vt,LabeledBox:()=>Me,LabeledFaceDescriptors:()=>xt,NetInput:()=>bt,NeuralNetwork:()=>S,ObjectDetection:()=>Dt,Point:()=>x,PredictedBox:()=>yo,Rect:()=>oe,SsdMobilenetv1:()=>Xt,SsdMobilenetv1Options:()=>Z,TinyFaceDetector:()=>Fe,TinyFaceDetectorOptions:()=>gr,TinyYolov2:()=>ve,TinyYolov2Options:()=>lt,allFaces:()=>Ea,allFacesSsdMobilenetv1:()=>un,allFacesTinyYolov2:()=>Da,awaitMediaLoaded:()=>Gr,bufferToImage:()=>zr,computeFaceDescriptor:()=>ua,createCanvas:()=>Yt,createCanvasFromMedia:()=>Ie,createFaceDetectionNet:()=>aa,createFaceRecognitionNet:()=>Xn,createSsdMobilenetv1:()=>Jo,createTinyFaceDetector:()=>Ma,createTinyYolov2:()=>ca,detectAllFaces:()=>Pr,detectFaceLandmarks:()=>pn,detectFaceLandmarksTiny:()=>da,detectLandmarks:()=>wa,detectSingleFace:()=>Pa,draw:()=>Co,env:()=>P,euclideanDistance:()=>uo,extendWithAge:()=>hr,extendWithFaceDescriptor:()=>fr,extendWithFaceDetection:()=>Ot,extendWithFaceExpressions:()=>mr,extendWithFaceLandmarks:()=>le,extendWithGender:()=>xr,extractFaceTensors:()=>se,extractFaces:()=>ae,fetchImage:()=>Bn,fetchJson:()=>Xr,fetchNetWeights:()=>Rn,fetchOrThrow:()=>Gt,getContext2dOrThrow:()=>$,getMediaDimensions:()=>Ht,imageTensorToCanvas:()=>Vr,imageToSquare:()=>Ur,inverseSigmoid:()=>Mn,iou:()=>kr,isMediaElement:()=>qe,isMediaLoaded:()=>Ne,isWithAge:()=>Jn,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>Zr,isWithFaceLandmarks:()=>Vt,isWithGender:()=>qn,loadAgeGenderModel:()=>Fa,loadFaceDetectionModel:()=>Ta,loadFaceExpressionModel:()=>ya,loadFaceLandmarkModel:()=>ba,loadFaceLandmarkTinyModel:()=>ga,loadFaceRecognitionModel:()=>va,loadSsdMobilenetv1Model:()=>dn,loadTinyFaceDetectorModel:()=>ha,loadTinyYolov2Model:()=>xa,loadWeightMap:()=>Jr,locateFaces:()=>_a,matchDimensions:()=>$n,minBbox:()=>Sr,nets:()=>_,nonMaxSuppression:()=>Ar,normalize:()=>ot,padToSquare:()=>Wr,predictAgeAndGender:()=>fa,recognizeFaceExpressions:()=>la,resizeResults:()=>ln,resolveInput:()=>jt,shuffleArray:()=>En,sigmoid:()=>De,ssdMobilenetv1:()=>mn,tf:()=>Ca,tinyFaceDetector:()=>ma,tinyYolov2:()=>pa,toNetInput:()=>E,utils:()=>bo,validateConfig:()=>ao,version:()=>La});var Ca=b(g());var Co={};Ge(Co,{AnchorPosition:()=>dt,DrawBox:()=>Xe,DrawBoxOptions:()=>Yr,DrawFaceLandmarks:()=>Qr,DrawFaceLandmarksOptions:()=>Kr,DrawTextField:()=>Mt,DrawTextFieldOptions:()=>Ce,drawContour:()=>ft,drawDetections:()=>Wn,drawFaceExpressions:()=>On,drawFaceLandmarks:()=>Hn});function ft(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},a)=>{let s=t[a];o.moveTo(s.x,s.y),o.lineTo(r,n)}),e){let r=t[t.length-1],n=t[0];if(!r||!n)return;o.moveTo(r.x,r.y),o.lineTo(n.x,n.y)}o.stroke()}var bo={};Ge(bo,{computeReshapedDimensions:()=>Lr,getCenterPoint:()=>$t,isDimensions:()=>Ve,isEven:()=>ze,isFloat:()=>Ir,isTensor:()=>Bt,isTensor1D:()=>Dn,isTensor2D:()=>Nr,isTensor3D:()=>ht,isTensor4D:()=>z,isValidNumber:()=>rt,isValidProbablitiy:()=>ee,range:()=>ct,round:()=>Rt});var go=b(g());var A=class{constructor(t,e){if(!rt(t)||!rt(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new A(1/this.width,1/this.height)}};function Bt(o,t){return o instanceof go.Tensor&&o.shape.length===t}function Dn(o){return Bt(o,1)}function Nr(o){return Bt(o,2)}function ht(o){return Bt(o,3)}function z(o){return Bt(o,4)}function Ir(o){return o%1!=0}function ze(o){return o%2==0}function Rt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function Ve(o){return o&&o.width&&o.height}function Lr({width:o,height:t},e){let r=e/Math.max(t,o);return new A(Math.round(o*r),Math.round(t*r))}function $t(o){return o.reduce((t,e)=>t.add(e),new x(0,0)).div(new x(o.length,o.length))}function ct(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function rt(o){return!!o&&o!==Infinity&&o!==-Infinity&&!Number.isNaN(o)||o===0}function ee(o){return rt(o)&&o>=0&&o<=1}var x=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new x(this.x+t.x,this.y+t.y)}sub(t){return new x(this.x-t.x,this.y-t.y)}mul(t){return new x(this.x*t.x,this.y*t.y)}div(t){return new x(this.x/t.x,this.y/t.y)}abs(){return new x(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new x(Math.floor(this.x),Math.floor(this.y))}};var D=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(rt)}static assertIsValidBox(t,e,r=!1){if(!D.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},n=[r.left,r.top,r.right,r.bottom].every(rt),a=[r.x,r.y,r.width,r.height].every(rt);if(!a&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,i,c,m]=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];D.assertIsValidBox({x:s,y:i,width:c,height:m},"Box.constructor",e),this._x=s,this._y=i,this._width=c,this._height=m}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new x(this.left,this.top)}get topRight(){return new x(this.right,this.top)}get bottomLeft(){return new x(this.left,this.bottom)}get bottomRight(){return new x(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.round(a));return new D({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.floor(a));return new D({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,a=Math.abs(r-n);return re&&(i=-d+e+r,d=e),u>t&&(c=-u+t+n,u=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:s,edy:c,dx:a,edx:i,y:p,ey:u,x:m,ex:d,w:r,h:n}}calibrate(t){return new D({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var re=class extends D{constructor(t,e,r,n,a=!1){super({left:t,top:e,right:r,bottom:n},a)}};var Dt=class{constructor(t,e,r,n,a){this._imageDims=new A(a.width,a.height),this._score=t,this._classScore=e,this._className=r,this._box=new D(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new D(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new Dt(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class extends Dt{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:a}=super.forSize(t,e);return new M(r,n,a)}};function kr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),n=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),a=r*n;return e?a/(o.area+t.area-a):a/Math.min(o.area,t.area)}function Sr(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:s,boxIndex:i})).sort((s,i)=>s.score-i.score).map(s=>s.boxIndex),a=[];for(;n.length>0;){let s=n.pop();a.push(s);let i=n,c=[];for(let m=0;mc[p]<=e)}return a}var mt=b(g());function ot(o,t){return mt.tidy(()=>{let[e,r,n]=t,a=mt.fill([...o.shape.slice(0,3),1],e,"float32"),s=mt.fill([...o.shape.slice(0,3),1],r,"float32"),i=mt.fill([...o.shape.slice(0,3),1],n,"float32"),c=mt.concat([a,s,i],3);return mt.sub(o,c)})}var Et=b(g());function Wr(o,t=!1){return Et.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),a=Math.round(n*(t?.5:1)),s=e>r?2:1,i=u=>{let l=o.shape.slice();return l[s]=u,Et.fill(l,0,"float32")},c=i(a),m=n-c.shape[s],d=[t&&m?i(m):null,o,c].filter(u=>!!u).map(u=>Et.cast(u,"float32"));return Et.concat(d,s)})}function En(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function De(o){return 1/(1+Math.exp(-o))}function Mn(o){return Math.log(o/(1-o))}var oe=class extends D{constructor(t,e,r,n,a=!1){super({x:t,y:e,width:r,height:n},a)}};var Cn=.5,Nn=.43,In=.45,V=class{constructor(t,e,r=new x(0,0)){let{width:n,height:a}=e;this._imgDims=new A(n,a),this._shift=r,this._positions=t.map(s=>s.mul(new x(n,a)).add(r))}get shift(){return new x(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new x(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new x(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let a=t instanceof M?t.box.floor():new D(t);return this.shiftBy(a.x,a.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:n}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(n)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,n]=t,a=d=>n.sub(d).magnitude(),s=(a(e)+a(r))/2,i=Math.floor(s/In),c=$t(t),m=Math.floor(Math.max(0,c.x-Cn*i)),p=Math.floor(Math.max(0,c.y-Nn*i));return new oe(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Sr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var vo=class extends V{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],$t([t[3],t[4]])]}};var ne=class extends V{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map($t)}};var Ee=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Rt(this.distance)})`:""}`}};var Me=class extends D{static assertIsValidLabeledBox(t,e){if(D.assertIsValidBox(t,e),!rt(t.label))throw new Error(`${e} - expected property label (${t.label}) to be a number`)}constructor(t,e){super(t);this._label=e}get label(){return this._label}};var xt=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new xt(t.label,e)}};var yo=class extends Me{static assertIsValidPredictedBox(t,e){if(Me.assertIsValidLabeledBox(t,e),!ee(t.score)||!ee(t.classScore))throw new Error(`${e} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,e,r,n){super(t,e);this._score=r,this._classScore=n}get score(){return this._score}get classScore(){return this._classScore}};function pt(o){return o.detection instanceof M}function Ot(o,t){return{...o,...{detection:t}}}function Br(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Ue(o){let t="";if(!o)try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,a)=>{o.readFile(r,(s,i)=>s?a(s):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Rr(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},n=global.fetch,a=Ue();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:e,createImageElement:r,fetch:n,...a}}function $r(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var Or=b(To()),k;function Sn(){if(!k)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return k}function jr(o){k=o}function Hr(){return $r()?jr(Br()):(0,Or.isNodejs)()?jr(Rr()):null}function An(o){if(k||Hr(),!k)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=k.Canvas,Image:e=k.Image}=o;k.Canvas=t,k.Image=e,k.createCanvasElement=o.createCanvasElement||(()=>new t),k.createImageElement=o.createImageElement||(()=>new e),k.ImageData=o.ImageData||k.ImageData,k.Video=o.Video||k.Video,k.fetch=o.fetch||k.fetch,k.readFile=o.readFile||k.readFile}var P={getEnv:Sn,setEnv:jr,initialize:Hr,createBrowserEnv:Br,createFileSystem:Ue,createNodejsEnv:Rr,monkeyPatch:An,isBrowser:$r,isNodejs:Or.isNodejs};Hr();function jt(o){return!P.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function $(o){let{Canvas:t,CanvasRenderingContext2D:e}=P.getEnv();if(o instanceof e)return o;let r=jt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d");if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var dt;(function(o){o.TOP_LEFT="TOP_LEFT",o.TOP_RIGHT="TOP_RIGHT",o.BOTTOM_LEFT="BOTTOM_LEFT",o.BOTTOM_RIGHT="BOTTOM_RIGHT"})(dt||(dt={}));var Ce=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:a,fontStyle:s,padding:i}=t;this.anchorPosition=e||dt.TOP_LEFT,this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=a||14,this.fontStyle=s||"Georgia",this.padding=i||4}},Mt=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof Mt?t.text:t,this.anchor=e,this.options=new Ce(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let v=c+d.x,w=c+d.y+(l+1)*s;r.fillText(u,v,w)})}};var Yr=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:a}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let s={anchorPosition:dt.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Ce({...s,...a})}},Xe=class{constructor(t,e={}){this.box=new D(t),this.options=new Yr(e)}draw(t){let e=$(t),{boxColor:r,lineWidth:n}=this.options,{x:a,y:s,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(a,s,i,c);let{label:m}=this.options;m&&new Mt([m],{x:a-n/2,y:s},this.options.drawLabelOptions).draw(t)}};function Wn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,a=r instanceof M?r.box:pt(r)?r.detection.box:new D(r),s=n?`${Rt(n)}`:void 0;new Xe(a,{label:s}).draw(o)})}var ue=b(g());function Ne(o){let{Image:t,Video:e}=P.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function Gr(o){return new Promise((t,e)=>{if(o instanceof P.getEnv().Canvas||Ne(o))return t(null);function r(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),e(a))}function n(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),t(a))}o.addEventListener("load",n),o.addEventListener("error",r)})}function zr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let n=P.getEnv().createImageElement();n.onload=()=>t(n),n.onerror=e,n.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Ht(o){let{Image:t,Video:e}=P.getEnv();return o instanceof t?new A(o.naturalWidth,o.naturalHeight):o instanceof e?new A(o.videoWidth,o.videoHeight):new A(o.width,o.height)}function Yt({width:o,height:t}){let{createCanvasElement:e}=P.getEnv(),r=e();return r.width=o,r.height=t,r}function Ie(o,t){let{ImageData:e}=P.getEnv();if(!(o instanceof e)&&!Ne(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Ht(o),a=Yt({width:r,height:n});return o instanceof e?$(a).putImageData(o,0,0):$(a).drawImage(o,0,0,r,n),a}var Je=b(g());async function Vr(o,t){let e=t||P.getEnv().createCanvasElement(),[r,n,a]=o.shape.slice(z(o)?1:0),s=Je.tidy(()=>o.as3D(r,n,a).toInt());return await Je.browser.toPixels(s,e),s.dispose(),e}function qe(o){let{Image:t,Canvas:e,Video:r}=P.getEnv();return o instanceof t||o instanceof e||o instanceof r}var J=b(g());function Ur(o,t,e=!1){let{Image:r,Canvas:n}=P.getEnv();if(!(o instanceof r||o instanceof n))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Yt({width:1,height:1});let a=Ht(o),s=t/Math.max(a.height,a.width),i=s*a.width,c=s*a.height,m=Yt({width:t,height:t}),p=o instanceof n?o:Ie(o),d=Math.abs(i-c)/2,u=e&&i0&&p.height>0&&$(m).drawImage(p,u,l,i,c),m}var bt=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=e,this._batchSize=t.length,t.forEach((r,n)=>{if(ht(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(z(r)){let s=r.shape[0];if(s!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${s} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let a=r instanceof P.getEnv().Canvas?r:Ie(r);this._canvases[n]=a,this._inputDimensions[n]=[a.height,a.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return ct(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return Lr({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,J.tidy(()=>{let r=ct(this.batchSize,0,1).map(a=>{let s=this.getInput(a);if(s instanceof J.Tensor){let i=z(s)?s:s.expandDims();return i=Wr(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=J.image.resizeBilinear(i,[t,t])),i.as3D(t,t,3)}if(s instanceof P.getEnv().Canvas)return J.browser.fromPixels(Ur(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${a}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return J.stack(r.map(a=>J.cast(a,"float32"))).as4D(this.batchSize,t,t,3)})}};async function E(o){if(o instanceof bt)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=n=>Array.isArray(o)?` at input index ${n}:`:"",r=t.map(jt);return r.forEach((n,a)=>{if(!qe(n)&&!ht(n)&&!z(n))throw typeof t[a]=="string"?new Error(`toNetInput -${e(a)} string passed, but could not resolve HTMLElement for element id ${t[a]}`):new Error(`toNetInput -${e(a)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(z(n)){let s=n.shape[0];if(s!==1)throw new Error(`toNetInput -${e(a)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>qe(n)&&Gr(n))),new bt(r,Array.isArray(o))}async function ae(o,t){let{Canvas:e}=P.getEnv(),r=o;if(!(o instanceof e)){let s=await E(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=s.getInput(0);r=i instanceof e?i:await Vr(i)}let n=$(r);return t.map(s=>s instanceof M?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:i,width:c,height:m})=>{let p=Yt({width:c,height:m});return c>0&&m>0&&$(p).putImageData(n.getImageData(s,i,c,m),0,0),p})}var Ze=b(g());async function se(o,t){if(!ht(o)&&!z(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(z(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return Ze.tidy(()=>{let[e,r,n]=o.shape.slice(z(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).map(({x:i,y:c,width:m,height:p})=>Ze.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function Gt(o,t){let{fetch:e}=P.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Bn(o){let t=await Gt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return zr(e)}async function Xr(o){return(await Gt(o)).json()}async function Rn(o){return new Float32Array(await(await Gt(o)).arrayBuffer())}var _o=b(g());function Ke(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let n=o.split("/").filter(i=>i),a=o.endsWith(".json")?n[n.length-1]:e,s=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${a}`:`${s}/${a}`}}async function Jr(o,t){let{manifestUri:e,modelBaseUri:r}=Ke(o,t),n=await Xr(e);return _o.io.loadWeights(n,r)}function $n(o,t,e=!1){let{width:r,height:n}=e?Ht(t):t;return o.width=r,o.height=n,{width:r,height:n}}var Nt=b(g());var gt=b(g());var S=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:n}=this.traversePropertyPath(t);r[n].dispose(),r[n]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof gt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof gt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=gt.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await Jr(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=P.getEnv(),{manifestUri:r,modelBaseUri:n}=Ke(t,this.getDefaultModelName()),a=m=>Promise.all(m.map(p=>e(p).then(d=>d.buffer))),s=gt.io.weightsLoaderFactory(a),i=JSON.parse((await e(r)).toString()),c=await s(i,n);this.loadFromWeightMap(c)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((a,s)=>{if(!a.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:a.nextObj,objProp:s,nextObj:a.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof gt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var C=b(g());var ie=b(g());function O(o,t,e){return ie.tidy(()=>{let r=ie.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=ie.add(r,t.bias),r})}function Qe(o,t,e=!1){return C.tidy(()=>{let r=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):O(o,t.conv0,[2,2])),n=O(r,t.conv1,[1,1]),a=C.relu(C.add(r,n)),s=O(a,t.conv2,[1,1]);return C.relu(C.add(r,C.add(n,s)))})}function Le(o,t,e=!1,r=!0){return C.tidy(()=>{let n=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):O(o,t.conv0,r?[2,2]:[1,1])),a=O(n,t.conv1,[1,1]),s=C.relu(C.add(n,a)),i=O(s,t.conv2,[1,1]),c=C.relu(C.add(n,C.add(a,i))),m=O(c,t.conv3,[1,1]);return C.relu(C.add(n,C.add(a,C.add(i,m))))})}var Ct=b(g());function zt(o,t,e="same",r=!1){return Ct.tidy(()=>{let n=Ct.add(Ct.conv2d(o,t.filters,[1,1],e),t.bias);return r?Ct.relu(n):n})}function W(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var tr=b(g());function ce(o,t){return(e,r,n,a)=>{let s=tr.tensor4d(o(e*r*n*n),[n,n,e,r]),i=tr.tensor1d(o(r));return t.push({paramPath:`${a}/filters`},{paramPath:`${a}/bias`}),{filters:s,bias:i}}}var er=b(g());function rr(o,t){return(e,r,n)=>{let a=er.tensor2d(o(e*r),[e,r]),s=er.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:a,bias:s}}}var ke=b(g());var or=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function me(o,t){return(e,r,n)=>{let a=ke.tensor4d(o(3*3*e),[3,3,e,1]),s=ke.tensor4d(o(e*r),[1,1,e,r]),i=ke.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new or(a,s,i)}}function pe(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new or(e,r,n)}}function j(o,t){return(e,r,n)=>{let a=o[e];if(!Bt(a,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${a}`);return t.push({originalPath:e,paramPath:n||e}),a}}function B(o){let t=o;function e(n){let a=t.slice(0,n);return t=t.slice(n),a}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function nr(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c,m=!1){let p=m?e(s,i,3,`${c}/conv0`):r(s,i,`${c}/conv0`),d=r(i,i,`${c}/conv1`),u=r(i,i,`${c}/conv2`);return{conv0:p,conv1:d,conv2:u}}function a(s,i,c,m=!1){let{conv0:p,conv1:d,conv2:u}=n(s,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:d,conv2:u,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:a}}function wo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock4Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2"),c=n(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i,dense3:c}}}function ar(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function sr(o,t){let e=j(o,t),r=ar(e),n=pe(e);function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:d}}function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`),u=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:d,conv3:u}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Po(o){let t=[],{extractDenseBlock4Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return W(o,t),{params:r,paramMappings:t}}var Se=class extends S{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return Nt.tidy(()=>{let r=Nt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(Nt.scalar(255)),s=Le(a,e.dense0,!0);return s=Le(s,e.dense1),s=Le(s,e.dense2),s=Le(s,e.dense3),s=Nt.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Po(t)}extractParams(t){return wo(t)}};var Mo=b(g());var de=b(g());function Ae(o,t){return de.tidy(()=>de.add(de.matMul(o,t.weights),t.bias))}function Do(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:a}=B(o),i=rr(n,r)(t,e,"fc");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:r,params:{fc:i}}}function Eo(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:r("fc")};return W(o,t),{params:n,paramMappings:t}}function ir(o){let t={},e={};return Object.keys(o).forEach(r=>{let n=r.startsWith("fc")?e:t;n[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var We=class extends S{constructor(t,e){super(t);this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return Mo.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t;return Ae(r.as2D(r.shape[0],-1),e.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return Do(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Eo(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),n=r*e+r,a=t.slice(0,t.length-n),s=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(s)}};var qr=["neutral","happy","sad","angry","fearful","disgusted","surprised"],It=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);qr.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return qr.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var cr=class extends We{constructor(t=new Se){super("FaceExpressionNet",t)}forwardInput(t){return ue.tidy(()=>ue.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await E(t))}async predictExpressions(t){let e=await E(t),r=await this.forwardInput(e),n=await Promise.all(ue.unstack(r).map(async s=>{let i=await s.data();return s.dispose(),i}));r.dispose();let a=n.map(s=>new It(s));return e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Zr(o){return o.expressions instanceof It}function mr(o,t){return{...o,...{expressions:t}}}function On(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(a=>{let s=a instanceof It?a:Zr(a)?a.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=s.asSortedArray().filter(d=>d.probability>e),m=pt(a)?a.detection.box.bottomLeft:r||new x(0,0);new Mt(c.map(d=>`${d.expression} (${Rt(d.probability)})`),m).draw(o)})}function Vt(o){return pt(o)&&o.landmarks instanceof V&&o.unshiftedLandmarks instanceof V&&o.alignedRect instanceof M}function jn(o){let t=(i,c,m,p)=>Math.atan2(p-c,m-i)%Math.PI,e=i=>i*180/Math.PI,r={roll:void 0,pitch:void 0,yaw:void 0};if(!o||!o._positions||o._positions.length!==68)return r;let n=o._positions;r.roll=-t(n[36]._x,n[36]._y,n[45]._x,n[45]._y),r.pitch=t(0,Math.abs(n[0]._x-n[30]._x)/n[30]._x,Math.PI,Math.abs(n[16]._x-n[30]._x)/n[30]._x);let a=n.reduce((i,c)=>ii>c._y?i:c._y,-Infinity);return r.yaw=Math.PI*(o._imgDims._height/(s-a)/1.4-1),r}function le(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:a}=o.detection,s=new M(o.detection.score,n.rescale(a.reverse()),a),i=jn(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s,angle:i}}}var Kr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:a,pointSize:s,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=s||2,this.lineColor=a||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},Qr=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new Kr(e)}draw(t){let e=$(t),{drawLines:r,drawPoints:n,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof ne&&(e.strokeStyle=s,e.lineWidth=a,ft(e,this.faceLandmarks.getJawOutline()),ft(e,this.faceLandmarks.getLeftEyeBrow()),ft(e,this.faceLandmarks.getRightEyeBrow()),ft(e,this.faceLandmarks.getNose()),ft(e,this.faceLandmarks.getLeftEye(),!0),ft(e,this.faceLandmarks.getRightEye(),!0),ft(e,this.faceLandmarks.getMouth(),!0)),n){e.strokeStyle=c,e.fillStyle=c;let m=p=>{e.beginPath(),e.arc(p.x,p.y,i,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(m)}}};function Hn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof V?r:Vt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new Qr(n).draw(o)})}var No="1.0.1";var ut=b(g());var I=b(g());function Yn(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c){let m=r(s,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),d=e(s,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:d}}function a(s,i){let c=r(s,s,`${i}/separable_conv0`),m=r(s,s,`${i}/separable_conv1`),p=r(s,s,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:a}}function Io(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=B(o),{extractConvParams:a,extractSeparableConvParams:s,extractReductionBlockParams:i,extractMainBlockParams:c}=Yn(r,e),m=a(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),d=i(64,128,"entry_flow/reduction_block_1"),u={conv_in:m,reduction_block_0:p,reduction_block_1:d},l={};ct(t,0,1).forEach(y=>{l[`main_block_${y}`]=c(128,`middle_flow/main_block_${y}`)});let v=i(128,256,"exit_flow/reduction_block"),w=s(256,512,"exit_flow/separable_conv"),h={reduction_block:v,separable_conv:w};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:u,middle_flow:l,exit_flow:h}}}function Gn(o,t){let e=j(o,t),r=ar(e),n=pe(e);function a(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=r(`${i}/expansion_conv`);return{separable_conv0:c,separable_conv1:m,expansion_conv:p}}function s(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=n(`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}}function Lo(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}=Gn(o,e),i=r("entry_flow/conv_in"),c=a("entry_flow/reduction_block_0"),m=a("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},d={};ct(t,0,1).forEach(w=>{d[`main_block_${w}`]=s(`middle_flow/main_block_${w}`)});let u=a("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),v={reduction_block:u,separable_conv:l};return W(o,e),{params:{entry_flow:p,middle_flow:d,exit_flow:v},paramMappings:e}}function ko(o,t,e){return I.add(I.conv2d(o,t.filters,e,"same"),t.bias)}function to(o,t,e=!0){let r=e?I.relu(o):o;return r=O(r,t.separable_conv0,[1,1]),r=O(I.relu(r),t.separable_conv1,[1,1]),r=I.maxPool(r,[3,3],[2,2],"same"),r=I.add(r,ko(o,t.expansion_conv,[2,2])),r}function zn(o,t){let e=O(I.relu(o),t.separable_conv0,[1,1]);return e=O(I.relu(e),t.separable_conv1,[1,1]),e=O(I.relu(e),t.separable_conv2,[1,1]),e=I.add(e,o),e}var eo=class extends S{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyXception - load model before inference");return I.tidy(()=>{let r=I.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(I.scalar(256)),s=I.relu(ko(a,e.entry_flow.conv_in,[2,2]));return s=to(s,e.entry_flow.reduction_block_0,!1),s=to(s,e.entry_flow.reduction_block_1),ct(this._numMainBlocks,0,1).forEach(i=>{s=zn(s,e.middle_flow[`main_block_${i}`])}),s=to(s,e.exit_flow.reduction_block),s=I.relu(O(s,e.exit_flow.separable_conv,[1,1])),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return Lo(t,this._numMainBlocks)}extractParams(t){return Io(t,this._numMainBlocks)}};function So(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),n=rr(e,t),a=n(512,1,"fc/age"),s=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:a,gender:s}}}}function Ao(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return W(o,t),{params:n,paramMappings:t}}var vt;(function(o){o.FEMALE="female",o.MALE="male"})(vt||(vt={}));var pr=class extends S{constructor(t=new eo(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return ut.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t,n=ut.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),a=Ae(n,e.fc.age).as1D(),s=Ae(n,e.fc.gender);return{age:a,gender:s}})}forwardInput(t){return ut.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:ut.softmax(r)}})}async forward(t){return this.forwardInput(await E(t))}async predictAgeAndGender(t){let e=await E(t),r=await this.forwardInput(e),n=ut.unstack(r.age),a=ut.unstack(r.gender),s=n.map((c,m)=>({ageTensor:c,genderTensor:a[m]})),i=await Promise.all(s.map(async({ageTensor:c,genderTensor:m})=>{let p=(await c.data())[0],d=(await m.data())[0],u=d>.5,l=u?vt.MALE:vt.FEMALE,v=u?d:1-d;return c.dispose(),m.dispose(),{age:p,gender:l,genderProbability:v}}));return r.age.dispose(),r.gender.dispose(),e.isBatchInput?i:i[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return So(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Ao(r)}extractParams(t){let e=512*1+1+(512*2+2),r=t.slice(0,t.length-e),n=t.slice(t.length-e);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(n)}};var H=b(g());var Be=class extends We{postProcess(t,e,r){let n=r.map(({width:s,height:i})=>{let c=e/Math.max(i,s);return{width:s*c,height:i*c}}),a=n.length;return H.tidy(()=>{let s=(d,u)=>H.stack([H.fill([68],d,"float32"),H.fill([68],u,"float32")],1).as2D(1,136).as1D(),i=(d,u)=>{let{width:l,height:v}=n[d];return u(l,v)?Math.abs(l-v)/2:0},c=d=>i(d,(u,l)=>ui(d,(u,l)=>ls(c(u),m(u))))).div(H.stack(Array.from(Array(a),(d,u)=>s(n[u].width,n[u].height))))})}forwardInput(t){return H.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,n])=>({height:r,width:n})))})}async forward(t){return this.forwardInput(await E(t))}async detectLandmarks(t){let e=await E(t),r=H.tidy(()=>H.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(a,s)=>{let i=Array.from(await a.data()),c=i.filter((p,d)=>ze(d)),m=i.filter((p,d)=>!ze(d));return new ne(Array(68).fill(0).map((p,d)=>new x(c[d],m[d])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var fe=class extends Be{constructor(t=new Se){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var Lt=b(g());function Wo(o){let t=[],{extractDenseBlock3Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return W(o,t),{params:r,paramMappings:t}}function Bo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock3Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i}}}var ro=class extends S{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return Lt.tidy(()=>{let r=Lt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(Lt.scalar(255)),s=Qe(a,e.dense0,!0);return s=Qe(s,e.dense1),s=Qe(s,e.dense2),s=Lt.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Wo(t)}extractParams(t){return Bo(t)}};var dr=class extends Be{constructor(t=new ro){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Ro=class extends fe{};var U=b(g());var he=b(g());var ur=b(g());function $o(o,t){return ur.add(ur.mul(o,t.weights),t.biases)}function oo(o,t,e,r,n="same"){let{filters:a,bias:s}=t.conv,i=he.conv2d(o,a,e,n);return i=he.add(i,s),i=$o(i,t.scale),r?he.relu(i):i}function Oo(o,t){return oo(o,t,[1,1],!0)}function no(o,t){return oo(o,t,[1,1],!1)}function lr(o,t){return oo(o,t,[2,2],!0,"valid")}var Y=b(g());function Vn(o,t){function e(i,c,m){let p=o(i),d=p.length/(c*m*m);if(Ir(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return Y.tidy(()=>Y.transpose(Y.tensor4d(p,[c,d,m,m]),[2,3,1,0]))}function r(i,c,m,p){let d=e(i,c,m),u=Y.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:u}}function n(i,c){let m=Y.tensor1d(o(i)),p=Y.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function a(i,c,m,p){let d=r(i,c,m,`${p}/conv`),u=n(c,`${p}/scale`);return{conv:d,scale:u}}function s(i,c,m,p,d=!1){let u=a((d?.5:1)*i,c,m,`${p}/conv1`),l=a(i,c,m,`${p}/conv2`);return{conv1:u,conv2:l}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function jo(o){let{extractWeights:t,getRemainingWeights:e}=B(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Vn(t,r),s=n(4704,32,7,"conv32_down"),i=a(9216,32,3,"conv32_1"),c=a(9216,32,3,"conv32_2"),m=a(9216,32,3,"conv32_3"),p=a(36864,64,3,"conv64_down",!0),d=a(36864,64,3,"conv64_1"),u=a(36864,64,3,"conv64_2"),l=a(36864,64,3,"conv64_3"),v=a(147456,128,3,"conv128_down",!0),w=a(147456,128,3,"conv128_1"),h=a(147456,128,3,"conv128_2"),y=a(589824,256,3,"conv256_down",!0),T=a(589824,256,3,"conv256_1"),F=a(589824,256,3,"conv256_2"),L=a(589824,256,3,"conv256_down_out"),G=Y.tidy(()=>Y.transpose(Y.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:s,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:d,conv64_2:u,conv64_3:l,conv128_down:v,conv128_1:w,conv128_2:h,conv256_down:y,conv256_1:T,conv256_2:F,conv256_down_out:L,fc:G},paramMappings:r}}function Un(o,t){let e=j(o,t);function r(s){let i=e(`${s}/scale/weights`,1),c=e(`${s}/scale/biases`,1);return{weights:i,biases:c}}function n(s){let i=e(`${s}/conv/filters`,4),c=e(`${s}/conv/bias`,1),m=r(s);return{conv:{filters:i,bias:c},scale:m}}function a(s){return{conv1:n(`${s}/conv1`),conv2:n(`${s}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:a}}function Ho(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Un(o,t),n=e("conv32_down"),a=r("conv32_1"),s=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),d=r("conv64_3"),u=r("conv128_down"),l=r("conv128_1"),v=r("conv128_2"),w=r("conv256_down"),h=r("conv256_1"),y=r("conv256_2"),T=r("conv256_down_out"),{fc:F}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Nr(F))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${F}`);let L={conv32_down:n,conv32_1:a,conv32_2:s,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:d,conv128_down:u,conv128_1:l,conv128_2:v,conv256_down:w,conv256_1:h,conv256_2:y,conv256_down_out:T,fc:F};return W(o,t),{params:L,paramMappings:t}}var R=b(g());function nt(o,t){let e=Oo(o,t.conv1);return e=no(e,t.conv2),e=R.add(e,o),e=R.relu(e),e}function Re(o,t){let e=lr(o,t.conv1);e=no(e,t.conv2);let r=R.avgPool(o,2,2,"valid"),n=R.zeros(r.shape),a=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let i=[...e.shape];i[1]=1;let c=R.zeros(i);e=R.concat([e,c],1);let m=[...e.shape];m[2]=1;let p=R.zeros(m);e=R.concat([e,p],2)}return r=a?R.concat([r,n],3):r,e=R.add(r,e),e=R.relu(e),e}var xe=class extends S{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return U.tidy(()=>{let r=U.cast(t.toBatchTensor(150,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(U.scalar(256)),s=lr(a,e.conv32_down);s=U.maxPool(s,3,2,"valid"),s=nt(s,e.conv32_1),s=nt(s,e.conv32_2),s=nt(s,e.conv32_3),s=Re(s,e.conv64_down),s=nt(s,e.conv64_1),s=nt(s,e.conv64_2),s=nt(s,e.conv64_3),s=Re(s,e.conv128_down),s=nt(s,e.conv128_1),s=nt(s,e.conv128_2),s=Re(s,e.conv256_down),s=nt(s,e.conv256_1),s=nt(s,e.conv256_2),s=Re(s,e.conv256_down_out);let i=s.mean([1,2]);return U.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await E(t))}async computeFaceDescriptor(t){var a;if((a=t==null?void 0:t.shape)==null?void 0:a.some(s=>s<=0))return new Float32Array(128);let e=await E(t),r=U.tidy(()=>U.unstack(this.forwardInput(e))),n=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Ho(t)}extractParams(t){return jo(t)}};function Xn(o){let t=new xe;return t.extractWeights(o),t}function fr(o,t){return{...o,...{descriptor:t}}}function Jn(o){return typeof o.age=="number"}function hr(o,t){return{...o,...{age:t}}}function qn(o){return(o.gender===vt.MALE||o.gender===vt.FEMALE)&&ee(o.genderProbability)}function xr(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var st=b(g());var at=b(g());function Zn(o,t){function e(c,m){let p=at.tensor4d(o(3*3*c),[3,3,c,1]),d=at.tensor1d(o(c)),u=at.tensor1d(o(c)),l=at.tensor1d(o(c)),v=at.tensor1d(o(c));return t.push({paramPath:`${m}/filters`},{paramPath:`${m}/batch_norm_scale`},{paramPath:`${m}/batch_norm_offset`},{paramPath:`${m}/batch_norm_mean`},{paramPath:`${m}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:u,batch_norm_mean:l,batch_norm_variance:v}}function r(c,m,p,d,u){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),v=at.tensor1d(o(m));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${u?"batch_norm_offset":"bias"}`}),{filters:l,bias:v}}function n(c,m,p,d){let{filters:u,bias:l}=r(c,m,p,d,!0);return{filters:u,batch_norm_offset:l}}function a(c,m,p){let d=e(c,`${p}/depthwise_conv`),u=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:u}}function s(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=a(32,64,"mobilenetv1/conv_1"),p=a(64,128,"mobilenetv1/conv_2"),d=a(128,128,"mobilenetv1/conv_3"),u=a(128,256,"mobilenetv1/conv_4"),l=a(256,256,"mobilenetv1/conv_5"),v=a(256,512,"mobilenetv1/conv_6"),w=a(512,512,"mobilenetv1/conv_7"),h=a(512,512,"mobilenetv1/conv_8"),y=a(512,512,"mobilenetv1/conv_9"),T=a(512,512,"mobilenetv1/conv_10"),F=a(512,512,"mobilenetv1/conv_11"),L=a(512,1024,"mobilenetv1/conv_12"),G=a(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:v,conv_7:w,conv_8:h,conv_9:y,conv_10:T,conv_11:F,conv_12:L,conv_13:G}}function i(){let c=n(1024,256,1,"prediction_layer/conv_0"),m=n(256,512,3,"prediction_layer/conv_1"),p=n(512,128,1,"prediction_layer/conv_2"),d=n(128,256,3,"prediction_layer/conv_3"),u=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),v=n(256,64,1,"prediction_layer/conv_6"),w=n(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),T=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),F=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),L=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),G=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),et=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),it=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),X=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),_t=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),wt=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),Pt=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:v,conv_7:w,box_predictor_0:{box_encoding_predictor:h,class_predictor:y},box_predictor_1:{box_encoding_predictor:T,class_predictor:F},box_predictor_2:{box_encoding_predictor:L,class_predictor:G},box_predictor_3:{box_encoding_predictor:et,class_predictor:it},box_predictor_4:{box_encoding_predictor:X,class_predictor:_t},box_predictor_5:{box_encoding_predictor:wt,class_predictor:Pt}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:i}}function Yo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=Zn(e,t),s=n(),i=a(),m={extra_dim:at.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:s,prediction_layer:i,output_layer:m},paramMappings:t}}function Kn(o,t){let e=j(o,t);function r(m,p,d){let u=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:u,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,d=`MobilenetV1/Conv2d_${m}_depthwise`,u=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,v=e(`${d}/depthwise_weights`,4,`${u}/filters`),w=e(`${d}/BatchNorm/gamma`,1,`${u}/batch_norm_scale`),h=e(`${d}/BatchNorm/beta`,1,`${u}/batch_norm_offset`),y=e(`${d}/BatchNorm/moving_mean`,1,`${u}/batch_norm_mean`),T=e(`${d}/BatchNorm/moving_variance`,1,`${u}/batch_norm_variance`);return{depthwise_conv:{filters:v,batch_norm_scale:w,batch_norm_offset:h,batch_norm_mean:y,batch_norm_variance:T},pointwise_conv:r("MobilenetV1",m,l)}}function a(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:n(1),conv_2:n(2),conv_3:n(3),conv_4:n(4),conv_5:n(5),conv_6:n(6),conv_7:n(7),conv_8:n(8),conv_9:n(9),conv_10:n(10),conv_11:n(11),conv_12:n(12),conv_13:n(13)}}function s(m,p){let d=e(`${m}/weights`,4,`${p}/filters`),u=e(`${m}/biases`,1,`${p}/bias`);return{filters:d,bias:u}}function i(m){let p=s(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),d=s(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:c}}function Go(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=Kn(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!ht(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let a={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return W(o,t),{params:a,paramMappings:t}}var yt=b(g());var kt=b(g());function q(o,t,e){return kt.tidy(()=>{let r=kt.conv2d(o,t.filters,e,"same");return r=kt.add(r,t.batch_norm_offset),kt.clipByValue(r,0,6)})}var Qn=.0010000000474974513;function ta(o,t,e){return yt.tidy(()=>{let r=yt.depthwiseConv2d(o,t.filters,e,"same");return r=yt.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Qn),yt.clipByValue(r,0,6)})}function ea(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function zo(o,t){return yt.tidy(()=>{let e,r=q(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((a,s)=>{let i=s+1,c=ea(i);r=ta(r,a.depthwise_conv,c),r=q(r,a.pointwise_conv,[1,1]),i===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function ra(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),i=Math.max(r[t][1],r[t][3]),c=Math.min(r[e][0],r[e][2]),m=Math.min(r[e][1],r[e][3]),p=Math.max(r[e][0],r[e][2]),d=Math.max(r[e][1],r[e][3]),u=(s-n)*(i-a),l=(p-c)*(d-m);if(u<=0||l<=0)return 0;let v=Math.max(n,c),w=Math.max(a,m),h=Math.min(s,p),y=Math.min(i,d),T=Math.max(h-v,0)*Math.max(y-w,0);return T/(u+l-T)}function Vo(o,t,e,r,n){let a=o.shape[0],s=Math.min(e,a),i=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>n).sort((p,d)=>d.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=s)return;let d=p.score;for(let u=m.length-1;u>=0;--u){let l=ra(o,p.boxIndex,m[u]);if(l!==0&&(p.score*=c(l),p.score<=n))break}d===p.score&&m.push(p.boxIndex)}),m}var f=b(g());function oa(o){let t=f.unstack(f.transpose(o,[1,0])),e=[f.sub(t[2],t[0]),f.sub(t[3],t[1])],r=[f.add(t[0],f.div(e[0],f.scalar(2))),f.add(t[1],f.div(e[1],f.scalar(2)))];return{sizes:e,centers:r}}function na(o,t){let{sizes:e,centers:r}=oa(o),n=f.unstack(f.transpose(t,[1,0])),a=f.div(f.mul(f.exp(f.div(n[2],f.scalar(5))),e[0]),f.scalar(2)),s=f.add(f.mul(f.div(n[0],f.scalar(10)),e[0]),r[0]),i=f.div(f.mul(f.exp(f.div(n[3],f.scalar(5))),e[1]),f.scalar(2)),c=f.add(f.mul(f.div(n[1],f.scalar(10)),e[1]),r[1]);return f.transpose(f.stack([f.sub(s,a),f.sub(c,i),f.add(s,a),f.add(c,i)]),[1,0])}function Uo(o,t,e){return f.tidy(()=>{let r=o.shape[0],n=na(f.reshape(f.tile(e.extra_dim,[r,1,1]),[-1,4]),f.reshape(o,[-1,4]));n=f.reshape(n,[r,n.shape[0]/r,4]);let a=f.sigmoid(f.slice(t,[0,0,1],[-1,-1,-1])),s=f.slice(a,[0,0,0],[-1,-1,1]);s=f.reshape(s,[r,s.shape[1]]);let i=f.unstack(n),c=f.unstack(s);return{boxes:i,scores:c}})}var Oe=b(g());var $e=b(g());function Ut(o,t){return $e.tidy(()=>{let e=o.shape[0],r=$e.reshape(zt(o,t.box_encoding_predictor),[e,-1,1,4]),n=$e.reshape(zt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Xo(o,t,e){return Oe.tidy(()=>{let r=q(o,e.conv_0,[1,1]),n=q(r,e.conv_1,[2,2]),a=q(n,e.conv_2,[1,1]),s=q(a,e.conv_3,[2,2]),i=q(s,e.conv_4,[1,1]),c=q(i,e.conv_5,[2,2]),m=q(c,e.conv_6,[1,1]),p=q(m,e.conv_7,[2,2]),d=Ut(t,e.box_predictor_0),u=Ut(o,e.box_predictor_1),l=Ut(n,e.box_predictor_2),v=Ut(s,e.box_predictor_3),w=Ut(c,e.box_predictor_4),h=Ut(p,e.box_predictor_5),y=Oe.concat([d.boxPredictionEncoding,u.boxPredictionEncoding,l.boxPredictionEncoding,v.boxPredictionEncoding,w.boxPredictionEncoding,h.boxPredictionEncoding],1),T=Oe.concat([d.classPrediction,u.classPrediction,l.classPrediction,v.classPrediction,w.classPrediction,h.classPrediction],1);return{boxPredictions:y,classPredictions:T}})}var Z=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var Xt=class extends S{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return st.tidy(()=>{let r=st.cast(t.toBatchTensor(512,!1),"float32"),n=st.sub(st.mul(r,st.scalar(.007843137718737125)),st.scalar(1)),a=zo(n,e.mobilenetv1),{boxPredictions:s,classPredictions:i}=Xo(a.out,a.conv11,e.prediction_layer);return Uo(s,i,e.output_layer)})}async forward(t){return this.forwardInput(await E(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new Z(e),a=await E(t),{boxes:s,scores:i}=this.forwardInput(a),c=s[0],m=i[0];for(let F=1;F{let[L,G]=[Math.max(0,y[F][0]),Math.min(1,y[F][2])].map(X=>X*h),[et,it]=[Math.max(0,y[F][1]),Math.min(1,y[F][3])].map(X=>X*w);return new M(p[F],new oe(et,L,it-et,G-L),{height:a.getInputHeight(0),width:a.getInputWidth(0)})});return c.dispose(),m.dispose(),T}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Go(t)}extractParams(t){return Yo(t)}};function Jo(o){let t=new Xt;return t.extractWeights(o),t}function aa(o){return Jo(o)}var qo=class extends Xt{};var Zo=.4,Ko=[new x(.738768,.874946),new x(2.42204,2.65704),new x(4.30971,7.04493),new x(10.246,4.59428),new x(12.6868,11.8741)],Qo=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],tn=[117.001,114.697,97.404],en="tiny_yolov2_model",rn="tiny_yolov2_separable_conv_model";var N=b(g());var br=o=>typeof o=="number";function ao(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!br(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>br(t.x)&&br(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(br)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=b(g());var K=b(g());function be(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function Ft(o,t){return Q.tidy(()=>{let e=Q.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Q.conv2d(e,t.conv.filters,[1,1],"valid"),e=Q.sub(e,t.bn.sub),e=Q.mul(e,t.bn.truediv),e=Q.add(e,t.conv.bias),be(e)})}var St=b(g());function Tt(o,t){return St.tidy(()=>{let e=St.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=St.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=St.add(e,t.bias),be(e)})}var so=b(g());function sa(o,t){let e=ce(o,t);function r(s,i){let c=so.tensor1d(o(s)),m=so.tensor1d(o(s));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(s,i,c){let m=e(s,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let a=me(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}}function on(o,t,e,r){let{extractWeights:n,getRemainingWeights:a}=B(o),s=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=sa(n,s),p;if(t.withSeparableConvs){let[d,u,l,v,w,h,y,T,F]=r,L=t.isFirstLayerConv2d?i(d,u,3,"conv0"):m(d,u,"conv0"),G=m(u,l,"conv1"),et=m(l,v,"conv2"),it=m(v,w,"conv3"),X=m(w,h,"conv4"),_t=m(h,y,"conv5"),wt=T?m(y,T,"conv6"):void 0,Pt=F?m(T,F,"conv7"):void 0,te=i(F||T||y,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:_t,conv6:wt,conv7:Pt,conv8:te}}else{let[d,u,l,v,w,h,y,T,F]=r,L=c(d,u,"conv0"),G=c(u,l,"conv1"),et=c(l,v,"conv2"),it=c(v,w,"conv3"),X=c(w,h,"conv4"),_t=c(h,y,"conv5"),wt=c(y,T,"conv6"),Pt=c(T,F,"conv7"),te=i(F,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:_t,conv6:wt,conv7:Pt,conv8:te}}if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:p,paramMappings:s}}function ia(o,t){let e=j(o,t);function r(i){let c=e(`${i}/sub`,1),m=e(`${i}/truediv`,1);return{sub:c,truediv:m}}function n(i){let c=e(`${i}/filters`,4),m=e(`${i}/bias`,1);return{filters:c,bias:m}}function a(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let s=pe(e);return{extractConvParams:n,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function nn(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}=ia(o,e),s;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:i>7?a("conv6"):void 0,conv7:i>8?a("conv7"):void 0,conv8:r("conv8")}}else s={conv0:n("conv0"),conv1:n("conv1"),conv2:n("conv2"),conv3:n("conv3"),conv4:n("conv4"),conv5:n("conv5"),conv6:n("conv6"),conv7:n("conv7"),conv8:r("conv8")};return W(o,e),{params:s,paramMappings:e}}var lt=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var io=class extends S{constructor(t){super("TinyYolov2");ao(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,e){let r=Ft(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=Ft(r,e.conv6),r=Ft(r,e.conv7),zt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?be(zt(t,e.conv0,"valid",!1)):Tt(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?Tt(r,e.conv6):r,r=e.conv7?Tt(r,e.conv7):r,zt(r,e.conv8,"valid",!1)}forwardInput(t,e){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return N.tidy(()=>{let n=N.cast(t.toBatchTensor(e,!1),"float32");return n=this.config.meanRgb?ot(n,this.config.meanRgb):n,n=n.div(N.scalar(256)),this.config.withSeparableConvs?this.runMobilenet(n,r):this.runTinyYolov2(n,r)})}async forward(t,e){return this.forwardInput(await E(t),e)}async detect(t,e={}){let{inputSize:r,scoreThreshold:n}=new lt(e),a=await E(t),s=await this.forwardInput(a,r),i=N.tidy(()=>N.unstack(s)[0].expandDims()),c={width:a.getInputWidth(0),height:a.getInputHeight(0)},m=await this.extractBoxes(i,a.getReshapedInputDimensions(0),n);s.dispose(),i.dispose();let p=m.map(h=>h.box),d=m.map(h=>h.score),u=m.map(h=>h.classScore),l=m.map(h=>this.config.classes[h.label]);return Ar(p.map(h=>h.rescale(r)),d,this.config.iouThreshold,!0).map(h=>new Dt(d[h],u[h],l[h],p[h],c))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return nn(t,this.config)}extractParams(t){let e=this.config.filterSizes||io.DEFAULT_FILTER_SIZES,r=e?e.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return on(t,this.config,this.boxEncodingSize,e)}async extractBoxes(t,e,r){let{width:n,height:a}=e,s=Math.max(n,a),i=s/n,c=s/a,m=t.shape[1],p=this.config.anchors.length,[d,u,l]=N.tidy(()=>{let y=t.reshape([m,m,p,this.boxEncodingSize]),T=y.slice([0,0,0,0],[m,m,p,4]),F=y.slice([0,0,0,4],[m,m,p,1]),L=this.withClassScores?N.softmax(y.slice([0,0,0,5],[m,m,p,this.config.classes.length]),3):N.scalar(0);return[T,F,L]}),v=[],w=await u.array(),h=await d.array();for(let y=0;yr){let G=(T+De(h[y][T][F][0]))/m*i,et=(y+De(h[y][T][F][1]))/m*c,it=Math.exp(h[y][T][F][2])*this.config.anchors[F].x/m*i,X=Math.exp(h[y][T][F][3])*this.config.anchors[F].y/m*c,_t=G-it/2,wt=et-X/2,Pt={row:y,col:T,anchor:F},{classScore:te,label:lo}=this.withClassScores?await this.extractPredictedClass(l,Pt):{classScore:1,label:0};v.push({box:new re(_t,wt,_t+it,wt+X),score:L,classScore:L*te,label:lo,...Pt})}}return d.dispose(),u.dispose(),l.dispose(),v}async extractPredictedClass(t,e){let{row:r,col:n,anchor:a}=e,s=await t.array();return Array(this.config.classes.length).fill(0).map((i,c)=>s[r][n][a][c]).map((i,c)=>({classScore:i,label:c})).reduce((i,c)=>i.classScore>c.classScore?i:c)}},ge=io;ge.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var ve=class extends ge{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:Zo,classes:["face"],...t?{anchors:Qo,meanRgb:tn}:{anchors:Ko,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?rn:en}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function ca(o,t=!0){let e=new ve(t);return e.extractWeights(o),e}var gr=class extends lt{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var tt=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var je=b(g());var co=b(g());async function Jt(o,t,e,r,n=({alignedRect:a})=>a){let a=o.map(c=>Vt(c)?n(c):c.detection),s=r||(t instanceof co.Tensor?await se(t,a):await ae(t,a)),i=await e(s);return s.forEach(c=>c instanceof co.Tensor&&c.dispose()),i}async function ye(o,t,e,r,n){return Jt([o],t,async a=>e(a[0]),r,n)}var an=.4,sn=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],cn=[117.001,114.697,97.404];var Fe=class extends ge{constructor(){let t={withSeparableConvs:!0,iouThreshold:an,classes:["face"],anchors:sn,meanRgb:cn,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var _={ssdMobilenetv1:new Xt,tinyFaceDetector:new Fe,tinyYolov2:new ve,faceLandmark68Net:new fe,faceLandmark68TinyNet:new dr,faceRecognitionNet:new xe,faceExpressionNet:new cr,ageGenderNet:new pr},mn=(o,t)=>_.ssdMobilenetv1.locateFaces(o,t),ma=(o,t)=>_.tinyFaceDetector.locateFaces(o,t),pa=(o,t)=>_.tinyYolov2.locateFaces(o,t),pn=o=>_.faceLandmark68Net.detectLandmarks(o),da=o=>_.faceLandmark68TinyNet.detectLandmarks(o),ua=o=>_.faceRecognitionNet.computeFaceDescriptor(o),la=o=>_.faceExpressionNet.predictExpressions(o),fa=o=>_.ageGenderNet.predictAgeAndGender(o),dn=o=>_.ssdMobilenetv1.load(o),ha=o=>_.tinyFaceDetector.load(o),xa=o=>_.tinyYolov2.load(o),ba=o=>_.faceLandmark68Net.load(o),ga=o=>_.faceLandmark68TinyNet.load(o),va=o=>_.faceRecognitionNet.load(o),ya=o=>_.faceExpressionNet.load(o),Fa=o=>_.ageGenderNet.load(o),Ta=dn,_a=mn,wa=pn;var mo=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},we=class extends mo{async run(){let t=await this.parentTask,e=await Jt(t,this.input,async r=>Promise.all(r.map(n=>_.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>mr(r,e[n]))}withAgeAndGender(){return new Te(this,this.input)}},Pe=class extends mo{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>_.faceExpressionNet.predictExpressions(r),this.extractedFaces);return mr(t,e)}withAgeAndGender(){return new _e(this,this.input)}},Kt=class extends we{withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Qt=class extends Pe{withAgeAndGender(){return new Zt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var po=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},Te=class extends po{async run(){let t=await this.parentTask,e=await Jt(t,this.input,async r=>Promise.all(r.map(n=>_.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:a,gender:s,genderProbability:i}=e[n];return hr(xr(r,s,i),a)})}withFaceExpressions(){return new we(this,this.input)}},_e=class extends po{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await ye(t,this.input,a=>_.ageGenderNet.predictAgeAndGender(a),this.extractedFaces);return hr(xr(t,r,n),e)}withFaceExpressions(){return new Pe(this,this.input)}},qt=class extends Te{withFaceExpressions(){return new Kt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Zt=class extends _e{withFaceExpressions(){return new Qt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var vr=class extends tt{constructor(t,e){super();this.parentTask=t;this.input=e}},At=class extends vr{async run(){let t=await this.parentTask;return(await Jt(t,this.input,r=>Promise.all(r.map(n=>_.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>fr(t[n],r))}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}},Wt=class extends vr{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>_.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return fr(t,e)}withFaceExpressions(){return new Qt(this,this.input)}withAgeAndGender(){return new Zt(this,this.input)}};var yr=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?_.faceLandmark68TinyNet:_.faceLandmark68Net}},Fr=class extends yr{async run(){let t=await this.parentTask,e=t.map(a=>a.detection),r=this.input instanceof je.Tensor?await se(this.input,e):await ae(this.input,e),n=await Promise.all(r.map(a=>this.landmarkNet.detectLandmarks(a)));return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),t.map((a,s)=>le(a,n[s]))}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Tr=class extends yr{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof je.Tensor?await se(this.input,[e]):await ae(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),le(t,n)}withFaceExpressions(){return new Qt(this,this.input)}withAgeAndGender(){return new Zt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var _r=class extends tt{constructor(t,e=new Z){super();this.input=t;this.options=e}},He=class extends _r{async run(){let{input:t,options:e}=this,r;if(e instanceof gr)r=_.tinyFaceDetector.locateFaces(t,e);else if(e instanceof Z)r=_.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof lt)r=_.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise(async t=>{let e=await this.run();t(e.map(r=>Ot({},r)))})}withFaceLandmarks(t=!1){return new Fr(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new we(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Te(this.runAndExtendWithFaceDetections(),this.input)}},wr=class extends _r{async run(){let t=await new He(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?Ot({},e):void 0)})}withFaceLandmarks(t=!1){return new Tr(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Pe(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new _e(this.runAndExtendWithFaceDetection(),this.input)}};function Pa(o,t=new Z){return new wr(o,t)}function Pr(o,t=new Z){return new He(o,t)}async function un(o,t){return Pr(o,new Z(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function Da(o,t={}){return Pr(o,new lt(t)).withFaceLandmarks().withFaceDescriptors()}var Ea=un;function uo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((n,a)=>n-r[a]).reduce((n,a)=>n+a**2,0))}var Dr=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1,a=()=>`person ${n++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof xt)return s;if(s instanceof Float32Array)return new xt(a(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new xt(a(),[s.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>uo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new Ee(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>xt.fromJSON(r));return new Dr(e,t.distanceThreshold)}};function Ma(o){let t=new Fe;return t.extractWeights(o),t}function ln(o,t){let{width:e,height:r}=new A(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(n=>ln(n,{width:e,height:r}));if(Vt(o)){let n=o.detection.forSize(e,r),a=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return le(Ot(o,n),a)}return pt(o)?Ot(o,o.detection.forSize(e,r)):o instanceof V||o instanceof M?o.forSize(e,r):o}var Na=typeof process!="undefined",Ia=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",La={faceapi:No,node:Na,browser:Ia}; //# sourceMappingURL=face-api.node-gpu.js.map diff --git a/dist/face-api.node-gpu.json b/dist/face-api.node-gpu.json deleted file mode 100644 index 09c3c45..0000000 --- a/dist/face-api.node-gpu.json +++ /dev/null @@ -1,3073 +0,0 @@ -{ - "inputs": { - "dist/tfjs.esm.js": { - "bytes": 735, - "imports": [] - }, - "src/draw/drawContour.ts": { - "bytes": 539, - "imports": [] - }, - "src/classes/Dimensions.ts": { - "bytes": 745, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/utils/index.ts": { - "bytes": 1793, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/Point.ts": { - "bytes": 925, - "imports": [] - }, - "src/classes/Box.ts": { - "bytes": 5690, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Point.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/BoundingBox.ts": { - "bytes": 402, - "imports": [ - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/ObjectDetection.ts": { - "bytes": 1424, - "imports": [ - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceDetection.ts": { - "bytes": 656, - "imports": [ - { - "path": "src/classes/ObjectDetection.ts", - "kind": "import-statement" - } - ] - }, - "src/ops/iou.ts": { - "bytes": 473, - "imports": [] - }, - "src/ops/minBbox.ts": { - "bytes": 498, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ops/nonMaxSuppression.ts": { - "bytes": 924, - "imports": [ - { - "path": "src/ops/iou.ts", - "kind": "import-statement" - } - ] - }, - "src/ops/normalize.ts": { - "bytes": 483, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ops/padToSquare.ts": { - "bytes": 1684, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ops/shuffleArray.ts": { - "bytes": 273, - "imports": [] - }, - "src/ops/index.ts": { - "bytes": 331, - "imports": [ - { - "path": "src/ops/iou.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/minBbox.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/nonMaxSuppression.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/normalize.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/padToSquare.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/shuffleArray.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/Rect.ts": { - "bytes": 359, - "imports": [ - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceLandmarks.ts": { - "bytes": 4199, - "imports": [ - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Point.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Rect.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceLandmarks5.ts": { - "bytes": 360, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceLandmarks68.ts": { - "bytes": 915, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceMatch.ts": { - "bytes": 578, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/LabeledBox.ts": { - "bytes": 645, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/LabeledFaceDescriptors.ts": { - "bytes": 1072, - "imports": [] - }, - "src/classes/PredictedBox.ts": { - "bytes": 952, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledBox.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/index.ts": { - "bytes": 436, - "imports": [ - { - "path": "src/classes/BoundingBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks5.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks68.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceMatch.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledFaceDescriptors.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/ObjectDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Point.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/PredictedBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Rect.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceDetection.ts": { - "bytes": 486, - "imports": [ - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - } - ] - }, - "src/env/createBrowserEnv.ts": { - "bytes": 636, - "imports": [] - }, - "src/env/createFileSystem.ts": { - "bytes": 654, - "imports": [] - }, - "src/env/createNodejsEnv.ts": { - "bytes": 1202, - "imports": [ - { - "path": "src/env/createFileSystem.ts", - "kind": "import-statement" - } - ] - }, - "src/env/isBrowser.ts": { - "bytes": 354, - "imports": [] - }, - "src/env/isNodejs.ts": { - "bytes": 295, - "imports": [] - }, - "src/env/types.ts": { - "bytes": 570, - "imports": [] - }, - "src/env/index.ts": { - "bytes": 1817, - "imports": [ - { - "path": "src/env/createBrowserEnv.ts", - "kind": "import-statement" - }, - { - "path": "src/env/createFileSystem.ts", - "kind": "import-statement" - }, - { - "path": "src/env/createNodejsEnv.ts", - "kind": "import-statement" - }, - { - "path": "src/env/isBrowser.ts", - "kind": "import-statement" - }, - { - "path": "src/env/isNodejs.ts", - "kind": "import-statement" - }, - { - "path": "src/env/types.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/resolveInput.ts": { - "bytes": 200, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/getContext2dOrThrow.ts": { - "bytes": 673, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/DrawTextField.ts": { - "bytes": 4094, - "imports": [ - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/DrawBox.ts": { - "bytes": 1831, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawTextField.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/drawDetections.ts": { - "bytes": 1128, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawBox.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/isMediaLoaded.ts": { - "bytes": 277, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/awaitMediaLoaded.ts": { - "bytes": 963, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaLoaded.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/bufferToImage.ts": { - "bytes": 687, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/getMediaDimensions.ts": { - "bytes": 529, - "imports": [ - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/createCanvas.ts": { - "bytes": 1139, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaLoaded.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/imageTensorToCanvas.ts": { - "bytes": 615, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/isMediaElement.ts": { - "bytes": 228, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/imageToSquare.ts": { - "bytes": 1296, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/NetInput.ts": { - "bytes": 5508, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/padToSquare.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageToSquare.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/toNetInput.ts": { - "bytes": 2115, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/awaitMediaLoaded.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaElement.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/NetInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/extractFaces.ts": { - "bytes": 1804, - "imports": [ - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageTensorToCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/toNetInput.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/extractFaceTensors.ts": { - "bytes": 1730, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchOrThrow.ts": { - "bytes": 390, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchImage.ts": { - "bytes": 451, - "imports": [ - { - "path": "src/dom/bufferToImage.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchJson.ts": { - "bytes": 155, - "imports": [ - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchNetWeights.ts": { - "bytes": 200, - "imports": [ - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - } - ] - }, - "src/common/getModelUris.ts": { - "bytes": 1052, - "imports": [] - }, - "src/dom/loadWeightMap.ts": { - "bytes": 552, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/getModelUris.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchJson.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/matchDimensions.ts": { - "bytes": 401, - "imports": [ - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/types.ts": { - "bytes": 383, - "imports": [] - }, - "src/dom/index.ts": { - "bytes": 696, - "imports": [ - { - "path": "src/dom/awaitMediaLoaded.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/bufferToImage.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/extractFaces.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/extractFaceTensors.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchImage.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchJson.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchNetWeights.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageTensorToCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageToSquare.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaElement.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaLoaded.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/loadWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/matchDimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/NetInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/toNetInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/types.ts", - "kind": "import-statement" - } - ] - }, - "src/NeuralNetwork.ts": { - "bytes": 5291, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/getModelUris.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/common/depthwiseSeparableConv.ts": { - "bytes": 414, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/denseBlock.ts": { - "bytes": 2038, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/depthwiseSeparableConv.ts", - "kind": "import-statement" - } - ] - }, - "src/common/convLayer.ts": { - "bytes": 428, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/common/disposeUnusedWeightTensors.ts": { - "bytes": 290, - "imports": [] - }, - "src/common/extractConvParamsFactory.ts": { - "bytes": 766, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/common/extractFCParamsFactory.ts": { - "bytes": 711, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/common/types.ts": { - "bytes": 797, - "imports": [] - }, - "src/common/extractSeparableConvParamsFactory.ts": { - "bytes": 1533, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/types.ts", - "kind": "import-statement" - } - ] - }, - "src/common/extractWeightEntryFactory.ts": { - "bytes": 579, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/common/extractWeightsFactory.ts": { - "bytes": 441, - "imports": [] - }, - "src/common/index.ts": { - "bytes": 399, - "imports": [ - { - "path": "src/common/convLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/common/depthwiseSeparableConv.ts", - "kind": "import-statement" - }, - { - "path": "src/common/disposeUnusedWeightTensors.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractFCParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractSeparableConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightEntryFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/getModelUris.ts", - "kind": "import-statement" - }, - { - "path": "src/common/types.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractorsFactory.ts": { - "bytes": 1587, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParams.ts": { - "bytes": 1030, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractorsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/common/loadConvParamsFactory.ts": { - "bytes": 466, - "imports": [] - }, - "src/faceFeatureExtractor/loadParamsFactory.ts": { - "bytes": 1547, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/common/loadConvParamsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParamsFromWeightMap.ts": { - "bytes": 838, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/loadParamsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/FaceFeatureExtractor.ts": { - "bytes": 1806, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/denseBlock.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParamsFromWeightMap.ts", - "kind": "import-statement" - } - ] - }, - "src/common/fullyConnectedLayer.ts": { - "bytes": 263, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/faceProcessor/extractParams.ts": { - "bytes": 759, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceProcessor/extractParamsFromWeightMap.ts": { - "bytes": 823, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceProcessor/util.ts": { - "bytes": 421, - "imports": [] - }, - "src/faceProcessor/FaceProcessor.ts": { - "bytes": 3034, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/fullyConnectedLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/util.ts", - "kind": "import-statement" - } - ] - }, - "src/faceExpressionNet/FaceExpressions.ts": { - "bytes": 869, - "imports": [] - }, - "src/faceExpressionNet/FaceExpressionNet.ts": { - "bytes": 1664, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/FaceFeatureExtractor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/FaceProcessor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/FaceExpressions.ts", - "kind": "import-statement" - } - ] - }, - "src/faceExpressionNet/index.ts": { - "bytes": 72, - "imports": [ - { - "path": "src/faceExpressionNet/FaceExpressionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/FaceExpressions.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceExpressions.ts": { - "bytes": 524, - "imports": [ - { - "path": "src/faceExpressionNet/FaceExpressions.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/drawFaceExpressions.ts": { - "bytes": 1612, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawTextField.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceLandmarks.ts": { - "bytes": 3592, - "imports": [ - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/DrawFaceLandmarks.ts": { - "bytes": 3528, - "imports": [ - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks68.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/drawContour.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/index.ts": { - "bytes": 201, - "imports": [ - { - "path": "src/draw/drawContour.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/drawDetections.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/drawFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawBox.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawTextField.ts", - "kind": "import-statement" - } - ] - }, - "package.json": { - "bytes": 2040, - "imports": [] - }, - "src/xception/extractParams.ts": { - "bytes": 3440, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/xception/extractParamsFromWeightMap.ts": { - "bytes": 3130, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/common/loadConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/xception/TinyXception.ts": { - "bytes": 3143, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/xception/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/xception/extractParamsFromWeightMap.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/extractParams.ts": { - "bytes": 778, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/extractParamsFromWeightMap.ts": { - "bytes": 891, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/types.ts": { - "bytes": 525, - "imports": [] - }, - "src/ageGenderNet/AgeGenderNet.ts": { - "bytes": 4269, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/fullyConnectedLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/util.ts", - "kind": "import-statement" - }, - { - "path": "src/xception/TinyXception.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/types.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/index.ts": { - "bytes": 57, - "imports": [ - { - "path": "src/ageGenderNet/AgeGenderNet.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/types.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/FaceLandmark68NetBase.ts": { - "bytes": 3717, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks68.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/FaceProcessor.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/FaceLandmark68Net.ts": { - "bytes": 622, - "imports": [ - { - "path": "src/faceFeatureExtractor/FaceFeatureExtractor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68NetBase.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts": { - "bytes": 802, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/loadParamsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParamsTiny.ts": { - "bytes": 960, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractorsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts": { - "bytes": 1816, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/denseBlock.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParamsTiny.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/FaceLandmark68TinyNet.ts": { - "bytes": 659, - "imports": [ - { - "path": "src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68NetBase.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/index.ts": { - "bytes": 194, - "imports": [ - { - "path": "src/faceLandmarkNet/FaceLandmark68Net.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68Net.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68TinyNet.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/scaleLayer.ts": { - "bytes": 229, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/convLayer.ts": { - "bytes": 850, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/scaleLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/extractParams.ts": { - "bytes": 4907, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/extractParamsFromWeightMap.ts": { - "bytes": 3098, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/residualLayer.ts": { - "bytes": 1342, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/convLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/FaceRecognitionNet.ts": { - "bytes": 2959, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/convLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/residualLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/index.ts": { - "bytes": 252, - "imports": [ - { - "path": "src/faceRecognitionNet/FaceRecognitionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/FaceRecognitionNet.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceDescriptor.ts": { - "bytes": 301, - "imports": [] - }, - "src/factories/WithAge.ts": { - "bytes": 334, - "imports": [] - }, - "src/factories/WithGender.ts": { - "bytes": 618, - "imports": [ - { - "path": "src/ageGenderNet/types.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/index.ts": { - "bytes": 208, - "imports": [ - { - "path": "src/factories/WithFaceDescriptor.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithAge.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithGender.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/extractParams.ts": { - "bytes": 8330, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/extractParamsFromWeightMap.ts": { - "bytes": 5775, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/pointwiseConvLayer.ts": { - "bytes": 391, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/mobileNetV1.ts": { - "bytes": 1811, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/pointwiseConvLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/nonMaxSuppression.ts": { - "bytes": 2170, - "imports": [] - }, - "src/ssdMobilenetv1/outputLayer.ts": { - "bytes": 2183, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/boxPredictionLayer.ts": { - "bytes": 598, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/predictionLayer.ts": { - "bytes": 2055, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/boxPredictionLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/pointwiseConvLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/SsdMobilenetv1Options.ts": { - "bytes": 881, - "imports": [] - }, - "src/ssdMobilenetv1/SsdMobilenetv1.ts": { - "bytes": 3652, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/mobileNetV1.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/nonMaxSuppression.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/outputLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/predictionLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/index.ts": { - "bytes": 471, - "imports": [ - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/const.ts": { - "bytes": 704, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/config.ts": { - "bytes": 1701, - "imports": [] - }, - "src/tinyYolov2/leaky.ts": { - "bytes": 238, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/convWithBatchNorm.ts": { - "bytes": 530, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/leaky.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/depthwiseSeparableConv.ts": { - "bytes": 500, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/leaky.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/extractParams.ts": { - "bytes": 3911, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractSeparableConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/extractParamsFromWeightMap.ts": { - "bytes": 3282, - "imports": [ - { - "path": "src/common/disposeUnusedWeightTensors.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractSeparableConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightEntryFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/TinyYolov2Options.ts": { - "bytes": 913, - "imports": [] - }, - "src/tinyYolov2/TinyYolov2Base.ts": { - "bytes": 9606, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/BoundingBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/ObjectDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/nonMaxSuppression.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/normalize.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/config.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/convWithBatchNorm.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/depthwiseSeparableConv.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/leaky.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Options.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/TinyYolov2.ts": { - "bytes": 1801, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/const.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Base.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/types.ts": { - "bytes": 952, - "imports": [] - }, - "src/tinyYolov2/index.ts": { - "bytes": 347, - "imports": [ - { - "path": "src/tinyYolov2/TinyYolov2.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Options.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/config.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/types.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/TinyFaceDetectorOptions.ts": { - "bytes": 272, - "imports": [ - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/ComposableTask.ts": { - "bytes": 322, - "imports": [] - }, - "src/globalApi/extractFacesAndComputeResults.ts": { - "bytes": 2037, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/const.ts": { - "bytes": 354, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/TinyFaceDetector.ts": { - "bytes": 1470, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Base.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/const.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/nets.ts": { - "bytes": 6336, - "imports": [ - { - "path": "src/ageGenderNet/AgeGenderNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/FaceExpressionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68Net.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68TinyNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/FaceRecognitionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetector.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/PredictFaceExpressionsTask.ts": { - "bytes": 3827, - "imports": [ - { - "path": "src/factories/WithFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/extractFacesAndComputeResults.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/PredictAgeAndGenderTask.ts": { - "bytes": 4008, - "imports": [ - { - "path": "src/factories/WithAge.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithGender.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/extractFacesAndComputeResults.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/ComputeFaceDescriptorsTasks.ts": { - "bytes": 3215, - "imports": [ - { - "path": "src/factories/WithFaceDescriptor.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/extractFacesAndComputeResults.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/DetectFaceLandmarksTasks.ts": { - "bytes": 4002, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/DetectFacesTasks.ts": { - "bytes": 4124, - "imports": [ - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetectorOptions.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFaceLandmarksTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/detectFaces.ts": { - "bytes": 624, - "imports": [ - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFacesTasks.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/allFaces.ts": { - "bytes": 1056, - "imports": [ - { - "path": "src/ssdMobilenetv1/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/detectFaces.ts", - "kind": "import-statement" - } - ] - }, - "src/euclideanDistance.ts": { - "bytes": 398, - "imports": [] - }, - "src/globalApi/FaceMatcher.ts": { - "bytes": 2992, - "imports": [ - { - "path": "src/classes/FaceMatch.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledFaceDescriptors.ts", - "kind": "import-statement" - }, - { - "path": "src/euclideanDistance.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/types.ts": { - "bytes": 556, - "imports": [] - }, - "src/globalApi/index.ts": { - "bytes": 300, - "imports": [ - { - "path": "src/globalApi/allFaces.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/detectFaces.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFacesTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFaceLandmarksTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/FaceMatcher.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/types.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/index.ts": { - "bytes": 285, - "imports": [ - { - "path": "src/tinyFaceDetector/TinyFaceDetector.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetector.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetectorOptions.ts", - "kind": "import-statement" - } - ] - }, - "src/resizeResults.ts": { - "bytes": 1519, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/index.ts": { - "bytes": 987, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/draw/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "package.json", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/index.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - }, - { - "path": "src/euclideanDistance.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/resizeResults.ts", - "kind": "import-statement" - } - ] - } - }, - "outputs": { - "dist/face-api.node-gpu.js.map": { - "imports": [], - "exports": [], - "inputs": {}, - "bytes": 315816 - }, - "dist/face-api.node-gpu.js": { - "imports": [], - "exports": [], - "entryPoint": "src/index.ts", - "inputs": { - "dist/tfjs.esm.js": { - "bytesInOutput": 598 - }, - "src/env/isNodejs.ts": { - "bytesInOutput": 176 - }, - "src/index.ts": { - "bytesInOutput": 3015 - }, - "src/draw/index.ts": { - "bytesInOutput": 277 - }, - "src/draw/drawContour.ts": { - "bytesInOutput": 213 - }, - "src/utils/index.ts": { - "bytesInOutput": 1011 - }, - "src/classes/Dimensions.ts": { - "bytesInOutput": 335 - }, - "src/classes/Point.ts": { - "bytesInOutput": 433 - }, - "src/classes/Box.ts": { - "bytesInOutput": 2646 - }, - "src/classes/BoundingBox.ts": { - "bytesInOutput": 92 - }, - "src/classes/index.ts": { - "bytesInOutput": 0 - }, - "src/classes/ObjectDetection.ts": { - "bytesInOutput": 624 - }, - "src/classes/FaceDetection.ts": { - "bytesInOutput": 153 - }, - "src/ops/iou.ts": { - "bytesInOutput": 215 - }, - "src/ops/index.ts": { - "bytesInOutput": 81 - }, - "src/ops/minBbox.ts": { - "bytesInOutput": 204 - }, - "src/ops/nonMaxSuppression.ts": { - "bytesInOutput": 282 - }, - "src/ops/normalize.ts": { - "bytesInOutput": 255 - }, - "src/ops/padToSquare.ts": { - "bytesInOutput": 332 - }, - "src/ops/shuffleArray.ts": { - "bytesInOutput": 132 - }, - "src/classes/Rect.ts": { - "bytesInOutput": 87 - }, - "src/classes/FaceLandmarks.ts": { - "bytesInOutput": 1393 - }, - "src/classes/FaceLandmarks5.ts": { - "bytesInOutput": 107 - }, - "src/classes/FaceLandmarks68.ts": { - "bytesInOutput": 464 - }, - "src/classes/FaceMatch.ts": { - "bytesInOutput": 201 - }, - "src/classes/LabeledBox.ts": { - "bytesInOutput": 250 - }, - "src/classes/LabeledFaceDescriptors.ts": { - "bytesInOutput": 595 - }, - "src/classes/PredictedBox.ts": { - "bytesInOutput": 385 - }, - "src/factories/WithFaceDetection.ts": { - "bytesInOutput": 94 - }, - "src/env/createBrowserEnv.ts": { - "bytesInOutput": 445 - }, - "src/env/createFileSystem.ts": { - "bytesInOutput": 247 - }, - "src/env/createNodejsEnv.ts": { - "bytesInOutput": 600 - }, - "src/env/isBrowser.ts": { - "bytesInOutput": 267 - }, - "src/env/index.ts": { - "bytesInOutput": 794 - }, - "src/dom/resolveInput.ts": { - "bytesInOutput": 84 - }, - "src/dom/getContext2dOrThrow.ts": { - "bytesInOutput": 312 - }, - "src/draw/DrawTextField.ts": { - "bytesInOutput": 1484 - }, - "src/draw/DrawBox.ts": { - "bytesInOutput": 581 - }, - "src/draw/drawDetections.ts": { - "bytesInOutput": 220 - }, - "src/faceExpressionNet/FaceExpressionNet.ts": { - "bytesInOutput": 567 - }, - "src/dom/isMediaLoaded.ts": { - "bytesInOutput": 114 - }, - "src/dom/awaitMediaLoaded.ts": { - "bytesInOutput": 423 - }, - "src/dom/index.ts": { - "bytesInOutput": 0 - }, - "src/dom/bufferToImage.ts": { - "bytesInOutput": 386 - }, - "src/dom/getMediaDimensions.ts": { - "bytesInOutput": 180 - }, - "src/dom/createCanvas.ts": { - "bytesInOutput": 389 - }, - "src/dom/imageTensorToCanvas.ts": { - "bytesInOutput": 200 - }, - "src/dom/isMediaElement.ts": { - "bytesInOutput": 110 - }, - "src/dom/NetInput.ts": { - "bytesInOutput": 2214 - }, - "src/dom/imageToSquare.ts": { - "bytesInOutput": 442 - }, - "src/dom/toNetInput.ts": { - "bytesInOutput": 773 - }, - "src/dom/extractFaces.ts": { - "bytesInOutput": 485 - }, - "src/dom/extractFaceTensors.ts": { - "bytesInOutput": 442 - }, - "src/dom/fetchOrThrow.ts": { - "bytesInOutput": 176 - }, - "src/dom/fetchImage.ts": { - "bytesInOutput": 218 - }, - "src/dom/fetchJson.ts": { - "bytesInOutput": 48 - }, - "src/dom/fetchNetWeights.ts": { - "bytesInOutput": 79 - }, - "src/dom/loadWeightMap.ts": { - "bytesInOutput": 123 - }, - "src/common/getModelUris.ts": { - "bytesInOutput": 473 - }, - "src/dom/matchDimensions.ts": { - "bytesInOutput": 101 - }, - "src/faceFeatureExtractor/FaceFeatureExtractor.ts": { - "bytesInOutput": 621 - }, - "src/NeuralNetwork.ts": { - "bytesInOutput": 2654 - }, - "src/faceFeatureExtractor/denseBlock.ts": { - "bytesInOutput": 568 - }, - "src/common/depthwiseSeparableConv.ts": { - "bytesInOutput": 157 - }, - "src/common/convLayer.ts": { - "bytesInOutput": 141 - }, - "src/common/index.ts": { - "bytesInOutput": 0 - }, - "src/common/disposeUnusedWeightTensors.ts": { - "bytesInOutput": 91 - }, - "src/common/extractConvParamsFactory.ts": { - "bytesInOutput": 195 - }, - "src/common/extractFCParamsFactory.ts": { - "bytesInOutput": 185 - }, - "src/common/extractSeparableConvParamsFactory.ts": { - "bytesInOutput": 396 - }, - "src/common/types.ts": { - "bytesInOutput": 94 - }, - "src/common/extractWeightEntryFactory.ts": { - "bytesInOutput": 188 - }, - "src/common/extractWeightsFactory.ts": { - "bytesInOutput": 146 - }, - "src/faceFeatureExtractor/extractorsFactory.ts": { - "bytesInOutput": 377 - }, - "src/faceFeatureExtractor/extractParams.ts": { - "bytesInOutput": 343 - }, - "src/common/loadConvParamsFactory.ts": { - "bytesInOutput": 97 - }, - "src/faceFeatureExtractor/loadParamsFactory.ts": { - "bytesInOutput": 388 - }, - "src/faceFeatureExtractor/extractParamsFromWeightMap.ts": { - "bytesInOutput": 185 - }, - "src/faceProcessor/FaceProcessor.ts": { - "bytesInOutput": 1037 - }, - "src/common/fullyConnectedLayer.ts": { - "bytesInOutput": 89 - }, - "src/faceProcessor/extractParams.ts": { - "bytesInOutput": 214 - }, - "src/faceProcessor/extractParamsFromWeightMap.ts": { - "bytesInOutput": 177 - }, - "src/faceProcessor/util.ts": { - "bytesInOutput": 144 - }, - "src/faceExpressionNet/FaceExpressions.ts": { - "bytesInOutput": 369 - }, - "src/faceExpressionNet/index.ts": { - "bytesInOutput": 0 - }, - "src/factories/WithFaceExpressions.ts": { - "bytesInOutput": 99 - }, - "src/draw/drawFaceExpressions.ts": { - "bytesInOutput": 420 - }, - "src/factories/WithFaceLandmarks.ts": { - "bytesInOutput": 829 - }, - "src/draw/DrawFaceLandmarks.ts": { - "bytesInOutput": 1225 - }, - "package.json": { - "bytesInOutput": 15 - }, - "src/ageGenderNet/AgeGenderNet.ts": { - "bytesInOutput": 1688 - }, - "src/xception/TinyXception.ts": { - "bytesInOutput": 1265 - }, - "src/xception/extractParams.ts": { - "bytesInOutput": 1234 - }, - "src/xception/extractParamsFromWeightMap.ts": { - "bytesInOutput": 1047 - }, - "src/ageGenderNet/extractParams.ts": { - "bytesInOutput": 258 - }, - "src/ageGenderNet/extractParamsFromWeightMap.ts": { - "bytesInOutput": 209 - }, - "src/ageGenderNet/types.ts": { - "bytesInOutput": 67 - }, - "src/ageGenderNet/index.ts": { - "bytesInOutput": 0 - }, - "src/faceLandmarkNet/FaceLandmark68NetBase.ts": { - "bytesInOutput": 1177 - }, - "src/faceLandmarkNet/FaceLandmark68Net.ts": { - "bytesInOutput": 167 - }, - "src/faceLandmarkNet/index.ts": { - "bytesInOutput": 26 - }, - "src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts": { - "bytesInOutput": 619 - }, - "src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts": { - "bytesInOutput": 166 - }, - "src/faceFeatureExtractor/extractParamsTiny.ts": { - "bytesInOutput": 312 - }, - "src/faceLandmarkNet/FaceLandmark68TinyNet.ts": { - "bytesInOutput": 176 - }, - "src/faceRecognitionNet/FaceRecognitionNet.ts": { - "bytesInOutput": 1156 - }, - "src/faceRecognitionNet/convLayer.ts": { - "bytesInOutput": 277 - }, - "src/faceRecognitionNet/scaleLayer.ts": { - "bytesInOutput": 75 - }, - "src/faceRecognitionNet/extractParams.ts": { - "bytesInOutput": 1803 - }, - "src/faceRecognitionNet/extractParamsFromWeightMap.ts": { - "bytesInOutput": 1113 - }, - "src/faceRecognitionNet/residualLayer.ts": { - "bytesInOutput": 466 - }, - "src/faceRecognitionNet/index.ts": { - "bytesInOutput": 57 - }, - "src/factories/WithFaceDescriptor.ts": { - "bytesInOutput": 48 - }, - "src/factories/index.ts": { - "bytesInOutput": 0 - }, - "src/factories/WithAge.ts": { - "bytesInOutput": 86 - }, - "src/factories/WithGender.ts": { - "bytesInOutput": 155 - }, - "src/ssdMobilenetv1/SsdMobilenetv1.ts": { - "bytesInOutput": 1224 - }, - "src/ssdMobilenetv1/extractParams.ts": { - "bytesInOutput": 3588 - }, - "src/ssdMobilenetv1/extractParamsFromWeightMap.ts": { - "bytesInOutput": 2463 - }, - "src/ssdMobilenetv1/mobileNetV1.ts": { - "bytesInOutput": 715 - }, - "src/ssdMobilenetv1/pointwiseConvLayer.ts": { - "bytesInOutput": 153 - }, - "src/ssdMobilenetv1/nonMaxSuppression.ts": { - "bytesInOutput": 792 - }, - "src/ssdMobilenetv1/outputLayer.ts": { - "bytesInOutput": 927 - }, - "src/ssdMobilenetv1/predictionLayer.ts": { - "bytesInOutput": 721 - }, - "src/ssdMobilenetv1/boxPredictionLayer.ts": { - "bytesInOutput": 223 - }, - "src/ssdMobilenetv1/SsdMobilenetv1Options.ts": { - "bytesInOutput": 518 - }, - "src/ssdMobilenetv1/index.ts": { - "bytesInOutput": 111 - }, - "src/tinyYolov2/const.ts": { - "bytesInOutput": 348 - }, - "src/tinyYolov2/TinyYolov2Base.ts": { - "bytesInOutput": 3656 - }, - "src/tinyYolov2/config.ts": { - "bytesInOutput": 1012 - }, - "src/tinyYolov2/convWithBatchNorm.ts": { - "bytesInOutput": 215 - }, - "src/tinyYolov2/leaky.ts": { - "bytesInOutput": 128 - }, - "src/tinyYolov2/depthwiseSeparableConv.ts": { - "bytesInOutput": 203 - }, - "src/tinyYolov2/extractParams.ts": { - "bytesInOutput": 1290 - }, - "src/tinyYolov2/extractParamsFromWeightMap.ts": { - "bytesInOutput": 972 - }, - "src/tinyYolov2/TinyYolov2Options.ts": { - "bytesInOutput": 556 - }, - "src/tinyYolov2/TinyYolov2.ts": { - "bytesInOutput": 545 - }, - "src/tinyYolov2/index.ts": { - "bytesInOutput": 65 - }, - "src/tinyFaceDetector/TinyFaceDetectorOptions.ts": { - "bytesInOutput": 97 - }, - "src/globalApi/ComposableTask.ts": { - "bytesInOutput": 127 - }, - "src/globalApi/DetectFaceLandmarksTasks.ts": { - "bytesInOutput": 1133 - }, - "src/globalApi/extractFacesAndComputeResults.ts": { - "bytesInOutput": 300 - }, - "src/tinyFaceDetector/const.ts": { - "bytesInOutput": 168 - }, - "src/tinyFaceDetector/TinyFaceDetector.ts": { - "bytesInOutput": 495 - }, - "src/globalApi/nets.ts": { - "bytesInOutput": 844 - }, - "src/globalApi/PredictFaceExpressionsTask.ts": { - "bytesInOutput": 852 - }, - "src/globalApi/PredictAgeAndGenderTask.ts": { - "bytesInOutput": 957 - }, - "src/globalApi/ComputeFaceDescriptorsTasks.ts": { - "bytesInOutput": 752 - }, - "src/globalApi/DetectFacesTasks.ts": { - "bytesInOutput": 1335 - }, - "src/globalApi/detectFaces.ts": { - "bytesInOutput": 84 - }, - "src/globalApi/allFaces.ts": { - "bytesInOutput": 209 - }, - "src/globalApi/index.ts": { - "bytesInOutput": 0 - }, - "src/euclideanDistance.ts": { - "bytesInOutput": 205 - }, - "src/globalApi/FaceMatcher.ts": { - "bytesInOutput": 1333 - }, - "src/tinyFaceDetector/index.ts": { - "bytesInOutput": 57 - }, - "src/resizeResults.ts": { - "bytesInOutput": 443 - } - }, - "bytes": 83355 - } - } -} diff --git a/dist/face-api.node.js b/dist/face-api.node.js index 015882f..fc6268a 100644 --- a/dist/face-api.node.js +++ b/dist/face-api.node.js @@ -5,5 +5,5 @@ author: ' */ -var fn=Object.create,Ye=Object.defineProperty,hn=Object.getPrototypeOf,xn=Object.prototype.hasOwnProperty,bn=Object.getOwnPropertyNames,gn=Object.getOwnPropertyDescriptor;var Er=o=>Ye(o,"__esModule",{value:!0});var xo=(o,t)=>()=>(t||(t={exports:{}},o(t.exports,t)),t.exports),Ge=(o,t)=>{for(var e in t)Ye(o,e,{get:t[e],enumerable:!0})},vn=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of bn(t))!xn.call(o,r)&&r!=="default"&&Ye(o,r,{get:()=>t[r],enumerable:!(e=gn(t,r))||e.enumerable});return o},b=o=>vn(Er(Ye(o!=null?fn(hn(o)):{},"default",o&&o.__esModule&&"default"in o?{get:()=>o.default,enumerable:!0}:{value:o,enumerable:!0})),o);var g=xo(Mr=>{var yn=Object.create,Cr=Object.defineProperty,Fn=Object.getPrototypeOf,Tn=Object.prototype.hasOwnProperty,Pn=Object.getOwnPropertyNames,_n=Object.getOwnPropertyDescriptor,bo=o=>Cr(o,"__esModule",{value:!0}),go=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Pn(t))!Tn.call(o,r)&&r!=="default"&&Cr(o,r,{get:()=>t[r],enumerable:!(e=_n(t,r))||e.enumerable});return o},wn=o=>go(bo(Cr(o!=null?yn(Fn(o)):{},"default",o&&o.__esModule&&"default"in o?{get:()=>o.default,enumerable:!0}:{value:o,enumerable:!0})),o);bo(Mr);go(Mr,wn(require("@tensorflow/tfjs-node")))});var Po=xo((Ln,To)=>{Er(Ln);Ge(Ln,{isNodejs:()=>kn});function kn(){return typeof global=="object"&&!0&&typeof To!="undefined"&&typeof process!="undefined"&&!!process.version}});Er(exports);Ge(exports,{AgeGenderNet:()=>pr,BoundingBox:()=>re,Box:()=>D,ComposableTask:()=>tt,ComputeAllFaceDescriptorsTask:()=>At,ComputeFaceDescriptorsTaskBase:()=>vr,ComputeSingleFaceDescriptorTask:()=>Wt,DetectAllFaceLandmarksTask:()=>Fr,DetectAllFacesTask:()=>He,DetectFaceLandmarksTaskBase:()=>yr,DetectFacesTaskBase:()=>Pr,DetectSingleFaceLandmarksTask:()=>Tr,DetectSingleFaceTask:()=>_r,Dimensions:()=>A,FACE_EXPRESSION_LABELS:()=>Zr,FaceDetection:()=>M,FaceDetectionNet:()=>qo,FaceExpressionNet:()=>cr,FaceExpressions:()=>It,FaceLandmark68Net:()=>fe,FaceLandmark68TinyNet:()=>dr,FaceLandmarkNet:()=>Ro,FaceLandmarks:()=>V,FaceLandmarks5:()=>yo,FaceLandmarks68:()=>ne,FaceMatch:()=>Ee,FaceMatcher:()=>Dr,FaceRecognitionNet:()=>xe,Gender:()=>vt,LabeledBox:()=>Me,LabeledFaceDescriptors:()=>xt,NetInput:()=>bt,NeuralNetwork:()=>S,ObjectDetection:()=>Dt,Point:()=>x,PredictedBox:()=>Fo,Rect:()=>oe,SsdMobilenetv1:()=>Xt,SsdMobilenetv1Options:()=>Z,TinyFaceDetector:()=>Fe,TinyFaceDetectorOptions:()=>gr,TinyYolov2:()=>ve,TinyYolov2Options:()=>lt,allFaces:()=>Ea,allFacesSsdMobilenetv1:()=>un,allFacesTinyYolov2:()=>Da,awaitMediaLoaded:()=>zr,bufferToImage:()=>Vr,computeFaceDescriptor:()=>ua,createCanvas:()=>Yt,createCanvasFromMedia:()=>Ie,createFaceDetectionNet:()=>aa,createFaceRecognitionNet:()=>Xn,createSsdMobilenetv1:()=>Jo,createTinyFaceDetector:()=>Ma,createTinyYolov2:()=>ca,detectAllFaces:()=>wr,detectFaceLandmarks:()=>pn,detectFaceLandmarksTiny:()=>da,detectLandmarks:()=>_a,detectSingleFace:()=>wa,draw:()=>eo,env:()=>w,euclideanDistance:()=>fo,extendWithAge:()=>hr,extendWithFaceDescriptor:()=>fr,extendWithFaceDetection:()=>$t,extendWithFaceExpressions:()=>mr,extendWithFaceLandmarks:()=>le,extendWithGender:()=>xr,extractFaceTensors:()=>se,extractFaces:()=>ae,fetchImage:()=>Bn,fetchJson:()=>Jr,fetchNetWeights:()=>Rn,fetchOrThrow:()=>Gt,getContext2dOrThrow:()=>O,getMediaDimensions:()=>Ht,imageTensorToCanvas:()=>Ur,imageToSquare:()=>Xr,inverseSigmoid:()=>Mn,iou:()=>Sr,isMediaElement:()=>qe,isMediaLoaded:()=>Ne,isWithAge:()=>Jn,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>Kr,isWithFaceLandmarks:()=>Vt,isWithGender:()=>qn,loadAgeGenderModel:()=>Fa,loadFaceDetectionModel:()=>Ta,loadFaceExpressionModel:()=>ya,loadFaceLandmarkModel:()=>ba,loadFaceLandmarkTinyModel:()=>ga,loadFaceRecognitionModel:()=>va,loadSsdMobilenetv1Model:()=>dn,loadTinyFaceDetectorModel:()=>ha,loadTinyYolov2Model:()=>xa,loadWeightMap:()=>qr,locateFaces:()=>Pa,matchDimensions:()=>On,minBbox:()=>Ar,nets:()=>P,nonMaxSuppression:()=>Wr,normalize:()=>ot,padToSquare:()=>Br,predictAgeAndGender:()=>fa,recognizeFaceExpressions:()=>la,resizeResults:()=>ln,resolveInput:()=>jt,shuffleArray:()=>En,sigmoid:()=>De,ssdMobilenetv1:()=>mn,tf:()=>Ca,tinyFaceDetector:()=>ma,tinyYolov2:()=>pa,toNetInput:()=>E,utils:()=>Nr,validateConfig:()=>io,version:()=>La});var Ca=b(g());var eo={};Ge(eo,{AnchorPosition:()=>dt,DrawBox:()=>Xe,DrawBoxOptions:()=>Gr,DrawFaceLandmarks:()=>to,DrawFaceLandmarksOptions:()=>Qr,DrawTextField:()=>Mt,DrawTextFieldOptions:()=>Ce,drawContour:()=>ft,drawDetections:()=>Wn,drawFaceExpressions:()=>$n,drawFaceLandmarks:()=>Hn});function ft(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},a)=>{let s=t[a];o.moveTo(s.x,s.y),o.lineTo(r,n)}),e){let r=t[t.length-1],n=t[0];if(!r||!n)return;o.moveTo(r.x,r.y),o.lineTo(n.x,n.y)}o.stroke()}var Nr={};Ge(Nr,{computeReshapedDimensions:()=>kr,getCenterPoint:()=>Ot,isDimensions:()=>Ve,isEven:()=>ze,isFloat:()=>Lr,isTensor:()=>Bt,isTensor1D:()=>Dn,isTensor2D:()=>Ir,isTensor3D:()=>ht,isTensor4D:()=>z,isValidNumber:()=>rt,isValidProbablitiy:()=>ee,range:()=>ct,round:()=>Rt});var vo=b(g());var A=class{constructor(t,e){if(!rt(t)||!rt(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new A(1/this.width,1/this.height)}};function Bt(o,t){return o instanceof vo.Tensor&&o.shape.length===t}function Dn(o){return Bt(o,1)}function Ir(o){return Bt(o,2)}function ht(o){return Bt(o,3)}function z(o){return Bt(o,4)}function Lr(o){return o%1!=0}function ze(o){return o%2==0}function Rt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function Ve(o){return o&&o.width&&o.height}function kr({width:o,height:t},e){let r=e/Math.max(t,o);return new A(Math.round(o*r),Math.round(t*r))}function Ot(o){return o.reduce((t,e)=>t.add(e),new x(0,0)).div(new x(o.length,o.length))}function ct(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function rt(o){return!!o&&o!==Infinity&&o!==-Infinity&&!Number.isNaN(o)||o===0}function ee(o){return rt(o)&&o>=0&&o<=1}var x=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new x(this.x+t.x,this.y+t.y)}sub(t){return new x(this.x-t.x,this.y-t.y)}mul(t){return new x(this.x*t.x,this.y*t.y)}div(t){return new x(this.x/t.x,this.y/t.y)}abs(){return new x(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new x(Math.floor(this.x),Math.floor(this.y))}};var D=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(rt)}static assertIsValidBox(t,e,r=!1){if(!D.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},n=[r.left,r.top,r.right,r.bottom].every(rt),a=[r.x,r.y,r.width,r.height].every(rt);if(!a&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,i,c,m]=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];D.assertIsValidBox({x:s,y:i,width:c,height:m},"Box.constructor",e),this._x=s,this._y=i,this._width=c,this._height=m}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new x(this.left,this.top)}get topRight(){return new x(this.right,this.top)}get bottomLeft(){return new x(this.left,this.bottom)}get bottomRight(){return new x(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.round(a));return new D({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.floor(a));return new D({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,a=Math.abs(r-n);return re&&(i=-d+e+r,d=e),u>t&&(c=-u+t+n,u=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:s,edy:c,dx:a,edx:i,y:p,ey:u,x:m,ex:d,w:r,h:n}}calibrate(t){return new D({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var re=class extends D{constructor(t,e,r,n,a=!1){super({left:t,top:e,right:r,bottom:n},a)}};var Dt=class{constructor(t,e,r,n,a){this._imageDims=new A(a.width,a.height),this._score=t,this._classScore=e,this._className=r,this._box=new D(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new D(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new Dt(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class extends Dt{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:a}=super.forSize(t,e);return new M(r,n,a)}};function Sr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),n=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),a=r*n;return e?a/(o.area+t.area-a):a/Math.min(o.area,t.area)}function Ar(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:s,boxIndex:i})).sort((s,i)=>s.score-i.score).map(s=>s.boxIndex),a=[];for(;n.length>0;){let s=n.pop();a.push(s);let i=n,c=[];for(let m=0;mc[p]<=e)}return a}var mt=b(g());function ot(o,t){return mt.tidy(()=>{let[e,r,n]=t,a=mt.fill([...o.shape.slice(0,3),1],e,"float32"),s=mt.fill([...o.shape.slice(0,3),1],r,"float32"),i=mt.fill([...o.shape.slice(0,3),1],n,"float32"),c=mt.concat([a,s,i],3);return mt.sub(o,c)})}var Et=b(g());function Br(o,t=!1){return Et.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),a=Math.round(n*(t?.5:1)),s=e>r?2:1,i=u=>{let l=o.shape.slice();return l[s]=u,Et.fill(l,0,"float32")},c=i(a),m=n-c.shape[s],d=[t&&m?i(m):null,o,c].filter(u=>!!u).map(u=>Et.cast(u,"float32"));return Et.concat(d,s)})}function En(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function De(o){return 1/(1+Math.exp(-o))}function Mn(o){return Math.log(o/(1-o))}var oe=class extends D{constructor(t,e,r,n,a=!1){super({x:t,y:e,width:r,height:n},a)}};var Cn=.5,Nn=.43,In=.45,V=class{constructor(t,e,r=new x(0,0)){let{width:n,height:a}=e;this._imgDims=new A(n,a),this._shift=r,this._positions=t.map(s=>s.mul(new x(n,a)).add(r))}get shift(){return new x(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new x(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new x(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let a=t instanceof M?t.box.floor():new D(t);return this.shiftBy(a.x,a.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:n}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(n)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,n]=t,a=d=>n.sub(d).magnitude(),s=(a(e)+a(r))/2,i=Math.floor(s/In),c=Ot(t),m=Math.floor(Math.max(0,c.x-Cn*i)),p=Math.floor(Math.max(0,c.y-Nn*i));return new oe(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Ar(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var yo=class extends V{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],Ot([t[3],t[4]])]}};var ne=class extends V{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(Ot)}};var Ee=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Rt(this.distance)})`:""}`}};var Me=class extends D{static assertIsValidLabeledBox(t,e){if(D.assertIsValidBox(t,e),!rt(t.label))throw new Error(`${e} - expected property label (${t.label}) to be a number`)}constructor(t,e){super(t);this._label=e}get label(){return this._label}};var xt=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new xt(t.label,e)}};var Fo=class extends Me{static assertIsValidPredictedBox(t,e){if(Me.assertIsValidLabeledBox(t,e),!ee(t.score)||!ee(t.classScore))throw new Error(`${e} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,e,r,n){super(t,e);this._score=r,this._classScore=n}get score(){return this._score}get classScore(){return this._classScore}};function pt(o){return o.detection instanceof M}function $t(o,t){return{...o,...{detection:t}}}function Rr(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Ue(o){let t="";if(!o)try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,a)=>{o.readFile(r,(s,i)=>s?a(s):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Or(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},n=global.fetch,a=Ue();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:e,createImageElement:r,fetch:n,...a}}function $r(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var jr=b(Po()),k;function Sn(){if(!k)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return k}function Hr(o){k=o}function Yr(){return $r()?Hr(Rr()):(0,jr.isNodejs)()?Hr(Or()):null}function An(o){if(k||Yr(),!k)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=k.Canvas,Image:e=k.Image}=o;k.Canvas=t,k.Image=e,k.createCanvasElement=o.createCanvasElement||(()=>new t),k.createImageElement=o.createImageElement||(()=>new e),k.ImageData=o.ImageData||k.ImageData,k.Video=o.Video||k.Video,k.fetch=o.fetch||k.fetch,k.readFile=o.readFile||k.readFile}var w={getEnv:Sn,setEnv:Hr,initialize:Yr,createBrowserEnv:Rr,createFileSystem:Ue,createNodejsEnv:Or,monkeyPatch:An,isBrowser:$r,isNodejs:jr.isNodejs};Yr();function jt(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function O(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=jt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d");if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var dt;(function(o){o.TOP_LEFT="TOP_LEFT",o.TOP_RIGHT="TOP_RIGHT",o.BOTTOM_LEFT="BOTTOM_LEFT",o.BOTTOM_RIGHT="BOTTOM_RIGHT"})(dt||(dt={}));var Ce=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:a,fontStyle:s,padding:i}=t;this.anchorPosition=e||dt.TOP_LEFT,this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=a||14,this.fontStyle=s||"Georgia",this.padding=i||4}},Mt=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof Mt?t.text:t,this.anchor=e,this.options=new Ce(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let v=c+d.x,_=c+d.y+(l+1)*s;r.fillText(u,v,_)})}};var Gr=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:a}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let s={anchorPosition:dt.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Ce({...s,...a})}},Xe=class{constructor(t,e={}){this.box=new D(t),this.options=new Gr(e)}draw(t){let e=O(t),{boxColor:r,lineWidth:n}=this.options,{x:a,y:s,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(a,s,i,c);let{label:m}=this.options;m&&new Mt([m],{x:a-n/2,y:s},this.options.drawLabelOptions).draw(t)}};function Wn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,a=r instanceof M?r.box:pt(r)?r.detection.box:new D(r),s=n?`${Rt(n)}`:void 0;new Xe(a,{label:s}).draw(o)})}var ue=b(g());function Ne(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function zr(o){return new Promise((t,e)=>{if(o instanceof w.getEnv().Canvas||Ne(o))return t(null);function r(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),e(a))}function n(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),t(a))}o.addEventListener("load",n),o.addEventListener("error",r)})}function Vr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let n=w.getEnv().createImageElement();n.onload=()=>t(n),n.onerror=e,n.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Ht(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new A(o.naturalWidth,o.naturalHeight):o instanceof e?new A(o.videoWidth,o.videoHeight):new A(o.width,o.height)}function Yt({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function Ie(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ne(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Ht(o),a=Yt({width:r,height:n});return o instanceof e?O(a).putImageData(o,0,0):O(a).drawImage(o,0,0,r,n),a}var Je=b(g());async function Ur(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,a]=o.shape.slice(z(o)?1:0),s=Je.tidy(()=>o.as3D(r,n,a).toInt());return await Je.browser.toPixels(s,e),s.dispose(),e}function qe(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var J=b(g());function Xr(o,t,e=!1){let{Image:r,Canvas:n}=w.getEnv();if(!(o instanceof r||o instanceof n))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Yt({width:1,height:1});let a=Ht(o),s=t/Math.max(a.height,a.width),i=s*a.width,c=s*a.height,m=Yt({width:t,height:t}),p=o instanceof n?o:Ie(o),d=Math.abs(i-c)/2,u=e&&i0&&p.height>0&&O(m).drawImage(p,u,l,i,c),m}var bt=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=e,this._batchSize=t.length,t.forEach((r,n)=>{if(ht(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(z(r)){let s=r.shape[0];if(s!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${s} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let a=r instanceof w.getEnv().Canvas?r:Ie(r);this._canvases[n]=a,this._inputDimensions[n]=[a.height,a.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return ct(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return kr({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,J.tidy(()=>{let r=ct(this.batchSize,0,1).map(a=>{let s=this.getInput(a);if(s instanceof J.Tensor){let i=z(s)?s:s.expandDims();return i=Br(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=J.image.resizeBilinear(i,[t,t])),i.as3D(t,t,3)}if(s instanceof w.getEnv().Canvas)return J.browser.fromPixels(Xr(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${a}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return J.stack(r.map(a=>J.cast(a,"float32"))).as4D(this.batchSize,t,t,3)})}};async function E(o){if(o instanceof bt)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=n=>Array.isArray(o)?` at input index ${n}:`:"",r=t.map(jt);return r.forEach((n,a)=>{if(!qe(n)&&!ht(n)&&!z(n))throw typeof t[a]=="string"?new Error(`toNetInput -${e(a)} string passed, but could not resolve HTMLElement for element id ${t[a]}`):new Error(`toNetInput -${e(a)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(z(n)){let s=n.shape[0];if(s!==1)throw new Error(`toNetInput -${e(a)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>qe(n)&&zr(n))),new bt(r,Array.isArray(o))}async function ae(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let s=await E(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=s.getInput(0);r=i instanceof e?i:await Ur(i)}let n=O(r);return t.map(s=>s instanceof M?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:i,width:c,height:m})=>{let p=Yt({width:c,height:m});return c>0&&m>0&&O(p).putImageData(n.getImageData(s,i,c,m),0,0),p})}var Ze=b(g());async function se(o,t){if(!ht(o)&&!z(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(z(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return Ze.tidy(()=>{let[e,r,n]=o.shape.slice(z(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).map(({x:i,y:c,width:m,height:p})=>Ze.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function Gt(o,t){let{fetch:e}=w.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Bn(o){let t=await Gt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return Vr(e)}async function Jr(o){return(await Gt(o)).json()}async function Rn(o){return new Float32Array(await(await Gt(o)).arrayBuffer())}var _o=b(g());function Ke(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let n=o.split("/").filter(i=>i),a=o.endsWith(".json")?n[n.length-1]:e,s=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${a}`:`${s}/${a}`}}async function qr(o,t){let{manifestUri:e,modelBaseUri:r}=Ke(o,t),n=await Jr(e);return _o.io.loadWeights(n,r)}function On(o,t,e=!1){let{width:r,height:n}=e?Ht(t):t;return o.width=r,o.height=n,{width:r,height:n}}var Nt=b(g());var gt=b(g());var S=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:n}=this.traversePropertyPath(t);r[n].dispose(),r[n]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof gt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof gt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=gt.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await qr(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=w.getEnv(),{manifestUri:r,modelBaseUri:n}=Ke(t,this.getDefaultModelName()),a=m=>Promise.all(m.map(p=>e(p).then(d=>d.buffer))),s=gt.io.weightsLoaderFactory(a),i=JSON.parse((await e(r)).toString()),c=await s(i,n);this.loadFromWeightMap(c)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((a,s)=>{if(!a.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:a.nextObj,objProp:s,nextObj:a.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof gt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var C=b(g());var ie=b(g());function $(o,t,e){return ie.tidy(()=>{let r=ie.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=ie.add(r,t.bias),r})}function Qe(o,t,e=!1){return C.tidy(()=>{let r=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):$(o,t.conv0,[2,2])),n=$(r,t.conv1,[1,1]),a=C.relu(C.add(r,n)),s=$(a,t.conv2,[1,1]);return C.relu(C.add(r,C.add(n,s)))})}function Le(o,t,e=!1,r=!0){return C.tidy(()=>{let n=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):$(o,t.conv0,r?[2,2]:[1,1])),a=$(n,t.conv1,[1,1]),s=C.relu(C.add(n,a)),i=$(s,t.conv2,[1,1]),c=C.relu(C.add(n,C.add(a,i))),m=$(c,t.conv3,[1,1]);return C.relu(C.add(n,C.add(a,C.add(i,m))))})}var Ct=b(g());function zt(o,t,e="same",r=!1){return Ct.tidy(()=>{let n=Ct.add(Ct.conv2d(o,t.filters,[1,1],e),t.bias);return r?Ct.relu(n):n})}function W(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var tr=b(g());function ce(o,t){return(e,r,n,a)=>{let s=tr.tensor4d(o(e*r*n*n),[n,n,e,r]),i=tr.tensor1d(o(r));return t.push({paramPath:`${a}/filters`},{paramPath:`${a}/bias`}),{filters:s,bias:i}}}var er=b(g());function rr(o,t){return(e,r,n)=>{let a=er.tensor2d(o(e*r),[e,r]),s=er.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:a,bias:s}}}var ke=b(g());var or=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function me(o,t){return(e,r,n)=>{let a=ke.tensor4d(o(3*3*e),[3,3,e,1]),s=ke.tensor4d(o(e*r),[1,1,e,r]),i=ke.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new or(a,s,i)}}function pe(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new or(e,r,n)}}function j(o,t){return(e,r,n)=>{let a=o[e];if(!Bt(a,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${a}`);return t.push({originalPath:e,paramPath:n||e}),a}}function B(o){let t=o;function e(n){let a=t.slice(0,n);return t=t.slice(n),a}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function nr(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c,m=!1){let p=m?e(s,i,3,`${c}/conv0`):r(s,i,`${c}/conv0`),d=r(i,i,`${c}/conv1`),u=r(i,i,`${c}/conv2`);return{conv0:p,conv1:d,conv2:u}}function a(s,i,c,m=!1){let{conv0:p,conv1:d,conv2:u}=n(s,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:d,conv2:u,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:a}}function wo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock4Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2"),c=n(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i,dense3:c}}}function ar(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function sr(o,t){let e=j(o,t),r=ar(e),n=pe(e);function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:d}}function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`),u=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:d,conv3:u}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Do(o){let t=[],{extractDenseBlock4Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return W(o,t),{params:r,paramMappings:t}}var Se=class extends S{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return Nt.tidy(()=>{let r=Nt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(Nt.scalar(255)),s=Le(a,e.dense0,!0);return s=Le(s,e.dense1),s=Le(s,e.dense2),s=Le(s,e.dense3),s=Nt.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Do(t)}extractParams(t){return wo(t)}};var Co=b(g());var de=b(g());function Ae(o,t){return de.tidy(()=>de.add(de.matMul(o,t.weights),t.bias))}function Eo(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:a}=B(o),i=rr(n,r)(t,e,"fc");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:r,params:{fc:i}}}function Mo(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:r("fc")};return W(o,t),{params:n,paramMappings:t}}function ir(o){let t={},e={};return Object.keys(o).forEach(r=>{let n=r.startsWith("fc")?e:t;n[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var We=class extends S{constructor(t,e){super(t);this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return Co.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t;return Ae(r.as2D(r.shape[0],-1),e.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return Eo(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Mo(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),n=r*e+r,a=t.slice(0,t.length-n),s=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(s)}};var Zr=["neutral","happy","sad","angry","fearful","disgusted","surprised"],It=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);Zr.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return Zr.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var cr=class extends We{constructor(t=new Se){super("FaceExpressionNet",t)}forwardInput(t){return ue.tidy(()=>ue.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await E(t))}async predictExpressions(t){let e=await E(t),r=await this.forwardInput(e),n=await Promise.all(ue.unstack(r).map(async s=>{let i=await s.data();return s.dispose(),i}));r.dispose();let a=n.map(s=>new It(s));return e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Kr(o){return o.expressions instanceof It}function mr(o,t){return{...o,...{expressions:t}}}function $n(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(a=>{let s=a instanceof It?a:Kr(a)?a.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=s.asSortedArray().filter(d=>d.probability>e),m=pt(a)?a.detection.box.bottomLeft:r||new x(0,0);new Mt(c.map(d=>`${d.expression} (${Rt(d.probability)})`),m).draw(o)})}function Vt(o){return pt(o)&&o.landmarks instanceof V&&o.unshiftedLandmarks instanceof V&&o.alignedRect instanceof M}function jn(o){let t=(i,c,m,p)=>Math.atan2(p-c,m-i)%Math.PI,e=i=>i*180/Math.PI,r={roll:void 0,pitch:void 0,yaw:void 0};if(!o||!o._positions||o._positions.length!==68)return r;let n=o._positions;r.roll=-t(n[36]._x,n[36]._y,n[45]._x,n[45]._y),r.pitch=t(0,Math.abs(n[0]._x-n[30]._x)/n[30]._x,Math.PI,Math.abs(n[16]._x-n[30]._x)/n[30]._x);let a=n.reduce((i,c)=>ii>c._y?i:c._y,-Infinity);return r.yaw=Math.PI*(o._imgDims._height/(s-a)/1.4-1),r}function le(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:a}=o.detection,s=new M(o.detection.score,n.rescale(a.reverse()),a),i=jn(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s,angle:i}}}var Qr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:a,pointSize:s,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=s||2,this.lineColor=a||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},to=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new Qr(e)}draw(t){let e=O(t),{drawLines:r,drawPoints:n,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof ne&&(e.strokeStyle=s,e.lineWidth=a,ft(e,this.faceLandmarks.getJawOutline()),ft(e,this.faceLandmarks.getLeftEyeBrow()),ft(e,this.faceLandmarks.getRightEyeBrow()),ft(e,this.faceLandmarks.getNose()),ft(e,this.faceLandmarks.getLeftEye(),!0),ft(e,this.faceLandmarks.getRightEye(),!0),ft(e,this.faceLandmarks.getMouth(),!0)),n){e.strokeStyle=c,e.fillStyle=c;let m=p=>{e.beginPath(),e.arc(p.x,p.y,i,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(m)}}};function Hn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof V?r:Vt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new to(n).draw(o)})}var No="1.0.1";var ut=b(g());var I=b(g());function Yn(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c){let m=r(s,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),d=e(s,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:d}}function a(s,i){let c=r(s,s,`${i}/separable_conv0`),m=r(s,s,`${i}/separable_conv1`),p=r(s,s,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:a}}function Io(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=B(o),{extractConvParams:a,extractSeparableConvParams:s,extractReductionBlockParams:i,extractMainBlockParams:c}=Yn(r,e),m=a(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),d=i(64,128,"entry_flow/reduction_block_1"),u={conv_in:m,reduction_block_0:p,reduction_block_1:d},l={};ct(t,0,1).forEach(y=>{l[`main_block_${y}`]=c(128,`middle_flow/main_block_${y}`)});let v=i(128,256,"exit_flow/reduction_block"),_=s(256,512,"exit_flow/separable_conv"),h={reduction_block:v,separable_conv:_};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:u,middle_flow:l,exit_flow:h}}}function Gn(o,t){let e=j(o,t),r=ar(e),n=pe(e);function a(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=r(`${i}/expansion_conv`);return{separable_conv0:c,separable_conv1:m,expansion_conv:p}}function s(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=n(`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}}function Lo(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}=Gn(o,e),i=r("entry_flow/conv_in"),c=a("entry_flow/reduction_block_0"),m=a("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},d={};ct(t,0,1).forEach(_=>{d[`main_block_${_}`]=s(`middle_flow/main_block_${_}`)});let u=a("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),v={reduction_block:u,separable_conv:l};return W(o,e),{params:{entry_flow:p,middle_flow:d,exit_flow:v},paramMappings:e}}function ko(o,t,e){return I.add(I.conv2d(o,t.filters,e,"same"),t.bias)}function ro(o,t,e=!0){let r=e?I.relu(o):o;return r=$(r,t.separable_conv0,[1,1]),r=$(I.relu(r),t.separable_conv1,[1,1]),r=I.maxPool(r,[3,3],[2,2],"same"),r=I.add(r,ko(o,t.expansion_conv,[2,2])),r}function zn(o,t){let e=$(I.relu(o),t.separable_conv0,[1,1]);return e=$(I.relu(e),t.separable_conv1,[1,1]),e=$(I.relu(e),t.separable_conv2,[1,1]),e=I.add(e,o),e}var oo=class extends S{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyXception - load model before inference");return I.tidy(()=>{let r=I.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(I.scalar(256)),s=I.relu(ko(a,e.entry_flow.conv_in,[2,2]));return s=ro(s,e.entry_flow.reduction_block_0,!1),s=ro(s,e.entry_flow.reduction_block_1),ct(this._numMainBlocks,0,1).forEach(i=>{s=zn(s,e.middle_flow[`main_block_${i}`])}),s=ro(s,e.exit_flow.reduction_block),s=I.relu($(s,e.exit_flow.separable_conv,[1,1])),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return Lo(t,this._numMainBlocks)}extractParams(t){return Io(t,this._numMainBlocks)}};function So(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),n=rr(e,t),a=n(512,1,"fc/age"),s=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:a,gender:s}}}}function Ao(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return W(o,t),{params:n,paramMappings:t}}var vt;(function(o){o.FEMALE="female",o.MALE="male"})(vt||(vt={}));var pr=class extends S{constructor(t=new oo(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return ut.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t,n=ut.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),a=Ae(n,e.fc.age).as1D(),s=Ae(n,e.fc.gender);return{age:a,gender:s}})}forwardInput(t){return ut.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:ut.softmax(r)}})}async forward(t){return this.forwardInput(await E(t))}async predictAgeAndGender(t){let e=await E(t),r=await this.forwardInput(e),n=ut.unstack(r.age),a=ut.unstack(r.gender),s=n.map((c,m)=>({ageTensor:c,genderTensor:a[m]})),i=await Promise.all(s.map(async({ageTensor:c,genderTensor:m})=>{let p=(await c.data())[0],d=(await m.data())[0],u=d>.5,l=u?vt.MALE:vt.FEMALE,v=u?d:1-d;return c.dispose(),m.dispose(),{age:p,gender:l,genderProbability:v}}));return r.age.dispose(),r.gender.dispose(),e.isBatchInput?i:i[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return So(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Ao(r)}extractParams(t){let e=512*1+1+(512*2+2),r=t.slice(0,t.length-e),n=t.slice(t.length-e);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(n)}};var H=b(g());var Be=class extends We{postProcess(t,e,r){let n=r.map(({width:s,height:i})=>{let c=e/Math.max(i,s);return{width:s*c,height:i*c}}),a=n.length;return H.tidy(()=>{let s=(d,u)=>H.stack([H.fill([68],d,"float32"),H.fill([68],u,"float32")],1).as2D(1,136).as1D(),i=(d,u)=>{let{width:l,height:v}=n[d];return u(l,v)?Math.abs(l-v)/2:0},c=d=>i(d,(u,l)=>ui(d,(u,l)=>ls(c(u),m(u))))).div(H.stack(Array.from(Array(a),(d,u)=>s(n[u].width,n[u].height))))})}forwardInput(t){return H.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,n])=>({height:r,width:n})))})}async forward(t){return this.forwardInput(await E(t))}async detectLandmarks(t){let e=await E(t),r=H.tidy(()=>H.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(a,s)=>{let i=Array.from(await a.data()),c=i.filter((p,d)=>ze(d)),m=i.filter((p,d)=>!ze(d));return new ne(Array(68).fill(0).map((p,d)=>new x(c[d],m[d])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var fe=class extends Be{constructor(t=new Se){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var Lt=b(g());function Wo(o){let t=[],{extractDenseBlock3Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return W(o,t),{params:r,paramMappings:t}}function Bo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock3Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i}}}var no=class extends S{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return Lt.tidy(()=>{let r=Lt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(Lt.scalar(255)),s=Qe(a,e.dense0,!0);return s=Qe(s,e.dense1),s=Qe(s,e.dense2),s=Lt.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Wo(t)}extractParams(t){return Bo(t)}};var dr=class extends Be{constructor(t=new no){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Ro=class extends fe{};var U=b(g());var he=b(g());var ur=b(g());function Oo(o,t){return ur.add(ur.mul(o,t.weights),t.biases)}function ao(o,t,e,r,n="same"){let{filters:a,bias:s}=t.conv,i=he.conv2d(o,a,e,n);return i=he.add(i,s),i=Oo(i,t.scale),r?he.relu(i):i}function $o(o,t){return ao(o,t,[1,1],!0)}function so(o,t){return ao(o,t,[1,1],!1)}function lr(o,t){return ao(o,t,[2,2],!0,"valid")}var Y=b(g());function Vn(o,t){function e(i,c,m){let p=o(i),d=p.length/(c*m*m);if(Lr(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return Y.tidy(()=>Y.transpose(Y.tensor4d(p,[c,d,m,m]),[2,3,1,0]))}function r(i,c,m,p){let d=e(i,c,m),u=Y.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:u}}function n(i,c){let m=Y.tensor1d(o(i)),p=Y.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function a(i,c,m,p){let d=r(i,c,m,`${p}/conv`),u=n(c,`${p}/scale`);return{conv:d,scale:u}}function s(i,c,m,p,d=!1){let u=a((d?.5:1)*i,c,m,`${p}/conv1`),l=a(i,c,m,`${p}/conv2`);return{conv1:u,conv2:l}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function jo(o){let{extractWeights:t,getRemainingWeights:e}=B(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Vn(t,r),s=n(4704,32,7,"conv32_down"),i=a(9216,32,3,"conv32_1"),c=a(9216,32,3,"conv32_2"),m=a(9216,32,3,"conv32_3"),p=a(36864,64,3,"conv64_down",!0),d=a(36864,64,3,"conv64_1"),u=a(36864,64,3,"conv64_2"),l=a(36864,64,3,"conv64_3"),v=a(147456,128,3,"conv128_down",!0),_=a(147456,128,3,"conv128_1"),h=a(147456,128,3,"conv128_2"),y=a(589824,256,3,"conv256_down",!0),T=a(589824,256,3,"conv256_1"),F=a(589824,256,3,"conv256_2"),L=a(589824,256,3,"conv256_down_out"),G=Y.tidy(()=>Y.transpose(Y.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:s,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:d,conv64_2:u,conv64_3:l,conv128_down:v,conv128_1:_,conv128_2:h,conv256_down:y,conv256_1:T,conv256_2:F,conv256_down_out:L,fc:G},paramMappings:r}}function Un(o,t){let e=j(o,t);function r(s){let i=e(`${s}/scale/weights`,1),c=e(`${s}/scale/biases`,1);return{weights:i,biases:c}}function n(s){let i=e(`${s}/conv/filters`,4),c=e(`${s}/conv/bias`,1),m=r(s);return{conv:{filters:i,bias:c},scale:m}}function a(s){return{conv1:n(`${s}/conv1`),conv2:n(`${s}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:a}}function Ho(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Un(o,t),n=e("conv32_down"),a=r("conv32_1"),s=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),d=r("conv64_3"),u=r("conv128_down"),l=r("conv128_1"),v=r("conv128_2"),_=r("conv256_down"),h=r("conv256_1"),y=r("conv256_2"),T=r("conv256_down_out"),{fc:F}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Ir(F))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${F}`);let L={conv32_down:n,conv32_1:a,conv32_2:s,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:d,conv128_down:u,conv128_1:l,conv128_2:v,conv256_down:_,conv256_1:h,conv256_2:y,conv256_down_out:T,fc:F};return W(o,t),{params:L,paramMappings:t}}var R=b(g());function nt(o,t){let e=$o(o,t.conv1);return e=so(e,t.conv2),e=R.add(e,o),e=R.relu(e),e}function Re(o,t){let e=lr(o,t.conv1);e=so(e,t.conv2);let r=R.avgPool(o,2,2,"valid"),n=R.zeros(r.shape),a=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let i=[...e.shape];i[1]=1;let c=R.zeros(i);e=R.concat([e,c],1);let m=[...e.shape];m[2]=1;let p=R.zeros(m);e=R.concat([e,p],2)}return r=a?R.concat([r,n],3):r,e=R.add(r,e),e=R.relu(e),e}var xe=class extends S{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return U.tidy(()=>{let r=U.cast(t.toBatchTensor(150,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(U.scalar(256)),s=lr(a,e.conv32_down);s=U.maxPool(s,3,2,"valid"),s=nt(s,e.conv32_1),s=nt(s,e.conv32_2),s=nt(s,e.conv32_3),s=Re(s,e.conv64_down),s=nt(s,e.conv64_1),s=nt(s,e.conv64_2),s=nt(s,e.conv64_3),s=Re(s,e.conv128_down),s=nt(s,e.conv128_1),s=nt(s,e.conv128_2),s=Re(s,e.conv256_down),s=nt(s,e.conv256_1),s=nt(s,e.conv256_2),s=Re(s,e.conv256_down_out);let i=s.mean([1,2]);return U.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await E(t))}async computeFaceDescriptor(t){var a;if((a=t==null?void 0:t.shape)==null?void 0:a.some(s=>s<=0))return new Float32Array(128);let e=await E(t),r=U.tidy(()=>U.unstack(this.forwardInput(e))),n=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Ho(t)}extractParams(t){return jo(t)}};function Xn(o){let t=new xe;return t.extractWeights(o),t}function fr(o,t){return{...o,...{descriptor:t}}}function Jn(o){return typeof o.age=="number"}function hr(o,t){return{...o,...{age:t}}}function qn(o){return(o.gender===vt.MALE||o.gender===vt.FEMALE)&&ee(o.genderProbability)}function xr(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var st=b(g());var at=b(g());function Zn(o,t){function e(c,m){let p=at.tensor4d(o(3*3*c),[3,3,c,1]),d=at.tensor1d(o(c)),u=at.tensor1d(o(c)),l=at.tensor1d(o(c)),v=at.tensor1d(o(c));return t.push({paramPath:`${m}/filters`},{paramPath:`${m}/batch_norm_scale`},{paramPath:`${m}/batch_norm_offset`},{paramPath:`${m}/batch_norm_mean`},{paramPath:`${m}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:u,batch_norm_mean:l,batch_norm_variance:v}}function r(c,m,p,d,u){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),v=at.tensor1d(o(m));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${u?"batch_norm_offset":"bias"}`}),{filters:l,bias:v}}function n(c,m,p,d){let{filters:u,bias:l}=r(c,m,p,d,!0);return{filters:u,batch_norm_offset:l}}function a(c,m,p){let d=e(c,`${p}/depthwise_conv`),u=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:u}}function s(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=a(32,64,"mobilenetv1/conv_1"),p=a(64,128,"mobilenetv1/conv_2"),d=a(128,128,"mobilenetv1/conv_3"),u=a(128,256,"mobilenetv1/conv_4"),l=a(256,256,"mobilenetv1/conv_5"),v=a(256,512,"mobilenetv1/conv_6"),_=a(512,512,"mobilenetv1/conv_7"),h=a(512,512,"mobilenetv1/conv_8"),y=a(512,512,"mobilenetv1/conv_9"),T=a(512,512,"mobilenetv1/conv_10"),F=a(512,512,"mobilenetv1/conv_11"),L=a(512,1024,"mobilenetv1/conv_12"),G=a(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:v,conv_7:_,conv_8:h,conv_9:y,conv_10:T,conv_11:F,conv_12:L,conv_13:G}}function i(){let c=n(1024,256,1,"prediction_layer/conv_0"),m=n(256,512,3,"prediction_layer/conv_1"),p=n(512,128,1,"prediction_layer/conv_2"),d=n(128,256,3,"prediction_layer/conv_3"),u=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),v=n(256,64,1,"prediction_layer/conv_6"),_=n(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),T=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),F=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),L=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),G=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),et=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),it=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),X=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),Pt=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),_t=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),wt=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:v,conv_7:_,box_predictor_0:{box_encoding_predictor:h,class_predictor:y},box_predictor_1:{box_encoding_predictor:T,class_predictor:F},box_predictor_2:{box_encoding_predictor:L,class_predictor:G},box_predictor_3:{box_encoding_predictor:et,class_predictor:it},box_predictor_4:{box_encoding_predictor:X,class_predictor:Pt},box_predictor_5:{box_encoding_predictor:_t,class_predictor:wt}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:i}}function Yo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=Zn(e,t),s=n(),i=a(),m={extra_dim:at.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:s,prediction_layer:i,output_layer:m},paramMappings:t}}function Kn(o,t){let e=j(o,t);function r(m,p,d){let u=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:u,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,d=`MobilenetV1/Conv2d_${m}_depthwise`,u=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,v=e(`${d}/depthwise_weights`,4,`${u}/filters`),_=e(`${d}/BatchNorm/gamma`,1,`${u}/batch_norm_scale`),h=e(`${d}/BatchNorm/beta`,1,`${u}/batch_norm_offset`),y=e(`${d}/BatchNorm/moving_mean`,1,`${u}/batch_norm_mean`),T=e(`${d}/BatchNorm/moving_variance`,1,`${u}/batch_norm_variance`);return{depthwise_conv:{filters:v,batch_norm_scale:_,batch_norm_offset:h,batch_norm_mean:y,batch_norm_variance:T},pointwise_conv:r("MobilenetV1",m,l)}}function a(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:n(1),conv_2:n(2),conv_3:n(3),conv_4:n(4),conv_5:n(5),conv_6:n(6),conv_7:n(7),conv_8:n(8),conv_9:n(9),conv_10:n(10),conv_11:n(11),conv_12:n(12),conv_13:n(13)}}function s(m,p){let d=e(`${m}/weights`,4,`${p}/filters`),u=e(`${m}/biases`,1,`${p}/bias`);return{filters:d,bias:u}}function i(m){let p=s(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),d=s(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:c}}function Go(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=Kn(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!ht(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let a={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return W(o,t),{params:a,paramMappings:t}}var yt=b(g());var kt=b(g());function q(o,t,e){return kt.tidy(()=>{let r=kt.conv2d(o,t.filters,e,"same");return r=kt.add(r,t.batch_norm_offset),kt.clipByValue(r,0,6)})}var Qn=.0010000000474974513;function ta(o,t,e){return yt.tidy(()=>{let r=yt.depthwiseConv2d(o,t.filters,e,"same");return r=yt.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Qn),yt.clipByValue(r,0,6)})}function ea(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function zo(o,t){return yt.tidy(()=>{let e,r=q(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((a,s)=>{let i=s+1,c=ea(i);r=ta(r,a.depthwise_conv,c),r=q(r,a.pointwise_conv,[1,1]),i===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function ra(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),i=Math.max(r[t][1],r[t][3]),c=Math.min(r[e][0],r[e][2]),m=Math.min(r[e][1],r[e][3]),p=Math.max(r[e][0],r[e][2]),d=Math.max(r[e][1],r[e][3]),u=(s-n)*(i-a),l=(p-c)*(d-m);if(u<=0||l<=0)return 0;let v=Math.max(n,c),_=Math.max(a,m),h=Math.min(s,p),y=Math.min(i,d),T=Math.max(h-v,0)*Math.max(y-_,0);return T/(u+l-T)}function Vo(o,t,e,r,n){let a=o.shape[0],s=Math.min(e,a),i=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>n).sort((p,d)=>d.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=s)return;let d=p.score;for(let u=m.length-1;u>=0;--u){let l=ra(o,p.boxIndex,m[u]);if(l!==0&&(p.score*=c(l),p.score<=n))break}d===p.score&&m.push(p.boxIndex)}),m}var f=b(g());function oa(o){let t=f.unstack(f.transpose(o,[1,0])),e=[f.sub(t[2],t[0]),f.sub(t[3],t[1])],r=[f.add(t[0],f.div(e[0],f.scalar(2))),f.add(t[1],f.div(e[1],f.scalar(2)))];return{sizes:e,centers:r}}function na(o,t){let{sizes:e,centers:r}=oa(o),n=f.unstack(f.transpose(t,[1,0])),a=f.div(f.mul(f.exp(f.div(n[2],f.scalar(5))),e[0]),f.scalar(2)),s=f.add(f.mul(f.div(n[0],f.scalar(10)),e[0]),r[0]),i=f.div(f.mul(f.exp(f.div(n[3],f.scalar(5))),e[1]),f.scalar(2)),c=f.add(f.mul(f.div(n[1],f.scalar(10)),e[1]),r[1]);return f.transpose(f.stack([f.sub(s,a),f.sub(c,i),f.add(s,a),f.add(c,i)]),[1,0])}function Uo(o,t,e){return f.tidy(()=>{let r=o.shape[0],n=na(f.reshape(f.tile(e.extra_dim,[r,1,1]),[-1,4]),f.reshape(o,[-1,4]));n=f.reshape(n,[r,n.shape[0]/r,4]);let a=f.sigmoid(f.slice(t,[0,0,1],[-1,-1,-1])),s=f.slice(a,[0,0,0],[-1,-1,1]);s=f.reshape(s,[r,s.shape[1]]);let i=f.unstack(n),c=f.unstack(s);return{boxes:i,scores:c}})}var $e=b(g());var Oe=b(g());function Ut(o,t){return Oe.tidy(()=>{let e=o.shape[0],r=Oe.reshape(zt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Oe.reshape(zt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Xo(o,t,e){return $e.tidy(()=>{let r=q(o,e.conv_0,[1,1]),n=q(r,e.conv_1,[2,2]),a=q(n,e.conv_2,[1,1]),s=q(a,e.conv_3,[2,2]),i=q(s,e.conv_4,[1,1]),c=q(i,e.conv_5,[2,2]),m=q(c,e.conv_6,[1,1]),p=q(m,e.conv_7,[2,2]),d=Ut(t,e.box_predictor_0),u=Ut(o,e.box_predictor_1),l=Ut(n,e.box_predictor_2),v=Ut(s,e.box_predictor_3),_=Ut(c,e.box_predictor_4),h=Ut(p,e.box_predictor_5),y=$e.concat([d.boxPredictionEncoding,u.boxPredictionEncoding,l.boxPredictionEncoding,v.boxPredictionEncoding,_.boxPredictionEncoding,h.boxPredictionEncoding],1),T=$e.concat([d.classPrediction,u.classPrediction,l.classPrediction,v.classPrediction,_.classPrediction,h.classPrediction],1);return{boxPredictions:y,classPredictions:T}})}var Z=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var Xt=class extends S{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return st.tidy(()=>{let r=st.cast(t.toBatchTensor(512,!1),"float32"),n=st.sub(st.mul(r,st.scalar(.007843137718737125)),st.scalar(1)),a=zo(n,e.mobilenetv1),{boxPredictions:s,classPredictions:i}=Xo(a.out,a.conv11,e.prediction_layer);return Uo(s,i,e.output_layer)})}async forward(t){return this.forwardInput(await E(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new Z(e),a=await E(t),{boxes:s,scores:i}=this.forwardInput(a),c=s[0],m=i[0];for(let F=1;F{let[L,G]=[Math.max(0,y[F][0]),Math.min(1,y[F][2])].map(X=>X*h),[et,it]=[Math.max(0,y[F][1]),Math.min(1,y[F][3])].map(X=>X*_);return new M(p[F],new oe(et,L,it-et,G-L),{height:a.getInputHeight(0),width:a.getInputWidth(0)})});return c.dispose(),m.dispose(),T}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Go(t)}extractParams(t){return Yo(t)}};function Jo(o){let t=new Xt;return t.extractWeights(o),t}function aa(o){return Jo(o)}var qo=class extends Xt{};var Zo=.4,Ko=[new x(.738768,.874946),new x(2.42204,2.65704),new x(4.30971,7.04493),new x(10.246,4.59428),new x(12.6868,11.8741)],Qo=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],tn=[117.001,114.697,97.404],en="tiny_yolov2_model",rn="tiny_yolov2_separable_conv_model";var N=b(g());var br=o=>typeof o=="number";function io(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!br(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>br(t.x)&&br(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(br)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=b(g());var K=b(g());function be(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function Ft(o,t){return Q.tidy(()=>{let e=Q.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Q.conv2d(e,t.conv.filters,[1,1],"valid"),e=Q.sub(e,t.bn.sub),e=Q.mul(e,t.bn.truediv),e=Q.add(e,t.conv.bias),be(e)})}var St=b(g());function Tt(o,t){return St.tidy(()=>{let e=St.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=St.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=St.add(e,t.bias),be(e)})}var co=b(g());function sa(o,t){let e=ce(o,t);function r(s,i){let c=co.tensor1d(o(s)),m=co.tensor1d(o(s));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(s,i,c){let m=e(s,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let a=me(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}}function on(o,t,e,r){let{extractWeights:n,getRemainingWeights:a}=B(o),s=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=sa(n,s),p;if(t.withSeparableConvs){let[d,u,l,v,_,h,y,T,F]=r,L=t.isFirstLayerConv2d?i(d,u,3,"conv0"):m(d,u,"conv0"),G=m(u,l,"conv1"),et=m(l,v,"conv2"),it=m(v,_,"conv3"),X=m(_,h,"conv4"),Pt=m(h,y,"conv5"),_t=T?m(y,T,"conv6"):void 0,wt=F?m(T,F,"conv7"):void 0,te=i(F||T||y,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:Pt,conv6:_t,conv7:wt,conv8:te}}else{let[d,u,l,v,_,h,y,T,F]=r,L=c(d,u,"conv0"),G=c(u,l,"conv1"),et=c(l,v,"conv2"),it=c(v,_,"conv3"),X=c(_,h,"conv4"),Pt=c(h,y,"conv5"),_t=c(y,T,"conv6"),wt=c(T,F,"conv7"),te=i(F,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:Pt,conv6:_t,conv7:wt,conv8:te}}if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:p,paramMappings:s}}function ia(o,t){let e=j(o,t);function r(i){let c=e(`${i}/sub`,1),m=e(`${i}/truediv`,1);return{sub:c,truediv:m}}function n(i){let c=e(`${i}/filters`,4),m=e(`${i}/bias`,1);return{filters:c,bias:m}}function a(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let s=pe(e);return{extractConvParams:n,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function nn(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}=ia(o,e),s;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:i>7?a("conv6"):void 0,conv7:i>8?a("conv7"):void 0,conv8:r("conv8")}}else s={conv0:n("conv0"),conv1:n("conv1"),conv2:n("conv2"),conv3:n("conv3"),conv4:n("conv4"),conv5:n("conv5"),conv6:n("conv6"),conv7:n("conv7"),conv8:r("conv8")};return W(o,e),{params:s,paramMappings:e}}var lt=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var mo=class extends S{constructor(t){super("TinyYolov2");io(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,e){let r=Ft(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=Ft(r,e.conv6),r=Ft(r,e.conv7),zt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?be(zt(t,e.conv0,"valid",!1)):Tt(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?Tt(r,e.conv6):r,r=e.conv7?Tt(r,e.conv7):r,zt(r,e.conv8,"valid",!1)}forwardInput(t,e){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return N.tidy(()=>{let n=N.cast(t.toBatchTensor(e,!1),"float32");return n=this.config.meanRgb?ot(n,this.config.meanRgb):n,n=n.div(N.scalar(256)),this.config.withSeparableConvs?this.runMobilenet(n,r):this.runTinyYolov2(n,r)})}async forward(t,e){return this.forwardInput(await E(t),e)}async detect(t,e={}){let{inputSize:r,scoreThreshold:n}=new lt(e),a=await E(t),s=await this.forwardInput(a,r),i=N.tidy(()=>N.unstack(s)[0].expandDims()),c={width:a.getInputWidth(0),height:a.getInputHeight(0)},m=await this.extractBoxes(i,a.getReshapedInputDimensions(0),n);s.dispose(),i.dispose();let p=m.map(h=>h.box),d=m.map(h=>h.score),u=m.map(h=>h.classScore),l=m.map(h=>this.config.classes[h.label]);return Wr(p.map(h=>h.rescale(r)),d,this.config.iouThreshold,!0).map(h=>new Dt(d[h],u[h],l[h],p[h],c))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return nn(t,this.config)}extractParams(t){let e=this.config.filterSizes||mo.DEFAULT_FILTER_SIZES,r=e?e.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return on(t,this.config,this.boxEncodingSize,e)}async extractBoxes(t,e,r){let{width:n,height:a}=e,s=Math.max(n,a),i=s/n,c=s/a,m=t.shape[1],p=this.config.anchors.length,[d,u,l]=N.tidy(()=>{let y=t.reshape([m,m,p,this.boxEncodingSize]),T=y.slice([0,0,0,0],[m,m,p,4]),F=y.slice([0,0,0,4],[m,m,p,1]),L=this.withClassScores?N.softmax(y.slice([0,0,0,5],[m,m,p,this.config.classes.length]),3):N.scalar(0);return[T,F,L]}),v=[],_=await u.array(),h=await d.array();for(let y=0;yr){let G=(T+De(h[y][T][F][0]))/m*i,et=(y+De(h[y][T][F][1]))/m*c,it=Math.exp(h[y][T][F][2])*this.config.anchors[F].x/m*i,X=Math.exp(h[y][T][F][3])*this.config.anchors[F].y/m*c,Pt=G-it/2,_t=et-X/2,wt={row:y,col:T,anchor:F},{classScore:te,label:ho}=this.withClassScores?await this.extractPredictedClass(l,wt):{classScore:1,label:0};v.push({box:new re(Pt,_t,Pt+it,_t+X),score:L,classScore:L*te,label:ho,...wt})}}return d.dispose(),u.dispose(),l.dispose(),v}async extractPredictedClass(t,e){let{row:r,col:n,anchor:a}=e,s=await t.array();return Array(this.config.classes.length).fill(0).map((i,c)=>s[r][n][a][c]).map((i,c)=>({classScore:i,label:c})).reduce((i,c)=>i.classScore>c.classScore?i:c)}},ge=mo;ge.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var ve=class extends ge{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:Zo,classes:["face"],...t?{anchors:Qo,meanRgb:tn}:{anchors:Ko,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?rn:en}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function ca(o,t=!0){let e=new ve(t);return e.extractWeights(o),e}var gr=class extends lt{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var tt=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var je=b(g());var po=b(g());async function Jt(o,t,e,r,n=({alignedRect:a})=>a){let a=o.map(c=>Vt(c)?n(c):c.detection),s=r||(t instanceof po.Tensor?await se(t,a):await ae(t,a)),i=await e(s);return s.forEach(c=>c instanceof po.Tensor&&c.dispose()),i}async function ye(o,t,e,r,n){return Jt([o],t,async a=>e(a[0]),r,n)}var an=.4,sn=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],cn=[117.001,114.697,97.404];var Fe=class extends ge{constructor(){let t={withSeparableConvs:!0,iouThreshold:an,classes:["face"],anchors:sn,meanRgb:cn,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var P={ssdMobilenetv1:new Xt,tinyFaceDetector:new Fe,tinyYolov2:new ve,faceLandmark68Net:new fe,faceLandmark68TinyNet:new dr,faceRecognitionNet:new xe,faceExpressionNet:new cr,ageGenderNet:new pr},mn=(o,t)=>P.ssdMobilenetv1.locateFaces(o,t),ma=(o,t)=>P.tinyFaceDetector.locateFaces(o,t),pa=(o,t)=>P.tinyYolov2.locateFaces(o,t),pn=o=>P.faceLandmark68Net.detectLandmarks(o),da=o=>P.faceLandmark68TinyNet.detectLandmarks(o),ua=o=>P.faceRecognitionNet.computeFaceDescriptor(o),la=o=>P.faceExpressionNet.predictExpressions(o),fa=o=>P.ageGenderNet.predictAgeAndGender(o),dn=o=>P.ssdMobilenetv1.load(o),ha=o=>P.tinyFaceDetector.load(o),xa=o=>P.tinyYolov2.load(o),ba=o=>P.faceLandmark68Net.load(o),ga=o=>P.faceLandmark68TinyNet.load(o),va=o=>P.faceRecognitionNet.load(o),ya=o=>P.faceExpressionNet.load(o),Fa=o=>P.ageGenderNet.load(o),Ta=dn,Pa=mn,_a=pn;var uo=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},_e=class extends uo{async run(){let t=await this.parentTask,e=await Jt(t,this.input,async r=>Promise.all(r.map(n=>P.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>mr(r,e[n]))}withAgeAndGender(){return new Te(this,this.input)}},we=class extends uo{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>P.faceExpressionNet.predictExpressions(r),this.extractedFaces);return mr(t,e)}withAgeAndGender(){return new Pe(this,this.input)}},Kt=class extends _e{withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Qt=class extends we{withAgeAndGender(){return new Zt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var lo=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},Te=class extends lo{async run(){let t=await this.parentTask,e=await Jt(t,this.input,async r=>Promise.all(r.map(n=>P.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:a,gender:s,genderProbability:i}=e[n];return hr(xr(r,s,i),a)})}withFaceExpressions(){return new _e(this,this.input)}},Pe=class extends lo{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await ye(t,this.input,a=>P.ageGenderNet.predictAgeAndGender(a),this.extractedFaces);return hr(xr(t,r,n),e)}withFaceExpressions(){return new we(this,this.input)}},qt=class extends Te{withFaceExpressions(){return new Kt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Zt=class extends Pe{withFaceExpressions(){return new Qt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var vr=class extends tt{constructor(t,e){super();this.parentTask=t;this.input=e}},At=class extends vr{async run(){let t=await this.parentTask;return(await Jt(t,this.input,r=>Promise.all(r.map(n=>P.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>fr(t[n],r))}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}},Wt=class extends vr{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>P.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return fr(t,e)}withFaceExpressions(){return new Qt(this,this.input)}withAgeAndGender(){return new Zt(this,this.input)}};var yr=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?P.faceLandmark68TinyNet:P.faceLandmark68Net}},Fr=class extends yr{async run(){let t=await this.parentTask,e=t.map(a=>a.detection),r=this.input instanceof je.Tensor?await se(this.input,e):await ae(this.input,e),n=await Promise.all(r.map(a=>this.landmarkNet.detectLandmarks(a)));return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),t.map((a,s)=>le(a,n[s]))}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Tr=class extends yr{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof je.Tensor?await se(this.input,[e]):await ae(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),le(t,n)}withFaceExpressions(){return new Qt(this,this.input)}withAgeAndGender(){return new Zt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var Pr=class extends tt{constructor(t,e=new Z){super();this.input=t;this.options=e}},He=class extends Pr{async run(){let{input:t,options:e}=this,r;if(e instanceof gr)r=P.tinyFaceDetector.locateFaces(t,e);else if(e instanceof Z)r=P.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof lt)r=P.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise(async t=>{let e=await this.run();t(e.map(r=>$t({},r)))})}withFaceLandmarks(t=!1){return new Fr(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new _e(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Te(this.runAndExtendWithFaceDetections(),this.input)}},_r=class extends Pr{async run(){let t=await new He(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?$t({},e):void 0)})}withFaceLandmarks(t=!1){return new Tr(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new we(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Pe(this.runAndExtendWithFaceDetection(),this.input)}};function wa(o,t=new Z){return new _r(o,t)}function wr(o,t=new Z){return new He(o,t)}async function un(o,t){return wr(o,new Z(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function Da(o,t={}){return wr(o,new lt(t)).withFaceLandmarks().withFaceDescriptors()}var Ea=un;function fo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((n,a)=>n-r[a]).reduce((n,a)=>n+a**2,0))}var Dr=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1,a=()=>`person ${n++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof xt)return s;if(s instanceof Float32Array)return new xt(a(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new xt(a(),[s.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>fo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new Ee(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>xt.fromJSON(r));return new Dr(e,t.distanceThreshold)}};function Ma(o){let t=new Fe;return t.extractWeights(o),t}function ln(o,t){let{width:e,height:r}=new A(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(n=>ln(n,{width:e,height:r}));if(Vt(o)){let n=o.detection.forSize(e,r),a=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return le($t(o,n),a)}return pt(o)?$t(o,o.detection.forSize(e,r)):o instanceof V||o instanceof M?o.forSize(e,r):o}var Na=typeof process!="undefined",Ia=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",La={faceapi:No,node:Na,browser:Ia}; +var fn=Object.create,Ye=Object.defineProperty,hn=Object.getPrototypeOf,xn=Object.prototype.hasOwnProperty,bn=Object.getOwnPropertyNames,gn=Object.getOwnPropertyDescriptor;var Er=o=>Ye(o,"__esModule",{value:!0});var fo=(o,t)=>()=>(t||(t={exports:{}},o(t.exports,t)),t.exports),Ge=(o,t)=>{for(var e in t)Ye(o,e,{get:t[e],enumerable:!0})},vn=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of bn(t))!xn.call(o,r)&&r!=="default"&&Ye(o,r,{get:()=>t[r],enumerable:!(e=gn(t,r))||e.enumerable});return o},b=o=>vn(Er(Ye(o!=null?fn(hn(o)):{},"default",o&&o.__esModule&&"default"in o?{get:()=>o.default,enumerable:!0}:{value:o,enumerable:!0})),o);var g=fo(Mr=>{var yn=Object.create,Cr=Object.defineProperty,Fn=Object.getPrototypeOf,Tn=Object.prototype.hasOwnProperty,_n=Object.getOwnPropertyNames,wn=Object.getOwnPropertyDescriptor,ho=o=>Cr(o,"__esModule",{value:!0}),xo=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of _n(t))!Tn.call(o,r)&&r!=="default"&&Cr(o,r,{get:()=>t[r],enumerable:!(e=wn(t,r))||e.enumerable});return o},Pn=o=>xo(ho(Cr(o!=null?yn(Fn(o)):{},"default",o&&o.__esModule&&"default"in o?{get:()=>o.default,enumerable:!0}:{value:o,enumerable:!0})),o);ho(Mr);xo(Mr,Pn(require("@tensorflow/tfjs-node")))});var To=fo((Ln,Fo)=>{Er(Ln);Ge(Ln,{isNodejs:()=>kn});function kn(){return typeof global=="object"&&!0&&typeof Fo!="undefined"&&typeof process!="undefined"&&!!process.version}});Er(exports);Ge(exports,{AgeGenderNet:()=>pr,BoundingBox:()=>re,Box:()=>D,ComposableTask:()=>tt,ComputeAllFaceDescriptorsTask:()=>At,ComputeFaceDescriptorsTaskBase:()=>vr,ComputeSingleFaceDescriptorTask:()=>Wt,DetectAllFaceLandmarksTask:()=>Fr,DetectAllFacesTask:()=>He,DetectFaceLandmarksTaskBase:()=>yr,DetectFacesTaskBase:()=>_r,DetectSingleFaceLandmarksTask:()=>Tr,DetectSingleFaceTask:()=>wr,Dimensions:()=>A,FACE_EXPRESSION_LABELS:()=>qr,FaceDetection:()=>M,FaceDetectionNet:()=>qo,FaceExpressionNet:()=>cr,FaceExpressions:()=>It,FaceLandmark68Net:()=>fe,FaceLandmark68TinyNet:()=>dr,FaceLandmarkNet:()=>Ro,FaceLandmarks:()=>V,FaceLandmarks5:()=>vo,FaceLandmarks68:()=>ne,FaceMatch:()=>Ee,FaceMatcher:()=>Dr,FaceRecognitionNet:()=>xe,Gender:()=>vt,LabeledBox:()=>Me,LabeledFaceDescriptors:()=>xt,NetInput:()=>bt,NeuralNetwork:()=>S,ObjectDetection:()=>Dt,Point:()=>x,PredictedBox:()=>yo,Rect:()=>oe,SsdMobilenetv1:()=>Xt,SsdMobilenetv1Options:()=>Z,TinyFaceDetector:()=>Fe,TinyFaceDetectorOptions:()=>gr,TinyYolov2:()=>ve,TinyYolov2Options:()=>lt,allFaces:()=>Ea,allFacesSsdMobilenetv1:()=>un,allFacesTinyYolov2:()=>Da,awaitMediaLoaded:()=>Gr,bufferToImage:()=>zr,computeFaceDescriptor:()=>ua,createCanvas:()=>Yt,createCanvasFromMedia:()=>Ie,createFaceDetectionNet:()=>aa,createFaceRecognitionNet:()=>Xn,createSsdMobilenetv1:()=>Jo,createTinyFaceDetector:()=>Ma,createTinyYolov2:()=>ca,detectAllFaces:()=>Pr,detectFaceLandmarks:()=>pn,detectFaceLandmarksTiny:()=>da,detectLandmarks:()=>wa,detectSingleFace:()=>Pa,draw:()=>Co,env:()=>P,euclideanDistance:()=>uo,extendWithAge:()=>hr,extendWithFaceDescriptor:()=>fr,extendWithFaceDetection:()=>Ot,extendWithFaceExpressions:()=>mr,extendWithFaceLandmarks:()=>le,extendWithGender:()=>xr,extractFaceTensors:()=>se,extractFaces:()=>ae,fetchImage:()=>Bn,fetchJson:()=>Xr,fetchNetWeights:()=>Rn,fetchOrThrow:()=>Gt,getContext2dOrThrow:()=>$,getMediaDimensions:()=>Ht,imageTensorToCanvas:()=>Vr,imageToSquare:()=>Ur,inverseSigmoid:()=>Mn,iou:()=>kr,isMediaElement:()=>qe,isMediaLoaded:()=>Ne,isWithAge:()=>Jn,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>Zr,isWithFaceLandmarks:()=>Vt,isWithGender:()=>qn,loadAgeGenderModel:()=>Fa,loadFaceDetectionModel:()=>Ta,loadFaceExpressionModel:()=>ya,loadFaceLandmarkModel:()=>ba,loadFaceLandmarkTinyModel:()=>ga,loadFaceRecognitionModel:()=>va,loadSsdMobilenetv1Model:()=>dn,loadTinyFaceDetectorModel:()=>ha,loadTinyYolov2Model:()=>xa,loadWeightMap:()=>Jr,locateFaces:()=>_a,matchDimensions:()=>$n,minBbox:()=>Sr,nets:()=>_,nonMaxSuppression:()=>Ar,normalize:()=>ot,padToSquare:()=>Wr,predictAgeAndGender:()=>fa,recognizeFaceExpressions:()=>la,resizeResults:()=>ln,resolveInput:()=>jt,shuffleArray:()=>En,sigmoid:()=>De,ssdMobilenetv1:()=>mn,tf:()=>Ca,tinyFaceDetector:()=>ma,tinyYolov2:()=>pa,toNetInput:()=>E,utils:()=>bo,validateConfig:()=>ao,version:()=>La});var Ca=b(g());var Co={};Ge(Co,{AnchorPosition:()=>dt,DrawBox:()=>Xe,DrawBoxOptions:()=>Yr,DrawFaceLandmarks:()=>Qr,DrawFaceLandmarksOptions:()=>Kr,DrawTextField:()=>Mt,DrawTextFieldOptions:()=>Ce,drawContour:()=>ft,drawDetections:()=>Wn,drawFaceExpressions:()=>On,drawFaceLandmarks:()=>Hn});function ft(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},a)=>{let s=t[a];o.moveTo(s.x,s.y),o.lineTo(r,n)}),e){let r=t[t.length-1],n=t[0];if(!r||!n)return;o.moveTo(r.x,r.y),o.lineTo(n.x,n.y)}o.stroke()}var bo={};Ge(bo,{computeReshapedDimensions:()=>Lr,getCenterPoint:()=>$t,isDimensions:()=>Ve,isEven:()=>ze,isFloat:()=>Ir,isTensor:()=>Bt,isTensor1D:()=>Dn,isTensor2D:()=>Nr,isTensor3D:()=>ht,isTensor4D:()=>z,isValidNumber:()=>rt,isValidProbablitiy:()=>ee,range:()=>ct,round:()=>Rt});var go=b(g());var A=class{constructor(t,e){if(!rt(t)||!rt(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new A(1/this.width,1/this.height)}};function Bt(o,t){return o instanceof go.Tensor&&o.shape.length===t}function Dn(o){return Bt(o,1)}function Nr(o){return Bt(o,2)}function ht(o){return Bt(o,3)}function z(o){return Bt(o,4)}function Ir(o){return o%1!=0}function ze(o){return o%2==0}function Rt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function Ve(o){return o&&o.width&&o.height}function Lr({width:o,height:t},e){let r=e/Math.max(t,o);return new A(Math.round(o*r),Math.round(t*r))}function $t(o){return o.reduce((t,e)=>t.add(e),new x(0,0)).div(new x(o.length,o.length))}function ct(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function rt(o){return!!o&&o!==Infinity&&o!==-Infinity&&!Number.isNaN(o)||o===0}function ee(o){return rt(o)&&o>=0&&o<=1}var x=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new x(this.x+t.x,this.y+t.y)}sub(t){return new x(this.x-t.x,this.y-t.y)}mul(t){return new x(this.x*t.x,this.y*t.y)}div(t){return new x(this.x/t.x,this.y/t.y)}abs(){return new x(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new x(Math.floor(this.x),Math.floor(this.y))}};var D=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(rt)}static assertIsValidBox(t,e,r=!1){if(!D.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},n=[r.left,r.top,r.right,r.bottom].every(rt),a=[r.x,r.y,r.width,r.height].every(rt);if(!a&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,i,c,m]=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];D.assertIsValidBox({x:s,y:i,width:c,height:m},"Box.constructor",e),this._x=s,this._y=i,this._width=c,this._height=m}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new x(this.left,this.top)}get topRight(){return new x(this.right,this.top)}get bottomLeft(){return new x(this.left,this.bottom)}get bottomRight(){return new x(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.round(a));return new D({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.floor(a));return new D({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,a=Math.abs(r-n);return re&&(i=-d+e+r,d=e),u>t&&(c=-u+t+n,u=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:s,edy:c,dx:a,edx:i,y:p,ey:u,x:m,ex:d,w:r,h:n}}calibrate(t){return new D({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var re=class extends D{constructor(t,e,r,n,a=!1){super({left:t,top:e,right:r,bottom:n},a)}};var Dt=class{constructor(t,e,r,n,a){this._imageDims=new A(a.width,a.height),this._score=t,this._classScore=e,this._className=r,this._box=new D(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new D(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new Dt(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class extends Dt{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:a}=super.forSize(t,e);return new M(r,n,a)}};function kr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),n=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),a=r*n;return e?a/(o.area+t.area-a):a/Math.min(o.area,t.area)}function Sr(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:s,boxIndex:i})).sort((s,i)=>s.score-i.score).map(s=>s.boxIndex),a=[];for(;n.length>0;){let s=n.pop();a.push(s);let i=n,c=[];for(let m=0;mc[p]<=e)}return a}var mt=b(g());function ot(o,t){return mt.tidy(()=>{let[e,r,n]=t,a=mt.fill([...o.shape.slice(0,3),1],e,"float32"),s=mt.fill([...o.shape.slice(0,3),1],r,"float32"),i=mt.fill([...o.shape.slice(0,3),1],n,"float32"),c=mt.concat([a,s,i],3);return mt.sub(o,c)})}var Et=b(g());function Wr(o,t=!1){return Et.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),a=Math.round(n*(t?.5:1)),s=e>r?2:1,i=u=>{let l=o.shape.slice();return l[s]=u,Et.fill(l,0,"float32")},c=i(a),m=n-c.shape[s],d=[t&&m?i(m):null,o,c].filter(u=>!!u).map(u=>Et.cast(u,"float32"));return Et.concat(d,s)})}function En(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function De(o){return 1/(1+Math.exp(-o))}function Mn(o){return Math.log(o/(1-o))}var oe=class extends D{constructor(t,e,r,n,a=!1){super({x:t,y:e,width:r,height:n},a)}};var Cn=.5,Nn=.43,In=.45,V=class{constructor(t,e,r=new x(0,0)){let{width:n,height:a}=e;this._imgDims=new A(n,a),this._shift=r,this._positions=t.map(s=>s.mul(new x(n,a)).add(r))}get shift(){return new x(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new x(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new x(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let a=t instanceof M?t.box.floor():new D(t);return this.shiftBy(a.x,a.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:n}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(n)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,n]=t,a=d=>n.sub(d).magnitude(),s=(a(e)+a(r))/2,i=Math.floor(s/In),c=$t(t),m=Math.floor(Math.max(0,c.x-Cn*i)),p=Math.floor(Math.max(0,c.y-Nn*i));return new oe(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Sr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var vo=class extends V{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],$t([t[3],t[4]])]}};var ne=class extends V{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map($t)}};var Ee=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Rt(this.distance)})`:""}`}};var Me=class extends D{static assertIsValidLabeledBox(t,e){if(D.assertIsValidBox(t,e),!rt(t.label))throw new Error(`${e} - expected property label (${t.label}) to be a number`)}constructor(t,e){super(t);this._label=e}get label(){return this._label}};var xt=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new xt(t.label,e)}};var yo=class extends Me{static assertIsValidPredictedBox(t,e){if(Me.assertIsValidLabeledBox(t,e),!ee(t.score)||!ee(t.classScore))throw new Error(`${e} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,e,r,n){super(t,e);this._score=r,this._classScore=n}get score(){return this._score}get classScore(){return this._classScore}};function pt(o){return o.detection instanceof M}function Ot(o,t){return{...o,...{detection:t}}}function Br(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Ue(o){let t="";if(!o)try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,a)=>{o.readFile(r,(s,i)=>s?a(s):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Rr(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},n=global.fetch,a=Ue();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:e,createImageElement:r,fetch:n,...a}}function $r(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var Or=b(To()),k;function Sn(){if(!k)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return k}function jr(o){k=o}function Hr(){return $r()?jr(Br()):(0,Or.isNodejs)()?jr(Rr()):null}function An(o){if(k||Hr(),!k)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=k.Canvas,Image:e=k.Image}=o;k.Canvas=t,k.Image=e,k.createCanvasElement=o.createCanvasElement||(()=>new t),k.createImageElement=o.createImageElement||(()=>new e),k.ImageData=o.ImageData||k.ImageData,k.Video=o.Video||k.Video,k.fetch=o.fetch||k.fetch,k.readFile=o.readFile||k.readFile}var P={getEnv:Sn,setEnv:jr,initialize:Hr,createBrowserEnv:Br,createFileSystem:Ue,createNodejsEnv:Rr,monkeyPatch:An,isBrowser:$r,isNodejs:Or.isNodejs};Hr();function jt(o){return!P.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function $(o){let{Canvas:t,CanvasRenderingContext2D:e}=P.getEnv();if(o instanceof e)return o;let r=jt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d");if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var dt;(function(o){o.TOP_LEFT="TOP_LEFT",o.TOP_RIGHT="TOP_RIGHT",o.BOTTOM_LEFT="BOTTOM_LEFT",o.BOTTOM_RIGHT="BOTTOM_RIGHT"})(dt||(dt={}));var Ce=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:a,fontStyle:s,padding:i}=t;this.anchorPosition=e||dt.TOP_LEFT,this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=a||14,this.fontStyle=s||"Georgia",this.padding=i||4}},Mt=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof Mt?t.text:t,this.anchor=e,this.options=new Ce(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let v=c+d.x,w=c+d.y+(l+1)*s;r.fillText(u,v,w)})}};var Yr=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:a}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let s={anchorPosition:dt.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Ce({...s,...a})}},Xe=class{constructor(t,e={}){this.box=new D(t),this.options=new Yr(e)}draw(t){let e=$(t),{boxColor:r,lineWidth:n}=this.options,{x:a,y:s,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(a,s,i,c);let{label:m}=this.options;m&&new Mt([m],{x:a-n/2,y:s},this.options.drawLabelOptions).draw(t)}};function Wn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,a=r instanceof M?r.box:pt(r)?r.detection.box:new D(r),s=n?`${Rt(n)}`:void 0;new Xe(a,{label:s}).draw(o)})}var ue=b(g());function Ne(o){let{Image:t,Video:e}=P.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function Gr(o){return new Promise((t,e)=>{if(o instanceof P.getEnv().Canvas||Ne(o))return t(null);function r(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),e(a))}function n(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),t(a))}o.addEventListener("load",n),o.addEventListener("error",r)})}function zr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let n=P.getEnv().createImageElement();n.onload=()=>t(n),n.onerror=e,n.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Ht(o){let{Image:t,Video:e}=P.getEnv();return o instanceof t?new A(o.naturalWidth,o.naturalHeight):o instanceof e?new A(o.videoWidth,o.videoHeight):new A(o.width,o.height)}function Yt({width:o,height:t}){let{createCanvasElement:e}=P.getEnv(),r=e();return r.width=o,r.height=t,r}function Ie(o,t){let{ImageData:e}=P.getEnv();if(!(o instanceof e)&&!Ne(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Ht(o),a=Yt({width:r,height:n});return o instanceof e?$(a).putImageData(o,0,0):$(a).drawImage(o,0,0,r,n),a}var Je=b(g());async function Vr(o,t){let e=t||P.getEnv().createCanvasElement(),[r,n,a]=o.shape.slice(z(o)?1:0),s=Je.tidy(()=>o.as3D(r,n,a).toInt());return await Je.browser.toPixels(s,e),s.dispose(),e}function qe(o){let{Image:t,Canvas:e,Video:r}=P.getEnv();return o instanceof t||o instanceof e||o instanceof r}var J=b(g());function Ur(o,t,e=!1){let{Image:r,Canvas:n}=P.getEnv();if(!(o instanceof r||o instanceof n))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Yt({width:1,height:1});let a=Ht(o),s=t/Math.max(a.height,a.width),i=s*a.width,c=s*a.height,m=Yt({width:t,height:t}),p=o instanceof n?o:Ie(o),d=Math.abs(i-c)/2,u=e&&i0&&p.height>0&&$(m).drawImage(p,u,l,i,c),m}var bt=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=e,this._batchSize=t.length,t.forEach((r,n)=>{if(ht(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(z(r)){let s=r.shape[0];if(s!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${s} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let a=r instanceof P.getEnv().Canvas?r:Ie(r);this._canvases[n]=a,this._inputDimensions[n]=[a.height,a.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return ct(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return Lr({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,J.tidy(()=>{let r=ct(this.batchSize,0,1).map(a=>{let s=this.getInput(a);if(s instanceof J.Tensor){let i=z(s)?s:s.expandDims();return i=Wr(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=J.image.resizeBilinear(i,[t,t])),i.as3D(t,t,3)}if(s instanceof P.getEnv().Canvas)return J.browser.fromPixels(Ur(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${a}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return J.stack(r.map(a=>J.cast(a,"float32"))).as4D(this.batchSize,t,t,3)})}};async function E(o){if(o instanceof bt)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=n=>Array.isArray(o)?` at input index ${n}:`:"",r=t.map(jt);return r.forEach((n,a)=>{if(!qe(n)&&!ht(n)&&!z(n))throw typeof t[a]=="string"?new Error(`toNetInput -${e(a)} string passed, but could not resolve HTMLElement for element id ${t[a]}`):new Error(`toNetInput -${e(a)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(z(n)){let s=n.shape[0];if(s!==1)throw new Error(`toNetInput -${e(a)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>qe(n)&&Gr(n))),new bt(r,Array.isArray(o))}async function ae(o,t){let{Canvas:e}=P.getEnv(),r=o;if(!(o instanceof e)){let s=await E(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=s.getInput(0);r=i instanceof e?i:await Vr(i)}let n=$(r);return t.map(s=>s instanceof M?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:i,width:c,height:m})=>{let p=Yt({width:c,height:m});return c>0&&m>0&&$(p).putImageData(n.getImageData(s,i,c,m),0,0),p})}var Ze=b(g());async function se(o,t){if(!ht(o)&&!z(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(z(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return Ze.tidy(()=>{let[e,r,n]=o.shape.slice(z(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).map(({x:i,y:c,width:m,height:p})=>Ze.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function Gt(o,t){let{fetch:e}=P.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Bn(o){let t=await Gt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return zr(e)}async function Xr(o){return(await Gt(o)).json()}async function Rn(o){return new Float32Array(await(await Gt(o)).arrayBuffer())}var _o=b(g());function Ke(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let n=o.split("/").filter(i=>i),a=o.endsWith(".json")?n[n.length-1]:e,s=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${a}`:`${s}/${a}`}}async function Jr(o,t){let{manifestUri:e,modelBaseUri:r}=Ke(o,t),n=await Xr(e);return _o.io.loadWeights(n,r)}function $n(o,t,e=!1){let{width:r,height:n}=e?Ht(t):t;return o.width=r,o.height=n,{width:r,height:n}}var Nt=b(g());var gt=b(g());var S=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:n}=this.traversePropertyPath(t);r[n].dispose(),r[n]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof gt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof gt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=gt.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await Jr(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=P.getEnv(),{manifestUri:r,modelBaseUri:n}=Ke(t,this.getDefaultModelName()),a=m=>Promise.all(m.map(p=>e(p).then(d=>d.buffer))),s=gt.io.weightsLoaderFactory(a),i=JSON.parse((await e(r)).toString()),c=await s(i,n);this.loadFromWeightMap(c)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((a,s)=>{if(!a.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:a.nextObj,objProp:s,nextObj:a.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof gt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var C=b(g());var ie=b(g());function O(o,t,e){return ie.tidy(()=>{let r=ie.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=ie.add(r,t.bias),r})}function Qe(o,t,e=!1){return C.tidy(()=>{let r=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):O(o,t.conv0,[2,2])),n=O(r,t.conv1,[1,1]),a=C.relu(C.add(r,n)),s=O(a,t.conv2,[1,1]);return C.relu(C.add(r,C.add(n,s)))})}function Le(o,t,e=!1,r=!0){return C.tidy(()=>{let n=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):O(o,t.conv0,r?[2,2]:[1,1])),a=O(n,t.conv1,[1,1]),s=C.relu(C.add(n,a)),i=O(s,t.conv2,[1,1]),c=C.relu(C.add(n,C.add(a,i))),m=O(c,t.conv3,[1,1]);return C.relu(C.add(n,C.add(a,C.add(i,m))))})}var Ct=b(g());function zt(o,t,e="same",r=!1){return Ct.tidy(()=>{let n=Ct.add(Ct.conv2d(o,t.filters,[1,1],e),t.bias);return r?Ct.relu(n):n})}function W(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var tr=b(g());function ce(o,t){return(e,r,n,a)=>{let s=tr.tensor4d(o(e*r*n*n),[n,n,e,r]),i=tr.tensor1d(o(r));return t.push({paramPath:`${a}/filters`},{paramPath:`${a}/bias`}),{filters:s,bias:i}}}var er=b(g());function rr(o,t){return(e,r,n)=>{let a=er.tensor2d(o(e*r),[e,r]),s=er.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:a,bias:s}}}var ke=b(g());var or=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function me(o,t){return(e,r,n)=>{let a=ke.tensor4d(o(3*3*e),[3,3,e,1]),s=ke.tensor4d(o(e*r),[1,1,e,r]),i=ke.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new or(a,s,i)}}function pe(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new or(e,r,n)}}function j(o,t){return(e,r,n)=>{let a=o[e];if(!Bt(a,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${a}`);return t.push({originalPath:e,paramPath:n||e}),a}}function B(o){let t=o;function e(n){let a=t.slice(0,n);return t=t.slice(n),a}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function nr(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c,m=!1){let p=m?e(s,i,3,`${c}/conv0`):r(s,i,`${c}/conv0`),d=r(i,i,`${c}/conv1`),u=r(i,i,`${c}/conv2`);return{conv0:p,conv1:d,conv2:u}}function a(s,i,c,m=!1){let{conv0:p,conv1:d,conv2:u}=n(s,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:d,conv2:u,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:a}}function wo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock4Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2"),c=n(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i,dense3:c}}}function ar(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function sr(o,t){let e=j(o,t),r=ar(e),n=pe(e);function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:d}}function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`),u=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:d,conv3:u}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Po(o){let t=[],{extractDenseBlock4Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return W(o,t),{params:r,paramMappings:t}}var Se=class extends S{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return Nt.tidy(()=>{let r=Nt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(Nt.scalar(255)),s=Le(a,e.dense0,!0);return s=Le(s,e.dense1),s=Le(s,e.dense2),s=Le(s,e.dense3),s=Nt.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Po(t)}extractParams(t){return wo(t)}};var Mo=b(g());var de=b(g());function Ae(o,t){return de.tidy(()=>de.add(de.matMul(o,t.weights),t.bias))}function Do(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:a}=B(o),i=rr(n,r)(t,e,"fc");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:r,params:{fc:i}}}function Eo(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:r("fc")};return W(o,t),{params:n,paramMappings:t}}function ir(o){let t={},e={};return Object.keys(o).forEach(r=>{let n=r.startsWith("fc")?e:t;n[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var We=class extends S{constructor(t,e){super(t);this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return Mo.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t;return Ae(r.as2D(r.shape[0],-1),e.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return Do(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Eo(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),n=r*e+r,a=t.slice(0,t.length-n),s=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(s)}};var qr=["neutral","happy","sad","angry","fearful","disgusted","surprised"],It=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);qr.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return qr.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var cr=class extends We{constructor(t=new Se){super("FaceExpressionNet",t)}forwardInput(t){return ue.tidy(()=>ue.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await E(t))}async predictExpressions(t){let e=await E(t),r=await this.forwardInput(e),n=await Promise.all(ue.unstack(r).map(async s=>{let i=await s.data();return s.dispose(),i}));r.dispose();let a=n.map(s=>new It(s));return e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Zr(o){return o.expressions instanceof It}function mr(o,t){return{...o,...{expressions:t}}}function On(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(a=>{let s=a instanceof It?a:Zr(a)?a.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=s.asSortedArray().filter(d=>d.probability>e),m=pt(a)?a.detection.box.bottomLeft:r||new x(0,0);new Mt(c.map(d=>`${d.expression} (${Rt(d.probability)})`),m).draw(o)})}function Vt(o){return pt(o)&&o.landmarks instanceof V&&o.unshiftedLandmarks instanceof V&&o.alignedRect instanceof M}function jn(o){let t=(i,c,m,p)=>Math.atan2(p-c,m-i)%Math.PI,e=i=>i*180/Math.PI,r={roll:void 0,pitch:void 0,yaw:void 0};if(!o||!o._positions||o._positions.length!==68)return r;let n=o._positions;r.roll=-t(n[36]._x,n[36]._y,n[45]._x,n[45]._y),r.pitch=t(0,Math.abs(n[0]._x-n[30]._x)/n[30]._x,Math.PI,Math.abs(n[16]._x-n[30]._x)/n[30]._x);let a=n.reduce((i,c)=>ii>c._y?i:c._y,-Infinity);return r.yaw=Math.PI*(o._imgDims._height/(s-a)/1.4-1),r}function le(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:a}=o.detection,s=new M(o.detection.score,n.rescale(a.reverse()),a),i=jn(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s,angle:i}}}var Kr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:a,pointSize:s,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=s||2,this.lineColor=a||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},Qr=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new Kr(e)}draw(t){let e=$(t),{drawLines:r,drawPoints:n,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof ne&&(e.strokeStyle=s,e.lineWidth=a,ft(e,this.faceLandmarks.getJawOutline()),ft(e,this.faceLandmarks.getLeftEyeBrow()),ft(e,this.faceLandmarks.getRightEyeBrow()),ft(e,this.faceLandmarks.getNose()),ft(e,this.faceLandmarks.getLeftEye(),!0),ft(e,this.faceLandmarks.getRightEye(),!0),ft(e,this.faceLandmarks.getMouth(),!0)),n){e.strokeStyle=c,e.fillStyle=c;let m=p=>{e.beginPath(),e.arc(p.x,p.y,i,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(m)}}};function Hn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof V?r:Vt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new Qr(n).draw(o)})}var No="1.0.1";var ut=b(g());var I=b(g());function Yn(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c){let m=r(s,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),d=e(s,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:d}}function a(s,i){let c=r(s,s,`${i}/separable_conv0`),m=r(s,s,`${i}/separable_conv1`),p=r(s,s,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:a}}function Io(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=B(o),{extractConvParams:a,extractSeparableConvParams:s,extractReductionBlockParams:i,extractMainBlockParams:c}=Yn(r,e),m=a(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),d=i(64,128,"entry_flow/reduction_block_1"),u={conv_in:m,reduction_block_0:p,reduction_block_1:d},l={};ct(t,0,1).forEach(y=>{l[`main_block_${y}`]=c(128,`middle_flow/main_block_${y}`)});let v=i(128,256,"exit_flow/reduction_block"),w=s(256,512,"exit_flow/separable_conv"),h={reduction_block:v,separable_conv:w};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:u,middle_flow:l,exit_flow:h}}}function Gn(o,t){let e=j(o,t),r=ar(e),n=pe(e);function a(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=r(`${i}/expansion_conv`);return{separable_conv0:c,separable_conv1:m,expansion_conv:p}}function s(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=n(`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}}function Lo(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}=Gn(o,e),i=r("entry_flow/conv_in"),c=a("entry_flow/reduction_block_0"),m=a("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},d={};ct(t,0,1).forEach(w=>{d[`main_block_${w}`]=s(`middle_flow/main_block_${w}`)});let u=a("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),v={reduction_block:u,separable_conv:l};return W(o,e),{params:{entry_flow:p,middle_flow:d,exit_flow:v},paramMappings:e}}function ko(o,t,e){return I.add(I.conv2d(o,t.filters,e,"same"),t.bias)}function to(o,t,e=!0){let r=e?I.relu(o):o;return r=O(r,t.separable_conv0,[1,1]),r=O(I.relu(r),t.separable_conv1,[1,1]),r=I.maxPool(r,[3,3],[2,2],"same"),r=I.add(r,ko(o,t.expansion_conv,[2,2])),r}function zn(o,t){let e=O(I.relu(o),t.separable_conv0,[1,1]);return e=O(I.relu(e),t.separable_conv1,[1,1]),e=O(I.relu(e),t.separable_conv2,[1,1]),e=I.add(e,o),e}var eo=class extends S{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyXception - load model before inference");return I.tidy(()=>{let r=I.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(I.scalar(256)),s=I.relu(ko(a,e.entry_flow.conv_in,[2,2]));return s=to(s,e.entry_flow.reduction_block_0,!1),s=to(s,e.entry_flow.reduction_block_1),ct(this._numMainBlocks,0,1).forEach(i=>{s=zn(s,e.middle_flow[`main_block_${i}`])}),s=to(s,e.exit_flow.reduction_block),s=I.relu(O(s,e.exit_flow.separable_conv,[1,1])),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return Lo(t,this._numMainBlocks)}extractParams(t){return Io(t,this._numMainBlocks)}};function So(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),n=rr(e,t),a=n(512,1,"fc/age"),s=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:a,gender:s}}}}function Ao(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return W(o,t),{params:n,paramMappings:t}}var vt;(function(o){o.FEMALE="female",o.MALE="male"})(vt||(vt={}));var pr=class extends S{constructor(t=new eo(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return ut.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t,n=ut.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),a=Ae(n,e.fc.age).as1D(),s=Ae(n,e.fc.gender);return{age:a,gender:s}})}forwardInput(t){return ut.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:ut.softmax(r)}})}async forward(t){return this.forwardInput(await E(t))}async predictAgeAndGender(t){let e=await E(t),r=await this.forwardInput(e),n=ut.unstack(r.age),a=ut.unstack(r.gender),s=n.map((c,m)=>({ageTensor:c,genderTensor:a[m]})),i=await Promise.all(s.map(async({ageTensor:c,genderTensor:m})=>{let p=(await c.data())[0],d=(await m.data())[0],u=d>.5,l=u?vt.MALE:vt.FEMALE,v=u?d:1-d;return c.dispose(),m.dispose(),{age:p,gender:l,genderProbability:v}}));return r.age.dispose(),r.gender.dispose(),e.isBatchInput?i:i[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return So(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Ao(r)}extractParams(t){let e=512*1+1+(512*2+2),r=t.slice(0,t.length-e),n=t.slice(t.length-e);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(n)}};var H=b(g());var Be=class extends We{postProcess(t,e,r){let n=r.map(({width:s,height:i})=>{let c=e/Math.max(i,s);return{width:s*c,height:i*c}}),a=n.length;return H.tidy(()=>{let s=(d,u)=>H.stack([H.fill([68],d,"float32"),H.fill([68],u,"float32")],1).as2D(1,136).as1D(),i=(d,u)=>{let{width:l,height:v}=n[d];return u(l,v)?Math.abs(l-v)/2:0},c=d=>i(d,(u,l)=>ui(d,(u,l)=>ls(c(u),m(u))))).div(H.stack(Array.from(Array(a),(d,u)=>s(n[u].width,n[u].height))))})}forwardInput(t){return H.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,n])=>({height:r,width:n})))})}async forward(t){return this.forwardInput(await E(t))}async detectLandmarks(t){let e=await E(t),r=H.tidy(()=>H.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(a,s)=>{let i=Array.from(await a.data()),c=i.filter((p,d)=>ze(d)),m=i.filter((p,d)=>!ze(d));return new ne(Array(68).fill(0).map((p,d)=>new x(c[d],m[d])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var fe=class extends Be{constructor(t=new Se){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var Lt=b(g());function Wo(o){let t=[],{extractDenseBlock3Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return W(o,t),{params:r,paramMappings:t}}function Bo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock3Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i}}}var ro=class extends S{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return Lt.tidy(()=>{let r=Lt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(Lt.scalar(255)),s=Qe(a,e.dense0,!0);return s=Qe(s,e.dense1),s=Qe(s,e.dense2),s=Lt.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Wo(t)}extractParams(t){return Bo(t)}};var dr=class extends Be{constructor(t=new ro){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Ro=class extends fe{};var U=b(g());var he=b(g());var ur=b(g());function $o(o,t){return ur.add(ur.mul(o,t.weights),t.biases)}function oo(o,t,e,r,n="same"){let{filters:a,bias:s}=t.conv,i=he.conv2d(o,a,e,n);return i=he.add(i,s),i=$o(i,t.scale),r?he.relu(i):i}function Oo(o,t){return oo(o,t,[1,1],!0)}function no(o,t){return oo(o,t,[1,1],!1)}function lr(o,t){return oo(o,t,[2,2],!0,"valid")}var Y=b(g());function Vn(o,t){function e(i,c,m){let p=o(i),d=p.length/(c*m*m);if(Ir(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return Y.tidy(()=>Y.transpose(Y.tensor4d(p,[c,d,m,m]),[2,3,1,0]))}function r(i,c,m,p){let d=e(i,c,m),u=Y.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:u}}function n(i,c){let m=Y.tensor1d(o(i)),p=Y.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function a(i,c,m,p){let d=r(i,c,m,`${p}/conv`),u=n(c,`${p}/scale`);return{conv:d,scale:u}}function s(i,c,m,p,d=!1){let u=a((d?.5:1)*i,c,m,`${p}/conv1`),l=a(i,c,m,`${p}/conv2`);return{conv1:u,conv2:l}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function jo(o){let{extractWeights:t,getRemainingWeights:e}=B(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Vn(t,r),s=n(4704,32,7,"conv32_down"),i=a(9216,32,3,"conv32_1"),c=a(9216,32,3,"conv32_2"),m=a(9216,32,3,"conv32_3"),p=a(36864,64,3,"conv64_down",!0),d=a(36864,64,3,"conv64_1"),u=a(36864,64,3,"conv64_2"),l=a(36864,64,3,"conv64_3"),v=a(147456,128,3,"conv128_down",!0),w=a(147456,128,3,"conv128_1"),h=a(147456,128,3,"conv128_2"),y=a(589824,256,3,"conv256_down",!0),T=a(589824,256,3,"conv256_1"),F=a(589824,256,3,"conv256_2"),L=a(589824,256,3,"conv256_down_out"),G=Y.tidy(()=>Y.transpose(Y.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:s,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:d,conv64_2:u,conv64_3:l,conv128_down:v,conv128_1:w,conv128_2:h,conv256_down:y,conv256_1:T,conv256_2:F,conv256_down_out:L,fc:G},paramMappings:r}}function Un(o,t){let e=j(o,t);function r(s){let i=e(`${s}/scale/weights`,1),c=e(`${s}/scale/biases`,1);return{weights:i,biases:c}}function n(s){let i=e(`${s}/conv/filters`,4),c=e(`${s}/conv/bias`,1),m=r(s);return{conv:{filters:i,bias:c},scale:m}}function a(s){return{conv1:n(`${s}/conv1`),conv2:n(`${s}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:a}}function Ho(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Un(o,t),n=e("conv32_down"),a=r("conv32_1"),s=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),d=r("conv64_3"),u=r("conv128_down"),l=r("conv128_1"),v=r("conv128_2"),w=r("conv256_down"),h=r("conv256_1"),y=r("conv256_2"),T=r("conv256_down_out"),{fc:F}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Nr(F))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${F}`);let L={conv32_down:n,conv32_1:a,conv32_2:s,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:d,conv128_down:u,conv128_1:l,conv128_2:v,conv256_down:w,conv256_1:h,conv256_2:y,conv256_down_out:T,fc:F};return W(o,t),{params:L,paramMappings:t}}var R=b(g());function nt(o,t){let e=Oo(o,t.conv1);return e=no(e,t.conv2),e=R.add(e,o),e=R.relu(e),e}function Re(o,t){let e=lr(o,t.conv1);e=no(e,t.conv2);let r=R.avgPool(o,2,2,"valid"),n=R.zeros(r.shape),a=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let i=[...e.shape];i[1]=1;let c=R.zeros(i);e=R.concat([e,c],1);let m=[...e.shape];m[2]=1;let p=R.zeros(m);e=R.concat([e,p],2)}return r=a?R.concat([r,n],3):r,e=R.add(r,e),e=R.relu(e),e}var xe=class extends S{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return U.tidy(()=>{let r=U.cast(t.toBatchTensor(150,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(U.scalar(256)),s=lr(a,e.conv32_down);s=U.maxPool(s,3,2,"valid"),s=nt(s,e.conv32_1),s=nt(s,e.conv32_2),s=nt(s,e.conv32_3),s=Re(s,e.conv64_down),s=nt(s,e.conv64_1),s=nt(s,e.conv64_2),s=nt(s,e.conv64_3),s=Re(s,e.conv128_down),s=nt(s,e.conv128_1),s=nt(s,e.conv128_2),s=Re(s,e.conv256_down),s=nt(s,e.conv256_1),s=nt(s,e.conv256_2),s=Re(s,e.conv256_down_out);let i=s.mean([1,2]);return U.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await E(t))}async computeFaceDescriptor(t){var a;if((a=t==null?void 0:t.shape)==null?void 0:a.some(s=>s<=0))return new Float32Array(128);let e=await E(t),r=U.tidy(()=>U.unstack(this.forwardInput(e))),n=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Ho(t)}extractParams(t){return jo(t)}};function Xn(o){let t=new xe;return t.extractWeights(o),t}function fr(o,t){return{...o,...{descriptor:t}}}function Jn(o){return typeof o.age=="number"}function hr(o,t){return{...o,...{age:t}}}function qn(o){return(o.gender===vt.MALE||o.gender===vt.FEMALE)&&ee(o.genderProbability)}function xr(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var st=b(g());var at=b(g());function Zn(o,t){function e(c,m){let p=at.tensor4d(o(3*3*c),[3,3,c,1]),d=at.tensor1d(o(c)),u=at.tensor1d(o(c)),l=at.tensor1d(o(c)),v=at.tensor1d(o(c));return t.push({paramPath:`${m}/filters`},{paramPath:`${m}/batch_norm_scale`},{paramPath:`${m}/batch_norm_offset`},{paramPath:`${m}/batch_norm_mean`},{paramPath:`${m}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:u,batch_norm_mean:l,batch_norm_variance:v}}function r(c,m,p,d,u){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),v=at.tensor1d(o(m));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${u?"batch_norm_offset":"bias"}`}),{filters:l,bias:v}}function n(c,m,p,d){let{filters:u,bias:l}=r(c,m,p,d,!0);return{filters:u,batch_norm_offset:l}}function a(c,m,p){let d=e(c,`${p}/depthwise_conv`),u=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:u}}function s(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=a(32,64,"mobilenetv1/conv_1"),p=a(64,128,"mobilenetv1/conv_2"),d=a(128,128,"mobilenetv1/conv_3"),u=a(128,256,"mobilenetv1/conv_4"),l=a(256,256,"mobilenetv1/conv_5"),v=a(256,512,"mobilenetv1/conv_6"),w=a(512,512,"mobilenetv1/conv_7"),h=a(512,512,"mobilenetv1/conv_8"),y=a(512,512,"mobilenetv1/conv_9"),T=a(512,512,"mobilenetv1/conv_10"),F=a(512,512,"mobilenetv1/conv_11"),L=a(512,1024,"mobilenetv1/conv_12"),G=a(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:v,conv_7:w,conv_8:h,conv_9:y,conv_10:T,conv_11:F,conv_12:L,conv_13:G}}function i(){let c=n(1024,256,1,"prediction_layer/conv_0"),m=n(256,512,3,"prediction_layer/conv_1"),p=n(512,128,1,"prediction_layer/conv_2"),d=n(128,256,3,"prediction_layer/conv_3"),u=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),v=n(256,64,1,"prediction_layer/conv_6"),w=n(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),T=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),F=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),L=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),G=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),et=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),it=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),X=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),_t=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),wt=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),Pt=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:v,conv_7:w,box_predictor_0:{box_encoding_predictor:h,class_predictor:y},box_predictor_1:{box_encoding_predictor:T,class_predictor:F},box_predictor_2:{box_encoding_predictor:L,class_predictor:G},box_predictor_3:{box_encoding_predictor:et,class_predictor:it},box_predictor_4:{box_encoding_predictor:X,class_predictor:_t},box_predictor_5:{box_encoding_predictor:wt,class_predictor:Pt}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:i}}function Yo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=Zn(e,t),s=n(),i=a(),m={extra_dim:at.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:s,prediction_layer:i,output_layer:m},paramMappings:t}}function Kn(o,t){let e=j(o,t);function r(m,p,d){let u=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:u,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,d=`MobilenetV1/Conv2d_${m}_depthwise`,u=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,v=e(`${d}/depthwise_weights`,4,`${u}/filters`),w=e(`${d}/BatchNorm/gamma`,1,`${u}/batch_norm_scale`),h=e(`${d}/BatchNorm/beta`,1,`${u}/batch_norm_offset`),y=e(`${d}/BatchNorm/moving_mean`,1,`${u}/batch_norm_mean`),T=e(`${d}/BatchNorm/moving_variance`,1,`${u}/batch_norm_variance`);return{depthwise_conv:{filters:v,batch_norm_scale:w,batch_norm_offset:h,batch_norm_mean:y,batch_norm_variance:T},pointwise_conv:r("MobilenetV1",m,l)}}function a(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:n(1),conv_2:n(2),conv_3:n(3),conv_4:n(4),conv_5:n(5),conv_6:n(6),conv_7:n(7),conv_8:n(8),conv_9:n(9),conv_10:n(10),conv_11:n(11),conv_12:n(12),conv_13:n(13)}}function s(m,p){let d=e(`${m}/weights`,4,`${p}/filters`),u=e(`${m}/biases`,1,`${p}/bias`);return{filters:d,bias:u}}function i(m){let p=s(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),d=s(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:c}}function Go(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=Kn(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!ht(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let a={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return W(o,t),{params:a,paramMappings:t}}var yt=b(g());var kt=b(g());function q(o,t,e){return kt.tidy(()=>{let r=kt.conv2d(o,t.filters,e,"same");return r=kt.add(r,t.batch_norm_offset),kt.clipByValue(r,0,6)})}var Qn=.0010000000474974513;function ta(o,t,e){return yt.tidy(()=>{let r=yt.depthwiseConv2d(o,t.filters,e,"same");return r=yt.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Qn),yt.clipByValue(r,0,6)})}function ea(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function zo(o,t){return yt.tidy(()=>{let e,r=q(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((a,s)=>{let i=s+1,c=ea(i);r=ta(r,a.depthwise_conv,c),r=q(r,a.pointwise_conv,[1,1]),i===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function ra(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),i=Math.max(r[t][1],r[t][3]),c=Math.min(r[e][0],r[e][2]),m=Math.min(r[e][1],r[e][3]),p=Math.max(r[e][0],r[e][2]),d=Math.max(r[e][1],r[e][3]),u=(s-n)*(i-a),l=(p-c)*(d-m);if(u<=0||l<=0)return 0;let v=Math.max(n,c),w=Math.max(a,m),h=Math.min(s,p),y=Math.min(i,d),T=Math.max(h-v,0)*Math.max(y-w,0);return T/(u+l-T)}function Vo(o,t,e,r,n){let a=o.shape[0],s=Math.min(e,a),i=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>n).sort((p,d)=>d.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=s)return;let d=p.score;for(let u=m.length-1;u>=0;--u){let l=ra(o,p.boxIndex,m[u]);if(l!==0&&(p.score*=c(l),p.score<=n))break}d===p.score&&m.push(p.boxIndex)}),m}var f=b(g());function oa(o){let t=f.unstack(f.transpose(o,[1,0])),e=[f.sub(t[2],t[0]),f.sub(t[3],t[1])],r=[f.add(t[0],f.div(e[0],f.scalar(2))),f.add(t[1],f.div(e[1],f.scalar(2)))];return{sizes:e,centers:r}}function na(o,t){let{sizes:e,centers:r}=oa(o),n=f.unstack(f.transpose(t,[1,0])),a=f.div(f.mul(f.exp(f.div(n[2],f.scalar(5))),e[0]),f.scalar(2)),s=f.add(f.mul(f.div(n[0],f.scalar(10)),e[0]),r[0]),i=f.div(f.mul(f.exp(f.div(n[3],f.scalar(5))),e[1]),f.scalar(2)),c=f.add(f.mul(f.div(n[1],f.scalar(10)),e[1]),r[1]);return f.transpose(f.stack([f.sub(s,a),f.sub(c,i),f.add(s,a),f.add(c,i)]),[1,0])}function Uo(o,t,e){return f.tidy(()=>{let r=o.shape[0],n=na(f.reshape(f.tile(e.extra_dim,[r,1,1]),[-1,4]),f.reshape(o,[-1,4]));n=f.reshape(n,[r,n.shape[0]/r,4]);let a=f.sigmoid(f.slice(t,[0,0,1],[-1,-1,-1])),s=f.slice(a,[0,0,0],[-1,-1,1]);s=f.reshape(s,[r,s.shape[1]]);let i=f.unstack(n),c=f.unstack(s);return{boxes:i,scores:c}})}var Oe=b(g());var $e=b(g());function Ut(o,t){return $e.tidy(()=>{let e=o.shape[0],r=$e.reshape(zt(o,t.box_encoding_predictor),[e,-1,1,4]),n=$e.reshape(zt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Xo(o,t,e){return Oe.tidy(()=>{let r=q(o,e.conv_0,[1,1]),n=q(r,e.conv_1,[2,2]),a=q(n,e.conv_2,[1,1]),s=q(a,e.conv_3,[2,2]),i=q(s,e.conv_4,[1,1]),c=q(i,e.conv_5,[2,2]),m=q(c,e.conv_6,[1,1]),p=q(m,e.conv_7,[2,2]),d=Ut(t,e.box_predictor_0),u=Ut(o,e.box_predictor_1),l=Ut(n,e.box_predictor_2),v=Ut(s,e.box_predictor_3),w=Ut(c,e.box_predictor_4),h=Ut(p,e.box_predictor_5),y=Oe.concat([d.boxPredictionEncoding,u.boxPredictionEncoding,l.boxPredictionEncoding,v.boxPredictionEncoding,w.boxPredictionEncoding,h.boxPredictionEncoding],1),T=Oe.concat([d.classPrediction,u.classPrediction,l.classPrediction,v.classPrediction,w.classPrediction,h.classPrediction],1);return{boxPredictions:y,classPredictions:T}})}var Z=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var Xt=class extends S{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return st.tidy(()=>{let r=st.cast(t.toBatchTensor(512,!1),"float32"),n=st.sub(st.mul(r,st.scalar(.007843137718737125)),st.scalar(1)),a=zo(n,e.mobilenetv1),{boxPredictions:s,classPredictions:i}=Xo(a.out,a.conv11,e.prediction_layer);return Uo(s,i,e.output_layer)})}async forward(t){return this.forwardInput(await E(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new Z(e),a=await E(t),{boxes:s,scores:i}=this.forwardInput(a),c=s[0],m=i[0];for(let F=1;F{let[L,G]=[Math.max(0,y[F][0]),Math.min(1,y[F][2])].map(X=>X*h),[et,it]=[Math.max(0,y[F][1]),Math.min(1,y[F][3])].map(X=>X*w);return new M(p[F],new oe(et,L,it-et,G-L),{height:a.getInputHeight(0),width:a.getInputWidth(0)})});return c.dispose(),m.dispose(),T}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Go(t)}extractParams(t){return Yo(t)}};function Jo(o){let t=new Xt;return t.extractWeights(o),t}function aa(o){return Jo(o)}var qo=class extends Xt{};var Zo=.4,Ko=[new x(.738768,.874946),new x(2.42204,2.65704),new x(4.30971,7.04493),new x(10.246,4.59428),new x(12.6868,11.8741)],Qo=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],tn=[117.001,114.697,97.404],en="tiny_yolov2_model",rn="tiny_yolov2_separable_conv_model";var N=b(g());var br=o=>typeof o=="number";function ao(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!br(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>br(t.x)&&br(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(br)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=b(g());var K=b(g());function be(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function Ft(o,t){return Q.tidy(()=>{let e=Q.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Q.conv2d(e,t.conv.filters,[1,1],"valid"),e=Q.sub(e,t.bn.sub),e=Q.mul(e,t.bn.truediv),e=Q.add(e,t.conv.bias),be(e)})}var St=b(g());function Tt(o,t){return St.tidy(()=>{let e=St.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=St.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=St.add(e,t.bias),be(e)})}var so=b(g());function sa(o,t){let e=ce(o,t);function r(s,i){let c=so.tensor1d(o(s)),m=so.tensor1d(o(s));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(s,i,c){let m=e(s,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let a=me(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}}function on(o,t,e,r){let{extractWeights:n,getRemainingWeights:a}=B(o),s=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=sa(n,s),p;if(t.withSeparableConvs){let[d,u,l,v,w,h,y,T,F]=r,L=t.isFirstLayerConv2d?i(d,u,3,"conv0"):m(d,u,"conv0"),G=m(u,l,"conv1"),et=m(l,v,"conv2"),it=m(v,w,"conv3"),X=m(w,h,"conv4"),_t=m(h,y,"conv5"),wt=T?m(y,T,"conv6"):void 0,Pt=F?m(T,F,"conv7"):void 0,te=i(F||T||y,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:_t,conv6:wt,conv7:Pt,conv8:te}}else{let[d,u,l,v,w,h,y,T,F]=r,L=c(d,u,"conv0"),G=c(u,l,"conv1"),et=c(l,v,"conv2"),it=c(v,w,"conv3"),X=c(w,h,"conv4"),_t=c(h,y,"conv5"),wt=c(y,T,"conv6"),Pt=c(T,F,"conv7"),te=i(F,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:_t,conv6:wt,conv7:Pt,conv8:te}}if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:p,paramMappings:s}}function ia(o,t){let e=j(o,t);function r(i){let c=e(`${i}/sub`,1),m=e(`${i}/truediv`,1);return{sub:c,truediv:m}}function n(i){let c=e(`${i}/filters`,4),m=e(`${i}/bias`,1);return{filters:c,bias:m}}function a(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let s=pe(e);return{extractConvParams:n,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function nn(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}=ia(o,e),s;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:i>7?a("conv6"):void 0,conv7:i>8?a("conv7"):void 0,conv8:r("conv8")}}else s={conv0:n("conv0"),conv1:n("conv1"),conv2:n("conv2"),conv3:n("conv3"),conv4:n("conv4"),conv5:n("conv5"),conv6:n("conv6"),conv7:n("conv7"),conv8:r("conv8")};return W(o,e),{params:s,paramMappings:e}}var lt=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var io=class extends S{constructor(t){super("TinyYolov2");ao(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,e){let r=Ft(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=Ft(r,e.conv6),r=Ft(r,e.conv7),zt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?be(zt(t,e.conv0,"valid",!1)):Tt(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?Tt(r,e.conv6):r,r=e.conv7?Tt(r,e.conv7):r,zt(r,e.conv8,"valid",!1)}forwardInput(t,e){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return N.tidy(()=>{let n=N.cast(t.toBatchTensor(e,!1),"float32");return n=this.config.meanRgb?ot(n,this.config.meanRgb):n,n=n.div(N.scalar(256)),this.config.withSeparableConvs?this.runMobilenet(n,r):this.runTinyYolov2(n,r)})}async forward(t,e){return this.forwardInput(await E(t),e)}async detect(t,e={}){let{inputSize:r,scoreThreshold:n}=new lt(e),a=await E(t),s=await this.forwardInput(a,r),i=N.tidy(()=>N.unstack(s)[0].expandDims()),c={width:a.getInputWidth(0),height:a.getInputHeight(0)},m=await this.extractBoxes(i,a.getReshapedInputDimensions(0),n);s.dispose(),i.dispose();let p=m.map(h=>h.box),d=m.map(h=>h.score),u=m.map(h=>h.classScore),l=m.map(h=>this.config.classes[h.label]);return Ar(p.map(h=>h.rescale(r)),d,this.config.iouThreshold,!0).map(h=>new Dt(d[h],u[h],l[h],p[h],c))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return nn(t,this.config)}extractParams(t){let e=this.config.filterSizes||io.DEFAULT_FILTER_SIZES,r=e?e.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return on(t,this.config,this.boxEncodingSize,e)}async extractBoxes(t,e,r){let{width:n,height:a}=e,s=Math.max(n,a),i=s/n,c=s/a,m=t.shape[1],p=this.config.anchors.length,[d,u,l]=N.tidy(()=>{let y=t.reshape([m,m,p,this.boxEncodingSize]),T=y.slice([0,0,0,0],[m,m,p,4]),F=y.slice([0,0,0,4],[m,m,p,1]),L=this.withClassScores?N.softmax(y.slice([0,0,0,5],[m,m,p,this.config.classes.length]),3):N.scalar(0);return[T,F,L]}),v=[],w=await u.array(),h=await d.array();for(let y=0;yr){let G=(T+De(h[y][T][F][0]))/m*i,et=(y+De(h[y][T][F][1]))/m*c,it=Math.exp(h[y][T][F][2])*this.config.anchors[F].x/m*i,X=Math.exp(h[y][T][F][3])*this.config.anchors[F].y/m*c,_t=G-it/2,wt=et-X/2,Pt={row:y,col:T,anchor:F},{classScore:te,label:lo}=this.withClassScores?await this.extractPredictedClass(l,Pt):{classScore:1,label:0};v.push({box:new re(_t,wt,_t+it,wt+X),score:L,classScore:L*te,label:lo,...Pt})}}return d.dispose(),u.dispose(),l.dispose(),v}async extractPredictedClass(t,e){let{row:r,col:n,anchor:a}=e,s=await t.array();return Array(this.config.classes.length).fill(0).map((i,c)=>s[r][n][a][c]).map((i,c)=>({classScore:i,label:c})).reduce((i,c)=>i.classScore>c.classScore?i:c)}},ge=io;ge.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var ve=class extends ge{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:Zo,classes:["face"],...t?{anchors:Qo,meanRgb:tn}:{anchors:Ko,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?rn:en}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function ca(o,t=!0){let e=new ve(t);return e.extractWeights(o),e}var gr=class extends lt{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var tt=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var je=b(g());var co=b(g());async function Jt(o,t,e,r,n=({alignedRect:a})=>a){let a=o.map(c=>Vt(c)?n(c):c.detection),s=r||(t instanceof co.Tensor?await se(t,a):await ae(t,a)),i=await e(s);return s.forEach(c=>c instanceof co.Tensor&&c.dispose()),i}async function ye(o,t,e,r,n){return Jt([o],t,async a=>e(a[0]),r,n)}var an=.4,sn=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],cn=[117.001,114.697,97.404];var Fe=class extends ge{constructor(){let t={withSeparableConvs:!0,iouThreshold:an,classes:["face"],anchors:sn,meanRgb:cn,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var _={ssdMobilenetv1:new Xt,tinyFaceDetector:new Fe,tinyYolov2:new ve,faceLandmark68Net:new fe,faceLandmark68TinyNet:new dr,faceRecognitionNet:new xe,faceExpressionNet:new cr,ageGenderNet:new pr},mn=(o,t)=>_.ssdMobilenetv1.locateFaces(o,t),ma=(o,t)=>_.tinyFaceDetector.locateFaces(o,t),pa=(o,t)=>_.tinyYolov2.locateFaces(o,t),pn=o=>_.faceLandmark68Net.detectLandmarks(o),da=o=>_.faceLandmark68TinyNet.detectLandmarks(o),ua=o=>_.faceRecognitionNet.computeFaceDescriptor(o),la=o=>_.faceExpressionNet.predictExpressions(o),fa=o=>_.ageGenderNet.predictAgeAndGender(o),dn=o=>_.ssdMobilenetv1.load(o),ha=o=>_.tinyFaceDetector.load(o),xa=o=>_.tinyYolov2.load(o),ba=o=>_.faceLandmark68Net.load(o),ga=o=>_.faceLandmark68TinyNet.load(o),va=o=>_.faceRecognitionNet.load(o),ya=o=>_.faceExpressionNet.load(o),Fa=o=>_.ageGenderNet.load(o),Ta=dn,_a=mn,wa=pn;var mo=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},we=class extends mo{async run(){let t=await this.parentTask,e=await Jt(t,this.input,async r=>Promise.all(r.map(n=>_.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>mr(r,e[n]))}withAgeAndGender(){return new Te(this,this.input)}},Pe=class extends mo{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>_.faceExpressionNet.predictExpressions(r),this.extractedFaces);return mr(t,e)}withAgeAndGender(){return new _e(this,this.input)}},Kt=class extends we{withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Qt=class extends Pe{withAgeAndGender(){return new Zt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var po=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},Te=class extends po{async run(){let t=await this.parentTask,e=await Jt(t,this.input,async r=>Promise.all(r.map(n=>_.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:a,gender:s,genderProbability:i}=e[n];return hr(xr(r,s,i),a)})}withFaceExpressions(){return new we(this,this.input)}},_e=class extends po{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await ye(t,this.input,a=>_.ageGenderNet.predictAgeAndGender(a),this.extractedFaces);return hr(xr(t,r,n),e)}withFaceExpressions(){return new Pe(this,this.input)}},qt=class extends Te{withFaceExpressions(){return new Kt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Zt=class extends _e{withFaceExpressions(){return new Qt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var vr=class extends tt{constructor(t,e){super();this.parentTask=t;this.input=e}},At=class extends vr{async run(){let t=await this.parentTask;return(await Jt(t,this.input,r=>Promise.all(r.map(n=>_.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>fr(t[n],r))}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}},Wt=class extends vr{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>_.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return fr(t,e)}withFaceExpressions(){return new Qt(this,this.input)}withAgeAndGender(){return new Zt(this,this.input)}};var yr=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?_.faceLandmark68TinyNet:_.faceLandmark68Net}},Fr=class extends yr{async run(){let t=await this.parentTask,e=t.map(a=>a.detection),r=this.input instanceof je.Tensor?await se(this.input,e):await ae(this.input,e),n=await Promise.all(r.map(a=>this.landmarkNet.detectLandmarks(a)));return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),t.map((a,s)=>le(a,n[s]))}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Tr=class extends yr{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof je.Tensor?await se(this.input,[e]):await ae(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),le(t,n)}withFaceExpressions(){return new Qt(this,this.input)}withAgeAndGender(){return new Zt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var _r=class extends tt{constructor(t,e=new Z){super();this.input=t;this.options=e}},He=class extends _r{async run(){let{input:t,options:e}=this,r;if(e instanceof gr)r=_.tinyFaceDetector.locateFaces(t,e);else if(e instanceof Z)r=_.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof lt)r=_.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise(async t=>{let e=await this.run();t(e.map(r=>Ot({},r)))})}withFaceLandmarks(t=!1){return new Fr(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new we(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Te(this.runAndExtendWithFaceDetections(),this.input)}},wr=class extends _r{async run(){let t=await new He(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?Ot({},e):void 0)})}withFaceLandmarks(t=!1){return new Tr(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Pe(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new _e(this.runAndExtendWithFaceDetection(),this.input)}};function Pa(o,t=new Z){return new wr(o,t)}function Pr(o,t=new Z){return new He(o,t)}async function un(o,t){return Pr(o,new Z(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function Da(o,t={}){return Pr(o,new lt(t)).withFaceLandmarks().withFaceDescriptors()}var Ea=un;function uo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((n,a)=>n-r[a]).reduce((n,a)=>n+a**2,0))}var Dr=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1,a=()=>`person ${n++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof xt)return s;if(s instanceof Float32Array)return new xt(a(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new xt(a(),[s.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>uo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new Ee(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>xt.fromJSON(r));return new Dr(e,t.distanceThreshold)}};function Ma(o){let t=new Fe;return t.extractWeights(o),t}function ln(o,t){let{width:e,height:r}=new A(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(n=>ln(n,{width:e,height:r}));if(Vt(o)){let n=o.detection.forSize(e,r),a=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return le(Ot(o,n),a)}return pt(o)?Ot(o,o.detection.forSize(e,r)):o instanceof V||o instanceof M?o.forSize(e,r):o}var Na=typeof process!="undefined",Ia=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",La={faceapi:No,node:Na,browser:Ia}; //# sourceMappingURL=face-api.node.js.map diff --git a/dist/face-api.node.json b/dist/face-api.node.json deleted file mode 100644 index 2476eb9..0000000 --- a/dist/face-api.node.json +++ /dev/null @@ -1,3073 +0,0 @@ -{ - "inputs": { - "dist/tfjs.esm.js": { - "bytes": 731, - "imports": [] - }, - "src/draw/drawContour.ts": { - "bytes": 539, - "imports": [] - }, - "src/classes/Dimensions.ts": { - "bytes": 745, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/utils/index.ts": { - "bytes": 1793, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/Point.ts": { - "bytes": 925, - "imports": [] - }, - "src/classes/Box.ts": { - "bytes": 5690, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Point.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/BoundingBox.ts": { - "bytes": 402, - "imports": [ - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/ObjectDetection.ts": { - "bytes": 1424, - "imports": [ - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceDetection.ts": { - "bytes": 656, - "imports": [ - { - "path": "src/classes/ObjectDetection.ts", - "kind": "import-statement" - } - ] - }, - "src/ops/iou.ts": { - "bytes": 473, - "imports": [] - }, - "src/ops/minBbox.ts": { - "bytes": 498, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ops/nonMaxSuppression.ts": { - "bytes": 924, - "imports": [ - { - "path": "src/ops/iou.ts", - "kind": "import-statement" - } - ] - }, - "src/ops/normalize.ts": { - "bytes": 483, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ops/padToSquare.ts": { - "bytes": 1684, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ops/shuffleArray.ts": { - "bytes": 273, - "imports": [] - }, - "src/ops/index.ts": { - "bytes": 331, - "imports": [ - { - "path": "src/ops/iou.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/minBbox.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/nonMaxSuppression.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/normalize.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/padToSquare.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/shuffleArray.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/Rect.ts": { - "bytes": 359, - "imports": [ - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceLandmarks.ts": { - "bytes": 4199, - "imports": [ - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Point.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Rect.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceLandmarks5.ts": { - "bytes": 360, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceLandmarks68.ts": { - "bytes": 915, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/FaceMatch.ts": { - "bytes": 578, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/LabeledBox.ts": { - "bytes": 645, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/LabeledFaceDescriptors.ts": { - "bytes": 1072, - "imports": [] - }, - "src/classes/PredictedBox.ts": { - "bytes": 952, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledBox.ts", - "kind": "import-statement" - } - ] - }, - "src/classes/index.ts": { - "bytes": 436, - "imports": [ - { - "path": "src/classes/BoundingBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Box.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks5.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks68.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceMatch.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledFaceDescriptors.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/ObjectDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Point.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/PredictedBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/Rect.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceDetection.ts": { - "bytes": 486, - "imports": [ - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - } - ] - }, - "src/env/createBrowserEnv.ts": { - "bytes": 636, - "imports": [] - }, - "src/env/createFileSystem.ts": { - "bytes": 654, - "imports": [] - }, - "src/env/createNodejsEnv.ts": { - "bytes": 1202, - "imports": [ - { - "path": "src/env/createFileSystem.ts", - "kind": "import-statement" - } - ] - }, - "src/env/isBrowser.ts": { - "bytes": 354, - "imports": [] - }, - "src/env/isNodejs.ts": { - "bytes": 295, - "imports": [] - }, - "src/env/types.ts": { - "bytes": 570, - "imports": [] - }, - "src/env/index.ts": { - "bytes": 1817, - "imports": [ - { - "path": "src/env/createBrowserEnv.ts", - "kind": "import-statement" - }, - { - "path": "src/env/createFileSystem.ts", - "kind": "import-statement" - }, - { - "path": "src/env/createNodejsEnv.ts", - "kind": "import-statement" - }, - { - "path": "src/env/isBrowser.ts", - "kind": "import-statement" - }, - { - "path": "src/env/isNodejs.ts", - "kind": "import-statement" - }, - { - "path": "src/env/types.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/resolveInput.ts": { - "bytes": 200, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/getContext2dOrThrow.ts": { - "bytes": 673, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/DrawTextField.ts": { - "bytes": 4094, - "imports": [ - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/DrawBox.ts": { - "bytes": 1831, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawTextField.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/drawDetections.ts": { - "bytes": 1128, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawBox.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/isMediaLoaded.ts": { - "bytes": 277, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/awaitMediaLoaded.ts": { - "bytes": 963, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaLoaded.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/bufferToImage.ts": { - "bytes": 687, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/getMediaDimensions.ts": { - "bytes": 529, - "imports": [ - { - "path": "src/classes/Dimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/createCanvas.ts": { - "bytes": 1139, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaLoaded.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/imageTensorToCanvas.ts": { - "bytes": 615, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/isMediaElement.ts": { - "bytes": 228, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/imageToSquare.ts": { - "bytes": 1296, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/NetInput.ts": { - "bytes": 5508, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/padToSquare.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageToSquare.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/toNetInput.ts": { - "bytes": 2115, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/awaitMediaLoaded.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaElement.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/NetInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/extractFaces.ts": { - "bytes": 1804, - "imports": [ - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageTensorToCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/toNetInput.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/extractFaceTensors.ts": { - "bytes": 1730, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchOrThrow.ts": { - "bytes": 390, - "imports": [ - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchImage.ts": { - "bytes": 451, - "imports": [ - { - "path": "src/dom/bufferToImage.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchJson.ts": { - "bytes": 155, - "imports": [ - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/fetchNetWeights.ts": { - "bytes": 200, - "imports": [ - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - } - ] - }, - "src/common/getModelUris.ts": { - "bytes": 1052, - "imports": [] - }, - "src/dom/loadWeightMap.ts": { - "bytes": 552, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/getModelUris.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchJson.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/matchDimensions.ts": { - "bytes": 401, - "imports": [ - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - } - ] - }, - "src/dom/types.ts": { - "bytes": 383, - "imports": [] - }, - "src/dom/index.ts": { - "bytes": 696, - "imports": [ - { - "path": "src/dom/awaitMediaLoaded.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/bufferToImage.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/createCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/extractFaces.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/extractFaceTensors.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchImage.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchJson.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchNetWeights.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/fetchOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getMediaDimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageTensorToCanvas.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/imageToSquare.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaElement.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/isMediaLoaded.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/loadWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/matchDimensions.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/NetInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/resolveInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/toNetInput.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/types.ts", - "kind": "import-statement" - } - ] - }, - "src/NeuralNetwork.ts": { - "bytes": 5291, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/getModelUris.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - } - ] - }, - "src/common/depthwiseSeparableConv.ts": { - "bytes": 414, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/denseBlock.ts": { - "bytes": 2038, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/depthwiseSeparableConv.ts", - "kind": "import-statement" - } - ] - }, - "src/common/convLayer.ts": { - "bytes": 428, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/common/disposeUnusedWeightTensors.ts": { - "bytes": 290, - "imports": [] - }, - "src/common/extractConvParamsFactory.ts": { - "bytes": 766, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/common/extractFCParamsFactory.ts": { - "bytes": 711, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/common/types.ts": { - "bytes": 797, - "imports": [] - }, - "src/common/extractSeparableConvParamsFactory.ts": { - "bytes": 1533, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/types.ts", - "kind": "import-statement" - } - ] - }, - "src/common/extractWeightEntryFactory.ts": { - "bytes": 579, - "imports": [ - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/common/extractWeightsFactory.ts": { - "bytes": 441, - "imports": [] - }, - "src/common/index.ts": { - "bytes": 399, - "imports": [ - { - "path": "src/common/convLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/common/depthwiseSeparableConv.ts", - "kind": "import-statement" - }, - { - "path": "src/common/disposeUnusedWeightTensors.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractFCParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractSeparableConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightEntryFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/getModelUris.ts", - "kind": "import-statement" - }, - { - "path": "src/common/types.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractorsFactory.ts": { - "bytes": 1587, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParams.ts": { - "bytes": 1030, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractorsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/common/loadConvParamsFactory.ts": { - "bytes": 466, - "imports": [] - }, - "src/faceFeatureExtractor/loadParamsFactory.ts": { - "bytes": 1547, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/common/loadConvParamsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParamsFromWeightMap.ts": { - "bytes": 838, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/loadParamsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/FaceFeatureExtractor.ts": { - "bytes": 1806, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/denseBlock.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParamsFromWeightMap.ts", - "kind": "import-statement" - } - ] - }, - "src/common/fullyConnectedLayer.ts": { - "bytes": 263, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/faceProcessor/extractParams.ts": { - "bytes": 759, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceProcessor/extractParamsFromWeightMap.ts": { - "bytes": 823, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceProcessor/util.ts": { - "bytes": 421, - "imports": [] - }, - "src/faceProcessor/FaceProcessor.ts": { - "bytes": 3034, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/fullyConnectedLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/util.ts", - "kind": "import-statement" - } - ] - }, - "src/faceExpressionNet/FaceExpressions.ts": { - "bytes": 869, - "imports": [] - }, - "src/faceExpressionNet/FaceExpressionNet.ts": { - "bytes": 1664, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/FaceFeatureExtractor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/FaceProcessor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/FaceExpressions.ts", - "kind": "import-statement" - } - ] - }, - "src/faceExpressionNet/index.ts": { - "bytes": 72, - "imports": [ - { - "path": "src/faceExpressionNet/FaceExpressionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/FaceExpressions.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceExpressions.ts": { - "bytes": 524, - "imports": [ - { - "path": "src/faceExpressionNet/FaceExpressions.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/drawFaceExpressions.ts": { - "bytes": 1612, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawTextField.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceLandmarks.ts": { - "bytes": 3592, - "imports": [ - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/DrawFaceLandmarks.ts": { - "bytes": 3528, - "imports": [ - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks68.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/getContext2dOrThrow.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/drawContour.ts", - "kind": "import-statement" - } - ] - }, - "src/draw/index.ts": { - "bytes": 201, - "imports": [ - { - "path": "src/draw/drawContour.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/drawDetections.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/drawFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawBox.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/draw/DrawTextField.ts", - "kind": "import-statement" - } - ] - }, - "package.json": { - "bytes": 2040, - "imports": [] - }, - "src/xception/extractParams.ts": { - "bytes": 3440, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/xception/extractParamsFromWeightMap.ts": { - "bytes": 3130, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/common/loadConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/xception/TinyXception.ts": { - "bytes": 3143, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "src/xception/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/xception/extractParamsFromWeightMap.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/extractParams.ts": { - "bytes": 778, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/extractParamsFromWeightMap.ts": { - "bytes": 891, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/types.ts": { - "bytes": 525, - "imports": [] - }, - "src/ageGenderNet/AgeGenderNet.ts": { - "bytes": 4269, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/fullyConnectedLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/util.ts", - "kind": "import-statement" - }, - { - "path": "src/xception/TinyXception.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/types.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ageGenderNet/index.ts": { - "bytes": 57, - "imports": [ - { - "path": "src/ageGenderNet/AgeGenderNet.ts", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/types.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/FaceLandmark68NetBase.ts": { - "bytes": 3717, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks68.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceProcessor/FaceProcessor.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/FaceLandmark68Net.ts": { - "bytes": 622, - "imports": [ - { - "path": "src/faceFeatureExtractor/FaceFeatureExtractor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68NetBase.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts": { - "bytes": 802, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/loadParamsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/extractParamsTiny.ts": { - "bytes": 960, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractorsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts": { - "bytes": 1816, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/denseBlock.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts", - "kind": "import-statement" - }, - { - "path": "src/faceFeatureExtractor/extractParamsTiny.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/FaceLandmark68TinyNet.ts": { - "bytes": 659, - "imports": [ - { - "path": "src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68NetBase.ts", - "kind": "import-statement" - } - ] - }, - "src/faceLandmarkNet/index.ts": { - "bytes": 194, - "imports": [ - { - "path": "src/faceLandmarkNet/FaceLandmark68Net.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68Net.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68TinyNet.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/scaleLayer.ts": { - "bytes": 229, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/convLayer.ts": { - "bytes": 850, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/scaleLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/extractParams.ts": { - "bytes": 4907, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/extractParamsFromWeightMap.ts": { - "bytes": 3098, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/residualLayer.ts": { - "bytes": 1342, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/convLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/FaceRecognitionNet.ts": { - "bytes": 2959, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/convLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/residualLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/faceRecognitionNet/index.ts": { - "bytes": 252, - "imports": [ - { - "path": "src/faceRecognitionNet/FaceRecognitionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/FaceRecognitionNet.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/WithFaceDescriptor.ts": { - "bytes": 301, - "imports": [] - }, - "src/factories/WithAge.ts": { - "bytes": 334, - "imports": [] - }, - "src/factories/WithGender.ts": { - "bytes": 618, - "imports": [ - { - "path": "src/ageGenderNet/types.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/factories/index.ts": { - "bytes": 208, - "imports": [ - { - "path": "src/factories/WithFaceDescriptor.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithAge.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithGender.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/extractParams.ts": { - "bytes": 8330, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/extractParamsFromWeightMap.ts": { - "bytes": 5775, - "imports": [ - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/pointwiseConvLayer.ts": { - "bytes": 391, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/mobileNetV1.ts": { - "bytes": 1811, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/pointwiseConvLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/nonMaxSuppression.ts": { - "bytes": 2170, - "imports": [] - }, - "src/ssdMobilenetv1/outputLayer.ts": { - "bytes": 2183, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/boxPredictionLayer.ts": { - "bytes": 598, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/predictionLayer.ts": { - "bytes": 2055, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/boxPredictionLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/pointwiseConvLayer.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/SsdMobilenetv1Options.ts": { - "bytes": 881, - "imports": [] - }, - "src/ssdMobilenetv1/SsdMobilenetv1.ts": { - "bytes": 3652, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/mobileNetV1.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/nonMaxSuppression.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/outputLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/predictionLayer.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - } - ] - }, - "src/ssdMobilenetv1/index.ts": { - "bytes": 471, - "imports": [ - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/const.ts": { - "bytes": 704, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/config.ts": { - "bytes": 1701, - "imports": [] - }, - "src/tinyYolov2/leaky.ts": { - "bytes": 238, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/convWithBatchNorm.ts": { - "bytes": 530, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/leaky.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/depthwiseSeparableConv.ts": { - "bytes": 500, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/leaky.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/extractParams.ts": { - "bytes": 3911, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractSeparableConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightsFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/extractParamsFromWeightMap.ts": { - "bytes": 3282, - "imports": [ - { - "path": "src/common/disposeUnusedWeightTensors.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractSeparableConvParamsFactory.ts", - "kind": "import-statement" - }, - { - "path": "src/common/extractWeightEntryFactory.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/TinyYolov2Options.ts": { - "bytes": 913, - "imports": [] - }, - "src/tinyYolov2/TinyYolov2Base.ts": { - "bytes": 9606, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/classes/BoundingBox.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/ObjectDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/common/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/nonMaxSuppression.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/normalize.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/config.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/convWithBatchNorm.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/depthwiseSeparableConv.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/extractParams.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/extractParamsFromWeightMap.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/leaky.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Options.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/TinyYolov2.ts": { - "bytes": 1801, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/const.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Base.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyYolov2/types.ts": { - "bytes": 952, - "imports": [] - }, - "src/tinyYolov2/index.ts": { - "bytes": 347, - "imports": [ - { - "path": "src/tinyYolov2/TinyYolov2.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Options.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/config.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/types.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/TinyFaceDetectorOptions.ts": { - "bytes": 272, - "imports": [ - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/ComposableTask.ts": { - "bytes": 322, - "imports": [] - }, - "src/globalApi/extractFacesAndComputeResults.ts": { - "bytes": 2037, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/const.ts": { - "bytes": 354, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/TinyFaceDetector.ts": { - "bytes": 1470, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/TinyYolov2Base.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/const.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/nets.ts": { - "bytes": 6336, - "imports": [ - { - "path": "src/ageGenderNet/AgeGenderNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/FaceExpressionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68Net.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/FaceLandmark68TinyNet.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/FaceRecognitionNet.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetector.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/PredictFaceExpressionsTask.ts": { - "bytes": 3827, - "imports": [ - { - "path": "src/factories/WithFaceExpressions.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/extractFacesAndComputeResults.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/PredictAgeAndGenderTask.ts": { - "bytes": 4008, - "imports": [ - { - "path": "src/factories/WithAge.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithGender.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/extractFacesAndComputeResults.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/ComputeFaceDescriptorsTasks.ts": { - "bytes": 3215, - "imports": [ - { - "path": "src/factories/WithFaceDescriptor.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/extractFacesAndComputeResults.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/DetectFaceLandmarksTasks.ts": { - "bytes": 4002, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/DetectFacesTasks.ts": { - "bytes": 4124, - "imports": [ - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetectorOptions.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFaceLandmarksTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictAgeAndGenderTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/PredictFaceExpressionsTask.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/detectFaces.ts": { - "bytes": 624, - "imports": [ - { - "path": "src/ssdMobilenetv1/SsdMobilenetv1Options.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFacesTasks.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/allFaces.ts": { - "bytes": 1056, - "imports": [ - { - "path": "src/ssdMobilenetv1/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/detectFaces.ts", - "kind": "import-statement" - } - ] - }, - "src/euclideanDistance.ts": { - "bytes": 398, - "imports": [] - }, - "src/globalApi/FaceMatcher.ts": { - "bytes": 2992, - "imports": [ - { - "path": "src/classes/FaceMatch.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/LabeledFaceDescriptors.ts", - "kind": "import-statement" - }, - { - "path": "src/euclideanDistance.ts", - "kind": "import-statement" - } - ] - }, - "src/globalApi/types.ts": { - "bytes": 556, - "imports": [] - }, - "src/globalApi/index.ts": { - "bytes": 300, - "imports": [ - { - "path": "src/globalApi/allFaces.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComposableTask.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/ComputeFaceDescriptorsTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/detectFaces.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFacesTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/DetectFaceLandmarksTasks.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/FaceMatcher.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/nets.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/types.ts", - "kind": "import-statement" - } - ] - }, - "src/tinyFaceDetector/index.ts": { - "bytes": 285, - "imports": [ - { - "path": "src/tinyFaceDetector/TinyFaceDetector.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetector.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/TinyFaceDetectorOptions.ts", - "kind": "import-statement" - } - ] - }, - "src/resizeResults.ts": { - "bytes": 1519, - "imports": [ - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/FaceLandmarks.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceDetection.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/WithFaceLandmarks.ts", - "kind": "import-statement" - } - ] - }, - "src/index.ts": { - "bytes": 987, - "imports": [ - { - "path": "dist/tfjs.esm.js", - "kind": "import-statement" - }, - { - "path": "src/draw/index.ts", - "kind": "import-statement" - }, - { - "path": "src/utils/index.ts", - "kind": "import-statement" - }, - { - "path": "package.json", - "kind": "import-statement" - }, - { - "path": "src/ageGenderNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/classes/index.ts", - "kind": "import-statement" - }, - { - "path": "src/dom/index.ts", - "kind": "import-statement" - }, - { - "path": "src/env/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceExpressionNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceLandmarkNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/faceRecognitionNet/index.ts", - "kind": "import-statement" - }, - { - "path": "src/factories/index.ts", - "kind": "import-statement" - }, - { - "path": "src/globalApi/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ops/index.ts", - "kind": "import-statement" - }, - { - "path": "src/ssdMobilenetv1/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyFaceDetector/index.ts", - "kind": "import-statement" - }, - { - "path": "src/tinyYolov2/index.ts", - "kind": "import-statement" - }, - { - "path": "src/euclideanDistance.ts", - "kind": "import-statement" - }, - { - "path": "src/NeuralNetwork.ts", - "kind": "import-statement" - }, - { - "path": "src/resizeResults.ts", - "kind": "import-statement" - } - ] - } - }, - "outputs": { - "dist/face-api.node.js.map": { - "imports": [], - "exports": [], - "inputs": {}, - "bytes": 315808 - }, - "dist/face-api.node.js": { - "imports": [], - "exports": [], - "entryPoint": "src/index.ts", - "inputs": { - "dist/tfjs.esm.js": { - "bytesInOutput": 594 - }, - "src/env/isNodejs.ts": { - "bytesInOutput": 176 - }, - "src/index.ts": { - "bytesInOutput": 3015 - }, - "src/draw/index.ts": { - "bytesInOutput": 277 - }, - "src/draw/drawContour.ts": { - "bytesInOutput": 213 - }, - "src/utils/index.ts": { - "bytesInOutput": 1011 - }, - "src/classes/Dimensions.ts": { - "bytesInOutput": 335 - }, - "src/classes/Point.ts": { - "bytesInOutput": 433 - }, - "src/classes/Box.ts": { - "bytesInOutput": 2646 - }, - "src/classes/BoundingBox.ts": { - "bytesInOutput": 92 - }, - "src/classes/index.ts": { - "bytesInOutput": 0 - }, - "src/classes/ObjectDetection.ts": { - "bytesInOutput": 624 - }, - "src/classes/FaceDetection.ts": { - "bytesInOutput": 153 - }, - "src/ops/iou.ts": { - "bytesInOutput": 215 - }, - "src/ops/index.ts": { - "bytesInOutput": 81 - }, - "src/ops/minBbox.ts": { - "bytesInOutput": 204 - }, - "src/ops/nonMaxSuppression.ts": { - "bytesInOutput": 282 - }, - "src/ops/normalize.ts": { - "bytesInOutput": 255 - }, - "src/ops/padToSquare.ts": { - "bytesInOutput": 332 - }, - "src/ops/shuffleArray.ts": { - "bytesInOutput": 132 - }, - "src/classes/Rect.ts": { - "bytesInOutput": 87 - }, - "src/classes/FaceLandmarks.ts": { - "bytesInOutput": 1393 - }, - "src/classes/FaceLandmarks5.ts": { - "bytesInOutput": 107 - }, - "src/classes/FaceLandmarks68.ts": { - "bytesInOutput": 464 - }, - "src/classes/FaceMatch.ts": { - "bytesInOutput": 201 - }, - "src/classes/LabeledBox.ts": { - "bytesInOutput": 250 - }, - "src/classes/LabeledFaceDescriptors.ts": { - "bytesInOutput": 595 - }, - "src/classes/PredictedBox.ts": { - "bytesInOutput": 385 - }, - "src/factories/WithFaceDetection.ts": { - "bytesInOutput": 94 - }, - "src/env/createBrowserEnv.ts": { - "bytesInOutput": 445 - }, - "src/env/createFileSystem.ts": { - "bytesInOutput": 247 - }, - "src/env/createNodejsEnv.ts": { - "bytesInOutput": 600 - }, - "src/env/isBrowser.ts": { - "bytesInOutput": 267 - }, - "src/env/index.ts": { - "bytesInOutput": 794 - }, - "src/dom/resolveInput.ts": { - "bytesInOutput": 84 - }, - "src/dom/getContext2dOrThrow.ts": { - "bytesInOutput": 312 - }, - "src/draw/DrawTextField.ts": { - "bytesInOutput": 1484 - }, - "src/draw/DrawBox.ts": { - "bytesInOutput": 581 - }, - "src/draw/drawDetections.ts": { - "bytesInOutput": 220 - }, - "src/faceExpressionNet/FaceExpressionNet.ts": { - "bytesInOutput": 567 - }, - "src/dom/isMediaLoaded.ts": { - "bytesInOutput": 114 - }, - "src/dom/awaitMediaLoaded.ts": { - "bytesInOutput": 423 - }, - "src/dom/index.ts": { - "bytesInOutput": 0 - }, - "src/dom/bufferToImage.ts": { - "bytesInOutput": 386 - }, - "src/dom/getMediaDimensions.ts": { - "bytesInOutput": 180 - }, - "src/dom/createCanvas.ts": { - "bytesInOutput": 389 - }, - "src/dom/imageTensorToCanvas.ts": { - "bytesInOutput": 200 - }, - "src/dom/isMediaElement.ts": { - "bytesInOutput": 110 - }, - "src/dom/NetInput.ts": { - "bytesInOutput": 2214 - }, - "src/dom/imageToSquare.ts": { - "bytesInOutput": 442 - }, - "src/dom/toNetInput.ts": { - "bytesInOutput": 773 - }, - "src/dom/extractFaces.ts": { - "bytesInOutput": 485 - }, - "src/dom/extractFaceTensors.ts": { - "bytesInOutput": 442 - }, - "src/dom/fetchOrThrow.ts": { - "bytesInOutput": 176 - }, - "src/dom/fetchImage.ts": { - "bytesInOutput": 218 - }, - "src/dom/fetchJson.ts": { - "bytesInOutput": 48 - }, - "src/dom/fetchNetWeights.ts": { - "bytesInOutput": 79 - }, - "src/dom/loadWeightMap.ts": { - "bytesInOutput": 123 - }, - "src/common/getModelUris.ts": { - "bytesInOutput": 473 - }, - "src/dom/matchDimensions.ts": { - "bytesInOutput": 101 - }, - "src/faceFeatureExtractor/FaceFeatureExtractor.ts": { - "bytesInOutput": 621 - }, - "src/NeuralNetwork.ts": { - "bytesInOutput": 2654 - }, - "src/faceFeatureExtractor/denseBlock.ts": { - "bytesInOutput": 568 - }, - "src/common/depthwiseSeparableConv.ts": { - "bytesInOutput": 157 - }, - "src/common/convLayer.ts": { - "bytesInOutput": 141 - }, - "src/common/index.ts": { - "bytesInOutput": 0 - }, - "src/common/disposeUnusedWeightTensors.ts": { - "bytesInOutput": 91 - }, - "src/common/extractConvParamsFactory.ts": { - "bytesInOutput": 195 - }, - "src/common/extractFCParamsFactory.ts": { - "bytesInOutput": 185 - }, - "src/common/extractSeparableConvParamsFactory.ts": { - "bytesInOutput": 396 - }, - "src/common/types.ts": { - "bytesInOutput": 94 - }, - "src/common/extractWeightEntryFactory.ts": { - "bytesInOutput": 188 - }, - "src/common/extractWeightsFactory.ts": { - "bytesInOutput": 146 - }, - "src/faceFeatureExtractor/extractorsFactory.ts": { - "bytesInOutput": 377 - }, - "src/faceFeatureExtractor/extractParams.ts": { - "bytesInOutput": 343 - }, - "src/common/loadConvParamsFactory.ts": { - "bytesInOutput": 97 - }, - "src/faceFeatureExtractor/loadParamsFactory.ts": { - "bytesInOutput": 388 - }, - "src/faceFeatureExtractor/extractParamsFromWeightMap.ts": { - "bytesInOutput": 185 - }, - "src/faceProcessor/FaceProcessor.ts": { - "bytesInOutput": 1037 - }, - "src/common/fullyConnectedLayer.ts": { - "bytesInOutput": 89 - }, - "src/faceProcessor/extractParams.ts": { - "bytesInOutput": 214 - }, - "src/faceProcessor/extractParamsFromWeightMap.ts": { - "bytesInOutput": 177 - }, - "src/faceProcessor/util.ts": { - "bytesInOutput": 144 - }, - "src/faceExpressionNet/FaceExpressions.ts": { - "bytesInOutput": 369 - }, - "src/faceExpressionNet/index.ts": { - "bytesInOutput": 0 - }, - "src/factories/WithFaceExpressions.ts": { - "bytesInOutput": 99 - }, - "src/draw/drawFaceExpressions.ts": { - "bytesInOutput": 420 - }, - "src/factories/WithFaceLandmarks.ts": { - "bytesInOutput": 829 - }, - "src/draw/DrawFaceLandmarks.ts": { - "bytesInOutput": 1225 - }, - "package.json": { - "bytesInOutput": 15 - }, - "src/ageGenderNet/AgeGenderNet.ts": { - "bytesInOutput": 1688 - }, - "src/xception/TinyXception.ts": { - "bytesInOutput": 1265 - }, - "src/xception/extractParams.ts": { - "bytesInOutput": 1234 - }, - "src/xception/extractParamsFromWeightMap.ts": { - "bytesInOutput": 1047 - }, - "src/ageGenderNet/extractParams.ts": { - "bytesInOutput": 258 - }, - "src/ageGenderNet/extractParamsFromWeightMap.ts": { - "bytesInOutput": 209 - }, - "src/ageGenderNet/types.ts": { - "bytesInOutput": 67 - }, - "src/ageGenderNet/index.ts": { - "bytesInOutput": 0 - }, - "src/faceLandmarkNet/FaceLandmark68NetBase.ts": { - "bytesInOutput": 1177 - }, - "src/faceLandmarkNet/FaceLandmark68Net.ts": { - "bytesInOutput": 167 - }, - "src/faceLandmarkNet/index.ts": { - "bytesInOutput": 26 - }, - "src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts": { - "bytesInOutput": 619 - }, - "src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts": { - "bytesInOutput": 166 - }, - "src/faceFeatureExtractor/extractParamsTiny.ts": { - "bytesInOutput": 312 - }, - "src/faceLandmarkNet/FaceLandmark68TinyNet.ts": { - "bytesInOutput": 176 - }, - "src/faceRecognitionNet/FaceRecognitionNet.ts": { - "bytesInOutput": 1156 - }, - "src/faceRecognitionNet/convLayer.ts": { - "bytesInOutput": 277 - }, - "src/faceRecognitionNet/scaleLayer.ts": { - "bytesInOutput": 75 - }, - "src/faceRecognitionNet/extractParams.ts": { - "bytesInOutput": 1803 - }, - "src/faceRecognitionNet/extractParamsFromWeightMap.ts": { - "bytesInOutput": 1113 - }, - "src/faceRecognitionNet/residualLayer.ts": { - "bytesInOutput": 466 - }, - "src/faceRecognitionNet/index.ts": { - "bytesInOutput": 57 - }, - "src/factories/WithFaceDescriptor.ts": { - "bytesInOutput": 48 - }, - "src/factories/index.ts": { - "bytesInOutput": 0 - }, - "src/factories/WithAge.ts": { - "bytesInOutput": 86 - }, - "src/factories/WithGender.ts": { - "bytesInOutput": 155 - }, - "src/ssdMobilenetv1/SsdMobilenetv1.ts": { - "bytesInOutput": 1224 - }, - "src/ssdMobilenetv1/extractParams.ts": { - "bytesInOutput": 3588 - }, - "src/ssdMobilenetv1/extractParamsFromWeightMap.ts": { - "bytesInOutput": 2463 - }, - "src/ssdMobilenetv1/mobileNetV1.ts": { - "bytesInOutput": 715 - }, - "src/ssdMobilenetv1/pointwiseConvLayer.ts": { - "bytesInOutput": 153 - }, - "src/ssdMobilenetv1/nonMaxSuppression.ts": { - "bytesInOutput": 792 - }, - "src/ssdMobilenetv1/outputLayer.ts": { - "bytesInOutput": 927 - }, - "src/ssdMobilenetv1/predictionLayer.ts": { - "bytesInOutput": 721 - }, - "src/ssdMobilenetv1/boxPredictionLayer.ts": { - "bytesInOutput": 223 - }, - "src/ssdMobilenetv1/SsdMobilenetv1Options.ts": { - "bytesInOutput": 518 - }, - "src/ssdMobilenetv1/index.ts": { - "bytesInOutput": 111 - }, - "src/tinyYolov2/const.ts": { - "bytesInOutput": 348 - }, - "src/tinyYolov2/TinyYolov2Base.ts": { - "bytesInOutput": 3656 - }, - "src/tinyYolov2/config.ts": { - "bytesInOutput": 1012 - }, - "src/tinyYolov2/convWithBatchNorm.ts": { - "bytesInOutput": 215 - }, - "src/tinyYolov2/leaky.ts": { - "bytesInOutput": 128 - }, - "src/tinyYolov2/depthwiseSeparableConv.ts": { - "bytesInOutput": 203 - }, - "src/tinyYolov2/extractParams.ts": { - "bytesInOutput": 1290 - }, - "src/tinyYolov2/extractParamsFromWeightMap.ts": { - "bytesInOutput": 972 - }, - "src/tinyYolov2/TinyYolov2Options.ts": { - "bytesInOutput": 556 - }, - "src/tinyYolov2/TinyYolov2.ts": { - "bytesInOutput": 545 - }, - "src/tinyYolov2/index.ts": { - "bytesInOutput": 65 - }, - "src/tinyFaceDetector/TinyFaceDetectorOptions.ts": { - "bytesInOutput": 97 - }, - "src/globalApi/ComposableTask.ts": { - "bytesInOutput": 127 - }, - "src/globalApi/DetectFaceLandmarksTasks.ts": { - "bytesInOutput": 1133 - }, - "src/globalApi/extractFacesAndComputeResults.ts": { - "bytesInOutput": 300 - }, - "src/tinyFaceDetector/const.ts": { - "bytesInOutput": 168 - }, - "src/tinyFaceDetector/TinyFaceDetector.ts": { - "bytesInOutput": 495 - }, - "src/globalApi/nets.ts": { - "bytesInOutput": 844 - }, - "src/globalApi/PredictFaceExpressionsTask.ts": { - "bytesInOutput": 852 - }, - "src/globalApi/PredictAgeAndGenderTask.ts": { - "bytesInOutput": 957 - }, - "src/globalApi/ComputeFaceDescriptorsTasks.ts": { - "bytesInOutput": 752 - }, - "src/globalApi/DetectFacesTasks.ts": { - "bytesInOutput": 1335 - }, - "src/globalApi/detectFaces.ts": { - "bytesInOutput": 84 - }, - "src/globalApi/allFaces.ts": { - "bytesInOutput": 209 - }, - "src/globalApi/index.ts": { - "bytesInOutput": 0 - }, - "src/euclideanDistance.ts": { - "bytesInOutput": 205 - }, - "src/globalApi/FaceMatcher.ts": { - "bytesInOutput": 1333 - }, - "src/tinyFaceDetector/index.ts": { - "bytesInOutput": 57 - }, - "src/resizeResults.ts": { - "bytesInOutput": 443 - } - }, - "bytes": 83347 - } - } -} diff --git a/dist/tfjs.esm.js b/dist/tfjs.esm.js index 8a205f8..cd45b3d 100644 --- a/dist/tfjs.esm.js +++ b/dist/tfjs.esm.js @@ -5,43 +5,43 @@ author: ' */ -var hB=Object.create,$h=Object.defineProperty,gB=Object.getPrototypeOf,xB=Object.prototype.hasOwnProperty,yB=Object.getOwnPropertyNames,bB=Object.getOwnPropertyDescriptor;var wB=r=>$h(r,"__esModule",{value:!0});var Wr=(r,e)=>()=>(e||(e={exports:{}},r(e.exports,e)),e.exports),Je=(r,e)=>{for(var t in e)$h(r,t,{get:e[t],enumerable:!0})},_B=(r,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of yB(e))!xB.call(r,o)&&o!=="default"&&$h(r,o,{get:()=>e[o],enumerable:!(t=bB(e,o))||t.enumerable});return r},Ic=r=>_B(wB($h(r!=null?hB(gB(r)):{},"default",r&&r.__esModule&&"default"in r?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var QI=Wr(()=>{});var $N=Wr((DN,Nw)=>{(function(r,e,t){function o(i){var l=this,u=a();l.next=function(){var c=2091639*l.s0+l.c*23283064365386963e-26;return l.s0=l.s1,l.s1=l.s2,l.s2=c-(l.c=c|0)},l.c=1,l.s0=u(" "),l.s1=u(" "),l.s2=u(" "),l.s0-=u(i),l.s0<0&&(l.s0+=1),l.s1-=u(i),l.s1<0&&(l.s1+=1),l.s2-=u(i),l.s2<0&&(l.s2+=1),u=null}function n(i,l){return l.c=i.c,l.s0=i.s0,l.s1=i.s1,l.s2=i.s2,l}function s(i,l){var u=new o(i),c=l&&l.state,p=u.next;return p.int32=function(){return u.next()*4294967296|0},p.double=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.quick=p,c&&(typeof c=="object"&&n(c,u),p.state=function(){return n(u,{})}),p}function a(){var i=4022871197,l=function(u){u=u.toString();for(var c=0;c>>0,p-=i,p*=i,i=p>>>0,p-=i,i+=p*4294967296}return(i>>>0)*23283064365386963e-26};return l}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.alea=s})(DN,typeof Nw=="object"&&Nw,typeof define=="function"&&define)});var FN=Wr((RN,Sw)=>{(function(r,e,t){function o(a){var i=this,l="";i.x=0,i.y=0,i.z=0,i.w=0,i.next=function(){var c=i.x^i.x<<11;return i.x=i.y,i.y=i.z,i.z=i.w,i.w^=i.w>>>19^c^c>>>8},a===(a|0)?i.x=a:l+=a;for(var u=0;u>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(typeof u=="object"&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xor128=s})(RN,typeof Sw=="object"&&Sw,typeof define=="function"&&define)});var PN=Wr((ON,Tw)=>{(function(r,e,t){function o(a){var i=this,l="";i.next=function(){var c=i.x^i.x>>>2;return i.x=i.y,i.y=i.z,i.z=i.w,i.w=i.v,(i.d=i.d+362437|0)+(i.v=i.v^i.v<<4^(c^c<<1))|0},i.x=0,i.y=0,i.z=0,i.w=0,i.v=0,a===(a|0)?i.x=a:l+=a;for(var u=0;u>>4),i.next()}function n(a,i){return i.x=a.x,i.y=a.y,i.z=a.z,i.w=a.w,i.v=a.v,i.d=a.d,i}function s(a,i){var l=new o(a),u=i&&i.state,c=function(){return(l.next()>>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(typeof u=="object"&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xorwow=s})(ON,typeof Tw=="object"&&Tw,typeof define=="function"&&define)});var LN=Wr((MN,Aw)=>{(function(r,e,t){function o(a){var i=this;i.next=function(){var u=i.x,c=i.i,p,m,f;return p=u[c],p^=p>>>7,m=p^p<<24,p=u[c+1&7],m^=p^p>>>10,p=u[c+3&7],m^=p^p>>>3,p=u[c+4&7],m^=p^p<<7,p=u[c+7&7],p=p^p<<13,m^=p^p<<9,u[c]=m,i.i=c+1&7,m};function l(u,c){var p,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,p=0;p0;--p)u.next()}l(i,a)}function n(a,i){return i.x=a.x.slice(),i.i=a.i,i}function s(a,i){a==null&&(a=+new Date);var l=new o(a),u=i&&i.state,c=function(){return(l.next()>>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(u.x&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xorshift7=s})(MN,typeof Aw=="object"&&Aw,typeof define=="function"&&define)});var BN=Wr((zN,Ew)=>{(function(r,e,t){function o(a){var i=this;i.next=function(){var u=i.w,c=i.X,p=i.i,m,f;return i.w=u=u+1640531527|0,f=c[p+34&127],m=c[p=p+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[p]=f^m,i.i=p,f+(u^u>>>16)|0};function l(u,c){var p,m,f,d,h,g=[],y=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,y=Math.max(y,c.length)),f=0,d=-32;d>>15,m^=m<<4,m^=m>>>13,d>=0&&(h=h+1640531527|0,p=g[d&127]^=m+h,f=p==0?f+1:0);for(f>=128&&(g[(c&&c.length||0)&127]=-1),f=127,d=4*128;d>0;--d)m=g[f+34&127],p=g[f=f+1&127],m^=m<<13,p^=p<<17,m^=m>>>15,p^=p>>>12,g[f]=m^p;u.w=h,u.X=g,u.i=f}l(i,a)}function n(a,i){return i.i=a.i,i.w=a.w,i.X=a.X.slice(),i}function s(a,i){a==null&&(a=+new Date);var l=new o(a),u=i&&i.state,c=function(){return(l.next()>>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(u.X&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xor4096=s})(zN,typeof Ew=="object"&&Ew,typeof define=="function"&&define)});var GN=Wr((VN,Dw)=>{(function(r,e,t){function o(a){var i=this,l="";i.next=function(){var c=i.b,p=i.c,m=i.d,f=i.a;return c=c<<25^c>>>7^p,p=p-m|0,m=m<<24^m>>>8^f,f=f-c|0,i.b=c=c<<20^c>>>12^p,i.c=p=p-m|0,i.d=m<<16^p>>>16^f,i.a=f-c|0},i.a=0,i.b=0,i.c=2654435769|0,i.d=1367130551,a===Math.floor(a)?(i.a=a/4294967296|0,i.b=a|0):l+=a;for(var u=0;u>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(typeof u=="object"&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.tychei=s})(VN,typeof Dw=="object"&&Dw,typeof define=="function"&&define)});var WN=Wr(()=>{});var UN=Wr((lxe,tg)=>{(function(r,e){var t=this,o=256,n=6,s=52,a="random",i=e.pow(o,n),l=e.pow(2,s),u=l*2,c=o-1,p;function m(w,_,C){var D=[];_=_==!0?{entropy:!0}:_||{};var T=g(h(_.entropy?[w,b(r)]:w==null?y():w,3),D),R=new f(D),P=function(){for(var B=R.g(n),G=i,U=0;B=u;)B/=2,G/=2,U>>>=1;return(B+U)/G};return P.int32=function(){return R.g(4)|0},P.quick=function(){return R.g(4)/4294967296},P.double=P,g(b(R.S),r),(_.pass||C||function(B,G,U,j){return j&&(j.S&&d(j,R),B.state=function(){return d(R,{})}),U?(e[a]=B,G):B})(P,T,"global"in _?_.global:this==e,_.state)}e["seed"+a]=m;function f(w){var _,C=w.length,D=this,T=0,R=D.i=D.j=0,P=D.S=[];for(C||(w=[C++]);T{var jW=$N(),HW=FN(),qW=PN(),KW=LN(),XW=BN(),YW=GN(),Eu=UN();Eu.alea=jW;Eu.xor128=HW;Eu.xorwow=qW;Eu.xorshift7=KW;Eu.xor4096=XW;Eu.tychei=YW;jN.exports=Eu});var $A=Wr(()=>{});var Xp=Wr(()=>{});var hz=Wr(()=>{});var gz=Wr(()=>{});var xz=Wr((jx,ZC)=>{var JC=function(){var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(e){e=e||{};function t(){return te.buffer!=Ue&&rr(te.buffer),ut}function o(){return te.buffer!=Ue&&rr(te.buffer),mt}function n(){return te.buffer!=Ue&&rr(te.buffer),Kt}function s(){return te.buffer!=Ue&&rr(te.buffer),to}function a(){return te.buffer!=Ue&&rr(te.buffer),Uo}var i=typeof e!="undefined"?e:{},l,u;i.ready=new Promise(function(I,$){l=I,u=$});var c={},p;for(p in i)i.hasOwnProperty(p)&&(c[p]=i[p]);var m=[],f="./this.program",d=function(I,$){throw $},h=!1,g=!1,y=!1,b=!1;h=typeof window=="object",g=typeof importScripts=="function",y=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",b=!h&&!y&&!g;var w=i.ENVIRONMENT_IS_PTHREAD||!1;w&&(Ue=i.buffer);var _="";function C(I){return i.locateFile?i.locateFile(I,_):_+I}var D,T,R,P,B,G;if(y){g?_=Xp().dirname(_)+"/":_=__dirname+"/",D=function($,z){return B||(B=require("fs")),G||(G=Xp()),$=G.normalize($),B.readFileSync($,z?null:"utf8")},R=function($){var z=D($,!0);return z.buffer||(z=new Uint8Array(z)),fe(z.buffer),z},process.argv.length>1&&(f=process.argv[1].replace(/\\/g,"/")),m=process.argv.slice(2),process.on("uncaughtException",function(I){if(!(I instanceof sm))throw I}),process.on("unhandledRejection",Zi),d=function(I){process.exit(I)},i.inspect=function(){return"[Emscripten Module object]"};var U;try{U=hz()}catch(I){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),I}global.Worker=U.Worker}else b?(typeof read!="undefined"&&(D=function($){return read($)}),R=function($){var z;return typeof readbuffer=="function"?new Uint8Array(readbuffer($)):(z=read($,"binary"),fe(typeof z=="object"),z)},typeof scriptArgs!="undefined"?m=scriptArgs:typeof arguments!="undefined"&&(m=arguments),typeof quit=="function"&&(d=function(I){quit(I)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(h||g)&&(g?_=self.location.href:typeof document!="undefined"&&document.currentScript&&(_=document.currentScript.src),typeof r!="undefined"&&r&&(_=r),_.indexOf("blob:")!==0?_=_.substr(0,_.lastIndexOf("/")+1):_="",y?(D=function($,z){return B||(B=require("fs")),G||(G=Xp()),$=G.normalize($),B.readFileSync($,z?null:"utf8")},R=function($){var z=D($,!0);return z.buffer||(z=new Uint8Array(z)),fe(z.buffer),z}):(D=function(I){var $=new XMLHttpRequest;return $.open("GET",I,!1),$.send(null),$.responseText},g&&(R=function(I){var $=new XMLHttpRequest;return $.open("GET",I,!1),$.responseType="arraybuffer",$.send(null),new Uint8Array($.response)}),T=function(I,$,z){var q=new XMLHttpRequest;q.open("GET",I,!0),q.responseType="arraybuffer",q.onload=function(){if(q.status==200||q.status==0&&q.response){$(q.response);return}z()},q.onerror=z,q.send(null)}),P=function(I){document.title=I});y&&typeof performance=="undefined"&&(global.performance=gz().performance);var j=i.print||console.log.bind(console),H=i.printErr||console.warn.bind(console);for(p in c)c.hasOwnProperty(p)&&(i[p]=c[p]);c=null,i.arguments&&(m=i.arguments),i.thisProgram&&(f=i.thisProgram),i.quit&&(d=i.quit);var K=Atomics.load,X=Atomics.store,oe=Atomics.compareExchange,Y;i.wasmBinary&&(Y=i.wasmBinary);var re=i.noExitRuntime||!0;typeof WebAssembly!="object"&&Zi("no native wasm support detected");var te,ie,le=!1,ae;function fe(I,$){I||Zi("Assertion failed: "+$)}function de(I){var $=i["_"+I];return fe($,"Cannot call unknown function "+I+", make sure it is exported"),$}function xe(I,$,z,q,be){var he={string:function(Gr){var Cc=0;if(Gr!=null&&Gr!==0){var dI=(Gr.length<<2)+1;Cc=_c(dI),qe(Gr,Cc,dI)}return Cc},array:function(Gr){var Cc=_c(Gr.length);return Tt(Gr,Cc),Cc}};function ye(Gr){return $==="string"?Ie(Gr):$==="boolean"?Boolean(Gr):Gr}var Se=de(I),wt=[],br=0;if(q)for(var mr=0;mr=q);){var he=I[$++];if(!he)return be;if(!(he&128)){be+=String.fromCharCode(he);continue}var ye=I[$++]&63;if((he&224)==192){be+=String.fromCharCode((he&31)<<6|ye);continue}var Se=I[$++]&63;if((he&240)==224?he=(he&15)<<12|ye<<6|Se:he=(he&7)<<18|ye<<12|Se<<6|I[$++]&63,he<65536)be+=String.fromCharCode(he);else{var wt=he-65536;be+=String.fromCharCode(55296|wt>>10,56320|wt&1023)}}return be}function Ie(I,$){return I?De(o(),I,$):""}function ze(I,$,z,q){if(!(q>0))return 0;for(var be=z,he=z+q-1,ye=0;ye=55296&&Se<=57343){var wt=I.charCodeAt(++ye);Se=65536+((Se&1023)<<10)|wt&1023}if(Se<=127){if(z>=he)break;$[z++]=Se}else if(Se<=2047){if(z+1>=he)break;$[z++]=192|Se>>6,$[z++]=128|Se&63}else if(Se<=65535){if(z+2>=he)break;$[z++]=224|Se>>12,$[z++]=128|Se>>6&63,$[z++]=128|Se&63}else{if(z+3>=he)break;$[z++]=240|Se>>18,$[z++]=128|Se>>12&63,$[z++]=128|Se>>6&63,$[z++]=128|Se&63}}return $[z]=0,z-be}function qe(I,$,z){return ze(I,o(),$,z)}function it(I){for(var $=0,z=0;z=55296&&q<=57343&&(q=65536+((q&1023)<<10)|I.charCodeAt(++z)&1023),q<=127?++$:q<=2047?$+=2:q<=65535?$+=3:$+=4}return $}function Tt(I,$){t().set(I,$)}function At(I,$){return I%$>0&&(I+=$-I%$),I}var Ue,ut,mt,Pt,xo,Kt,to,Dr,Uo;function rr(I){Ue=I,i.HEAP8=ut=new Int8Array(I),i.HEAP16=Pt=new Int16Array(I),i.HEAP32=Kt=new Int32Array(I),i.HEAPU8=mt=new Uint8Array(I),i.HEAPU16=xo=new Uint16Array(I),i.HEAPU32=to=new Uint32Array(I),i.HEAPF32=Dr=new Float32Array(I),i.HEAPF64=Uo=new Float64Array(I)}var yo=i.INITIAL_MEMORY||16777216;if(w)te=i.wasmMemory,Ue=i.buffer;else if(i.wasmMemory)te=i.wasmMemory;else if(te=new WebAssembly.Memory({initial:yo/65536,maximum:2147483648/65536,shared:!0}),!(te.buffer instanceof SharedArrayBuffer))throw H("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"),y&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");te&&(Ue=te.buffer),yo=Ue.byteLength,rr(Ue);var Vr,yr=[],ro=[],Ao=[],Dl=[],Wa=[],ns=!1,Xi=!1;w||ro.push({func:function(){Ih()}}),w&&(ns=!0);function Yp(){if(!w){if(i.preRun)for(typeof i.preRun=="function"&&(i.preRun=[i.preRun]);i.preRun.length;)mh(i.preRun.shift());hc(yr)}}function fc(){ns=!0,hc(ro)}function Xx(){w||hc(Ao)}function ph(){w||(Xi=!0)}function oo(){if(!w){if(i.postRun)for(typeof i.postRun=="function"&&(i.postRun=[i.postRun]);i.postRun.length;)Yx(i.postRun.shift());hc(Wa)}}function mh(I){yr.unshift(I)}function Yx(I){Wa.unshift(I)}var Yi=0,Ua=null,$l=null;function Zx(I){fe(!w,"addRunDependency cannot be used in a pthread worker"),Yi++,i.monitorRunDependencies&&i.monitorRunDependencies(Yi)}function Jx(I){if(Yi--,i.monitorRunDependencies&&i.monitorRunDependencies(Yi),Yi==0&&(Ua!==null&&(clearInterval(Ua),Ua=null),$l)){var $=$l;$l=null,$()}}i.preloadedImages={},i.preloadedAudios={};function Zi(I){i.onAbort&&i.onAbort(I),w&&console.error("Pthread aborting at "+new Error().stack),I+="",H(I),le=!0,ae=1,I="abort("+I+"). Build with -s ASSERTIONS=1 for more info.";var $=new WebAssembly.RuntimeError(I);throw u($),$}function fh(I,$){return String.prototype.startsWith?I.startsWith($):I.indexOf($)===0}var dc="data:application/octet-stream;base64,";function dh(I){return fh(I,dc)}var Qx="file://";function hh(I){return fh(I,Qx)}var no="tfjs-backend-wasm-threaded-simd.wasm";dh(no)||(no=C(no));function ey(I){try{if(I==no&&Y)return new Uint8Array(Y);if(R)return R(I);throw"both async and sync fetching of the wasm failed"}catch($){Zi($)}}function gh(){if(!Y&&(h||g)){if(typeof fetch=="function"&&!hh(no))return fetch(no,{credentials:"same-origin"}).then(function(I){if(!I.ok)throw"failed to load wasm binary file at '"+no+"'";return I.arrayBuffer()}).catch(function(){return ey(no)});if(T)return new Promise(function(I,$){T(no,function(z){I(new Uint8Array(z))},$)})}return Promise.resolve().then(function(){return ey(no)})}function ty(){var I={a:jy};function $(ye,Se){var wt=ye.exports;if(i.asm=wt,Vr=i.asm.F,ie=Se,!w){var br=Ee.unusedWorkers.length;Ee.unusedWorkers.forEach(function(mr){Ee.loadWasmModuleToWorker(mr,function(){--br||Jx("wasm-instantiate")})})}}w||Zx("wasm-instantiate");function z(ye){$(ye.instance,ye.module)}function q(ye){return gh().then(function(Se){return WebAssembly.instantiate(Se,I)}).then(ye,function(Se){H("failed to asynchronously prepare wasm: "+Se),Zi(Se)})}function be(){return!Y&&typeof WebAssembly.instantiateStreaming=="function"&&!dh(no)&&!hh(no)&&typeof fetch=="function"?fetch(no,{credentials:"same-origin"}).then(function(ye){var Se=WebAssembly.instantiateStreaming(ye,I);return Se.then(z,function(wt){return H("wasm streaming compile failed: "+wt),H("falling back to ArrayBuffer instantiation"),q(z)})}):q(z)}if(i.instantiateWasm)try{var he=i.instantiateWasm(I,$);return he}catch(ye){return H("Module.instantiateWasm callback failed with error: "+ye),!1}return be().catch(u),{}}var xh={8991:function(I,$){setTimeout(function(){lI(I,$)},0)}};function ry(){Ee.initRuntime()}function hc(I){for(;I.length>0;){var $=I.shift();if(typeof $=="function"){$(i);continue}var z=$.func;typeof z=="number"?$.arg===void 0?Vr.get(z)():Vr.get(z)($.arg):z($.arg===void 0?null:$.arg)}}function gc(I,$){if(I<=0||I>t().length||I&!0||$<0)return-28;if($==0)return 0;$>=2147483647&&($=Infinity);var z=Atomics.load(n(),kc>>2),q=0;if(z==I){var be=Atomics.compareExchange(n(),kc>>2,z,0);if(be==z&&(--$,q=1,$<=0))return 1}var he=Atomics.notify(n(),I>>2,$);if(he>=0)return he+q;throw"Atomics.notify returned an unexpected value "+he}i._emscripten_futex_wake=gc;function oy(I){if(w)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!I)throw"Internal Error! Null pthread_ptr in killThread!";n()[I+12>>2]=0;var $=Ee.pthreads[I];$.worker.terminate(),Ee.freeThreadData($),Ee.runningWorkers.splice(Ee.runningWorkers.indexOf($.worker),1),$.worker.pthread=void 0}function ny(I){if(w)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!I)throw"Internal Error! Null pthread_ptr in cancelThread!";var $=Ee.pthreads[I];$.worker.postMessage({cmd:"cancel"})}function sy(I){if(w)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!I)throw"Internal Error! Null pthread_ptr in cleanupThread!";n()[I+12>>2]=0;var $=Ee.pthreads[I];if($){var z=$.worker;Ee.returnWorkerToPool(z)}}var Ee={unusedWorkers:[],runningWorkers:[],initMainThreadBlock:function(){for(var I=8,$=0;$>2]=I;var z=I+152;n()[z>>2]=z;for(var q=Fl(512),$=0;$<128;++$)s()[q/4+$]=0;Atomics.store(s(),I+100>>2,q),Atomics.store(s(),I+40>>2,I),Eh(I,!g,1),aI(I)},initWorker:function(){},pthreads:{},threadExitHandlers:[],setThreadStatus:function(){},runExitHandlers:function(){for(;Ee.threadExitHandlers.length>0;)Ee.threadExitHandlers.pop()();w&&bc()&&iI()},threadExit:function(I){var $=bc();$&&(Atomics.store(s(),$+4>>2,I),Atomics.store(s(),$+0>>2,1),Atomics.store(s(),$+56>>2,1),Atomics.store(s(),$+60>>2,0),Ee.runExitHandlers(),gc($+0,2147483647),Eh(0,0,0),w&&postMessage({cmd:"exit"}))},threadCancel:function(){Ee.runExitHandlers();var I=bc();Atomics.store(s(),I+4>>2,-1),Atomics.store(s(),I+0>>2,1),gc(I+0,2147483647),Eh(0,0,0),postMessage({cmd:"cancelDone"})},terminateAllThreads:function(){for(var I in Ee.pthreads){var $=Ee.pthreads[I];$&&$.worker&&Ee.returnWorkerToPool($.worker)}Ee.pthreads={};for(var z=0;z>2];n()[I.threadInfoStruct+100>>2]=0,om($),om(I.threadInfoStruct)}I.threadInfoStruct=0,I.allocatedOwnStack&&I.stackBase&&om(I.stackBase),I.stackBase=0,I.worker&&(I.worker.pthread=null)}},returnWorkerToPool:function(I){Ee.runWithoutMainThreadQueuedCalls(function(){delete Ee.pthreads[I.pthread.threadInfoStruct],Ee.unusedWorkers.push(I),Ee.runningWorkers.splice(Ee.runningWorkers.indexOf(I),1),Ee.freeThreadData(I.pthread),I.pthread=void 0})},runWithoutMainThreadQueuedCalls:function(I){n()[fI>>2]=0;try{I()}finally{n()[fI>>2]=1}},receiveObjectTransfer:function(I){},loadWasmModuleToWorker:function(I,$){I.onmessage=function(z){var q=z.data,be=q.cmd;if(I.pthread&&(Ee.currentProxiedOperationCallerThread=I.pthread.threadInfoStruct),q.targetThread&&q.targetThread!=bc()){var he=Ee.pthreads[q.targetThread];he?he.worker.postMessage(z.data,q.transferList):console.error('Internal error! Worker sent a message "'+be+'" to target pthread '+q.targetThread+", but that thread no longer exists!"),Ee.currentProxiedOperationCallerThread=void 0;return}if(be==="processQueuedMainThreadWork")ib();else if(be==="spawnThread")vh(z.data);else if(be==="cleanupThread")sy(q.thread);else if(be==="killThread")oy(q.thread);else if(be==="cancelThread")ny(q.thread);else if(be==="loaded")I.loaded=!0,$&&$(I),I.runPthread&&(I.runPthread(),delete I.runPthread);else if(be==="print")j("Thread "+q.threadId+": "+q.text);else if(be==="printErr")H("Thread "+q.threadId+": "+q.text);else if(be==="alert")alert("Thread "+q.threadId+": "+q.text);else if(be==="exit"){var ye=I.pthread&&Atomics.load(s(),I.pthread.threadInfoStruct+64>>2);ye&&Ee.returnWorkerToPool(I)}else if(be==="exitProcess")try{dB(q.returnCode)}catch(Se){if(Se instanceof sm)return;throw Se}else be==="cancelDone"?Ee.returnWorkerToPool(I):be==="objectTransfer"?Ee.receiveObjectTransfer(z.data):z.data.target==="setimmediate"?I.postMessage(z.data):H("worker sent an unknown command "+be);Ee.currentProxiedOperationCallerThread=void 0},I.onerror=function(z){H("pthread sent an error! "+z.filename+":"+z.lineno+": "+z.message)},y&&(I.on("message",function(z){I.onmessage({data:z})}),I.on("error",function(z){I.onerror(z)}),I.on("exit",function(z){})),I.postMessage({cmd:"load",urlOrBlob:i.mainScriptUrlOrBlob||r,wasmMemory:te,wasmModule:ie})},allocateUnusedWorker:function(){var I=C("tfjs-backend-wasm-threaded-simd.worker.js");Ee.unusedWorkers.push(new Worker(I))},getNewWorker:function(){return Ee.unusedWorkers.length==0&&(Ee.allocateUnusedWorker(),Ee.loadWasmModuleToWorker(Ee.unusedWorkers[0])),Ee.unusedWorkers.length>0?Ee.unusedWorkers.pop():null},busySpinWait:function(I){for(var $=performance.now()+I;performance.now()<$;);}};function iy(I,$){pI(I,$),wc(I)}i.establishStackSpace=iy;function ay(){return re}i.getNoExitRuntime=ay;function ly(I,$){return Vr.get(I)($)}i.invokeEntryPoint=ly;function uy(I,$,z,q){Zi("Assertion failed: "+Ie(I)+", at: "+[$?Ie($):"unknown filename",z,q?Ie(q):"unknown function"])}function cy(I,$){var z=_main(I,$)}var Rl;y?Rl=function(){var I=process.hrtime();return I[0]*1e3+I[1]/1e6}:w?Rl=function(){return performance.now()-i.__performance_now_clock_drift}:typeof dateNow!="undefined"?Rl=dateNow:Rl=function(){return performance.now()};function py(I){return n()[nI()>>2]=I,I}function my(I,$){if(w)return ja(1,1,I,$)}function fy(I,$){if(I==$)postMessage({cmd:"processQueuedMainThreadWork"});else if(w)postMessage({targetThread:I,cmd:"processThreadQueue"});else{var z=Ee.pthreads[I],q=z&&z.worker;if(!q)return;q.postMessage({cmd:"processThreadQueue"})}return 1}function dy(){Zi()}function hy(I,$,z){var q=wy($,z);return xh[I].apply(null,q)}function gy(I,$){}function xy(I,$,z){if(I<=0||I>t().length||I&!0)return-28;if(h){if(Atomics.load(n(),I>>2)!=$)return-6;for(var be=performance.now(),he=be+z,ye=Atomics.exchange(n(),kc>>2,I);;){if(be=performance.now(),be>he)return ye=Atomics.exchange(n(),kc>>2,0),-73;if(ye=Atomics.exchange(n(),kc>>2,0),ye==0)break;if(ib(),Atomics.load(n(),I>>2)!=$)return-6;ye=Atomics.exchange(n(),kc>>2,I)}return 0}else{var q=Atomics.wait(n(),I>>2,$,z);if(q==="timed-out")return-73;if(q==="not-equal")return-6;if(q==="ok")return 0;throw"Atomics.wait returned an unexpected value "+q}}function yy(I,$,z){o().copyWithin(I,$,$+z)}function by(){return y?require("os").cpus().length:navigator.hardwareConcurrency}function ja(I,$){for(var z=arguments.length-2,q=nm(),be=z,he=_c(be*8),ye=he>>3,Se=0;Se>=2;z=o()[I++];){var q=z<105;q&&$&1&&$++,Jp.push(q?a()[$++>>1]:n()[$]),++$}return Jp}function _y(I,$,z){Zp.length=$;for(var q=z>>3,be=0;be<$;be++)Zp[be]=a()[q+be];var he=I<0,ye=he?xh[-I-1]:Uy[I];return ye.apply(null,Zp)}function ky(){return o().length}function vy(I){try{return te.grow(I-Ue.byteLength+65535>>>16),rr(te.buffer),1}catch($){}}function Cy(I){var $=ky();if(I<=$)return!1;var z=2147483648;if(I>z)return!1;for(var q=1;q<=4;q*=2){var be=$*(1+.2/q);be=Math.min(be,I+100663296);var he=Math.min(z,At(Math.max(I,be),65536)),ye=vy(he);if(ye)return!0}return!1}var Xe={inEventHandler:0,removeAllEventListeners:function(){for(var I=Xe.eventHandlers.length-1;I>=0;--I)Xe._removeHandler(I);Xe.eventHandlers=[],Xe.deferredCalls=[]},registerRemoveEventListeners:function(){Xe.removeEventListenersRegistered||(Dl.push(Xe.removeAllEventListeners),Xe.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(I,$,z){function q(ye,Se){if(ye.length!=Se.length)return!1;for(var wt in ye)if(ye[wt]!=Se[wt])return!1;return!0}for(var be in Xe.deferredCalls){var he=Xe.deferredCalls[be];if(he.targetFunction==I&&q(he.argsList,z))return}Xe.deferredCalls.push({targetFunction:I,precedence:$,argsList:z}),Xe.deferredCalls.sort(function(ye,Se){return ye.precedence>2]=z,n()[ye+4>>2]=q,n()[ye+8>>2]=be,ab(0,I,637534208,$,q,ye),wc(he)},getTargetThreadForEventCallback:function(I){switch(I){case 1:return 0;case 2:return Ee.currentProxiedOperationCallerThread;default:return I}},getNodeNameForTarget:function(I){return I?I==window?"#window":I==screen?"#screen":I&&I.nodeName?I.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function Iy(I){var $=it(I)+1,z=Fl($);return qe(I,z,$),z}function Ny(I,$,z,q){var be=nm(),he=_c(12),ye=0;$&&(ye=Iy($)),n()[he>>2]=ye,n()[he+4>>2]=z,n()[he+8>>2]=q,ab(0,I,657457152,0,ye,he),wc(be)}function Sy(I,$,z,q){$=$?Ie($):"",Ny(I,$,z,q)}function Ty(I){return I>2?Ie(I):I}var Ay=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function Ey(I){I=Ty(I);var $=Ay[I]||(typeof document!="undefined"?document.querySelector(I):void 0);return $}function Qp(I){return Ey(I)}function yh(I,$,z){var q=Qp(I);if(!q)return-4;if(q.canvasSharedPtr&&(n()[q.canvasSharedPtr>>2]=$,n()[q.canvasSharedPtr+4>>2]=z),q.offscreenCanvas||!q.controlTransferredOffscreen){q.offscreenCanvas&&(q=q.offscreenCanvas);var be=!1;if(q.GLctxObject&&q.GLctxObject.GLctx){var he=q.GLctxObject.GLctx.getParameter(2978);be=he[0]===0&&he[1]===0&&he[2]===q.width&&he[3]===q.height}q.width=$,q.height=z,be&&q.GLctxObject.GLctx.viewport(0,0,$,z)}else if(q.canvasSharedPtr){var ye=n()[q.canvasSharedPtr+8>>2];return Sy(ye,I,$,z),1}else return-4;return 0}function bh(I,$,z){return w?ja(2,1,I,$,z):yh(I,$,z)}function Dy(I,$,z){var q=Qp(I);return q?yh(I,$,z):bh(I,$,z)}function $y(I){}function Ry(I,$){}function Fy(I){var $=I.getExtension("ANGLE_instanced_arrays");if($)return I.vertexAttribDivisor=function(z,q){$.vertexAttribDivisorANGLE(z,q)},I.drawArraysInstanced=function(z,q,be,he){$.drawArraysInstancedANGLE(z,q,be,he)},I.drawElementsInstanced=function(z,q,be,he,ye){$.drawElementsInstancedANGLE(z,q,be,he,ye)},1}function Oy(I){var $=I.getExtension("OES_vertex_array_object");if($)return I.createVertexArray=function(){return $.createVertexArrayOES()},I.deleteVertexArray=function(z){$.deleteVertexArrayOES(z)},I.bindVertexArray=function(z){$.bindVertexArrayOES(z)},I.isVertexArray=function(z){return $.isVertexArrayOES(z)},1}function Py(I){var $=I.getExtension("WEBGL_draw_buffers");if($)return I.drawBuffers=function(z,q){$.drawBuffersWEBGL(z,q)},1}function My(I){return!!(I.multiDrawWebgl=I.getExtension("WEBGL_multi_draw"))}var ft={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,recordError:function($){ft.lastError||(ft.lastError=$)},getNewId:function(I){for(var $=ft.counter++,z=I.length;z<$;z++)I[z]=null;return $},getSource:function(I,$,z,q){for(var be="",he=0;he<$;++he){var ye=q?n()[q+he*4>>2]:-1;be+=Ie(n()[z+he*4>>2],ye<0?void 0:ye)}return be},createContext:function(I,$){var z=I.getContext("webgl",$);if(!z)return 0;var q=ft.registerContext(z,$);return q},registerContext:function(I,$){var z=Fl(8);n()[z+4>>2]=bc();var q={handle:z,attributes:$,version:$.majorVersion,GLctx:I};return I.canvas&&(I.canvas.GLctxObject=q),ft.contexts[z]=q,(typeof $.enableExtensionsByDefault=="undefined"||$.enableExtensionsByDefault)&&ft.initExtensions(q),z},makeContextCurrent:function(I){return ft.currentContext=ft.contexts[I],i.ctx=Ha=ft.currentContext&&ft.currentContext.GLctx,!(I&&!Ha)},getContext:function(I){return ft.contexts[I]},deleteContext:function(I){ft.currentContext===ft.contexts[I]&&(ft.currentContext=null),typeof Xe=="object"&&Xe.removeAllHandlersOnTarget(ft.contexts[I].GLctx.canvas),ft.contexts[I]&&ft.contexts[I].GLctx.canvas&&(ft.contexts[I].GLctx.canvas.GLctxObject=void 0),om(ft.contexts[I].handle),ft.contexts[I]=null},initExtensions:function(I){if(I||(I=ft.currentContext),!I.initExtensionsDone){I.initExtensionsDone=!0;var $=I.GLctx;Fy($),Oy($),Py($),$.disjointTimerQueryExt=$.getExtension("EXT_disjoint_timer_query"),My($);var z=$.getSupportedExtensions()||[];z.forEach(function(q){q.indexOf("lose_context")<0&&q.indexOf("debug")<0&&$.getExtension(q)})}},populateUniformTable:function(I){for(var $=ft.programs[I],z=ft.programInfos[I]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1},q=z.uniforms,be=Ha.getProgramParameter($,35718),he=0;he>2,q=n()[z+(24>>2)],be={alpha:!!n()[z+(0>>2)],depth:!!n()[z+(4>>2)],stencil:!!n()[z+(8>>2)],antialias:!!n()[z+(12>>2)],premultipliedAlpha:!!n()[z+(16>>2)],preserveDrawingBuffer:!!n()[z+(20>>2)],powerPreference:Ly[q],failIfMajorPerformanceCaveat:!!n()[z+(28>>2)],majorVersion:n()[z+(32>>2)],minorVersion:n()[z+(36>>2)],enableExtensionsByDefault:n()[z+(40>>2)],explicitSwapControl:n()[z+(44>>2)],proxyContextToMainThread:n()[z+(48>>2)],renderViaOffscreenBackBuffer:n()[z+(52>>2)]},he=Qp(I);if(!he||be.explicitSwapControl)return 0;var ye=ft.createContext(he,be);return ye}function By(I,$){return zy(I,$)}var xc={mappings:{},buffers:[null,[],[]],printChar:function(I,$){var z=xc.buffers[I];$===0||$===10?((I===1?j:H)(De(z,0)),z.length=0):z.push($)},varargs:void 0,get:function(){xc.varargs+=4;var I=n()[xc.varargs-4>>2];return I},getStr:function(I){var $=Ie(I);return $},get64:function(I,$){return I}};function wh(I){return w?ja(3,1,I):0}function _h(I,$,z,q,be){if(w)return ja(4,1,I,$,z,q,be)}function kh(I,$,z,q){if(w)return ja(5,1,I,$,z,q);for(var be=0,he=0;he>2],Se=n()[$+(he*8+4)>>2],wt=0;wt>2]=be,0}function Vy(I){var $=Ee.threadExitHandlers.pop();I&&$()}function Gy(I,$){Ee.threadExitHandlers.push(function(){Vr.get(I)($)})}function vh(I){if(w)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var $=Ee.getNewWorker();if($.pthread!==void 0)throw"Internal error!";if(!I.pthread_ptr)throw"Internal error, no pthread ptr!";Ee.runningWorkers.push($);for(var z=Fl(128*4),q=0;q<128;++q)n()[z+q*4>>2]=0;var be=I.stackBase+I.stackSize,he=Ee.pthreads[I.pthread_ptr]={worker:$,stackBase:I.stackBase,stackSize:I.stackSize,allocatedOwnStack:I.allocatedOwnStack,threadInfoStruct:I.pthread_ptr},ye=he.threadInfoStruct>>2;Atomics.store(s(),ye+(64>>2),I.detached),Atomics.store(s(),ye+(100>>2),z),Atomics.store(s(),ye+(40>>2),he.threadInfoStruct),Atomics.store(s(),ye+(80>>2),I.stackSize),Atomics.store(s(),ye+(76>>2),be),Atomics.store(s(),ye+(104>>2),I.stackSize),Atomics.store(s(),ye+(104+8>>2),be),Atomics.store(s(),ye+(104+12>>2),I.detached);var Se=sI(),wt=Se+40;Atomics.store(s(),ye+(172>>2),wt),$.pthread=he;var br={cmd:"run",start_routine:I.startRoutine,arg:I.arg,threadInfoStruct:I.pthread_ptr,stackBase:I.stackBase,stackSize:I.stackSize};$.runPthread=function(){br.time=performance.now(),$.postMessage(br,I.transferList)},$.loaded&&($.runPthread(),delete $.runPthread)}function Wy(I,$,z,q){if(typeof SharedArrayBuffer=="undefined")return H("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;if(!I)return H("pthread_create called with a null thread pointer!"),28;var be=[],he=0;if(w&&(be.length===0||he))return uI(687865856,I,$,z,q);if(he)return he;var ye=0,Se=0,wt=0;$&&$!=-1?(ye=n()[$>>2],ye+=81920,Se=n()[$+8>>2],wt=n()[$+12>>2]!==0):ye=2097152;var br=Se==0;br?Se=mI(16,ye):(Se-=ye,fe(Se>0));for(var mr=Fl(228),Ka=0;Ka<228>>2;++Ka)s()[(mr>>2)+Ka]=0;n()[I>>2]=mr,n()[mr+12>>2]=mr;var vc=mr+152;n()[vc>>2]=vc;var Gr={stackBase:Se,stackSize:ye,allocatedOwnStack:br,detached:wt,startRoutine:z,pthread_ptr:mr,arg:q,transferList:be};return w?(Gr.cmd="spawnThread",postMessage(Gr,be)):vh(Gr),0}function Ch(I){if(w)return ja(6,1,I);switch(I){case 30:return 16384;case 85:var $=2147483648;return $/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return py(28),-1}w||Ee.initMainThreadBlock();var Ha,Uy=[null,my,bh,wh,_h,kh,Ch],jy={e:uy,r:cy,x:fy,b:dy,y:hy,j:gy,c:xy,d:gc,f:Rl,p:yy,z:by,u:_y,q:Cy,v:Dy,i:$y,t:Ry,w:By,m:wh,n:_h,g:kh,o:ry,a:te||i.wasmMemory,k:Vy,l:Gy,h:Wy,s:Ch},oI=ty(),Ih=i.___wasm_call_ctors=function(){return(Ih=i.___wasm_call_ctors=i.asm.A).apply(null,arguments)},Hy=i._init=function(){return(Hy=i._init=i.asm.B).apply(null,arguments)},qy=i._register_tensor=function(){return(qy=i._register_tensor=i.asm.C).apply(null,arguments)},Ky=i._dispose_data=function(){return(Ky=i._dispose_data=i.asm.D).apply(null,arguments)},Xy=i._dispose=function(){return(Xy=i._dispose=i.asm.E).apply(null,arguments)},Yy=i._Abs=function(){return(Yy=i._Abs=i.asm.G).apply(null,arguments)},Zy=i._Add=function(){return(Zy=i._Add=i.asm.H).apply(null,arguments)},Jy=i._AddN=function(){return(Jy=i._AddN=i.asm.I).apply(null,arguments)},Qy=i._ArgMax=function(){return(Qy=i._ArgMax=i.asm.J).apply(null,arguments)},eb=i._AvgPool=function(){return(eb=i._AvgPool=i.asm.K).apply(null,arguments)},tb=i._BatchMatMul=function(){return(tb=i._BatchMatMul=i.asm.L).apply(null,arguments)},rb=i._Ceil=function(){return(rb=i._Ceil=i.asm.M).apply(null,arguments)},ob=i._ClipByValue=function(){return(ob=i._ClipByValue=i.asm.N).apply(null,arguments)},nb=i._Conv2D=function(){return(nb=i._Conv2D=i.asm.O).apply(null,arguments)},Nh=i._Conv2DBackpropInput=function(){return(Nh=i._Conv2DBackpropInput=i.asm.P).apply(null,arguments)},Sh=i._Cos=function(){return(Sh=i._Cos=i.asm.Q).apply(null,arguments)},em=i._CropAndResize=function(){return(em=i._CropAndResize=i.asm.R).apply(null,arguments)},yc=i._Cumsum=function(){return(yc=i._Cumsum=i.asm.S).apply(null,arguments)},sb=i._DepthToSpace=function(){return(sb=i._DepthToSpace=i.asm.T).apply(null,arguments)},tm=i._DepthwiseConv2dNative=function(){return(tm=i._DepthwiseConv2dNative=i.asm.U).apply(null,arguments)},Z=i._Equal=function(){return(Z=i._Equal=i.asm.V).apply(null,arguments)},se=i._Exp=function(){return(se=i._Exp=i.asm.W).apply(null,arguments)},ke=i._FlipLeftRight=function(){return(ke=i._FlipLeftRight=i.asm.X).apply(null,arguments)},at=i._Floor=function(){return(at=i._Floor=i.asm.Y).apply(null,arguments)},Xt=i._FloorDiv=function(){return(Xt=i._FloorDiv=i.asm.Z).apply(null,arguments)},zt=i._FusedBatchNorm=function(){return(zt=i._FusedBatchNorm=i.asm._).apply(null,arguments)},tt=i._FusedConv2D=function(){return(tt=i._FusedConv2D=i.asm.$).apply(null,arguments)},rt=i._FusedDepthwiseConv2D=function(){return(rt=i._FusedDepthwiseConv2D=i.asm.aa).apply(null,arguments)},kr=i._Gather=function(){return(kr=i._Gather=i.asm.ba).apply(null,arguments)},Ji=i._GatherNd=function(){return(Ji=i._GatherNd=i.asm.ca).apply(null,arguments)},Qi=i._Greater=function(){return(Qi=i._Greater=i.asm.da).apply(null,arguments)},Th=i._GreaterEqual=function(){return(Th=i._GreaterEqual=i.asm.ea).apply(null,arguments)},rm=i._LeakyRelu=function(){return(rm=i._LeakyRelu=i.asm.fa).apply(null,arguments)},bo=i._Less=function(){return(bo=i._Less=i.asm.ga).apply(null,arguments)},qa=i._LessEqual=function(){return(qa=i._LessEqual=i.asm.ha).apply(null,arguments)},Ah=i._Log=function(){return(Ah=i._Log=i.asm.ia).apply(null,arguments)},vz=i._LogicalAnd=function(){return(vz=i._LogicalAnd=i.asm.ja).apply(null,arguments)},Cz=i._Max=function(){return(Cz=i._Max=i.asm.ka).apply(null,arguments)},Iz=i._MaxPool=function(){return(Iz=i._MaxPool=i.asm.la).apply(null,arguments)},Nz=i._Maximum=function(){return(Nz=i._Maximum=i.asm.ma).apply(null,arguments)},Sz=i._Mean=function(){return(Sz=i._Mean=i.asm.na).apply(null,arguments)},Tz=i._Min=function(){return(Tz=i._Min=i.asm.oa).apply(null,arguments)},Az=i._Minimum=function(){return(Az=i._Minimum=i.asm.pa).apply(null,arguments)},Ez=i._Multiply=function(){return(Ez=i._Multiply=i.asm.qa).apply(null,arguments)},Dz=i._Neg=function(){return(Dz=i._Neg=i.asm.ra).apply(null,arguments)},$z=i._NonMaxSuppressionV3=function(){return($z=i._NonMaxSuppressionV3=i.asm.sa).apply(null,arguments)},Rz=i._NonMaxSuppressionV4=function(){return(Rz=i._NonMaxSuppressionV4=i.asm.ta).apply(null,arguments)},Fz=i._NonMaxSuppressionV5=function(){return(Fz=i._NonMaxSuppressionV5=i.asm.ua).apply(null,arguments)},Oz=i._NotEqual=function(){return(Oz=i._NotEqual=i.asm.va).apply(null,arguments)},Pz=i._OneHot=function(){return(Pz=i._OneHot=i.asm.wa).apply(null,arguments)},Mz=i._PadV2=function(){return(Mz=i._PadV2=i.asm.xa).apply(null,arguments)},Lz=i._Pow=function(){return(Lz=i._Pow=i.asm.ya).apply(null,arguments)},zz=i._Prelu=function(){return(zz=i._Prelu=i.asm.za).apply(null,arguments)},Bz=i._Prod=function(){return(Bz=i._Prod=i.asm.Aa).apply(null,arguments)},Vz=i._RealDiv=function(){return(Vz=i._RealDiv=i.asm.Ba).apply(null,arguments)},Gz=i._Relu=function(){return(Gz=i._Relu=i.asm.Ca).apply(null,arguments)},Wz=i._Relu6=function(){return(Wz=i._Relu6=i.asm.Da).apply(null,arguments)},Uz=i._ResizeBilinear=function(){return(Uz=i._ResizeBilinear=i.asm.Ea).apply(null,arguments)},jz=i._Reverse=function(){return(jz=i._Reverse=i.asm.Fa).apply(null,arguments)},Hz=i._RotateWithOffset=function(){return(Hz=i._RotateWithOffset=i.asm.Ga).apply(null,arguments)},qz=i._Round=function(){return(qz=i._Round=i.asm.Ha).apply(null,arguments)},Kz=i._Rsqrt=function(){return(Kz=i._Rsqrt=i.asm.Ia).apply(null,arguments)},Xz=i._ScatterNd=function(){return(Xz=i._ScatterNd=i.asm.Ja).apply(null,arguments)},Yz=i._SelectV2=function(){return(Yz=i._SelectV2=i.asm.Ka).apply(null,arguments)},Zz=i._Sigmoid=function(){return(Zz=i._Sigmoid=i.asm.La).apply(null,arguments)},Jz=i._Sin=function(){return(Jz=i._Sin=i.asm.Ma).apply(null,arguments)},Qz=i._Softmax=function(){return(Qz=i._Softmax=i.asm.Na).apply(null,arguments)},eB=i._Sqrt=function(){return(eB=i._Sqrt=i.asm.Oa).apply(null,arguments)},tB=i._Square=function(){return(tB=i._Square=i.asm.Pa).apply(null,arguments)},rB=i._SquaredDifference=function(){return(rB=i._SquaredDifference=i.asm.Qa).apply(null,arguments)},oB=i._Step=function(){return(oB=i._Step=i.asm.Ra).apply(null,arguments)},nB=i._StridedSlice=function(){return(nB=i._StridedSlice=i.asm.Sa).apply(null,arguments)},sB=i._Sub=function(){return(sB=i._Sub=i.asm.Ta).apply(null,arguments)},iB=i._Sum=function(){return(iB=i._Sum=i.asm.Ua).apply(null,arguments)},aB=i._Tanh=function(){return(aB=i._Tanh=i.asm.Va).apply(null,arguments)},lB=i._Tile=function(){return(lB=i._Tile=i.asm.Wa).apply(null,arguments)},uB=i._TopK=function(){return(uB=i._TopK=i.asm.Xa).apply(null,arguments)},cB=i._Transpose=function(){return(cB=i._Transpose=i.asm.Ya).apply(null,arguments)},pB=i.__FusedMatMul=function(){return(pB=i.__FusedMatMul=i.asm.Za).apply(null,arguments)},Fl=i._malloc=function(){return(Fl=i._malloc=i.asm._a).apply(null,arguments)},om=i._free=function(){return(om=i._free=i.asm.$a).apply(null,arguments)},nI=i.___errno_location=function(){return(nI=i.___errno_location=i.asm.ab).apply(null,arguments)},sI=i._emscripten_get_global_libc=function(){return(sI=i._emscripten_get_global_libc=i.asm.bb).apply(null,arguments)},bc=i._pthread_self=function(){return(bc=i._pthread_self=i.asm.cb).apply(null,arguments)},iI=i.___pthread_tsd_run_dtors=function(){return(iI=i.___pthread_tsd_run_dtors=i.asm.db).apply(null,arguments)},ib=i._emscripten_main_thread_process_queued_calls=function(){return(ib=i._emscripten_main_thread_process_queued_calls=i.asm.eb).apply(null,arguments)},mB=i._emscripten_current_thread_process_queued_calls=function(){return(mB=i._emscripten_current_thread_process_queued_calls=i.asm.fb).apply(null,arguments)},aI=i._emscripten_register_main_browser_thread_id=function(){return(aI=i._emscripten_register_main_browser_thread_id=i.asm.gb).apply(null,arguments)},lI=i.__emscripten_do_dispatch_to_thread=function(){return(lI=i.__emscripten_do_dispatch_to_thread=i.asm.hb).apply(null,arguments)},uI=i._emscripten_sync_run_in_main_thread_4=function(){return(uI=i._emscripten_sync_run_in_main_thread_4=i.asm.ib).apply(null,arguments)},cI=i._emscripten_run_in_main_runtime_thread_js=function(){return(cI=i._emscripten_run_in_main_runtime_thread_js=i.asm.jb).apply(null,arguments)},ab=i.__emscripten_call_on_thread=function(){return(ab=i.__emscripten_call_on_thread=i.asm.kb).apply(null,arguments)},fB=i._emscripten_tls_init=function(){return(fB=i._emscripten_tls_init=i.asm.lb).apply(null,arguments)},Eh=i.__emscripten_thread_init=function(){return(Eh=i.__emscripten_thread_init=i.asm.mb).apply(null,arguments)},nm=i.stackSave=function(){return(nm=i.stackSave=i.asm.nb).apply(null,arguments)},wc=i.stackRestore=function(){return(wc=i.stackRestore=i.asm.ob).apply(null,arguments)},_c=i.stackAlloc=function(){return(_c=i.stackAlloc=i.asm.pb).apply(null,arguments)},pI=i._emscripten_stack_set_limits=function(){return(pI=i._emscripten_stack_set_limits=i.asm.qb).apply(null,arguments)},mI=i._memalign=function(){return(mI=i._memalign=i.asm.rb).apply(null,arguments)},fI=i.__emscripten_allow_main_runtime_queued_calls=9880,kc=i.__emscripten_main_thread_futex=11368;i.cwrap=we,i.PThread=Ee,i.PThread=Ee,i.wasmMemory=te,i.ExitStatus=sm;var Dh;function sm(I){this.name="ExitStatus",this.message="Program terminated with exit("+I+")",this.status=I}$l=function I(){Dh||lb(),Dh||($l=I)};function lb(I){if(I=I||m,Yi>0)return;if(w){l(i),postMessage({cmd:"loaded"});return}if(Yp(),Yi>0)return;function $(){Dh||(Dh=!0,i.calledRun=!0,!le&&(fc(),Xx(),l(i),i.onRuntimeInitialized&&i.onRuntimeInitialized(),oo()))}i.setStatus?(i.setStatus("Running..."),setTimeout(function(){setTimeout(function(){i.setStatus("")},1),$()},1)):$()}i.run=lb;function dB(I,$){if(!($&&re&&I===0)){if(!$&&w)throw postMessage({cmd:"exitProcess",returnCode:I}),new sm(I);re||(Ee.terminateAllThreads(),ae=I,ph(),i.onExit&&i.onExit(I),le=!0),d(I,new sm(I))}}if(i.preInit)for(typeof i.preInit=="function"&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return w&&(re=!1,Ee.initWorker()),lb(),e.ready}}();typeof jx=="object"&&typeof ZC=="object"?ZC.exports=JC:typeof define=="function"&&define.amd?define([],function(){return JC}):typeof jx=="object"&&(jx.WasmBackendModuleThreadedSimd=JC)});var bz=Wr((Hx,QC)=>{var eI=function(){var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(e){e=e||{};var t=typeof e!="undefined"?e:{},o,n;t.ready=new Promise(function(Z,se){o=Z,n=se});var s={},a;for(a in t)t.hasOwnProperty(a)&&(s[a]=t[a]);var i=[],l="./this.program",u=function(Z,se){throw se},c=!1,p=!1,m=!1,f=!1;c=typeof window=="object",p=typeof importScripts=="function",m=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",f=!c&&!m&&!p;var d="";function h(Z){return t.locateFile?t.locateFile(Z,d):d+Z}var g,y,b,w,_,C;m?(p?d=Xp().dirname(d)+"/":d=__dirname+"/",g=function(se,ke){return _||(_=require("fs")),C||(C=Xp()),se=C.normalize(se),_.readFileSync(se,ke?null:"utf8")},b=function(se){var ke=g(se,!0);return ke.buffer||(ke=new Uint8Array(ke)),j(ke.buffer),ke},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),i=process.argv.slice(2),process.on("uncaughtException",function(Z){if(!(Z instanceof sb))throw Z}),process.on("unhandledRejection",ns),u=function(Z){process.exit(Z)},t.inspect=function(){return"[Emscripten Module object]"}):f?(typeof read!="undefined"&&(g=function(se){return read(se)}),b=function(se){var ke;return typeof readbuffer=="function"?new Uint8Array(readbuffer(se)):(ke=read(se,"binary"),j(typeof ke=="object"),ke)},typeof scriptArgs!="undefined"?i=scriptArgs:typeof arguments!="undefined"&&(i=arguments),typeof quit=="function"&&(u=function(Z){quit(Z)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(c||p)&&(p?d=self.location.href:typeof document!="undefined"&&document.currentScript&&(d=document.currentScript.src),r&&(d=r),d.indexOf("blob:")!==0?d=d.substr(0,d.lastIndexOf("/")+1):d="",g=function(Z){var se=new XMLHttpRequest;return se.open("GET",Z,!1),se.send(null),se.responseText},p&&(b=function(Z){var se=new XMLHttpRequest;return se.open("GET",Z,!1),se.responseType="arraybuffer",se.send(null),new Uint8Array(se.response)}),y=function(Z,se,ke){var at=new XMLHttpRequest;at.open("GET",Z,!0),at.responseType="arraybuffer",at.onload=function(){if(at.status==200||at.status==0&&at.response){se(at.response);return}ke()},at.onerror=ke,at.send(null)},w=function(Z){document.title=Z});var D=t.print||console.log.bind(console),T=t.printErr||console.warn.bind(console);for(a in s)s.hasOwnProperty(a)&&(t[a]=s[a]);s=null,t.arguments&&(i=t.arguments),t.thisProgram&&(l=t.thisProgram),t.quit&&(u=t.quit);var R;t.wasmBinary&&(R=t.wasmBinary);var P=t.noExitRuntime||!0;typeof WebAssembly!="object"&&ns("no native wasm support detected");var B,G=!1,U;function j(Z,se){Z||ns("Assertion failed: "+se)}function H(Z){var se=t["_"+Z];return j(se,"Cannot call unknown function "+Z+", make sure it is exported"),se}function K(Z,se,ke,at,Xt){var zt={string:function(bo){var qa=0;if(bo!=null&&bo!==0){var Ah=(bo.length<<2)+1;qa=em(Ah),ie(bo,qa,Ah)}return qa},array:function(bo){var qa=em(bo.length);return le(bo,qa),qa}};function tt(bo){return se==="string"?re(bo):se==="boolean"?Boolean(bo):bo}var rt=H(Z),kr=[],Ji=0;if(at)for(var Qi=0;Qi=at);)++Xt;if(Xt-se>16&&Z.subarray&&oe)return oe.decode(Z.subarray(se,Xt));for(var zt="";se>10,56320|Ji&1023)}}return zt}function re(Z,se){return Z?Y(xe,Z,se):""}function te(Z,se,ke,at){if(!(at>0))return 0;for(var Xt=ke,zt=ke+at-1,tt=0;tt=55296&&rt<=57343){var kr=Z.charCodeAt(++tt);rt=65536+((rt&1023)<<10)|kr&1023}if(rt<=127){if(ke>=zt)break;se[ke++]=rt}else if(rt<=2047){if(ke+1>=zt)break;se[ke++]=192|rt>>6,se[ke++]=128|rt&63}else if(rt<=65535){if(ke+2>=zt)break;se[ke++]=224|rt>>12,se[ke++]=128|rt>>6&63,se[ke++]=128|rt&63}else{if(ke+3>=zt)break;se[ke++]=240|rt>>18,se[ke++]=128|rt>>12&63,se[ke++]=128|rt>>6&63,se[ke++]=128|rt&63}}return se[ke]=0,ke-Xt}function ie(Z,se,ke){return te(Z,xe,se,ke)}function le(Z,se){de.set(Z,se)}function ae(Z,se){return Z%se>0&&(Z+=se-Z%se),Z}var fe,de,xe,we,De,Ie,ze,qe,it;function Tt(Z){fe=Z,t.HEAP8=de=new Int8Array(Z),t.HEAP16=we=new Int16Array(Z),t.HEAP32=Ie=new Int32Array(Z),t.HEAPU8=xe=new Uint8Array(Z),t.HEAPU16=De=new Uint16Array(Z),t.HEAPU32=ze=new Uint32Array(Z),t.HEAPF32=qe=new Float32Array(Z),t.HEAPF64=it=new Float64Array(Z)}var At=t.INITIAL_MEMORY||16777216,Ue,ut=[],mt=[],Pt=[],xo=[],Kt=!1;mt.push({func:function(){gh()}});function to(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)yo(t.preRun.shift());Ua(ut)}function Dr(){Kt=!0,Ua(mt)}function Uo(){Ua(Pt)}function rr(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)Vr(t.postRun.shift());Ua(xo)}function yo(Z){ut.unshift(Z)}function Vr(Z){xo.unshift(Z)}var yr=0,ro=null,Ao=null;function Dl(Z){yr++,t.monitorRunDependencies&&t.monitorRunDependencies(yr)}function Wa(Z){if(yr--,t.monitorRunDependencies&&t.monitorRunDependencies(yr),yr==0&&(ro!==null&&(clearInterval(ro),ro=null),Ao)){var se=Ao;Ao=null,se()}}t.preloadedImages={},t.preloadedAudios={};function ns(Z){t.onAbort&&t.onAbort(Z),Z+="",T(Z),G=!0,U=1,Z="abort("+Z+"). Build with -s ASSERTIONS=1 for more info.";var se=new WebAssembly.RuntimeError(Z);throw n(se),se}function Xi(Z,se){return String.prototype.startsWith?Z.startsWith(se):Z.indexOf(se)===0}var Yp="data:application/octet-stream;base64,";function fc(Z){return Xi(Z,Yp)}var Xx="file://";function ph(Z){return Xi(Z,Xx)}var oo="tfjs-backend-wasm.wasm";fc(oo)||(oo=h(oo));function mh(Z){try{if(Z==oo&&R)return new Uint8Array(R);if(b)return b(Z);throw"both async and sync fetching of the wasm failed"}catch(se){ns(se)}}function Yx(){if(!R&&(c||p)){if(typeof fetch=="function"&&!ph(oo))return fetch(oo,{credentials:"same-origin"}).then(function(Z){if(!Z.ok)throw"failed to load wasm binary file at '"+oo+"'";return Z.arrayBuffer()}).catch(function(){return mh(oo)});if(y)return new Promise(function(Z,se){y(oo,function(ke){Z(new Uint8Array(ke))},se)})}return Promise.resolve().then(function(){return mh(oo)})}function Yi(){var Z={a:no};function se(tt,rt){var kr=tt.exports;t.asm=kr,B=t.asm.g,Tt(B.buffer),Ue=t.asm.m,Wa("wasm-instantiate")}Dl("wasm-instantiate");function ke(tt){se(tt.instance)}function at(tt){return Yx().then(function(rt){return WebAssembly.instantiate(rt,Z)}).then(tt,function(rt){T("failed to asynchronously prepare wasm: "+rt),ns(rt)})}function Xt(){return!R&&typeof WebAssembly.instantiateStreaming=="function"&&!fc(oo)&&!ph(oo)&&typeof fetch=="function"?fetch(oo,{credentials:"same-origin"}).then(function(tt){var rt=WebAssembly.instantiateStreaming(tt,Z);return rt.then(ke,function(kr){return T("wasm streaming compile failed: "+kr),T("falling back to ArrayBuffer instantiation"),at(ke)})}):at(ke)}if(t.instantiateWasm)try{var zt=t.instantiateWasm(Z,se);return zt}catch(tt){return T("Module.instantiateWasm callback failed with error: "+tt),!1}return Xt().catch(n),{}}function Ua(Z){for(;Z.length>0;){var se=Z.shift();if(typeof se=="function"){se(t);continue}var ke=se.func;typeof ke=="number"?se.arg===void 0?Ue.get(ke)():Ue.get(ke)(se.arg):ke(se.arg===void 0?null:se.arg)}}function $l(){ns()}function Zx(Z,se,ke){xe.copyWithin(Z,se,se+ke)}function Jx(){return xe.length}function Zi(Z){try{return B.grow(Z-fe.byteLength+65535>>>16),Tt(B.buffer),1}catch(se){}}function fh(Z){var se=Jx(),ke=2147483648;if(Z>ke)return!1;for(var at=1;at<=4;at*=2){var Xt=se*(1+.2/at);Xt=Math.min(Xt,Z+100663296);var zt=Math.min(ke,ae(Math.max(Z,Xt),65536)),tt=Zi(zt);if(tt)return!0}return!1}var dc={mappings:{},buffers:[null,[],[]],printChar:function(Z,se){var ke=dc.buffers[Z];se===0||se===10?((Z===1?D:T)(Y(ke,0)),ke.length=0):ke.push(se)},varargs:void 0,get:function(){dc.varargs+=4;var Z=Ie[dc.varargs-4>>2];return Z},getStr:function(Z){var se=re(Z);return se},get64:function(Z,se){return Z}};function dh(Z){return 0}function Qx(Z,se,ke,at,Xt){}function hh(Z,se,ke,at){for(var Xt=0,zt=0;zt>2],rt=Ie[se+(zt*8+4)>>2],kr=0;kr>2]=Xt,0}var no={a:$l,d:Zx,e:fh,f:dh,c:Qx,b:hh},ey=Yi(),gh=t.___wasm_call_ctors=function(){return(gh=t.___wasm_call_ctors=t.asm.h).apply(null,arguments)},ty=t._init=function(){return(ty=t._init=t.asm.i).apply(null,arguments)},xh=t._register_tensor=function(){return(xh=t._register_tensor=t.asm.j).apply(null,arguments)},ry=t._dispose_data=function(){return(ry=t._dispose_data=t.asm.k).apply(null,arguments)},hc=t._dispose=function(){return(hc=t._dispose=t.asm.l).apply(null,arguments)},gc=t._Abs=function(){return(gc=t._Abs=t.asm.n).apply(null,arguments)},oy=t._Add=function(){return(oy=t._Add=t.asm.o).apply(null,arguments)},ny=t._AddN=function(){return(ny=t._AddN=t.asm.p).apply(null,arguments)},sy=t._ArgMax=function(){return(sy=t._ArgMax=t.asm.q).apply(null,arguments)},Ee=t._AvgPool=function(){return(Ee=t._AvgPool=t.asm.r).apply(null,arguments)},iy=t._BatchMatMul=function(){return(iy=t._BatchMatMul=t.asm.s).apply(null,arguments)},ay=t._Ceil=function(){return(ay=t._Ceil=t.asm.t).apply(null,arguments)},ly=t._ClipByValue=function(){return(ly=t._ClipByValue=t.asm.u).apply(null,arguments)},uy=t._Conv2D=function(){return(uy=t._Conv2D=t.asm.v).apply(null,arguments)},cy=t._Conv2DBackpropInput=function(){return(cy=t._Conv2DBackpropInput=t.asm.w).apply(null,arguments)},Rl=t._Cos=function(){return(Rl=t._Cos=t.asm.x).apply(null,arguments)},py=t._CropAndResize=function(){return(py=t._CropAndResize=t.asm.y).apply(null,arguments)},my=t._Cumsum=function(){return(my=t._Cumsum=t.asm.z).apply(null,arguments)},fy=t._DepthToSpace=function(){return(fy=t._DepthToSpace=t.asm.A).apply(null,arguments)},dy=t._DepthwiseConv2dNative=function(){return(dy=t._DepthwiseConv2dNative=t.asm.B).apply(null,arguments)},hy=t._Equal=function(){return(hy=t._Equal=t.asm.C).apply(null,arguments)},gy=t._Exp=function(){return(gy=t._Exp=t.asm.D).apply(null,arguments)},xy=t._FlipLeftRight=function(){return(xy=t._FlipLeftRight=t.asm.E).apply(null,arguments)},yy=t._Floor=function(){return(yy=t._Floor=t.asm.F).apply(null,arguments)},by=t._FloorDiv=function(){return(by=t._FloorDiv=t.asm.G).apply(null,arguments)},ja=t._FusedBatchNorm=function(){return(ja=t._FusedBatchNorm=t.asm.H).apply(null,arguments)},Zp=t._FusedConv2D=function(){return(Zp=t._FusedConv2D=t.asm.I).apply(null,arguments)},Jp=t._FusedDepthwiseConv2D=function(){return(Jp=t._FusedDepthwiseConv2D=t.asm.J).apply(null,arguments)},wy=t._Gather=function(){return(wy=t._Gather=t.asm.K).apply(null,arguments)},_y=t._GatherNd=function(){return(_y=t._GatherNd=t.asm.L).apply(null,arguments)},ky=t._Greater=function(){return(ky=t._Greater=t.asm.M).apply(null,arguments)},vy=t._GreaterEqual=function(){return(vy=t._GreaterEqual=t.asm.N).apply(null,arguments)},Cy=t._LeakyRelu=function(){return(Cy=t._LeakyRelu=t.asm.O).apply(null,arguments)},Xe=t._Less=function(){return(Xe=t._Less=t.asm.P).apply(null,arguments)},Iy=t._LessEqual=function(){return(Iy=t._LessEqual=t.asm.Q).apply(null,arguments)},Ny=t._Log=function(){return(Ny=t._Log=t.asm.R).apply(null,arguments)},Sy=t._LogicalAnd=function(){return(Sy=t._LogicalAnd=t.asm.S).apply(null,arguments)},Ty=t._Max=function(){return(Ty=t._Max=t.asm.T).apply(null,arguments)},Ay=t._MaxPool=function(){return(Ay=t._MaxPool=t.asm.U).apply(null,arguments)},Ey=t._Maximum=function(){return(Ey=t._Maximum=t.asm.V).apply(null,arguments)},Qp=t._Mean=function(){return(Qp=t._Mean=t.asm.W).apply(null,arguments)},yh=t._Min=function(){return(yh=t._Min=t.asm.X).apply(null,arguments)},bh=t._Minimum=function(){return(bh=t._Minimum=t.asm.Y).apply(null,arguments)},Dy=t._Multiply=function(){return(Dy=t._Multiply=t.asm.Z).apply(null,arguments)},$y=t._Neg=function(){return($y=t._Neg=t.asm._).apply(null,arguments)},Ry=t._NonMaxSuppressionV3=function(){return(Ry=t._NonMaxSuppressionV3=t.asm.$).apply(null,arguments)},Fy=t._NonMaxSuppressionV4=function(){return(Fy=t._NonMaxSuppressionV4=t.asm.aa).apply(null,arguments)},Oy=t._NonMaxSuppressionV5=function(){return(Oy=t._NonMaxSuppressionV5=t.asm.ba).apply(null,arguments)},Py=t._NotEqual=function(){return(Py=t._NotEqual=t.asm.ca).apply(null,arguments)},My=t._OneHot=function(){return(My=t._OneHot=t.asm.da).apply(null,arguments)},ft=t._PadV2=function(){return(ft=t._PadV2=t.asm.ea).apply(null,arguments)},Ly=t._Pow=function(){return(Ly=t._Pow=t.asm.fa).apply(null,arguments)},zy=t._Prelu=function(){return(zy=t._Prelu=t.asm.ga).apply(null,arguments)},By=t._Prod=function(){return(By=t._Prod=t.asm.ha).apply(null,arguments)},xc=t._RealDiv=function(){return(xc=t._RealDiv=t.asm.ia).apply(null,arguments)},wh=t._Relu=function(){return(wh=t._Relu=t.asm.ja).apply(null,arguments)},_h=t._Relu6=function(){return(_h=t._Relu6=t.asm.ka).apply(null,arguments)},kh=t._ResizeBilinear=function(){return(kh=t._ResizeBilinear=t.asm.la).apply(null,arguments)},Vy=t._Reverse=function(){return(Vy=t._Reverse=t.asm.ma).apply(null,arguments)},Gy=t._RotateWithOffset=function(){return(Gy=t._RotateWithOffset=t.asm.na).apply(null,arguments)},vh=t._Round=function(){return(vh=t._Round=t.asm.oa).apply(null,arguments)},Wy=t._Rsqrt=function(){return(Wy=t._Rsqrt=t.asm.pa).apply(null,arguments)},Ch=t._ScatterNd=function(){return(Ch=t._ScatterNd=t.asm.qa).apply(null,arguments)},Ha=t._SelectV2=function(){return(Ha=t._SelectV2=t.asm.ra).apply(null,arguments)},Uy=t._Sigmoid=function(){return(Uy=t._Sigmoid=t.asm.sa).apply(null,arguments)},jy=t._Sin=function(){return(jy=t._Sin=t.asm.ta).apply(null,arguments)},oI=t._Softmax=function(){return(oI=t._Softmax=t.asm.ua).apply(null,arguments)},Ih=t._Sqrt=function(){return(Ih=t._Sqrt=t.asm.va).apply(null,arguments)},Hy=t._Square=function(){return(Hy=t._Square=t.asm.wa).apply(null,arguments)},qy=t._SquaredDifference=function(){return(qy=t._SquaredDifference=t.asm.xa).apply(null,arguments)},Ky=t._Step=function(){return(Ky=t._Step=t.asm.ya).apply(null,arguments)},Xy=t._StridedSlice=function(){return(Xy=t._StridedSlice=t.asm.za).apply(null,arguments)},Yy=t._Sub=function(){return(Yy=t._Sub=t.asm.Aa).apply(null,arguments)},Zy=t._Sum=function(){return(Zy=t._Sum=t.asm.Ba).apply(null,arguments)},Jy=t._Tanh=function(){return(Jy=t._Tanh=t.asm.Ca).apply(null,arguments)},Qy=t._Tile=function(){return(Qy=t._Tile=t.asm.Da).apply(null,arguments)},eb=t._TopK=function(){return(eb=t._TopK=t.asm.Ea).apply(null,arguments)},tb=t._Transpose=function(){return(tb=t._Transpose=t.asm.Fa).apply(null,arguments)},rb=t.__FusedMatMul=function(){return(rb=t.__FusedMatMul=t.asm.Ga).apply(null,arguments)},ob=t._malloc=function(){return(ob=t._malloc=t.asm.Ha).apply(null,arguments)},nb=t._free=function(){return(nb=t._free=t.asm.Ia).apply(null,arguments)},Nh=t.stackSave=function(){return(Nh=t.stackSave=t.asm.Ja).apply(null,arguments)},Sh=t.stackRestore=function(){return(Sh=t.stackRestore=t.asm.Ka).apply(null,arguments)},em=t.stackAlloc=function(){return(em=t.stackAlloc=t.asm.La).apply(null,arguments)};t.cwrap=X;var yc;function sb(Z){this.name="ExitStatus",this.message="Program terminated with exit("+Z+")",this.status=Z}Ao=function Z(){yc||tm(),yc||(Ao=Z)};function tm(Z){if(Z=Z||i,yr>0||(to(),yr>0))return;function se(){yc||(yc=!0,t.calledRun=!0,!G&&(Dr(),Uo(),o(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),rr()))}t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),se()},1)):se()}if(t.run=tm,t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return tm(),e.ready}}();typeof Hx=="object"&&typeof QC=="object"?QC.exports=eI:typeof define=="function"&&define.amd?define([],function(){return eI}):typeof Hx=="object"&&(Hx.WasmBackendModule=eI)});var kB=1e-7,vB=1e-4,Xa=class{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}},Gs=class{refCount(e){return jo("refCount")}incRef(e){return jo("incRef")}timerAvailable(){return!0}time(e){return jo("time")}read(e){return jo("read")}readSync(e){return jo("readSync")}numDataIds(){return jo("numDataIds")}disposeData(e,t){return jo("disposeData")}write(e,t,o){return jo("write")}move(e,t,o,n,s){return jo("move")}memory(){return jo("memory")}floatPrecision(){return jo("floatPrecision")}epsilon(){return this.floatPrecision()===32?kB:vB}dispose(){return jo("dispose")}};function jo(r){throw new Error(`'${r}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function hI(r){let e=r.length,t=0,o=0;for(;e>0;)o=Math.random()*e|0,e--,t=r[e],r[e]=r[o],r[o]=t}function CB(r,e){if(r.length!==e.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${r.length}Second array length was ${e.length}`);let t=r.length,o,n,s=0;for(;t>0;)s=Math.random()*t|0,t--,o=r[t],n=e[t],r[t]=r[s],e[t]=e[s],r[s]=o,e[s]=n}function Nc(r,e,t){return Math.max(r,Math.min(e,t))}function IB(r){return r%2==0?r:r+1}function NB(r){let e=0;for(let t=0;tt+` Shapes ${r} and ${e} must match`)}function Eo(r){A(r!=null,()=>"The input to the tensor constructor must be a non-null value.")}function ss(r,e=[],t=!1){if(e==null&&(e=[]),Array.isArray(r)||or(r)&&!t)for(let o=0;o0,t){return new Promise((o,n)=>{let s=0,a=()=>{if(r()){o();return}s++;let i=e(s);if(t!=null&&s>=t){n();return}setTimeout(a,i)};a()})}function FB(r,e){let t=1,o=-1;for(let s=0;s=0)t*=r[s];else if(r[s]===-1){if(o!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${o} and dim ${s}`);o=s}else if(r[s]<0)throw Error(`Shapes can not be < 0. Found ${r[s]} at dim ${s}`);if(o===-1){if(e>0&&e!==t)throw Error(`Size(${e}) must match the product of shape ${r}`);return r}if(t===0)throw Error(`Cannot infer the missing size in [${r}] when there are 0 elements`);if(e%t!=0)throw Error(`The implicit shape can't be a fractional number. Got ${e} / ${t}`);let n=r.slice();return n[o]=e/t,n}function Jt(r,e){let t=e.length;return r=r==null?e.map((o,n)=>n):[].concat(r),A(r.every(o=>o>=-t&&o`All values in axis param must be in range [-${t}, ${t}) but got axis ${r}`),A(r.every(o=>ot(o)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(o=>o<0?t+o:o)}function ub(r,e){let t=[],o=[],n=e!=null&&Array.isArray(e)&&e.length===0,s=e==null||n?null:Jt(e,r).sort(),a=0;for(let i=0;ii)&&r[i]===1&&(t.push(r[i]),o.push(i)),s[a]<=i&&a++}r[i]!==1&&(t.push(r[i]),o.push(i))}return{newShape:t,keptDims:o}}function cb(r,e){let t=null;if(r==null||r==="float32")t=new Float32Array(e);else if(r==="int32")t=new Int32Array(e);else if(r==="bool")t=new Uint8Array(e);else throw new Error(`Unknown data type ${r}`);return t}function pb(r,e){let t=null;if(r==null||r==="float32")t=new Float32Array(e);else if(r==="int32")t=new Int32Array(e);else if(r==="bool")t=new Uint8Array(e);else if(r==="string")t=new Array(e);else throw new Error(`Unknown data type ${r}`);return t}function mb(r,e){for(let t=0;te+=t.length),e}function is(r){return typeof r=="string"||r instanceof String}function gI(r){return typeof r=="boolean"}function xI(r){return typeof r=="number"}function Sc(r){return Array.isArray(r)?Sc(r[0]):r instanceof Float32Array?"float32":r instanceof Int32Array||r instanceof Uint8Array?"int32":xI(r)?"float32":is(r)?"string":gI(r)?"bool":"float32"}function Ws(r){return!!(r&&r.constructor&&r.call&&r.apply)}function Tc(r,e){for(let t=e;t=0;--o)t[o]=t[o+1]*r[o+1];return t}function yI(r,e,t){let o=new Array;if(e.length===1){let n=e[0];for(let s=0;si*l);for(let i=0;io*n);if(t===0)return[];if(t!==e.length)throw new Error(`[${r}] does not match the input size ${e.length}.`);return yI(0,r,e)}function im(r,e){let t=Ac(r,e);for(let o=0;oo*n,1);if(e==null||e==="float32")return Pl(r,new Float32Array(t));if(e==="int32")return Pl(r,new Int32Array(t));if(e==="bool")return Pl(r,new Uint8Array(t));throw new Error(`Unknown data type ${e}`)}function am(r){r.forEach(e=>{A(Number.isInteger(e)&&e>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function MB(r,e,t){if(e===0)return 0;if(e===1)return r[0];let o=r[r.length-1];for(let n=0;n{let[n,s]=o.split(":");this.urlFlags[n]=BB(n,s)})}};function zB(r){let e={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(t,...o)=>(VB(e,o[0],o[1]),o.join("="))),e}function VB(r,e,t){r[decodeURIComponent(e)]=decodeURIComponent(t||"")}function BB(r,e){if(e=e.toLowerCase(),e==="true"||e==="false")return e==="true";if(`${+e}`===e)return+e;throw new Error(`Could not parse value flag value ${e} for flag ${r}.`)}function W(){return hb}var hb=null;function wI(r){hb=r}var gb;function xb(){if(gb==null){let r;if(typeof window!="undefined")r=window;else if(typeof global!="undefined")r=global;else if(typeof process!="undefined")r=process;else if(typeof self!="undefined")r=self;else throw new Error("Could not find a global object");gb=r}return gb}function GB(){let r=xb();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function um(r,e){let t=GB();if(t.has(r))return t.get(r);{let o=e();return t.set(r,o),t.get(r)}}var as="Abs",js="Acos",Hs="Acosh",wo="Add",Ho="AddN",Ml="All",Ll="Any",qo="ArgMax",ea="ArgMin",qs="Asin",Ks="Asinh",Xs="Atan",Ys="Atanh",Zs="Atan2",Ko="AvgPool",zl="AvgPoolGrad",ta="AvgPool3D",Bl="AvgPool3DGrad",Xo="BatchMatMul",ra="BatchToSpaceND",Vl="Bincount",yb="BroadcastTo",Do="Cast",Yo="Ceil",$o="ClipByValue",Gl="Complex",oa="ComplexAbs",ls="Concat",Zo="Conv2D",Wl="Conv2DBackpropFilter",Jo="Conv2DBackpropInput",na="Conv3D",Ul="Conv3DBackpropFilterV2",jl="Conv3DBackpropInputV2",Qo="Cos",Js="Cosh",en="Cumsum",Qs="CropAndResize",Hl="DenseBincount",ei="DepthToSpace",tn="DepthwiseConv2dNative",ql="DepthwiseConv2dNativeBackpropFilter",Kl="DepthwiseConv2dNativeBackpropInput",Xl="Diag",sa="Dilation2D",Ec="Dilation2DBackpropInput",Dc="Dilation2DBackpropFilter",rn="RealDiv",ti="Elu",Yl="EluGrad",ri="Erf",oi="Equal",on="Exp",us="ExpandDims",ni="Expm1",Zl="FFT",ia="Fill",si="FlipLeftRight",nn="Floor",sn="FloorDiv",an="FusedBatchNorm",cs="GatherV2",ii="GatherNd",ai="Greater",ln="GreaterEqual",Ro="Identity",Jl="IFFT",Ql="Imag",li="IsFinite",ui="IsInf",ci="IsNan",un="LeakyRelu",pi="Less",mi="LessEqual",eu="LinSpace",cn="Log",fi="Log1p",di="LogicalAnd",Ya="LogicalNot",Za="LogicalOr",bb="LogSoftmax",aa="LRN",tu="LRNGrad",pn="Max",mn="Maximum",fn="MaxPool",ru="MaxPoolGrad",la="MaxPool3D",ou="MaxPool3DGrad",nu="MaxPoolWithArgmax",dn="Mean",hn="Min",gn="Minimum",ua="MirrorPad",hi="Mod",su="Multinomial",xn="Multiply",ps="Neg",gi="NotEqual",xi="NonMaxSuppressionV3",yi="NonMaxSuppressionV4",bi="NonMaxSuppressionV5",ms="OnesLike",yn="OneHot",fs="Pack",bn="PadV2",WB="Pool",wn="Pow",_n="Prelu",wi="Prod",ca="Range",iu="Real",_i="Reciprocal",kn="Relu",ds="Reshape",pa="ResizeNearestNeighbor",au="ResizeNearestNeighborGrad",vn="ResizeBilinear",lu="ResizeBilinearGrad",Cn="Relu6",In="Reverse",Nn="Round",Sn="Rsqrt",ki="ScatterNd",hs="Select",vi="Selu",gs="Slice",Tn="Sin",Ci="Sinh",Ii="Sign",An="Sigmoid",Ni="Softplus",En="Sqrt",Dn="Sum",ma="SpaceToBatchND",xs="SplitV",$n="Softmax",Rn="SquaredDifference",fa="Square",Fn="Sub",uu="SparseToDense",Si="StridedSlice",Ti="Tan",On="Tanh",_o="Tile",Ai="TopK",Pn="Transpose",cu="Unique",ys="Unpack",da="UnsortedSegmentSum",bs="ZerosLike",Fo="Step",$c="FromPixels",Ei="RotateWithOffset",ws="_FusedMatMul",_s="FusedConv2D",ks="FusedDepthwiseConv2D";var Rc=um("kernelRegistry",()=>new Map),cm=um("gradRegistry",()=>new Map);function Fc(r,e){let t=wb(r,e);return Rc.get(t)}function Oh(r){return cm.get(r)}function pm(r){let e=Rc.entries(),t=[];for(;;){let{done:o,value:n}=e.next();if(o)break;let[s,a]=n,[i]=s.split("_");i===r&&t.push(a)}return t}function Ja(r){let{kernelName:e,backendName:t}=r,o=wb(e,t);Rc.has(o)&&console.warn(`The kernel '${e}' for backend '${t}' is already registered`),Rc.set(o,r)}function _b(r){let{kernelName:e}=r;cm.has(e)&&W().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${e}'`),cm.set(e,r)}function UB(r,e){let t=wb(r,e);if(!Rc.has(t))throw new Error(`The kernel '${r}' for backend '${e}' is not registered`);Rc.delete(t)}function jB(r){if(!cm.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);cm.delete(r)}function HB(r,e){pm(r).forEach(o=>{let n=Object.assign({},o,{backendName:e});Ja(n)})}function wb(r,e){return`${e}_${r}`}var x={};Je(x,{arraysEqual:()=>Ur,assert:()=>A,assertNonNegativeIntegerDimensions:()=>am,assertNonNull:()=>Eo,assertShapesMatch:()=>vt,bytesFromStringArray:()=>db,bytesPerElement:()=>Rh,checkConversionForErrors:()=>mb,clamp:()=>Nc,computeStrides:()=>Us,createScalarValue:()=>qB,createShuffledIndices:()=>$B,decodeString:()=>Pc,distSquared:()=>TB,encodeString:()=>Qa,fetch:()=>XB,flatten:()=>ss,getArrayFromDType:()=>pb,getTypedArrayFromDType:()=>cb,hasEncodingLoss:()=>OB,indexToLoc:()=>LB,inferDtype:()=>Sc,inferFromImplicitShape:()=>FB,isBoolean:()=>gI,isFunction:()=>Ws,isInt:()=>ot,isNumber:()=>xI,isPromise:()=>lm,isScalarShape:()=>AB,isString:()=>is,isTypedArray:()=>or,isValidDtype:()=>fb,locToIndex:()=>MB,makeOnesTypedArray:()=>im,makeZerosNestedTypedArray:()=>PB,makeZerosTypedArray:()=>Ac,nearestDivisor:()=>Tc,nearestLargerEven:()=>IB,now:()=>pu,parseAxisParam:()=>Jt,randUniform:()=>SB,repeatedTry:()=>RB,rightPad:()=>Ol,shuffle:()=>hI,shuffleCombo:()=>CB,sizeFromShape:()=>ct,sizeToSquarishShape:()=>DB,squeezeShape:()=>ub,sum:()=>NB,tanh:()=>EB,toNestedArray:()=>Pl,toTypedArray:()=>Oc});function qB(r,e){return e==="string"?Qa(r):Oc([r],e)}function KB(r,e){return r instanceof Float32Array&&e==="float32"||r instanceof Int32Array&&e==="int32"||r instanceof Uint8Array&&e==="bool"}function Oc(r,e){if(e==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(r)&&(r=ss(r)),W().getBool("DEBUG")&&mb(r,e),KB(r,e))return r;if(e==null||e==="float32"||e==="complex64")return new Float32Array(r);if(e==="int32")return new Int32Array(r);if(e==="bool"){let t=new Uint8Array(r.length);for(let o=0;o{n=o()},a,i=pu();if(this.backendTimer.timerAvailable())a=this.backendTimer.time(s);else{s();for(let u of n)u.dataSync();a=Promise.resolve({kernelMs:pu()-i})}if(W().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let u=0;u{YB(p,c.dtype,e)})}return{kernelName:e,outputs:n,inputs:t,timeMs:a.then(u=>u.kernelMs),extraInfo:a.then(u=>u.getExtraProfileInfo!=null?u.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:o,timeMs:n,inputs:s,extraInfo:a}=e;o.forEach(i=>{Promise.all([i.data(),n,a]).then(l=>{this.logger.logKernelProfile(t,i,l[0],l[1],s,l[2])})})}};function YB(r,e,t){if(e!=="float32")return!1;for(let o=0;o0?h:""} `}}console.log(`%c${l} %c${i} %c${u}D ${p} %c${c} %c${m} %c${a}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function kI(r,e,t){let o={},n={};for(let l=0;lo[h.id]=!0),f=!0,n[u.id]=!0;break}if(f)break}}let s={};s[t.id]=!0;let a={};for(let l=r.length-1;l>=0;l--){let u=r[l],c=u.inputs;for(let p=0;p=0;n--){let s=e[n],a=[];if(s.outputs.forEach(l=>{let u=r[l.id];u!=null?a.push(u):a.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let i=s.gradient(a);for(let l in s.inputs){if(!(l in i))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(i)}.`);let u=t(()=>i[l]());if(u.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${u.dtype}'`);let c=s.inputs[l];if(!Ur(u.shape,c.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${u.shape}', which does not match the shape of the input '${c.shape}'`);if(r[c.id]==null)r[c.id]=u;else{let p=r[c.id];r[c.id]=o(p,u),p.dispose()}}}}var CI=20,mm=3,vb=7;function II(r,e,t,o){let n=Us(e),s=ZB(r,e,t,n),a=e.length,i=Ph(r,e,t,n,s),l=["Tensor"];return o&&(l.push(` dtype: ${t}`),l.push(` rank: ${a}`),l.push(` shape: [${e}]`),l.push(" values:")),l.push(i.map(u=>" "+u).join(` +var h3=Object.create,Oh=Object.defineProperty,g3=Object.getPrototypeOf,x3=Object.prototype.hasOwnProperty,y3=Object.getOwnPropertyNames,b3=Object.getOwnPropertyDescriptor;var w3=r=>Oh(r,"__esModule",{value:!0});var dt=(r,e)=>()=>(e||(e={exports:{}},r(e.exports,e)),e.exports),Je=(r,e)=>{for(var t in e)Oh(r,t,{get:e[t],enumerable:!0})},_3=(r,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of y3(e))!x3.call(r,o)&&o!=="default"&&Oh(r,o,{get:()=>e[o],enumerable:!(t=b3(e,o))||t.enumerable});return r},Ac=r=>_3(w3(Oh(r!=null?h3(g3(r)):{},"default",r&&r.__esModule&&"default"in r?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var bI=dt(()=>{});var QI=dt((JI,$w)=>{(function(r,e,t){function o(i){var l=this,u=a();l.next=function(){var c=2091639*l.s0+l.c*23283064365386963e-26;return l.s0=l.s1,l.s1=l.s2,l.s2=c-(l.c=c|0)},l.c=1,l.s0=u(" "),l.s1=u(" "),l.s2=u(" "),l.s0-=u(i),l.s0<0&&(l.s0+=1),l.s1-=u(i),l.s1<0&&(l.s1+=1),l.s2-=u(i),l.s2<0&&(l.s2+=1),u=null}function n(i,l){return l.c=i.c,l.s0=i.s0,l.s1=i.s1,l.s2=i.s2,l}function s(i,l){var u=new o(i),c=l&&l.state,p=u.next;return p.int32=function(){return u.next()*4294967296|0},p.double=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.quick=p,c&&(typeof c=="object"&&n(c,u),p.state=function(){return n(u,{})}),p}function a(){var i=4022871197,l=function(u){u=u.toString();for(var c=0;c>>0,p-=i,p*=i,i=p>>>0,p-=i,i+=p*4294967296}return(i>>>0)*23283064365386963e-26};return l}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.alea=s})(JI,typeof $w=="object"&&$w,typeof define=="function"&&define)});var tN=dt((eN,Rw)=>{(function(r,e,t){function o(a){var i=this,l="";i.x=0,i.y=0,i.z=0,i.w=0,i.next=function(){var c=i.x^i.x<<11;return i.x=i.y,i.y=i.z,i.z=i.w,i.w^=i.w>>>19^c^c>>>8},a===(a|0)?i.x=a:l+=a;for(var u=0;u>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(typeof u=="object"&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xor128=s})(eN,typeof Rw=="object"&&Rw,typeof define=="function"&&define)});var oN=dt((rN,Fw)=>{(function(r,e,t){function o(a){var i=this,l="";i.next=function(){var c=i.x^i.x>>>2;return i.x=i.y,i.y=i.z,i.z=i.w,i.w=i.v,(i.d=i.d+362437|0)+(i.v=i.v^i.v<<4^(c^c<<1))|0},i.x=0,i.y=0,i.z=0,i.w=0,i.v=0,a===(a|0)?i.x=a:l+=a;for(var u=0;u>>4),i.next()}function n(a,i){return i.x=a.x,i.y=a.y,i.z=a.z,i.w=a.w,i.v=a.v,i.d=a.d,i}function s(a,i){var l=new o(a),u=i&&i.state,c=function(){return(l.next()>>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(typeof u=="object"&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xorwow=s})(rN,typeof Fw=="object"&&Fw,typeof define=="function"&&define)});var sN=dt((nN,Ow)=>{(function(r,e,t){function o(a){var i=this;i.next=function(){var u=i.x,c=i.i,p,m,f;return p=u[c],p^=p>>>7,m=p^p<<24,p=u[c+1&7],m^=p^p>>>10,p=u[c+3&7],m^=p^p>>>3,p=u[c+4&7],m^=p^p<<7,p=u[c+7&7],p=p^p<<13,m^=p^p<<9,u[c]=m,i.i=c+1&7,m};function l(u,c){var p,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,p=0;p0;--p)u.next()}l(i,a)}function n(a,i){return i.x=a.x.slice(),i.i=a.i,i}function s(a,i){a==null&&(a=+new Date);var l=new o(a),u=i&&i.state,c=function(){return(l.next()>>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(u.x&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xorshift7=s})(nN,typeof Ow=="object"&&Ow,typeof define=="function"&&define)});var aN=dt((iN,Pw)=>{(function(r,e,t){function o(a){var i=this;i.next=function(){var u=i.w,c=i.X,p=i.i,m,f;return i.w=u=u+1640531527|0,f=c[p+34&127],m=c[p=p+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[p]=f^m,i.i=p,f+(u^u>>>16)|0};function l(u,c){var p,m,f,d,h,g=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,d=-32;d>>15,m^=m<<4,m^=m>>>13,d>=0&&(h=h+1640531527|0,p=g[d&127]^=m+h,f=p==0?f+1:0);for(f>=128&&(g[(c&&c.length||0)&127]=-1),f=127,d=4*128;d>0;--d)m=g[f+34&127],p=g[f=f+1&127],m^=m<<13,p^=p<<17,m^=m>>>15,p^=p>>>12,g[f]=m^p;u.w=h,u.X=g,u.i=f}l(i,a)}function n(a,i){return i.i=a.i,i.w=a.w,i.X=a.X.slice(),i}function s(a,i){a==null&&(a=+new Date);var l=new o(a),u=i&&i.state,c=function(){return(l.next()>>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(u.X&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xor4096=s})(iN,typeof Pw=="object"&&Pw,typeof define=="function"&&define)});var uN=dt((lN,Mw)=>{(function(r,e,t){function o(a){var i=this,l="";i.next=function(){var c=i.b,p=i.c,m=i.d,f=i.a;return c=c<<25^c>>>7^p,p=p-m|0,m=m<<24^m>>>8^f,f=f-c|0,i.b=c=c<<20^c>>>12^p,i.c=p=p-m|0,i.d=m<<16^p>>>16^f,i.a=f-c|0},i.a=0,i.b=0,i.c=2654435769|0,i.d=1367130551,a===Math.floor(a)?(i.a=a/4294967296|0,i.b=a|0):l+=a;for(var u=0;u>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(typeof u=="object"&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.tychei=s})(lN,typeof Mw=="object"&&Mw,typeof define=="function"&&define)});var ng=dt(()=>{});var cN=dt((Fye,sg)=>{(function(r,e){var t=this,o=256,n=6,s=52,a="random",i=e.pow(o,n),l=e.pow(2,s),u=l*2,c=o-1,p;function m(b,_,k){var A=[];_=_==!0?{entropy:!0}:_||{};var N=g(h(_.entropy?[b,w(r)]:b==null?x():b,3),A),$=new f(A),F=function(){for(var M=$.g(n),V=i,W=0;M=u;)M/=2,V/=2,W>>>=1;return(M+W)/V};return F.int32=function(){return $.g(4)|0},F.quick=function(){return $.g(4)/4294967296},F.double=F,g(w($.S),r),(_.pass||k||function(M,V,W,U){return U&&(U.S&&d(U,$),M.state=function(){return d($,{})}),W?(e[a]=M,V):M})(F,N,"global"in _?_.global:this==e,_.state)}e["seed"+a]=m;function f(b){var _,k=b.length,A=this,N=0,$=A.i=A.j=0,F=A.S=[];for(k||(b=[k++]);N{var X4=QI(),Y4=tN(),Z4=oN(),J4=sN(),Q4=aN(),eU=uN(),$u=cN();$u.alea=X4;$u.xor128=Y4;$u.xorwow=Z4;$u.xorshift7=J4;$u.xor4096=Q4;$u.tychei=eU;pN.exports=$u});var TA=dt((SA,Ak)=>{(function(r,e,t){function o(i){var l=this,u=a();l.next=function(){var c=2091639*l.s0+l.c*23283064365386963e-26;return l.s0=l.s1,l.s1=l.s2,l.s2=c-(l.c=c|0)},l.c=1,l.s0=u(" "),l.s1=u(" "),l.s2=u(" "),l.s0-=u(i),l.s0<0&&(l.s0+=1),l.s1-=u(i),l.s1<0&&(l.s1+=1),l.s2-=u(i),l.s2<0&&(l.s2+=1),u=null}function n(i,l){return l.c=i.c,l.s0=i.s0,l.s1=i.s1,l.s2=i.s2,l}function s(i,l){var u=new o(i),c=l&&l.state,p=u.next;return p.int32=function(){return u.next()*4294967296|0},p.double=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.quick=p,c&&(typeof c=="object"&&n(c,u),p.state=function(){return n(u,{})}),p}function a(){var i=4022871197,l=function(u){u=u.toString();for(var c=0;c>>0,p-=i,p*=i,i=p>>>0,p-=i,i+=p*4294967296}return(i>>>0)*23283064365386963e-26};return l}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.alea=s})(SA,typeof Ak=="object"&&Ak,typeof define=="function"&&define)});var EA=dt((AA,Ek)=>{(function(r,e,t){function o(a){var i=this,l="";i.x=0,i.y=0,i.z=0,i.w=0,i.next=function(){var c=i.x^i.x<<11;return i.x=i.y,i.y=i.z,i.z=i.w,i.w^=i.w>>>19^c^c>>>8},a===(a|0)?i.x=a:l+=a;for(var u=0;u>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(typeof u=="object"&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xor128=s})(AA,typeof Ek=="object"&&Ek,typeof define=="function"&&define)});var $A=dt((DA,Dk)=>{(function(r,e,t){function o(a){var i=this,l="";i.next=function(){var c=i.x^i.x>>>2;return i.x=i.y,i.y=i.z,i.z=i.w,i.w=i.v,(i.d=i.d+362437|0)+(i.v=i.v^i.v<<4^(c^c<<1))|0},i.x=0,i.y=0,i.z=0,i.w=0,i.v=0,a===(a|0)?i.x=a:l+=a;for(var u=0;u>>4),i.next()}function n(a,i){return i.x=a.x,i.y=a.y,i.z=a.z,i.w=a.w,i.v=a.v,i.d=a.d,i}function s(a,i){var l=new o(a),u=i&&i.state,c=function(){return(l.next()>>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(typeof u=="object"&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xorwow=s})(DA,typeof Dk=="object"&&Dk,typeof define=="function"&&define)});var FA=dt((RA,$k)=>{(function(r,e,t){function o(a){var i=this;i.next=function(){var u=i.x,c=i.i,p,m,f;return p=u[c],p^=p>>>7,m=p^p<<24,p=u[c+1&7],m^=p^p>>>10,p=u[c+3&7],m^=p^p>>>3,p=u[c+4&7],m^=p^p<<7,p=u[c+7&7],p=p^p<<13,m^=p^p<<9,u[c]=m,i.i=c+1&7,m};function l(u,c){var p,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,p=0;p0;--p)u.next()}l(i,a)}function n(a,i){return i.x=a.x.slice(),i.i=a.i,i}function s(a,i){a==null&&(a=+new Date);var l=new o(a),u=i&&i.state,c=function(){return(l.next()>>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(u.x&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xorshift7=s})(RA,typeof $k=="object"&&$k,typeof define=="function"&&define)});var PA=dt((OA,Rk)=>{(function(r,e,t){function o(a){var i=this;i.next=function(){var u=i.w,c=i.X,p=i.i,m,f;return i.w=u=u+1640531527|0,f=c[p+34&127],m=c[p=p+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[p]=f^m,i.i=p,f+(u^u>>>16)|0};function l(u,c){var p,m,f,d,h,g=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,d=-32;d>>15,m^=m<<4,m^=m>>>13,d>=0&&(h=h+1640531527|0,p=g[d&127]^=m+h,f=p==0?f+1:0);for(f>=128&&(g[(c&&c.length||0)&127]=-1),f=127,d=4*128;d>0;--d)m=g[f+34&127],p=g[f=f+1&127],m^=m<<13,p^=p<<17,m^=m>>>15,p^=p>>>12,g[f]=m^p;u.w=h,u.X=g,u.i=f}l(i,a)}function n(a,i){return i.i=a.i,i.w=a.w,i.X=a.X.slice(),i}function s(a,i){a==null&&(a=+new Date);var l=new o(a),u=i&&i.state,c=function(){return(l.next()>>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(u.X&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xor4096=s})(OA,typeof Rk=="object"&&Rk,typeof define=="function"&&define)});var LA=dt((MA,Fk)=>{(function(r,e,t){function o(a){var i=this,l="";i.next=function(){var c=i.b,p=i.c,m=i.d,f=i.a;return c=c<<25^c>>>7^p,p=p-m|0,m=m<<24^m>>>8^f,f=f-c|0,i.b=c=c<<20^c>>>12^p,i.c=p=p-m|0,i.d=m<<16^p>>>16^f,i.a=f-c|0},i.a=0,i.b=0,i.c=2654435769|0,i.d=1367130551,a===Math.floor(a)?(i.a=a/4294967296|0,i.b=a|0):l+=a;for(var u=0;u>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(typeof u=="object"&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.tychei=s})(MA,typeof Fk=="object"&&Fk,typeof define=="function"&&define)});var zA=dt((CJe,dx)=>{(function(r,e){var t=(0,eval)("this"),o=256,n=6,s=52,a="random",i=e.pow(o,n),l=e.pow(2,s),u=l*2,c=o-1,p;function m(b,_,k){var A=[];_=_==!0?{entropy:!0}:_||{};var N=g(h(_.entropy?[b,w(r)]:b==null?x():b,3),A),$=new f(A),F=function(){for(var M=$.g(n),V=i,W=0;M=u;)M/=2,V/=2,W>>>=1;return(M+W)/V};return F.int32=function(){return $.g(4)|0},F.quick=function(){return $.g(4)/4294967296},F.double=F,g(w($.S),r),(_.pass||k||function(M,V,W,U){return U&&(U.S&&d(U,$),M.state=function(){return d($,{})}),W?(e[a]=M,V):M})(F,N,"global"in _?_.global:this==e,_.state)}e["seed"+a]=m;function f(b){var _,k=b.length,A=this,N=0,$=A.i=A.j=0,F=A.S=[];for(k||(b=[k++]);N{var d5=TA(),h5=EA(),g5=$A(),x5=FA(),y5=PA(),b5=LA(),oc=zA();oc.alea=d5;oc.xor128=h5;oc.xorwow=g5;oc.xorshift7=x5;oc.xor4096=y5;oc.tychei=b5;BA.exports=oc});var dE=dt(()=>{});var HD=dt((jD,pv)=>{(function(r,e,t){function o(i){var l=this,u=a();l.next=function(){var c=2091639*l.s0+l.c*23283064365386963e-26;return l.s0=l.s1,l.s1=l.s2,l.s2=c-(l.c=c|0)},l.c=1,l.s0=u(" "),l.s1=u(" "),l.s2=u(" "),l.s0-=u(i),l.s0<0&&(l.s0+=1),l.s1-=u(i),l.s1<0&&(l.s1+=1),l.s2-=u(i),l.s2<0&&(l.s2+=1),u=null}function n(i,l){return l.c=i.c,l.s0=i.s0,l.s1=i.s1,l.s2=i.s2,l}function s(i,l){var u=new o(i),c=l&&l.state,p=u.next;return p.int32=function(){return u.next()*4294967296|0},p.double=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.quick=p,c&&(typeof c=="object"&&n(c,u),p.state=function(){return n(u,{})}),p}function a(){var i=4022871197,l=function(u){u=u.toString();for(var c=0;c>>0,p-=i,p*=i,i=p>>>0,p-=i,i+=p*4294967296}return(i>>>0)*23283064365386963e-26};return l}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.alea=s})(jD,typeof pv=="object"&&pv,typeof define=="function"&&define)});var KD=dt((qD,mv)=>{(function(r,e,t){function o(a){var i=this,l="";i.x=0,i.y=0,i.z=0,i.w=0,i.next=function(){var c=i.x^i.x<<11;return i.x=i.y,i.y=i.z,i.z=i.w,i.w^=i.w>>>19^c^c>>>8},a===(a|0)?i.x=a:l+=a;for(var u=0;u>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(typeof u=="object"&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xor128=s})(qD,typeof mv=="object"&&mv,typeof define=="function"&&define)});var YD=dt((XD,fv)=>{(function(r,e,t){function o(a){var i=this,l="";i.next=function(){var c=i.x^i.x>>>2;return i.x=i.y,i.y=i.z,i.z=i.w,i.w=i.v,(i.d=i.d+362437|0)+(i.v=i.v^i.v<<4^(c^c<<1))|0},i.x=0,i.y=0,i.z=0,i.w=0,i.v=0,a===(a|0)?i.x=a:l+=a;for(var u=0;u>>4),i.next()}function n(a,i){return i.x=a.x,i.y=a.y,i.z=a.z,i.w=a.w,i.v=a.v,i.d=a.d,i}function s(a,i){var l=new o(a),u=i&&i.state,c=function(){return(l.next()>>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(typeof u=="object"&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xorwow=s})(XD,typeof fv=="object"&&fv,typeof define=="function"&&define)});var JD=dt((ZD,dv)=>{(function(r,e,t){function o(a){var i=this;i.next=function(){var u=i.x,c=i.i,p,m,f;return p=u[c],p^=p>>>7,m=p^p<<24,p=u[c+1&7],m^=p^p>>>10,p=u[c+3&7],m^=p^p>>>3,p=u[c+4&7],m^=p^p<<7,p=u[c+7&7],p=p^p<<13,m^=p^p<<9,u[c]=m,i.i=c+1&7,m};function l(u,c){var p,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,p=0;p0;--p)u.next()}l(i,a)}function n(a,i){return i.x=a.x.slice(),i.i=a.i,i}function s(a,i){a==null&&(a=+new Date);var l=new o(a),u=i&&i.state,c=function(){return(l.next()>>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(u.x&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xorshift7=s})(ZD,typeof dv=="object"&&dv,typeof define=="function"&&define)});var e$=dt((QD,hv)=>{(function(r,e,t){function o(a){var i=this;i.next=function(){var u=i.w,c=i.X,p=i.i,m,f;return i.w=u=u+1640531527|0,f=c[p+34&127],m=c[p=p+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[p]=f^m,i.i=p,f+(u^u>>>16)|0};function l(u,c){var p,m,f,d,h,g=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,d=-32;d>>15,m^=m<<4,m^=m>>>13,d>=0&&(h=h+1640531527|0,p=g[d&127]^=m+h,f=p==0?f+1:0);for(f>=128&&(g[(c&&c.length||0)&127]=-1),f=127,d=4*128;d>0;--d)m=g[f+34&127],p=g[f=f+1&127],m^=m<<13,p^=p<<17,m^=m>>>15,p^=p>>>12,g[f]=m^p;u.w=h,u.X=g,u.i=f}l(i,a)}function n(a,i){return i.i=a.i,i.w=a.w,i.X=a.X.slice(),i}function s(a,i){a==null&&(a=+new Date);var l=new o(a),u=i&&i.state,c=function(){return(l.next()>>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(u.X&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xor4096=s})(QD,typeof hv=="object"&&hv,typeof define=="function"&&define)});var r$=dt((t$,gv)=>{(function(r,e,t){function o(a){var i=this,l="";i.next=function(){var c=i.b,p=i.c,m=i.d,f=i.a;return c=c<<25^c>>>7^p,p=p-m|0,m=m<<24^m>>>8^f,f=f-c|0,i.b=c=c<<20^c>>>12^p,i.c=p=p-m|0,i.d=m<<16^p>>>16^f,i.a=f-c|0},i.a=0,i.b=0,i.c=2654435769|0,i.d=1367130551,a===Math.floor(a)?(i.a=a/4294967296|0,i.b=a|0):l+=a;for(var u=0;u>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(typeof u=="object"&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.tychei=s})(t$,typeof gv=="object"&&gv,typeof define=="function"&&define)});var o$=dt((Alt,Nx)=>{(function(r,e){var t=this,o=256,n=6,s=52,a="random",i=e.pow(o,n),l=e.pow(2,s),u=l*2,c=o-1,p;function m(b,_,k){var A=[];_=_==!0?{entropy:!0}:_||{};var N=g(h(_.entropy?[b,w(r)]:b==null?x():b,3),A),$=new f(A),F=function(){for(var M=$.g(n),V=i,W=0;M=u;)M/=2,V/=2,W>>>=1;return(M+W)/V};return F.int32=function(){return $.g(4)|0},F.quick=function(){return $.g(4)/4294967296},F.double=F,g(w($.S),r),(_.pass||k||function(M,V,W,U){return U&&(U.S&&d(U,$),M.state=function(){return d($,{})}),W?(e[a]=M,V):M})(F,N,"global"in _?_.global:this==e,_.state)}e["seed"+a]=m;function f(b){var _,k=b.length,A=this,N=0,$=A.i=A.j=0,F=A.S=[];for(k||(b=[k++]);N{var w8=HD(),_8=KD(),k8=YD(),v8=JD(),C8=e$(),I8=r$(),sc=o$();sc.alea=w8;sc.xor128=_8;sc.xorwow=k8;sc.xorshift7=v8;sc.xor4096=C8;sc.tychei=I8;n$.exports=sc});var Jp=dt(()=>{});var hB=dt(()=>{});var gB=dt(()=>{});var xB=dt((Zx,x0)=>{var y0=function(){var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(e){e=e||{};function t(){return J.buffer!=Ue&&or(J.buffer),ut}function o(){return J.buffer!=Ue&&or(J.buffer),mt}function n(){return J.buffer!=Ue&&or(J.buffer),Xt}function s(){return J.buffer!=Ue&&or(J.buffer),to}function a(){return J.buffer!=Ue&&or(J.buffer),Uo}var i=typeof e!="undefined"?e:{},l,u;i.ready=new Promise(function(I,R){l=I,u=R});var c={},p;for(p in i)i.hasOwnProperty(p)&&(c[p]=i[p]);var m=[],f="./this.program",d=function(I,R){throw R},h=!1,g=!1,x=!1,w=!1;h=typeof window=="object",g=typeof importScripts=="function",x=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",w=!h&&!x&&!g;var b=i.ENVIRONMENT_IS_PTHREAD||!1;b&&(Ue=i.buffer);var _="";function k(I){return i.locateFile?i.locateFile(I,_):_+I}var A,N,$,F,M,V;if(x){g?_=Jp().dirname(_)+"/":_=__dirname+"/",A=function(R,B){return M||(M=require("fs")),V||(V=Jp()),R=V.normalize(R),M.readFileSync(R,B?null:"utf8")},$=function(R){var B=A(R,!0);return B.buffer||(B=new Uint8Array(B)),fe(B.buffer),B},process.argv.length>1&&(f=process.argv[1].replace(/\\/g,"/")),m=process.argv.slice(2),process.on("uncaughtException",function(I){if(!(I instanceof lm))throw I}),process.on("unhandledRejection",Zi),d=function(I){process.exit(I)},i.inspect=function(){return"[Emscripten Module object]"};var W;try{W=hB()}catch(I){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),I}global.Worker=W.Worker}else w?(typeof read!="undefined"&&(A=function(R){return read(R)}),$=function(R){var B;return typeof readbuffer=="function"?new Uint8Array(readbuffer(R)):(B=read(R,"binary"),fe(typeof B=="object"),B)},typeof scriptArgs!="undefined"?m=scriptArgs:typeof arguments!="undefined"&&(m=arguments),typeof quit=="function"&&(d=function(I){quit(I)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(h||g)&&(g?_=self.location.href:typeof document!="undefined"&&document.currentScript&&(_=document.currentScript.src),typeof r!="undefined"&&r&&(_=r),_.indexOf("blob:")!==0?_=_.substr(0,_.lastIndexOf("/")+1):_="",x?(A=function(R,B){return M||(M=require("fs")),V||(V=Jp()),R=V.normalize(R),M.readFileSync(R,B?null:"utf8")},$=function(R){var B=A(R,!0);return B.buffer||(B=new Uint8Array(B)),fe(B.buffer),B}):(A=function(I){var R=new XMLHttpRequest;return R.open("GET",I,!1),R.send(null),R.responseText},g&&($=function(I){var R=new XMLHttpRequest;return R.open("GET",I,!1),R.responseType="arraybuffer",R.send(null),new Uint8Array(R.response)}),N=function(I,R,B){var K=new XMLHttpRequest;K.open("GET",I,!0),K.responseType="arraybuffer",K.onload=function(){if(K.status==200||K.status==0&&K.response){R(K.response);return}B()},K.onerror=B,K.send(null)}),F=function(I){document.title=I});x&&typeof performance=="undefined"&&(global.performance=gB().performance);var U=i.print||console.log.bind(console),H=i.printErr||console.warn.bind(console);for(p in c)c.hasOwnProperty(p)&&(i[p]=c[p]);c=null,i.arguments&&(m=i.arguments),i.thisProgram&&(f=i.thisProgram),i.quit&&(d=i.quit);var q=Atomics.load,X=Atomics.store,oe=Atomics.compareExchange,Y;i.wasmBinary&&(Y=i.wasmBinary);var re=i.noExitRuntime||!0;typeof WebAssembly!="object"&&Zi("no native wasm support detected");var J,ie,ue=!1,ae;function fe(I,R){I||Zi("Assertion failed: "+R)}function de(I){var R=i["_"+I];return fe(R,"Cannot call unknown function "+I+", make sure it is exported"),R}function xe(I,R,B,K,be){var he={string:function(Wr){var Tc=0;if(Wr!=null&&Wr!==0){var F0=(Wr.length<<2)+1;Tc=Ic(F0),qe(Wr,Tc,F0)}return Tc},array:function(Wr){var Tc=Ic(Wr.length);return At(Wr,Tc),Tc}};function ye(Wr){return R==="string"?Ie(Wr):R==="boolean"?Boolean(Wr):Wr}var Se=de(I),_t=[],wr=0;if(K)for(var fr=0;fr=K);){var he=I[R++];if(!he)return be;if(!(he&128)){be+=String.fromCharCode(he);continue}var ye=I[R++]&63;if((he&224)==192){be+=String.fromCharCode((he&31)<<6|ye);continue}var Se=I[R++]&63;if((he&240)==224?he=(he&15)<<12|ye<<6|Se:he=(he&7)<<18|ye<<12|Se<<6|I[R++]&63,he<65536)be+=String.fromCharCode(he);else{var _t=he-65536;be+=String.fromCharCode(55296|_t>>10,56320|_t&1023)}}return be}function Ie(I,R){return I?De(o(),I,R):""}function ze(I,R,B,K){if(!(K>0))return 0;for(var be=B,he=B+K-1,ye=0;ye=55296&&Se<=57343){var _t=I.charCodeAt(++ye);Se=65536+((Se&1023)<<10)|_t&1023}if(Se<=127){if(B>=he)break;R[B++]=Se}else if(Se<=2047){if(B+1>=he)break;R[B++]=192|Se>>6,R[B++]=128|Se&63}else if(Se<=65535){if(B+2>=he)break;R[B++]=224|Se>>12,R[B++]=128|Se>>6&63,R[B++]=128|Se&63}else{if(B+3>=he)break;R[B++]=240|Se>>18,R[B++]=128|Se>>12&63,R[B++]=128|Se>>6&63,R[B++]=128|Se&63}}return R[B]=0,B-be}function qe(I,R,B){return ze(I,o(),R,B)}function it(I){for(var R=0,B=0;B=55296&&K<=57343&&(K=65536+((K&1023)<<10)|I.charCodeAt(++B)&1023),K<=127?++R:K<=2047?R+=2:K<=65535?R+=3:R+=4}return R}function At(I,R){t().set(I,R)}function Et(I,R){return I%R>0&&(I+=R-I%R),I}var Ue,ut,mt,Mt,xo,Xt,to,$r,Uo;function or(I){Ue=I,i.HEAP8=ut=new Int8Array(I),i.HEAP16=Mt=new Int16Array(I),i.HEAP32=Xt=new Int32Array(I),i.HEAPU8=mt=new Uint8Array(I),i.HEAPU16=xo=new Uint16Array(I),i.HEAPU32=to=new Uint32Array(I),i.HEAPF32=$r=new Float32Array(I),i.HEAPF64=Uo=new Float64Array(I)}var yo=i.INITIAL_MEMORY||16777216;if(b)J=i.wasmMemory,Ue=i.buffer;else if(i.wasmMemory)J=i.wasmMemory;else if(J=new WebAssembly.Memory({initial:yo/65536,maximum:2147483648/65536,shared:!0}),!(J.buffer instanceof SharedArrayBuffer))throw H("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"),x&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");J&&(Ue=J.buffer),yo=Ue.byteLength,or(Ue);var Gr,br=[],ro=[],Ao=[],Dl=[],Wa=[],ns=!1,Xi=!1;b||ro.push({func:function(){Th()}}),b&&(ns=!0);function Qp(){if(!b){if(i.preRun)for(typeof i.preRun=="function"&&(i.preRun=[i.preRun]);i.preRun.length;)hh(i.preRun.shift());bc(br)}}function xc(){ns=!0,bc(ro)}function ty(){b||bc(Ao)}function dh(){b||(Xi=!0)}function oo(){if(!b){if(i.postRun)for(typeof i.postRun=="function"&&(i.postRun=[i.postRun]);i.postRun.length;)ry(i.postRun.shift());bc(Wa)}}function hh(I){br.unshift(I)}function ry(I){Wa.unshift(I)}var Yi=0,Ua=null,$l=null;function oy(I){fe(!b,"addRunDependency cannot be used in a pthread worker"),Yi++,i.monitorRunDependencies&&i.monitorRunDependencies(Yi)}function ny(I){if(Yi--,i.monitorRunDependencies&&i.monitorRunDependencies(Yi),Yi==0&&(Ua!==null&&(clearInterval(Ua),Ua=null),$l)){var R=$l;$l=null,R()}}i.preloadedImages={},i.preloadedAudios={};function Zi(I){i.onAbort&&i.onAbort(I),b&&console.error("Pthread aborting at "+new Error().stack),I+="",H(I),ue=!0,ae=1,I="abort("+I+"). Build with -s ASSERTIONS=1 for more info.";var R=new WebAssembly.RuntimeError(I);throw u(R),R}function gh(I,R){return String.prototype.startsWith?I.startsWith(R):I.indexOf(R)===0}var yc="data:application/octet-stream;base64,";function xh(I){return gh(I,yc)}var sy="file://";function yh(I){return gh(I,sy)}var no="tfjs-backend-wasm-threaded-simd.wasm";xh(no)||(no=k(no));function iy(I){try{if(I==no&&Y)return new Uint8Array(Y);if($)return $(I);throw"both async and sync fetching of the wasm failed"}catch(R){Zi(R)}}function bh(){if(!Y&&(h||g)){if(typeof fetch=="function"&&!yh(no))return fetch(no,{credentials:"same-origin"}).then(function(I){if(!I.ok)throw"failed to load wasm binary file at '"+no+"'";return I.arrayBuffer()}).catch(function(){return iy(no)});if(N)return new Promise(function(I,R){N(no,function(B){I(new Uint8Array(B))},R)})}return Promise.resolve().then(function(){return iy(no)})}function ay(){var I={a:Zy};function R(ye,Se){var _t=ye.exports;if(i.asm=_t,Gr=i.asm.F,ie=Se,!b){var wr=Ee.unusedWorkers.length;Ee.unusedWorkers.forEach(function(fr){Ee.loadWasmModuleToWorker(fr,function(){--wr||ny("wasm-instantiate")})})}}b||oy("wasm-instantiate");function B(ye){R(ye.instance,ye.module)}function K(ye){return bh().then(function(Se){return WebAssembly.instantiate(Se,I)}).then(ye,function(Se){H("failed to asynchronously prepare wasm: "+Se),Zi(Se)})}function be(){return!Y&&typeof WebAssembly.instantiateStreaming=="function"&&!xh(no)&&!yh(no)&&typeof fetch=="function"?fetch(no,{credentials:"same-origin"}).then(function(ye){var Se=WebAssembly.instantiateStreaming(ye,I);return Se.then(B,function(_t){return H("wasm streaming compile failed: "+_t),H("falling back to ArrayBuffer instantiation"),K(B)})}):K(B)}if(i.instantiateWasm)try{var he=i.instantiateWasm(I,R);return he}catch(ye){return H("Module.instantiateWasm callback failed with error: "+ye),!1}return be().catch(u),{}}var wh={8991:function(I,R){setTimeout(function(){T0(I,R)},0)}};function ly(){Ee.initRuntime()}function bc(I){for(;I.length>0;){var R=I.shift();if(typeof R=="function"){R(i);continue}var B=R.func;typeof B=="number"?R.arg===void 0?Gr.get(B)():Gr.get(B)(R.arg):B(R.arg===void 0?null:R.arg)}}function wc(I,R){if(I<=0||I>t().length||I&!0||R<0)return-28;if(R==0)return 0;R>=2147483647&&(R=Infinity);var B=Atomics.load(n(),Nc>>2),K=0;if(B==I){var be=Atomics.compareExchange(n(),Nc>>2,B,0);if(be==B&&(--R,K=1,R<=0))return 1}var he=Atomics.notify(n(),I>>2,R);if(he>=0)return he+K;throw"Atomics.notify returned an unexpected value "+he}i._emscripten_futex_wake=wc;function uy(I){if(b)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!I)throw"Internal Error! Null pthread_ptr in killThread!";n()[I+12>>2]=0;var R=Ee.pthreads[I];R.worker.terminate(),Ee.freeThreadData(R),Ee.runningWorkers.splice(Ee.runningWorkers.indexOf(R.worker),1),R.worker.pthread=void 0}function cy(I){if(b)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!I)throw"Internal Error! Null pthread_ptr in cancelThread!";var R=Ee.pthreads[I];R.worker.postMessage({cmd:"cancel"})}function py(I){if(b)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!I)throw"Internal Error! Null pthread_ptr in cleanupThread!";n()[I+12>>2]=0;var R=Ee.pthreads[I];if(R){var B=R.worker;Ee.returnWorkerToPool(B)}}var Ee={unusedWorkers:[],runningWorkers:[],initMainThreadBlock:function(){for(var I=8,R=0;R>2]=I;var B=I+152;n()[B>>2]=B;for(var K=Fl(512),R=0;R<128;++R)s()[K/4+R]=0;Atomics.store(s(),I+100>>2,K),Atomics.store(s(),I+40>>2,I),Rh(I,!g,1),S0(I)},initWorker:function(){},pthreads:{},threadExitHandlers:[],setThreadStatus:function(){},runExitHandlers:function(){for(;Ee.threadExitHandlers.length>0;)Ee.threadExitHandlers.pop()();b&&vc()&&N0()},threadExit:function(I){var R=vc();R&&(Atomics.store(s(),R+4>>2,I),Atomics.store(s(),R+0>>2,1),Atomics.store(s(),R+56>>2,1),Atomics.store(s(),R+60>>2,0),Ee.runExitHandlers(),wc(R+0,2147483647),Rh(0,0,0),b&&postMessage({cmd:"exit"}))},threadCancel:function(){Ee.runExitHandlers();var I=vc();Atomics.store(s(),I+4>>2,-1),Atomics.store(s(),I+0>>2,1),wc(I+0,2147483647),Rh(0,0,0),postMessage({cmd:"cancelDone"})},terminateAllThreads:function(){for(var I in Ee.pthreads){var R=Ee.pthreads[I];R&&R.worker&&Ee.returnWorkerToPool(R.worker)}Ee.pthreads={};for(var B=0;B>2];n()[I.threadInfoStruct+100>>2]=0,im(R),im(I.threadInfoStruct)}I.threadInfoStruct=0,I.allocatedOwnStack&&I.stackBase&&im(I.stackBase),I.stackBase=0,I.worker&&(I.worker.pthread=null)}},returnWorkerToPool:function(I){Ee.runWithoutMainThreadQueuedCalls(function(){delete Ee.pthreads[I.pthread.threadInfoStruct],Ee.unusedWorkers.push(I),Ee.runningWorkers.splice(Ee.runningWorkers.indexOf(I),1),Ee.freeThreadData(I.pthread),I.pthread=void 0})},runWithoutMainThreadQueuedCalls:function(I){n()[R0>>2]=0;try{I()}finally{n()[R0>>2]=1}},receiveObjectTransfer:function(I){},loadWasmModuleToWorker:function(I,R){I.onmessage=function(B){var K=B.data,be=K.cmd;if(I.pthread&&(Ee.currentProxiedOperationCallerThread=I.pthread.threadInfoStruct),K.targetThread&&K.targetThread!=vc()){var he=Ee.pthreads[K.targetThread];he?he.worker.postMessage(B.data,K.transferList):console.error('Internal error! Worker sent a message "'+be+'" to target pthread '+K.targetThread+", but that thread no longer exists!"),Ee.currentProxiedOperationCallerThread=void 0;return}if(be==="processQueuedMainThreadWork")mb();else if(be==="spawnThread")Nh(B.data);else if(be==="cleanupThread")py(K.thread);else if(be==="killThread")uy(K.thread);else if(be==="cancelThread")cy(K.thread);else if(be==="loaded")I.loaded=!0,R&&R(I),I.runPthread&&(I.runPthread(),delete I.runPthread);else if(be==="print")U("Thread "+K.threadId+": "+K.text);else if(be==="printErr")H("Thread "+K.threadId+": "+K.text);else if(be==="alert")alert("Thread "+K.threadId+": "+K.text);else if(be==="exit"){var ye=I.pthread&&Atomics.load(s(),I.pthread.threadInfoStruct+64>>2);ye&&Ee.returnWorkerToPool(I)}else if(be==="exitProcess")try{d3(K.returnCode)}catch(Se){if(Se instanceof lm)return;throw Se}else be==="cancelDone"?Ee.returnWorkerToPool(I):be==="objectTransfer"?Ee.receiveObjectTransfer(B.data):B.data.target==="setimmediate"?I.postMessage(B.data):H("worker sent an unknown command "+be);Ee.currentProxiedOperationCallerThread=void 0},I.onerror=function(B){H("pthread sent an error! "+B.filename+":"+B.lineno+": "+B.message)},x&&(I.on("message",function(B){I.onmessage({data:B})}),I.on("error",function(B){I.onerror(B)}),I.on("exit",function(B){})),I.postMessage({cmd:"load",urlOrBlob:i.mainScriptUrlOrBlob||r,wasmMemory:J,wasmModule:ie})},allocateUnusedWorker:function(){var I=k("tfjs-backend-wasm-threaded-simd.worker.js");Ee.unusedWorkers.push(new Worker(I))},getNewWorker:function(){return Ee.unusedWorkers.length==0&&(Ee.allocateUnusedWorker(),Ee.loadWasmModuleToWorker(Ee.unusedWorkers[0])),Ee.unusedWorkers.length>0?Ee.unusedWorkers.pop():null},busySpinWait:function(I){for(var R=performance.now()+I;performance.now()>2]=I,I}function yy(I,R){if(b)return ja(1,1,I,R)}function by(I,R){if(I==R)postMessage({cmd:"processQueuedMainThreadWork"});else if(b)postMessage({targetThread:I,cmd:"processThreadQueue"});else{var B=Ee.pthreads[I],K=B&&B.worker;if(!K)return;K.postMessage({cmd:"processThreadQueue"})}return 1}function wy(){Zi()}function _y(I,R,B){var K=Ny(R,B);return wh[I].apply(null,K)}function ky(I,R){}function vy(I,R,B){if(I<=0||I>t().length||I&!0)return-28;if(h){if(Atomics.load(n(),I>>2)!=R)return-6;for(var be=performance.now(),he=be+B,ye=Atomics.exchange(n(),Nc>>2,I);;){if(be=performance.now(),be>he)return ye=Atomics.exchange(n(),Nc>>2,0),-73;if(ye=Atomics.exchange(n(),Nc>>2,0),ye==0)break;if(mb(),Atomics.load(n(),I>>2)!=R)return-6;ye=Atomics.exchange(n(),Nc>>2,I)}return 0}else{var K=Atomics.wait(n(),I>>2,R,B);if(K==="timed-out")return-73;if(K==="not-equal")return-6;if(K==="ok")return 0;throw"Atomics.wait returned an unexpected value "+K}}function Cy(I,R,B){o().copyWithin(I,R,R+B)}function Iy(){return x?require("os").cpus().length:navigator.hardwareConcurrency}function ja(I,R){for(var B=arguments.length-2,K=am(),be=B,he=Ic(be*8),ye=he>>3,Se=0;Se>=2;B=o()[I++];){var K=B<105;K&&R&1&&R++,tm.push(K?a()[R++>>1]:n()[R]),++R}return tm}function Sy(I,R,B){em.length=R;for(var K=B>>3,be=0;be>>16),or(J.buffer),1}catch(R){}}function Ey(I){var R=Ty();if(I<=R)return!1;var B=2147483648;if(I>B)return!1;for(var K=1;K<=4;K*=2){var be=R*(1+.2/K);be=Math.min(be,I+100663296);var he=Math.min(B,Et(Math.max(I,be),65536)),ye=Ay(he);if(ye)return!0}return!1}var Xe={inEventHandler:0,removeAllEventListeners:function(){for(var I=Xe.eventHandlers.length-1;I>=0;--I)Xe._removeHandler(I);Xe.eventHandlers=[],Xe.deferredCalls=[]},registerRemoveEventListeners:function(){Xe.removeEventListenersRegistered||(Dl.push(Xe.removeAllEventListeners),Xe.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(I,R,B){function K(ye,Se){if(ye.length!=Se.length)return!1;for(var _t in ye)if(ye[_t]!=Se[_t])return!1;return!0}for(var be in Xe.deferredCalls){var he=Xe.deferredCalls[be];if(he.targetFunction==I&&K(he.argsList,B))return}Xe.deferredCalls.push({targetFunction:I,precedence:R,argsList:B}),Xe.deferredCalls.sort(function(ye,Se){return ye.precedence>2]=B,n()[ye+4>>2]=K,n()[ye+8>>2]=be,fb(0,I,637534208,R,K,ye),Cc(he)},getTargetThreadForEventCallback:function(I){switch(I){case 1:return 0;case 2:return Ee.currentProxiedOperationCallerThread;default:return I}},getNodeNameForTarget:function(I){return I?I==window?"#window":I==screen?"#screen":I&&I.nodeName?I.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function Dy(I){var R=it(I)+1,B=Fl(R);return qe(I,B,R),B}function $y(I,R,B,K){var be=am(),he=Ic(12),ye=0;R&&(ye=Dy(R)),n()[he>>2]=ye,n()[he+4>>2]=B,n()[he+8>>2]=K,fb(0,I,657457152,0,ye,he),Cc(be)}function Ry(I,R,B,K){R=R?Ie(R):"",$y(I,R,B,K)}function Fy(I){return I>2?Ie(I):I}var Oy=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function Py(I){I=Fy(I);var R=Oy[I]||(typeof document!="undefined"?document.querySelector(I):void 0);return R}function rm(I){return Py(I)}function _h(I,R,B){var K=rm(I);if(!K)return-4;if(K.canvasSharedPtr&&(n()[K.canvasSharedPtr>>2]=R,n()[K.canvasSharedPtr+4>>2]=B),K.offscreenCanvas||!K.controlTransferredOffscreen){K.offscreenCanvas&&(K=K.offscreenCanvas);var be=!1;if(K.GLctxObject&&K.GLctxObject.GLctx){var he=K.GLctxObject.GLctx.getParameter(2978);be=he[0]===0&&he[1]===0&&he[2]===K.width&&he[3]===K.height}K.width=R,K.height=B,be&&K.GLctxObject.GLctx.viewport(0,0,R,B)}else if(K.canvasSharedPtr){var ye=n()[K.canvasSharedPtr+8>>2];return Ry(ye,I,R,B),1}else return-4;return 0}function kh(I,R,B){return b?ja(2,1,I,R,B):_h(I,R,B)}function My(I,R,B){var K=rm(I);return K?_h(I,R,B):kh(I,R,B)}function Ly(I){}function zy(I,R){}function By(I){var R=I.getExtension("ANGLE_instanced_arrays");if(R)return I.vertexAttribDivisor=function(B,K){R.vertexAttribDivisorANGLE(B,K)},I.drawArraysInstanced=function(B,K,be,he){R.drawArraysInstancedANGLE(B,K,be,he)},I.drawElementsInstanced=function(B,K,be,he,ye){R.drawElementsInstancedANGLE(B,K,be,he,ye)},1}function Vy(I){var R=I.getExtension("OES_vertex_array_object");if(R)return I.createVertexArray=function(){return R.createVertexArrayOES()},I.deleteVertexArray=function(B){R.deleteVertexArrayOES(B)},I.bindVertexArray=function(B){R.bindVertexArrayOES(B)},I.isVertexArray=function(B){return R.isVertexArrayOES(B)},1}function Gy(I){var R=I.getExtension("WEBGL_draw_buffers");if(R)return I.drawBuffers=function(B,K){R.drawBuffersWEBGL(B,K)},1}function Wy(I){return!!(I.multiDrawWebgl=I.getExtension("WEBGL_multi_draw"))}var ft={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,recordError:function(R){ft.lastError||(ft.lastError=R)},getNewId:function(I){for(var R=ft.counter++,B=I.length;B>2]:-1;be+=Ie(n()[B+he*4>>2],ye<0?void 0:ye)}return be},createContext:function(I,R){var B=I.getContext("webgl",R);if(!B)return 0;var K=ft.registerContext(B,R);return K},registerContext:function(I,R){var B=Fl(8);n()[B+4>>2]=vc();var K={handle:B,attributes:R,version:R.majorVersion,GLctx:I};return I.canvas&&(I.canvas.GLctxObject=K),ft.contexts[B]=K,(typeof R.enableExtensionsByDefault=="undefined"||R.enableExtensionsByDefault)&&ft.initExtensions(K),B},makeContextCurrent:function(I){return ft.currentContext=ft.contexts[I],i.ctx=Ha=ft.currentContext&&ft.currentContext.GLctx,!(I&&!Ha)},getContext:function(I){return ft.contexts[I]},deleteContext:function(I){ft.currentContext===ft.contexts[I]&&(ft.currentContext=null),typeof Xe=="object"&&Xe.removeAllHandlersOnTarget(ft.contexts[I].GLctx.canvas),ft.contexts[I]&&ft.contexts[I].GLctx.canvas&&(ft.contexts[I].GLctx.canvas.GLctxObject=void 0),im(ft.contexts[I].handle),ft.contexts[I]=null},initExtensions:function(I){if(I||(I=ft.currentContext),!I.initExtensionsDone){I.initExtensionsDone=!0;var R=I.GLctx;By(R),Vy(R),Gy(R),R.disjointTimerQueryExt=R.getExtension("EXT_disjoint_timer_query"),Wy(R);var B=R.getSupportedExtensions()||[];B.forEach(function(K){K.indexOf("lose_context")<0&&K.indexOf("debug")<0&&R.getExtension(K)})}},populateUniformTable:function(I){for(var R=ft.programs[I],B=ft.programInfos[I]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1},K=B.uniforms,be=Ha.getProgramParameter(R,35718),he=0;he>2,K=n()[B+(24>>2)],be={alpha:!!n()[B+(0>>2)],depth:!!n()[B+(4>>2)],stencil:!!n()[B+(8>>2)],antialias:!!n()[B+(12>>2)],premultipliedAlpha:!!n()[B+(16>>2)],preserveDrawingBuffer:!!n()[B+(20>>2)],powerPreference:Uy[K],failIfMajorPerformanceCaveat:!!n()[B+(28>>2)],majorVersion:n()[B+(32>>2)],minorVersion:n()[B+(36>>2)],enableExtensionsByDefault:n()[B+(40>>2)],explicitSwapControl:n()[B+(44>>2)],proxyContextToMainThread:n()[B+(48>>2)],renderViaOffscreenBackBuffer:n()[B+(52>>2)]},he=rm(I);if(!he||be.explicitSwapControl)return 0;var ye=ft.createContext(he,be);return ye}function Hy(I,R){return jy(I,R)}var _c={mappings:{},buffers:[null,[],[]],printChar:function(I,R){var B=_c.buffers[I];R===0||R===10?((I===1?U:H)(De(B,0)),B.length=0):B.push(R)},varargs:void 0,get:function(){_c.varargs+=4;var I=n()[_c.varargs-4>>2];return I},getStr:function(I){var R=Ie(I);return R},get64:function(I,R){return I}};function vh(I){return b?ja(3,1,I):0}function Ch(I,R,B,K,be){if(b)return ja(4,1,I,R,B,K,be)}function Ih(I,R,B,K){if(b)return ja(5,1,I,R,B,K);for(var be=0,he=0;he>2],Se=n()[R+(he*8+4)>>2],_t=0;_t>2]=be,0}function qy(I){var R=Ee.threadExitHandlers.pop();I&&R()}function Ky(I,R){Ee.threadExitHandlers.push(function(){Gr.get(I)(R)})}function Nh(I){if(b)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var R=Ee.getNewWorker();if(R.pthread!==void 0)throw"Internal error!";if(!I.pthread_ptr)throw"Internal error, no pthread ptr!";Ee.runningWorkers.push(R);for(var B=Fl(128*4),K=0;K<128;++K)n()[B+K*4>>2]=0;var be=I.stackBase+I.stackSize,he=Ee.pthreads[I.pthread_ptr]={worker:R,stackBase:I.stackBase,stackSize:I.stackSize,allocatedOwnStack:I.allocatedOwnStack,threadInfoStruct:I.pthread_ptr},ye=he.threadInfoStruct>>2;Atomics.store(s(),ye+(64>>2),I.detached),Atomics.store(s(),ye+(100>>2),B),Atomics.store(s(),ye+(40>>2),he.threadInfoStruct),Atomics.store(s(),ye+(80>>2),I.stackSize),Atomics.store(s(),ye+(76>>2),be),Atomics.store(s(),ye+(104>>2),I.stackSize),Atomics.store(s(),ye+(104+8>>2),be),Atomics.store(s(),ye+(104+12>>2),I.detached);var Se=I0(),_t=Se+40;Atomics.store(s(),ye+(172>>2),_t),R.pthread=he;var wr={cmd:"run",start_routine:I.startRoutine,arg:I.arg,threadInfoStruct:I.pthread_ptr,stackBase:I.stackBase,stackSize:I.stackSize};R.runPthread=function(){wr.time=performance.now(),R.postMessage(wr,I.transferList)},R.loaded&&(R.runPthread(),delete R.runPthread)}function Xy(I,R,B,K){if(typeof SharedArrayBuffer=="undefined")return H("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;if(!I)return H("pthread_create called with a null thread pointer!"),28;var be=[],he=0;if(b&&(be.length===0||he))return A0(687865856,I,R,B,K);if(he)return he;var ye=0,Se=0,_t=0;R&&R!=-1?(ye=n()[R>>2],ye+=81920,Se=n()[R+8>>2],_t=n()[R+12>>2]!==0):ye=2097152;var wr=Se==0;wr?Se=$0(16,ye):(Se-=ye,fe(Se>0));for(var fr=Fl(228),Ka=0;Ka<228>>2;++Ka)s()[(fr>>2)+Ka]=0;n()[I>>2]=fr,n()[fr+12>>2]=fr;var Sc=fr+152;n()[Sc>>2]=Sc;var Wr={stackBase:Se,stackSize:ye,allocatedOwnStack:wr,detached:_t,startRoutine:B,pthread_ptr:fr,arg:K,transferList:be};return b?(Wr.cmd="spawnThread",postMessage(Wr,be)):Nh(Wr),0}function Sh(I){if(b)return ja(6,1,I);switch(I){case 30:return 16384;case 85:var R=2147483648;return R/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return xy(28),-1}b||Ee.initMainThreadBlock();var Ha,Yy=[null,yy,kh,vh,Ch,Ih,Sh],Zy={e:hy,r:gy,x:by,b:wy,y:_y,j:ky,c:vy,d:wc,f:Rl,p:Cy,z:Iy,u:Sy,q:Ey,v:My,i:Ly,t:zy,w:Hy,m:vh,n:Ch,g:Ih,o:ly,a:J||i.wasmMemory,k:qy,l:Ky,h:Xy,s:Sh},v0=ay(),Th=i.___wasm_call_ctors=function(){return(Th=i.___wasm_call_ctors=i.asm.A).apply(null,arguments)},Jy=i._init=function(){return(Jy=i._init=i.asm.B).apply(null,arguments)},Qy=i._register_tensor=function(){return(Qy=i._register_tensor=i.asm.C).apply(null,arguments)},eb=i._dispose_data=function(){return(eb=i._dispose_data=i.asm.D).apply(null,arguments)},tb=i._dispose=function(){return(tb=i._dispose=i.asm.E).apply(null,arguments)},rb=i._Abs=function(){return(rb=i._Abs=i.asm.G).apply(null,arguments)},ob=i._Add=function(){return(ob=i._Add=i.asm.H).apply(null,arguments)},nb=i._AddN=function(){return(nb=i._AddN=i.asm.I).apply(null,arguments)},sb=i._ArgMax=function(){return(sb=i._ArgMax=i.asm.J).apply(null,arguments)},ib=i._AvgPool=function(){return(ib=i._AvgPool=i.asm.K).apply(null,arguments)},ab=i._BatchMatMul=function(){return(ab=i._BatchMatMul=i.asm.L).apply(null,arguments)},lb=i._Ceil=function(){return(lb=i._Ceil=i.asm.M).apply(null,arguments)},ub=i._ClipByValue=function(){return(ub=i._ClipByValue=i.asm.N).apply(null,arguments)},cb=i._Conv2D=function(){return(cb=i._Conv2D=i.asm.O).apply(null,arguments)},Ah=i._Conv2DBackpropInput=function(){return(Ah=i._Conv2DBackpropInput=i.asm.P).apply(null,arguments)},Eh=i._Cos=function(){return(Eh=i._Cos=i.asm.Q).apply(null,arguments)},om=i._CropAndResize=function(){return(om=i._CropAndResize=i.asm.R).apply(null,arguments)},kc=i._Cumsum=function(){return(kc=i._Cumsum=i.asm.S).apply(null,arguments)},pb=i._DepthToSpace=function(){return(pb=i._DepthToSpace=i.asm.T).apply(null,arguments)},nm=i._DepthwiseConv2dNative=function(){return(nm=i._DepthwiseConv2dNative=i.asm.U).apply(null,arguments)},Z=i._Equal=function(){return(Z=i._Equal=i.asm.V).apply(null,arguments)},se=i._Exp=function(){return(se=i._Exp=i.asm.W).apply(null,arguments)},ke=i._FlipLeftRight=function(){return(ke=i._FlipLeftRight=i.asm.X).apply(null,arguments)},at=i._Floor=function(){return(at=i._Floor=i.asm.Y).apply(null,arguments)},Yt=i._FloorDiv=function(){return(Yt=i._FloorDiv=i.asm.Z).apply(null,arguments)},Bt=i._FusedBatchNorm=function(){return(Bt=i._FusedBatchNorm=i.asm._).apply(null,arguments)},tt=i._FusedConv2D=function(){return(tt=i._FusedConv2D=i.asm.$).apply(null,arguments)},rt=i._FusedDepthwiseConv2D=function(){return(rt=i._FusedDepthwiseConv2D=i.asm.aa).apply(null,arguments)},vr=i._Gather=function(){return(vr=i._Gather=i.asm.ba).apply(null,arguments)},Ji=i._GatherNd=function(){return(Ji=i._GatherNd=i.asm.ca).apply(null,arguments)},Qi=i._Greater=function(){return(Qi=i._Greater=i.asm.da).apply(null,arguments)},Dh=i._GreaterEqual=function(){return(Dh=i._GreaterEqual=i.asm.ea).apply(null,arguments)},sm=i._LeakyRelu=function(){return(sm=i._LeakyRelu=i.asm.fa).apply(null,arguments)},bo=i._Less=function(){return(bo=i._Less=i.asm.ga).apply(null,arguments)},qa=i._LessEqual=function(){return(qa=i._LessEqual=i.asm.ha).apply(null,arguments)},$h=i._Log=function(){return($h=i._Log=i.asm.ia).apply(null,arguments)},vB=i._LogicalAnd=function(){return(vB=i._LogicalAnd=i.asm.ja).apply(null,arguments)},CB=i._Max=function(){return(CB=i._Max=i.asm.ka).apply(null,arguments)},IB=i._MaxPool=function(){return(IB=i._MaxPool=i.asm.la).apply(null,arguments)},NB=i._Maximum=function(){return(NB=i._Maximum=i.asm.ma).apply(null,arguments)},SB=i._Mean=function(){return(SB=i._Mean=i.asm.na).apply(null,arguments)},TB=i._Min=function(){return(TB=i._Min=i.asm.oa).apply(null,arguments)},AB=i._Minimum=function(){return(AB=i._Minimum=i.asm.pa).apply(null,arguments)},EB=i._Multiply=function(){return(EB=i._Multiply=i.asm.qa).apply(null,arguments)},DB=i._Neg=function(){return(DB=i._Neg=i.asm.ra).apply(null,arguments)},$B=i._NonMaxSuppressionV3=function(){return($B=i._NonMaxSuppressionV3=i.asm.sa).apply(null,arguments)},RB=i._NonMaxSuppressionV4=function(){return(RB=i._NonMaxSuppressionV4=i.asm.ta).apply(null,arguments)},FB=i._NonMaxSuppressionV5=function(){return(FB=i._NonMaxSuppressionV5=i.asm.ua).apply(null,arguments)},OB=i._NotEqual=function(){return(OB=i._NotEqual=i.asm.va).apply(null,arguments)},PB=i._OneHot=function(){return(PB=i._OneHot=i.asm.wa).apply(null,arguments)},MB=i._PadV2=function(){return(MB=i._PadV2=i.asm.xa).apply(null,arguments)},LB=i._Pow=function(){return(LB=i._Pow=i.asm.ya).apply(null,arguments)},zB=i._Prelu=function(){return(zB=i._Prelu=i.asm.za).apply(null,arguments)},BB=i._Prod=function(){return(BB=i._Prod=i.asm.Aa).apply(null,arguments)},VB=i._RealDiv=function(){return(VB=i._RealDiv=i.asm.Ba).apply(null,arguments)},GB=i._Relu=function(){return(GB=i._Relu=i.asm.Ca).apply(null,arguments)},WB=i._Relu6=function(){return(WB=i._Relu6=i.asm.Da).apply(null,arguments)},UB=i._ResizeBilinear=function(){return(UB=i._ResizeBilinear=i.asm.Ea).apply(null,arguments)},jB=i._Reverse=function(){return(jB=i._Reverse=i.asm.Fa).apply(null,arguments)},HB=i._RotateWithOffset=function(){return(HB=i._RotateWithOffset=i.asm.Ga).apply(null,arguments)},qB=i._Round=function(){return(qB=i._Round=i.asm.Ha).apply(null,arguments)},KB=i._Rsqrt=function(){return(KB=i._Rsqrt=i.asm.Ia).apply(null,arguments)},XB=i._ScatterNd=function(){return(XB=i._ScatterNd=i.asm.Ja).apply(null,arguments)},YB=i._SelectV2=function(){return(YB=i._SelectV2=i.asm.Ka).apply(null,arguments)},ZB=i._Sigmoid=function(){return(ZB=i._Sigmoid=i.asm.La).apply(null,arguments)},JB=i._Sin=function(){return(JB=i._Sin=i.asm.Ma).apply(null,arguments)},QB=i._Softmax=function(){return(QB=i._Softmax=i.asm.Na).apply(null,arguments)},e3=i._Sqrt=function(){return(e3=i._Sqrt=i.asm.Oa).apply(null,arguments)},t3=i._Square=function(){return(t3=i._Square=i.asm.Pa).apply(null,arguments)},r3=i._SquaredDifference=function(){return(r3=i._SquaredDifference=i.asm.Qa).apply(null,arguments)},o3=i._Step=function(){return(o3=i._Step=i.asm.Ra).apply(null,arguments)},n3=i._StridedSlice=function(){return(n3=i._StridedSlice=i.asm.Sa).apply(null,arguments)},s3=i._Sub=function(){return(s3=i._Sub=i.asm.Ta).apply(null,arguments)},i3=i._Sum=function(){return(i3=i._Sum=i.asm.Ua).apply(null,arguments)},a3=i._Tanh=function(){return(a3=i._Tanh=i.asm.Va).apply(null,arguments)},l3=i._Tile=function(){return(l3=i._Tile=i.asm.Wa).apply(null,arguments)},u3=i._TopK=function(){return(u3=i._TopK=i.asm.Xa).apply(null,arguments)},c3=i._Transpose=function(){return(c3=i._Transpose=i.asm.Ya).apply(null,arguments)},p3=i.__FusedMatMul=function(){return(p3=i.__FusedMatMul=i.asm.Za).apply(null,arguments)},Fl=i._malloc=function(){return(Fl=i._malloc=i.asm._a).apply(null,arguments)},im=i._free=function(){return(im=i._free=i.asm.$a).apply(null,arguments)},C0=i.___errno_location=function(){return(C0=i.___errno_location=i.asm.ab).apply(null,arguments)},I0=i._emscripten_get_global_libc=function(){return(I0=i._emscripten_get_global_libc=i.asm.bb).apply(null,arguments)},vc=i._pthread_self=function(){return(vc=i._pthread_self=i.asm.cb).apply(null,arguments)},N0=i.___pthread_tsd_run_dtors=function(){return(N0=i.___pthread_tsd_run_dtors=i.asm.db).apply(null,arguments)},mb=i._emscripten_main_thread_process_queued_calls=function(){return(mb=i._emscripten_main_thread_process_queued_calls=i.asm.eb).apply(null,arguments)},m3=i._emscripten_current_thread_process_queued_calls=function(){return(m3=i._emscripten_current_thread_process_queued_calls=i.asm.fb).apply(null,arguments)},S0=i._emscripten_register_main_browser_thread_id=function(){return(S0=i._emscripten_register_main_browser_thread_id=i.asm.gb).apply(null,arguments)},T0=i.__emscripten_do_dispatch_to_thread=function(){return(T0=i.__emscripten_do_dispatch_to_thread=i.asm.hb).apply(null,arguments)},A0=i._emscripten_sync_run_in_main_thread_4=function(){return(A0=i._emscripten_sync_run_in_main_thread_4=i.asm.ib).apply(null,arguments)},E0=i._emscripten_run_in_main_runtime_thread_js=function(){return(E0=i._emscripten_run_in_main_runtime_thread_js=i.asm.jb).apply(null,arguments)},fb=i.__emscripten_call_on_thread=function(){return(fb=i.__emscripten_call_on_thread=i.asm.kb).apply(null,arguments)},f3=i._emscripten_tls_init=function(){return(f3=i._emscripten_tls_init=i.asm.lb).apply(null,arguments)},Rh=i.__emscripten_thread_init=function(){return(Rh=i.__emscripten_thread_init=i.asm.mb).apply(null,arguments)},am=i.stackSave=function(){return(am=i.stackSave=i.asm.nb).apply(null,arguments)},Cc=i.stackRestore=function(){return(Cc=i.stackRestore=i.asm.ob).apply(null,arguments)},Ic=i.stackAlloc=function(){return(Ic=i.stackAlloc=i.asm.pb).apply(null,arguments)},D0=i._emscripten_stack_set_limits=function(){return(D0=i._emscripten_stack_set_limits=i.asm.qb).apply(null,arguments)},$0=i._memalign=function(){return($0=i._memalign=i.asm.rb).apply(null,arguments)},R0=i.__emscripten_allow_main_runtime_queued_calls=9880,Nc=i.__emscripten_main_thread_futex=11368;i.cwrap=we,i.PThread=Ee,i.PThread=Ee,i.wasmMemory=J,i.ExitStatus=lm;var Fh;function lm(I){this.name="ExitStatus",this.message="Program terminated with exit("+I+")",this.status=I}$l=function I(){Fh||db(),Fh||($l=I)};function db(I){if(I=I||m,Yi>0)return;if(b){l(i),postMessage({cmd:"loaded"});return}if(Qp(),Yi>0)return;function R(){Fh||(Fh=!0,i.calledRun=!0,!ue&&(xc(),ty(),l(i),i.onRuntimeInitialized&&i.onRuntimeInitialized(),oo()))}i.setStatus?(i.setStatus("Running..."),setTimeout(function(){setTimeout(function(){i.setStatus("")},1),R()},1)):R()}i.run=db;function d3(I,R){if(!(R&&re&&I===0)){if(!R&&b)throw postMessage({cmd:"exitProcess",returnCode:I}),new lm(I);re||(Ee.terminateAllThreads(),ae=I,dh(),i.onExit&&i.onExit(I),ue=!0),d(I,new lm(I))}}if(i.preInit)for(typeof i.preInit=="function"&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return b&&(re=!1,Ee.initWorker()),db(),e.ready}}();typeof Zx=="object"&&typeof x0=="object"?x0.exports=y0:typeof define=="function"&&define.amd?define([],function(){return y0}):typeof Zx=="object"&&(Zx.WasmBackendModuleThreadedSimd=y0)});var bB=dt((Jx,b0)=>{var w0=function(){var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(e){e=e||{};var t=typeof e!="undefined"?e:{},o,n;t.ready=new Promise(function(Z,se){o=Z,n=se});var s={},a;for(a in t)t.hasOwnProperty(a)&&(s[a]=t[a]);var i=[],l="./this.program",u=function(Z,se){throw se},c=!1,p=!1,m=!1,f=!1;c=typeof window=="object",p=typeof importScripts=="function",m=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",f=!c&&!m&&!p;var d="";function h(Z){return t.locateFile?t.locateFile(Z,d):d+Z}var g,x,w,b,_,k;m?(p?d=Jp().dirname(d)+"/":d=__dirname+"/",g=function(se,ke){return _||(_=require("fs")),k||(k=Jp()),se=k.normalize(se),_.readFileSync(se,ke?null:"utf8")},w=function(se){var ke=g(se,!0);return ke.buffer||(ke=new Uint8Array(ke)),U(ke.buffer),ke},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),i=process.argv.slice(2),process.on("uncaughtException",function(Z){if(!(Z instanceof pb))throw Z}),process.on("unhandledRejection",ns),u=function(Z){process.exit(Z)},t.inspect=function(){return"[Emscripten Module object]"}):f?(typeof read!="undefined"&&(g=function(se){return read(se)}),w=function(se){var ke;return typeof readbuffer=="function"?new Uint8Array(readbuffer(se)):(ke=read(se,"binary"),U(typeof ke=="object"),ke)},typeof scriptArgs!="undefined"?i=scriptArgs:typeof arguments!="undefined"&&(i=arguments),typeof quit=="function"&&(u=function(Z){quit(Z)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(c||p)&&(p?d=self.location.href:typeof document!="undefined"&&document.currentScript&&(d=document.currentScript.src),r&&(d=r),d.indexOf("blob:")!==0?d=d.substr(0,d.lastIndexOf("/")+1):d="",g=function(Z){var se=new XMLHttpRequest;return se.open("GET",Z,!1),se.send(null),se.responseText},p&&(w=function(Z){var se=new XMLHttpRequest;return se.open("GET",Z,!1),se.responseType="arraybuffer",se.send(null),new Uint8Array(se.response)}),x=function(Z,se,ke){var at=new XMLHttpRequest;at.open("GET",Z,!0),at.responseType="arraybuffer",at.onload=function(){if(at.status==200||at.status==0&&at.response){se(at.response);return}ke()},at.onerror=ke,at.send(null)},b=function(Z){document.title=Z});var A=t.print||console.log.bind(console),N=t.printErr||console.warn.bind(console);for(a in s)s.hasOwnProperty(a)&&(t[a]=s[a]);s=null,t.arguments&&(i=t.arguments),t.thisProgram&&(l=t.thisProgram),t.quit&&(u=t.quit);var $;t.wasmBinary&&($=t.wasmBinary);var F=t.noExitRuntime||!0;typeof WebAssembly!="object"&&ns("no native wasm support detected");var M,V=!1,W;function U(Z,se){Z||ns("Assertion failed: "+se)}function H(Z){var se=t["_"+Z];return U(se,"Cannot call unknown function "+Z+", make sure it is exported"),se}function q(Z,se,ke,at,Yt){var Bt={string:function(bo){var qa=0;if(bo!=null&&bo!==0){var $h=(bo.length<<2)+1;qa=om($h),ie(bo,qa,$h)}return qa},array:function(bo){var qa=om(bo.length);return ue(bo,qa),qa}};function tt(bo){return se==="string"?re(bo):se==="boolean"?Boolean(bo):bo}var rt=H(Z),vr=[],Ji=0;if(at)for(var Qi=0;Qi=at);)++Yt;if(Yt-se>16&&Z.subarray&&oe)return oe.decode(Z.subarray(se,Yt));for(var Bt="";se>10,56320|Ji&1023)}}return Bt}function re(Z,se){return Z?Y(xe,Z,se):""}function J(Z,se,ke,at){if(!(at>0))return 0;for(var Yt=ke,Bt=ke+at-1,tt=0;tt=55296&&rt<=57343){var vr=Z.charCodeAt(++tt);rt=65536+((rt&1023)<<10)|vr&1023}if(rt<=127){if(ke>=Bt)break;se[ke++]=rt}else if(rt<=2047){if(ke+1>=Bt)break;se[ke++]=192|rt>>6,se[ke++]=128|rt&63}else if(rt<=65535){if(ke+2>=Bt)break;se[ke++]=224|rt>>12,se[ke++]=128|rt>>6&63,se[ke++]=128|rt&63}else{if(ke+3>=Bt)break;se[ke++]=240|rt>>18,se[ke++]=128|rt>>12&63,se[ke++]=128|rt>>6&63,se[ke++]=128|rt&63}}return se[ke]=0,ke-Yt}function ie(Z,se,ke){return J(Z,xe,se,ke)}function ue(Z,se){de.set(Z,se)}function ae(Z,se){return Z%se>0&&(Z+=se-Z%se),Z}var fe,de,xe,we,De,Ie,ze,qe,it;function At(Z){fe=Z,t.HEAP8=de=new Int8Array(Z),t.HEAP16=we=new Int16Array(Z),t.HEAP32=Ie=new Int32Array(Z),t.HEAPU8=xe=new Uint8Array(Z),t.HEAPU16=De=new Uint16Array(Z),t.HEAPU32=ze=new Uint32Array(Z),t.HEAPF32=qe=new Float32Array(Z),t.HEAPF64=it=new Float64Array(Z)}var Et=t.INITIAL_MEMORY||16777216,Ue,ut=[],mt=[],Mt=[],xo=[],Xt=!1;mt.push({func:function(){bh()}});function to(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)yo(t.preRun.shift());Ua(ut)}function $r(){Xt=!0,Ua(mt)}function Uo(){Ua(Mt)}function or(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)Gr(t.postRun.shift());Ua(xo)}function yo(Z){ut.unshift(Z)}function Gr(Z){xo.unshift(Z)}var br=0,ro=null,Ao=null;function Dl(Z){br++,t.monitorRunDependencies&&t.monitorRunDependencies(br)}function Wa(Z){if(br--,t.monitorRunDependencies&&t.monitorRunDependencies(br),br==0&&(ro!==null&&(clearInterval(ro),ro=null),Ao)){var se=Ao;Ao=null,se()}}t.preloadedImages={},t.preloadedAudios={};function ns(Z){t.onAbort&&t.onAbort(Z),Z+="",N(Z),V=!0,W=1,Z="abort("+Z+"). Build with -s ASSERTIONS=1 for more info.";var se=new WebAssembly.RuntimeError(Z);throw n(se),se}function Xi(Z,se){return String.prototype.startsWith?Z.startsWith(se):Z.indexOf(se)===0}var Qp="data:application/octet-stream;base64,";function xc(Z){return Xi(Z,Qp)}var ty="file://";function dh(Z){return Xi(Z,ty)}var oo="tfjs-backend-wasm.wasm";xc(oo)||(oo=h(oo));function hh(Z){try{if(Z==oo&&$)return new Uint8Array($);if(w)return w(Z);throw"both async and sync fetching of the wasm failed"}catch(se){ns(se)}}function ry(){if(!$&&(c||p)){if(typeof fetch=="function"&&!dh(oo))return fetch(oo,{credentials:"same-origin"}).then(function(Z){if(!Z.ok)throw"failed to load wasm binary file at '"+oo+"'";return Z.arrayBuffer()}).catch(function(){return hh(oo)});if(x)return new Promise(function(Z,se){x(oo,function(ke){Z(new Uint8Array(ke))},se)})}return Promise.resolve().then(function(){return hh(oo)})}function Yi(){var Z={a:no};function se(tt,rt){var vr=tt.exports;t.asm=vr,M=t.asm.g,At(M.buffer),Ue=t.asm.m,Wa("wasm-instantiate")}Dl("wasm-instantiate");function ke(tt){se(tt.instance)}function at(tt){return ry().then(function(rt){return WebAssembly.instantiate(rt,Z)}).then(tt,function(rt){N("failed to asynchronously prepare wasm: "+rt),ns(rt)})}function Yt(){return!$&&typeof WebAssembly.instantiateStreaming=="function"&&!xc(oo)&&!dh(oo)&&typeof fetch=="function"?fetch(oo,{credentials:"same-origin"}).then(function(tt){var rt=WebAssembly.instantiateStreaming(tt,Z);return rt.then(ke,function(vr){return N("wasm streaming compile failed: "+vr),N("falling back to ArrayBuffer instantiation"),at(ke)})}):at(ke)}if(t.instantiateWasm)try{var Bt=t.instantiateWasm(Z,se);return Bt}catch(tt){return N("Module.instantiateWasm callback failed with error: "+tt),!1}return Yt().catch(n),{}}function Ua(Z){for(;Z.length>0;){var se=Z.shift();if(typeof se=="function"){se(t);continue}var ke=se.func;typeof ke=="number"?se.arg===void 0?Ue.get(ke)():Ue.get(ke)(se.arg):ke(se.arg===void 0?null:se.arg)}}function $l(){ns()}function oy(Z,se,ke){xe.copyWithin(Z,se,se+ke)}function ny(){return xe.length}function Zi(Z){try{return M.grow(Z-fe.byteLength+65535>>>16),At(M.buffer),1}catch(se){}}function gh(Z){var se=ny(),ke=2147483648;if(Z>ke)return!1;for(var at=1;at<=4;at*=2){var Yt=se*(1+.2/at);Yt=Math.min(Yt,Z+100663296);var Bt=Math.min(ke,ae(Math.max(Z,Yt),65536)),tt=Zi(Bt);if(tt)return!0}return!1}var yc={mappings:{},buffers:[null,[],[]],printChar:function(Z,se){var ke=yc.buffers[Z];se===0||se===10?((Z===1?A:N)(Y(ke,0)),ke.length=0):ke.push(se)},varargs:void 0,get:function(){yc.varargs+=4;var Z=Ie[yc.varargs-4>>2];return Z},getStr:function(Z){var se=re(Z);return se},get64:function(Z,se){return Z}};function xh(Z){return 0}function sy(Z,se,ke,at,Yt){}function yh(Z,se,ke,at){for(var Yt=0,Bt=0;Bt>2],rt=Ie[se+(Bt*8+4)>>2],vr=0;vr>2]=Yt,0}var no={a:$l,d:oy,e:gh,f:xh,c:sy,b:yh},iy=Yi(),bh=t.___wasm_call_ctors=function(){return(bh=t.___wasm_call_ctors=t.asm.h).apply(null,arguments)},ay=t._init=function(){return(ay=t._init=t.asm.i).apply(null,arguments)},wh=t._register_tensor=function(){return(wh=t._register_tensor=t.asm.j).apply(null,arguments)},ly=t._dispose_data=function(){return(ly=t._dispose_data=t.asm.k).apply(null,arguments)},bc=t._dispose=function(){return(bc=t._dispose=t.asm.l).apply(null,arguments)},wc=t._Abs=function(){return(wc=t._Abs=t.asm.n).apply(null,arguments)},uy=t._Add=function(){return(uy=t._Add=t.asm.o).apply(null,arguments)},cy=t._AddN=function(){return(cy=t._AddN=t.asm.p).apply(null,arguments)},py=t._ArgMax=function(){return(py=t._ArgMax=t.asm.q).apply(null,arguments)},Ee=t._AvgPool=function(){return(Ee=t._AvgPool=t.asm.r).apply(null,arguments)},my=t._BatchMatMul=function(){return(my=t._BatchMatMul=t.asm.s).apply(null,arguments)},fy=t._Ceil=function(){return(fy=t._Ceil=t.asm.t).apply(null,arguments)},dy=t._ClipByValue=function(){return(dy=t._ClipByValue=t.asm.u).apply(null,arguments)},hy=t._Conv2D=function(){return(hy=t._Conv2D=t.asm.v).apply(null,arguments)},gy=t._Conv2DBackpropInput=function(){return(gy=t._Conv2DBackpropInput=t.asm.w).apply(null,arguments)},Rl=t._Cos=function(){return(Rl=t._Cos=t.asm.x).apply(null,arguments)},xy=t._CropAndResize=function(){return(xy=t._CropAndResize=t.asm.y).apply(null,arguments)},yy=t._Cumsum=function(){return(yy=t._Cumsum=t.asm.z).apply(null,arguments)},by=t._DepthToSpace=function(){return(by=t._DepthToSpace=t.asm.A).apply(null,arguments)},wy=t._DepthwiseConv2dNative=function(){return(wy=t._DepthwiseConv2dNative=t.asm.B).apply(null,arguments)},_y=t._Equal=function(){return(_y=t._Equal=t.asm.C).apply(null,arguments)},ky=t._Exp=function(){return(ky=t._Exp=t.asm.D).apply(null,arguments)},vy=t._FlipLeftRight=function(){return(vy=t._FlipLeftRight=t.asm.E).apply(null,arguments)},Cy=t._Floor=function(){return(Cy=t._Floor=t.asm.F).apply(null,arguments)},Iy=t._FloorDiv=function(){return(Iy=t._FloorDiv=t.asm.G).apply(null,arguments)},ja=t._FusedBatchNorm=function(){return(ja=t._FusedBatchNorm=t.asm.H).apply(null,arguments)},em=t._FusedConv2D=function(){return(em=t._FusedConv2D=t.asm.I).apply(null,arguments)},tm=t._FusedDepthwiseConv2D=function(){return(tm=t._FusedDepthwiseConv2D=t.asm.J).apply(null,arguments)},Ny=t._Gather=function(){return(Ny=t._Gather=t.asm.K).apply(null,arguments)},Sy=t._GatherNd=function(){return(Sy=t._GatherNd=t.asm.L).apply(null,arguments)},Ty=t._Greater=function(){return(Ty=t._Greater=t.asm.M).apply(null,arguments)},Ay=t._GreaterEqual=function(){return(Ay=t._GreaterEqual=t.asm.N).apply(null,arguments)},Ey=t._LeakyRelu=function(){return(Ey=t._LeakyRelu=t.asm.O).apply(null,arguments)},Xe=t._Less=function(){return(Xe=t._Less=t.asm.P).apply(null,arguments)},Dy=t._LessEqual=function(){return(Dy=t._LessEqual=t.asm.Q).apply(null,arguments)},$y=t._Log=function(){return($y=t._Log=t.asm.R).apply(null,arguments)},Ry=t._LogicalAnd=function(){return(Ry=t._LogicalAnd=t.asm.S).apply(null,arguments)},Fy=t._Max=function(){return(Fy=t._Max=t.asm.T).apply(null,arguments)},Oy=t._MaxPool=function(){return(Oy=t._MaxPool=t.asm.U).apply(null,arguments)},Py=t._Maximum=function(){return(Py=t._Maximum=t.asm.V).apply(null,arguments)},rm=t._Mean=function(){return(rm=t._Mean=t.asm.W).apply(null,arguments)},_h=t._Min=function(){return(_h=t._Min=t.asm.X).apply(null,arguments)},kh=t._Minimum=function(){return(kh=t._Minimum=t.asm.Y).apply(null,arguments)},My=t._Multiply=function(){return(My=t._Multiply=t.asm.Z).apply(null,arguments)},Ly=t._Neg=function(){return(Ly=t._Neg=t.asm._).apply(null,arguments)},zy=t._NonMaxSuppressionV3=function(){return(zy=t._NonMaxSuppressionV3=t.asm.$).apply(null,arguments)},By=t._NonMaxSuppressionV4=function(){return(By=t._NonMaxSuppressionV4=t.asm.aa).apply(null,arguments)},Vy=t._NonMaxSuppressionV5=function(){return(Vy=t._NonMaxSuppressionV5=t.asm.ba).apply(null,arguments)},Gy=t._NotEqual=function(){return(Gy=t._NotEqual=t.asm.ca).apply(null,arguments)},Wy=t._OneHot=function(){return(Wy=t._OneHot=t.asm.da).apply(null,arguments)},ft=t._PadV2=function(){return(ft=t._PadV2=t.asm.ea).apply(null,arguments)},Uy=t._Pow=function(){return(Uy=t._Pow=t.asm.fa).apply(null,arguments)},jy=t._Prelu=function(){return(jy=t._Prelu=t.asm.ga).apply(null,arguments)},Hy=t._Prod=function(){return(Hy=t._Prod=t.asm.ha).apply(null,arguments)},_c=t._RealDiv=function(){return(_c=t._RealDiv=t.asm.ia).apply(null,arguments)},vh=t._Relu=function(){return(vh=t._Relu=t.asm.ja).apply(null,arguments)},Ch=t._Relu6=function(){return(Ch=t._Relu6=t.asm.ka).apply(null,arguments)},Ih=t._ResizeBilinear=function(){return(Ih=t._ResizeBilinear=t.asm.la).apply(null,arguments)},qy=t._Reverse=function(){return(qy=t._Reverse=t.asm.ma).apply(null,arguments)},Ky=t._RotateWithOffset=function(){return(Ky=t._RotateWithOffset=t.asm.na).apply(null,arguments)},Nh=t._Round=function(){return(Nh=t._Round=t.asm.oa).apply(null,arguments)},Xy=t._Rsqrt=function(){return(Xy=t._Rsqrt=t.asm.pa).apply(null,arguments)},Sh=t._ScatterNd=function(){return(Sh=t._ScatterNd=t.asm.qa).apply(null,arguments)},Ha=t._SelectV2=function(){return(Ha=t._SelectV2=t.asm.ra).apply(null,arguments)},Yy=t._Sigmoid=function(){return(Yy=t._Sigmoid=t.asm.sa).apply(null,arguments)},Zy=t._Sin=function(){return(Zy=t._Sin=t.asm.ta).apply(null,arguments)},v0=t._Softmax=function(){return(v0=t._Softmax=t.asm.ua).apply(null,arguments)},Th=t._Sqrt=function(){return(Th=t._Sqrt=t.asm.va).apply(null,arguments)},Jy=t._Square=function(){return(Jy=t._Square=t.asm.wa).apply(null,arguments)},Qy=t._SquaredDifference=function(){return(Qy=t._SquaredDifference=t.asm.xa).apply(null,arguments)},eb=t._Step=function(){return(eb=t._Step=t.asm.ya).apply(null,arguments)},tb=t._StridedSlice=function(){return(tb=t._StridedSlice=t.asm.za).apply(null,arguments)},rb=t._Sub=function(){return(rb=t._Sub=t.asm.Aa).apply(null,arguments)},ob=t._Sum=function(){return(ob=t._Sum=t.asm.Ba).apply(null,arguments)},nb=t._Tanh=function(){return(nb=t._Tanh=t.asm.Ca).apply(null,arguments)},sb=t._Tile=function(){return(sb=t._Tile=t.asm.Da).apply(null,arguments)},ib=t._TopK=function(){return(ib=t._TopK=t.asm.Ea).apply(null,arguments)},ab=t._Transpose=function(){return(ab=t._Transpose=t.asm.Fa).apply(null,arguments)},lb=t.__FusedMatMul=function(){return(lb=t.__FusedMatMul=t.asm.Ga).apply(null,arguments)},ub=t._malloc=function(){return(ub=t._malloc=t.asm.Ha).apply(null,arguments)},cb=t._free=function(){return(cb=t._free=t.asm.Ia).apply(null,arguments)},Ah=t.stackSave=function(){return(Ah=t.stackSave=t.asm.Ja).apply(null,arguments)},Eh=t.stackRestore=function(){return(Eh=t.stackRestore=t.asm.Ka).apply(null,arguments)},om=t.stackAlloc=function(){return(om=t.stackAlloc=t.asm.La).apply(null,arguments)};t.cwrap=X;var kc;function pb(Z){this.name="ExitStatus",this.message="Program terminated with exit("+Z+")",this.status=Z}Ao=function Z(){kc||nm(),kc||(Ao=Z)};function nm(Z){if(Z=Z||i,br>0||(to(),br>0))return;function se(){kc||(kc=!0,t.calledRun=!0,!V&&($r(),Uo(),o(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),or()))}t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),se()},1)):se()}if(t.run=nm,t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return nm(),e.ready}}();typeof Jx=="object"&&typeof b0=="object"?b0.exports=w0:typeof define=="function"&&define.amd?define([],function(){return w0}):typeof Jx=="object"&&(Jx.WasmBackendModule=w0)});var k3=1e-7,v3=1e-4,Xa=class{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}},Ws=class{refCount(e){return jo("refCount")}incRef(e){return jo("incRef")}timerAvailable(){return!0}time(e){return jo("time")}read(e){return jo("read")}readSync(e){return jo("readSync")}numDataIds(){return jo("numDataIds")}disposeData(e,t){return jo("disposeData")}write(e,t,o){return jo("write")}move(e,t,o,n,s){return jo("move")}memory(){return jo("memory")}floatPrecision(){return jo("floatPrecision")}epsilon(){return this.floatPrecision()===32?k3:v3}dispose(){return jo("dispose")}};function jo(r){throw new Error(`'${r}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function O0(r){let e=r.length,t=0,o=0;for(;e>0;)o=Math.random()*e|0,e--,t=r[e],r[e]=r[o],r[o]=t}function C3(r,e){if(r.length!==e.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${r.length}Second array length was ${e.length}`);let t=r.length,o,n,s=0;for(;t>0;)s=Math.random()*t|0,t--,o=r[t],n=e[t],r[t]=r[s],e[t]=e[s],r[s]=o,e[s]=n}function Ec(r,e,t){return Math.max(r,Math.min(e,t))}function I3(r){return r%2==0?r:r+1}function N3(r){let e=0;for(let t=0;tt+` Shapes ${r} and ${e} must match`)}function Eo(r){E(r!=null,()=>"The input to the tensor constructor must be a non-null value.")}function ss(r,e=[],t=!1){if(e==null&&(e=[]),Array.isArray(r)||nr(r)&&!t)for(let o=0;o0,t){return new Promise((o,n)=>{let s=0,a=()=>{if(r()){o();return}s++;let i=e(s);if(t!=null&&s>=t){n();return}setTimeout(a,i)};a()})}function F3(r,e){let t=1,o=-1;for(let s=0;s=0)t*=r[s];else if(r[s]===-1){if(o!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${o} and dim ${s}`);o=s}else if(r[s]<0)throw Error(`Shapes can not be < 0. Found ${r[s]} at dim ${s}`);if(o===-1){if(e>0&&e!==t)throw Error(`Size(${e}) must match the product of shape ${r}`);return r}if(t===0)throw Error(`Cannot infer the missing size in [${r}] when there are 0 elements`);if(e%t!=0)throw Error(`The implicit shape can't be a fractional number. Got ${e} / ${t}`);let n=r.slice();return n[o]=e/t,n}function Qt(r,e){let t=e.length;return r=r==null?e.map((o,n)=>n):[].concat(r),E(r.every(o=>o>=-t&&o`All values in axis param must be in range [-${t}, ${t}) but got axis ${r}`),E(r.every(o=>ot(o)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(o=>o<0?t+o:o)}function hb(r,e){let t=[],o=[],n=e!=null&&Array.isArray(e)&&e.length===0,s=e==null||n?null:Qt(e,r).sort(),a=0;for(let i=0;ii)&&r[i]===1&&(t.push(r[i]),o.push(i)),s[a]<=i&&a++}r[i]!==1&&(t.push(r[i]),o.push(i))}return{newShape:t,keptDims:o}}function gb(r,e){let t=null;if(r==null||r==="float32")t=new Float32Array(e);else if(r==="int32")t=new Int32Array(e);else if(r==="bool")t=new Uint8Array(e);else throw new Error(`Unknown data type ${r}`);return t}function xb(r,e){let t=null;if(r==null||r==="float32")t=new Float32Array(e);else if(r==="int32")t=new Int32Array(e);else if(r==="bool")t=new Uint8Array(e);else if(r==="string")t=new Array(e);else throw new Error(`Unknown data type ${r}`);return t}function yb(r,e){for(let t=0;te+=t.length),e}function is(r){return typeof r=="string"||r instanceof String}function P0(r){return typeof r=="boolean"}function M0(r){return typeof r=="number"}function Dc(r){return Array.isArray(r)?Dc(r[0]):r instanceof Float32Array?"float32":r instanceof Int32Array||r instanceof Uint8Array?"int32":M0(r)?"float32":is(r)?"string":P0(r)?"bool":"float32"}function Us(r){return!!(r&&r.constructor&&r.call&&r.apply)}function $c(r,e){for(let t=e;t=0;--o)t[o]=t[o+1]*r[o+1];return t}function L0(r,e,t){let o=new Array;if(e.length===1){let n=e[0];for(let s=0;si*l);for(let i=0;io*n);if(t===0)return[];if(t!==e.length)throw new Error(`[${r}] does not match the input size ${e.length}.`);return L0(0,r,e)}function um(r,e){let t=Rc(r,e);for(let o=0;oo*n,1);if(e==null||e==="float32")return Pl(r,new Float32Array(t));if(e==="int32")return Pl(r,new Int32Array(t));if(e==="bool")return Pl(r,new Uint8Array(t));throw new Error(`Unknown data type ${e}`)}function cm(r){r.forEach(e=>{E(Number.isInteger(e)&&e>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function M3(r,e,t){if(e===0)return 0;if(e===1)return r[0];let o=r[r.length-1];for(let n=0;n{let[n,s]=o.split(":");this.urlFlags[n]=B3(n,s)})}};function z3(r){let e={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(t,...o)=>(V3(e,o[0],o[1]),o.join("="))),e}function V3(r,e,t){r[decodeURIComponent(e)]=decodeURIComponent(t||"")}function B3(r,e){if(e=e.toLowerCase(),e==="true"||e==="false")return e==="true";if(`${+e}`===e)return+e;throw new Error(`Could not parse value flag value ${e} for flag ${r}.`)}function j(){return _b}var _b=null;function B0(r){_b=r}var kb;function vb(){if(kb==null){let r;if(typeof window!="undefined")r=window;else if(typeof global!="undefined")r=global;else if(typeof process!="undefined")r=process;else if(typeof self!="undefined")r=self;else throw new Error("Could not find a global object");kb=r}return kb}function G3(){let r=vb();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function mm(r,e){let t=G3();if(t.has(r))return t.get(r);{let o=e();return t.set(r,o),t.get(r)}}var as="Abs",Hs="Acos",qs="Acosh",wo="Add",Ho="AddN",Ml="All",Ll="Any",qo="ArgMax",ea="ArgMin",Ks="Asin",Xs="Asinh",Ys="Atan",Zs="Atanh",Js="Atan2",Ko="AvgPool",zl="AvgPoolGrad",ta="AvgPool3D",Bl="AvgPool3DGrad",Xo="BatchMatMul",ra="BatchToSpaceND",Vl="Bincount",Cb="BroadcastTo",Do="Cast",Yo="Ceil",$o="ClipByValue",Gl="Complex",oa="ComplexAbs",ls="Concat",Zo="Conv2D",Wl="Conv2DBackpropFilter",Jo="Conv2DBackpropInput",na="Conv3D",Ul="Conv3DBackpropFilterV2",jl="Conv3DBackpropInputV2",Qo="Cos",Qs="Cosh",en="Cumsum",ei="CropAndResize",Hl="DenseBincount",ti="DepthToSpace",tn="DepthwiseConv2dNative",ql="DepthwiseConv2dNativeBackpropFilter",Kl="DepthwiseConv2dNativeBackpropInput",Xl="Diag",sa="Dilation2D",Fc="Dilation2DBackpropInput",Oc="Dilation2DBackpropFilter",rn="RealDiv",ri="Elu",Yl="EluGrad",oi="Erf",ni="Equal",on="Exp",us="ExpandDims",si="Expm1",Zl="FFT",ia="Fill",ii="FlipLeftRight",nn="Floor",sn="FloorDiv",an="FusedBatchNorm",cs="GatherV2",ai="GatherNd",li="Greater",ln="GreaterEqual",Ro="Identity",Jl="IFFT",Ql="Imag",ui="IsFinite",ci="IsInf",pi="IsNan",un="LeakyRelu",mi="Less",fi="LessEqual",eu="LinSpace",cn="Log",di="Log1p",hi="LogicalAnd",Ya="LogicalNot",Za="LogicalOr",Ib="LogSoftmax",aa="LRN",tu="LRNGrad",pn="Max",mn="Maximum",fn="MaxPool",ru="MaxPoolGrad",la="MaxPool3D",ou="MaxPool3DGrad",nu="MaxPoolWithArgmax",dn="Mean",hn="Min",gn="Minimum",ua="MirrorPad",gi="Mod",su="Multinomial",xn="Multiply",ps="Neg",xi="NotEqual",yi="NonMaxSuppressionV3",bi="NonMaxSuppressionV4",wi="NonMaxSuppressionV5",ms="OnesLike",yn="OneHot",fs="Pack",bn="PadV2",W3="Pool",wn="Pow",_n="Prelu",_i="Prod",ca="Range",iu="Real",ki="Reciprocal",kn="Relu",ds="Reshape",pa="ResizeNearestNeighbor",au="ResizeNearestNeighborGrad",vn="ResizeBilinear",lu="ResizeBilinearGrad",Cn="Relu6",In="Reverse",Nn="Round",Sn="Rsqrt",vi="ScatterNd",hs="Select",Ci="Selu",gs="Slice",Tn="Sin",Ii="Sinh",Ni="Sign",An="Sigmoid",Si="Softplus",En="Sqrt",Dn="Sum",ma="SpaceToBatchND",xs="SplitV",$n="Softmax",Rn="SquaredDifference",fa="Square",Fn="Sub",uu="SparseToDense",Ti="StridedSlice",Ai="Tan",On="Tanh",_o="Tile",Ei="TopK",cu="Transform",Pn="Transpose",pu="Unique",ys="Unpack",da="UnsortedSegmentSum",bs="ZerosLike",Fo="Step",Pc="FromPixels",Di="RotateWithOffset",ws="_FusedMatMul",_s="FusedConv2D",ks="FusedDepthwiseConv2D";var Mc=mm("kernelRegistry",()=>new Map),fm=mm("gradRegistry",()=>new Map);function Lc(r,e){let t=Nb(r,e);return Mc.get(t)}function Lh(r){return fm.get(r)}function dm(r){let e=Mc.entries(),t=[];for(;;){let{done:o,value:n}=e.next();if(o)break;let[s,a]=n,[i]=s.split("_");i===r&&t.push(a)}return t}function Ja(r){let{kernelName:e,backendName:t}=r,o=Nb(e,t);Mc.has(o)&&console.warn(`The kernel '${e}' for backend '${t}' is already registered`),Mc.set(o,r)}function Sb(r){let{kernelName:e}=r;fm.has(e)&&j().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${e}'`),fm.set(e,r)}function U3(r,e){let t=Nb(r,e);if(!Mc.has(t))throw new Error(`The kernel '${r}' for backend '${e}' is not registered`);Mc.delete(t)}function j3(r){if(!fm.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);fm.delete(r)}function H3(r,e){dm(r).forEach(o=>{let n=Object.assign({},o,{backendName:e});Ja(n)})}function Nb(r,e){return`${e}_${r}`}var y={};Je(y,{arraysEqual:()=>Ur,assert:()=>E,assertNonNegativeIntegerDimensions:()=>cm,assertNonNull:()=>Eo,assertShapesMatch:()=>Ct,bytesFromStringArray:()=>wb,bytesPerElement:()=>Ph,checkConversionForErrors:()=>yb,clamp:()=>Ec,computeStrides:()=>js,createScalarValue:()=>q3,createShuffledIndices:()=>$3,decodeString:()=>Bc,distSquared:()=>T3,encodeString:()=>Qa,fetch:()=>X3,flatten:()=>ss,getArrayFromDType:()=>xb,getTypedArrayFromDType:()=>gb,hasEncodingLoss:()=>O3,indexToLoc:()=>L3,inferDtype:()=>Dc,inferFromImplicitShape:()=>F3,isBoolean:()=>P0,isFunction:()=>Us,isInt:()=>ot,isNumber:()=>M0,isPromise:()=>pm,isScalarShape:()=>A3,isString:()=>is,isTypedArray:()=>nr,isValidDtype:()=>bb,locToIndex:()=>M3,makeOnesTypedArray:()=>um,makeZerosNestedTypedArray:()=>P3,makeZerosTypedArray:()=>Rc,nearestDivisor:()=>$c,nearestLargerEven:()=>I3,now:()=>mu,parseAxisParam:()=>Qt,randUniform:()=>S3,repeatedTry:()=>R3,rightPad:()=>Ol,shuffle:()=>O0,shuffleCombo:()=>C3,sizeFromShape:()=>ct,sizeToSquarishShape:()=>D3,squeezeShape:()=>hb,sum:()=>N3,tanh:()=>E3,toNestedArray:()=>Pl,toTypedArray:()=>zc});function q3(r,e){return e==="string"?Qa(r):zc([r],e)}function K3(r,e){return r instanceof Float32Array&&e==="float32"||r instanceof Int32Array&&e==="int32"||r instanceof Uint8Array&&e==="bool"}function zc(r,e){if(e==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(r)&&(r=ss(r)),j().getBool("DEBUG")&&yb(r,e),K3(r,e))return r;if(e==null||e==="float32"||e==="complex64")return new Float32Array(r);if(e==="int32")return new Int32Array(r);if(e==="bool"){let t=new Uint8Array(r.length);for(let o=0;o{n=o()},a,i=mu();if(this.backendTimer.timerAvailable())a=this.backendTimer.time(s);else{s();for(let u of n)u.dataSync();a=Promise.resolve({kernelMs:mu()-i})}if(j().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let u=0;u{Y3(p,c.dtype,e)})}return{kernelName:e,outputs:n,inputs:t,timeMs:a.then(u=>u.kernelMs),extraInfo:a.then(u=>u.getExtraProfileInfo!=null?u.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:o,timeMs:n,inputs:s,extraInfo:a}=e;o.forEach(i=>{Promise.all([i.data(),n,a]).then(l=>{this.logger.logKernelProfile(t,i,l[0],l[1],s,l[2])})})}};function Y3(r,e,t){if(e!=="float32")return!1;for(let o=0;o0?h:""} `}}console.log(`%c${l} %c${i} %c${u}D ${p} %c${c} %c${m} %c${a}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function G0(r,e,t){let o={},n={};for(let l=0;lo[h.id]=!0),f=!0,n[u.id]=!0;break}if(f)break}}let s={};s[t.id]=!0;let a={};for(let l=r.length-1;l>=0;l--){let u=r[l],c=u.inputs;for(let p=0;p=0;n--){let s=e[n],a=[];if(s.outputs.forEach(l=>{let u=r[l.id];u!=null?a.push(u):a.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let i=s.gradient(a);for(let l in s.inputs){if(!(l in i))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(i)}.`);let u=t(()=>i[l]());if(u.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${u.dtype}'`);let c=s.inputs[l];if(!Ur(u.shape,c.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${u.shape}', which does not match the shape of the input '${c.shape}'`);if(r[c.id]==null)r[c.id]=u;else{let p=r[c.id];r[c.id]=o(p,u),p.dispose()}}}}var U0=20,hm=3,Ab=7;function j0(r,e,t,o){let n=js(e),s=Z3(r,e,t,n),a=e.length,i=zh(r,e,t,n,s),l=["Tensor"];return o&&(l.push(` dtype: ${t}`),l.push(` rank: ${a}`),l.push(` shape: [${e}]`),l.push(" values:")),l.push(i.map(u=>" "+u).join(` `)),l.join(` -`)}function ZB(r,e,t,o){let n=ct(e),s=o[o.length-1],a=new Array(s).fill(0),i=e.length,l=t==="complex64"?dm(r):r;if(i>1)for(let u=0;uCI){let g=mm*a,y=Array.from(r.slice(0,g)),b=Array.from(r.slice((i-mm)*a,i*a));return t==="complex64"&&(y=dm(y),b=dm(b)),["["+y.map((w,_)=>fm(w,n[_],t)).join(", ")+", ..., "+b.map((w,_)=>fm(w,n[i-mm+_],t)).join(", ")+"]"]}let h=t==="complex64"?dm(r):Array.from(r);return["["+h.map((g,y)=>fm(g,n[y],t)).join(", ")+"]"]}let u=e.slice(1),c=o.slice(1),p=o[0]*a,m=[];if(i>CI){for(let h=0;h1)for(let u=0;uU0){let g=hm*a,x=Array.from(r.slice(0,g)),w=Array.from(r.slice((i-hm)*a,i*a));return t==="complex64"&&(x=xm(x),w=xm(w)),["["+x.map((b,_)=>gm(b,n[_],t)).join(", ")+", ..., "+w.map((b,_)=>gm(b,n[i-hm+_],t)).join(", ")+"]"]}let h=t==="complex64"?xm(r):Array.from(r);return["["+h.map((g,x)=>gm(g,n[x],t)).join(", ")+"]"]}let u=e.slice(1),c=o.slice(1),p=o[0]*a,m=[];if(i>U0){for(let h=0;h`Length of values '${n}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=o||pb(t,this.size),this.strides=Us(e)}set(e,...t){t.length===0&&(t=[0]),A(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let o=this.locToIndex(t);this.values[o]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let n of e){if(n<0||n>=this.shape[t]){let s=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(s)}t++}let o=e[e.length-1];for(let n=0;nPc(o))}catch(o){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataSync(){this.throwIfDisposed();let e=Di().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>Pc(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 Di().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Di().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Mc.print(this,e)}clone(){return this.throwIfDisposed(),Mc.clone(this)}toString(e=!1){let t=this.dataSync();return II(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Mc.cast(this,e)}variable(e=!0,t,o){return this.throwIfDisposed(),Di().makeVariable(this,e,t,o)}};Object.defineProperty(Ve,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function F(){return um("Tensor",()=>Ve)}F();var el=class extends Ve{constructor(e,t,o,n){super(e.shape,e.dtype,e.dataId,n);this.trainable=t,this.name=o}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!Ur(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Di().disposeTensor(this),this.dataId=e.dataId,Di().incRef(this,null)}dispose(){Di().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(el,Symbol.hasInstance,{value:r=>r instanceof Ve&&r.assign!=null&&r.assign instanceof Function});var Mn={};Je(Mn,{assertTypesMatch:()=>Ab,getTensorsInContainer:()=>hm,isTensorInList:()=>e3,makeTypesMatch:()=>Ge});var Cb;(function(r){r.R0="R0",r.R1="R1",r.R2="R2",r.R3="R3",r.R4="R4",r.R5="R5",r.R6="R6"})(Cb||(Cb={}));var Ib;(function(r){r.float32="float32",r.int32="int32",r.bool="int32",r.complex64="complex64"})(Ib||(Ib={}));var Nb;(function(r){r.float32="float32",r.int32="int32",r.bool="bool",r.complex64="complex64"})(Nb||(Nb={}));var Sb;(function(r){r.float32="float32",r.int32="float32",r.bool="float32",r.complex64="complex64"})(Sb||(Sb={}));var Tb;(function(r){r.float32="complex64",r.int32="complex64",r.bool="complex64",r.complex64="complex64"})(Tb||(Tb={}));var QB={float32:Sb,int32:Ib,bool:Nb,complex64:Tb};function fr(r,e){if(r==="string"||e==="string"){if(r==="string"&&e==="string")return"string";throw new Error(`Can not upcast ${r} with ${e}`)}return QB[r][e]}function mu(r){return fr(r,"int32")}function Ge(r,e){if(r.dtype===e.dtype)return[r,e];let t=fr(r.dtype,e.dtype);return[r.cast(t),e.cast(t)]}function Ab(r,e){A(r.dtype===e.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${e.dtype}) input must match`)}function e3(r,e){return e.some(t=>t.id===r.id)}function hm(r){let e=[],t=new Set;return EI(r,e,t),e}function EI(r,e,t){if(r==null)return;if(r instanceof Ve){e.push(r);return}if(!t3(r))return;let o=r;for(let n in o){let s=o[n];t.has(s)||(t.add(s),EI(s,e,t))}}function t3(r){return Array.isArray(r)||typeof r=="object"}function Eb(r){return r.kernelName!=null}var Db=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},fu=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Db}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{t.setupFunc!=null&&t.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){pm(e).forEach(o=>{o.disposeFunc!=null&&o.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let o=t.factory();if(o&&!(o instanceof Gs)&&typeof o.then=="function"){let n=++this.pendingBackendInitId,s=o.then(a=>n(nthis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(o),()=>this.endScope(n),()=>(n=t(),n instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),n))}scopedRun(e,t,o){e();try{let n=o();return t(),n}catch(n){throw t(),n}}nextTensorId(){return fu.nextTensorId++}nextVariableId(){return fu.nextVariableId++}clone(e){let t=E.runKernel(Ro,{x:e}),o={x:e},n=a=>({x:()=>{let i="float32",l={x:a},u={dtype:i};return E.runKernel(Do,l,u)}}),s=[];return this.addTapeNode(this.state.activeScope.name,o,[t],n,s,{}),t}runKernel(e,t,o){if(!(Fc(e,this.backendName)!=null))throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:o})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,o){let n=this.backend.numDataIds(),s=0;o.forEach(l=>{s+=l.dtype==="complex64"?3:1});let a=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=n-t-s-a;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e){let t,o=[],n=this.isTapeOn(),s=this.state.numBytes,a=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let l,u=Eb(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(Eb(e)){let{kernelName:d,inputs:h,attrs:g}=e;this.backendName==null&&this.backend;let y=Fc(d,this.backendName);A(y!=null,()=>`Cannot find registered kernel '${d}' for backend '${this.backendName}'`),i=()=>{let b=this.backend.numDataIds();l=y.kernelFunc({inputs:h,attrs:g,backend:this.backend});let w=Array.isArray(l)?l:[l];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(d,b,w);let _=w.map(C=>{if(C.rank!=null)return C;let{dataId:D,shape:T,dtype:R}=C;return this.makeTensorFromDataId(D,T,R)});if(n){let C=this.getTensorsForGradient(d,h,_);o=this.saveTensorsForBackwardMode(C)}return _}}else{let{forwardFunc:d}=e,h=g=>{!n||(o=g.map(y=>this.keep(this.clone(y))))};i=()=>{let g=this.backend.numDataIds();l=this.tidy(()=>d(this.backend,h));let y=Array.isArray(l)?l:[l];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(u,g,y),y}}let{inputs:c,attrs:p}=e,m=Eb(e)?null:e.backwardsFunc,f;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(f=this.profiler.profileKernel(u,c,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(f),t=f.outputs)}),n&&this.addTapeNode(u,c,t,m,o,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:u,bytesAdded:this.state.numBytes-s,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-a,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(d=>c[d]!=null?c[d].shape:null),outputShapes:t.map(d=>d.shape),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(l)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(o=>this.keep(this.clone(o)))}getTensorsForGradient(e,t,o){let n=Oh(e);if(n!=null){let s=n.inputsToSave||[],a=n.outputsToSave||[],i;n.saveAllInputs?(A(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(u=>t[u])):i=s.map(u=>t[u]);let l=o.filter((u,c)=>a[c]);return i.concat(l)}return[]}makeTensor(e,t,o,n){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");o=o||"float32",n=n||this.backend;let s=e;o==="string"&&is(e[0])&&(s=e.map(l=>Qa(l)));let a=n.write(s,t,o),i=new Ve(t,o,a,this.nextTensorId());if(this.trackTensor(i,n),o==="string"){let l=this.state.tensorInfo.get(a),u=db(s);this.state.numBytes+=u-l.bytes,l.bytes=u}return i}makeTensorFromDataId(e,t,o,n){o=o||"float32";let s=new Ve(t,o,e,this.nextTensorId());return this.trackTensor(s,n),s}makeVariable(e,t=!0,o,n){o=o||this.nextVariableId().toString(),n!=null&&n!==e.dtype&&(e=e.cast(n));let s=new el(e,t,o,this.nextTensorId());if(this.state.registeredVariables[s.name]!=null)throw new Error(`Variable with name ${s.name} was already registered`);return this.state.registeredVariables[s.name]=s,this.incRef(s,this.backend),s}trackTensor(e,t){this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++;let o=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(o=e.size*Rh(e.dtype)),this.state.numBytes+=o,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:o})),e instanceof el||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,e.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),e.dtype!=="complex64"&&e.dtype!=="string"){let o=e.size*Rh(e.dtype);this.state.numBytes-=o}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,o=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(n=>n.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-o;for(let n of this.state.activeProfile.kernels)n.kernelTimeMs=await n.kernelTimeMs,n.extraInfo=await n.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,o,n,s,a){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:o,saved:s},l=Oh(e);l!=null&&(n=l.gradFunc),n!=null&&(i.gradient=u=>(u=u.map((c,p)=>{if(c==null){let m=o[p],f=Ac(m.size,m.dtype);return this.makeTensor(f,m.shape,m.dtype)}return c}),n(u.length>1?u:u[0],s,a))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=hm(e),o=new Set(t.map(s=>s.id));for(let s=0;s{!s.kept&&s.scopeId===n.id&&this.track(s)})}gradients(e,t,o,n=!1){if(A(t.length>0,()=>"gradients() received an empty list of xs."),o!=null&&o.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${o.dtype}'`);let s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));A(s instanceof Ve,()=>"The result y returned by f() must be a tensor.");let a=kI(this.state.activeTape,t,s);if(!n&&a.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let i={};i[s.id]=o==null?r3(s.shape):o,vI(i,a,u=>this.tidy(u),o3);let l=t.map(u=>i[u.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(u=>{for(let c of u.saved)c.dispose()}),this.state.activeTape=null),{value:s,grads:l}})}customGrad(e){return A(Ws(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{A(t.every(i=>i instanceof Ve),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let o,n={};t.forEach((i,l)=>{n[l]=i});let s=(i,l)=>(o=e(...t,l),A(o.value instanceof Ve,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),A(Ws(o.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),o.value),a=(i,l)=>{let u=o.gradFunc(i,l),c=Array.isArray(u)?u:[u];A(c.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),A(c.every(m=>m instanceof Ve),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let p={};return c.forEach((m,f)=>{p[f]=()=>m}),p};return this.runKernelFunc({forwardFunc:s,backwardsFunc:a,inputs:n})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}async time(e){let t=pu(),o=await this.backend.time(e);return o.wallMs=pu()-t,o}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Db;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};fu.nextTensorId=0;fu.nextVariableId=0;function r3(r){let e=im(ct(r),"float32");return E.makeTensor(e,r,"float32")}function $b(){let r=xb();if(r._tfengine==null){let e=new Fh(r);r._tfengine=new fu(e)}return wI(r._tfengine.ENV),SI(()=>r._tfengine),r._tfengine}var E=$b();function o3(r,e){let t={a:r,b:e};return E.runKernel(wo,t)}var Lc={};Je(Lc,{isBrowser:()=>Rb,isMobile:()=>s3});function n3(){return typeof navigator!="undefined"&&navigator!=null}function s3(){if(n3()){let r=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(r)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(r.substr(0,4))}return!1}function Rb(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var $i=W();$i.registerFlag("DEBUG",()=>!1,r=>{r&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});$i.registerFlag("IS_BROWSER",()=>Rb());$i.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");$i.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));$i.registerFlag("PROD",()=>!1);$i.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>$i.getBool("DEBUG"));$i.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);$i.registerFlag("IS_TEST",()=>!1);$i.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);function vr(r,e){let t=r;if(or(r))return e==="string"?[]:[r.length];if(!Array.isArray(r))return[];let o=[];for(;Array.isArray(t)||or(t)&&e!=="string";)o.push(t.length),t=t[0];return Array.isArray(r)&&W().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&DI(r,o,[]),o}function DI(r,e,t){if(t=t||[],!Array.isArray(r)&&!or(r)){A(e.length===0,()=>`Element arr[${t.join("][")}] is a primitive, but should be an array/TypedArray of ${e[0]} elements`);return}A(e.length>0,()=>`Element arr[${t.join("][")}] should be a primitive, but is an array of ${r.length} elements`),A(r.length===e[0],()=>`Element arr[${t.join("][")}] should have ${e[0]} elements, but has ${r.length} elements`);let o=e.slice(1);for(let n=0;n=0&&(n=o),$I(o,n,e,t),r==null||!or(r)&&!Array.isArray(r)&&typeof r!="number"&&typeof r!="boolean"&&typeof r!="string"){let l=r==null?"null":r.constructor.name;throw new Error(`Argument '${e}' passed to '${t}' must be a Tensor or TensorLike, but got '${l}'`)}let s=vr(r,n);!or(r)&&!Array.isArray(r)&&(r=[r]);let i=n!=="string"?Oc(r,n):ss(r,[],!0);return E.makeTensor(i,s,n)}function ha(r,e,t,o="numeric"){if(!Array.isArray(r))throw new Error(`Argument ${e} passed to ${t} must be a \`Tensor[]\` or \`TensorLike[]\``);return r.map((s,a)=>k(s,`${e}[${a}]`,t,o))}var RI="__op";function S(r){let e=Object.keys(r);if(e.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${e.length} keys.`);let t=e[0],o=r[t];t.endsWith("_")&&(t=t.substring(0,t.length-1)),t=t+RI;let n=(...s)=>{E.startScope(t);try{let a=o(...s);return lm(a)&&console.error("Cannot return a Promise inside of tidy."),E.endScope(a),a}catch(a){throw E.endScope(null),a}};return Object.defineProperty(n,"name",{value:t,configurable:!0}),n}function i3(r,e){let t=k(r,"real","complex"),o=k(e,"imag","complex");vt(t.shape,o.shape,`real and imag shapes, ${t.shape} and ${o.shape}, must match in call to tf.complex().`);let n={real:t,imag:o};return E.runKernel(Gl,n)}var ko=S({complex_:i3});function jr(r,e,t,o){if(o==null&&(o=Sc(r)),o==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!or(r)&&!Array.isArray(r)&&typeof r!="number"&&typeof r!="boolean"&&typeof r!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(e!=null){am(e);let n=ct(e),s=ct(t);A(n===s,()=>`Based on the provided shape, [${e}], the tensor should have ${n} values but has ${s}`);for(let a=0;a`Error creating a new Tensor. Inferred shape (${t}) does not match the provided shape (${e}). `)}}return!or(r)&&!Array.isArray(r)&&(r=[r]),e=e||t,r=o!=="string"?Oc(r,o):ss(r,[],!0),E.makeTensor(r,e,o)}function $r(r,e,t){let o=vr(r,t);return jr(r,e,o,t)}var gm={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var Mh=4;async function FI(r,e){let t=[],o=[],n=Array.isArray(r)?r.map(a=>a.name):Object.keys(r);for(let a=0;a{let m=await l.bytes(),f=m.reduce((g,y)=>g+y.length,0)+Mh*m.length,d=new Uint8Array(f),h=0;for(let g=0;g{if(e+=s.byteLength,t.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let o=new Uint8Array(e),n=0;return t.forEach(s=>{o.set(new Uint8Array(s.buffer),n),n+=s.byteLength}),o.buffer}var Fb=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function OI(r){return Fb?Buffer.byteLength(r):new Blob([r]).size}function PI(r){if(Fb)return Buffer.from(r).toString("base64");let e=new Uint8Array(r),t="";for(let o=0,n=e.length;o{e+=n.byteLength});let t=new Uint8Array(e),o=0;return r.forEach(n=>{t.set(new Uint8Array(n),o),o+=n.byteLength}),t.buffer}function Ob(r){let e="/";for(r=r.trim();r.endsWith(e);)r=r.slice(0,r.length-1);let t=r.split(e);return t[t.length-1]}function Ri(r){if(r.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:r.modelTopology==null?0:OI(JSON.stringify(r.modelTopology)),weightSpecsBytes:r.weightSpecs==null?0:OI(JSON.stringify(r.weightSpecs)),weightDataBytes:r.weightData==null?0:r.weightData.byteLength}}function u3(){let r=t=>{let o=t<<13,n=0;for(;(o&8388608)==0;)n-=8388608,o<<=1;return o&=~8388608,n+=947912704,o|n},e=new Uint32Array(2048);e[0]=0;for(let t=1;t<1024;t++)e[t]=r(t);for(let t=1024;t<2048;t++)e[t]=939524096+(t-1024<<13);return e}function c3(){let r=new Uint32Array(64);r[0]=0,r[31]=1199570944,r[32]=2147483648,r[63]=3347054592;for(let e=1;e<31;e++)r[e]=e<<23;for(let e=33;e<63;e++)r[e]=2147483648+(e-32<<23);return r}function p3(){let r=new Uint32Array(64);for(let e=0;e<64;e++)r[e]=1024;return r[0]=r[32]=0,r}function l3(){let r=u3(),e=c3(),t=p3();return o=>{let n=new ArrayBuffer(4*o.length),s=new Uint32Array(n);for(let a=0;a>10]+(i&1023)]+e[i>>10];s[a]=l}return new Float32Array(n)}}var Ct=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Ct.instance==null&&(Ct.instance=new Ct),Ct.instance}static registerSaveRouter(e){Ct.getInstance().saveRouters.push(e)}static registerLoadRouter(e){Ct.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return Ct.getHandlers(e,"save")}static getLoadHandlers(e,t){return Ct.getHandlers(e,"load",t)}static getHandlers(e,t,o){let n=[];return(t==="load"?Ct.getInstance().loadRouters:Ct.getInstance().saveRouters).forEach(a=>{let i=a(e,o);i!==null&&n.push(i)}),n}},LI=r=>Ct.registerSaveRouter(r),zI=r=>Ct.registerLoadRouter(r),BI=r=>Ct.getSaveHandlers(r),VI=(r,e)=>Ct.getLoadHandlers(r,e);var Pb="tensorflowjs",Mb=1,du="models_store",tl="model_info_store";function GI(){if(!W().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let r=typeof window=="undefined"?self:window,e=r.indexedDB||r.mozIndexedDB||r.webkitIndexedDB||r.msIndexedDB||r.shimIndexedDB;if(e==null)throw new Error("The current browser does not appear to support IndexedDB.");return e}function Lb(r){let e=r.result;e.createObjectStore(du,{keyPath:"modelPath"}),e.createObjectStore(tl,{keyPath:"modelPath"})}var ga=class{constructor(e){if(this.indexedDB=GI(),e==null||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((o,n)=>{let s=this.indexedDB.open(Pb,Mb);s.onupgradeneeded=()=>Lb(s),s.onsuccess=()=>{let a=s.result;if(t==null){let i=a.transaction(du,"readonly"),u=i.objectStore(du).get(this.modelPath);u.onsuccess=()=>{if(u.result==null)return a.close(),n(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));o(u.result.modelArtifacts)},u.onerror=c=>(a.close(),n(u.error)),i.oncomplete=()=>a.close()}else{let i=Ri(t),l=a.transaction(tl,"readwrite"),u=l.objectStore(tl),c=u.put({modelPath:this.modelPath,modelArtifactsInfo:i}),p;c.onsuccess=()=>{p=a.transaction(du,"readwrite");let f=p.objectStore(du).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});f.onsuccess=()=>o({modelArtifactsInfo:i}),f.onerror=d=>{u=l.objectStore(tl);let h=u.delete(this.modelPath);h.onsuccess=()=>(a.close(),n(f.error)),h.onerror=g=>(a.close(),n(f.error))}},c.onerror=m=>(a.close(),n(c.error)),l.oncomplete=()=>{p==null?a.close():p.oncomplete=()=>a.close()}}},s.onerror=a=>n(s.error)})}};ga.URL_SCHEME="indexeddb://";var WI=r=>W().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(ga.URL_SCHEME)?m3(r.slice(ga.URL_SCHEME.length)):null;Ct.registerSaveRouter(WI);Ct.registerLoadRouter(WI);function m3(r){return new ga(r)}function f3(r){return r.startsWith(ga.URL_SCHEME)?r.slice(ga.URL_SCHEME.length):r}var zb=class{constructor(){this.indexedDB=GI()}async listModels(){return new Promise((e,t)=>{let o=this.indexedDB.open(Pb,Mb);o.onupgradeneeded=()=>Lb(o),o.onsuccess=()=>{let n=o.result,s=n.transaction(tl,"readonly"),i=s.objectStore(tl).getAll();i.onsuccess=()=>{let l={};for(let u of i.result)l[u.modelPath]=u.modelArtifactsInfo;e(l)},i.onerror=l=>(n.close(),t(i.error)),s.oncomplete=()=>n.close()},o.onerror=n=>t(o.error)})}async removeModel(e){return e=f3(e),new Promise((t,o)=>{let n=this.indexedDB.open(Pb,Mb);n.onupgradeneeded=()=>Lb(n),n.onsuccess=()=>{let s=n.result,a=s.transaction(tl,"readwrite"),i=a.objectStore(tl),l=i.get(e),u;l.onsuccess=()=>{if(l.result==null)return s.close(),o(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let c=i.delete(e),p=()=>{u=s.transaction(du,"readwrite");let f=u.objectStore(du).delete(e);f.onsuccess=()=>t(l.result.modelArtifactsInfo),f.onerror=d=>o(l.error)};c.onsuccess=p,c.onerror=m=>(p(),s.close(),o(l.error))}},l.onerror=c=>(s.close(),o(l.error)),a.oncomplete=()=>{u==null?s.close():u.oncomplete=()=>s.close()}},n.onerror=s=>o(n.error)})}};var xa="/",Bc="tensorflowjs_models",UI="info",d3="model_topology",h3="weight_specs",g3="weight_data",x3="model_metadata";function jI(r){return{info:[Bc,r,UI].join(xa),topology:[Bc,r,d3].join(xa),weightSpecs:[Bc,r,h3].join(xa),weightData:[Bc,r,g3].join(xa),modelMetadata:[Bc,r,x3].join(xa)}}function y3(r){let e=r.split(xa);if(e.length<3)throw new Error(`Invalid key format: ${r}`);return e.slice(1,e.length-1).join(xa)}function b3(r){return r.startsWith(ya.URL_SCHEME)?r.slice(ya.URL_SCHEME.length):r}var ya=class{constructor(e){if(!W().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=jI(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),o=JSON.stringify(e.weightSpecs),n=Ri(e);try{this.LS.setItem(this.keys.info,JSON.stringify(n)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,o),this.LS.setItem(this.keys.weightData,PI(e.weightData));let s={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};return e.signature!=null&&(s.signature=e.signature),e.userDefinedMetadata!=null&&(s.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(s.modelInitializer=e.modelInitializer),this.LS.setItem(this.keys.modelMetadata,JSON.stringify(s)),{modelArtifactsInfo:n}}catch(s){throw this.LS.removeItem(this.keys.info),this.LS.removeItem(this.keys.topology),this.LS.removeItem(this.keys.weightSpecs),this.LS.removeItem(this.keys.weightData),this.LS.removeItem(this.keys.modelMetadata),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${n.modelTopologyBytes}, weightSpecsBytes=${n.weightSpecsBytes}, weightDataBytes=${n.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},o=JSON.parse(this.LS.getItem(this.keys.topology));if(o==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=o;let n=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(n==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=n;let s=this.LS.getItem(this.keys.modelMetadata);if(s!=null){let i=JSON.parse(s);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer)}let a=this.LS.getItem(this.keys.weightData);if(a==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=MI(a),t}};ya.URL_SCHEME="localstorage://";var HI=r=>W().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(ya.URL_SCHEME)?w3(r.slice(ya.URL_SCHEME.length)):null;Ct.registerSaveRouter(HI);Ct.registerLoadRouter(HI);function w3(r){return new ya(r)}var Bb=class{constructor(){A(W().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),A(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=Bc+xa,o=xa+UI;for(let n=0;n"scheme must not be undefined or null."),e.endsWith(Vc)&&(e=e.slice(0,e.indexOf(Vc))),A(e.length>0,()=>"scheme must not be an empty string.");let o=Hr.getInstance();A(o.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),o.managers[e]=t}static getManager(e){let t=this.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}};function zh(r){if(r.indexOf(Vc)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Hr.getSchemes().join(",")}`);return{scheme:r.split(Vc)[0],path:r.split(Vc)[1]}}async function qI(r,e,t=!1){A(r!==e,()=>`Old path and new path are the same: '${r}'`);let o=Ct.getLoadHandlers(r);A(o.length>0,()=>`Copying failed because no load handler is found for source URL ${r}.`),A(o.length<2,()=>`Copying failed because more than one (${o.length}) load handlers for source URL ${r}.`);let n=o[0],s=Ct.getSaveHandlers(e);A(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${e}.`),A(s.length<2,()=>`Copying failed because more than one (${o.length}) save handlers for destination URL ${e}.`);let a=s[0],i=zh(r).scheme,l=zh(r).path,u=i===zh(r).scheme,c=await n.load();t&&u&&await Hr.getManager(i).removeModel(l);let p=await a.save(c);return t&&!u&&await Hr.getManager(i).removeModel(l),p.modelArtifactsInfo}async function KI(){let r=Hr.getSchemes(),e={};for(let t of r){let o=await Hr.getManager(t).listModels();for(let n in o){let s=t+Vc+n;e[s]=o[n]}}return e}async function XI(r){let e=zh(r);return Hr.getManager(e.scheme).removeModel(e.path)}async function YI(r,e){return qI(r,e,!1)}async function ZI(r,e){return qI(r,e,!0)}var JI=class{fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}};if(W().get("IS_BROWSER")){W().setPlatform("browser",new JI);try{Hr.registerManager(ya.URL_SCHEME,new Bb)}catch(r){}try{Hr.registerManager(ga.URL_SCHEME,new zb)}catch(r){}}var _3={importFetch:()=>QI()},Vb;var eN=class{constructor(){this.util=require("util"),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return W().global.fetch!=null?W().global.fetch(e,t):(Vb==null&&(Vb=_3.importFetch()),Vb(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};W().get("IS_NODE")&&W().setPlatform("node",new eN);function ve(r,e="float32",t){return e=e||"float32",am(r),new lt(r,e,t)}function k3(r,e){let t=k(r,"x","cast");if(!fb(e))throw new Error(`Failed to cast to unknown dtype ${e}`);if(e==="string"&&t.dtype!=="string"||e!=="string"&&t.dtype==="string")throw new Error("Only strings can be casted to strings");let o={x:t},n={dtype:e};return E.runKernel(Do,o,n)}var ne=S({cast_:k3});function v3(r){let t={x:k(r,"x","clone","string_or_numeric")};return E.runKernel(Ro,t)}var Oo=S({clone_:v3});function Gb(r,e=!1){console.log(r.toString(e))}$b();var C3={buffer:ve,cast:ne,clone:Oo,print:Gb};TI(C3);var Cr={};Je(Cr,{browserFiles:()=>oN,browserHTTPRequest:()=>iN,concatenateArrayBuffers:()=>zc,copyModel:()=>YI,decodeWeights:()=>Lh,encodeWeights:()=>FI,fromMemory:()=>lN,getLoadHandlers:()=>VI,getModelArtifactsInfoForJSON:()=>Ri,getSaveHandlers:()=>BI,http:()=>Gh,isHTTPScheme:()=>Vh,listModels:()=>KI,loadWeights:()=>nN,moveModel:()=>ZI,registerLoadRouter:()=>zI,registerSaveRouter:()=>LI,removeModel:()=>XI,weightsLoaderFactory:()=>jb,withSaveHandler:()=>uN});var I3="model",N3=".json",S3=".weights.bin";function tN(r){return new Promise(e=>setTimeout(e)).then(r)}var rl=class{constructor(e){if(!W().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(rl.URL_SCHEME)&&(e=e.slice(rl.URL_SCHEME.length)),(e==null||e.length===0)&&(e=I3),this.modelTopologyFileName=e+N3,this.weightDataFileName=e+S3}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let o=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:o};e.signature!=null&&(n.signature=e.signature),e.userDefinedMetadata!=null&&(n.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(n.modelInitializer=e.modelInitializer);let s=window.URL.createObjectURL(new Blob([JSON.stringify(n)],{type:"application/json"})),a=this.jsonAnchor==null?document.createElement("a"):this.jsonAnchor;if(a.download=this.modelTopologyFileName,a.href=s,await tN(()=>a.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await tN(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Ri(e)}}}};rl.URL_SCHEME="downloads://";var rN=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){let e=this.files[0],t=this.files.slice(1);return new Promise((o,n)=>{let s=new FileReader;s.onload=a=>{let i=JSON.parse(a.target.result),l=i.modelTopology;if(l==null){n(new Error(`modelTopology field is missing from file ${e.name}`));return}t.length===0&&o({modelTopology:l});let u=i.weightsManifest;if(u==null){n(new Error(`weightManifest field is missing from file ${e.name}`));return}let c;try{c=this.checkManifestAndWeightFiles(u,t)}catch(d){n(d);return}let p=[],m=[],f=[];u.forEach(d=>{d.paths.forEach(h=>{m.push(h),f.push(null)}),p.push(...d.weights)}),u.forEach(d=>{d.paths.forEach(h=>{let g=new FileReader;g.onload=y=>{let b=y.target.result,w=m.indexOf(h);if(f[w]=b,f.indexOf(null)===-1){let _={modelTopology:l,weightSpecs:p,weightData:zc(f),format:i.format,generatedBy:i.generatedBy,convertedBy:i.convertedBy};i.signature!=null&&(_.signature=i.signature),i.userDefinedMetadata!=null&&(_.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(_.modelInitializer=i.modelInitializer),o(_)}},g.onerror=y=>n(`Failed to weights data from file of path '${h}'.`),g.readAsArrayBuffer(c[h])})})},s.onerror=a=>n(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),s.readAsText(e)})}checkManifestAndWeightFiles(e,t){let o=[],n=t.map(a=>Ob(a.name)),s={};for(let a of e)a.paths.forEach(i=>{let l=Ob(i);if(o.indexOf(l)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${l}'`);if(o.push(l),n.indexOf(l)===-1)throw new Error(`Weight file with basename '${l}' is not provided.`);s[i]=t[n.indexOf(l)]});if(o.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${o.length}) and the number of weight files provided (${t.length}).`);return s}},A3=r=>W().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(rl.URL_SCHEME)?T3(r.slice(rl.URL_SCHEME.length)):null;Ct.registerSaveRouter(A3);function T3(r="model"){return new rl(r)}function oN(r){return new rN(r)}function Wb(r,e,t,o){a(r),t=t==null?0:t,o=o==null?1:o,i(t,o);let n=0,s=l=>(l.then(u=>{let c=t+ ++n/r.length*(o-t);return e(c),u}),l);function a(l){A(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function i(l,u){A(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),A(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${u}`),A(u>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${u}`)}return Promise.all(r.map(s))}async function Ub(r,e){e==null&&(e={});let t=e.fetchFunc==null?W().platform.fetch:e.fetchFunc,o=r.map(p=>t(p,e.requestInit,{isBinary:!0})),n=0,s=.5,i=(e.onProgress==null?await Promise.all(o):await Wb(o,e.onProgress,n,s)).map(p=>p.arrayBuffer()),l=.5,u=1;return e.onProgress==null?await Promise.all(i):await Wb(i,e.onProgress,l,u)}async function nN(r,e="",t,o){return jb(a=>Ub(a,{requestInit:o}))(r,e,t)}function jb(r){return async(e,t="",o)=>{let n=e.map(()=>!1),s={},a=o!=null?o.map(()=>!1):[],i=[];if(e.forEach((f,d)=>{let h=0;f.weights.forEach(g=>{let y="quantization"in g?g.quantization.dtype:g.dtype,b=gm[y]*ct(g.shape),w=()=>{n[d]=!0,s[d]==null&&(s[d]=[]),s[d].push({manifestEntry:g,groupOffset:h,sizeBytes:b})};o!=null?o.forEach((_,C)=>{_===g.name&&(w(),a[C]=!0)}):w(),i.push(g.name),h+=b})}),!a.every(f=>f)){let f=o.filter((d,h)=>!a[h]);throw new Error(`Could not find weights in manifest with names: ${f.join(", ")}. -Manifest JSON has weights with names: ${i.join(", ")}.`)}let l=n.reduce((f,d,h)=>(d&&f.push(h),f),[]),u=[];l.forEach(f=>{e[f].paths.forEach(d=>{let h=t+(t.endsWith("/")?"":"/")+d;u.push(h)})});let c=await r(u),p={},m=0;return l.forEach(f=>{let d=e[f].paths.length,h=0;for(let _=0;_{let C=g.slice(_.groupOffset,_.groupOffset+_.sizeBytes),D=Lh(C,[_.manifestEntry]);for(let T in D)p[T]=D[T]}),m+=d}),p}}var E3="application/octet-stream",D3="application/json",Bh=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(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=W().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,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let o=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:o};e.signature!=null&&(n.signature=e.signature),e.userDefinedMetadata!=null&&(n.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(n.modelInitializer=e.modelInitializer),t.body.append("model.json",new Blob([JSON.stringify(n)],{type:D3}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:E3}),"model.weights.bin");let s=await this.fetch(this.path,t);if(s.ok)return{modelArtifactsInfo:Ri(e),responses:[s]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async load(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(d){let h=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?h+=" 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.":h+=" Please make sure the server is serving valid JSON for this request.",new Error(h)}let o=t.modelTopology,n=t.weightsManifest,s=t.generatedBy,a=t.convertedBy,i=t.format,l=t.signature,u=t.userDefinedMetadata;if(o==null&&n==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let c,p;n!=null&&([c,p]=await this.loadWeights(n));let m={modelTopology:o,weightSpecs:c,weightData:p,generatedBy:s,convertedBy:a,format:i};l!=null&&(m.signature=l),u!=null&&(m.userDefinedMetadata=u);let f=t.modelInitializer;return f&&(m.modelInitializer=f),m}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[o,n]=$3(t),s=this.weightPathPrefix||o,a=[];for(let c of e)a.push(...c.weights);let i=[],l=[];for(let c of e)for(let p of c.paths)this.weightUrlConverter!=null?l.push(this.weightUrlConverter(p)):i.push(s+p+n);this.weightUrlConverter&&i.push(...await Promise.all(l));let u=await Ub(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[a,zc(u)]}};Bh.URL_SCHEME_REGEX=/^https?:\/\//;function $3(r){let e=r.lastIndexOf("/"),t=r.lastIndexOf("?"),o=r.substring(0,e),n=t>e?r.substring(t):"";return[o+"/",n]}function Vh(r){return r.match(Bh.URL_SCHEME_REGEX)!=null}var sN=(r,e)=>{if(typeof fetch=="undefined"&&(e==null||e.fetchFunc==null))return null;{let t=!0;if(Array.isArray(r)?t=r.every(o=>Vh(o)):t=Vh(r),t)return Gh(r,e)}return null};Ct.registerSaveRouter(sN);Ct.registerLoadRouter(sN);function Gh(r,e){return new Bh(r,e)}function iN(r,e){return Gh(r,e)}var Wh=class{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}},aN=class{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}};function lN(r,e,t,o){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new Wh(r):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Wh({modelTopology:r})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Wh({modelTopology:r,weightSpecs:e,weightData:t,trainingConfig:o}))}function uN(r){return new aN(r)}var cN={};Je(cN,{confusionMatrix:()=>M3});function R3(r,e,t=!1,o=!1){let n=k(r,"a","matMul"),s=k(e,"b","matMul");[n,s]=Ge(n,s);let a={a:n,b:s},i={transposeA:t,transposeB:o};return E.runKernel(Xo,a,i)}var We=S({matMul_:R3});function F3(r,e,t=1,o=0){if(e<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${e}`);let s={indices:k(r,"indices","oneHot","int32")},a={depth:e,onValue:t,offValue:o};return E.runKernel(yn,s,a)}var vs=S({oneHot_:F3});function O3(r,e){let t=k(r,"x","transpose");if(e==null&&(e=t.shape.map((s,a)=>a).reverse()),A(t.rank===e.length,()=>`Error in transpose: rank of input ${t.rank} must match length of perm ${e}.`),e.forEach(s=>{A(s>=0&&s`All entries in 'perm' must be between 0 and ${t.rank-1} but got ${e}`)}),t.rank<=1)return t.clone();let o={x:t},n={perm:e};return E.runKernel(Pn,o,n)}var je=S({transpose_:O3});function P3(r,e,t){let o=k(r,"labels","confusionMatrix"),n=k(e,"predictions","confusionMatrix");A(t==null||t>0&&Number.isInteger(t),()=>`If provided, numClasses must be a positive integer, but got ${t}`),A(o.rank===1,()=>`Expected the rank of labels to be 1, but got ${o.rank}`),A(n.rank===1,()=>`Expected the rank of predictions to be 1, but got ${n.rank}`),A(o.shape[0]===n.shape[0],()=>`Mismatch in the number of examples: ${o.shape[0]} vs. ${n.shape[0]}. Labels and predictions should have the same number of elements.`),A(t>0&&Number.isInteger(t),()=>`numClasses is required to be a positive integer, but got ${t}`);let s=vs(ne(o,"int32"),t),a=vs(ne(n,"int32"),t),i=je(s),l=We(i,a);return ne(l,"int32")}var M3=S({confusionMatrix_:P3});var Uh={};Je(Uh,{fromPixels:()=>B3,toPixels:()=>z3});function Hb(r,e,t){if(Eo(r),e!=null&&e.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let o=vr(r,t);if(o.length!==3&&o.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(o.length===1&&e==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return jr(r,e,o,t)}var Gc;function L3(r,e=3){if(e>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(r==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let t=!1,o=!1,n=!1,s=!1,a=!1,i=!1;if(r.data instanceof Uint8Array)t=!0;else if(typeof ImageData!="undefined"&&r instanceof ImageData)o=!0;else if(typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement)n=!0;else if(typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement)s=!0;else if(r.getContext!=null)a=!0;else if(typeof ImageBitmap!="undefined"&&r instanceof ImageBitmap)i=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${r.constructor.name}`);if(n){let d=2;if(n&&r.readyState element.")}if(Fc($c,E.backendName)!=null){let d={pixels:r},h={numChannels:e};return E.runKernel($c,d,h)}let[u,c]=n?[r.videoWidth,r.videoHeight]:[r.width,r.height],p;a?p=r.getContext("2d").getImageData(0,0,u,c).data:o||t?p=r.data:(s||n||i)&&(Gc==null&&(Gc=document.createElement("canvas").getContext("2d")),Gc.canvas.width=u,Gc.canvas.height=c,Gc.drawImage(r,0,0,u,c),p=Gc.getImageData(0,0,u,c).data);let m;if(e===4)m=new Int32Array(p);else{let d=u*c;m=new Int32Array(d*e);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(t.dtype!=="float32"&&t.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${t.dtype}. Please use float32 or int32 tensors.`);let a=await t.data(),i=t.dtype==="float32"?255:1,l=new Uint8ClampedArray(n*o*4);for(let u=0;u1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${f}.`)}else if(t.dtype==="int32"&&(f<0||f>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${f}.`);s===1?(c[0]=f*i,c[1]=f*i,c[2]=f*i):c[m]=f*i}let p=u*4;l[p+0]=Math.round(c[0]),l[p+1]=Math.round(c[1]),l[p+2]=Math.round(c[2]),l[p+3]=Math.round(c[3])}if(e!=null){e.width=n,e.height=o;let u=e.getContext("2d"),c=new ImageData(l,n,o);u.putImageData(c,0,0)}return t!==r&&t.dispose(),l}var B3=S({fromPixels_:L3});var jh={};Je(jh,{prepareAndValidate:()=>pN});function pN(r,e){let t=r.shape.length,o=e.shape.length;if(t<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${t}.`);if(o<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${o}.`);if(e.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.shape[o-1]>t)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${e.shape[o-1]} vs. ${t}`);if(ct(r.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${r.shape}.`);let n=e.shape,s=n[n.length-1],a=1;for(let p=0;pp/u),1].slice(0,s);return[l,a,u,c]}var Hh={};Je(Hh,{calculateShapes:()=>mN,validateInput:()=>qh,validateUpdateShape:()=>qb});function qb(r,e,t){let o=e.rank>1?e.shape[e.rank-1]:1,n=e.rank>1?e.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${t.shape}, indices.shape: ${e.shape}, shape: ${r}, sliceDim: ${o}, and batchDim: ${n}.`;if(t.rank1?e.shape[o-1]:1,s=t.length,a=1;for(let p=n;pV3,computeFlatOffset:()=>W3,computeOutShape:()=>fN,getNormalizedAxes:()=>kN,isSliceContinous:()=>G3,maskToAxes:()=>Kh,parseSliceParams:()=>Kb,sliceInfo:()=>U3,startForAxis:()=>wN,startIndicesWithElidedDims:()=>xN,stopForAxis:()=>_N,stopIndicesWithElidedDims:()=>yN,stridesForAxis:()=>bN,stridesWithElidedDims:()=>dN});function V3(r,e,t){let o=r.shape.length;A(o===e.length,()=>`Error in slice${o}D: Length of begin ${e} must match the rank of the array (${o}).`),A(o===t.length,()=>`Error in slice${o}D: Length of size ${t} must match the rank of the array (${o}).`);for(let n=0;n`Error in slice${o}D: begin[${n}] + size[${n}] (${e[n]+t[n]}) would overflow input.shape[${n}] (${r.shape[n]})`)}function Kh(r){let e=[],t=0;for(;r>0;)r&1&&e.push(t),r/=2,t++;return e}function fN(r,e,t){let o=[];for(let n=0;n0){let f=e[0],d=t+1;c=xN(a,f,d,o,r),p=yN(i,f,d,n,r),m=dN(s,f,d,r)}else for(let f=0;f-1)s[i]=0;else{let l=hN(e,t,i),u=o[l];r&1<-1)s[i]=Number.MAX_SAFE_INTEGER;else{let l=hN(e,t,i),u=o[l];r&1<0?a=Number.MIN_SAFE_INTEGER:a=Number.MAX_SAFE_INTEGER);let l=o[n];return a<0&&(a+=l),a=Nc(0,a,l-1),a}function _N(r,e,t,o,n,s){let a=e[n],i=t[n]||1;(r&1<0?a=Number.MAX_SAFE_INTEGER:a=Number.MIN_SAFE_INTEGER);let l=o[n];return a<0&&(a+=l),i>0?a=Nc(0,a,l):a=Nc(-1,a,l-1),a}function G3(r,e,t){let o=t.length;for(let n=0;n1){o=n;break}for(let n=o+1;n0||t[n]!==r[n])return!1;return!0}function W3(r,e){let t=r.length>0?r[r.length-1]:1;for(let o=0;o{A(a!==-1,()=>"slice() does not support negative begin indexing.")});let s;return t==null?s=new Array(n).fill(-1):typeof t=="number"?s=[t,...new Array(n-1).fill(-1)]:t.lengtha>=0?a:(A(a===-1,()=>`Negative size values should be exactly -1 but got ${a} for the slice() size at index ${i}.`),r.shape[i]-o[i])),[o,s]}function U3(r,e,t,o,n,s,a,i,l){let u=e.slice(),c=t.slice(),p=o;o==null&&(p=new Array(u.length));let m=Kh(a);if(m.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(a!==0&&i!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(a!==0&&l!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let f=r.length-u.length,d=Kh(i),h=r.slice();d.forEach(T=>{u[T]=0,c[T]=1,h.splice(T,0,1)});let{begin:g,end:y,strides:b}=kN(h,m,f,u,c,p,n,s,a);u=g,c=y,p=b;let w=Kh(l);w.forEach(T=>{c[T]=u[T]+1,p[T]=1});let _=fN(u,c,p),C=_.filter((T,R)=>w.indexOf(R)===-1);return{nonStrided:p.every(T=>T===1),$begin:u,$end:c,$strides:p,size:_,newShape:h,outShape:C}}var J={};Je(J,{Serializable:()=>Xh,SerializationMap:()=>ba,registerClass:()=>so});var Xh=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},ba=class{constructor(){this.classNameMap={}}static getMap(){return ba.instance==null&&(ba.instance=new ba),ba.instance}static register(e){ba.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function so(r){A(r.className!=null,()=>"Class being registered does not have the static className property defined."),A(typeof r.className=="string",()=>"className is required to be a string, but got type "+typeof r.className),A(r.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),ba.register(r)}var vN={};Je(vN,{TEST_EPSILON_FLOAT16:()=>CN,encodeStrings:()=>IN,expectArrayBuffersEqual:()=>Z3,expectArraysClose:()=>H3,expectArraysEqual:()=>K3,expectNumbersClose:()=>X3,expectPromiseToFail:()=>q3,expectValuesInRange:()=>Y3,testEpsilon:()=>Xb});var j3=.001,CN=.1;function H3(r,e,t){return t==null&&(t=Xb()),Yb(r,e,(o,n)=>Zb(o,n,t))}function Xb(){return E.backend.floatPrecision()===32?j3:CN}function Yb(r,e,t){let o=!0;if((or(r)||or(e))&&(o=!1),or(r)&&or(e)&&(o=!0),o){let a=r.constructor.name,i=e.constructor.name;if(a!==i)throw new Error(`Arrays are of different type. Actual: ${a}. Expected: ${i}`)}if(Array.isArray(r)&&Array.isArray(e)){let a=vr(r),i=vr(e);if(!Ur(a,i))throw new Error(`Arrays have different shapes. Actual: [${a}]. Expected: [${i}]`)}let n=or(r)?r:ss(r),s=or(e)?e:ss(e);if(n.length!==s.length)throw new Error(`Arrays have different lengths actual: ${n.length} vs expected: ${s.length}. +`;return m[m.length-1]=" "+m[m.length-1]+"]"+(s?"":d),m}function xm(r){let e=[];for(let t=0;t`Length of values '${n}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=o||xb(t,this.size),this.strides=js(e)}set(e,...t){t.length===0&&(t=[0]),E(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let o=this.locToIndex(t);this.values[o]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let n of e){if(n<0||n>=this.shape[t]){let s=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(s)}t++}let o=e[e.length-1];for(let n=0;nBc(o))}catch(o){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataSync(){this.throwIfDisposed();let e=$i().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>Bc(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 $i().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||($i().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Vc.print(this,e)}clone(){return this.throwIfDisposed(),Vc.clone(this)}toString(e=!1){let t=this.dataSync();return j0(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Vc.cast(this,e)}variable(e=!0,t,o){return this.throwIfDisposed(),$i().makeVariable(this,e,t,o)}};Object.defineProperty(Ve,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function O(){return mm("Tensor",()=>Ve)}O();var el=class extends Ve{constructor(e,t,o,n){super(e.shape,e.dtype,e.dataId,n);this.trainable=t,this.name=o}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!Ur(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);$i().disposeTensor(this),this.dataId=e.dataId,$i().incRef(this,null)}dispose(){$i().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(el,Symbol.hasInstance,{value:r=>r instanceof Ve&&r.assign!=null&&r.assign instanceof Function});var Mn={};Je(Mn,{assertTypesMatch:()=>Ob,getTensorsInContainer:()=>ym,isTensorInList:()=>eV,makeTypesMatch:()=>Ge});var Eb;(function(r){r.R0="R0",r.R1="R1",r.R2="R2",r.R3="R3",r.R4="R4",r.R5="R5",r.R6="R6"})(Eb||(Eb={}));var Db;(function(r){r.float32="float32",r.int32="int32",r.bool="int32",r.complex64="complex64"})(Db||(Db={}));var $b;(function(r){r.float32="float32",r.int32="int32",r.bool="bool",r.complex64="complex64"})($b||($b={}));var Rb;(function(r){r.float32="float32",r.int32="float32",r.bool="float32",r.complex64="complex64"})(Rb||(Rb={}));var Fb;(function(r){r.float32="complex64",r.int32="complex64",r.bool="complex64",r.complex64="complex64"})(Fb||(Fb={}));var Q3={float32:Rb,int32:Db,bool:$b,complex64:Fb};function dr(r,e){if(r==="string"||e==="string"){if(r==="string"&&e==="string")return"string";throw new Error(`Can not upcast ${r} with ${e}`)}return Q3[r][e]}function fu(r){return dr(r,"int32")}function Ge(r,e){if(r.dtype===e.dtype)return[r,e];let t=dr(r.dtype,e.dtype);return[r.cast(t),e.cast(t)]}function Ob(r,e){E(r.dtype===e.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${e.dtype}) input must match`)}function eV(r,e){return e.some(t=>t.id===r.id)}function ym(r){let e=[],t=new Set;return Y0(r,e,t),e}function Y0(r,e,t){if(r==null)return;if(r instanceof Ve){e.push(r);return}if(!tV(r))return;let o=r;for(let n in o){let s=o[n];t.has(s)||(t.add(s),Y0(s,e,t))}}function tV(r){return Array.isArray(r)||typeof r=="object"}function Pb(r){return r.kernelName!=null}var Mb=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},du=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Mb}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{t.setupFunc!=null&&t.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){dm(e).forEach(o=>{o.disposeFunc!=null&&o.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let o=t.factory();if(o&&!(o instanceof Ws)&&typeof o.then=="function"){let n=++this.pendingBackendInitId,s=o.then(a=>n(nthis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(o),()=>this.endScope(n),()=>(n=t(),n instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),n))}scopedRun(e,t,o){e();try{let n=o();return t(),n}catch(n){throw t(),n}}nextTensorId(){return du.nextTensorId++}nextVariableId(){return du.nextVariableId++}clone(e){let t=D.runKernel(Ro,{x:e}),o={x:e},n=a=>({x:()=>{let i="float32",l={x:a},u={dtype:i};return D.runKernel(Do,l,u)}}),s=[];return this.addTapeNode(this.state.activeScope.name,o,[t],n,s,{}),t}runKernel(e,t,o){if(!(Lc(e,this.backendName)!=null))throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:o})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,o){let n=this.backend.numDataIds(),s=0;o.forEach(l=>{s+=l.dtype==="complex64"?3:1});let a=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=n-t-s-a;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e){let t,o=[],n=this.isTapeOn(),s=this.state.numBytes,a=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let l,u=Pb(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(Pb(e)){let{kernelName:d,inputs:h,attrs:g}=e;this.backendName==null&&this.backend;let x=Lc(d,this.backendName);E(x!=null,()=>`Cannot find registered kernel '${d}' for backend '${this.backendName}'`),i=()=>{let w=this.backend.numDataIds();l=x.kernelFunc({inputs:h,attrs:g,backend:this.backend});let b=Array.isArray(l)?l:[l];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(d,w,b);let _=b.map(k=>{if(k.rank!=null)return k;let{dataId:A,shape:N,dtype:$}=k;return this.makeTensorFromDataId(A,N,$)});if(n){let k=this.getTensorsForGradient(d,h,_);o=this.saveTensorsForBackwardMode(k)}return _}}else{let{forwardFunc:d}=e,h=g=>{!n||(o=g.map(x=>this.keep(this.clone(x))))};i=()=>{let g=this.backend.numDataIds();l=this.tidy(()=>d(this.backend,h));let x=Array.isArray(l)?l:[l];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(u,g,x),x}}let{inputs:c,attrs:p}=e,m=Pb(e)?null:e.backwardsFunc,f;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(f=this.profiler.profileKernel(u,c,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(f),t=f.outputs)}),n&&this.addTapeNode(u,c,t,m,o,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:u,bytesAdded:this.state.numBytes-s,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-a,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(d=>c[d]!=null?c[d].shape:null),outputShapes:t.map(d=>d.shape),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(l)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(o=>this.keep(this.clone(o)))}getTensorsForGradient(e,t,o){let n=Lh(e);if(n!=null){let s=n.inputsToSave||[],a=n.outputsToSave||[],i;n.saveAllInputs?(E(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(u=>t[u])):i=s.map(u=>t[u]);let l=o.filter((u,c)=>a[c]);return i.concat(l)}return[]}makeTensor(e,t,o,n){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");o=o||"float32",n=n||this.backend;let s=e;o==="string"&&is(e[0])&&(s=e.map(l=>Qa(l)));let a=n.write(s,t,o),i=new Ve(t,o,a,this.nextTensorId());if(this.trackTensor(i,n),o==="string"){let l=this.state.tensorInfo.get(a),u=wb(s);this.state.numBytes+=u-l.bytes,l.bytes=u}return i}makeTensorFromDataId(e,t,o,n){o=o||"float32";let s=new Ve(t,o,e,this.nextTensorId());return this.trackTensor(s,n),s}makeVariable(e,t=!0,o,n){o=o||this.nextVariableId().toString(),n!=null&&n!==e.dtype&&(e=e.cast(n));let s=new el(e,t,o,this.nextTensorId());if(this.state.registeredVariables[s.name]!=null)throw new Error(`Variable with name ${s.name} was already registered`);return this.state.registeredVariables[s.name]=s,this.incRef(s,this.backend),s}trackTensor(e,t){this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++;let o=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(o=e.size*Ph(e.dtype)),this.state.numBytes+=o,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:o})),e instanceof el||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,e.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),e.dtype!=="complex64"&&e.dtype!=="string"){let o=e.size*Ph(e.dtype);this.state.numBytes-=o}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,o=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(n=>n.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-o;for(let n of this.state.activeProfile.kernels)n.kernelTimeMs=await n.kernelTimeMs,n.extraInfo=await n.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,o,n,s,a){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:o,saved:s},l=Lh(e);l!=null&&(n=l.gradFunc),n!=null&&(i.gradient=u=>(u=u.map((c,p)=>{if(c==null){let m=o[p],f=Rc(m.size,m.dtype);return this.makeTensor(f,m.shape,m.dtype)}return c}),n(u.length>1?u:u[0],s,a))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=ym(e),o=new Set(t.map(s=>s.id));for(let s=0;s{!s.kept&&s.scopeId===n.id&&this.track(s)})}gradients(e,t,o,n=!1){if(E(t.length>0,()=>"gradients() received an empty list of xs."),o!=null&&o.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${o.dtype}'`);let s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));E(s instanceof Ve,()=>"The result y returned by f() must be a tensor.");let a=G0(this.state.activeTape,t,s);if(!n&&a.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let i={};i[s.id]=o==null?rV(s.shape):o,W0(i,a,u=>this.tidy(u),oV);let l=t.map(u=>i[u.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(u=>{for(let c of u.saved)c.dispose()}),this.state.activeTape=null),{value:s,grads:l}})}customGrad(e){return E(Us(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{E(t.every(i=>i instanceof Ve),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let o,n={};t.forEach((i,l)=>{n[l]=i});let s=(i,l)=>(o=e(...t,l),E(o.value instanceof Ve,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),E(Us(o.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),o.value),a=(i,l)=>{let u=o.gradFunc(i,l),c=Array.isArray(u)?u:[u];E(c.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),E(c.every(m=>m instanceof Ve),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let p={};return c.forEach((m,f)=>{p[f]=()=>m}),p};return this.runKernelFunc({forwardFunc:s,backwardsFunc:a,inputs:n})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}async time(e){let t=mu(),o=await this.backend.time(e);return o.wallMs=mu()-t,o}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Mb;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};du.nextTensorId=0;du.nextVariableId=0;function rV(r){let e=um(ct(r),"float32");return D.makeTensor(e,r,"float32")}function Lb(){let r=vb();if(r._tfengine==null){let e=new Mh(r);r._tfengine=new du(e)}return B0(r._tfengine.ENV),q0(()=>r._tfengine),r._tfengine}var D=Lb();function oV(r,e){let t={a:r,b:e};return D.runKernel(wo,t)}var hu={};Je(hu,{isBrowser:()=>zb,isMobile:()=>sV});function nV(){return typeof navigator!="undefined"&&navigator!=null}function sV(){if(nV()){let r=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(r)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(r.substr(0,4))}return!1}function zb(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var vs=j();vs.registerFlag("DEBUG",()=>!1,r=>{r&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});vs.registerFlag("IS_BROWSER",()=>zb());vs.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");vs.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));vs.registerFlag("PROD",()=>!1);vs.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>vs.getBool("DEBUG"));vs.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);vs.registerFlag("IS_TEST",()=>!1);vs.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);vs.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);function Cr(r,e){let t=r;if(nr(r))return e==="string"?[]:[r.length];if(!Array.isArray(r))return[];let o=[];for(;Array.isArray(t)||nr(t)&&e!=="string";)o.push(t.length),t=t[0];return Array.isArray(r)&&j().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&Z0(r,o,[]),o}function Z0(r,e,t){if(t=t||[],!Array.isArray(r)&&!nr(r)){E(e.length===0,()=>`Element arr[${t.join("][")}] is a primitive, but should be an array/TypedArray of ${e[0]} elements`);return}E(e.length>0,()=>`Element arr[${t.join("][")}] should be a primitive, but is an array of ${r.length} elements`),E(r.length===e[0],()=>`Element arr[${t.join("][")}] should have ${e[0]} elements, but has ${r.length} elements`);let o=e.slice(1);for(let n=0;n=0&&(n=o),J0(o,n,e,t),r==null||!nr(r)&&!Array.isArray(r)&&typeof r!="number"&&typeof r!="boolean"&&typeof r!="string"){let l=r==null?"null":r.constructor.name;throw new Error(`Argument '${e}' passed to '${t}' must be a Tensor or TensorLike, but got '${l}'`)}let s=Cr(r,n);!nr(r)&&!Array.isArray(r)&&(r=[r]);let i=n!=="string"?zc(r,n):ss(r,[],!0);return D.makeTensor(i,s,n)}function ha(r,e,t,o="numeric"){if(!Array.isArray(r))throw new Error(`Argument ${e} passed to ${t} must be a \`Tensor[]\` or \`TensorLike[]\``);return r.map((s,a)=>v(s,`${e}[${a}]`,t,o))}var Q0="__op";function T(r){let e=Object.keys(r);if(e.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${e.length} keys.`);let t=e[0],o=r[t];t.endsWith("_")&&(t=t.substring(0,t.length-1)),t=t+Q0;let n=(...s)=>{D.startScope(t);try{let a=o(...s);return pm(a)&&console.error("Cannot return a Promise inside of tidy."),D.endScope(a),a}catch(a){throw D.endScope(null),a}};return Object.defineProperty(n,"name",{value:t,configurable:!0}),n}function iV(r,e){let t=v(r,"real","complex"),o=v(e,"imag","complex");Ct(t.shape,o.shape,`real and imag shapes, ${t.shape} and ${o.shape}, must match in call to tf.complex().`);let n={real:t,imag:o};return D.runKernel(Gl,n)}var ko=T({complex_:iV});function jr(r,e,t,o){if(o==null&&(o=Dc(r)),o==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!nr(r)&&!Array.isArray(r)&&typeof r!="number"&&typeof r!="boolean"&&typeof r!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(e!=null){cm(e);let n=ct(e),s=ct(t);E(n===s,()=>`Based on the provided shape, [${e}], the tensor should have ${n} values but has ${s}`);for(let a=0;a`Error creating a new Tensor. Inferred shape (${t}) does not match the provided shape (${e}). `)}}return!nr(r)&&!Array.isArray(r)&&(r=[r]),e=e||t,r=o!=="string"?zc(r,o):ss(r,[],!0),D.makeTensor(r,e,o)}function Rr(r,e,t){let o=Cr(r,t);return jr(r,e,o,t)}var bm={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var Bh=4;async function eI(r,e){let t=[],o=[],n=Array.isArray(r)?r.map(a=>a.name):Object.keys(r);for(let a=0;a{let m=await l.bytes(),f=m.reduce((g,x)=>g+x.length,0)+Bh*m.length,d=new Uint8Array(f),h=0;for(let g=0;g{if(e+=s.byteLength,t.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let o=new Uint8Array(e),n=0;return t.forEach(s=>{o.set(new Uint8Array(s.buffer),n),n+=s.byteLength}),o.buffer}var Bb=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function tI(r){return Bb?Buffer.byteLength(r):new Blob([r]).size}function rI(r){if(Bb)return Buffer.from(r).toString("base64");let e=new Uint8Array(r),t="";for(let o=0,n=e.length;o{e+=n.byteLength});let t=new Uint8Array(e),o=0;return r.forEach(n=>{t.set(new Uint8Array(n),o),o+=n.byteLength}),t.buffer}function Vb(r){let e="/";for(r=r.trim();r.endsWith(e);)r=r.slice(0,r.length-1);let t=r.split(e);return t[t.length-1]}function Ri(r){if(r.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:r.modelTopology==null?0:tI(JSON.stringify(r.modelTopology)),weightSpecsBytes:r.weightSpecs==null?0:tI(JSON.stringify(r.weightSpecs)),weightDataBytes:r.weightData==null?0:r.weightData.byteLength}}function uV(){let r=t=>{let o=t<<13,n=0;for(;(o&8388608)==0;)n-=8388608,o<<=1;return o&=~8388608,n+=947912704,o|n},e=new Uint32Array(2048);e[0]=0;for(let t=1;t<1024;t++)e[t]=r(t);for(let t=1024;t<2048;t++)e[t]=939524096+(t-1024<<13);return e}function cV(){let r=new Uint32Array(64);r[0]=0,r[31]=1199570944,r[32]=2147483648,r[63]=3347054592;for(let e=1;e<31;e++)r[e]=e<<23;for(let e=33;e<63;e++)r[e]=2147483648+(e-32<<23);return r}function pV(){let r=new Uint32Array(64);for(let e=0;e<64;e++)r[e]=1024;return r[0]=r[32]=0,r}function lV(){let r=uV(),e=cV(),t=pV();return o=>{let n=new ArrayBuffer(4*o.length),s=new Uint32Array(n);for(let a=0;a>10]+(i&1023)]+e[i>>10];s[a]=l}return new Float32Array(n)}}var It=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return It.instance==null&&(It.instance=new It),It.instance}static registerSaveRouter(e){It.getInstance().saveRouters.push(e)}static registerLoadRouter(e){It.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return It.getHandlers(e,"save")}static getLoadHandlers(e,t){return It.getHandlers(e,"load",t)}static getHandlers(e,t,o){let n=[];return(t==="load"?It.getInstance().loadRouters:It.getInstance().saveRouters).forEach(a=>{let i=a(e,o);i!==null&&n.push(i)}),n}},nI=r=>It.registerSaveRouter(r),sI=r=>It.registerLoadRouter(r),iI=r=>It.getSaveHandlers(r),aI=(r,e)=>It.getLoadHandlers(r,e);var Gb="tensorflowjs",Wb=1,gu="models_store",tl="model_info_store";function lI(){if(!j().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let r=typeof window=="undefined"?self:window,e=r.indexedDB||r.mozIndexedDB||r.webkitIndexedDB||r.msIndexedDB||r.shimIndexedDB;if(e==null)throw new Error("The current browser does not appear to support IndexedDB.");return e}function Ub(r){let e=r.result;e.createObjectStore(gu,{keyPath:"modelPath"}),e.createObjectStore(tl,{keyPath:"modelPath"})}var ga=class{constructor(e){if(this.indexedDB=lI(),e==null||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((o,n)=>{let s=this.indexedDB.open(Gb,Wb);s.onupgradeneeded=()=>Ub(s),s.onsuccess=()=>{let a=s.result;if(t==null){let i=a.transaction(gu,"readonly"),u=i.objectStore(gu).get(this.modelPath);u.onsuccess=()=>{if(u.result==null)return a.close(),n(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));o(u.result.modelArtifacts)},u.onerror=c=>(a.close(),n(u.error)),i.oncomplete=()=>a.close()}else{let i=Ri(t),l=a.transaction(tl,"readwrite"),u=l.objectStore(tl),c=u.put({modelPath:this.modelPath,modelArtifactsInfo:i}),p;c.onsuccess=()=>{p=a.transaction(gu,"readwrite");let f=p.objectStore(gu).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});f.onsuccess=()=>o({modelArtifactsInfo:i}),f.onerror=d=>{u=l.objectStore(tl);let h=u.delete(this.modelPath);h.onsuccess=()=>(a.close(),n(f.error)),h.onerror=g=>(a.close(),n(f.error))}},c.onerror=m=>(a.close(),n(c.error)),l.oncomplete=()=>{p==null?a.close():p.oncomplete=()=>a.close()}}},s.onerror=a=>n(s.error)})}};ga.URL_SCHEME="indexeddb://";var uI=r=>j().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(ga.URL_SCHEME)?mV(r.slice(ga.URL_SCHEME.length)):null;It.registerSaveRouter(uI);It.registerLoadRouter(uI);function mV(r){return new ga(r)}function fV(r){return r.startsWith(ga.URL_SCHEME)?r.slice(ga.URL_SCHEME.length):r}var jb=class{constructor(){this.indexedDB=lI()}async listModels(){return new Promise((e,t)=>{let o=this.indexedDB.open(Gb,Wb);o.onupgradeneeded=()=>Ub(o),o.onsuccess=()=>{let n=o.result,s=n.transaction(tl,"readonly"),i=s.objectStore(tl).getAll();i.onsuccess=()=>{let l={};for(let u of i.result)l[u.modelPath]=u.modelArtifactsInfo;e(l)},i.onerror=l=>(n.close(),t(i.error)),s.oncomplete=()=>n.close()},o.onerror=n=>t(o.error)})}async removeModel(e){return e=fV(e),new Promise((t,o)=>{let n=this.indexedDB.open(Gb,Wb);n.onupgradeneeded=()=>Ub(n),n.onsuccess=()=>{let s=n.result,a=s.transaction(tl,"readwrite"),i=a.objectStore(tl),l=i.get(e),u;l.onsuccess=()=>{if(l.result==null)return s.close(),o(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let c=i.delete(e),p=()=>{u=s.transaction(gu,"readwrite");let f=u.objectStore(gu).delete(e);f.onsuccess=()=>t(l.result.modelArtifactsInfo),f.onerror=d=>o(l.error)};c.onsuccess=p,c.onerror=m=>(p(),s.close(),o(l.error))}},l.onerror=c=>(s.close(),o(l.error)),a.oncomplete=()=>{u==null?s.close():u.oncomplete=()=>s.close()}},n.onerror=s=>o(n.error)})}};var xa="/",Wc="tensorflowjs_models",cI="info",dV="model_topology",hV="weight_specs",gV="weight_data",xV="model_metadata";function pI(r){return{info:[Wc,r,cI].join(xa),topology:[Wc,r,dV].join(xa),weightSpecs:[Wc,r,hV].join(xa),weightData:[Wc,r,gV].join(xa),modelMetadata:[Wc,r,xV].join(xa)}}function yV(r){let e=r.split(xa);if(e.length<3)throw new Error(`Invalid key format: ${r}`);return e.slice(1,e.length-1).join(xa)}function bV(r){return r.startsWith(ya.URL_SCHEME)?r.slice(ya.URL_SCHEME.length):r}var ya=class{constructor(e){if(!j().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=pI(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),o=JSON.stringify(e.weightSpecs),n=Ri(e);try{this.LS.setItem(this.keys.info,JSON.stringify(n)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,o),this.LS.setItem(this.keys.weightData,rI(e.weightData));let s={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};return e.signature!=null&&(s.signature=e.signature),e.userDefinedMetadata!=null&&(s.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(s.modelInitializer=e.modelInitializer),this.LS.setItem(this.keys.modelMetadata,JSON.stringify(s)),{modelArtifactsInfo:n}}catch(s){throw this.LS.removeItem(this.keys.info),this.LS.removeItem(this.keys.topology),this.LS.removeItem(this.keys.weightSpecs),this.LS.removeItem(this.keys.weightData),this.LS.removeItem(this.keys.modelMetadata),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${n.modelTopologyBytes}, weightSpecsBytes=${n.weightSpecsBytes}, weightDataBytes=${n.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},o=JSON.parse(this.LS.getItem(this.keys.topology));if(o==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=o;let n=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(n==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=n;let s=this.LS.getItem(this.keys.modelMetadata);if(s!=null){let i=JSON.parse(s);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer)}let a=this.LS.getItem(this.keys.weightData);if(a==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=oI(a),t}};ya.URL_SCHEME="localstorage://";var mI=r=>j().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(ya.URL_SCHEME)?wV(r.slice(ya.URL_SCHEME.length)):null;It.registerSaveRouter(mI);It.registerLoadRouter(mI);function wV(r){return new ya(r)}var Hb=class{constructor(){E(j().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),E(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=Wc+xa,o=xa+cI;for(let n=0;n"scheme must not be undefined or null."),e.endsWith(Uc)&&(e=e.slice(0,e.indexOf(Uc))),E(e.length>0,()=>"scheme must not be an empty string.");let o=Hr.getInstance();E(o.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),o.managers[e]=t}static getManager(e){let t=this.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}};function Gh(r){if(r.indexOf(Uc)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Hr.getSchemes().join(",")}`);return{scheme:r.split(Uc)[0],path:r.split(Uc)[1]}}async function fI(r,e,t=!1){E(r!==e,()=>`Old path and new path are the same: '${r}'`);let o=It.getLoadHandlers(r);E(o.length>0,()=>`Copying failed because no load handler is found for source URL ${r}.`),E(o.length<2,()=>`Copying failed because more than one (${o.length}) load handlers for source URL ${r}.`);let n=o[0],s=It.getSaveHandlers(e);E(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${e}.`),E(s.length<2,()=>`Copying failed because more than one (${o.length}) save handlers for destination URL ${e}.`);let a=s[0],i=Gh(r).scheme,l=Gh(r).path,u=i===Gh(r).scheme,c=await n.load();t&&u&&await Hr.getManager(i).removeModel(l);let p=await a.save(c);return t&&!u&&await Hr.getManager(i).removeModel(l),p.modelArtifactsInfo}async function dI(){let r=Hr.getSchemes(),e={};for(let t of r){let o=await Hr.getManager(t).listModels();for(let n in o){let s=t+Uc+n;e[s]=o[n]}}return e}async function hI(r){let e=Gh(r);return Hr.getManager(e.scheme).removeModel(e.path)}async function gI(r,e){return fI(r,e,!1)}async function xI(r,e){return fI(r,e,!0)}var yI=class{fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}};if(j().get("IS_BROWSER")){j().setPlatform("browser",new yI);try{Hr.registerManager(ya.URL_SCHEME,new Hb)}catch(r){}try{Hr.registerManager(ga.URL_SCHEME,new jb)}catch(r){}}var _V={importFetch:()=>bI()},qb;var wI=class{constructor(){this.util=require("util"),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return j().global.fetch!=null?j().global.fetch(e,t):(qb==null&&(qb=_V.importFetch()),qb(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};j().get("IS_NODE")&&j().setPlatform("node",new wI);function ve(r,e="float32",t){return e=e||"float32",cm(r),new lt(r,e,t)}function kV(r,e){let t=v(r,"x","cast");if(!bb(e))throw new Error(`Failed to cast to unknown dtype ${e}`);if(e==="string"&&t.dtype!=="string"||e!=="string"&&t.dtype==="string")throw new Error("Only strings can be casted to strings");let o={x:t},n={dtype:e};return D.runKernel(Do,o,n)}var ne=T({cast_:kV});function vV(r){let t={x:v(r,"x","clone","string_or_numeric")};return D.runKernel(Ro,t)}var Oo=T({clone_:vV});function Kb(r,e=!1){console.log(r.toString(e))}Lb();var CV={buffer:ve,cast:ne,clone:Oo,print:Kb};K0(CV);var Ir={};Je(Ir,{browserFiles:()=>vI,browserHTTPRequest:()=>NI,concatenateArrayBuffers:()=>Gc,copyModel:()=>gI,decodeWeights:()=>Vh,encodeWeights:()=>eI,fromMemory:()=>TI,getLoadHandlers:()=>aI,getModelArtifactsInfoForJSON:()=>Ri,getSaveHandlers:()=>iI,http:()=>jh,isHTTPScheme:()=>Uh,listModels:()=>dI,loadWeights:()=>CI,moveModel:()=>xI,registerLoadRouter:()=>sI,registerSaveRouter:()=>nI,removeModel:()=>hI,weightsLoaderFactory:()=>Zb,withSaveHandler:()=>AI});var IV="model",NV=".json",SV=".weights.bin";function _I(r){return new Promise(e=>setTimeout(e)).then(r)}var rl=class{constructor(e){if(!j().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(rl.URL_SCHEME)&&(e=e.slice(rl.URL_SCHEME.length)),(e==null||e.length===0)&&(e=IV),this.modelTopologyFileName=e+NV,this.weightDataFileName=e+SV}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let o=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:o};e.signature!=null&&(n.signature=e.signature),e.userDefinedMetadata!=null&&(n.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(n.modelInitializer=e.modelInitializer);let s=window.URL.createObjectURL(new Blob([JSON.stringify(n)],{type:"application/json"})),a=this.jsonAnchor==null?document.createElement("a"):this.jsonAnchor;if(a.download=this.modelTopologyFileName,a.href=s,await _I(()=>a.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await _I(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Ri(e)}}}};rl.URL_SCHEME="downloads://";var kI=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){let e=this.files[0],t=this.files.slice(1);return new Promise((o,n)=>{let s=new FileReader;s.onload=a=>{let i=JSON.parse(a.target.result),l=i.modelTopology;if(l==null){n(new Error(`modelTopology field is missing from file ${e.name}`));return}t.length===0&&o({modelTopology:l});let u=i.weightsManifest;if(u==null){n(new Error(`weightManifest field is missing from file ${e.name}`));return}let c;try{c=this.checkManifestAndWeightFiles(u,t)}catch(d){n(d);return}let p=[],m=[],f=[];u.forEach(d=>{d.paths.forEach(h=>{m.push(h),f.push(null)}),p.push(...d.weights)}),u.forEach(d=>{d.paths.forEach(h=>{let g=new FileReader;g.onload=x=>{let w=x.target.result,b=m.indexOf(h);if(f[b]=w,f.indexOf(null)===-1){let _={modelTopology:l,weightSpecs:p,weightData:Gc(f),format:i.format,generatedBy:i.generatedBy,convertedBy:i.convertedBy};i.signature!=null&&(_.signature=i.signature),i.userDefinedMetadata!=null&&(_.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(_.modelInitializer=i.modelInitializer),o(_)}},g.onerror=x=>n(`Failed to weights data from file of path '${h}'.`),g.readAsArrayBuffer(c[h])})})},s.onerror=a=>n(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),s.readAsText(e)})}checkManifestAndWeightFiles(e,t){let o=[],n=t.map(a=>Vb(a.name)),s={};for(let a of e)a.paths.forEach(i=>{let l=Vb(i);if(o.indexOf(l)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${l}'`);if(o.push(l),n.indexOf(l)===-1)throw new Error(`Weight file with basename '${l}' is not provided.`);s[i]=t[n.indexOf(l)]});if(o.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${o.length}) and the number of weight files provided (${t.length}).`);return s}},AV=r=>j().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(rl.URL_SCHEME)?TV(r.slice(rl.URL_SCHEME.length)):null;It.registerSaveRouter(AV);function TV(r="model"){return new rl(r)}function vI(r){return new kI(r)}function Xb(r,e,t,o){a(r),t=t==null?0:t,o=o==null?1:o,i(t,o);let n=0,s=l=>(l.then(u=>{let c=t+ ++n/r.length*(o-t);return e(c),u}),l);function a(l){E(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function i(l,u){E(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),E(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${u}`),E(u>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${u}`)}return Promise.all(r.map(s))}async function Yb(r,e){e==null&&(e={});let t=e.fetchFunc==null?j().platform.fetch:e.fetchFunc,o=r.map(p=>t(p,e.requestInit,{isBinary:!0})),n=0,s=.5,i=(e.onProgress==null?await Promise.all(o):await Xb(o,e.onProgress,n,s)).map(p=>p.arrayBuffer()),l=.5,u=1;return e.onProgress==null?await Promise.all(i):await Xb(i,e.onProgress,l,u)}async function CI(r,e="",t,o){return Zb(a=>Yb(a,{requestInit:o}))(r,e,t)}function Zb(r){return async(e,t="",o)=>{let n=e.map(()=>!1),s={},a=o!=null?o.map(()=>!1):[],i=[];if(e.forEach((f,d)=>{let h=0;f.weights.forEach(g=>{let x="quantization"in g?g.quantization.dtype:g.dtype,w=bm[x]*ct(g.shape),b=()=>{n[d]=!0,s[d]==null&&(s[d]=[]),s[d].push({manifestEntry:g,groupOffset:h,sizeBytes:w})};o!=null?o.forEach((_,k)=>{_===g.name&&(b(),a[k]=!0)}):b(),i.push(g.name),h+=w})}),!a.every(f=>f)){let f=o.filter((d,h)=>!a[h]);throw new Error(`Could not find weights in manifest with names: ${f.join(", ")}. +Manifest JSON has weights with names: ${i.join(", ")}.`)}let l=n.reduce((f,d,h)=>(d&&f.push(h),f),[]),u=[];l.forEach(f=>{e[f].paths.forEach(d=>{let h=t+(t.endsWith("/")?"":"/")+d;u.push(h)})});let c=await r(u),p={},m=0;return l.forEach(f=>{let d=e[f].paths.length,h=0;for(let _=0;_{let k=g.slice(_.groupOffset,_.groupOffset+_.sizeBytes),A=Vh(k,[_.manifestEntry]);for(let N in A)p[N]=A[N]}),m+=d}),p}}var EV="application/octet-stream",DV="application/json",Wh=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(E(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=j().platform.fetch,E(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&E(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let o=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:o};e.signature!=null&&(n.signature=e.signature),e.userDefinedMetadata!=null&&(n.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(n.modelInitializer=e.modelInitializer),t.body.append("model.json",new Blob([JSON.stringify(n)],{type:DV}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:EV}),"model.weights.bin");let s=await this.fetch(this.path,t);if(s.ok)return{modelArtifactsInfo:Ri(e),responses:[s]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async load(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(d){let h=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?h+=" 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.":h+=" Please make sure the server is serving valid JSON for this request.",new Error(h)}let o=t.modelTopology,n=t.weightsManifest,s=t.generatedBy,a=t.convertedBy,i=t.format,l=t.signature,u=t.userDefinedMetadata;if(o==null&&n==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let c,p;n!=null&&([c,p]=await this.loadWeights(n));let m={modelTopology:o,weightSpecs:c,weightData:p,generatedBy:s,convertedBy:a,format:i};l!=null&&(m.signature=l),u!=null&&(m.userDefinedMetadata=u);let f=t.modelInitializer;return f&&(m.modelInitializer=f),m}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[o,n]=$V(t),s=this.weightPathPrefix||o,a=[];for(let c of e)a.push(...c.weights);let i=[],l=[];for(let c of e)for(let p of c.paths)this.weightUrlConverter!=null?l.push(this.weightUrlConverter(p)):i.push(s+p+n);this.weightUrlConverter&&i.push(...await Promise.all(l));let u=await Yb(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[a,Gc(u)]}};Wh.URL_SCHEME_REGEX=/^https?:\/\//;function $V(r){let e=r.lastIndexOf("/"),t=r.lastIndexOf("?"),o=r.substring(0,e),n=t>e?r.substring(t):"";return[o+"/",n]}function Uh(r){return r.match(Wh.URL_SCHEME_REGEX)!=null}var II=(r,e)=>{if(typeof fetch=="undefined"&&(e==null||e.fetchFunc==null))return null;{let t=!0;if(Array.isArray(r)?t=r.every(o=>Uh(o)):t=Uh(r),t)return jh(r,e)}return null};It.registerSaveRouter(II);It.registerLoadRouter(II);function jh(r,e){return new Wh(r,e)}function NI(r,e){return jh(r,e)}var Hh=class{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}},SI=class{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}};function TI(r,e,t,o){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new Hh(r):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Hh({modelTopology:r})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Hh({modelTopology:r,weightSpecs:e,weightData:t,trainingConfig:o}))}function AI(r){return new SI(r)}var EI={};Je(EI,{confusionMatrix:()=>MV});function RV(r,e,t=!1,o=!1){let n=v(r,"a","matMul"),s=v(e,"b","matMul");[n,s]=Ge(n,s);let a={a:n,b:s},i={transposeA:t,transposeB:o};return D.runKernel(Xo,a,i)}var We=T({matMul_:RV});function FV(r,e,t=1,o=0){if(e<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${e}`);let s={indices:v(r,"indices","oneHot","int32")},a={depth:e,onValue:t,offValue:o};return D.runKernel(yn,s,a)}var Cs=T({oneHot_:FV});function OV(r,e){let t=v(r,"x","transpose");if(e==null&&(e=t.shape.map((s,a)=>a).reverse()),E(t.rank===e.length,()=>`Error in transpose: rank of input ${t.rank} must match length of perm ${e}.`),e.forEach(s=>{E(s>=0&&s`All entries in 'perm' must be between 0 and ${t.rank-1} but got ${e}`)}),t.rank<=1)return t.clone();let o={x:t},n={perm:e};return D.runKernel(Pn,o,n)}var je=T({transpose_:OV});function PV(r,e,t){let o=v(r,"labels","confusionMatrix"),n=v(e,"predictions","confusionMatrix");E(t==null||t>0&&Number.isInteger(t),()=>`If provided, numClasses must be a positive integer, but got ${t}`),E(o.rank===1,()=>`Expected the rank of labels to be 1, but got ${o.rank}`),E(n.rank===1,()=>`Expected the rank of predictions to be 1, but got ${n.rank}`),E(o.shape[0]===n.shape[0],()=>`Mismatch in the number of examples: ${o.shape[0]} vs. ${n.shape[0]}. Labels and predictions should have the same number of elements.`),E(t>0&&Number.isInteger(t),()=>`numClasses is required to be a positive integer, but got ${t}`);let s=Cs(ne(o,"int32"),t),a=Cs(ne(n,"int32"),t),i=je(s),l=We(i,a);return ne(l,"int32")}var MV=T({confusionMatrix_:PV});var qh={};Je(qh,{fromPixels:()=>UV,fromPixelsAsync:()=>GV,toPixels:()=>WV});function Jb(r,e,t){if(Eo(r),e!=null&&e.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let o=Cr(r,t);if(o.length!==3&&o.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(o.length===1&&e==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return jr(r,e,o,t)}var jc;function DI(r,e=3){if(e>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(r==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let t=!1,o=!1,n=!1,s=!1,a=!1,i=!1;if(r.data instanceof Uint8Array)t=!0;else if(typeof ImageData!="undefined"&&r instanceof ImageData)o=!0;else if(typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement)n=!0;else if(typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement)s=!0;else if(r.getContext!=null)a=!0;else if(typeof ImageBitmap!="undefined"&&r instanceof ImageBitmap)i=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${r.constructor.name}`);if(n){let d=2;if(n&&r.readyState element.")}if(Lc(Pc,D.backendName)!=null){let d={pixels:r},h={numChannels:e};return D.runKernel(Pc,d,h)}let[u,c]=n?[r.videoWidth,r.videoHeight]:[r.width,r.height],p;a?p=r.getContext("2d").getImageData(0,0,u,c).data:o||t?p=r.data:(s||n||i)&&(jc==null&&(jc=document.createElement("canvas").getContext("2d")),jc.canvas.width=u,jc.canvas.height=c,jc.drawImage(r,0,0,u,c),p=jc.getImageData(0,0,u,c).data);let m;if(e===4)m=new Int32Array(p);else{let d=u*c;m=new Int32Array(d*e);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(t.dtype!=="float32"&&t.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${t.dtype}. Please use float32 or int32 tensors.`);let a=await t.data(),i=t.dtype==="float32"?255:1,l=new Uint8ClampedArray(n*o*4);for(let u=0;u1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${f}.`)}else if(t.dtype==="int32"&&(f<0||f>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${f}.`);s===1?(c[0]=f*i,c[1]=f*i,c[2]=f*i):c[m]=f*i}let p=u*4;l[p+0]=Math.round(c[0]),l[p+1]=Math.round(c[1]),l[p+2]=Math.round(c[2]),l[p+3]=Math.round(c[3])}if(e!=null){e.width=n,e.height=o;let u=e.getContext("2d"),c=new ImageData(l,n,o);u.putImageData(c,0,0)}return t!==r&&t.dispose(),l}var UV=T({fromPixels_:DI});var Kh={};Je(Kh,{prepareAndValidate:()=>$I});function $I(r,e){let t=r.shape.length,o=e.shape.length;if(t<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${t}.`);if(o<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${o}.`);if(e.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.shape[o-1]>t)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${e.shape[o-1]} vs. ${t}`);if(ct(r.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${r.shape}.`);let n=e.shape,s=n[n.length-1],a=1;for(let p=0;pp/u),1].slice(0,s);return[l,a,u,c]}var Xh={};Je(Xh,{calculateShapes:()=>RI,validateInput:()=>Yh,validateUpdateShape:()=>Qb});function Qb(r,e,t){let o=e.rank>1?e.shape[e.rank-1]:1,n=e.rank>1?e.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${t.shape}, indices.shape: ${e.shape}, shape: ${r}, sliceDim: ${o}, and batchDim: ${n}.`;if(t.rank1?e.shape[o-1]:1,s=t.length,a=1;for(let p=n;pjV,computeFlatOffset:()=>qV,computeOutShape:()=>FI,getNormalizedAxes:()=>WI,isSliceContinous:()=>HV,maskToAxes:()=>Zh,parseSliceParams:()=>ew,sliceInfo:()=>KV,startForAxis:()=>VI,startIndicesWithElidedDims:()=>LI,stopForAxis:()=>GI,stopIndicesWithElidedDims:()=>zI,stridesForAxis:()=>BI,stridesWithElidedDims:()=>OI});function jV(r,e,t){let o=r.shape.length;E(o===e.length,()=>`Error in slice${o}D: Length of begin ${e} must match the rank of the array (${o}).`),E(o===t.length,()=>`Error in slice${o}D: Length of size ${t} must match the rank of the array (${o}).`);for(let n=0;n`Error in slice${o}D: begin[${n}] + size[${n}] (${e[n]+t[n]}) would overflow input.shape[${n}] (${r.shape[n]})`)}function Zh(r){let e=[],t=0;for(;r>0;)r&1&&e.push(t),r/=2,t++;return e}function FI(r,e,t){let o=[];for(let n=0;n0){let f=e[0],d=t+1;c=LI(a,f,d,o,r),p=zI(i,f,d,n,r),m=OI(s,f,d,r)}else for(let f=0;f-1)s[i]=0;else{let l=PI(e,t,i),u=o[l];r&1<-1)s[i]=Number.MAX_SAFE_INTEGER;else{let l=PI(e,t,i),u=o[l];r&1<0?a=Number.MIN_SAFE_INTEGER:a=Number.MAX_SAFE_INTEGER);let l=o[n];return a<0&&(a+=l),a=Ec(0,a,l-1),a}function GI(r,e,t,o,n,s){let a=e[n],i=t[n]||1;(r&1<0?a=Number.MAX_SAFE_INTEGER:a=Number.MIN_SAFE_INTEGER);let l=o[n];return a<0&&(a+=l),i>0?a=Ec(0,a,l):a=Ec(-1,a,l-1),a}function HV(r,e,t){let o=t.length;for(let n=0;n1){o=n;break}for(let n=o+1;n0||t[n]!==r[n])return!1;return!0}function qV(r,e){let t=r.length>0?r[r.length-1]:1;for(let o=0;o{E(a!==-1,()=>"slice() does not support negative begin indexing.")});let s;return t==null?s=new Array(n).fill(-1):typeof t=="number"?s=[t,...new Array(n-1).fill(-1)]:t.lengtha>=0?a:(E(a===-1,()=>`Negative size values should be exactly -1 but got ${a} for the slice() size at index ${i}.`),r.shape[i]-o[i])),[o,s]}function KV(r,e,t,o,n,s,a,i,l){let u=e.slice(),c=t.slice(),p=o;o==null&&(p=new Array(u.length));let m=Zh(a);if(m.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(a!==0&&i!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(a!==0&&l!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let f=r.length-u.length,d=Zh(i),h=r.slice();d.forEach(N=>{u[N]=0,c[N]=1,h.splice(N,0,1)});let{begin:g,end:x,strides:w}=WI(h,m,f,u,c,p,n,s,a);u=g,c=x,p=w;let b=Zh(l);b.forEach(N=>{c[N]=u[N]+1,p[N]=1});let _=FI(u,c,p),k=_.filter((N,$)=>b.indexOf($)===-1);return{nonStrided:p.every(N=>N===1),$begin:u,$end:c,$strides:p,size:_,newShape:h,outShape:k}}var Q={};Je(Q,{Serializable:()=>Jh,SerializationMap:()=>ba,registerClass:()=>so});var Jh=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},ba=class{constructor(){this.classNameMap={}}static getMap(){return ba.instance==null&&(ba.instance=new ba),ba.instance}static register(e){ba.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function so(r){E(r.className!=null,()=>"Class being registered does not have the static className property defined."),E(typeof r.className=="string",()=>"className is required to be a string, but got type "+typeof r.className),E(r.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),ba.register(r)}var UI={};Je(UI,{TEST_EPSILON_FLOAT16:()=>jI,encodeStrings:()=>HI,expectArrayBuffersEqual:()=>tG,expectArraysClose:()=>YV,expectArraysEqual:()=>JV,expectNumbersClose:()=>QV,expectPromiseToFail:()=>ZV,expectValuesInRange:()=>eG,testEpsilon:()=>tw});var XV=.001,jI=.1;function YV(r,e,t){return t==null&&(t=tw()),rw(r,e,(o,n)=>ow(o,n,t))}function tw(){return D.backend.floatPrecision()===32?XV:jI}function rw(r,e,t){let o=!0;if((nr(r)||nr(e))&&(o=!1),nr(r)&&nr(e)&&(o=!0),o){let a=r.constructor.name,i=e.constructor.name;if(a!==i)throw new Error(`Arrays are of different type. Actual: ${a}. Expected: ${i}`)}if(Array.isArray(r)&&Array.isArray(e)){let a=Cr(r),i=Cr(e);if(!Ur(a,i))throw new Error(`Arrays have different shapes. Actual: [${a}]. Expected: [${i}]`)}let n=nr(r)?r:ss(r),s=nr(e)?e:ss(e);if(n.length!==s.length)throw new Error(`Arrays have different lengths actual: ${n.length} vs expected: ${s.length}. Actual: ${n}. Expected: ${s}.`);for(let a=0;ae.fail(),()=>e())}function K3(r,e){let t=typeof e=="string"||typeof e=="number"||typeof e=="boolean"?[e]:e;return is(r)||is(r[0])||is(e)||is(e[0])?Yb(r,t,(o,n)=>o==n):Yb(r,e,(o,n)=>Zb(o,n,0))}function X3(r,e,t){if(t==null&&(t=Xb()),!Zb(r,e,t))throw new Error(`Numbers differ: actual === ${r}, expected === ${e}`)}function Zb(r,e,t){return!isFinite(r)&&!isFinite(e)?!0:!(isNaN(r)||isNaN(e)||Math.abs(r-e)>t)}function Y3(r,e,t){for(let o=0;ot)throw new Error(`Value out of range:${r[o]} low: ${e}, high: ${t}`)}function Z3(r,e){expect(new Float32Array(r)).toEqual(new Float32Array(e))}function IN(r){for(let e=0;et.dispose())}function Et(r){return E.keep(r)}function oV(r){return E.time(r)}function NN(r){return E.setBackend(r)}function nV(){return E.ready()}function sV(){return E.backendName}function iV(r){E.removeBackend(r)}function aV(r){return E.findBackend(r)}function lV(r){return E.findBackendFactory(r)}function hu(r,e,t=1){return E.registerBackend(r,e,t)}function Qb(){return E.backend}function uV(r,e){W().setPlatform(r,e)}function cV(r,e){let t=k(r,"a","add"),o=k(e,"b","add");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(wo,n)}var Q=S({add_:cV});function pV(r,e){let t=k(r,"a","floorDiv"),o=k(e,"b","floorDiv");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(sn,n)}var gu=S({floorDiv_:pV});function mV(r,e){let t=k(r,"a","div"),o=k(e,"b","div");if([t,o]=Ge(t,o),t.dtype==="int32"&&o.dtype==="int32")return gu(t,o);let n={a:t,b:o},s={};return E.runKernel(rn,n,s)}var me=S({div_:mV});function fV(r,e){let t=k(r,"a","mul"),o=k(e,"b","mul");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(xn,n)}var O=S({mul_:fV});function dV(r){let e=k(r,"x","abs");if(e.dtype==="complex64"){let t={x:e};return E.runKernel(oa,t)}else{let t={x:e};return E.runKernel(as,t)}}var It=S({abs_:dV});function hV(r){let t={x:k(r,"x","acos")};return E.runKernel(js,t)}var xm=S({acos_:hV});function gV(r){let t={x:k(r,"x","acosh")};return E.runKernel(Hs,t)}var ym=S({acosh_:gV});function xV(r){A(Array.isArray(r),()=>"The argument passed to tf.addN() must be a list of tensors"),A(r.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${r.length}`);let e=r.map((n,s)=>k(n,`tensors${s}`,"addN")),t=e[0];e.forEach(n=>{if(n.dtype!==t.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),e.forEach(n=>{if(!Ur(n.shape,t.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let o=e;return E.runKernel(Ho,o)}var ew=S({addN_:xV});function yV(r,e=null,t=!1){let n={x:k(r,"x","all","bool")},s={axis:e,keepDims:t};return E.runKernel(Ml,n,s)}var xu=S({all_:yV});function bV(r,e=null,t=!1){let n={x:k(r,"x","any","bool")},s={axis:e,keepDims:t};return E.runKernel(Ll,n,s)}var ol=S({any_:bV});function wV(r,e=0){let o={x:k(r,"x","argMax")},n={axis:e};return E.runKernel(qo,o,n)}var nl=S({argMax_:wV});function _V(r,e=0){let o={x:k(r,"x","argMin")},n={axis:e};return E.runKernel(ea,o,n)}var bm=S({argMin_:_V});function kV(r){let t={x:k(r,"x","asin")};return E.runKernel(qs,t)}var wm=S({asin_:kV});function vV(r){let t={x:k(r,"x","asinh")};return E.runKernel(Ks,t)}var _m=S({asinh_:vV});function CV(r){let t={x:k(r,"x","atan")};return E.runKernel(Xs,t)}var km=S({atan_:CV});function IV(r,e){let t=k(r,"a","atan2"),o=k(e,"b","atan2");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(Zs,n)}var vm=S({atan2_:IV});function NV(r){let t={x:k(r,"x","atanh")};return E.runKernel(Ys,t)}var Cm=S({atanh_:NV});function SV(r,e,t,o,n="NHWC",s){let a=r[3],i=[...e,a],l=SN(n);return yu(r,i,t,s,o,null,null,l)}function tw(r,e,t,o,n,s,a="channelsLast"){let[i,l]=Zh(e),u;if(a==="channelsLast")u=[i,l,r[3],r[3]];else if(a==="channelsFirst")u=[i,l,r[1],r[1]];else throw new Error(`Unknown dataFormat ${a}`);return yu(r,u,t,o,n,s,!1,a)}function TV(r,e,t,o,n,s,a="NDHWC"){let[i,l,u]=rw(e),c,p;if(a==="NDHWC")p="channelsLast",c=[i,l,u,r[4],r[4]];else if(a==="NCDHW")p="channelsFirst",c=[i,l,u,r[1],r[1]];else throw new Error(`Unknown dataFormat ${a}`);return TN(r,c,t,o,n,!1,p,s)}function yu(r,e,t,o,n,s,a=!1,i="channelsLast"){let[l,u,c,p]=[-1,-1,-1,-1];if(i==="channelsLast")[l,u,c,p]=r;else if(i==="channelsFirst")[l,p,u,c]=r;else throw new Error(`Unknown dataFormat ${i}`);let[m,f,,d]=e,[h,g]=Zh(t),[y,b]=Zh(o),w=Uc(m,y),_=Uc(f,b),{padInfo:C,outHeight:D,outWidth:T}=AV(n,u,c,h,g,w,_,s,i),R=a?d*p:d,P;return i==="channelsFirst"?P=[l,R,D,T]:i==="channelsLast"&&(P=[l,D,T,R]),{batchSize:l,dataFormat:i,inHeight:u,inWidth:c,inChannels:p,outHeight:D,outWidth:T,outChannels:R,padInfo:C,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:w,effectiveFilterWidth:_,dilationHeight:y,dilationWidth:b,inShape:r,outShape:P,filterShape:e}}function TN(r,e,t,o,n,s=!1,a="channelsLast",i){let[l,u,c,p,m]=[-1,-1,-1,-1,-1];if(a==="channelsLast")[l,u,c,p,m]=r;else if(a==="channelsFirst")[l,m,u,c,p]=r;else throw new Error(`Unknown dataFormat ${a}`);let[f,d,h,,g]=e,[y,b,w]=rw(t),[_,C,D]=rw(o),T=Uc(f,_),R=Uc(d,C),P=Uc(h,D),{padInfo:B,outDepth:G,outHeight:U,outWidth:j}=EV(n,u,c,p,y,b,w,T,R,P,i),H=s?g*m:g,K;return a==="channelsFirst"?K=[l,H,G,U,j]:a==="channelsLast"&&(K=[l,G,U,j,H]),{batchSize:l,dataFormat:a,inDepth:u,inHeight:c,inWidth:p,inChannels:m,outDepth:G,outHeight:U,outWidth:j,outChannels:H,padInfo:B,strideDepth:y,strideHeight:b,strideWidth:w,filterDepth:f,filterHeight:d,filterWidth:h,effectiveFilterDepth:T,effectiveFilterHeight:R,effectiveFilterWidth:P,dilationDepth:_,dilationHeight:C,dilationWidth:D,inShape:r,outShape:K,filterShape:e}}function DV(r,e,t,o,n){o==null&&(o=ow(r,e,t));let s=r[0],a=r[1],i=bu((s-e+2*o)/t+1,n),l=bu((a-e+2*o)/t+1,n);return[i,l]}function $V(r,e,t,o,n,s){n==null&&(n=ow(r,e,o));let a=r[0],i=r[1],l=r[2],u=bu((a-e+2*n)/o+1,s),c=bu((i-e+2*n)/o+1,s),p=bu((l-e+2*n)/o+1,s);return[u,c,p,t]}function ow(r,e,t,o=1){let n=Uc(e,o);return Math.floor((r[0]*(t-1)-t+n)/2)}function Zh(r){return typeof r=="number"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function rw(r){return typeof r=="number"?[r,r,r]:r}function Uc(r,e){return e<=1?r:r+(r-1)*(e-1)}function AV(r,e,t,o,n,s,a,i,l){let u,c,p;if(typeof r=="number"){u={top:r,bottom:r,left:r,right:r,type:r===0?"VALID":"NUMBER"};let f=DV([e,t],s,o,r,i);c=f[0],p=f[1]}else if(r==="same"){c=Math.ceil(e/o),p=Math.ceil(t/n);let m=Math.max(0,(c-1)*o+s-e),f=Math.max(0,(p-1)*n+a-t),d=Math.floor(m/2),h=m-d,g=Math.floor(f/2),y=f-g;u={top:d,bottom:h,left:g,right:y,type:"SAME"}}else if(r==="valid")u={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((e-s+1)/o),p=Math.ceil((t-a+1)/n);else if(typeof r=="object"){let m=l==="channelsLast"?r[1][0]:r[2][0],f=l==="channelsLast"?r[1][1]:r[2][1],d=l==="channelsLast"?r[2][0]:r[3][0],h=l==="channelsLast"?r[2][1]:r[3][1];u={top:m,bottom:f,left:d,right:h,type:m===0&&f===0&&d===0&&h===0?"VALID":"EXPLICIT"},c=bu((e-s+m+f)/o+1,i),p=bu((t-a+d+h)/n+1,i)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:u,outHeight:c,outWidth:p}}function EV(r,e,t,o,n,s,a,i,l,u,c){let p,m,f,d;if(typeof r=="number"){p={top:r,bottom:r,left:r,right:r,front:r,back:r,type:r===0?"VALID":"NUMBER"};let g=$V([e,t,o,1],i,1,n,r,c);m=g[0],f=g[1],d=g[2]}else if(r==="same"){m=Math.ceil(e/n),f=Math.ceil(t/s),d=Math.ceil(o/a);let h=(m-1)*n+i-e,g=(f-1)*s+l-t,y=(d-1)*a+u-o,b=Math.floor(h/2),w=h-b,_=Math.floor(g/2),C=g-_,D=Math.floor(y/2),T=y-D;p={top:_,bottom:C,left:D,right:T,front:b,back:w,type:"SAME"}}else if(r==="valid")p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},m=Math.ceil((e-i+1)/n),f=Math.ceil((t-l+1)/s),d=Math.ceil((o-u+1)/a);else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:p,outDepth:m,outHeight:f,outWidth:d}}function bu(r,e){if(!e)return Math.trunc(r);switch(e){case"round":return Math.round(r);case"ceil":return Math.ceil(r);case"floor":return Math.floor(r);default:throw new Error(`Unknown roundingMode ${e}`)}}function Mo(r){let[e,t,o]=Zh(r);return e===1&&t===1&&o===1}function wr(r,e){return Mo(r)||Mo(e)}function SN(r){if(r==="NHWC")return"channelsLast";if(r==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${r}`)}function RV(r,e){let o={x:k(r,"x","reshape","string_or_numeric")},n={shape:e};return E.runKernel(ds,o,n)}var M=S({reshape_:RV});function FV(r,e,t,o,n){let s=k(r,"x","avgPool","float32"),a=1;A(wr(t,a),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${t} and dilations '${a}'`);let i=s,l=!1;s.rank===3&&(l=!0,i=M(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(i.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${i.rank}.`),n!=null&&A(ot(o),()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${n} but got pad ${o}.`);let u={x:i},c={filterSize:e,strides:t,pad:o,dimRoundingMode:n},p=E.runKernel(Ko,u,c);return p=ne(p,s.dtype),l?M(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var wa=S({avgPool_:FV});function OV(r,e,t,o,n,s="NDHWC"){let a=k(r,"x","avgPool3d","float32"),i=a,l=!1;a.rank===4&&(l=!0,i=M(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),A(i.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${i.rank}.`),A(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),n!=null&&A(ot(o),()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${n} but got pad ${o}.`);let u={x:i},c={filterSize:e,strides:t,pad:o,dimRoundingMode:n,dataFormat:s},p=E.runKernel(ta,u,c);return p=ne(p,i.dtype),l?M(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Im=S({avgPool3d_:OV});function PV(r,e=0){A(r.length>=1,()=>"Pass at least one tensor to concat");let t=ha(r,"tensors","concat","string_or_numeric");if(t[0].dtype==="complex64"&&t.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor - with dtype ${s.dtype}. `)}),t.length===1)return Oo(t[0]);let o=t,n={axis:e};return E.runKernel(ls,o,n)}var Ye=S({concat_:PV});function MV(r){let t={x:k(r,"x","sigmoid")};return E.runKernel(An,t)}var qr=S({sigmoid_:MV});function LV(r,e,t){let o=k(r,"x","slice","string_or_numeric");if(o.rank===0)throw new Error("Slicing scalar is not possible");let n={x:o},s={begin:e,size:t};return E.runKernel(gs,n,s)}var Re=S({slice_:LV});function zV(r){let t={x:k(r,"x","tanh")};return E.runKernel(On,t)}var Fi=S({tanh_:zV});function BV(r,e,t,o,n,s){let a=k(r,"forgetBias","basicLSTMCell"),i=k(e,"lstmKernel","basicLSTMCell"),l=k(t,"lstmBias","basicLSTMCell"),u=k(o,"data","basicLSTMCell"),c=k(n,"c","basicLSTMCell"),p=k(s,"h","basicLSTMCell"),m=Ye([u,p],1),f=We(m,i),d=Q(f,l),h=d.shape[0],g=d.shape[1]/4,y=[h,g],b=Re(d,[0,0],y),w=Re(d,[0,g],y),_=Re(d,[0,g*2],y),C=Re(d,[0,g*3],y),D=Q(O(qr(b),Fi(w)),O(c,qr(Q(a,_)))),T=O(Fi(D),qr(C));return[D,T]}var VV=S({basicLSTMCell_:BV});function GV(r,e,t){let o=k(r,"x","batchToSpaceND"),n=e.reduce((i,l)=>i*l);A(o.rank>=1+e.length,()=>`input rank is ${o.rank} but should be > than blockShape.length ${e.length}`),A(t.length===e.length,()=>`crops.length is ${t.length} but should be equal to blockShape.length ${e.length}`),A(o.shape[0]%n==0,()=>`input tensor batch is ${o.shape[0]} but is not divisible by the product of the elements of blockShape ${e.join(" * ")} === ${n}`);let s={x:o},a={blockShape:e,crops:t};return E.runKernel(ra,s,a)}var _a=S({batchToSpaceND_:GV});function AN(r){let e;return r.rank===0||r.rank===1?e=M(r,[1,1,1,r.size]):r.rank===2?e=M(r,[1,1,r.shape[0],r.shape[1]]):r.rank===3?e=M(r,[1,r.shape[0],r.shape[1],r.shape[2]]):e=r,e}function WV(r,e,t,o,n,s){s==null&&(s=.001);let a=k(r,"x","batchNorm"),i=k(e,"mean","batchNorm"),l=k(t,"variance","batchNorm"),u;n!=null&&(u=k(n,"scale","batchNorm"));let c;o!=null&&(c=k(o,"offset","batchNorm")),A(i.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),A(c==null||i.rank===c.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),A(u==null||i.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let m={x:AN(a),scale:u,offset:c,mean:i,variance:l},f={varianceEpsilon:s},d=E.runKernel(an,m,f);return M(d,a.shape)}var Ln=S({batchNorm_:WV});function UV(r,e,t,o,n,s){let a=k(r,"x","batchNorm"),i=k(e,"mean","batchNorm"),l=k(t,"variance","batchNorm"),u;n!=null&&(u=k(n,"scale","batchNorm"));let c;return o!=null&&(c=k(o,"offset","batchNorm")),A(a.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${a.rank}.`),A(i.rank===2||i.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${i.rank}.`),A(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`),c!=null&&A(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`),Ln(a,i,l,c,u,s)}var nw=S({batchNorm2d_:UV});function jV(r,e,t,o,n,s){let a=k(r,"x","batchNorm"),i=k(e,"mean","batchNorm"),l=k(t,"variance","batchNorm"),u;n!=null&&(u=k(n,"scale","batchNorm"));let c;return o!=null&&(c=k(o,"offset","batchNorm")),A(a.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${a.rank}.`),A(i.rank===3||i.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${i.rank}.`),A(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`),c!=null&&A(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`),Ln(a,i,l,c,u,s)}var sw=S({batchNorm3d_:jV});function HV(r,e,t,o,n,s){let a=k(r,"x","batchNorm"),i=k(e,"mean","batchNorm"),l=k(t,"variance","batchNorm"),u;n!=null&&(u=k(n,"scale","batchNorm"));let c;return o!=null&&(c=k(o,"offset","batchNorm")),A(a.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${a.rank}.`),A(i.rank===4||i.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${i.rank}.`),A(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`),c!=null&&A(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`),Ln(a,i,l,c,u,s)}var iw=S({batchNorm4d_:HV});function qV(r,e,t){let o=k(r,"x","bincount"),n=k(e,"weights","bincount");A(o.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${o.dtype}`),A(t>=0,()=>`size must be non-negative, but got ${t}.`),A(n.size===o.size||n.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${o.shape}, weights shape: ${n.shape}.`);let s={x:o,weights:n},a={size:t};return E.runKernel(Vl,s,a)}var aw=S({bincount_:qV});function KV(r,e){let t=k(r,"broadcastTo","x"),o=t.shape;if(e.some(u=>!(u>0)||u%1!=0))throw new Error(`broadcastTo(): Invalid broadcast shape [${e}].`);if(e.lengtht.rank){let u=t.shape.slice();for(;u.length=0;u--)if(n[u]===e[u])s[u]=1;else if(t.shape[u]!==1)throw new Error(`broadcastTo(): [${o}] cannot be broadcast to [${e}].`);if(s.map((u,c)=>u>1?c:-1).filter(u=>u>=0).length===0)return Oo(t);let i={x:t},l={reps:s};return E.runKernel(_o,i,l)}var sl=S({broadcastTo_:KV});function XV(r){let t={x:k(r,"x","ceil")};return E.runKernel(Yo,t)}var Nm=S({ceil_:XV});function YV(r,e,t){let o=k(r,"x","clipByValue");A(e<=t,()=>`Error in clip: min (${e}) must be less than or equal to max (${t}).`);let n={x:o},s={clipValueMin:e,clipValueMax:t};return E.runKernel($o,n,s)}var sr=S({clipByValue_:YV});function ZV(r){return Ye(r,0)}var lw=S({concat1d_:ZV});function JV(r,e){return Ye(r,e)}var uw=S({concat2d_:JV});function QV(r,e){return Ye(r,e)}var cw=S({concat3d_:QV});function eG(r,e){return Ye(r,e)}var pw=S({concat4d_:eG});function tG(r,e,t,o,n="NHWC",s=[1,1],a){let i=k(r,"x","conv2d"),l=k(e,"filter","conv2d"),u=i,c=!1;i.rank===3&&(c=!0,u=M(i,[1,i.shape[0],i.shape[1],i.shape[2]])),A(u.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),a!=null&&A(ot(o),()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`);let p=n==="NHWC"?u.shape[3]:u.shape[1];A(p===l.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${l.shape[2]}.`),A(wr(t,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${t} and dilations '${s}'`);let m={x:u,filter:l},f={strides:t,pad:o,dataFormat:n,dilations:s,dimRoundingMode:a},d=E.runKernel(Zo,m,f);return c?M(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Kr=S({conv2d_:tG});function rG(r,e,t,o,n="NWC",s=1,a){let i=k(r,"x","conv1d"),l=k(e,"filter","conv1d"),u=i,c=!1;i.rank===2&&(c=!0,u=M(i,[1,i.shape[0],i.shape[1]])),A(u.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`),A(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),a!=null&&A(ot(o),()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`),A(u.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`),A(wr(t,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${t} and dilation '${s}'`),A(n==="NWC",()=>`Error in conv1d: got dataFormat of ${n} but only NWC is currently supported.`);let p=M(l,[1,l.shape[0],l.shape[1],l.shape[2]]),m=M(u,[u.shape[0],1,u.shape[1],u.shape[2]]),g=Kr(m,p,[1,t],o,"NHWC",[1,s],a);return c?M(g,[g.shape[2],g.shape[3]]):M(g,[g.shape[0],g.shape[2],g.shape[3]])}var wu=S({conv1d_:rG});function oG(r,e,t,o,n,s="NHWC",a){A(r.length===e.rank,()=>`Length of inShape (${r.length}) and rank of dy (${e.rank}) must match`);let i=r,l=e,u=!1;e.rank===3&&(u=!0,l=M(e,[1,e.shape[0],e.shape[1],e.shape[2]]),i=[1,r[0],r[1],r[2]]),A(i.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${i.length}.`),A(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),A(t.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${t.rank}`);let c=s==="NHWC"?i[3]:i[1],p=s==="NHWC"?l.shape[3]:l.shape[1];A(c===t.shape[2],()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${t.shape[2]}.`),A(p===t.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${t.shape[3]}.`),a!=null&&A(ot(n),()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${a} but got pad ${n}.`);let m={dy:l,filter:t},f={strides:o,pad:n,dataFormat:s,dimRoundingMode:a,inputShape:i},d=E.runKernel(Jo,m,f);return u?M(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var jc=S({conv2DBackpropInput_:oG});function nG(r,e,t,o,n,s){let a=k(r,"x","conv2dTranspose"),i=k(e,"filter","conv2dTranspose");return jc(t,a,i,o,n,"NHWC",s)}var _u=S({conv2dTranspose_:nG});function sG(r,e,t,o,n="NDHWC",s=[1,1,1]){let a=k(r,"x","conv3d"),i=k(e,"filter","conv3d"),l=a,u=!1;a.rank===4&&(u=!0,l=M(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),A(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),A(i.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${i.rank}.`),A(l.shape[4]===i.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${i.shape[3]}.`),A(wr(t,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${t} and dilations '${s}'`),A(n==="NDHWC",()=>`Error in conv3d: got dataFormat of ${n} but only NDHWC is currently supported.`);let c={x:l,filter:i},p={strides:t,pad:o,dataFormat:n,dilations:s},m=E.runKernel(na,c,p);return u?M(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Sm=S({conv3d_:sG});function iG(r,e,t,o,n){A(r.length===e.rank,()=>`Length of inShape (${r.length}) and rank of dy (${e.rank}) must match`);let s=r,a=e,i=!1;e.rank===4&&(i=!0,a=M(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]),s=[1,r[0],r[1],r[2],r[3]]);let l=s[4],u=a.shape[4];A(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),A(a.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${a.rank}`),A(t.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${t.rank}`),A(l===t.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${t.shape[3]}.`),A(u===t.shape[4],()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${t.shape[4]}.`);let c={dy:a,filter:t},p={pad:n,strides:o,inputShape:s},m=E.runKernel(jl,c,p);return i?M(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Jh=S({conv3DBackpropInput_:iG});function aG(r,e,t,o,n){let s=k(r,"x","conv3dTranspose"),a=k(e,"filter","conv3dTranspose");return Jh(t,s,a,o,n)}var lG=S({conv3dTranspose_:aG});function uG(r){let t={x:k(r,"x","cos")};return E.runKernel(Qo,t)}var ka=S({cos_:uG});function cG(r){let t={x:k(r,"x","cosh")};return E.runKernel(Js,t)}var ku=S({cosh_:cG});function pG(r,e=0,t=!1,o=!1){let s={x:k(r,"x","cumsum")},a={axis:e,exclusive:t,reverse:o};return E.runKernel(en,s,a)}var vu=S({cumsum_:pG});function mG(r,e,t,o=!1){let n=k(r,"x","denseBincount"),s=k(e,"weights","denseBincount");A(n.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${n.dtype}`),A(n.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${n.rank}.`),A(t>=0,()=>`size must be non-negative, but got ${t}.`),A(s.size===n.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${n.shape}, weights shape: ${s.shape}.`);let a={x:n,weights:s},i={size:t,binaryOutput:o};return E.runKernel(Hl,a,i)}var mw=S({denseBincount_:mG});function fG(r,e,t="NHWC"){let o=k(r,"x","depthToSpace"),n=t==="NHWC"?o.shape[1]:o.shape[2],s=t==="NHWC"?o.shape[2]:o.shape[3],a=t==="NHWC"?o.shape[3]:o.shape[1];A(n*e>=0,()=>`Negative dimension size caused by overflow when multiplying +Expected: ${s}.`)}}function ZV(r,e){r().then(()=>e.fail(),()=>e())}function JV(r,e){let t=typeof e=="string"||typeof e=="number"||typeof e=="boolean"?[e]:e;return is(r)||is(r[0])||is(e)||is(e[0])?rw(r,t,(o,n)=>o==n):rw(r,e,(o,n)=>ow(o,n,0))}function QV(r,e,t){if(t==null&&(t=tw()),!ow(r,e,t))throw new Error(`Numbers differ: actual === ${r}, expected === ${e}`)}function ow(r,e,t){return!isFinite(r)&&!isFinite(e)?!0:!(isNaN(r)||isNaN(e)||Math.abs(r-e)>t)}function eG(r,e,t){for(let o=0;ot)throw new Error(`Value out of range:${r[o]} low: ${e}, high: ${t}`)}function tG(r,e){expect(new Float32Array(r)).toEqual(new Float32Array(e))}function HI(r){for(let e=0;et.dispose())}function Dt(r){return D.keep(r)}function aG(r){return D.time(r)}function qI(r){return D.setBackend(r)}function lG(){return D.ready()}function uG(){return D.backendName}function cG(r){D.removeBackend(r)}function pG(r){return D.findBackend(r)}function mG(r){return D.findBackendFactory(r)}function xu(r,e,t=1){return D.registerBackend(r,e,t)}function sw(){return D.backend}function fG(r,e){j().setPlatform(r,e)}function dG(r,e){let t=v(r,"a","add"),o=v(e,"b","add");[t,o]=Ge(t,o);let n={a:t,b:o};return D.runKernel(wo,n)}var ee=T({add_:dG});function hG(r,e){let t=v(r,"a","floorDiv"),o=v(e,"b","floorDiv");[t,o]=Ge(t,o);let n={a:t,b:o};return D.runKernel(sn,n)}var yu=T({floorDiv_:hG});function gG(r,e){let t=v(r,"a","div"),o=v(e,"b","div");if([t,o]=Ge(t,o),t.dtype==="int32"&&o.dtype==="int32")return yu(t,o);let n={a:t,b:o},s={};return D.runKernel(rn,n,s)}var me=T({div_:gG});function xG(r,e){let t=v(r,"a","mul"),o=v(e,"b","mul");[t,o]=Ge(t,o);let n={a:t,b:o};return D.runKernel(xn,n)}var P=T({mul_:xG});function yG(r){let e=v(r,"x","abs");if(e.dtype==="complex64"){let t={x:e};return D.runKernel(oa,t)}else{let t={x:e};return D.runKernel(as,t)}}var Nt=T({abs_:yG});function bG(r){let t={x:v(r,"x","acos")};return D.runKernel(Hs,t)}var wm=T({acos_:bG});function wG(r){let t={x:v(r,"x","acosh")};return D.runKernel(qs,t)}var _m=T({acosh_:wG});function _G(r){E(Array.isArray(r),()=>"The argument passed to tf.addN() must be a list of tensors"),E(r.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${r.length}`);let e=r.map((n,s)=>v(n,`tensors${s}`,"addN")),t=e[0];e.forEach(n=>{if(n.dtype!==t.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),e.forEach(n=>{if(!Ur(n.shape,t.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let o=e;return D.runKernel(Ho,o)}var iw=T({addN_:_G});function kG(r,e=null,t=!1){let n={x:v(r,"x","all","bool")},s={axis:e,keepDims:t};return D.runKernel(Ml,n,s)}var bu=T({all_:kG});function vG(r,e=null,t=!1){let n={x:v(r,"x","any","bool")},s={axis:e,keepDims:t};return D.runKernel(Ll,n,s)}var ol=T({any_:vG});function CG(r,e=0){let o={x:v(r,"x","argMax")},n={axis:e};return D.runKernel(qo,o,n)}var nl=T({argMax_:CG});function IG(r,e=0){let o={x:v(r,"x","argMin")},n={axis:e};return D.runKernel(ea,o,n)}var km=T({argMin_:IG});function NG(r){let t={x:v(r,"x","asin")};return D.runKernel(Ks,t)}var vm=T({asin_:NG});function SG(r){let t={x:v(r,"x","asinh")};return D.runKernel(Xs,t)}var Cm=T({asinh_:SG});function TG(r){let t={x:v(r,"x","atan")};return D.runKernel(Ys,t)}var Im=T({atan_:TG});function AG(r,e){let t=v(r,"a","atan2"),o=v(e,"b","atan2");[t,o]=Ge(t,o);let n={a:t,b:o};return D.runKernel(Js,n)}var Nm=T({atan2_:AG});function EG(r){let t={x:v(r,"x","atanh")};return D.runKernel(Zs,t)}var Sm=T({atanh_:EG});function DG(r,e,t,o,n="NHWC",s){let a=r[3],i=[...e,a],l=KI(n);return wu(r,i,t,s,o,null,null,l)}function aw(r,e,t,o,n,s,a="channelsLast"){let[i,l]=eg(e),u;if(a==="channelsLast")u=[i,l,r[3],r[3]];else if(a==="channelsFirst")u=[i,l,r[1],r[1]];else throw new Error(`Unknown dataFormat ${a}`);return wu(r,u,t,o,n,s,!1,a)}function $G(r,e,t,o,n,s,a="NDHWC"){let[i,l,u]=lw(e),c,p;if(a==="NDHWC")p="channelsLast",c=[i,l,u,r[4],r[4]];else if(a==="NCDHW")p="channelsFirst",c=[i,l,u,r[1],r[1]];else throw new Error(`Unknown dataFormat ${a}`);return XI(r,c,t,o,n,!1,p,s)}function wu(r,e,t,o,n,s,a=!1,i="channelsLast"){let[l,u,c,p]=[-1,-1,-1,-1];if(i==="channelsLast")[l,u,c,p]=r;else if(i==="channelsFirst")[l,p,u,c]=r;else throw new Error(`Unknown dataFormat ${i}`);let[m,f,,d]=e,[h,g]=eg(t),[x,w]=eg(o),b=qc(m,x),_=qc(f,w),{padInfo:k,outHeight:A,outWidth:N}=RG(n,u,c,h,g,b,_,s,i),$=a?d*p:d,F;return i==="channelsFirst"?F=[l,$,A,N]:i==="channelsLast"&&(F=[l,A,N,$]),{batchSize:l,dataFormat:i,inHeight:u,inWidth:c,inChannels:p,outHeight:A,outWidth:N,outChannels:$,padInfo:k,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:b,effectiveFilterWidth:_,dilationHeight:x,dilationWidth:w,inShape:r,outShape:F,filterShape:e}}function XI(r,e,t,o,n,s=!1,a="channelsLast",i){let[l,u,c,p,m]=[-1,-1,-1,-1,-1];if(a==="channelsLast")[l,u,c,p,m]=r;else if(a==="channelsFirst")[l,m,u,c,p]=r;else throw new Error(`Unknown dataFormat ${a}`);let[f,d,h,,g]=e,[x,w,b]=lw(t),[_,k,A]=lw(o),N=qc(f,_),$=qc(d,k),F=qc(h,A),{padInfo:M,outDepth:V,outHeight:W,outWidth:U}=FG(n,u,c,p,x,w,b,N,$,F,i),H=s?g*m:g,q;return a==="channelsFirst"?q=[l,H,V,W,U]:a==="channelsLast"&&(q=[l,V,W,U,H]),{batchSize:l,dataFormat:a,inDepth:u,inHeight:c,inWidth:p,inChannels:m,outDepth:V,outHeight:W,outWidth:U,outChannels:H,padInfo:M,strideDepth:x,strideHeight:w,strideWidth:b,filterDepth:f,filterHeight:d,filterWidth:h,effectiveFilterDepth:N,effectiveFilterHeight:$,effectiveFilterWidth:F,dilationDepth:_,dilationHeight:k,dilationWidth:A,inShape:r,outShape:q,filterShape:e}}function OG(r,e,t,o,n){o==null&&(o=uw(r,e,t));let s=r[0],a=r[1],i=_u((s-e+2*o)/t+1,n),l=_u((a-e+2*o)/t+1,n);return[i,l]}function PG(r,e,t,o,n,s){n==null&&(n=uw(r,e,o));let a=r[0],i=r[1],l=r[2],u=_u((a-e+2*n)/o+1,s),c=_u((i-e+2*n)/o+1,s),p=_u((l-e+2*n)/o+1,s);return[u,c,p,t]}function uw(r,e,t,o=1){let n=qc(e,o);return Math.floor((r[0]*(t-1)-t+n)/2)}function eg(r){return typeof r=="number"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function lw(r){return typeof r=="number"?[r,r,r]:r}function qc(r,e){return e<=1?r:r+(r-1)*(e-1)}function RG(r,e,t,o,n,s,a,i,l){let u,c,p;if(typeof r=="number"){u={top:r,bottom:r,left:r,right:r,type:r===0?"VALID":"NUMBER"};let f=OG([e,t],s,o,r,i);c=f[0],p=f[1]}else if(r==="same"){c=Math.ceil(e/o),p=Math.ceil(t/n);let m=Math.max(0,(c-1)*o+s-e),f=Math.max(0,(p-1)*n+a-t),d=Math.floor(m/2),h=m-d,g=Math.floor(f/2),x=f-g;u={top:d,bottom:h,left:g,right:x,type:"SAME"}}else if(r==="valid")u={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((e-s+1)/o),p=Math.ceil((t-a+1)/n);else if(typeof r=="object"){let m=l==="channelsLast"?r[1][0]:r[2][0],f=l==="channelsLast"?r[1][1]:r[2][1],d=l==="channelsLast"?r[2][0]:r[3][0],h=l==="channelsLast"?r[2][1]:r[3][1];u={top:m,bottom:f,left:d,right:h,type:m===0&&f===0&&d===0&&h===0?"VALID":"EXPLICIT"},c=_u((e-s+m+f)/o+1,i),p=_u((t-a+d+h)/n+1,i)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:u,outHeight:c,outWidth:p}}function FG(r,e,t,o,n,s,a,i,l,u,c){let p,m,f,d;if(typeof r=="number"){p={top:r,bottom:r,left:r,right:r,front:r,back:r,type:r===0?"VALID":"NUMBER"};let g=PG([e,t,o,1],i,1,n,r,c);m=g[0],f=g[1],d=g[2]}else if(r==="same"){m=Math.ceil(e/n),f=Math.ceil(t/s),d=Math.ceil(o/a);let h=(m-1)*n+i-e,g=(f-1)*s+l-t,x=(d-1)*a+u-o,w=Math.floor(h/2),b=h-w,_=Math.floor(g/2),k=g-_,A=Math.floor(x/2),N=x-A;p={top:_,bottom:k,left:A,right:N,front:w,back:b,type:"SAME"}}else if(r==="valid")p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},m=Math.ceil((e-i+1)/n),f=Math.ceil((t-l+1)/s),d=Math.ceil((o-u+1)/a);else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:p,outDepth:m,outHeight:f,outWidth:d}}function _u(r,e){if(!e)return Math.trunc(r);switch(e){case"round":return Math.round(r);case"ceil":return Math.ceil(r);case"floor":return Math.floor(r);default:throw new Error(`Unknown roundingMode ${e}`)}}function Mo(r){let[e,t,o]=eg(r);return e===1&&t===1&&o===1}function _r(r,e){return Mo(r)||Mo(e)}function KI(r){if(r==="NHWC")return"channelsLast";if(r==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${r}`)}function MG(r,e){let o={x:v(r,"x","reshape","string_or_numeric")},n={shape:e};return D.runKernel(ds,o,n)}var L=T({reshape_:MG});function LG(r,e,t,o,n){let s=v(r,"x","avgPool","float32"),a=1;E(_r(t,a),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${t} and dilations '${a}'`);let i=s,l=!1;s.rank===3&&(l=!0,i=L(s,[1,s.shape[0],s.shape[1],s.shape[2]])),E(i.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${i.rank}.`),n!=null&&E(ot(o),()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${n} but got pad ${o}.`);let u={x:i},c={filterSize:e,strides:t,pad:o,dimRoundingMode:n},p=D.runKernel(Ko,u,c);return p=ne(p,s.dtype),l?L(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var wa=T({avgPool_:LG});function zG(r,e,t,o,n,s="NDHWC"){let a=v(r,"x","avgPool3d","float32"),i=a,l=!1;a.rank===4&&(l=!0,i=L(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),E(i.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${i.rank}.`),E(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),n!=null&&E(ot(o),()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${n} but got pad ${o}.`);let u={x:i},c={filterSize:e,strides:t,pad:o,dimRoundingMode:n,dataFormat:s},p=D.runKernel(ta,u,c);return p=ne(p,i.dtype),l?L(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Tm=T({avgPool3d_:zG});function BG(r,e=0){E(r.length>=1,()=>"Pass at least one tensor to concat");let t=ha(r,"tensors","concat","string_or_numeric");if(t[0].dtype==="complex64"&&t.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor + with dtype ${s.dtype}. `)}),t.length===1)return Oo(t[0]);let o=t,n={axis:e};return D.runKernel(ls,o,n)}var Ye=T({concat_:BG});function VG(r){let t={x:v(r,"x","sigmoid")};return D.runKernel(An,t)}var qr=T({sigmoid_:VG});function GG(r,e,t){let o=v(r,"x","slice","string_or_numeric");if(o.rank===0)throw new Error("Slicing scalar is not possible");let n={x:o},s={begin:e,size:t};return D.runKernel(gs,n,s)}var Re=T({slice_:GG});function WG(r){let t={x:v(r,"x","tanh")};return D.runKernel(On,t)}var Fi=T({tanh_:WG});function UG(r,e,t,o,n,s){let a=v(r,"forgetBias","basicLSTMCell"),i=v(e,"lstmKernel","basicLSTMCell"),l=v(t,"lstmBias","basicLSTMCell"),u=v(o,"data","basicLSTMCell"),c=v(n,"c","basicLSTMCell"),p=v(s,"h","basicLSTMCell"),m=Ye([u,p],1),f=We(m,i),d=ee(f,l),h=d.shape[0],g=d.shape[1]/4,x=[h,g],w=Re(d,[0,0],x),b=Re(d,[0,g],x),_=Re(d,[0,g*2],x),k=Re(d,[0,g*3],x),A=ee(P(qr(w),Fi(b)),P(c,qr(ee(a,_)))),N=P(Fi(A),qr(k));return[A,N]}var jG=T({basicLSTMCell_:UG});function HG(r,e,t){let o=v(r,"x","batchToSpaceND"),n=e.reduce((i,l)=>i*l);E(o.rank>=1+e.length,()=>`input rank is ${o.rank} but should be > than blockShape.length ${e.length}`),E(t.length===e.length,()=>`crops.length is ${t.length} but should be equal to blockShape.length ${e.length}`),E(o.shape[0]%n==0,()=>`input tensor batch is ${o.shape[0]} but is not divisible by the product of the elements of blockShape ${e.join(" * ")} === ${n}`);let s={x:o},a={blockShape:e,crops:t};return D.runKernel(ra,s,a)}var _a=T({batchToSpaceND_:HG});function YI(r){let e;return r.rank===0||r.rank===1?e=L(r,[1,1,1,r.size]):r.rank===2?e=L(r,[1,1,r.shape[0],r.shape[1]]):r.rank===3?e=L(r,[1,r.shape[0],r.shape[1],r.shape[2]]):e=r,e}function qG(r,e,t,o,n,s){s==null&&(s=.001);let a=v(r,"x","batchNorm"),i=v(e,"mean","batchNorm"),l=v(t,"variance","batchNorm"),u;n!=null&&(u=v(n,"scale","batchNorm"));let c;o!=null&&(c=v(o,"offset","batchNorm")),E(i.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),E(c==null||i.rank===c.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),E(u==null||i.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let m={x:YI(a),scale:u,offset:c,mean:i,variance:l},f={varianceEpsilon:s},d=D.runKernel(an,m,f);return L(d,a.shape)}var Ln=T({batchNorm_:qG});function KG(r,e,t,o,n,s){let a=v(r,"x","batchNorm"),i=v(e,"mean","batchNorm"),l=v(t,"variance","batchNorm"),u;n!=null&&(u=v(n,"scale","batchNorm"));let c;return o!=null&&(c=v(o,"offset","batchNorm")),E(a.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${a.rank}.`),E(i.rank===2||i.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${i.rank}.`),E(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),u!=null&&E(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`),c!=null&&E(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`),Ln(a,i,l,c,u,s)}var cw=T({batchNorm2d_:KG});function XG(r,e,t,o,n,s){let a=v(r,"x","batchNorm"),i=v(e,"mean","batchNorm"),l=v(t,"variance","batchNorm"),u;n!=null&&(u=v(n,"scale","batchNorm"));let c;return o!=null&&(c=v(o,"offset","batchNorm")),E(a.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${a.rank}.`),E(i.rank===3||i.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${i.rank}.`),E(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),u!=null&&E(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`),c!=null&&E(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`),Ln(a,i,l,c,u,s)}var pw=T({batchNorm3d_:XG});function YG(r,e,t,o,n,s){let a=v(r,"x","batchNorm"),i=v(e,"mean","batchNorm"),l=v(t,"variance","batchNorm"),u;n!=null&&(u=v(n,"scale","batchNorm"));let c;return o!=null&&(c=v(o,"offset","batchNorm")),E(a.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${a.rank}.`),E(i.rank===4||i.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${i.rank}.`),E(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),u!=null&&E(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`),c!=null&&E(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`),Ln(a,i,l,c,u,s)}var mw=T({batchNorm4d_:YG});function ZG(r,e,t){let o=v(r,"x","bincount"),n=v(e,"weights","bincount");E(o.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${o.dtype}`),E(t>=0,()=>`size must be non-negative, but got ${t}.`),E(n.size===o.size||n.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${o.shape}, weights shape: ${n.shape}.`);let s={x:o,weights:n},a={size:t};return D.runKernel(Vl,s,a)}var fw=T({bincount_:ZG});function JG(r,e){let t=v(r,"broadcastTo","x"),o=t.shape;if(e.some(u=>!(u>0)||u%1!=0))throw new Error(`broadcastTo(): Invalid broadcast shape [${e}].`);if(e.lengtht.rank){let u=t.shape.slice();for(;u.length=0;u--)if(n[u]===e[u])s[u]=1;else if(t.shape[u]!==1)throw new Error(`broadcastTo(): [${o}] cannot be broadcast to [${e}].`);if(s.map((u,c)=>u>1?c:-1).filter(u=>u>=0).length===0)return Oo(t);let i={x:t},l={reps:s};return D.runKernel(_o,i,l)}var sl=T({broadcastTo_:JG});function QG(r){let t={x:v(r,"x","ceil")};return D.runKernel(Yo,t)}var Am=T({ceil_:QG});function eW(r,e,t){let o=v(r,"x","clipByValue");E(e<=t,()=>`Error in clip: min (${e}) must be less than or equal to max (${t}).`);let n={x:o},s={clipValueMin:e,clipValueMax:t};return D.runKernel($o,n,s)}var ir=T({clipByValue_:eW});function tW(r){return Ye(r,0)}var dw=T({concat1d_:tW});function rW(r,e){return Ye(r,e)}var hw=T({concat2d_:rW});function oW(r,e){return Ye(r,e)}var gw=T({concat3d_:oW});function nW(r,e){return Ye(r,e)}var xw=T({concat4d_:nW});function sW(r,e,t,o,n="NHWC",s=[1,1],a){let i=v(r,"x","conv2d"),l=v(e,"filter","conv2d"),u=i,c=!1;i.rank===3&&(c=!0,u=L(i,[1,i.shape[0],i.shape[1],i.shape[2]])),E(u.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`),E(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),a!=null&&E(ot(o),()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`);let p=n==="NHWC"?u.shape[3]:u.shape[1];E(p===l.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${l.shape[2]}.`),E(_r(t,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${t} and dilations '${s}'`);let m={x:u,filter:l},f={strides:t,pad:o,dataFormat:n,dilations:s,dimRoundingMode:a},d=D.runKernel(Zo,m,f);return c?L(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Kr=T({conv2d_:sW});function iW(r,e,t,o,n="NWC",s=1,a){let i=v(r,"x","conv1d"),l=v(e,"filter","conv1d"),u=i,c=!1;i.rank===2&&(c=!0,u=L(i,[1,i.shape[0],i.shape[1]])),E(u.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`),E(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),a!=null&&E(ot(o),()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`),E(u.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`),E(_r(t,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${t} and dilation '${s}'`),E(n==="NWC",()=>`Error in conv1d: got dataFormat of ${n} but only NWC is currently supported.`);let p=L(l,[1,l.shape[0],l.shape[1],l.shape[2]]),m=L(u,[u.shape[0],1,u.shape[1],u.shape[2]]),g=Kr(m,p,[1,t],o,"NHWC",[1,s],a);return c?L(g,[g.shape[2],g.shape[3]]):L(g,[g.shape[0],g.shape[2],g.shape[3]])}var ku=T({conv1d_:iW});function aW(r,e,t,o,n,s="NHWC",a){E(r.length===e.rank,()=>`Length of inShape (${r.length}) and rank of dy (${e.rank}) must match`);let i=r,l=e,u=!1;e.rank===3&&(u=!0,l=L(e,[1,e.shape[0],e.shape[1],e.shape[2]]),i=[1,r[0],r[1],r[2]]),E(i.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${i.length}.`),E(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),E(t.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${t.rank}`);let c=s==="NHWC"?i[3]:i[1],p=s==="NHWC"?l.shape[3]:l.shape[1];E(c===t.shape[2],()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${t.shape[2]}.`),E(p===t.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${t.shape[3]}.`),a!=null&&E(ot(n),()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${a} but got pad ${n}.`);let m={dy:l,filter:t},f={strides:o,pad:n,dataFormat:s,dimRoundingMode:a,inputShape:i},d=D.runKernel(Jo,m,f);return u?L(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Kc=T({conv2DBackpropInput_:aW});function lW(r,e,t,o,n,s){let a=v(r,"x","conv2dTranspose"),i=v(e,"filter","conv2dTranspose");return Kc(t,a,i,o,n,"NHWC",s)}var vu=T({conv2dTranspose_:lW});function uW(r,e,t,o,n="NDHWC",s=[1,1,1]){let a=v(r,"x","conv3d"),i=v(e,"filter","conv3d"),l=a,u=!1;a.rank===4&&(u=!0,l=L(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),E(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),E(i.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${i.rank}.`),E(l.shape[4]===i.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${i.shape[3]}.`),E(_r(t,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${t} and dilations '${s}'`),E(n==="NDHWC",()=>`Error in conv3d: got dataFormat of ${n} but only NDHWC is currently supported.`);let c={x:l,filter:i},p={strides:t,pad:o,dataFormat:n,dilations:s},m=D.runKernel(na,c,p);return u?L(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Em=T({conv3d_:uW});function cW(r,e,t,o,n){E(r.length===e.rank,()=>`Length of inShape (${r.length}) and rank of dy (${e.rank}) must match`);let s=r,a=e,i=!1;e.rank===4&&(i=!0,a=L(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]),s=[1,r[0],r[1],r[2],r[3]]);let l=s[4],u=a.shape[4];E(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),E(a.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${a.rank}`),E(t.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${t.rank}`),E(l===t.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${t.shape[3]}.`),E(u===t.shape[4],()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${t.shape[4]}.`);let c={dy:a,filter:t},p={pad:n,strides:o,inputShape:s},m=D.runKernel(jl,c,p);return i?L(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var tg=T({conv3DBackpropInput_:cW});function pW(r,e,t,o,n){let s=v(r,"x","conv3dTranspose"),a=v(e,"filter","conv3dTranspose");return tg(t,s,a,o,n)}var mW=T({conv3dTranspose_:pW});function fW(r){let t={x:v(r,"x","cos")};return D.runKernel(Qo,t)}var ka=T({cos_:fW});function dW(r){let t={x:v(r,"x","cosh")};return D.runKernel(Qs,t)}var Cu=T({cosh_:dW});function hW(r,e=0,t=!1,o=!1){let s={x:v(r,"x","cumsum")},a={axis:e,exclusive:t,reverse:o};return D.runKernel(en,s,a)}var Iu=T({cumsum_:hW});function gW(r,e,t,o=!1){let n=v(r,"x","denseBincount"),s=v(e,"weights","denseBincount");E(n.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${n.dtype}`),E(n.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${n.rank}.`),E(t>=0,()=>`size must be non-negative, but got ${t}.`),E(s.size===n.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${n.shape}, weights shape: ${s.shape}.`);let a={x:n,weights:s},i={size:t,binaryOutput:o};return D.runKernel(Hl,a,i)}var yw=T({denseBincount_:gW});function xW(r,e,t="NHWC"){let o=v(r,"x","depthToSpace"),n=t==="NHWC"?o.shape[1]:o.shape[2],s=t==="NHWC"?o.shape[2]:o.shape[3],a=t==="NHWC"?o.shape[3]:o.shape[1];E(n*e>=0,()=>`Negative dimension size caused by overflow when multiplying ${n} and ${e} for depthToSpace with input shape - ${o.shape}`),A(s*e>=0,()=>`Negative dimension size caused by overflow when multiplying + ${o.shape}`),E(s*e>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${e} for depthToSpace with input shape - ${o.shape}`),A(a%(e*e)==0,()=>`Dimension size must be evenly divisible by ${e*e} but is ${a} for depthToSpace with input shape ${o.shape}`);let i={x:o},l={blockSize:e,dataFormat:t};return E.runKernel(ei,i,l)}var Tm=S({depthToSpace_:fG});function dG(r,e,t,o,n="NHWC",s=[1,1],a){let i=k(r,"x","depthwiseConv2d"),l=k(e,"filter","depthwiseConv2d"),u=i,c=!1;i.rank===3&&(c=!0,u=M(i,[1,i.shape[0],i.shape[1],i.shape[2]])),A(u.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`),A(u.shape[3]===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),a!=null&&A(ot(o),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`);let p={x:u,filter:l},m={strides:t,pad:o,dataFormat:n,dilations:s,dimRoundingMode:a},f=E.runKernel(tn,p,m);return c?M(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Cs=S({depthwiseConv2d_:dG});function hG(r){let t={x:k(r,"x","diag")};return E.runKernel(Xl,t)}var gG=S({diag_:hG});function xG(r,e,t,o,n=[1,1],s="NHWC"){let a=k(r,"x","dilation2d"),i=k(e,"filter","dilation2d");A(a.rank===3||a.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${a.rank}.`),A(i.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${i.rank}.`),A(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=a,u=!1;a.rank===3&&(l=M(a,[1,a.shape[0],a.shape[1],a.shape[2]]),u=!0);let c={x:l,filter:i},p={strides:t,pad:o,dilations:n},m=E.runKernel(sa,c,p);return u?M(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Am=S({dilation2d_:xG});function yG(r,e){let t=r.length,o=[];for(let n=0;n1&&a===1&&o.unshift(s)}return o}function _t(r,e){let t=[];for(let o=0;o1)&&t.unshift(s)}return t}function Be(r,e){let t=[],o=Math.max(r.length,e.length);for(let n=0;n"The first dimension of `a` must match the size of `condition`."),s.rank!==1&&vt(s.shape,l.shape,"Error in where: ");let u={condition:s,t:i,e:l};return E.runKernel(hs,u)}var Dt=S({where_:wG});function _G(r){let t={x:k(r,"x","zerosLike")};return E.runKernel(bs,t)}var Ce=S({zerosLike_:_G});function kG(r,e){let t=k(r,"a","div"),o=k(e,"b","div");[t,o]=Ge(t,o);let n=me(t,o),s=Ce(n),a=vo(o,s);return Dt(a,s,n)}var Em=S({divNoNan_:kG});function vG(r,e){let t=k(r,"t1","dot"),o=k(e,"t2","dot");A((t.rank===1||t.rank===2)&&(o.rank===1||o.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${t.rank} and ${o.rank}.`);let n=t.rank===1?t.size:t.shape[1],s=o.rank===1?o.size:o.shape[0];if(A(n===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${n} and ${s}.`),t.rank===1&&o.rank===1){let a=M(t,[1,-1]),i=M(o,[-1,1]),l=We(a,i);return M(l,[])}else if(t.rank===1&&o.rank===2){let a=M(t,[1,-1]),i=M(o,[o.shape[0],o.shape[1]]),l=We(a,i);return M(l,[l.size])}else if(t.rank===2&&o.rank===1){let a=M(o,[-1,1]),i=We(t,a);return M(i,[i.size])}else{let a=M(o,[o.shape[0],o.shape[1]]);return We(t,a)}}var fw=S({dot_:vG});function CG(r){let t={x:k(r,"x","elu")};return E.runKernel(ti,t)}var Is=S({elu_:CG});function IG(r){let e=k(r,"x","erf");A(e.dtype==="int32"||e.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),e.dtype==="int32"&&(e=ne(e,"float32"));let t={x:e};return E.runKernel(ri,t)}var Dm=S({erf_:IG});function NG(r){let t={x:k(r,"x","exp")};return E.runKernel(on,t)}var Yt=S({exp_:NG});function SG(r,e=0){let t=k(r,"x","expandDims","string_or_numeric");A(e<=t.rank,()=>"Axis must be <= rank of the tensor");let o={input:t},n={dim:e};return E.runKernel(us,o,n)}var ir=S({expandDims_:SG});function TG(r){let t={x:k(r,"x","expm1")};return E.runKernel(ni,t)}var $m=S({expm1_:TG});function AG(r,e){let t=k(r,"x","tile","string_or_numeric");A(t.rank===e.length,()=>`Error in transpose: rank of input ${t.rank} must match length of reps ${e}.`);let o={x:t},n={reps:e};return E.runKernel(_o,o,n)}var Lo=S({tile_:AG});function EG(r,e,t,o="float32"){e==null&&(e=r);let n=ve([r,e],o),s=r<=e?r:e;for(let i=0;i`Error in localResponseNormalization: x must be rank 3 or 4 but got - rank ${s.rank}.`),A(ot(e),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${e}.`);let a=s,i=!1;s.rank===3&&(i=!0,a=M(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:a},u={depthRadius:e,bias:t,alpha:o,beta:n},c=E.runKernel(aa,l,u);return i?M(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Rm=S({localResponseNormalization_:GG});function WG(r){let t={x:k(r,"x","log")};return E.runKernel(cn,t)}var ar=S({log_:WG});function UG(r){let t={x:k(r,"x","log1p")};return E.runKernel(fi,t)}var Nu=S({log1p_:UG});function jG(r){return A(Ws(r),()=>"The f passed in grad(f) must be a function"),(e,t)=>{let o=k(e,"x","tf.grad","string_or_numeric"),n=t!=null?k(t,"dy","tf.grad"):null;return E.tidy(()=>{let{value:s,grads:a}=E.gradients(()=>r(o),[o],n);return n!=null&&vt(s.shape,n.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Qh(a),a[0]})}}function HG(r){return A(Ws(r),()=>"The f passed in grads(f) must be a function"),(e,t)=>{A(Array.isArray(e),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let o=ha(e,"args","tf.grads","string_or_numeric"),n=t!=null?k(t,"dy","tf.grads"):null;return E.tidy(()=>{let{value:s,grads:a}=E.gradients(()=>r(...o),o,n);return n!=null&&vt(s.shape,n.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Qh(a),a})}}function qG(r){return A(Ws(r),()=>"The f passed in valueAndGrad(f) must be a function"),(e,t)=>{A(e instanceof Ve,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),A(t==null||t instanceof Ve,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:o,value:n}=E.gradients(()=>r(e),[e],t);return Qh(o),{grad:o[0],value:n}}}function KG(r){return A(Ws(r),()=>"The f passed in valueAndGrads(f) must be a function"),(e,t)=>{A(Array.isArray(e)&&e.every(n=>n instanceof Ve),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),A(t==null||t instanceof Ve,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let o=E.gradients(()=>r(...e),e,t);return t!=null&&vt(o.value.shape,t.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Qh(o.grads),o}}function eg(r,e){A(Ws(r),()=>"The f passed in variableGrads(f) must be a function"),A(e==null||Array.isArray(e)&&e.every(u=>u instanceof el),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let t=e!=null;if(!t){e=[];for(let u in E.registeredVariables)e.push(E.registeredVariables[u])}let o=t?e.filter(u=>!u.trainable):null,n=e.length;e=e.filter(u=>u.trainable),A(e.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${n} variables is trainable.`);let s=!0,{value:a,grads:i}=E.gradients(r,e,null,s);A(i.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(a.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${a.rank} tensor`);let l={};return e.forEach((u,c)=>{i[c]!=null&&(l[u.name]=i[c])}),o!=null&&o.forEach(u=>l[u.name]=null),{value:a,grads:l}}function Xr(r){return E.customGrad(r)}function Qh(r){if(r.filter(t=>t==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that - the f you passed encloses all operations that lead from x to y.`)}function XG(r){let t={x:k(r,"x","neg")};return E.runKernel(ps,t)}var He=S({neg_:XG});function YG(r){let t={x:k(r,"x","softplus")};return E.runKernel(Ni,t)}var Ss=S({softplus_:YG});function ZG(r){let e=k(r,"x","logSigmoid");return Xr(o=>({value:He(Ss(He(o))),gradFunc:a=>O(a,qr(He(o)))}))(e)}var yw=S({logSigmoid_:ZG});function JG(r,e=null,t=!1){let n={x:k(r,"x","max")},s={reductionIndices:e,keepDims:t};return E.runKernel(pn,n,s)}var lr=S({max_:JG});function QG(r,e){let t=k(r,"a","sub"),o=k(e,"b","sub");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(Fn,n)}var ce=S({sub_:QG});function eW(r,e=null,t=!1){let o=k(r,"x","sum");o.dtype==="bool"&&(o=ne(o,"int32"));let n={x:o},s={axis:e,keepDims:t};return E.runKernel(Dn,n,s)}var ge=S({sum_:eW});function tW(r,e=-1){let t=k(r,"logits","logSoftmax");if(e===-1&&(e=t.rank-1),e!==t.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${t.rank} and axis was ${e}`);return Xr((n,s)=>{let a=!0,i=lr(n,e,!0),l=ce(n,i),u=ce(ne(l,"float32"),ar(ge(Yt(l),e,a)));return s([u]),{value:u,gradFunc:(p,m)=>{let[f]=m,d=!0,h=Yt(f);return ce(p,O(ge(p,e,d),h))}}})(t)}var Su=S({logSoftmax_:tW});function bw(r,e){for(let t=0;tr[s]);return[t,n]}function Bn(r,e){let t=e.map(o=>1);return EN(r,t,e)}function rW(r,e,t){A(bw(e,t),()=>`${r} supports only inner-most axes for now. Got axes ${e} and rank-${t} input.`)}function _w(r,e){if(bw(r,e))return null;let t=[];for(let o=0;ot.push(o)),t}function Fm(r){return r.map((e,t)=>[t,e]).sort((e,t)=>e[1]-t[1]).map(e=>e[0])}function oW(r,e){let t=[];for(let o=e-r;o`Error in maxPool: input must be rank 4 but got rank ${i.rank}.`),A(wr(t,a),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${t} and dilations '${a}'`),n!=null&&A(ot(o),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${n} but got pad ${o}.`);let u={x:i},c={filterSize:e,strides:t,pad:o,dimRoundingMode:n},p=E.runKernel(fn,u,c);return l?M(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Na=S({maxPool_:uW});function cW(r,e=[1,1,1],t,o,n,s="NDHWC"){let a=k(r,"x","maxPool3d"),i=a,l=!1;a.rank===4&&(l=!0,i=M(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),A(i.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${i.rank}.`),A(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),n!=null&&A(ot(o),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${n} but got pad ${o}.`);let u={x:i},c={filterSize:e,strides:t,pad:o,dimRoundingMode:n,dataFormat:s},p=E.runKernel(la,u,c);return l?M(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Pm=S({maxPool3d_:cW});function pW(r,e,t,o,n=!1){let a={x:k(r,"x","maxPoolWithArgmax")},i={filterSize:e,strides:t,pad:o,includeBatchInIndex:n},l=E.runKernel(nu,a,i);return{result:l[0],indexes:l[1]}}var vw=S({maxPoolWithArgmax_:pW});function mW(r,e){let t=k(r,"a","maximum"),o=k(e,"b","maximum");[t,o]=Ge(t,o),t.dtype==="bool"&&(t=ne(t,"int32"),o=ne(o,"int32")),Be(t.shape,o.shape);let n={a:t,b:o};return E.runKernel(mn,n)}var Yr=S({maximum_:mW});function fW(r,e=null,t=!1){let n={x:k(r,"x","mean")},s={axis:e,keepDims:t};return E.runKernel(dn,n,s)}var dt=S({mean_:fW});function dW(r,e=null,t=!1){let n={x:k(r,"x","min")},s={axis:e,keepDims:t};return E.runKernel(hn,n,s)}var Oi=S({min_:dW});function hW(r,e){let t=k(r,"a","minimum"),o=k(e,"b","minimum");[t,o]=Ge(t,o),t.dtype==="bool"&&(t=ne(t,"int32"),o=ne(o,"int32")),Be(t.shape,o.shape);let n={a:t,b:o};return E.runKernel(gn,n)}var Ts=S({minimum_:hW});function gW(r,e,t){A(t==="reflect"||t==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${t}.`);let o=k(r,"x","mirrorPad");if(o.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");A(e.length===o.rank,()=>`Padding doesn't match input. Must be ${o.rank}. Got ${e.length}.`);let n=t==="reflect"?1:0;for(let i=0;i"Invalid number of paddings. Must be length of 2 each."),A(e[i][0]>=0&&e[i][0]<=o.shape[i]-n&&e[i][1]>=0&&e[i][1]<=o.shape[i]-n,()=>`Padding in dimension ${i} cannot be greater than or equal to ${o.shape[i]-n} or less than 0 for input of shape ${o.shape}`);let s={paddings:e,mode:t},a={x:o};return E.runKernel(ua,a,s)}var Mm=S({mirrorPad_:gW});function xW(r,e){let t=k(r,"a","mod"),o=k(e,"b","mod");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(hi,n)}var Lm=S({mod_:xW});function yW(r){let e=k(r,"x","square"),t={};return E.runKernel("Square",{x:e},t)}var Oe=S({square_:yW});function bW(r,e=null,t=!1){r=k(r,"x","moments");let o=Jt(e,r.shape),n=dt(r,o,t),s=n.shape;t||(s=Bn(n.shape,o));let a=Oe(ce(ne(r,"float32"),M(n,s))),i=dt(a,o,t);return{mean:n,variance:i}}var qc=S({moments_:bW});function wW(r,e,t,o){let n=k(e,"data","multiRNNCell"),s=ha(t,"c","multiRNNCell"),a=ha(o,"h","multiRNNCell"),i=n,l=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${a}`);t=t||Math.random();let l={logits:a===1?M(n,[1,-1]):n},u={numSamples:e,seed:t,normalized:o},c=E.runKernel(su,l,u);return a===1?M(c,[c.size]):c}var Cw=S({multinomial_:kW});function vW(r,e){let t=k(r,"a","notEqual"),o=k(e,"b","notEqual");[t,o]=Ge(t,o),Be(t.shape,o.shape);let n={a:t,b:o};return E.runKernel(gi,n)}var Vn=S({notEqual_:vW});function ht(r,e="float32"){if(e==="complex64"){let o=ht(r,"float32"),n=ht(r,"float32");return ko(o,n)}let t=Ac(ct(r),e);return E.makeTensor(t,r,e)}function Ir(r,e="float32"){if(e==="complex64"){let o=Ir(r,"float32"),n=ht(r,"float32");return ko(o,n)}let t=im(ct(r),e);return E.makeTensor(t,r,e)}function CW(r){let t={x:k(r,"x","onesLike")};return E.runKernel(ms,t)}var er=S({onesLike_:CW});function IW(r,e){let t=k(r,"v1","outerProduct"),o=k(e,"v2","outerProduct");A(t.rank===1&&o.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${t.rank} and ${o.rank}.`);let n=M(t,[-1,1]),s=M(o,[1,-1]);return We(n,s)}var NW=S({outerProduct_:IW});function SW(r,e,t=0){let o=k(r,"x","pad");if(o.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let n={paddings:e,constantValue:t},s={x:o};return E.runKernel(bn,s,n)}var Rr=S({pad_:SW});function TW(r,e,t=0){return A(e.length===2,()=>"Invalid number of paddings. Must be length of 2."),Rr(r,[e],t)}var AW=S({pad1d_:TW});function EW(r,e,t=0){return A(e.length===2&&e[0].length===2&&e[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Rr(r,e,t)}var DW=S({pad2d_:EW});function $W(r,e,t=0){return A(e.length===3&&e[0].length===2&&e[1].length===2&&e[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Rr(r,e,t)}var RW=S({pad3d_:$W});function FW(r,e,t=0){return A(e.length===4&&e[0].length===2&&e[1].length===2&&e[2].length===2&&e[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Rr(r,e,t)}var OW=S({pad4d_:FW});function PW(r,e,t){let o=k(r,"x","spaceToBatchND");A(o.rank>=1+e.length,()=>`input rank ${o.rank} should be > than [blockShape] ${e.length}`),A(t.length===e.length,()=>`paddings.shape[0] ${t.length} must be equal to [blockShape] ${e.length}`),A(o.shape.reduce((a,i,l)=>l>0&&l<=e.length?a&&(i+t[l-1][0]+t[l-1][1])%e[l-1]==0:a,!0),()=>`input spatial dimensions ${o.shape.slice(1)} with paddings ${t.toString()} must be divisible by blockShapes ${e.toString()}`);let n={x:o},s={blockShape:e,paddings:t};return E.runKernel(ma,n,s)}var Sa=S({spaceToBatchND_:PW});function zW(r,e,t,o,n,s){n==null&&(n=[1,1]),s==null&&(s=1),o===0&&(o="valid");let a=k(r,"x","maxPool"),i=a,l=!1;a.rank===3&&(l=!0,i=M(a,[1,a.shape[0],a.shape[1],a.shape[2]])),A(wr(s,n),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${n}'`);let u=tw(i.shape,e,s,n,o),c=[u.dilationHeight,u.dilationWidth],p;o==="same"?p=LW([u.filterHeight,u.filterWidth],c):p=[[0,0],[0,0]];let m=c[0]===1&&c[1]===1,[f,d]=MW([u.inHeight,u.inWidth],c,p),h=m?o:"valid",g=m?i:Sa(i,c,f),b=(t==="avg"?()=>wa(g,e,s,h):()=>Na(g,e,s,h))(),w=m?b:_a(b,c,d);return l?M(w,[w.shape[1],w.shape[2],w.shape[3]]):w}function MW(r,e,t){let o=t.map(c=>c[0]),n=t.map(c=>c[1]),s=r.concat(o,n),a=e.map((c,p)=>(c-s[p]%c)%c),i=n.map((c,p)=>c+a[p]),l=e.map((c,p)=>[o[p],i[p]]),u=e.map((c,p)=>[0,a[p]]);return[l,u]}function LW(r,e){let o=r.map((a,i)=>a+(a-1)*(e[i]-1)).map(a=>a-1),n=o.map(a=>Math.floor(a/2)),s=o.map((a,i)=>a-n[i]);return o.map((a,i)=>[n[i],s[i]])}var Iw=S({pool_:zW});function BW(r,e){let t=k(r,"base","pow"),o=k(e,"exp","pow");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(wn,n)}var Fr=S({pow_:BW});function VW(r,e){let t=k(r,"x","prelu"),o=k(e,"alpha","prelu"),n={x:t,alpha:o};return E.runKernel(_n,n)}var Ta=S({prelu_:VW});function GW(r,e=null,t=!1){let o=k(r,"x","prod");o.dtype==="bool"&&(o=ne(o,"int32"));let n={x:o},s={axis:e,keepDims:t};return E.runKernel(wi,n,s)}var Au=S({prod_:GW});function WW(r,e,t){let o=ct(r),n=null;if(t==null||t==="float32")n=new Float32Array(o);else if(t==="int32")n=new Int32Array(o);else if(t==="bool")n=new Uint8Array(o);else throw new Error(`Unknown data type ${t}`);for(let s=0;s=1||a===0);let i=Math.sqrt(-2*Math.log(a)/a);e=this.mean+this.stdDev*n*i,t=this.mean+this.stdDev*s*i,(!this.truncated||this.isValidTruncated(e))&&(o=!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}},$w=class{constructor(e,t,o,n){this.alpha=e,this.beta=1/t,this.dtype=o;let s=n||Math.random();this.randu=rg.alea(s.toString()),this.randn=new Kc(0,1,o,!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,o,n,s,a;for(;;){do n=this.randn.nextValue(),a=1+this.c*n;while(a<=0);if(a*=a*a,e=n*n,t=1-.331*e*e,o=.5*e+this.d*(1-a+Math.log(a)),s=this.randu(),sthis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=o,n==null&&(n=Math.random()),typeof n=="number"&&(n=n.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=rg.alea(n)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function ZW(r,e,t=1,o="float32",n){if(t==null&&(t=1),o==null&&(o="float32"),o!=="float32"&&o!=="int32")throw new Error(`Unsupported data type ${o}`);let s=new $w(e,t,o,n),a=ve(r,o);for(let i=0;i`Error in reverse1D: x must be rank 1 but got rank ${e.rank}.`),Ht(e,0)}var aU=S({reverse1d_:iU});function lU(r,e){let t=k(r,"x","reverse");return A(t.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${t.rank}.`),Ht(t,e)}var uU=S({reverse2d_:lU});function cU(r,e){let t=k(r,"x","reverse");return A(t.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${t.rank}.`),Ht(t,e)}var pU=S({reverse3d_:cU});function mU(r,e){let t=k(r,"x","reverse");return A(t.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${t.rank}.`),Ht(t,e)}var fU=S({reverse4d_:mU});function dU(r){let t={x:k(r,"x","round")};return E.runKernel(Nn,t)}var Vm=S({round_:dU});function hU(r){let t={x:k(r,"x","rsqrt")};return E.runKernel(Sn,t)}var $u=S({rsqrt_:hU});function ue(r,e){if((or(r)&&e!=="string"||Array.isArray(r))&&e!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(e==="string"&&or(r)&&!(r instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return jr(r,[],[],e)}function gU(r){let t={x:k(r,"x","selu")};return E.runKernel(vi,t)}var Ru=S({selu_:gU});function xU(r,e,t,o,n,s=[1,1],a="NHWC"){let i=k(r,"x","separableConv2d"),l=k(e,"depthwiseFilter","separableConv2d"),u=k(t,"pointwiseFilter","separableConv2d"),c=i,p=!1;if(i.rank===3&&(p=!0,c=M(i,[1,i.shape[0],i.shape[1],i.shape[2]])),a==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");A(c.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`),A(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),A(u.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),A(u.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`),A(u.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`);let m=l.shape[2],f=l.shape[3];A(u.shape[2]===m*f,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${m*f}, but got ${u.shape[2]}.`);let d=Cs(c,l,o,n,a,s),g=Kr(d,u,1,"valid",a);return p?M(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var Gm=S({separableConv2d_:xU});async function yU(r,e){let t=k(r,"x","setdiff1d"),o=k(e,"y","setdiff1d");A(t.dtype===o.dtype,()=>`x and y should have the same dtype, but got x (${t.dtype}) and y (${o.dtype}).`),A(t.rank===1,()=>`x should be 1D tensor, but got x (${t.shape}).`),A(o.rank===1,()=>`y should be 1D tensor, but got y (${o.shape}).`);let n=await t.data(),s=await o.data(),a=new Set(s),i=0;for(let c=0;c`slice1d expects a rank-1 tensor, but got a rank-${o.rank} tensor`),Re(o,[e],[t])}var Um=S({slice1d_:kU});function vU(r,e,t){let o=k(r,"x","slice2d");return A(o.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${o.rank} tensor`),Re(o,e,t)}var ng=S({slice2d_:vU});function CU(r,e,t){let o=k(r,"x","slice3d");return A(o.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${o.rank} tensor`),Re(o,e,t)}var jm=S({slice3d_:CU});function IU(r,e,t){let o=k(r,"x","slice4d");return A(o.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${o.rank} tensor`),Re(o,e,t)}var Yc=S({slice4d_:IU});function NU(r,e=-1){let t=k(r,"logits","softmax","float32");if(e===-1&&(e=t.rank-1),e!==t.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${t.rank} and dim was ${e}`);let o={logits:t},n={dim:e};return E.runKernel($n,o,n)}var Aa=S({softmax_:NU});function SU(r){A(r.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let e={input:r};return E.runKernel(Zl,e)}var Ea=S({fft_:SU});function TU(r){A(r.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let e={input:r};return E.runKernel(Jl,e)}var Pi=S({ifft_:TU});function AU(r){let e=r.shape[r.shape.length-1],t=r.size/e,o;if(e<=2){let n=M(r,[t,e]);o=Pi(n)}else{let n=[t,2*(e-1)],s=M(il(r),[t,e]),a=M(Cu(r),[t,e]),i=Ht(Re(s,[0,1],[t,e-2]),1),l=O(Ht(Re(a,[0,1],[t,e-2]),1),ue(-1)),u=Ye([s,i],1),c=Ye([a,l],1),p=M(ko(u,c),[n[0],n[1]]);o=Pi(p)}if(o=il(o),r.rank===3&&r.shape[0]!==0){let n=o,s=r.shape[0];o=M(o,[s,o.shape[0]/s,o.shape[1]]),n.dispose()}return o}var Pu=S({irfft_:AU});function EU(r,e,t=0){let n={x:k(r,"x","split")},s={numOrSizeSplits:e,axis:t};return E.runKernel(xs,n,s)}var ur=S({split_:EU});function DU(r,e){A(r.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${r.dtype}`);let t=r.shape[r.shape.length-1],o=r.size/t,n;if(e!=null&&e0),h=r.shape.map(g=>g);h[r.shape.length-1]=e,n=Re(r,d,h),t=e}else if(e!=null&&e>t){let d=r.shape.map(h=>h);d[r.shape.length-1]=e-t,n=Ye([r,ht(d)],r.shape.length-1),t=e}else n=r;let s=Ce(n),a=M(ko(n,s),[o,t]),i=Ea(a),l=Math.floor(t/2)+1,u=il(i),c=Cu(i),p=ur(u,[l,t-l],u.shape.length-1),m=ur(c,[l,t-l],c.shape.length-1),f=n.shape.slice();return f[n.shape.length-1]=l,M(ko(p[0],m[0]),f)}var Da=S({rfft_:DU});function $U(r){let t={x:k(r,"x","sqrt")};return E.runKernel(En,t)}var gt=S({sqrt_:$U});function RU(r,e){let t=k(r,"a","squaredDifference"),o=k(e,"b","squaredDifference");[t,o]=Ge(t,o),Be(t.shape,o.shape);let n={a:t,b:o},s={};return E.runKernel(Rn,n,s)}var Mu=S({squaredDifference_:RU});function FU(r,e){let t=k(r,"x","squeeze");return M(t,ub(t.shape,e).newShape)}var Co=S({squeeze_:FU});function OU(r,e=0){let t=ha(r,"tensors","stack","string_or_numeric");A(t.length>=1,()=>"Pass at least one tensor to tf.stack"),t.length>0&&A(e<=t[0].rank,()=>"Axis must be <= rank of the tensor");let o=t,n={axis:e};return E.runKernel(fs,o,n)}var Bt=S({stack_:OU});function PU(r,e=0){let o={x:k(r,"x","step")},n={alpha:e};return E.runKernel(Fo,o,n)}var Es=S({step_:PU});function MU(r,e,t,o,n=0,s=0,a=0,i=0,l=0){let c={x:k(r,"x","stridedSlice")},p={begin:e,end:t,strides:o,beginMask:n,endMask:s,ellipsisMask:a,newAxisMask:i,shrinkAxisMask:l};return E.runKernel(Si,c,p)}var Hm=S({stridedSlice_:MU});function LU(r){let t={x:k(r,"x","tan")};return E.runKernel(Ti,t)}var qm=S({tan_:LU});function Vt(r,e){Eo(r);let t=vr(r,e);if(t.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return jr(r,null,t,e)}function Mi(r,e,t){if(Eo(r),e!=null&&e.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let o=vr(r,t);if(o.length!==2&&o.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(o.length===1&&e==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return jr(r,e,o,t)}function zU(r,e,t){if(Eo(r),e!=null&&e.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let o=vr(r,t);if(o.length!==4&&o.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(o.length===1&&e==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return jr(r,e,o,t)}function BU(r,e,t){if(Eo(r),e!=null&&e.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let o=vr(r,t);if(o.length!==5&&o.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(o.length===1&&e==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return jr(r,e,o,t)}function VU(r,e,t){if(Eo(r),e!=null&&e.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let o=vr(r,t);if(o.length!==6&&o.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(o.length===1&&e==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return e=e||o,jr(r,e,o,t)}function GU(r,e=1,t=!0){let o=k(r,"x","topk");if(o.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let n=o.shape[o.shape.length-1];if(e>n)throw new Error(`'k' passed to topk() must be <= the last dimension (${n}) but got ${e}`);let s={x:o},a={k:e,sorted:t},[i,l]=E.runKernel(Ai,s,a);return{values:i,indices:l}}var Km=S({topk_:GU});function WU(r,e=0,t=1,o,n){if(o!=null&&o==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Kc(e,t,o,!0,n),a=ve(r,o);for(let i=0;i0,()=>"The input tensor must be at least 1D");let o={x:t},n={axis:e},[s,a]=E.runKernel(cu,o,n);return{values:s,indices:a}}var Zc=S({unique_:UU});function jU(r,e,t){let o=k(r,"x","unsortedSegmentSum"),n=k(e,"segmentIds","unsortedSegmentSum","int32");A(ot(t),()=>"numSegments must be of dtype int");let s={x:o,segmentIds:n},a={numSegments:t};return E.runKernel(da,s,a)}var Xm=S({unsortedSegmentSum_:jU});function HU(r,e=0){let t=k(r,"x","unstack","string_or_numeric");A(e>=-t.shape.length&&e`Axis = ${e} is not in [-${t.shape.length}, ${t.shape.length})`);let o={value:t},n={axis:e};return E.runKernel(ys,o,n)}var cr=S({unstack_:HU});function Ow(r,e=!0,t,o){return E.makeVariable(r,e,t,o)}function Pw(r,e){let t=[];for(let s=0;s0,()=>"mask cannot be scalar"),vt(i.slice(s,s+a),n.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let h=s;h"Shape mismatch in v and x");let l=ue(1),u=ce(l,i),c=O(ce(a,s),u);if(n){A(o!=null,()=>"When using zeroDebias: true, step is required.");let p=k(o,"step","movingAverage");c=me(c,ce(l,Fr(i,p)))}return Q(s,c)}var JU=S({movingAverage_:ZU});function QU(r,e,t){let o=k(r,"indices","scatterND","int32"),n=k(e,"updates","scatterND");qh(n,o,t);let s={indices:o,updates:n},a={shape:t};return E.runKernel(ki,s,a)}var Mw=S({scatterND_:QU});function qN(r,e,t,o){if(r.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${r.dtype}.`);if(r.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${r.shape}.`);let n=r.rank>0?r.shape[0]:1,s=r.rank>1?r.shape[1]:1;if(t.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${t.length}, should be: ${s}.`);let a=e.size;if(!(e.rank===0||e.rank===1&&a===n))throw new Error(`sparseValues has incorrect shape ${e.shape}, should be [] or [${n}]`);if(e.dtype!==o.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function e4(r,e,t,o=0){let n=k(r,"sparseIndices","sparseToDense","int32"),s=k(e,"sparseValues","sparseToDense"),a=k(o,"defaultValue","sparseToDense",s.dtype);qN(n,s,t,a);let i={sparseIndices:n,sparseValues:s,defaultValue:a},l={outputShape:t};return E.runKernel(uu,i,l)}var Zm=S({sparseToDense_:e4});function t4(r,e){let t=k(e,"indices","gatherND","int32"),n={params:k(r,"x","gatherND"),indices:t};return E.runKernel(ii,n)}var Lw=S({gatherND_:t4});function KN(r,e){if(e==null)return r.shape.slice();if(Ur(r.shape,e))return e;if(r.shape.length===e.length){let t=[];for(let o=0;o`x has to be a floating point tensor since it's going to be scaled, but got a ${n.dtype} tensor instead.`),A(e>=0&&e<1,()=>`rate must be a float in the range [0, 1), but got ${e}.`),e===0)return r instanceof Ve?n.clone():n;let s=KN(n,t),a=1-e,i=me(Ns(Q(As(s,0,1,"float32",o),a)),a);return O(n,i)}var zw=S({dropout_:r4});function Bw(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function Jm(r,e,t){let o=1-r%2,n=new Float32Array(r);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${o.rank}`),A(o.rank-1===n.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${o.rank} and targets rank ${n.rank}`),vt(o.shape.slice(0,o.shape.length-1),n.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=o.shape[o.shape.length-1];A(t>0&&t<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${t}`);let a=await o.data(),i=await n.data(),[l,u]=[a.length/s,s],c=cb("bool",l);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;ha4,depthwiseConv2d:()=>p4,matMul:()=>f4});function s4(r,e,t,o,n,s="NHWC",a){let i=r;r.rank===3&&(i=M(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let l=e;l.rank===3&&(l=M(e,[1,e.shape[0],e.shape[1],e.shape[2]])),A(i.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${i.shape}.`),A(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),A(t.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${t}.`);let u=s==="NHWC"?i.shape[3]:i.shape[1],c=s==="NHWC"?l.shape[3]:l.shape[1];A(u===t[2],()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${t[2]}.`),A(c===t[3],()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${t[3]}).`),a!=null&&A(ot(n),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${a} but got pad ${n}.`);let p={x:i,dy:l},m={strides:o,pad:n,dataFormat:s,dimRoundingMode:a,filterShape:t};return E.runKernel(Wl,p,m)}var Jc=S({conv2DBackpropFilter_:s4});function Bu(r,e,t){if(t==null||t==="linear")return r;if(t==="relu")return O(r,Es(e));throw new Error(`Cannot compute gradient for fused activation ${t}.`)}function Vu(r,e){let t=e,o=_t(r.shape,e.shape);return o.length>0&&(t=ge(t,o)),M(t,r.shape)}function Gu(r,e,t,o){if(e==="linear")return r;if(e==="relu")return Nr(r);if(e==="elu")return Is(r);if(e==="relu6")return Du(r);if(e==="prelu")return Ta(r,t);if(e==="leakyrelu")return Ca(r,o);throw new Error(`Unknown fused activation ${e}.`)}var Wu=(r,e)=>!(r>0)||e==="linear";function i4({x:r,filter:e,strides:t,pad:o,dataFormat:n="NHWC",dilations:s=[1,1],dimRoundingMode:a,bias:i,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(l=l||"linear",Wu(E.state.gradientDepth,l)===!1){let C=Kr(r,e,t,o,n,s,a);return i!=null&&(C=Q(C,i)),Gu(C,l,u,c)}let p=k(r,"x","conv2d"),m=k(e,"filter","conv2d"),f=p,d=!1;p.rank===3&&(d=!0,f=M(p,[1,p.shape[0],p.shape[1],p.shape[2]])),A(f.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${f.rank}.`),A(m.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${m.rank}.`),a!=null&&A(ot(o),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`),A(f.shape[3]===m.shape[2],()=>`Error in conv2d: depth of input (${f.shape[3]}) must match input depth for filter ${m.shape[2]}.`),A(wr(t,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${t} and dilations '${s}'`),A(n==="NHWC",()=>`Error in conv2d: got dataFormat of ${n} but only NHWC is currently supported.`);let h=yu(f.shape,m.shape,t,s,o,a),g;i!=null&&(g=k(i,"bias","fused conv2d"),[g]=Ge(g,p),Be(h.outShape,g.shape));let y;u!=null&&(y=k(u,"prelu weights","fused conv2d"));let b=(C,D)=>{let[T,R,P,B]=D,G=Bu(C,P,l);A(Mo(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let U=jc(R.shape,G,T,t,o),j=Jc(R,G,T.shape,t,o),H=[U,j];if(B!=null){let K=Vu(B,G);H.push(K)}return H},w={x:f,filter:m,bias:g,preluActivationWeights:y},_={strides:t,pad:o,dataFormat:n,dilations:s,dimRoundingMode:a,activation:l,leakyreluAlpha:c};return i==null?Xr((D,T,R)=>{let P=E.runKernel(_s,w,_);return R([T,D,P]),d&&(P=M(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:b}})(f,m):Xr((D,T,R,P)=>{let B=E.runKernel(_s,w,_);return P([T,D,B,R]),d&&(B=M(B,[B.shape[1],B.shape[2],B.shape[3]])),{value:B,gradFunc:b}})(f,m,g)}var a4=S({fusedConv2d_:i4});function l4(r,e,t,o,n,s=[1,1],a){let i=r;r.rank===3&&(i=M(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let l=e;l.rank===3&&(l=M(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let u={x:i,dy:l},c={strides:o,pad:n,dimRoundingMode:a,dilations:s,filterShape:t};return E.runKernel(ql,u,c)}var sg=S({depthwiseConv2dNativeBackpropFilter_:l4});function u4(r,e,t,o,n,s=[1,1],a){let i=e,l=!1;e.rank===3&&(l=!0,i=M(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let u={dy:i,filter:t},c={strides:o,pad:n,dimRoundingMode:a,dilations:s,inputShape:r},p=E.runKernel(Kl,u,c);return l?M(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var ig=S({depthwiseConv2dNativeBackpropInput_:u4});function c4({x:r,filter:e,strides:t,pad:o,dataFormat:n="NHWC",dilations:s=[1,1],dimRoundingMode:a,bias:i,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(Wu(E.state.gradientDepth,l)===!1){let C=Cs(r,e,t,o,n,s,a);return i!=null&&(C=Q(C,i)),Gu(C,l,u,c)}let p=k(r,"x","depthwiseConv2d"),m=k(e,"filter","depthwiseConv2d"),f=p,d=!1;p.rank===3&&(d=!0,f=M(p,[1,p.shape[0],p.shape[1],p.shape[2]])),A(f.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${f.rank}.`),A(m.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`),A(f.shape[3]===m.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${f.shape[3]}) must match the inChannels dimension in filter ${m.shape[2]}.`),s==null&&(s=[1,1]),A(wr(t,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${t} and dilations '${s}'`),a!=null&&A(ot(o),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${a} but got pad ${o}.`);let h=yu(f.shape,m.shape,t,s,o,a,!0),g;i!=null&&(g=k(i,"bias","fused conv2d"),[g]=Ge(g,p),Be(h.outShape,g.shape));let y;u!=null&&(y=k(u,"prelu weights","fused depthwiseConv2d"));let b=(C,D)=>{A(Mo(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[T,R,P,B]=D,G=Bu(C,P,l),U=ig(R.shape,G,T,t,o,s,a),j=sg(R,G,T.shape,t,o,s,a);if(B!=null){let H=Vu(g,G);return[U,j,H]}return[U,j]},w={x:f,filter:m,bias:g,preluActivationWeights:y},_={strides:t,pad:o,dataFormat:n,dilations:s,dimRoundingMode:a,activation:l,leakyreluAlpha:c};return i==null?Xr((D,T,R)=>{let P=E.runKernel(ks,w,_);return R([T,D,P]),d&&(P=M(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:b}})(f,m):Xr((D,T,R,P)=>{let B=E.runKernel(ks,w,_);return P([T,D,B,R]),d&&(B=M(B,[B.shape[1],B.shape[2],B.shape[3]])),{value:B,gradFunc:b}})(f,m,g)}var p4=S({fusedDepthwiseConv2d_:c4});function m4({a:r,b:e,transposeA:t=!1,transposeB:o=!1,bias:n,activation:s="linear",preluActivationWeights:a,leakyreluAlpha:i}){if(Wu(E.state.gradientDepth,s)===!1){let B=We(r,e,t,o);return n!=null&&(B=Q(B,n)),Gu(B,s,a,i)}let l=k(r,"a","fused matMul"),u=k(e,"b","fused matMul");[l,u]=Ge(l,u);let c=t?l.shape[l.rank-2]:l.shape[l.rank-1],p=o?u.shape[u.rank-1]:u.shape[u.rank-2],m=t?l.shape[l.rank-1]:l.shape[l.rank-2],f=o?u.shape[u.rank-2]:u.shape[u.rank-1],d=l.shape.slice(0,-2),h=u.shape.slice(0,-2),g=ct(d),y=ct(h);A(l.rank>=2&&u.rank>=2&&l.rank===u.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${l.rank} and ${u.rank}.`),A(Ur(d,h),()=>`Error in fused matMul: outer dimensions (${d}) and (${h}) of Tensors with shapes ${l.shape} and ${u.shape} must match.`),A(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${t} and transposeB=${o} must match.`);let b=l.shape.slice(0,-2).concat([m,f]),w=t?M(l,[g,c,m]):M(l,[g,m,c]),_=o?M(u,[y,f,p]):M(u,[y,p,f]),C;n!=null&&(C=k(n,"bias","fused matMul"),[C]=Ge(C,l),Be(b,C.shape));let D;a!=null&&(D=k(a,"prelu weights","fused matMul"));let T=(B,G)=>{let[U,j,H,K]=G,X=Bu(M(B,H.shape),H,s),oe,Y;if(!t&&!o?(oe=We(X,j,!1,!0),Y=We(U,X,!0,!1)):!t&&o?(oe=We(X,j,!1,!1),Y=We(X,U,!0,!1)):t&&!o?(oe=We(j,X,!1,!0),Y=We(U,X,!1,!1)):(oe=We(j,X,!0,!0),Y=We(X,U,!0,!0)),n!=null){let re=Vu(K,X);return[oe,Y,re]}else return[oe,Y]},R={a:w,b:_,bias:C,preluActivationWeights:D},P={transposeA:t,transposeB:o,activation:s,leakyreluAlpha:i};return n==null?Xr((G,U,j)=>{let H=E.runKernel(ws,R,P);return j([G,U,H]),{value:M(H,b),gradFunc:T}})(w,_):Xr((G,U,j,H)=>{let K=E.runKernel(ws,R,P);return H([G,U,K,j]),{value:M(K,b),gradFunc:T}})(w,_,C)}var f4=S({fusedMatMul_:m4});function d4(r){return Jm(r,.54,.46)}var XN=S({hammingWindow_:d4});function h4(r){return Jm(r,.5,.5)}var ag=S({hannWindow_:h4});function g4(r,e,t,o=!1,n=0){let s=0,a=[];for(;s+e<=r.size;)a.push(Re(r,s,e)),s+=t;if(o)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${a.rank}.`),A(i.rank===2&&i.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${i.shape}.`),A(l.rank===1&&l.shape[0]===u,()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${i.shape}.`),A(o.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${o.length}.`),A(o[0]>=1&&o[1]>=1,()=>`cropSize must be atleast [1,1], but was ${o}`),A(n==="bilinear"||n==="nearest",()=>`method must be bilinear or nearest, but was ${n}`);let c={image:a,boxes:i,boxInd:l},p={method:n,extrapolationValue:s,cropSize:o};return E.runKernel(Qs,c,p)}var ZN=S({cropAndResize_:y4});function b4(r){let e=k(r,"image","flipLeftRight","float32");A(e.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${e.rank}.`);let t={image:e};return E.runKernel(si,t,{})}var JN=S({flipLeftRight_:b4});function w4(r,e,t=0,o=.5){let n=k(r,"image","rotateWithOffset","float32");A(n.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${n.rank}.`);let s={image:n},a={radians:e,fillValue:t,center:o};return E.runKernel(Ei,s,a)}var QN=S({rotateWithOffset_:w4});function Wn(r,e,t,o,n,s){o==null&&(o=.5),n==null&&(n=Number.NEGATIVE_INFINITY),s==null&&(s=0);let a=r.shape[0];return t=Math.min(t,a),A(0<=o&&o<=1,()=>`iouThreshold must be in [0, 1], but was '${o}'`),A(r.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${r.rank}'`),A(r.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${r.shape[1]}`),A(e.rank===1,()=>"scores must be a 1D tensor"),A(e.shape[0]===a,()=>`scores has incompatible shape with boxes. Expected ${a}, but was ${e.shape[0]}`),A(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:t,iouThreshold:o,scoreThreshold:n,softNmsSigma:s}}function _4(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY){let s=k(r,"boxes","nonMaxSuppression"),a=k(e,"scores","nonMaxSuppression"),i=Wn(s,a,t,o,n);t=i.maxOutputSize,o=i.iouThreshold,n=i.scoreThreshold;let l={maxOutputSize:t,iouThreshold:o,scoreThreshold:n};return E.runKernel(xi,{boxes:s,scores:a},l)}var e0=S({nonMaxSuppression_:_4});function t0(r,e,t){let o=k4(r,e,t),n=o<0?-(o+1):o;r.splice(n,0,e)}function k4(r,e,t){return C4(r,e,t||v4)}function v4(r,e){return r>e?1:r>>1);let i=t(e,r[s]);i>0?o=s+1:(n=s,a=!i)}return a?o:-o-1}function Gw(r,e,t,o,n){return Vw(r,e,t,o,n,0)}function Ww(r,e,t,o,n,s){return Vw(r,e,t,o,n,0,!1,s,!0)}function Uw(r,e,t,o,n,s){return Vw(r,e,t,o,n,s,!0)}function Vw(r,e,t,o,n,s,a=!1,i=!1,l=!1){let u=[];for(let g=0;gn&&u.push({score:e[g],boxIndex:g,suppressBeginIndex:0});u.sort(r0);let c=s>0?-.5/s:0,p=[],m=[];for(;p.length0;){let g=u.pop(),{score:y,boxIndex:b,suppressBeginIndex:w}=g;if(y=w;--C){let D=I4(r,b,p[C]);if(D>=o){_=!0;break}if(g.score=g.score*N4(o,c,D),g.score<=n)break}g.suppressBeginIndex=p.length,_||(g.score===y?(p.push(b),m.push(g.score)):g.score>n&&t0(u,g,r0))}let f=p.length,d=t-f;i&&d>0&&(p.push(...new Array(d).fill(0)),m.push(...new Array(d).fill(0)));let h={selectedIndices:p};return a&&(h.selectedScores=m),l&&(h.validOutputs=f),h}function I4(r,e,t){let o=r.subarray(e*4,e*4+4),n=r.subarray(t*4,t*4+4),s=Math.min(o[0],o[2]),a=Math.min(o[1],o[3]),i=Math.max(o[0],o[2]),l=Math.max(o[1],o[3]),u=Math.min(n[0],n[2]),c=Math.min(n[1],n[3]),p=Math.max(n[0],n[2]),m=Math.max(n[1],n[3]),f=(i-s)*(l-a),d=(p-u)*(m-c);if(f<=0||d<=0)return 0;let h=Math.max(s,u),g=Math.max(a,c),y=Math.min(i,p),b=Math.min(l,m),w=Math.max(y-h,0)*Math.max(b-g,0);return w/(f+d-w)}function N4(r,e,t){let o=Math.exp(e*t*t);return t<=r?o:0}function r0(r,e){return r.score-e.score||r.score===e.score&&e.boxIndex-r.boxIndex}async function S4(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY){let s=k(r,"boxes","nonMaxSuppressionAsync"),a=k(e,"scores","nonMaxSuppressionAsync"),i=Wn(s,a,t,o,n);t=i.maxOutputSize,o=i.iouThreshold,n=i.scoreThreshold;let l=await Promise.all([s.data(),a.data()]),u=l[0],c=l[1],{selectedIndices:p}=Gw(u,c,t,o,n);return s!==r&&s.dispose(),a!==e&&a.dispose(),Vt(p,"int32")}var o0=S4;function T4(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY,s=0){let a=k(r,"boxes","nonMaxSuppression"),i=k(e,"scores","nonMaxSuppression"),l=Wn(a,i,t,o,n,s);t=l.maxOutputSize,o=l.iouThreshold,n=l.scoreThreshold,s=l.softNmsSigma;let u={boxes:a,scores:i},c={maxOutputSize:t,iouThreshold:o,scoreThreshold:n,softNmsSigma:s},p=E.runKernel(bi,u,c);return{selectedIndices:p[0],selectedScores:p[1]}}var n0=S({nonMaxSuppressionWithScore_:T4});async function A4(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY,s=0){let a=k(r,"boxes","nonMaxSuppressionAsync"),i=k(e,"scores","nonMaxSuppressionAsync"),l=Wn(a,i,t,o,n,s);t=l.maxOutputSize,o=l.iouThreshold,n=l.scoreThreshold,s=l.softNmsSigma;let u=await Promise.all([a.data(),i.data()]),c=u[0],p=u[1],{selectedIndices:m,selectedScores:f}=Uw(c,p,t,o,n,s);return a!==r&&a.dispose(),i!==e&&i.dispose(),{selectedIndices:Vt(m,"int32"),selectedScores:Vt(f)}}var s0=A4;function E4(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY,s=!1){let a=k(r,"boxes","nonMaxSuppression"),i=k(e,"scores","nonMaxSuppression"),l=Wn(a,i,t,o,n,null),u=l.maxOutputSize,c=l.iouThreshold,p=l.scoreThreshold,m={boxes:a,scores:i},f={maxOutputSize:u,iouThreshold:c,scoreThreshold:p,padToMaxOutputSize:s},d=E.runKernel(yi,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var i0=S({nonMaxSuppressionPadded_:E4});async function D4(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY,s=!1){let a=k(r,"boxes","nonMaxSuppressionAsync"),i=k(e,"scores","nonMaxSuppressionAsync"),l=Wn(a,i,t,o,n,null),u=l.maxOutputSize,c=l.iouThreshold,p=l.scoreThreshold,[m,f]=await Promise.all([a.data(),i.data()]),{selectedIndices:d,validOutputs:h}=Ww(m,f,u,c,p,s);return a!==r&&a.dispose(),i!==e&&i.dispose(),{selectedIndices:Vt(d,"int32"),validOutputs:ue(h,"int32")}}var a0=D4;function $4(r,e,t=!1,o=!1){let n=k(r,"images","resizeBilinear");A(n.rank===3||n.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${n.rank}.`),A(e.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${e}.`),A(o===!1||t===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=n,a=!1;n.rank===3&&(a=!0,s=M(n,[1,n.shape[0],n.shape[1],n.shape[2]]));let[]=e,i={images:s},l={alignCorners:t,halfPixelCenters:o,size:e},u=E.runKernel(vn,i,l);return a?M(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var ug=S({resizeBilinear_:$4});function R4(r,e,t=!1,o=!1){let n=k(r,"images","resizeNearestNeighbor");A(n.rank===3||n.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${n.rank}.`),A(e.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${e}.`),A(n.dtype==="float32"||n.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),A(o===!1||t===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=n,a=!1;n.rank===3&&(a=!0,s=M(n,[1,n.shape[0],n.shape[1],n.shape[2]]));let[]=e,i={images:s},l={alignCorners:t,halfPixelCenters:o,size:e},u=E.runKernel(pa,i,l);return a?M(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var cg=S({resizeNearestNeighbor_:R4});function F4(r,e,t){A(e%1==0,()=>`bandPart(): numLower must be an integer, got ${e}.`),A(t%1==0,()=>`bandPart(): numUpper must be an integer, got ${t}.`);let o=k(r,"a","bandPart");A(o.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${o.rank}.`);let n=o.shape,[s,a]=o.shape.slice(-2);if(!(e<=s))throw new Error(`bandPart(): numLower (${e}) must not be greater than the number of rows (${s}).`);if(!(t<=a))throw new Error(`bandPart(): numUpper (${t}) must not be greater than the number of columns (${a}).`);e<0&&(e=s),t<0&&(t=a);let i=M(Xc(0,s,1,"int32"),[-1,1]),l=Xc(0,a,1,"int32"),u=ce(i,l),c=dr(zo(u,ue(+e,"int32")),io(u,ue(-t,"int32"))),p=ht([s,a],o.dtype);return M(Bt(cr(M(o,[-1,s,a])).map(m=>Dt(c,m,p))),n)}var l0=S({bandPart_:F4});function O4(r){let e;if(Array.isArray(r)){e=!1,A(r!=null&&r.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let n=r[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${r[s].shape[0]} vs. ${n})`)}else e=!0,r=ur(r,r.shape[0],0).map(n=>Co(n,[0]));A(r.length<=r[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${r.length}) exceeds number of dimensions (${r[0].shape[0]}).`);let t=[],o=r;for(let n=0;n{let s=o[n];if(n>0)for(let a=0;a=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${r.rank}`),r.rank===2)return c0(r,e);{let t=r.shape.slice(0,r.shape.length-2).reduce((l,u)=>l*u),o=cr(M(r,[t,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),n=[],s=[];o.forEach(l=>{let[u,c]=c0(l,e);n.push(u),s.push(c)});let a=M(Bt(n,0),r.shape),i=M(Bt(s,0),r.shape);return[a,i]}}function c0(r,e=!1){return E.tidy(()=>{A(r.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${r.shape.length}D Tensor.`);let t=r.shape[0],o=r.shape[1],n=Hc(t),s=Oo(r),a=Mi([[1]],[1,1]),i=Oo(a),l=t>=o?o:t;for(let u=0;u{let f=Re(s,[u,u],[t-u,1]),d=zu(f),h=Re(s,[u,u],[1,1]),g=Dt(Qt(h,0),Mi([[-1]]),Mi([[1]])),y=ce(h,O(g,d)),b=me(f,y);b.shape[0]===1?i=Oo(a):i=Ye([a,Re(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=He(me(We(g,y),d)),_=Re(s,[u,0],[t-u,o]),C=O(w,i),D=je(i);if(u===0)s=ce(_,We(C,We(D,_)));else{let P=ce(_,We(C,We(D,_)));s=Ye([Re(s,[0,0],[u,o]),P],0)}let T=je(C),R=Re(n,[0,u],[t,n.shape[1]-u]);if(u===0)n=ce(R,We(We(R,i),T));else{let P=ce(R,We(We(R,i),T));n=Ye([Re(n,[0,0],[t,u]),P],1)}return[i,s,n]}),Te([c,p,m])}return!e&&t>o&&(n=Re(n,[0,0],[t,o]),s=Re(s,[0,0],[o,o])),[n,s]})}var p0=S({qr_:P4});var Gt;(function(r){r[r.NONE=0]="NONE",r[r.MEAN=1]="MEAN",r[r.SUM=2]="SUM",r[r.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(Gt||(Gt={}));function M4(r,e,t=Gt.SUM_BY_NONZERO_WEIGHTS){let o=k(r,"losses","computeWeightedLoss"),n=null;e!=null&&(n=k(e,"weights","computeWeightedLoss"));let s=n==null?o:O(o,n);if(t===Gt.NONE)return s;if(t===Gt.SUM)return ge(s);if(t===Gt.MEAN){if(n==null)return dt(s);{let a=o.size/n.size,i=me(ge(s),ge(n));return a>1?me(i,ue(a)):i}}if(t===Gt.SUM_BY_NONZERO_WEIGHTS){if(n==null)return me(ge(s),ue(o.size));{let a=O(n,Ir(o.shape)),i=ne(ge(Vn(a,ue(0))),"float32");return me(ge(s),i)}}throw Error(`Unknown reduction: ${t}`)}var Sr=S({computeWeightedLoss_:M4});function L4(r,e,t,o=Gt.SUM_BY_NONZERO_WEIGHTS){let n=k(r,"labels","absoluteDifference"),s=k(e,"predictions","absoluteDifference"),a=null;t!=null&&(a=k(t,"weights","absoluteDifference")),vt(n.shape,s.shape,"Error in absoluteDifference: ");let i=It(ce(n,s));return Sr(i,a,o)}var m0=S({absoluteDifference_:L4});function z4(r,e,t,o,n=Gt.SUM_BY_NONZERO_WEIGHTS){let s=k(r,"labels","cosineDistance"),a=k(e,"predictions","cosineDistance"),i=null;o!=null&&(i=k(o,"weights","cosineDistance")),vt(s.shape,a.shape,"Error in cosineDistance: ");let l=ue(1),u=ce(l,ge(O(s,a),t,!0));return Sr(u,i,n)}var f0=S({cosineDistance_:z4});function B4(r,e,t,o=Gt.SUM_BY_NONZERO_WEIGHTS){let n=k(r,"labels","hingeLoss"),s=k(e,"predictions","hingeLoss"),a=null;t!=null&&(a=k(t,"weights","hingeLoss")),vt(n.shape,s.shape,"Error in hingeLoss: ");let i=ue(1);n=ce(O(ue(2),n),i);let l=Nr(ce(i,O(n,s)));return Sr(l,a,o)}var d0=S({hingeLoss_:B4});function V4(r,e,t,o=1,n=Gt.SUM_BY_NONZERO_WEIGHTS){let s=k(r,"labels","huberLoss"),a=k(e,"predictions","huberLoss"),i=null;t!=null&&(i=k(t,"weights","huberLoss")),vt(s.shape,a.shape,"Error in huberLoss: ");let l=ue(o),u=It(ce(a,s)),c=Ts(u,l),p=ce(u,c),m=Q(O(ue(.5),Oe(c)),O(l,p));return Sr(m,i,n)}var h0=S({huberLoss_:V4});function G4(r,e,t,o=1e-7,n=Gt.SUM_BY_NONZERO_WEIGHTS){let s=k(r,"labels","logLoss"),a=k(e,"predictions","logLoss"),i=null;t!=null&&(i=k(t,"weights","logLoss")),vt(s.shape,a.shape,"Error in logLoss: ");let l=ue(1),u=ue(o),c=He(O(s,ar(Q(a,u)))),p=O(ce(l,s),ar(Q(ce(l,a),u))),m=ce(c,p);return Sr(m,i,n)}var g0=S({logLoss_:G4});function W4(r,e,t,o=Gt.SUM_BY_NONZERO_WEIGHTS){let n=k(r,"labels","meanSquaredError"),s=k(e,"predictions","meanSquaredError"),a=null;t!=null&&(a=k(t,"weights","meanSquaredError")),vt(n.shape,s.shape,"Error in meanSquaredError: ");let i=Mu(n,s);return Sr(i,a,o)}var x0=S({meanSquaredError_:W4});function U4(r,e){let t=k(r,"labels","sigmoidCrossEntropyWithLogits"),o=k(e,"logits","sigmoidCrossEntropyWithLogits");vt(t.shape,o.shape,"Error in sigmoidCrossEntropyWithLogits: ");let n=Nr(o),s=O(o,t),a=Nu(Yt(He(It(o))));return Q(ce(n,s),a)}function j4(r,e,t,o=0,n=Gt.SUM_BY_NONZERO_WEIGHTS){let s=k(r,"multiClassLabels","sigmoidCrossEntropy"),a=k(e,"logits","sigmoidCrossEntropy"),i=null;if(t!=null&&(i=k(t,"weights","sigmoidCrossEntropy")),vt(s.shape,a.shape,"Error in sigmoidCrossEntropy: "),o>0){let u=ue(o),c=ue(1),p=ue(.5);s=Q(O(s,ce(c,u)),O(p,u))}let l=U4(s,a);return Sr(l,i,n)}var y0=S({sigmoidCrossEntropy_:j4});function H4(r,e,t=-1){if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${e.rank} and dim was ${t}`);return Xr((n,s,a)=>{let l=Om(s,[t],!0),u=ce(ne(s,"float32"),l);a([n,u]);let c=He(O(u,n));return{value:ge(c,[t]),gradFunc:(f,d)=>{let[h,g]=d,y=Bn(f.shape,[t]);return[O(M(f,y),ce(ne(h,"float32"),Yt(g))),O(M(f,y),ce(Yt(g),ne(h,"float32")))]}}})(r,e)}function q4(r,e,t,o=0,n=Gt.SUM_BY_NONZERO_WEIGHTS){let s=k(r,"onehotLabels","softmaxCrossEntropy"),a=k(e,"logits","softmaxCrossEntropy"),i=null;if(t!=null&&(i=k(t,"weights","softmaxCrossEntropy")),vt(s.shape,a.shape,"Error in softmaxCrossEntropy: "),o>0){let u=ue(o),c=ue(1),p=ue(s.shape[1]);s=Q(O(s,ce(c,u)),me(u,p))}let l=H4(s,a);return Sr(l,i,n)}var b0=S({softmaxCrossEntropy_:q4});var K4={fft:Ea,ifft:Pi,rfft:Da,irfft:Pu},X4={hammingWindow:XN,hannWindow:ag,frame:lg,stft:YN},Ds={flipLeftRight:JN,resizeNearestNeighbor:cg,resizeBilinear:ug,rotateWithOffset:QN,cropAndResize:ZN,nonMaxSuppression:e0,nonMaxSuppressionAsync:o0,nonMaxSuppressionWithScore:n0,nonMaxSuppressionWithScoreAsync:s0,nonMaxSuppressionPadded:i0,nonMaxSuppressionPaddedAsync:a0},jw={bandPart:l0,gramSchmidt:u0,qr:p0},Y4={absoluteDifference:m0,computeWeightedLoss:Sr,cosineDistance:f0,hingeLoss:d0,huberLoss:h0,logLoss:g0,meanSquaredError:x0,sigmoidCrossEntropy:y0,softmaxCrossEntropy:b0};var Or=class extends Xh{minimize(e,t=!1,o){let{value:n,grads:s}=this.computeGradients(e,o);if(o!=null){let a=o.map(i=>({name:i.name,tensor:s[i.name]}));this.applyGradients(a)}else this.applyGradients(s);return Te(s),t?n:(n.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return eg(e,t)}dispose(){this.iterations_!=null&&Te(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:ue(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}};Object.defineProperty(Or,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var Qc=class extends Or{constructor(e,t,o=null){super();this.learningRate=e,this.rho=t,this.epsilon=o,this.accumulatedGrads=[],this.accumulatedUpdates=[],o==null&&(this.epsilon=E.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(o=>o.name):Object.keys(e)).forEach((o,n)=>{let s=E.registeredVariables[o],a=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${o}/accum_grad`,variable:V(()=>Ce(s).variable(a))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${o}/accum_var`,variable:V(()=>Ce(s).variable(a))});let i=Array.isArray(e)?e[n].tensor:e[o];if(i==null)return;let l=this.accumulatedGrads[n].variable,u=this.accumulatedUpdates[n].variable;V(()=>{let c=Q(O(l,this.rho),O(Oe(i),1-this.rho)),p=O(me(gt(Q(u,this.epsilon)),gt(Q(l,this.epsilon))),i),m=Q(O(u,this.rho),O(Oe(p),1-this.rho));l.assign(c),u.assign(m);let f=Q(O(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Te(this.accumulatedGrads.map(e=>e.variable)),Te(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=e.length/2,o=!1;this.accumulatedGrads=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(o)})),this.accumulatedUpdates=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(o)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}};Qc.className="Adadelta";so(Qc);var ep=class extends Or{constructor(e,t=.1){super();this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(o=>o.name):Object.keys(e)).forEach((o,n)=>{let s=E.registeredVariables[o];if(this.accumulatedGrads[n]==null){let l=!1;this.accumulatedGrads[n]={originalName:`${o}/accumulator`,variable:V(()=>va(s.shape,this.initialAccumulatorValue).variable(l))}}let a=Array.isArray(e)?e[n].tensor:e[o];if(a==null)return;let i=this.accumulatedGrads[n].variable;V(()=>{let l=Q(i,Oe(a));i.assign(l);let u=Q(O(me(a,gt(Q(l,E.backend.epsilon()))),-this.learningRate),s);s.assign(u)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Te(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulatedGrads=e.map(o=>({originalName:o.name,variable:o.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}};ep.className="Adagrad";so(ep);var tp=class extends Or{constructor(e,t,o,n=null){super();this.learningRate=e,this.beta1=t,this.beta2=o,this.epsilon=n,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],V(()=>{this.accBeta1=ue(t).variable(),this.accBeta2=ue(o).variable()}),n==null&&(this.epsilon=E.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(o=>o.name):Object.keys(e);V(()=>{let o=ce(1,this.accBeta1),n=ce(1,this.accBeta2);t.forEach((s,a)=>{let i=E.registeredVariables[s],l=!1;this.accumulatedFirstMoment[a]==null&&(this.accumulatedFirstMoment[a]={originalName:`${s}/m`,variable:V(()=>Ce(i).variable(l))}),this.accumulatedSecondMoment[a]==null&&(this.accumulatedSecondMoment[a]={originalName:`${s}/v`,variable:V(()=>Ce(i).variable(l))});let u=Array.isArray(e)?e[a].tensor:e[s];if(u==null)return;let c=this.accumulatedFirstMoment[a].variable,p=this.accumulatedSecondMoment[a].variable,m=Q(O(c,this.beta1),O(u,1-this.beta1)),f=Q(O(p,this.beta2),O(Oe(u),1-this.beta2)),d=me(m,o),h=me(f,n);c.assign(m),p.assign(f);let g=Q(O(me(d,Q(gt(h),this.epsilon)),-this.learningRate),i);i.assign(g)}),this.accBeta1.assign(O(this.accBeta1,this.beta1)),this.accBeta2.assign(O(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Te(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&Te(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),V(()=>{this.accBeta1.assign(Fr(this.beta1,this.iterations_+1)),this.accBeta2.assign(Fr(this.beta2,this.iterations_+1))});let t=e.length/2,o=!1;this.accumulatedFirstMoment=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(o)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(o)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}};tp.className="Adam";so(tp);var rp=class extends Or{constructor(e,t,o,n=null,s=0){super();this.learningRate=e,this.beta1=t,this.beta2=o,this.epsilon=n,this.decay=s,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],V(()=>{this.iteration=ue(0).variable(),this.accBeta1=ue(t).variable()}),n==null&&(this.epsilon=E.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(o=>o.name):Object.keys(e);V(()=>{let o=ce(1,this.accBeta1),n=me(-this.learningRate,Q(O(this.iteration,this.decay),1));t.forEach((s,a)=>{let i=E.registeredVariables[s],l=!1;this.accumulatedFirstMoment[a]==null&&(this.accumulatedFirstMoment[a]={originalName:`${s}/m`,variable:Ce(i).variable(l)}),this.accumulatedWeightedInfNorm[a]==null&&(this.accumulatedWeightedInfNorm[a]={originalName:`${s}/v`,variable:Ce(i).variable(l)});let u=Array.isArray(e)?e[a].tensor:e[s];if(u==null)return;let c=this.accumulatedFirstMoment[a].variable,p=this.accumulatedWeightedInfNorm[a].variable,m=Q(O(c,this.beta1),O(u,1-this.beta1)),f=O(p,this.beta2),d=It(u),h=Yr(f,d);c.assign(m),p.assign(h);let g=Q(O(me(n,o),me(m,Q(h,this.epsilon))),i);i.assign(g)}),this.iteration.assign(Q(this.iteration,1)),this.accBeta1.assign(O(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Te(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&Te(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}};rp.className="Adamax";so(rp);var al=class extends Or{constructor(e){super();this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(o=>o.name):Object.keys(e)).forEach((o,n)=>{let s=Array.isArray(e)?e[n].tensor:e[o];if(s==null)return;let a=E.registeredVariables[o];V(()=>{let i=Q(O(this.c,s),a);a.assign(i)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=Et(ue(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}};al.className="SGD";so(al);var op=class extends al{constructor(e,t,o=!1){super(e);this.learningRate=e,this.momentum=t,this.useNesterov=o,this.accumulations=[],this.m=ue(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(o=>o.name):Object.keys(e)).forEach((o,n)=>{let s=E.registeredVariables[o];if(this.accumulations[n]==null){let l=!1;this.accumulations[n]={originalName:`${o}/momentum`,variable:V(()=>Ce(s).variable(l))}}let a=this.accumulations[n].variable,i=Array.isArray(e)?e[n].tensor:e[o];i!=null&&V(()=>{let l,u=Q(O(this.m,a),i);this.useNesterov?l=Q(O(this.c,Q(i,O(u,this.m))),s):l=Q(O(this.c,u),s),a.assign(u),s.assign(l)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Te(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulations=e.map(o=>({originalName:o.name,variable:o.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}};op.className="Momentum";so(op);var np=class extends Or{constructor(e,t=.9,o=0,n=null,s=!1){super();if(this.learningRate=e,this.decay=t,this.momentum=o,this.epsilon=n,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=s,n==null&&(this.epsilon=E.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(o=>o.name):Object.keys(e)).forEach((o,n)=>{let s=E.registeredVariables[o],a=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${o}/rms`,variable:V(()=>Ce(s).variable(a))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${o}/momentum`,variable:V(()=>Ce(s).variable(a))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${o}/mg`,variable:V(()=>Ce(s).variable(a))});let i=Array.isArray(e)?e[n].tensor:e[o];if(i==null)return;let l=this.accumulatedMeanSquares[n].variable,u=this.accumulatedMoments[n].variable;V(()=>{let c=Q(O(l,this.decay),O(Oe(i),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[n].variable,m=Q(O(p,this.decay),O(i,1-this.decay)),f=me(O(i,this.learningRate),gt(ce(c,Q(Oe(m),this.epsilon)))),d=Q(O(u,this.momentum),f);l.assign(c),p.assign(m),u.assign(d);let h=ce(s,d);s.assign(h)}else{let p=Q(O(l,this.decay),O(Oe(i),1-this.decay)),m=Q(O(u,this.momentum),me(O(i,this.learningRate),gt(Q(p,this.epsilon))));l.assign(p),u.assign(m);let f=ce(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Te(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Te(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&Te(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2,o=!1;this.accumulatedMeanSquares=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(o)})),this.accumulatedMoments=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(o)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(n=>({originalName:n.name,variable:n.tensor.variable(o)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}};np.className="RMSProp";so(np);var $a=class{static sgd(e){return new al(e)}static momentum(e,t,o=!1){return new op(e,t,o)}static rmsprop(e,t=.9,o=0,n=null,s=!1){return new np(e,t,o,n,s)}static adam(e=.001,t=.9,o=.999,n=null){return new tp(e,t,o,n)}static adadelta(e=.001,t=.95,o=null){return new Qc(e,t,o)}static adamax(e=.002,t=.9,o=.999,n=null,s=0){return new rp(e,t,o,n,s)}static adagrad(e,t=.1){return new ep(e,t)}};var ll={sgd:$a.sgd,momentum:$a.momentum,adadelta:$a.adadelta,adagrad:$a.adagrad,rmsprop:$a.rmsprop,adamax:$a.adamax,adam:$a.adam};var Z4=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:r=>r())();function Qm(){return new Promise(r=>Z4(()=>r()))}var N={};Je(N,{ERF_A1:()=>lj,ERF_A2:()=>uj,ERF_A3:()=>cj,ERF_A4:()=>pj,ERF_A5:()=>mj,ERF_P:()=>aj,PARALLELIZE_THRESHOLD:()=>pg,SELU_SCALE:()=>qw,SELU_SCALEALPHA:()=>Hw,applyActivation:()=>Gu,assertAndGetBroadcastShape:()=>Be,assertAxesAreInnerMostDims:()=>rW,assertParamsConsistent:()=>J4,assignToTypedArray:()=>wj,axesAreInnerMostDims:()=>bw,calculateShapes:()=>mN,combineLocations:()=>EN,complexWithEvenIndex:()=>xj,complexWithOddIndex:()=>yj,computeConv2DInfo:()=>yu,computeConv3DInfo:()=>TN,computeDefaultPad:()=>ow,computeDilation2DInfo:()=>SV,computeOptimalWindowSize:()=>ej,computeOutAndReduceShapes:()=>ww,computeOutShape:()=>Q4,computePool2DInfo:()=>tw,computePool3DInfo:()=>TV,convertConv2DDataFormat:()=>SN,eitherStridesOrDilationsAreOne:()=>wr,expandShapeToKeepDim:()=>Bn,exponent:()=>kj,exponents:()=>_j,fromStringArrayToUint8:()=>Tj,fromUint8ToStringArray:()=>Sj,getAxesPermutation:()=>_w,getBroadcastDims:()=>yG,getComplexWithIndex:()=>bj,getFusedBiasGradient:()=>Vu,getFusedDyActivation:()=>Bu,getImageCenter:()=>tj,getInnerMostAxes:()=>oW,getPermuted:()=>oj,getReductionAxes:()=>_t,getReshaped:()=>rj,getReshapedPermuted:()=>nj,getSliceBeginCoords:()=>sj,getSliceSize:()=>ij,getUndoAxesPermutation:()=>Fm,log:()=>dj,mergeRealAndImagArrays:()=>hj,prepareAndValidate:()=>pN,prepareSplitSize:()=>vj,segment_util:()=>w0,shouldFuse:()=>Wu,slice_util:()=>nr,splitRealAndImagArrays:()=>gj,tupleValuesAreOne:()=>Mo,upcastType:()=>fr,validateInput:()=>qh,validateUpdateShape:()=>qb,warn:()=>fj});function J4(r,e){let t=r[0].length;r.forEach((n,s)=>{A(n.length===t,()=>`Error in concat${t}D: rank of tensors[${s}] must be the same as the rank of the rest (${t})`)}),A(e>=0&&e`Error in concat${t}D: axis must be between 0 and ${t-1}.`);let o=r[0];r.forEach((n,s)=>{for(let a=0;a`Error in concat${t}D: Shape of tensors[${s}] (${n}) does not match the shape of the rest (${o}) along the non-concatenated axis ${s}.`)})}function Q4(r,e){let t=r[0].slice();for(let o=1;o=e*2+1||a%2==1?s.push(a):n.push(a);o.push(...n),o.push(0),o.push(...s)}return o}function nj(r,e,t,o=!0){let n=[];o?n.push(r[0]/t):n.push(r[0]*t);for(let s=1;s"Number of splits must evenly divide the axis."),o=new Array(e).fill(r.shape[t]/e);else{let n=e.reduce((a,i)=>(i===-1&&(a+=1),a),0);A(n<=1,()=>"There should be only one negative value in split array.");let s=e.indexOf(-1);if(s!==-1){let a=e.reduce((i,l)=>l>0?i+l:i);e[s]=r.shape[t]-a}A(r.shape[t]===e.reduce((a,i)=>a+i),()=>"The sum of sizes must match the size of the axis dimension."),o=e}return o}var w0={};Je(w0,{collectGatherOpShapeInfo:()=>Nj,computeOutShape:()=>Ij,segOpComputeOptimalWindowSize:()=>Cj});function Cj(r,e){let t=!1,o;for(r<=pg?(o=r,t=!0):o=Tc(r,Math.floor(Math.sqrt(r)));!t;)o>e||o===r?t=!0:o=Tc(r,o+1);return o}function Ij(r,e,t){let o=[],n=r.length;for(let s=0;sn))throw new Error(`Expect batchDims in the range of [-${n}, ${n}], but got ${o}`);if(o<0&&(o+=n),o>s)throw new Error(`batchDims (${o}) must be less than rank(x) ( - ${s}).`);if(tPc(e))}catch(e){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${e}`)}}function Tj(r){return r.map(e=>Qa(e))}var Tr={};Je(Tr,{nonMaxSuppressionV3Impl:()=>Gw,nonMaxSuppressionV4Impl:()=>Ww,nonMaxSuppressionV5Impl:()=>Uw,whereImpl:()=>Pw});var mg={kernelName:as,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,Es(ne(t,"float32"),-1))}}};var _0={kernelName:js,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>{let o=Oe(ne(t,"float32")),n=gt(ce(ue(1),o));return He(me(r,n))}}}};var k0={kernelName:Hs,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>{let o=gt(ce(Oe(ne(t,"float32")),1));return me(r,o)}}}};var v0={kernelName:wo,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=Be(t.shape,o.shape);return{a:()=>{let i=r,l=_t(t.shape,n);return l.length>0&&(i=ge(i,l)),M(i,t.shape)},b:()=>{let i=r,l=_t(o.shape,n);return l.length>0&&(i=ge(i,l)),M(i,o.shape)}}}};var C0={kernelName:Ho,saveAllInputs:!0,gradFunc:(r,e)=>{let t={};return e.forEach((o,n)=>{t[n]=()=>r.clone()}),t}};var I0={kernelName:qo,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>Ce(t)}}};var N0={kernelName:ea,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>Ce(t)}}};var S0={kernelName:qs,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>me(r,gt(ce(ue(1),Oe(ne(t,"float32")))))}}};var T0={kernelName:Ks,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>{let o=gt(Q(ue(1),Oe(ne(t,"float32"))));return me(r,o)}}}};var A0={kernelName:Zs,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=Be(t.shape,o.shape);return{a:()=>{let i=Q(Oe(t),Oe(o)),l=O(r,me(o,i)),u=_t(t.shape,n);return u.length>0&&(l=ge(l,u)),M(l,t.shape)},b:()=>{let i=Q(Oe(t),Oe(o)),l=He(O(r,me(t,i))),u=_t(o.shape,n);return u.length>0&&(l=ge(l,u)),M(l,o.shape)}}}};var E0={kernelName:Xs,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>me(r,Q(Oe(ne(t,"float32")),1))}}};var D0={kernelName:Ys,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>me(r,ce(ue(1),Oe(ne(t,"float32"))))}}};function Aj(r,e,t,o,n,s){let a=k(r,"dy","avgPool3dGrad"),i=k(e,"input","avgPool3dGrad"),l=a,u=i,c=!1;i.rank===4&&(c=!0,l=M(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),u=M(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),A(u.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${u.rank}.`),s!=null&&A(ot(n),()=>`Error in avgPool3dGrad: pad must be an integer when using, dimRoundingMode ${s} but got pad ${n}.`);let p={dy:l,input:u},m={filterSize:t,strides:o,pad:n,dimRoundingMode:s},f=E.runKernel(Bl,p,m);return c?M(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var $0=S({avgPool3dGrad_:Aj});var R0={kernelName:ta,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{filterSize:n,strides:s,pad:a,dimRoundingMode:i}=t;return{x:()=>$0(r,o,n,s,a,i)}}};function Ej(r,e,t,o,n){let s=k(r,"dy","avgPoolGrad"),a=k(e,"input","avgPoolGrad");A(a.rank===s.rank,()=>`Rank of input (${a.rank}) does not match rank of dy (${s.rank})`);let i=a,l=s,u=!1;a.rank===3&&(u=!0,i=M(a,[1,a.shape[0],a.shape[1],a.shape[2]]),l=M(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),A(i.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${i.rank}.`);let c={dy:l,input:i},p={filterSize:t,strides:o,pad:n},m=E.runKernel(zl,c,p);return u?M(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var F0=S({avgPoolGrad_:Ej});var O0={kernelName:Ko,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{filterSize:n,strides:s,pad:a}=t;return{x:()=>F0(r,o,n,s,a)}}};var P0={kernelName:Xo,inputsToSave:["a","b"],gradFunc:(r,e,t)=>{let[o,n]=e,{transposeA:s,transposeB:a}=t;return!s&&!a?{a:()=>We(r,n,!1,!0),b:()=>We(o,r,!0,!1)}:!s&&a?{a:()=>We(r,n,!1,!1),b:()=>We(r,o,!0,!1)}:s&&!a?{a:()=>We(n,r,!1,!0),b:()=>We(o,r,!1,!1)}:{a:()=>We(n,r,!0,!0),b:()=>We(r,o,!0,!0)}}};var M0={kernelName:ra,gradFunc:(r,e,t)=>{let{blockShape:o,crops:n}=t;return{x:()=>Sa(r,o,n)}}};var L0={kernelName:yb,gradFunc:(r,e,t)=>{let o=t,n=o.inputShape,s=o.shape,a=Array.from(s);for(let l=n.length-1;l>=0;l--)if(n[l]===s[l])a[l]=1;else if(n[l]!==1)throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${s}].`);let i=[];for(let l=0;l1&&i.push(l);return{x:()=>ge(r,i,!0)}}};var z0={kernelName:Do,gradFunc:r=>({x:()=>r.clone()})};var B0={kernelName:Yo,gradFunc:r=>({x:()=>Ce(r)})};var V0={kernelName:$o,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{clipValueMin:n,clipValueMax:s}=t;return{x:()=>Dt(dr(io(o,n),zo(o,s)),r,Ce(r))}}};var G0={kernelName:oa,inputsToSave:["x"],gradFunc:mg.gradFunc};var W0={kernelName:ls,saveAllInputs:!0,gradFunc:(r,e,t)=>{let o=e.map(l=>l.shape),{axis:n}=t,s=Jt(n,e[0].shape)[0],a=o.map(l=>l[s]);return ur(r,a,s).map(l=>()=>l)}};var U0={kernelName:Zo,inputsToSave:["x","filter"],gradFunc:(r,e,t)=>{let[o,n]=e,{dilations:s,strides:a,pad:i,dataFormat:l}=t;return A(Mo(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>jc(o.shape,r,n,a,i,l),filter:()=>Jc(o,r,n.shape,a,i,l)}}};var j0={kernelName:Jo,inputsToSave:["dy","filter"],gradFunc:(r,e,t)=>{let[o,n]=e,{strides:s,pad:a,dataFormat:i,dimRoundingMode:l}=t;return{dy:()=>Kr(r,n,s,a,i,1,l),filter:()=>Jc(r,o,n.shape,s,a,i,l)}}};function Dj(r,e,t,o,n){let s=r;r.rank===4&&(s=M(r,[1,r.shape[0],r.shape[1],r.shape[2],r.shape[3]]));let a=e;a.rank===4&&(a=M(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]])),A(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),A(a.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${a.shape}.`),A(t.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${t}.`),A(s.shape[4]===t[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${t[3]}.`),A(a.shape[4]===t[4],()=>`Error in conv3dDerFilter: depth of dy (${a.shape[4]}) must match output depth for filter (${t[4]}).`);let i={x:s,dy:a},l={strides:o,pad:n,filterShape:t};return E.runKernel(Ul,i,l)}var H0=S({conv3DBackpropFilter_:Dj});var q0={kernelName:na,inputsToSave:["x","filter"],gradFunc:(r,e,t)=>{let{dilations:o,strides:n,pad:s}=t;A(Mo(o),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${o}'`);let[a,i]=e;return{x:()=>Jh(a.shape,r,i,n,s),filter:()=>H0(a,r,i.shape,n,s)}}};var K0={kernelName:Qo,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(He(Fu(ne(t,"float32"))),r)}}};var X0={kernelName:Js,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(Ou(ne(t,"float32")),r)}}};var Y0={kernelName:en,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{axis:n,exclusive:s,reverse:a}=t;return{x:()=>{let i=_w([n],o.rank),l=vu(r,n,s,!a);return i!=null&&(l=je(l,i)),l}}}};var Z0={kernelName:tn,inputsToSave:["x","filter"],gradFunc:(r,e,t)=>{let{dilations:o,strides:n,pad:s,dimRoundingMode:a}=t,i=o==null?[1,1]:o;A(Mo(i),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${i}'`);let[l,u]=e;return A(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),A(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`),A(l.shape[3]===u.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${u.shape[2]}.`),A(wr(n,i),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'.`),a!=null&&A(ot(s),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${s}.`),{x:()=>ig(l.shape,r,u,n,s,o,a),filter:()=>sg(l,r,u.shape,n,s,o,a)}}};var J0={kernelName:sa,inputsToSave:["x","filter"],gradFunc:(r,e,t)=>{let[o,n]=e,s={x:o,filter:n,dy:r},a={x:o,filter:n,dy:r};return{x:()=>E.runKernel(Ec,s,t),filter:()=>E.runKernel(Dc,a,t)}}};var Q0={kernelName:ti,outputsToSave:[!0],gradFunc:(r,e)=>{let[t]=e,o={dy:r,y:t};return{x:()=>E.runKernel(Yl,o)}}};var eS={kernelName:ri,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e,o=O(Yt(He(Oe(t))),2/Math.sqrt(Math.PI));return{x:()=>O(r,o)}}};var tS={kernelName:on,outputsToSave:[!0],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,t)}}};var rS={kernelName:us,inputsToSave:["input"],gradFunc:(r,e)=>{let[t]=e;return{input:()=>M(r,t.shape)}}};var oS={kernelName:ni,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,Yt(t))}}};var nS={kernelName:nn,gradFunc:r=>({x:()=>Ce(r)})};var sS={kernelName:sn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=Be(t.shape,o.shape);return{a:()=>{let i=me(r,ne(o,"float32")),l=_t(t.shape,n);return l.length>0?M(ge(i,l),t.shape):i},b:()=>{let i=O(r,ne(t,"float32")),l=_t(o.shape,n);l.length>0&&(i=M(ge(i,l),o.shape));let u=Oe(o);return He(me(i,ne(u,"float32")))}}}};var iS={kernelName:an,inputsToSave:["x","mean","variance","scale"],gradFunc:(r,e,t)=>{let{varianceEpsilon:o}=t,[n,s,a,i]=e,l=i==null?ue(1):i,u=_t(s.shape,n.shape),c=[];if(s.rank===1){for(let _=0;_s.rank===1?M(O(O(r,Lo(M(f,[1,1,1,s.shape[0]]),c)),l),n.shape):M(O(O(r,f),l),n.shape),mean:()=>{let _=O(O(f,ue(-1)),m);return s.rank===1&&(_=ge(_,u)),M(_,s.shape)},variance:()=>{let _=O(O(d,p),m);return s.rank===1&&(_=ge(_,u)),M(_,s.shape)},scale:()=>{let _=O(p,f),C=O(r,_);return s.rank===1&&(C=ge(C,u)),M(C,s.shape)},offset:()=>{let _=r;return s.rank===1&&(_=ge(_,u)),M(_,s.shape)}}}};var uS={kernelName:cs,inputsToSave:["x","indices"],gradFunc:(r,e,t)=>{let[o,n]=e,{axis:s}=t,a=Jt(s,o.shape)[0];return{x:()=>{let l=o.shape,u=n.size,c=l.slice(0,a),p=c.length,m=l.slice(s,l.length).slice(1),f=m.length,d=aS(0,p),h=aS(p+1,p+1+f),g=lS([c,[u],m]),y=M(r,g),b=M(n,[u]),w=lS([[p],d,h]),_=je(y,w),C=Xm(_,b,o.shape[a]),D=Fm(w);return C=je(C,D),C},indices:()=>n}}};function aS(r,e){let t=[];for(let o=r;o{let[t,o]=e;return{a:()=>Ce(t),b:()=>Ce(o)}}};var pS={kernelName:Ro,gradFunc:r=>({x:()=>ne(r,"float32")})};var mS={kernelName:li,gradFunc:r=>({x:()=>Ce(r)})};var fS={kernelName:ui,gradFunc:r=>({x:()=>Ce(r)})};var dS={kernelName:ci,gradFunc:r=>({x:()=>Ce(r)})};var hS={kernelName:un,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{alpha:n}=t,s=Qt(o,0);return{x:()=>Dt(s,r,O(r,n))}}};var gS={kernelName:fi,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>me(r,Q(t,1))}}};var xS={kernelName:cn,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>me(r,ne(t,"float32"))}}};var yS={kernelName:bb,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,e,t)=>{let[o]=e,{axis:n}=t;return{logits:()=>{let s=!0,a=Yt(o);return ce(r,O(ge(r,n,s),a))}}}};function $j(r,e,t,o=5,n=1,s=1,a=.5){let i={x:r,y:e,dy:t},l={depthRadius:o,bias:n,alpha:s,beta:a};return E.runKernel(tu,i,l)}var bS=S({localResponseNormalizationBackprop_:$j});var wS={kernelName:aa,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,e,t)=>{let[o,n]=e,{depthRadius:s,bias:a,alpha:i,beta:l}=t;return{x:()=>bS(o,n,r,s,a,i,l)}}};function fg(r,e,t,o){return e.rankO(r,ne(vo(t,e),r.dtype))}}var Kw={kernelName:pn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,e,t)=>{let o=t,{reductionIndices:n}=o,s=e[0],a=e[1],i=Jt(n,s.shape),l=fg(r,a,s,i);return{x:()=>l.x()}}};var _S={kernelName:mn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e;return{a:()=>O(r,ne(io(t,o),"float32")),b:()=>O(r,ne(Iu(t,o),"float32"))}}};function Rj(r,e,t,o,n,s,a){let i=k(r,"dy","maxPool3dGrad"),l=k(e,"input","maxPool3dGrad"),u=k(t,"output","maxPool3dGrad"),c=i,p=l,m=u,f=!1;l.rank===4&&(f=!0,c=M(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),p=M(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),m=M(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),A(c.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${c.rank}.`),A(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),A(m.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${m.rank}.`),a!=null&&A(ot(s),()=>`Error in maxPool3dGrad: pad must be an integer when using, dimRoundingMode ${a} but got pad ${s}.`);let d={dy:c,input:p,output:m},h={filterSize:o,strides:n,pad:s,dimRoundingMode:a},g=E.runKernel(ou,d,h);return f?M(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var kS=S({maxPool3dGrad_:Rj});var vS={kernelName:la,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,e,t)=>{let[o,n]=e,{filterSize:s,strides:a,pad:i,dimRoundingMode:l}=t;return{x:()=>kS(r,o,n,s,a,i,l)}}};function Fj(r,e,t,o,n,s,a){let i=k(r,"dy","maxPoolGrad"),l=k(e,"input","maxPoolGrad"),u=k(t,"output","maxPoolGrad");A(l.rank===i.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${i.rank})`),A(i.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${i.rank}.`),A(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),a!=null&&A(ot(s),()=>`Error in maxPoolGrad: pad must be an integer when using, dimRoundingMode ${a} but got pad ${s}.`);let c={dy:i,input:l,output:u},p={filterSize:o,strides:n,pad:s,dimRoundingMode:a};return E.runKernel(ru,c,p)}var CS=S({maxPoolGrad_:Fj});var IS={kernelName:fn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,e,t)=>{let[o,n]=e,{filterSize:s,strides:a,pad:i}=t;return{x:()=>CS(r,o,n,s,a,i)}}};var NS={kernelName:dn,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{axis:n}=t,s=Jt(n,o.shape),i=ww(o.shape,s)[1],l=ct(i);return{x:()=>{let c=o.shape.slice();s.forEach(f=>{c[f]=1});let p=M(r,c);return me(O(p,Ir(o.shape,"float32")),l)}}}};var SS={kernelName:hn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,e,t)=>{let o=t,{axis:n}=o,[s,a]=e,i=Jt(n,s.shape),l=fg(r,a,s,i);return{x:()=>l.x()}}};var TS={kernelName:gn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e;return{a:()=>O(r,ne(zo(t,o),"float32")),b:()=>O(r,ne(Qt(t,o),"float32"))}}};var AS={kernelName:ua,inputsToSave:["x"],gradFunc:(r,e,t)=>{let o=e[0],{paddings:n}=t,s=n.map(a=>a[0]);return{x:()=>Re(r,s,o.shape)}}};var ES={kernelName:hi,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=Be(t.shape,o.shape);return{a:()=>{let i=_t(t.shape,n);return i.length>0?M(ge(r,i),t.shape):r},b:()=>{let i=O(r,He(Ns(me(t,o)))),l=_t(o.shape,n);return l.length>0?M(ge(i,l),o.shape):i}}}};var DS={kernelName:xn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=Be(t.shape,o.shape);return{a:()=>{let i=O(r,ne(o,"float32")),l=_t(t.shape,n);return l.length>0?M(ge(i,l),t.shape):i},b:()=>{let i=O(r,ne(t,"float32")),l=_t(o.shape,n);return l.length>0?M(ge(i,l),o.shape):i}}}};var $S={kernelName:ps,gradFunc:r=>({x:()=>He(r)})};var RS={kernelName:yn,inputsToSave:["indices"],gradFunc:(r,e)=>{let t=e[0];return{indices:()=>ht(t.shape,"float32")}}};var FS={kernelName:ms,gradFunc:r=>({x:()=>Ce(r)})};var OS={kernelName:fs,saveAllInputs:!0,gradFunc:(r,e,t)=>{let{axis:o}=t;return cr(r,o).map(s=>()=>s)}};var Xw={kernelName:bn,inputsToSave:["x"],gradFunc:(r,e,t)=>{let o=e[0],{paddings:n}=t,s=n.map(a=>a[0]);return{x:()=>Re(r,s,o.shape)}}};var PS={kernelName:wn,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(r,e)=>{let[t,o,n]=e,s=t,a=o,i=Be(s.shape,a.shape);return{a:()=>{let c=ne(a,"float32"),p=O(r,O(c,Fr(s,ce(c,ue(1))))),m=_t(s.shape,i);return m.length>0&&(p=ge(p,m)),M(p,s.shape)},b:()=>{let c=Qt(s,0),p=Dt(c,ar(s),Ce(s)),m=O(r,O(n,p)),f=_t(a.shape,i);return f.length>0&&(m=ge(m,f)),M(m,a.shape)}}}};var MS={kernelName:_n,inputsToSave:["x","alpha"],gradFunc:(r,e)=>{let[t,o]=e,n=Qt(t,0);return{x:()=>Dt(n,r,O(r,o)),alpha:()=>{let s=Dt(n,Ce(r),O(r,t)),a=_t(o.shape,r.shape);return a.length>0&&(s=ge(s,a)),M(s,o.shape)}}}};var LS={kernelName:rn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=Be(t.shape,o.shape);return{a:()=>{let i=me(r,ne(o,"float32")),l=_t(t.shape,n);return l.length>0?M(ge(i,l),t.shape):i},b:()=>{let i=O(r,ne(t,"float32")),l=_t(o.shape,n);l.length>0&&(i=M(ge(i,l),o.shape));let u=Oe(o);return He(me(i,ne(u,"float32")))}}}};var zS={kernelName:_i,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>me(r,He(Oe(t)))}}};var BS={kernelName:Cn,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e,o=O(zo(t,6),Es(t));return{x:()=>O(r,ne(o,"float32"))}}};var VS={kernelName:kn,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,ne(Es(t),"float32"))}}};var GS={kernelName:ds,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>M(r,t.shape)}}};var WS={kernelName:vn,inputsToSave:["images"],gradFunc:(r,e,t)=>{let[o]=e,n={dy:r,images:o};return{images:()=>E.runKernel(lu,n,t)}}};var US={kernelName:pa,inputsToSave:["images"],gradFunc:(r,e,t)=>{let[o]=e,n={dy:r,images:o};return{images:()=>E.runKernel(au,n,t)}}};var jS={kernelName:In,gradFunc:(r,e,t)=>{let{dims:o}=t,n=Jt(o,r.shape);return{x:()=>Ht(r,n)}}};var HS={kernelName:Nn,gradFunc:r=>({x:()=>Ce(r)})};var qS={kernelName:Sn,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>He(me(r,O(Fr(t,1.5),2)))}}};var KS={kernelName:hs,inputsToSave:["condition"],gradFunc:(r,e)=>{let[t]=e;return{condition:()=>ne(Ce(t),"float32"),t:()=>O(r,ne(t,r.dtype)),e:()=>O(r,ne(Ia(t),r.dtype))}}};var XS={kernelName:vi,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>{let o=Qt(t,ue(0)),n=ue(Hw),s=ue(qw),a=O(r,s),i=O(O(r,n),Yt(ne(t,"float32")));return Dt(o,a,i)}}}};var YS={kernelName:An,outputsToSave:[!0],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,O(t,ce(ue(1),t)))}}};var ZS={kernelName:Ii,gradFunc:r=>({x:()=>Ce(r)})};var JS={kernelName:Tn,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(ka(ne(t,"float32")),r)}}};var QS={kernelName:Ci,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(ku(ne(t,"float32")),r)}}};var eT={kernelName:gs,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{begin:n,size:s}=t,a=o.shape,[i,l]=Kb(o,n,s),u=[];for(let c=0;cRr(r,u)}}};var tT={kernelName:$n,outputsToSave:[!0],gradFunc:(r,e,t)=>{let[o]=e,{dim:n}=t,s=!0,a=O(r,o);return{logits:()=>ce(a,O(ge(a,[n],s),o))}}};var rT={kernelName:Ni,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,qr(t))}}};var Yw={kernelName:ma,gradFunc:(r,e,t)=>{let{blockShape:o,paddings:n}=t;return{x:()=>_a(r,o,n)}}};var Zw={kernelName:xs,gradFunc:(r,e,t)=>{let{axis:o}=t;return{x:()=>Ye(r,o)}}};var oT={kernelName:En,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>me(r,O(gt(ne(t,"float32")),2))}}};var nT={kernelName:fa,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,O(ne(t,"float32"),2))}}};var sT={kernelName:Rn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=ue(2);return{a:()=>O(r,O(n,ce(t,o))),b:()=>O(r,O(n,ce(o,t)))}}};var iT={kernelName:Fo,gradFunc:r=>({x:()=>Ce(r)})};var aT={kernelName:Fn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=Be(t.shape,o.shape);return{a:()=>{let i=r,l=_t(t.shape,n);return l.length>0&&(i=ge(i,l)),M(i,t.shape)},b:()=>{let i=r,l=_t(o.shape,n);return l.length>0&&(i=ge(i,l)),M(He(i),o.shape)}}}};var lT={kernelName:Dn,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,n=o.shape.slice(),{axis:s}=t;Jt(s,o.shape).forEach(u=>{n[u]=1});let i=M(r,n),l=O(i,Ir(o.shape,"float32"));return{x:()=>l}}};var uT={kernelName:Ti,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>me(r,Oe(ka(t)))}}};var cT={kernelName:On,outputsToSave:[!0],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(ce(ue(1),Oe(t)),r)}}};var pT={kernelName:_o,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{reps:n}=t;return{x:()=>{let a=Ce(o);if(o.rank===1)for(let i=0;i{let o=t,{perm:n}=o,s=Fm(n);return{x:()=>je(r,s)}}};var fT={kernelName:ys,gradFunc:(r,e,t)=>{let o=t,{axis:n}=o;return{value:()=>Bt(r,n)}}};var dT={kernelName:da,inputsToSave:["segmentIds"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>Oj(r,t)}}};function Oj(r,e){let t=Yr(e,Ce(e)),o=zn(r,t),n=io(e,ue(0,"int32")),s=o.rank-n.rank;for(let i=0;i({x:()=>Ce(r)})};var Pj=[mg,_0,k0,v0,C0,I0,N0,S0,T0,A0,E0,D0,R0,O0,P0,M0,L0,z0,B0,V0,G0,W0,j0,U0,q0,K0,X0,Y0,Z0,J0,LS,Q0,eS,tS,rS,oS,sS,nS,iS,uS,cS,pS,mS,fS,dS,hS,gS,xS,yS,wS,Kw,Kw,_S,vS,IS,NS,SS,TS,AS,ES,DS,$S,RS,FS,OS,Xw,Xw,PS,MS,zS,BS,VS,GS,WS,US,jS,HS,qS,KS,XS,YS,ZS,JS,QS,eT,tT,rT,Yw,Yw,Zw,Zw,oT,sT,nT,iT,aT,lT,uT,cT,pT,mT,fT,dT,hT];for(let r of Pj)_b(r);F().prototype.abs=function(){return this.throwIfDisposed(),It(this)};F().prototype.acos=function(){return this.throwIfDisposed(),xm(this)};F().prototype.acosh=function(){return this.throwIfDisposed(),ym(this)};F().prototype.add=function(r){return this.throwIfDisposed(),Q(this,r)};F().prototype.all=function(r,e){return this.throwIfDisposed(),xu(this,r,e)};F().prototype.any=function(r,e){return this.throwIfDisposed(),ol(this,r,e)};F().prototype.argMax=function(r){return this.throwIfDisposed(),nl(this,r)};F().prototype.argMin=function(r){return this.throwIfDisposed(),bm(this,r)};F().prototype.asScalar=function(){return this.throwIfDisposed(),A(this.size===1,()=>"The array must have only 1 element."),M(this,[])};F().prototype.asType=function(r){return this.throwIfDisposed(),ne(this,r)};F().prototype.as1D=function(){return this.throwIfDisposed(),M(this,[this.size])};F().prototype.as2D=function(r,e){return this.throwIfDisposed(),M(this,[r,e])};F().prototype.as3D=function(r,e,t){return this.throwIfDisposed(),M(this,[r,e,t])};F().prototype.as4D=function(r,e,t,o){return this.throwIfDisposed(),M(this,[r,e,t,o])};F().prototype.as5D=function(r,e,t,o,n){return this.throwIfDisposed(),M(this,[r,e,t,o,n])};F().prototype.asin=function(){return this.throwIfDisposed(),wm(this)};F().prototype.asinh=function(){return this.throwIfDisposed(),_m(this)};F().prototype.atan=function(){return this.throwIfDisposed(),km(this)};F().prototype.atan2=function(r){return this.throwIfDisposed(),vm(this,r)};F().prototype.atanh=function(){return this.throwIfDisposed(),Cm(this)};F().prototype.avgPool=function(r,e,t,o){return this.throwIfDisposed(),wa(this,r,e,t,o)};F().prototype.batchToSpaceND=function(r,e){return this.throwIfDisposed(),_a(this,r,e)};F().prototype.batchNorm=function(r,e,t,o,n){return this.throwIfDisposed(),Ln(this,r,e,t,o,n)};F().prototype.broadcastTo=function(r){return this.throwIfDisposed(),sl(this,r)};F().prototype.cast=function(r){return this.throwIfDisposed(),ne(this,r)};F().prototype.ceil=function(){return this.throwIfDisposed(),Nm(this)};F().prototype.clipByValue=function(r,e){return this.throwIfDisposed(),sr(this,r,e)};F().prototype.concat=function(r,e){return this.throwIfDisposed(),r instanceof Ve&&(r=[r]),Ye([this,...r],e)};F().prototype.conv1d=function(r,e,t,o,n,s){return this.throwIfDisposed(),wu(this,r,e,t,o,n,s)};F().prototype.conv2dTranspose=function(r,e,t,o,n){return this.throwIfDisposed(),_u(this,r,e,t,o,n)};F().prototype.conv2d=function(r,e,t,o,n,s){return this.throwIfDisposed(),Kr(this,r,e,t,o,n,s)};F().prototype.cos=function(){return this.throwIfDisposed(),ka(this)};F().prototype.cosh=function(){return this.throwIfDisposed(),ku(this)};F().prototype.cumsum=function(r,e,t){return this.throwIfDisposed(),vu(this,r,e,t)};F().prototype.depthToSpace=function(r,e){return this.throwIfDisposed(),Tm(this,r,e)};F().prototype.depthwiseConv2d=function(r,e,t,o,n,s){return this.throwIfDisposed(),Cs(this,r,e,t,o,n,s)};F().prototype.dilation2d=function(r,e,t,o,n){return this.throwIfDisposed(),Am(this,r,e,t,o,n)};F().prototype.divNoNan=function(r){return this.throwIfDisposed(),Em(this,r)};F().prototype.div=function(r){return this.throwIfDisposed(),me(this,r)};F().prototype.dot=function(r){return this.throwIfDisposed(),fw(this,r)};F().prototype.elu=function(){return this.throwIfDisposed(),Is(this)};F().prototype.equal=function(r){return this.throwIfDisposed(),vo(this,r)};F().prototype.erf=function(){return this.throwIfDisposed(),Dm(this)};F().prototype.exp=function(){return this.throwIfDisposed(),Yt(this)};F().prototype.expandDims=function(r){return this.throwIfDisposed(),ir(this,r)};F().prototype.expm1=function(){return this.throwIfDisposed(),$m(this)};F().prototype.fft=function(){return this.throwIfDisposed(),Ea(this)};F().prototype.flatten=function(){return this.throwIfDisposed(),M(this,[this.size])};F().prototype.floor=function(){return this.throwIfDisposed(),Ns(this)};F().prototype.floorDiv=function(r){return this.throwIfDisposed(),gu(this,r)};F().prototype.gather=function(r,e){return this.throwIfDisposed(),zn(this,r,e)};F().prototype.greaterEqual=function(r){return this.throwIfDisposed(),io(this,r)};F().prototype.greater=function(r){return this.throwIfDisposed(),Qt(this,r)};F().prototype.ifft=function(){return this.throwIfDisposed(),Pi(this)};F().prototype.irfft=function(){return this.throwIfDisposed(),Pu(this)};F().prototype.isFinite=function(){return this.throwIfDisposed(),dw(this)};F().prototype.isInf=function(){return this.throwIfDisposed(),hw(this)};F().prototype.isNaN=function(){return this.throwIfDisposed(),gw(this)};F().prototype.leakyRelu=function(r){return this.throwIfDisposed(),Ca(this,r)};F().prototype.lessEqual=function(r){return this.throwIfDisposed(),zo(this,r)};F().prototype.less=function(r){return this.throwIfDisposed(),Iu(this,r)};F().prototype.localResponseNormalization=function(r,e,t,o){return this.throwIfDisposed(),Rm(this,r,e,t,o)};F().prototype.logSigmoid=function(){return this.throwIfDisposed(),yw(this)};F().prototype.logSoftmax=function(r){return this.throwIfDisposed(),Su(this,r)};F().prototype.logSumExp=function(r,e){return this.throwIfDisposed(),Om(this,r,e)};F().prototype.log=function(){return this.throwIfDisposed(),ar(this)};F().prototype.log1p=function(){return this.throwIfDisposed(),Nu(this)};F().prototype.logicalAnd=function(r){return this.throwIfDisposed(),dr(this,r)};F().prototype.logicalNot=function(){return this.throwIfDisposed(),Ia(this)};F().prototype.logicalOr=function(r){return this.throwIfDisposed(),Tu(this,r)};F().prototype.logicalXor=function(r){return this.throwIfDisposed(),kw(this,r)};F().prototype.matMul=function(r,e,t){return this.throwIfDisposed(),We(this,r,e,t)};F().prototype.maxPool=function(r,e,t,o){return this.throwIfDisposed(),Na(this,r,e,t,o)};F().prototype.max=function(r,e){return this.throwIfDisposed(),lr(this,r,e)};F().prototype.maximum=function(r){return this.throwIfDisposed(),Yr(this,r)};F().prototype.mean=function(r,e){return this.throwIfDisposed(),dt(this,r,e)};F().prototype.min=function(r,e){return this.throwIfDisposed(),Oi(this,r,e)};F().prototype.minimum=function(r){return this.throwIfDisposed(),Ts(this,r)};F().prototype.mirrorPad=function(r,e){return this.throwIfDisposed(),Mm(this,r,e)};F().prototype.mod=function(r){return this.throwIfDisposed(),Lm(this,r)};F().prototype.mul=function(r){return this.throwIfDisposed(),O(this,r)};F().prototype.neg=function(){return this.throwIfDisposed(),He(this)};F().prototype.norm=function(r,e,t){return this.throwIfDisposed(),zu(this,r,e,t)};F().prototype.notEqual=function(r){return this.throwIfDisposed(),Vn(this,r)};F().prototype.oneHot=function(r,e=1,t=0){return this.throwIfDisposed(),vs(this,r,e,t)};F().prototype.onesLike=function(){return this.throwIfDisposed(),er(this)};F().prototype.pad=function(r,e){return this.throwIfDisposed(),Rr(this,r,e)};F().prototype.pool=function(r,e,t,o,n){return this.throwIfDisposed(),Iw(this,r,e,t,o,n)};F().prototype.pow=function(r){return this.throwIfDisposed(),Fr(this,r)};F().prototype.prelu=function(r){return this.throwIfDisposed(),Ta(this,r)};F().prototype.prod=function(r,e){return this.throwIfDisposed(),Au(this,r,e)};F().prototype.reciprocal=function(){return this.throwIfDisposed(),Bm(this)};F().prototype.relu=function(){return this.throwIfDisposed(),Nr(this)};F().prototype.relu6=function(){return this.throwIfDisposed(),Du(this)};F().prototype.reshapeAs=function(r){return this.throwIfDisposed(),M(this,r.shape)};F().prototype.reshape=function(r){return this.throwIfDisposed(),M(this,r)};F().prototype.resizeBilinear=function(r,e,t){return this.throwIfDisposed(),ug(this,r,e,t)};F().prototype.resizeNearestNeighbor=function(r,e,t){return this.throwIfDisposed(),cg(this,r,e,t)};F().prototype.reverse=function(r){return this.throwIfDisposed(),Ht(this,r)};F().prototype.rfft=function(){return this.throwIfDisposed(),Da(this)};F().prototype.round=function(){return this.throwIfDisposed(),Vm(this)};F().prototype.rsqrt=function(){return this.throwIfDisposed(),$u(this)};F().prototype.selu=function(){return this.throwIfDisposed(),Ru(this)};F().prototype.separableConv2d=function(r,e,t,o,n,s){return this.throwIfDisposed(),Gm(this,r,e,t,o,n,s)};F().prototype.sigmoid=function(){return this.throwIfDisposed(),qr(this)};F().prototype.sign=function(){return this.throwIfDisposed(),Wm(this)};F().prototype.sin=function(){return this.throwIfDisposed(),Fu(this)};F().prototype.sinh=function(){return this.throwIfDisposed(),Ou(this)};F().prototype.slice=function(r,e){return this.throwIfDisposed(),Re(this,r,e)};F().prototype.softmax=function(r){return this.throwIfDisposed(),Aa(this,r)};F().prototype.softplus=function(){return this.throwIfDisposed(),Ss(this)};F().prototype.spaceToBatchND=function(r,e){return this.throwIfDisposed(),Sa(this,r,e)};F().prototype.split=function(r,e){return this.throwIfDisposed(),ur(this,r,e)};F().prototype.sqrt=function(){return this.throwIfDisposed(),gt(this)};F().prototype.square=function(){return this.throwIfDisposed(),Oe(this)};F().prototype.squaredDifference=function(r){return this.throwIfDisposed(),Mu(this,r)};F().prototype.squeeze=function(r){return this.throwIfDisposed(),Co(this,r)};F().prototype.stack=function(r,e){this.throwIfDisposed();let t=r instanceof Ve?[this,r]:[this,...r];return Bt(t,e)};F().prototype.step=function(r){return this.throwIfDisposed(),Es(this,r)};F().prototype.stridedSlice=function(r,e,t,o,n,s,a,i){return this.throwIfDisposed(),Hm(this,r,e,t,o,n,s,a,i)};F().prototype.sub=function(r){return this.throwIfDisposed(),ce(this,r)};F().prototype.sum=function(r,e){return this.throwIfDisposed(),ge(this,r,e)};F().prototype.tan=function(){return this.throwIfDisposed(),qm(this)};F().prototype.tanh=function(){return this.throwIfDisposed(),Fi(this)};F().prototype.tile=function(r){return this.throwIfDisposed(),Lo(this,r)};F().prototype.toBool=function(){return this.throwIfDisposed(),ne(this,"bool")};F().prototype.toFloat=function(){return this.throwIfDisposed(),ne(this,"float32")};F().prototype.toInt=function(){return this.throwIfDisposed(),ne(this,"int32")};F().prototype.topk=function(r,e){return this.throwIfDisposed(),Km(this,r,e)};F().prototype.transpose=function(r){return this.throwIfDisposed(),je(this,r)};F().prototype.unique=function(r){return this.throwIfDisposed(),Zc(this,r)};F().prototype.unsortedSegmentSum=function(r,e){return this.throwIfDisposed(),Xm(this,r,e)};F().prototype.unstack=function(r){return this.throwIfDisposed(),cr(this,r)};F().prototype.where=function(r,e){return this.throwIfDisposed(),Dt(r,this,e)};F().prototype.zerosLike=function(){return this.throwIfDisposed(),Ce(this)};var r_={};Je(r_,{maxNorm:()=>Lj,minMaxNorm:()=>Vj,nonNeg:()=>Bj,unitNorm:()=>zj});var Jw;function Zt(){return Jw==null&&(Jw=Qb().epsilon()),Jw}function Zr(){return"channelsLast"}var Io=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Io.prototype)}},Pr=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Pr.prototype)}},L=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,L.prototype)}},Ne=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Ne.prototype)}},ef=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,ef.prototype)}};function Un(r,e){if(Array.isArray(r)){let t=[];for(let o=0;ot.toUpperCase())}var Hn={};function sp(r){if(r==null)return null;let e={};return e.className=r.getClassName(),e.config=r.getConfig(),e}function e_(r){if(!(r==null||typeof r!="object"))if(Array.isArray(r))r.forEach(e=>e_(e));else{let e=Object.keys(r);for(let t of e){let o=r[t];o!=null&&typeof o=="object"&&(!Array.isArray(o)&&o.type==="ndarray"&&typeof o.value=="number"?r[t]=o.value:e_(o))}}}function Li(r,e={},t={},o="object",n=!1){if(typeof r=="string"){let s=r,a;if(s in t)a=t[s];else if(s in Hn)a=Hn[s];else if(a=e[s],a==null)throw new L(`Unknown ${o}: ${r}. This may be due to one of the following reasons: + ${o.shape}`),E(a%(e*e)==0,()=>`Dimension size must be evenly divisible by ${e*e} but is ${a} for depthToSpace with input shape ${o.shape}`);let i={x:o},l={blockSize:e,dataFormat:t};return D.runKernel(ti,i,l)}var Dm=T({depthToSpace_:xW});function yW(r,e,t,o,n="NHWC",s=[1,1],a){let i=v(r,"x","depthwiseConv2d"),l=v(e,"filter","depthwiseConv2d"),u=i,c=!1;i.rank===3&&(c=!0,u=L(i,[1,i.shape[0],i.shape[1],i.shape[2]])),E(u.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`),E(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`),E(u.shape[3]===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),a!=null&&E(ot(o),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`);let p={x:u,filter:l},m={strides:t,pad:o,dataFormat:n,dilations:s,dimRoundingMode:a},f=D.runKernel(tn,p,m);return c?L(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Is=T({depthwiseConv2d_:yW});function bW(r){let t={x:v(r,"x","diag")};return D.runKernel(Xl,t)}var wW=T({diag_:bW});function _W(r,e,t,o,n=[1,1],s="NHWC"){let a=v(r,"x","dilation2d"),i=v(e,"filter","dilation2d");E(a.rank===3||a.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${a.rank}.`),E(i.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${i.rank}.`),E(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=a,u=!1;a.rank===3&&(l=L(a,[1,a.shape[0],a.shape[1],a.shape[2]]),u=!0);let c={x:l,filter:i},p={strides:t,pad:o,dilations:n},m=D.runKernel(sa,c,p);return u?L(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var $m=T({dilation2d_:_W});function kW(r,e){let t=r.length,o=[];for(let n=0;n1&&a===1&&o.unshift(s)}return o}function kt(r,e){let t=[];for(let o=0;o1)&&t.unshift(s)}return t}function Be(r,e){let t=[],o=Math.max(r.length,e.length);for(let n=0;n"The first dimension of `a` must match the size of `condition`."),s.rank!==1&&Ct(s.shape,l.shape,"Error in where: ");let u={condition:s,t:i,e:l};return D.runKernel(hs,u)}var $t=T({where_:CW});function IW(r){let t={x:v(r,"x","zerosLike")};return D.runKernel(bs,t)}var Ce=T({zerosLike_:IW});function NW(r,e){let t=v(r,"a","div"),o=v(e,"b","div");[t,o]=Ge(t,o);let n=me(t,o),s=Ce(n),a=vo(o,s);return $t(a,s,n)}var Rm=T({divNoNan_:NW});function SW(r,e){let t=v(r,"t1","dot"),o=v(e,"t2","dot");E((t.rank===1||t.rank===2)&&(o.rank===1||o.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${t.rank} and ${o.rank}.`);let n=t.rank===1?t.size:t.shape[1],s=o.rank===1?o.size:o.shape[0];if(E(n===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${n} and ${s}.`),t.rank===1&&o.rank===1){let a=L(t,[1,-1]),i=L(o,[-1,1]),l=We(a,i);return L(l,[])}else if(t.rank===1&&o.rank===2){let a=L(t,[1,-1]),i=L(o,[o.shape[0],o.shape[1]]),l=We(a,i);return L(l,[l.size])}else if(t.rank===2&&o.rank===1){let a=L(o,[-1,1]),i=We(t,a);return L(i,[i.size])}else{let a=L(o,[o.shape[0],o.shape[1]]);return We(t,a)}}var bw=T({dot_:SW});function TW(r){let t={x:v(r,"x","elu")};return D.runKernel(ri,t)}var Ns=T({elu_:TW});function AW(r){let e=v(r,"x","erf");E(e.dtype==="int32"||e.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),e.dtype==="int32"&&(e=ne(e,"float32"));let t={x:e};return D.runKernel(oi,t)}var Fm=T({erf_:AW});function EW(r){let t={x:v(r,"x","exp")};return D.runKernel(on,t)}var Zt=T({exp_:EW});function DW(r,e=0){let t=v(r,"x","expandDims","string_or_numeric");E(e<=t.rank,()=>"Axis must be <= rank of the tensor");let o={input:t},n={dim:e};return D.runKernel(us,o,n)}var ar=T({expandDims_:DW});function $W(r){let t={x:v(r,"x","expm1")};return D.runKernel(si,t)}var Om=T({expm1_:$W});function RW(r,e){let t=v(r,"x","tile","string_or_numeric");E(t.rank===e.length,()=>`Error in transpose: rank of input ${t.rank} must match length of reps ${e}.`);let o={x:t},n={reps:e};return D.runKernel(_o,o,n)}var Lo=T({tile_:RW});function FW(r,e,t,o="float32"){e==null&&(e=r);let n=ve([r,e],o),s=r<=e?r:e;for(let i=0;i`Error in localResponseNormalization: x must be rank 3 or 4 but got + rank ${s.rank}.`),E(ot(e),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${e}.`);let a=s,i=!1;s.rank===3&&(i=!0,a=L(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:a},u={depthRadius:e,bias:t,alpha:o,beta:n},c=D.runKernel(aa,l,u);return i?L(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Pm=T({localResponseNormalization_:HW});function qW(r){let t={x:v(r,"x","log")};return D.runKernel(cn,t)}var lr=T({log_:qW});function KW(r){let t={x:v(r,"x","log1p")};return D.runKernel(di,t)}var Tu=T({log1p_:KW});function XW(r){return E(Us(r),()=>"The f passed in grad(f) must be a function"),(e,t)=>{let o=v(e,"x","tf.grad","string_or_numeric"),n=t!=null?v(t,"dy","tf.grad"):null;return D.tidy(()=>{let{value:s,grads:a}=D.gradients(()=>r(o),[o],n);return n!=null&&Ct(s.shape,n.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),rg(a),a[0]})}}function YW(r){return E(Us(r),()=>"The f passed in grads(f) must be a function"),(e,t)=>{E(Array.isArray(e),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let o=ha(e,"args","tf.grads","string_or_numeric"),n=t!=null?v(t,"dy","tf.grads"):null;return D.tidy(()=>{let{value:s,grads:a}=D.gradients(()=>r(...o),o,n);return n!=null&&Ct(s.shape,n.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),rg(a),a})}}function ZW(r){return E(Us(r),()=>"The f passed in valueAndGrad(f) must be a function"),(e,t)=>{E(e instanceof Ve,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),E(t==null||t instanceof Ve,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:o,value:n}=D.gradients(()=>r(e),[e],t);return rg(o),{grad:o[0],value:n}}}function JW(r){return E(Us(r),()=>"The f passed in valueAndGrads(f) must be a function"),(e,t)=>{E(Array.isArray(e)&&e.every(n=>n instanceof Ve),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),E(t==null||t instanceof Ve,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let o=D.gradients(()=>r(...e),e,t);return t!=null&&Ct(o.value.shape,t.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),rg(o.grads),o}}function og(r,e){E(Us(r),()=>"The f passed in variableGrads(f) must be a function"),E(e==null||Array.isArray(e)&&e.every(u=>u instanceof el),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let t=e!=null;if(!t){e=[];for(let u in D.registeredVariables)e.push(D.registeredVariables[u])}let o=t?e.filter(u=>!u.trainable):null,n=e.length;e=e.filter(u=>u.trainable),E(e.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${n} variables is trainable.`);let s=!0,{value:a,grads:i}=D.gradients(r,e,null,s);E(i.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()."),E(a.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${a.rank} tensor`);let l={};return e.forEach((u,c)=>{i[c]!=null&&(l[u.name]=i[c])}),o!=null&&o.forEach(u=>l[u.name]=null),{value:a,grads:l}}function Xr(r){return D.customGrad(r)}function rg(r){if(r.filter(t=>t==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that + the f you passed encloses all operations that lead from x to y.`)}function QW(r){let t={x:v(r,"x","neg")};return D.runKernel(ps,t)}var He=T({neg_:QW});function e4(r){let t={x:v(r,"x","softplus")};return D.runKernel(Si,t)}var Ts=T({softplus_:e4});function t4(r){let e=v(r,"x","logSigmoid");return Xr(o=>({value:He(Ts(He(o))),gradFunc:a=>P(a,qr(He(o)))}))(e)}var Cw=T({logSigmoid_:t4});function r4(r,e=null,t=!1){let n={x:v(r,"x","max")},s={reductionIndices:e,keepDims:t};return D.runKernel(pn,n,s)}var ur=T({max_:r4});function o4(r,e){let t=v(r,"a","sub"),o=v(e,"b","sub");[t,o]=Ge(t,o);let n={a:t,b:o};return D.runKernel(Fn,n)}var ce=T({sub_:o4});function n4(r,e=null,t=!1){let o=v(r,"x","sum");o.dtype==="bool"&&(o=ne(o,"int32"));let n={x:o},s={axis:e,keepDims:t};return D.runKernel(Dn,n,s)}var ge=T({sum_:n4});function s4(r,e=-1){let t=v(r,"logits","logSoftmax");if(e===-1&&(e=t.rank-1),e!==t.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${t.rank} and axis was ${e}`);return Xr((n,s)=>{let a=!0,i=ur(n,e,!0),l=ce(n,i),u=ce(ne(l,"float32"),lr(ge(Zt(l),e,a)));return s([u]),{value:u,gradFunc:(p,m)=>{let[f]=m,d=!0,h=Zt(f);return ce(p,P(ge(p,e,d),h))}}})(t)}var Au=T({logSoftmax_:s4});function Iw(r,e){for(let t=0;tr[s]);return[t,n]}function Bn(r,e){let t=e.map(o=>1);return ZI(r,t,e)}function i4(r,e,t){E(Iw(e,t),()=>`${r} supports only inner-most axes for now. Got axes ${e} and rank-${t} input.`)}function Sw(r,e){if(Iw(r,e))return null;let t=[];for(let o=0;ot.push(o)),t}function Mm(r){return r.map((e,t)=>[t,e]).sort((e,t)=>e[1]-t[1]).map(e=>e[0])}function a4(r,e){let t=[];for(let o=e-r;o`Error in maxPool: input must be rank 4 but got rank ${i.rank}.`),E(_r(t,a),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${t} and dilations '${a}'`),n!=null&&E(ot(o),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${n} but got pad ${o}.`);let u={x:i},c={filterSize:e,strides:t,pad:o,dimRoundingMode:n},p=D.runKernel(fn,u,c);return l?L(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Na=T({maxPool_:f4});function d4(r,e=[1,1,1],t,o,n,s="NDHWC"){let a=v(r,"x","maxPool3d"),i=a,l=!1;a.rank===4&&(l=!0,i=L(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),E(i.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${i.rank}.`),E(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),n!=null&&E(ot(o),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${n} but got pad ${o}.`);let u={x:i},c={filterSize:e,strides:t,pad:o,dimRoundingMode:n,dataFormat:s},p=D.runKernel(la,u,c);return l?L(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var zm=T({maxPool3d_:d4});function h4(r,e,t,o,n=!1){let a={x:v(r,"x","maxPoolWithArgmax")},i={filterSize:e,strides:t,pad:o,includeBatchInIndex:n},l=D.runKernel(nu,a,i);return{result:l[0],indexes:l[1]}}var Aw=T({maxPoolWithArgmax_:h4});function g4(r,e){let t=v(r,"a","maximum"),o=v(e,"b","maximum");[t,o]=Ge(t,o),t.dtype==="bool"&&(t=ne(t,"int32"),o=ne(o,"int32")),Be(t.shape,o.shape);let n={a:t,b:o};return D.runKernel(mn,n)}var Yr=T({maximum_:g4});function x4(r,e=null,t=!1){let n={x:v(r,"x","mean")},s={axis:e,keepDims:t};return D.runKernel(dn,n,s)}var ht=T({mean_:x4});function y4(r,e=null,t=!1){let n={x:v(r,"x","min")},s={axis:e,keepDims:t};return D.runKernel(hn,n,s)}var Oi=T({min_:y4});function b4(r,e){let t=v(r,"a","minimum"),o=v(e,"b","minimum");[t,o]=Ge(t,o),t.dtype==="bool"&&(t=ne(t,"int32"),o=ne(o,"int32")),Be(t.shape,o.shape);let n={a:t,b:o};return D.runKernel(gn,n)}var As=T({minimum_:b4});function w4(r,e,t){E(t==="reflect"||t==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${t}.`);let o=v(r,"x","mirrorPad");if(o.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");E(e.length===o.rank,()=>`Padding doesn't match input. Must be ${o.rank}. Got ${e.length}.`);let n=t==="reflect"?1:0;for(let i=0;i"Invalid number of paddings. Must be length of 2 each."),E(e[i][0]>=0&&e[i][0]<=o.shape[i]-n&&e[i][1]>=0&&e[i][1]<=o.shape[i]-n,()=>`Padding in dimension ${i} cannot be greater than or equal to ${o.shape[i]-n} or less than 0 for input of shape ${o.shape}`);let s={paddings:e,mode:t},a={x:o};return D.runKernel(ua,a,s)}var Bm=T({mirrorPad_:w4});function _4(r,e){let t=v(r,"a","mod"),o=v(e,"b","mod");[t,o]=Ge(t,o);let n={a:t,b:o};return D.runKernel(gi,n)}var Vm=T({mod_:_4});function k4(r){let e=v(r,"x","square"),t={};return D.runKernel("Square",{x:e},t)}var Oe=T({square_:k4});function v4(r,e=null,t=!1){r=v(r,"x","moments");let o=Qt(e,r.shape),n=ht(r,o,t),s=n.shape;t||(s=Bn(n.shape,o));let a=Oe(ce(ne(r,"float32"),L(n,s))),i=ht(a,o,t);return{mean:n,variance:i}}var Yc=T({moments_:v4});function C4(r,e,t,o){let n=v(e,"data","multiRNNCell"),s=ha(t,"c","multiRNNCell"),a=ha(o,"h","multiRNNCell"),i=n,l=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${a}`);t=t||Math.random();let l={logits:a===1?L(n,[1,-1]):n},u={numSamples:e,seed:t,normalized:o},c=D.runKernel(su,l,u);return a===1?L(c,[c.size]):c}var Ew=T({multinomial_:N4});function S4(r,e){let t=v(r,"a","notEqual"),o=v(e,"b","notEqual");[t,o]=Ge(t,o),Be(t.shape,o.shape);let n={a:t,b:o};return D.runKernel(xi,n)}var Vn=T({notEqual_:S4});function gt(r,e="float32"){if(e==="complex64"){let o=gt(r,"float32"),n=gt(r,"float32");return ko(o,n)}let t=Rc(ct(r),e);return D.makeTensor(t,r,e)}function Nr(r,e="float32"){if(e==="complex64"){let o=Nr(r,"float32"),n=gt(r,"float32");return ko(o,n)}let t=um(ct(r),e);return D.makeTensor(t,r,e)}function T4(r){let t={x:v(r,"x","onesLike")};return D.runKernel(ms,t)}var tr=T({onesLike_:T4});function A4(r,e){let t=v(r,"v1","outerProduct"),o=v(e,"v2","outerProduct");E(t.rank===1&&o.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${t.rank} and ${o.rank}.`);let n=L(t,[-1,1]),s=L(o,[1,-1]);return We(n,s)}var E4=T({outerProduct_:A4});function D4(r,e,t=0){let o=v(r,"x","pad");if(o.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let n={paddings:e,constantValue:t},s={x:o};return D.runKernel(bn,s,n)}var Fr=T({pad_:D4});function $4(r,e,t=0){return E(e.length===2,()=>"Invalid number of paddings. Must be length of 2."),Fr(r,[e],t)}var R4=T({pad1d_:$4});function F4(r,e,t=0){return E(e.length===2&&e[0].length===2&&e[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Fr(r,e,t)}var O4=T({pad2d_:F4});function P4(r,e,t=0){return E(e.length===3&&e[0].length===2&&e[1].length===2&&e[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Fr(r,e,t)}var M4=T({pad3d_:P4});function L4(r,e,t=0){return E(e.length===4&&e[0].length===2&&e[1].length===2&&e[2].length===2&&e[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Fr(r,e,t)}var z4=T({pad4d_:L4});function B4(r,e,t){let o=v(r,"x","spaceToBatchND");E(o.rank>=1+e.length,()=>`input rank ${o.rank} should be > than [blockShape] ${e.length}`),E(t.length===e.length,()=>`paddings.shape[0] ${t.length} must be equal to [blockShape] ${e.length}`),E(o.shape.reduce((a,i,l)=>l>0&&l<=e.length?a&&(i+t[l-1][0]+t[l-1][1])%e[l-1]==0:a,!0),()=>`input spatial dimensions ${o.shape.slice(1)} with paddings ${t.toString()} must be divisible by blockShapes ${e.toString()}`);let n={x:o},s={blockShape:e,paddings:t};return D.runKernel(ma,n,s)}var Sa=T({spaceToBatchND_:B4});function W4(r,e,t,o,n,s){n==null&&(n=[1,1]),s==null&&(s=1),o===0&&(o="valid");let a=v(r,"x","maxPool"),i=a,l=!1;a.rank===3&&(l=!0,i=L(a,[1,a.shape[0],a.shape[1],a.shape[2]])),E(_r(s,n),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${n}'`);let u=aw(i.shape,e,s,n,o),c=[u.dilationHeight,u.dilationWidth],p;o==="same"?p=G4([u.filterHeight,u.filterWidth],c):p=[[0,0],[0,0]];let m=c[0]===1&&c[1]===1,[f,d]=V4([u.inHeight,u.inWidth],c,p),h=m?o:"valid",g=m?i:Sa(i,c,f),w=(t==="avg"?()=>wa(g,e,s,h):()=>Na(g,e,s,h))(),b=m?w:_a(w,c,d);return l?L(b,[b.shape[1],b.shape[2],b.shape[3]]):b}function V4(r,e,t){let o=t.map(c=>c[0]),n=t.map(c=>c[1]),s=r.concat(o,n),a=e.map((c,p)=>(c-s[p]%c)%c),i=n.map((c,p)=>c+a[p]),l=e.map((c,p)=>[o[p],i[p]]),u=e.map((c,p)=>[0,a[p]]);return[l,u]}function G4(r,e){let o=r.map((a,i)=>a+(a-1)*(e[i]-1)).map(a=>a-1),n=o.map(a=>Math.floor(a/2)),s=o.map((a,i)=>a-n[i]);return o.map((a,i)=>[n[i],s[i]])}var Dw=T({pool_:W4});function U4(r,e){let t=v(r,"base","pow"),o=v(e,"exp","pow");[t,o]=Ge(t,o);let n={a:t,b:o};return D.runKernel(wn,n)}var Or=T({pow_:U4});function j4(r,e){let t=v(r,"x","prelu"),o=v(e,"alpha","prelu"),n={x:t,alpha:o};return D.runKernel(_n,n)}var Ta=T({prelu_:j4});function H4(r,e=null,t=!1){let o=v(r,"x","prod");o.dtype==="bool"&&(o=ne(o,"int32"));let n={x:o},s={axis:e,keepDims:t};return D.runKernel(_i,n,s)}var Du=T({prod_:H4});function q4(r,e,t){let o=ct(r),n=null;if(t==null||t==="float32")n=new Float32Array(o);else if(t==="int32")n=new Int32Array(o);else if(t==="bool")n=new Uint8Array(o);else throw new Error(`Unknown data type ${t}`);for(let s=0;s=1||a===0);let i=Math.sqrt(-2*Math.log(a)/a);e=this.mean+this.stdDev*n*i,t=this.mean+this.stdDev*s*i,(!this.truncated||this.isValidTruncated(e))&&(o=!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}},Lw=class{constructor(e,t,o,n){this.alpha=e,this.beta=1/t,this.dtype=o;let s=n||Math.random();this.randu=ig.alea(s.toString()),this.randn=new Zc(0,1,o,!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,o,n,s,a;for(;;){do n=this.randn.nextValue(),a=1+this.c*n;while(a<=0);if(a*=a*a,e=n*n,t=1-.331*e*e,o=.5*e+this.d*(1-a+Math.log(a)),s=this.randu(),sthis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=o,n==null&&(n=Math.random()),typeof n=="number"&&(n=n.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=ig.alea(n)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function tU(r,e,t=1,o="float32",n){if(t==null&&(t=1),o==null&&(o="float32"),o!=="float32"&&o!=="int32")throw new Error(`Unsupported data type ${o}`);let s=new Lw(e,t,o,n),a=ve(r,o);for(let i=0;i`Error in reverse1D: x must be rank 1 but got rank ${e.rank}.`),qt(e,0)}var pU=T({reverse1d_:cU});function mU(r,e){let t=v(r,"x","reverse");return E(t.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${t.rank}.`),qt(t,e)}var fU=T({reverse2d_:mU});function dU(r,e){let t=v(r,"x","reverse");return E(t.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${t.rank}.`),qt(t,e)}var hU=T({reverse3d_:dU});function gU(r,e){let t=v(r,"x","reverse");return E(t.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${t.rank}.`),qt(t,e)}var xU=T({reverse4d_:gU});function yU(r){let t={x:v(r,"x","round")};return D.runKernel(Nn,t)}var Wm=T({round_:yU});function bU(r){let t={x:v(r,"x","rsqrt")};return D.runKernel(Sn,t)}var Fu=T({rsqrt_:bU});function le(r,e){if((nr(r)&&e!=="string"||Array.isArray(r))&&e!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(e==="string"&&nr(r)&&!(r instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return jr(r,[],[],e)}function wU(r){let t={x:v(r,"x","selu")};return D.runKernel(Ci,t)}var Ou=T({selu_:wU});function _U(r,e,t,o,n,s=[1,1],a="NHWC"){let i=v(r,"x","separableConv2d"),l=v(e,"depthwiseFilter","separableConv2d"),u=v(t,"pointwiseFilter","separableConv2d"),c=i,p=!1;if(i.rank===3&&(p=!0,c=L(i,[1,i.shape[0],i.shape[1],i.shape[2]])),a==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");E(c.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`),E(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),E(u.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),E(u.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`),E(u.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`);let m=l.shape[2],f=l.shape[3];E(u.shape[2]===m*f,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${m*f}, but got ${u.shape[2]}.`);let d=Is(c,l,o,n,a,s),g=Kr(d,u,1,"valid",a);return p?L(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var Um=T({separableConv2d_:_U});async function kU(r,e){let t=v(r,"x","setdiff1d"),o=v(e,"y","setdiff1d");E(t.dtype===o.dtype,()=>`x and y should have the same dtype, but got x (${t.dtype}) and y (${o.dtype}).`),E(t.rank===1,()=>`x should be 1D tensor, but got x (${t.shape}).`),E(o.rank===1,()=>`y should be 1D tensor, but got y (${o.shape}).`);let n=await t.data(),s=await o.data(),a=new Set(s),i=0;for(let c=0;c`slice1d expects a rank-1 tensor, but got a rank-${o.rank} tensor`),Re(o,[e],[t])}var Hm=T({slice1d_:NU});function SU(r,e,t){let o=v(r,"x","slice2d");return E(o.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${o.rank} tensor`),Re(o,e,t)}var lg=T({slice2d_:SU});function TU(r,e,t){let o=v(r,"x","slice3d");return E(o.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${o.rank} tensor`),Re(o,e,t)}var qm=T({slice3d_:TU});function AU(r,e,t){let o=v(r,"x","slice4d");return E(o.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${o.rank} tensor`),Re(o,e,t)}var Qc=T({slice4d_:AU});function EU(r,e=-1){let t=v(r,"logits","softmax","float32");if(e===-1&&(e=t.rank-1),e!==t.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${t.rank} and dim was ${e}`);let o={logits:t},n={dim:e};return D.runKernel($n,o,n)}var Aa=T({softmax_:EU});function DU(r){E(r.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let e={input:r};return D.runKernel(Zl,e)}var Ea=T({fft_:DU});function $U(r){E(r.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let e={input:r};return D.runKernel(Jl,e)}var Pi=T({ifft_:$U});function RU(r){let e=r.shape[r.shape.length-1],t=r.size/e,o;if(e<=2){let n=L(r,[t,e]);o=Pi(n)}else{let n=[t,2*(e-1)],s=L(il(r),[t,e]),a=L(Nu(r),[t,e]),i=qt(Re(s,[0,1],[t,e-2]),1),l=P(qt(Re(a,[0,1],[t,e-2]),1),le(-1)),u=Ye([s,i],1),c=Ye([a,l],1),p=L(ko(u,c),[n[0],n[1]]);o=Pi(p)}if(o=il(o),r.rank===3&&r.shape[0]!==0){let n=o,s=r.shape[0];o=L(o,[s,o.shape[0]/s,o.shape[1]]),n.dispose()}return o}var Lu=T({irfft_:RU});function FU(r,e,t=0){let n={x:v(r,"x","split")},s={numOrSizeSplits:e,axis:t};return D.runKernel(xs,n,s)}var cr=T({split_:FU});function OU(r,e){E(r.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${r.dtype}`);let t=r.shape[r.shape.length-1],o=r.size/t,n;if(e!=null&&e0),h=r.shape.map(g=>g);h[r.shape.length-1]=e,n=Re(r,d,h),t=e}else if(e!=null&&e>t){let d=r.shape.map(h=>h);d[r.shape.length-1]=e-t,n=Ye([r,gt(d)],r.shape.length-1),t=e}else n=r;let s=Ce(n),a=L(ko(n,s),[o,t]),i=Ea(a),l=Math.floor(t/2)+1,u=il(i),c=Nu(i),p=cr(u,[l,t-l],u.shape.length-1),m=cr(c,[l,t-l],c.shape.length-1),f=n.shape.slice();return f[n.shape.length-1]=l,L(ko(p[0],m[0]),f)}var Da=T({rfft_:OU});function PU(r){let t={x:v(r,"x","sqrt")};return D.runKernel(En,t)}var xt=T({sqrt_:PU});function MU(r,e){let t=v(r,"a","squaredDifference"),o=v(e,"b","squaredDifference");[t,o]=Ge(t,o),Be(t.shape,o.shape);let n={a:t,b:o},s={};return D.runKernel(Rn,n,s)}var zu=T({squaredDifference_:MU});function LU(r,e){let t=v(r,"x","squeeze");return L(t,hb(t.shape,e).newShape)}var Co=T({squeeze_:LU});function zU(r,e=0){let t=ha(r,"tensors","stack","string_or_numeric");E(t.length>=1,()=>"Pass at least one tensor to tf.stack"),t.length>0&&E(e<=t[0].rank,()=>"Axis must be <= rank of the tensor");let o=t,n={axis:e};return D.runKernel(fs,o,n)}var Vt=T({stack_:zU});function BU(r,e=0){let o={x:v(r,"x","step")},n={alpha:e};return D.runKernel(Fo,o,n)}var Ds=T({step_:BU});function VU(r,e,t,o,n=0,s=0,a=0,i=0,l=0){let c={x:v(r,"x","stridedSlice")},p={begin:e,end:t,strides:o,beginMask:n,endMask:s,ellipsisMask:a,newAxisMask:i,shrinkAxisMask:l};return D.runKernel(Ti,c,p)}var Km=T({stridedSlice_:VU});function GU(r){let t={x:v(r,"x","tan")};return D.runKernel(Ai,t)}var Xm=T({tan_:GU});function Gt(r,e){Eo(r);let t=Cr(r,e);if(t.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return jr(r,null,t,e)}function Mi(r,e,t){if(Eo(r),e!=null&&e.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let o=Cr(r,t);if(o.length!==2&&o.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(o.length===1&&e==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return jr(r,e,o,t)}function WU(r,e,t){if(Eo(r),e!=null&&e.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let o=Cr(r,t);if(o.length!==4&&o.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(o.length===1&&e==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return jr(r,e,o,t)}function UU(r,e,t){if(Eo(r),e!=null&&e.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let o=Cr(r,t);if(o.length!==5&&o.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(o.length===1&&e==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return jr(r,e,o,t)}function jU(r,e,t){if(Eo(r),e!=null&&e.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let o=Cr(r,t);if(o.length!==6&&o.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(o.length===1&&e==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return e=e||o,jr(r,e,o,t)}function HU(r,e=1,t=!0){let o=v(r,"x","topk");if(o.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let n=o.shape[o.shape.length-1];if(e>n)throw new Error(`'k' passed to topk() must be <= the last dimension (${n}) but got ${e}`);let s={x:o},a={k:e,sorted:t},[i,l]=D.runKernel(Ei,s,a);return{values:i,indices:l}}var Ym=T({topk_:HU});function qU(r,e=0,t=1,o,n){if(o!=null&&o==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Zc(e,t,o,!0,n),a=ve(r,o);for(let i=0;i0,()=>"The input tensor must be at least 1D");let o={x:t},n={axis:e},[s,a]=D.runKernel(pu,o,n);return{values:s,indices:a}}var ep=T({unique_:KU});function XU(r,e,t){let o=v(r,"x","unsortedSegmentSum"),n=v(e,"segmentIds","unsortedSegmentSum","int32");E(ot(t),()=>"numSegments must be of dtype int");let s={x:o,segmentIds:n},a={numSegments:t};return D.runKernel(da,s,a)}var Zm=T({unsortedSegmentSum_:XU});function YU(r,e=0){let t=v(r,"x","unstack","string_or_numeric");E(e>=-t.shape.length&&e`Axis = ${e} is not in [-${t.shape.length}, ${t.shape.length})`);let o={value:t},n={axis:e};return D.runKernel(ys,o,n)}var pr=T({unstack_:YU});function Vw(r,e=!0,t,o){return D.makeVariable(r,e,t,o)}function Gw(r,e){let t=[];for(let s=0;s0,()=>"mask cannot be scalar"),Ct(i.slice(s,s+a),n.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let h=s;h"Shape mismatch in v and x");let l=le(1),u=ce(l,i),c=P(ce(a,s),u);if(n){E(o!=null,()=>"When using zeroDebias: true, step is required.");let p=v(o,"step","movingAverage");c=me(c,ce(l,Or(i,p)))}return ee(s,c)}var rj=T({movingAverage_:tj});function oj(r,e,t){let o=v(r,"indices","scatterND","int32"),n=v(e,"updates","scatterND");Yh(n,o,t);let s={indices:o,updates:n},a={shape:t};return D.runKernel(vi,s,a)}var Ww=T({scatterND_:oj});function dN(r,e,t,o){if(r.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${r.dtype}.`);if(r.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${r.shape}.`);let n=r.rank>0?r.shape[0]:1,s=r.rank>1?r.shape[1]:1;if(t.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${t.length}, should be: ${s}.`);let a=e.size;if(!(e.rank===0||e.rank===1&&a===n))throw new Error(`sparseValues has incorrect shape ${e.shape}, should be [] or [${n}]`);if(e.dtype!==o.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function nj(r,e,t,o=0){let n=v(r,"sparseIndices","sparseToDense","int32"),s=v(e,"sparseValues","sparseToDense"),a=v(o,"defaultValue","sparseToDense",s.dtype);dN(n,s,t,a);let i={sparseIndices:n,sparseValues:s,defaultValue:a},l={outputShape:t};return D.runKernel(uu,i,l)}var Qm=T({sparseToDense_:nj});function sj(r,e){let t=v(e,"indices","gatherND","int32"),n={params:v(r,"x","gatherND"),indices:t};return D.runKernel(ai,n)}var Uw=T({gatherND_:sj});function hN(r,e){if(e==null)return r.shape.slice();if(Ur(r.shape,e))return e;if(r.shape.length===e.length){let t=[];for(let o=0;o`x has to be a floating point tensor since it's going to be scaled, but got a ${n.dtype} tensor instead.`),E(e>=0&&e<1,()=>`rate must be a float in the range [0, 1), but got ${e}.`),e===0)return r instanceof Ve?n.clone():n;let s=hN(n,t),a=1-e,i=me(Ss(ee(Es(s,0,1,"float32",o),a)),a);return P(n,i)}var jw=T({dropout_:ij});function Hw(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function ef(r,e,t){let o=1-r%2,n=new Float32Array(r);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${o.rank}`),E(o.rank-1===n.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${o.rank} and targets rank ${n.rank}`),Ct(o.shape.slice(0,o.shape.length-1),n.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=o.shape[o.shape.length-1];E(t>0&&t<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${t}`);let a=await o.data(),i=await n.data(),[l,u]=[a.length/s,s],c=gb("bool",l);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hpj,depthwiseConv2d:()=>hj,matMul:()=>xj});function uj(r,e,t,o,n,s="NHWC",a){let i=r;r.rank===3&&(i=L(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let l=e;l.rank===3&&(l=L(e,[1,e.shape[0],e.shape[1],e.shape[2]])),E(i.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${i.shape}.`),E(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),E(t.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${t}.`);let u=s==="NHWC"?i.shape[3]:i.shape[1],c=s==="NHWC"?l.shape[3]:l.shape[1];E(u===t[2],()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${t[2]}.`),E(c===t[3],()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${t[3]}).`),a!=null&&E(ot(n),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${a} but got pad ${n}.`);let p={x:i,dy:l},m={strides:o,pad:n,dataFormat:s,dimRoundingMode:a,filterShape:t};return D.runKernel(Wl,p,m)}var tp=T({conv2DBackpropFilter_:uj});function Gu(r,e,t){if(t==null||t==="linear")return r;if(t==="relu")return P(r,Ds(e));throw new Error(`Cannot compute gradient for fused activation ${t}.`)}function Wu(r,e){let t=e,o=kt(r.shape,e.shape);return o.length>0&&(t=ge(t,o)),L(t,r.shape)}function Uu(r,e,t,o){if(e==="linear")return r;if(e==="relu")return Sr(r);if(e==="elu")return Ns(r);if(e==="relu6")return Ru(r);if(e==="prelu")return Ta(r,t);if(e==="leakyrelu")return Ca(r,o);throw new Error(`Unknown fused activation ${e}.`)}var ju=(r,e)=>!(r>0)||e==="linear";function cj({x:r,filter:e,strides:t,pad:o,dataFormat:n="NHWC",dilations:s=[1,1],dimRoundingMode:a,bias:i,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(l=l||"linear",ju(D.state.gradientDepth,l)===!1){let k=Kr(r,e,t,o,n,s,a);return i!=null&&(k=ee(k,i)),Uu(k,l,u,c)}let p=v(r,"x","conv2d"),m=v(e,"filter","conv2d"),f=p,d=!1;p.rank===3&&(d=!0,f=L(p,[1,p.shape[0],p.shape[1],p.shape[2]])),E(f.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${f.rank}.`),E(m.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${m.rank}.`),a!=null&&E(ot(o),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`),E(f.shape[3]===m.shape[2],()=>`Error in conv2d: depth of input (${f.shape[3]}) must match input depth for filter ${m.shape[2]}.`),E(_r(t,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${t} and dilations '${s}'`),E(n==="NHWC",()=>`Error in conv2d: got dataFormat of ${n} but only NHWC is currently supported.`);let h=wu(f.shape,m.shape,t,s,o,a),g;i!=null&&(g=v(i,"bias","fused conv2d"),[g]=Ge(g,p),Be(h.outShape,g.shape));let x;u!=null&&(x=v(u,"prelu weights","fused conv2d"));let w=(k,A)=>{let[N,$,F,M]=A,V=Gu(k,F,l);E(Mo(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=Kc($.shape,V,N,t,o),U=tp($,V,N.shape,t,o),H=[W,U];if(M!=null){let q=Wu(M,V);H.push(q)}return H},b={x:f,filter:m,bias:g,preluActivationWeights:x},_={strides:t,pad:o,dataFormat:n,dilations:s,dimRoundingMode:a,activation:l,leakyreluAlpha:c};return i==null?Xr((A,N,$)=>{let F=D.runKernel(_s,b,_);return $([N,A,F]),d&&(F=L(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:w}})(f,m):Xr((A,N,$,F)=>{let M=D.runKernel(_s,b,_);return F([N,A,M,$]),d&&(M=L(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:w}})(f,m,g)}var pj=T({fusedConv2d_:cj});function mj(r,e,t,o,n,s=[1,1],a){let i=r;r.rank===3&&(i=L(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let l=e;l.rank===3&&(l=L(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let u={x:i,dy:l},c={strides:o,pad:n,dimRoundingMode:a,dilations:s,filterShape:t};return D.runKernel(ql,u,c)}var ug=T({depthwiseConv2dNativeBackpropFilter_:mj});function fj(r,e,t,o,n,s=[1,1],a){let i=e,l=!1;e.rank===3&&(l=!0,i=L(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let u={dy:i,filter:t},c={strides:o,pad:n,dimRoundingMode:a,dilations:s,inputShape:r},p=D.runKernel(Kl,u,c);return l?L(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var cg=T({depthwiseConv2dNativeBackpropInput_:fj});function dj({x:r,filter:e,strides:t,pad:o,dataFormat:n="NHWC",dilations:s=[1,1],dimRoundingMode:a,bias:i,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(ju(D.state.gradientDepth,l)===!1){let k=Is(r,e,t,o,n,s,a);return i!=null&&(k=ee(k,i)),Uu(k,l,u,c)}let p=v(r,"x","depthwiseConv2d"),m=v(e,"filter","depthwiseConv2d"),f=p,d=!1;p.rank===3&&(d=!0,f=L(p,[1,p.shape[0],p.shape[1],p.shape[2]])),E(f.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${f.rank}.`),E(m.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`),E(f.shape[3]===m.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${f.shape[3]}) must match the inChannels dimension in filter ${m.shape[2]}.`),s==null&&(s=[1,1]),E(_r(t,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${t} and dilations '${s}'`),a!=null&&E(ot(o),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${a} but got pad ${o}.`);let h=wu(f.shape,m.shape,t,s,o,a,!0),g;i!=null&&(g=v(i,"bias","fused conv2d"),[g]=Ge(g,p),Be(h.outShape,g.shape));let x;u!=null&&(x=v(u,"prelu weights","fused depthwiseConv2d"));let w=(k,A)=>{E(Mo(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[N,$,F,M]=A,V=Gu(k,F,l),W=cg($.shape,V,N,t,o,s,a),U=ug($,V,N.shape,t,o,s,a);if(M!=null){let H=Wu(g,V);return[W,U,H]}return[W,U]},b={x:f,filter:m,bias:g,preluActivationWeights:x},_={strides:t,pad:o,dataFormat:n,dilations:s,dimRoundingMode:a,activation:l,leakyreluAlpha:c};return i==null?Xr((A,N,$)=>{let F=D.runKernel(ks,b,_);return $([N,A,F]),d&&(F=L(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:w}})(f,m):Xr((A,N,$,F)=>{let M=D.runKernel(ks,b,_);return F([N,A,M,$]),d&&(M=L(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:w}})(f,m,g)}var hj=T({fusedDepthwiseConv2d_:dj});function gj({a:r,b:e,transposeA:t=!1,transposeB:o=!1,bias:n,activation:s="linear",preluActivationWeights:a,leakyreluAlpha:i}){if(ju(D.state.gradientDepth,s)===!1){let M=We(r,e,t,o);return n!=null&&(M=ee(M,n)),Uu(M,s,a,i)}let l=v(r,"a","fused matMul"),u=v(e,"b","fused matMul");[l,u]=Ge(l,u);let c=t?l.shape[l.rank-2]:l.shape[l.rank-1],p=o?u.shape[u.rank-1]:u.shape[u.rank-2],m=t?l.shape[l.rank-1]:l.shape[l.rank-2],f=o?u.shape[u.rank-2]:u.shape[u.rank-1],d=l.shape.slice(0,-2),h=u.shape.slice(0,-2),g=ct(d),x=ct(h);E(l.rank>=2&&u.rank>=2&&l.rank===u.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${l.rank} and ${u.rank}.`),E(Ur(d,h),()=>`Error in fused matMul: outer dimensions (${d}) and (${h}) of Tensors with shapes ${l.shape} and ${u.shape} must match.`),E(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${t} and transposeB=${o} must match.`);let w=l.shape.slice(0,-2).concat([m,f]),b=t?L(l,[g,c,m]):L(l,[g,m,c]),_=o?L(u,[x,f,p]):L(u,[x,p,f]),k;n!=null&&(k=v(n,"bias","fused matMul"),[k]=Ge(k,l),Be(w,k.shape));let A;a!=null&&(A=v(a,"prelu weights","fused matMul"));let N=(M,V)=>{let[W,U,H,q]=V,X=Gu(L(M,H.shape),H,s),oe,Y;if(!t&&!o?(oe=We(X,U,!1,!0),Y=We(W,X,!0,!1)):!t&&o?(oe=We(X,U,!1,!1),Y=We(X,W,!0,!1)):t&&!o?(oe=We(U,X,!1,!0),Y=We(W,X,!1,!1)):(oe=We(U,X,!0,!0),Y=We(X,W,!0,!0)),n!=null){let re=Wu(q,X);return[oe,Y,re]}else return[oe,Y]},$={a:b,b:_,bias:k,preluActivationWeights:A},F={transposeA:t,transposeB:o,activation:s,leakyreluAlpha:i};return n==null?Xr((V,W,U)=>{let H=D.runKernel(ws,$,F);return U([V,W,H]),{value:L(H,w),gradFunc:N}})(b,_):Xr((V,W,U,H)=>{let q=D.runKernel(ws,$,F);return H([V,W,q,U]),{value:L(q,w),gradFunc:N}})(b,_,k)}var xj=T({fusedMatMul_:gj});function yj(r){return ef(r,.54,.46)}var gN=T({hammingWindow_:yj});function bj(r){return ef(r,.5,.5)}var pg=T({hannWindow_:bj});function wj(r,e,t,o=!1,n=0){let s=0,a=[];for(;s+e<=r.size;)a.push(Re(r,s,e)),s+=t;if(o)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${a.rank}.`),E(i.rank===2&&i.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${i.shape}.`),E(l.rank===1&&l.shape[0]===u,()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${i.shape}.`),E(o.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${o.length}.`),E(o[0]>=1&&o[1]>=1,()=>`cropSize must be atleast [1,1], but was ${o}`),E(n==="bilinear"||n==="nearest",()=>`method must be bilinear or nearest, but was ${n}`);let c={image:a,boxes:i,boxInd:l},p={method:n,extrapolationValue:s,cropSize:o};return D.runKernel(ei,c,p)}var yN=T({cropAndResize_:kj});function vj(r){let e=v(r,"image","flipLeftRight","float32");E(e.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${e.rank}.`);let t={image:e};return D.runKernel(ii,t,{})}var bN=T({flipLeftRight_:vj});function Cj(r,e,t=0,o=.5){let n=v(r,"image","rotateWithOffset","float32");E(n.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${n.rank}.`);let s={image:n},a={radians:e,fillValue:t,center:o};return D.runKernel(Di,s,a)}var wN=T({rotateWithOffset_:Cj});function Wn(r,e,t,o,n,s){o==null&&(o=.5),n==null&&(n=Number.NEGATIVE_INFINITY),s==null&&(s=0);let a=r.shape[0];return t=Math.min(t,a),E(0<=o&&o<=1,()=>`iouThreshold must be in [0, 1], but was '${o}'`),E(r.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${r.rank}'`),E(r.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${r.shape[1]}`),E(e.rank===1,()=>"scores must be a 1D tensor"),E(e.shape[0]===a,()=>`scores has incompatible shape with boxes. Expected ${a}, but was ${e.shape[0]}`),E(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:t,iouThreshold:o,scoreThreshold:n,softNmsSigma:s}}function Ij(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY){let s=v(r,"boxes","nonMaxSuppression"),a=v(e,"scores","nonMaxSuppression"),i=Wn(s,a,t,o,n);t=i.maxOutputSize,o=i.iouThreshold,n=i.scoreThreshold;let l={maxOutputSize:t,iouThreshold:o,scoreThreshold:n};return D.runKernel(yi,{boxes:s,scores:a},l)}var _N=T({nonMaxSuppression_:Ij});function kN(r,e,t){let o=Nj(r,e,t),n=o<0?-(o+1):o;r.splice(n,0,e)}function Nj(r,e,t){return Tj(r,e,t||Sj)}function Sj(r,e){return r>e?1:r>>1);let i=t(e,r[s]);i>0?o=s+1:(n=s,a=!i)}return a?o:-o-1}function Kw(r,e,t,o,n){return qw(r,e,t,o,n,0)}function Xw(r,e,t,o,n,s){return qw(r,e,t,o,n,0,!1,s,!0)}function Yw(r,e,t,o,n,s){return qw(r,e,t,o,n,s,!0)}function qw(r,e,t,o,n,s,a=!1,i=!1,l=!1){let u=[];for(let g=0;gn&&u.push({score:e[g],boxIndex:g,suppressBeginIndex:0});u.sort(vN);let c=s>0?-.5/s:0,p=[],m=[];for(;p.length0;){let g=u.pop(),{score:x,boxIndex:w,suppressBeginIndex:b}=g;if(x=b;--k){let A=Aj(r,w,p[k]);if(A>=o){_=!0;break}if(g.score=g.score*Ej(o,c,A),g.score<=n)break}g.suppressBeginIndex=p.length,_||(g.score===x?(p.push(w),m.push(g.score)):g.score>n&&kN(u,g,vN))}let f=p.length,d=t-f;i&&d>0&&(p.push(...new Array(d).fill(0)),m.push(...new Array(d).fill(0)));let h={selectedIndices:p};return a&&(h.selectedScores=m),l&&(h.validOutputs=f),h}function Aj(r,e,t){let o=r.subarray(e*4,e*4+4),n=r.subarray(t*4,t*4+4),s=Math.min(o[0],o[2]),a=Math.min(o[1],o[3]),i=Math.max(o[0],o[2]),l=Math.max(o[1],o[3]),u=Math.min(n[0],n[2]),c=Math.min(n[1],n[3]),p=Math.max(n[0],n[2]),m=Math.max(n[1],n[3]),f=(i-s)*(l-a),d=(p-u)*(m-c);if(f<=0||d<=0)return 0;let h=Math.max(s,u),g=Math.max(a,c),x=Math.min(i,p),w=Math.min(l,m),b=Math.max(x-h,0)*Math.max(w-g,0);return b/(f+d-b)}function Ej(r,e,t){let o=Math.exp(e*t*t);return t<=r?o:0}function vN(r,e){return r.score-e.score||r.score===e.score&&e.boxIndex-r.boxIndex}async function Dj(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY){let s=v(r,"boxes","nonMaxSuppressionAsync"),a=v(e,"scores","nonMaxSuppressionAsync"),i=Wn(s,a,t,o,n);t=i.maxOutputSize,o=i.iouThreshold,n=i.scoreThreshold;let l=await Promise.all([s.data(),a.data()]),u=l[0],c=l[1],{selectedIndices:p}=Kw(u,c,t,o,n);return s!==r&&s.dispose(),a!==e&&a.dispose(),Gt(p,"int32")}var CN=Dj;function $j(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY,s=0){let a=v(r,"boxes","nonMaxSuppression"),i=v(e,"scores","nonMaxSuppression"),l=Wn(a,i,t,o,n,s);t=l.maxOutputSize,o=l.iouThreshold,n=l.scoreThreshold,s=l.softNmsSigma;let u={boxes:a,scores:i},c={maxOutputSize:t,iouThreshold:o,scoreThreshold:n,softNmsSigma:s},p=D.runKernel(wi,u,c);return{selectedIndices:p[0],selectedScores:p[1]}}var IN=T({nonMaxSuppressionWithScore_:$j});async function Rj(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY,s=0){let a=v(r,"boxes","nonMaxSuppressionAsync"),i=v(e,"scores","nonMaxSuppressionAsync"),l=Wn(a,i,t,o,n,s);t=l.maxOutputSize,o=l.iouThreshold,n=l.scoreThreshold,s=l.softNmsSigma;let u=await Promise.all([a.data(),i.data()]),c=u[0],p=u[1],{selectedIndices:m,selectedScores:f}=Yw(c,p,t,o,n,s);return a!==r&&a.dispose(),i!==e&&i.dispose(),{selectedIndices:Gt(m,"int32"),selectedScores:Gt(f)}}var NN=Rj;function Fj(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY,s=!1){let a=v(r,"boxes","nonMaxSuppression"),i=v(e,"scores","nonMaxSuppression"),l=Wn(a,i,t,o,n,null),u=l.maxOutputSize,c=l.iouThreshold,p=l.scoreThreshold,m={boxes:a,scores:i},f={maxOutputSize:u,iouThreshold:c,scoreThreshold:p,padToMaxOutputSize:s},d=D.runKernel(bi,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var SN=T({nonMaxSuppressionPadded_:Fj});async function Oj(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY,s=!1){let a=v(r,"boxes","nonMaxSuppressionAsync"),i=v(e,"scores","nonMaxSuppressionAsync"),l=Wn(a,i,t,o,n,null),u=l.maxOutputSize,c=l.iouThreshold,p=l.scoreThreshold,[m,f]=await Promise.all([a.data(),i.data()]),{selectedIndices:d,validOutputs:h}=Xw(m,f,u,c,p,s);return a!==r&&a.dispose(),i!==e&&i.dispose(),{selectedIndices:Gt(d,"int32"),validOutputs:le(h,"int32")}}var TN=Oj;function Pj(r,e,t=!1,o=!1){let n=v(r,"images","resizeBilinear");E(n.rank===3||n.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${n.rank}.`),E(e.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${e}.`),E(o===!1||t===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=n,a=!1;n.rank===3&&(a=!0,s=L(n,[1,n.shape[0],n.shape[1],n.shape[2]]));let[]=e,i={images:s},l={alignCorners:t,halfPixelCenters:o,size:e},u=D.runKernel(vn,i,l);return a?L(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var fg=T({resizeBilinear_:Pj});function Mj(r,e,t=!1,o=!1){let n=v(r,"images","resizeNearestNeighbor");E(n.rank===3||n.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${n.rank}.`),E(e.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${e}.`),E(n.dtype==="float32"||n.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),E(o===!1||t===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=n,a=!1;n.rank===3&&(a=!0,s=L(n,[1,n.shape[0],n.shape[1],n.shape[2]]));let[]=e,i={images:s},l={alignCorners:t,halfPixelCenters:o,size:e},u=D.runKernel(pa,i,l);return a?L(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var dg=T({resizeNearestNeighbor_:Mj});function Lj(r,e,t="nearest",o="constant",n=0,s){let a=v(r,"image","transform","float32"),i=v(e,"transforms","transform","float32");E(a.rank===4,()=>`Error in transform: image must be rank 4,but got rank ${a.rank}.`),E(i.rank===2&&(i.shape[0]===a.shape[0]||i.shape[0]===1)&&i.shape[1]===8,()=>"Error in transform: Input transform should be batch x 8 or 1 x 8"),E(s==null||s.length===2,()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`);let l={image:a,transforms:i},u={interpolation:t,fillMode:o,fillValue:n,outputShape:s};return D.runKernel(cu,l,u)}var AN=T({transform_:Lj});function zj(r,e,t){E(e%1==0,()=>`bandPart(): numLower must be an integer, got ${e}.`),E(t%1==0,()=>`bandPart(): numUpper must be an integer, got ${t}.`);let o=v(r,"a","bandPart");E(o.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${o.rank}.`);let n=o.shape,[s,a]=o.shape.slice(-2);if(!(e<=s))throw new Error(`bandPart(): numLower (${e}) must not be greater than the number of rows (${s}).`);if(!(t<=a))throw new Error(`bandPart(): numUpper (${t}) must not be greater than the number of columns (${a}).`);e<0&&(e=s),t<0&&(t=a);let i=L(Jc(0,s,1,"int32"),[-1,1]),l=Jc(0,a,1,"int32"),u=ce(i,l),c=hr(zo(u,le(+e,"int32")),io(u,le(-t,"int32"))),p=gt([s,a],o.dtype);return L(Vt(pr(L(o,[-1,s,a])).map(m=>$t(c,m,p))),n)}var EN=T({bandPart_:zj});function Bj(r){let e;if(Array.isArray(r)){e=!1,E(r!=null&&r.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let n=r[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${r[s].shape[0]} vs. ${n})`)}else e=!0,r=cr(r,r.shape[0],0).map(n=>Co(n,[0]));E(r.length<=r[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${r.length}) exceeds number of dimensions (${r[0].shape[0]}).`);let t=[],o=r;for(let n=0;n{let s=o[n];if(n>0)for(let a=0;a=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${r.rank}`),r.rank===2)return $N(r,e);{let t=r.shape.slice(0,r.shape.length-2).reduce((l,u)=>l*u),o=pr(L(r,[t,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),n=[],s=[];o.forEach(l=>{let[u,c]=$N(l,e);n.push(u),s.push(c)});let a=L(Vt(n,0),r.shape),i=L(Vt(s,0),r.shape);return[a,i]}}function $N(r,e=!1){return D.tidy(()=>{E(r.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${r.shape.length}D Tensor.`);let t=r.shape[0],o=r.shape[1],n=Xc(t),s=Oo(r),a=Mi([[1]],[1,1]),i=Oo(a),l=t>=o?o:t;for(let u=0;u{let f=Re(s,[u,u],[t-u,1]),d=Vu(f),h=Re(s,[u,u],[1,1]),g=$t(er(h,0),Mi([[-1]]),Mi([[1]])),x=ce(h,P(g,d)),w=me(f,x);w.shape[0]===1?i=Oo(a):i=Ye([a,Re(w,[1,0],[w.shape[0]-1,w.shape[1]])],0);let b=He(me(We(g,x),d)),_=Re(s,[u,0],[t-u,o]),k=P(b,i),A=je(i);if(u===0)s=ce(_,We(k,We(A,_)));else{let F=ce(_,We(k,We(A,_)));s=Ye([Re(s,[0,0],[u,o]),F],0)}let N=je(k),$=Re(n,[0,u],[t,n.shape[1]-u]);if(u===0)n=ce($,We(We($,i),N));else{let F=ce($,We(We($,i),N));n=Ye([Re(n,[0,0],[t,u]),F],1)}return[i,s,n]}),Te([c,p,m])}return!e&&t>o&&(n=Re(n,[0,0],[t,o]),s=Re(s,[0,0],[o,o])),[n,s]})}var RN=T({qr_:Vj});var Wt;(function(r){r[r.NONE=0]="NONE",r[r.MEAN=1]="MEAN",r[r.SUM=2]="SUM",r[r.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(Wt||(Wt={}));function Gj(r,e,t=Wt.SUM_BY_NONZERO_WEIGHTS){let o=v(r,"losses","computeWeightedLoss"),n=null;e!=null&&(n=v(e,"weights","computeWeightedLoss"));let s=n==null?o:P(o,n);if(t===Wt.NONE)return s;if(t===Wt.SUM)return ge(s);if(t===Wt.MEAN){if(n==null)return ht(s);{let a=o.size/n.size,i=me(ge(s),ge(n));return a>1?me(i,le(a)):i}}if(t===Wt.SUM_BY_NONZERO_WEIGHTS){if(n==null)return me(ge(s),le(o.size));{let a=P(n,Nr(o.shape)),i=ne(ge(Vn(a,le(0))),"float32");return me(ge(s),i)}}throw Error(`Unknown reduction: ${t}`)}var Tr=T({computeWeightedLoss_:Gj});function Wj(r,e,t,o=Wt.SUM_BY_NONZERO_WEIGHTS){let n=v(r,"labels","absoluteDifference"),s=v(e,"predictions","absoluteDifference"),a=null;t!=null&&(a=v(t,"weights","absoluteDifference")),Ct(n.shape,s.shape,"Error in absoluteDifference: ");let i=Nt(ce(n,s));return Tr(i,a,o)}var FN=T({absoluteDifference_:Wj});function Uj(r,e,t,o,n=Wt.SUM_BY_NONZERO_WEIGHTS){let s=v(r,"labels","cosineDistance"),a=v(e,"predictions","cosineDistance"),i=null;o!=null&&(i=v(o,"weights","cosineDistance")),Ct(s.shape,a.shape,"Error in cosineDistance: ");let l=le(1),u=ce(l,ge(P(s,a),t,!0));return Tr(u,i,n)}var ON=T({cosineDistance_:Uj});function jj(r,e,t,o=Wt.SUM_BY_NONZERO_WEIGHTS){let n=v(r,"labels","hingeLoss"),s=v(e,"predictions","hingeLoss"),a=null;t!=null&&(a=v(t,"weights","hingeLoss")),Ct(n.shape,s.shape,"Error in hingeLoss: ");let i=le(1);n=ce(P(le(2),n),i);let l=Sr(ce(i,P(n,s)));return Tr(l,a,o)}var PN=T({hingeLoss_:jj});function Hj(r,e,t,o=1,n=Wt.SUM_BY_NONZERO_WEIGHTS){let s=v(r,"labels","huberLoss"),a=v(e,"predictions","huberLoss"),i=null;t!=null&&(i=v(t,"weights","huberLoss")),Ct(s.shape,a.shape,"Error in huberLoss: ");let l=le(o),u=Nt(ce(a,s)),c=As(u,l),p=ce(u,c),m=ee(P(le(.5),Oe(c)),P(l,p));return Tr(m,i,n)}var MN=T({huberLoss_:Hj});function qj(r,e,t,o=1e-7,n=Wt.SUM_BY_NONZERO_WEIGHTS){let s=v(r,"labels","logLoss"),a=v(e,"predictions","logLoss"),i=null;t!=null&&(i=v(t,"weights","logLoss")),Ct(s.shape,a.shape,"Error in logLoss: ");let l=le(1),u=le(o),c=He(P(s,lr(ee(a,u)))),p=P(ce(l,s),lr(ee(ce(l,a),u))),m=ce(c,p);return Tr(m,i,n)}var LN=T({logLoss_:qj});function Kj(r,e,t,o=Wt.SUM_BY_NONZERO_WEIGHTS){let n=v(r,"labels","meanSquaredError"),s=v(e,"predictions","meanSquaredError"),a=null;t!=null&&(a=v(t,"weights","meanSquaredError")),Ct(n.shape,s.shape,"Error in meanSquaredError: ");let i=zu(n,s);return Tr(i,a,o)}var zN=T({meanSquaredError_:Kj});function Xj(r,e){let t=v(r,"labels","sigmoidCrossEntropyWithLogits"),o=v(e,"logits","sigmoidCrossEntropyWithLogits");Ct(t.shape,o.shape,"Error in sigmoidCrossEntropyWithLogits: ");let n=Sr(o),s=P(o,t),a=Tu(Zt(He(Nt(o))));return ee(ce(n,s),a)}function Yj(r,e,t,o=0,n=Wt.SUM_BY_NONZERO_WEIGHTS){let s=v(r,"multiClassLabels","sigmoidCrossEntropy"),a=v(e,"logits","sigmoidCrossEntropy"),i=null;if(t!=null&&(i=v(t,"weights","sigmoidCrossEntropy")),Ct(s.shape,a.shape,"Error in sigmoidCrossEntropy: "),o>0){let u=le(o),c=le(1),p=le(.5);s=ee(P(s,ce(c,u)),P(p,u))}let l=Xj(s,a);return Tr(l,i,n)}var BN=T({sigmoidCrossEntropy_:Yj});function Zj(r,e,t=-1){if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${e.rank} and dim was ${t}`);return Xr((n,s,a)=>{let l=Lm(s,[t],!0),u=ce(ne(s,"float32"),l);a([n,u]);let c=He(P(u,n));return{value:ge(c,[t]),gradFunc:(f,d)=>{let[h,g]=d,x=Bn(f.shape,[t]);return[P(L(f,x),ce(ne(h,"float32"),Zt(g))),P(L(f,x),ce(Zt(g),ne(h,"float32")))]}}})(r,e)}function Jj(r,e,t,o=0,n=Wt.SUM_BY_NONZERO_WEIGHTS){let s=v(r,"onehotLabels","softmaxCrossEntropy"),a=v(e,"logits","softmaxCrossEntropy"),i=null;if(t!=null&&(i=v(t,"weights","softmaxCrossEntropy")),Ct(s.shape,a.shape,"Error in softmaxCrossEntropy: "),o>0){let u=le(o),c=le(1),p=le(s.shape[1]);s=ee(P(s,ce(c,u)),me(u,p))}let l=Zj(s,a);return Tr(l,i,n)}var VN=T({softmaxCrossEntropy_:Jj});var Qj={fft:Ea,ifft:Pi,rfft:Da,irfft:Lu},eH={hammingWindow:gN,hannWindow:pg,frame:mg,stft:xN},$s={flipLeftRight:bN,resizeNearestNeighbor:dg,resizeBilinear:fg,rotateWithOffset:wN,cropAndResize:yN,nonMaxSuppression:_N,nonMaxSuppressionAsync:CN,nonMaxSuppressionWithScore:IN,nonMaxSuppressionWithScoreAsync:NN,nonMaxSuppressionPadded:SN,nonMaxSuppressionPaddedAsync:TN,transform:AN},Zw={bandPart:EN,gramSchmidt:DN,qr:RN},tH={absoluteDifference:FN,computeWeightedLoss:Tr,cosineDistance:ON,hingeLoss:PN,huberLoss:MN,logLoss:LN,meanSquaredError:zN,sigmoidCrossEntropy:BN,softmaxCrossEntropy:VN};var Pr=class extends Jh{minimize(e,t=!1,o){let{value:n,grads:s}=this.computeGradients(e,o);if(o!=null){let a=o.map(i=>({name:i.name,tensor:s[i.name]}));this.applyGradients(a)}else this.applyGradients(s);return Te(s),t?n:(n.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return og(e,t)}dispose(){this.iterations_!=null&&Te(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:le(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}};Object.defineProperty(Pr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var rp=class extends Pr{constructor(e,t,o=null){super();this.learningRate=e,this.rho=t,this.epsilon=o,this.accumulatedGrads=[],this.accumulatedUpdates=[],o==null&&(this.epsilon=D.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(o=>o.name):Object.keys(e)).forEach((o,n)=>{let s=D.registeredVariables[o],a=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${o}/accum_grad`,variable:G(()=>Ce(s).variable(a))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${o}/accum_var`,variable:G(()=>Ce(s).variable(a))});let i=Array.isArray(e)?e[n].tensor:e[o];if(i==null)return;let l=this.accumulatedGrads[n].variable,u=this.accumulatedUpdates[n].variable;G(()=>{let c=ee(P(l,this.rho),P(Oe(i),1-this.rho)),p=P(me(xt(ee(u,this.epsilon)),xt(ee(l,this.epsilon))),i),m=ee(P(u,this.rho),P(Oe(p),1-this.rho));l.assign(c),u.assign(m);let f=ee(P(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Te(this.accumulatedGrads.map(e=>e.variable)),Te(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=e.length/2,o=!1;this.accumulatedGrads=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(o)})),this.accumulatedUpdates=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(o)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}};rp.className="Adadelta";so(rp);var op=class extends Pr{constructor(e,t=.1){super();this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(o=>o.name):Object.keys(e)).forEach((o,n)=>{let s=D.registeredVariables[o];if(this.accumulatedGrads[n]==null){let l=!1;this.accumulatedGrads[n]={originalName:`${o}/accumulator`,variable:G(()=>va(s.shape,this.initialAccumulatorValue).variable(l))}}let a=Array.isArray(e)?e[n].tensor:e[o];if(a==null)return;let i=this.accumulatedGrads[n].variable;G(()=>{let l=ee(i,Oe(a));i.assign(l);let u=ee(P(me(a,xt(ee(l,D.backend.epsilon()))),-this.learningRate),s);s.assign(u)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Te(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulatedGrads=e.map(o=>({originalName:o.name,variable:o.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}};op.className="Adagrad";so(op);var np=class extends Pr{constructor(e,t,o,n=null){super();this.learningRate=e,this.beta1=t,this.beta2=o,this.epsilon=n,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],G(()=>{this.accBeta1=le(t).variable(),this.accBeta2=le(o).variable()}),n==null&&(this.epsilon=D.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(o=>o.name):Object.keys(e);G(()=>{let o=ce(1,this.accBeta1),n=ce(1,this.accBeta2);t.forEach((s,a)=>{let i=D.registeredVariables[s],l=!1;this.accumulatedFirstMoment[a]==null&&(this.accumulatedFirstMoment[a]={originalName:`${s}/m`,variable:G(()=>Ce(i).variable(l))}),this.accumulatedSecondMoment[a]==null&&(this.accumulatedSecondMoment[a]={originalName:`${s}/v`,variable:G(()=>Ce(i).variable(l))});let u=Array.isArray(e)?e[a].tensor:e[s];if(u==null)return;let c=this.accumulatedFirstMoment[a].variable,p=this.accumulatedSecondMoment[a].variable,m=ee(P(c,this.beta1),P(u,1-this.beta1)),f=ee(P(p,this.beta2),P(Oe(u),1-this.beta2)),d=me(m,o),h=me(f,n);c.assign(m),p.assign(f);let g=ee(P(me(d,ee(xt(h),this.epsilon)),-this.learningRate),i);i.assign(g)}),this.accBeta1.assign(P(this.accBeta1,this.beta1)),this.accBeta2.assign(P(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Te(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&Te(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),G(()=>{this.accBeta1.assign(Or(this.beta1,this.iterations_+1)),this.accBeta2.assign(Or(this.beta2,this.iterations_+1))});let t=e.length/2,o=!1;this.accumulatedFirstMoment=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(o)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(o)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}};np.className="Adam";so(np);var sp=class extends Pr{constructor(e,t,o,n=null,s=0){super();this.learningRate=e,this.beta1=t,this.beta2=o,this.epsilon=n,this.decay=s,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],G(()=>{this.iteration=le(0).variable(),this.accBeta1=le(t).variable()}),n==null&&(this.epsilon=D.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(o=>o.name):Object.keys(e);G(()=>{let o=ce(1,this.accBeta1),n=me(-this.learningRate,ee(P(this.iteration,this.decay),1));t.forEach((s,a)=>{let i=D.registeredVariables[s],l=!1;this.accumulatedFirstMoment[a]==null&&(this.accumulatedFirstMoment[a]={originalName:`${s}/m`,variable:Ce(i).variable(l)}),this.accumulatedWeightedInfNorm[a]==null&&(this.accumulatedWeightedInfNorm[a]={originalName:`${s}/v`,variable:Ce(i).variable(l)});let u=Array.isArray(e)?e[a].tensor:e[s];if(u==null)return;let c=this.accumulatedFirstMoment[a].variable,p=this.accumulatedWeightedInfNorm[a].variable,m=ee(P(c,this.beta1),P(u,1-this.beta1)),f=P(p,this.beta2),d=Nt(u),h=Yr(f,d);c.assign(m),p.assign(h);let g=ee(P(me(n,o),me(m,ee(h,this.epsilon))),i);i.assign(g)}),this.iteration.assign(ee(this.iteration,1)),this.accBeta1.assign(P(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Te(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&Te(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}};sp.className="Adamax";so(sp);var al=class extends Pr{constructor(e){super();this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(o=>o.name):Object.keys(e)).forEach((o,n)=>{let s=Array.isArray(e)?e[n].tensor:e[o];if(s==null)return;let a=D.registeredVariables[o];G(()=>{let i=ee(P(this.c,s),a);a.assign(i)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=Dt(le(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}};al.className="SGD";so(al);var ip=class extends al{constructor(e,t,o=!1){super(e);this.learningRate=e,this.momentum=t,this.useNesterov=o,this.accumulations=[],this.m=le(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(o=>o.name):Object.keys(e)).forEach((o,n)=>{let s=D.registeredVariables[o];if(this.accumulations[n]==null){let l=!1;this.accumulations[n]={originalName:`${o}/momentum`,variable:G(()=>Ce(s).variable(l))}}let a=this.accumulations[n].variable,i=Array.isArray(e)?e[n].tensor:e[o];i!=null&&G(()=>{let l,u=ee(P(this.m,a),i);this.useNesterov?l=ee(P(this.c,ee(i,P(u,this.m))),s):l=ee(P(this.c,u),s),a.assign(u),s.assign(l)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Te(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulations=e.map(o=>({originalName:o.name,variable:o.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}};ip.className="Momentum";so(ip);var ap=class extends Pr{constructor(e,t=.9,o=0,n=null,s=!1){super();if(this.learningRate=e,this.decay=t,this.momentum=o,this.epsilon=n,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=s,n==null&&(this.epsilon=D.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(o=>o.name):Object.keys(e)).forEach((o,n)=>{let s=D.registeredVariables[o],a=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${o}/rms`,variable:G(()=>Ce(s).variable(a))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${o}/momentum`,variable:G(()=>Ce(s).variable(a))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${o}/mg`,variable:G(()=>Ce(s).variable(a))});let i=Array.isArray(e)?e[n].tensor:e[o];if(i==null)return;let l=this.accumulatedMeanSquares[n].variable,u=this.accumulatedMoments[n].variable;G(()=>{let c=ee(P(l,this.decay),P(Oe(i),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[n].variable,m=ee(P(p,this.decay),P(i,1-this.decay)),f=me(P(i,this.learningRate),xt(ce(c,ee(Oe(m),this.epsilon)))),d=ee(P(u,this.momentum),f);l.assign(c),p.assign(m),u.assign(d);let h=ce(s,d);s.assign(h)}else{let p=ee(P(l,this.decay),P(Oe(i),1-this.decay)),m=ee(P(u,this.momentum),me(P(i,this.learningRate),xt(ee(p,this.epsilon))));l.assign(p),u.assign(m);let f=ce(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Te(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Te(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&Te(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2,o=!1;this.accumulatedMeanSquares=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(o)})),this.accumulatedMoments=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(o)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(n=>({originalName:n.name,variable:n.tensor.variable(o)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}};ap.className="RMSProp";so(ap);var $a=class{static sgd(e){return new al(e)}static momentum(e,t,o=!1){return new ip(e,t,o)}static rmsprop(e,t=.9,o=0,n=null,s=!1){return new ap(e,t,o,n,s)}static adam(e=.001,t=.9,o=.999,n=null){return new np(e,t,o,n)}static adadelta(e=.001,t=.95,o=null){return new rp(e,t,o)}static adamax(e=.002,t=.9,o=.999,n=null,s=0){return new sp(e,t,o,n,s)}static adagrad(e,t=.1){return new op(e,t)}};var ll={sgd:$a.sgd,momentum:$a.momentum,adadelta:$a.adadelta,adagrad:$a.adagrad,rmsprop:$a.rmsprop,adamax:$a.adamax,adam:$a.adam};var rH=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:r=>r())();function tf(){return new Promise(r=>rH(()=>r()))}var S={};Je(S,{ERF_A1:()=>fH,ERF_A2:()=>dH,ERF_A3:()=>hH,ERF_A4:()=>gH,ERF_A5:()=>xH,ERF_P:()=>mH,PARALLELIZE_THRESHOLD:()=>hg,SELU_SCALE:()=>Qw,SELU_SCALEALPHA:()=>Jw,applyActivation:()=>Uu,assertAndGetBroadcastShape:()=>Be,assertAxesAreInnerMostDims:()=>i4,assertParamsConsistent:()=>oH,assignToTypedArray:()=>IH,axesAreInnerMostDims:()=>Iw,calculateShapes:()=>RI,combineLocations:()=>ZI,complexWithEvenIndex:()=>kH,complexWithOddIndex:()=>vH,computeConv2DInfo:()=>wu,computeConv3DInfo:()=>XI,computeDefaultPad:()=>uw,computeDilation2DInfo:()=>DG,computeOptimalWindowSize:()=>sH,computeOutAndReduceShapes:()=>Nw,computeOutShape:()=>nH,computePool2DInfo:()=>aw,computePool3DInfo:()=>$G,convertConv2DDataFormat:()=>KI,eitherStridesOrDilationsAreOne:()=>_r,expandShapeToKeepDim:()=>Bn,exponent:()=>SH,exponents:()=>NH,fromStringArrayToUint8:()=>RH,fromUint8ToStringArray:()=>$H,getAxesPermutation:()=>Sw,getBroadcastDims:()=>kW,getComplexWithIndex:()=>CH,getFusedBiasGradient:()=>Wu,getFusedDyActivation:()=>Gu,getImageCenter:()=>iH,getInnerMostAxes:()=>a4,getPermuted:()=>lH,getReductionAxes:()=>kt,getReshaped:()=>aH,getReshapedPermuted:()=>uH,getSliceBeginCoords:()=>cH,getSliceSize:()=>pH,getUndoAxesPermutation:()=>Mm,log:()=>bH,mergeRealAndImagArrays:()=>wH,prepareAndValidate:()=>$I,prepareSplitSize:()=>TH,segment_util:()=>GN,shouldFuse:()=>ju,slice_util:()=>sr,splitRealAndImagArrays:()=>_H,tupleValuesAreOne:()=>Mo,upcastType:()=>dr,validateInput:()=>Yh,validateUpdateShape:()=>Qb,warn:()=>yH});function oH(r,e){let t=r[0].length;r.forEach((n,s)=>{E(n.length===t,()=>`Error in concat${t}D: rank of tensors[${s}] must be the same as the rank of the rest (${t})`)}),E(e>=0&&e`Error in concat${t}D: axis must be between 0 and ${t-1}.`);let o=r[0];r.forEach((n,s)=>{for(let a=0;a`Error in concat${t}D: Shape of tensors[${s}] (${n}) does not match the shape of the rest (${o}) along the non-concatenated axis ${s}.`)})}function nH(r,e){let t=r[0].slice();for(let o=1;o=e*2+1||a%2==1?s.push(a):n.push(a);o.push(...n),o.push(0),o.push(...s)}return o}function uH(r,e,t,o=!0){let n=[];o?n.push(r[0]/t):n.push(r[0]*t);for(let s=1;s"Number of splits must evenly divide the axis."),o=new Array(e).fill(r.shape[t]/e);else{let n=e.reduce((a,i)=>(i===-1&&(a+=1),a),0);E(n<=1,()=>"There should be only one negative value in split array.");let s=e.indexOf(-1);if(s!==-1){let a=e.reduce((i,l)=>l>0?i+l:i);e[s]=r.shape[t]-a}E(r.shape[t]===e.reduce((a,i)=>a+i),()=>"The sum of sizes must match the size of the axis dimension."),o=e}return o}var GN={};Je(GN,{collectGatherOpShapeInfo:()=>DH,computeOutShape:()=>EH,segOpComputeOptimalWindowSize:()=>AH});function AH(r,e){let t=!1,o;for(r<=hg?(o=r,t=!0):o=$c(r,Math.floor(Math.sqrt(r)));!t;)o>e||o===r?t=!0:o=$c(r,o+1);return o}function EH(r,e,t){let o=[],n=r.length;for(let s=0;sn))throw new Error(`Expect batchDims in the range of [-${n}, ${n}], but got ${o}`);if(o<0&&(o+=n),o>s)throw new Error(`batchDims (${o}) must be less than rank(x) ( + ${s}).`);if(tBc(e))}catch(e){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${e}`)}}function RH(r){return r.map(e=>Qa(e))}var Ar={};Je(Ar,{nonMaxSuppressionV3Impl:()=>Kw,nonMaxSuppressionV4Impl:()=>Xw,nonMaxSuppressionV5Impl:()=>Yw,whereImpl:()=>Gw});var gg={kernelName:as,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>P(r,Ds(ne(t,"float32"),-1))}}};var WN={kernelName:Hs,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>{let o=Oe(ne(t,"float32")),n=xt(ce(le(1),o));return He(me(r,n))}}}};var UN={kernelName:qs,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>{let o=xt(ce(Oe(ne(t,"float32")),1));return me(r,o)}}}};var jN={kernelName:wo,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=Be(t.shape,o.shape);return{a:()=>{let i=r,l=kt(t.shape,n);return l.length>0&&(i=ge(i,l)),L(i,t.shape)},b:()=>{let i=r,l=kt(o.shape,n);return l.length>0&&(i=ge(i,l)),L(i,o.shape)}}}};var HN={kernelName:Ho,saveAllInputs:!0,gradFunc:(r,e)=>{let t={};return e.forEach((o,n)=>{t[n]=()=>r.clone()}),t}};var qN={kernelName:qo,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>Ce(t)}}};var KN={kernelName:ea,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>Ce(t)}}};var XN={kernelName:Ks,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>me(r,xt(ce(le(1),Oe(ne(t,"float32")))))}}};var YN={kernelName:Xs,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>{let o=xt(ee(le(1),Oe(ne(t,"float32"))));return me(r,o)}}}};var ZN={kernelName:Js,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=Be(t.shape,o.shape);return{a:()=>{let i=ee(Oe(t),Oe(o)),l=P(r,me(o,i)),u=kt(t.shape,n);return u.length>0&&(l=ge(l,u)),L(l,t.shape)},b:()=>{let i=ee(Oe(t),Oe(o)),l=He(P(r,me(t,i))),u=kt(o.shape,n);return u.length>0&&(l=ge(l,u)),L(l,o.shape)}}}};var JN={kernelName:Ys,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>me(r,ee(Oe(ne(t,"float32")),1))}}};var QN={kernelName:Zs,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>me(r,ce(le(1),Oe(ne(t,"float32"))))}}};function FH(r,e,t,o,n,s){let a=v(r,"dy","avgPool3dGrad"),i=v(e,"input","avgPool3dGrad"),l=a,u=i,c=!1;i.rank===4&&(c=!0,l=L(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),u=L(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),E(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),E(u.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${u.rank}.`),s!=null&&E(ot(n),()=>`Error in avgPool3dGrad: pad must be an integer when using, dimRoundingMode ${s} but got pad ${n}.`);let p={dy:l,input:u},m={filterSize:t,strides:o,pad:n,dimRoundingMode:s},f=D.runKernel(Bl,p,m);return c?L(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var eS=T({avgPool3dGrad_:FH});var tS={kernelName:ta,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{filterSize:n,strides:s,pad:a,dimRoundingMode:i}=t;return{x:()=>eS(r,o,n,s,a,i)}}};function OH(r,e,t,o,n){let s=v(r,"dy","avgPoolGrad"),a=v(e,"input","avgPoolGrad");E(a.rank===s.rank,()=>`Rank of input (${a.rank}) does not match rank of dy (${s.rank})`);let i=a,l=s,u=!1;a.rank===3&&(u=!0,i=L(a,[1,a.shape[0],a.shape[1],a.shape[2]]),l=L(s,[1,s.shape[0],s.shape[1],s.shape[2]])),E(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),E(i.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${i.rank}.`);let c={dy:l,input:i},p={filterSize:t,strides:o,pad:n},m=D.runKernel(zl,c,p);return u?L(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var rS=T({avgPoolGrad_:OH});var oS={kernelName:Ko,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{filterSize:n,strides:s,pad:a}=t;return{x:()=>rS(r,o,n,s,a)}}};var nS={kernelName:Xo,inputsToSave:["a","b"],gradFunc:(r,e,t)=>{let[o,n]=e,{transposeA:s,transposeB:a}=t;return!s&&!a?{a:()=>We(r,n,!1,!0),b:()=>We(o,r,!0,!1)}:!s&&a?{a:()=>We(r,n,!1,!1),b:()=>We(r,o,!0,!1)}:s&&!a?{a:()=>We(n,r,!1,!0),b:()=>We(o,r,!1,!1)}:{a:()=>We(n,r,!0,!0),b:()=>We(r,o,!0,!0)}}};var sS={kernelName:ra,gradFunc:(r,e,t)=>{let{blockShape:o,crops:n}=t;return{x:()=>Sa(r,o,n)}}};var iS={kernelName:Cb,gradFunc:(r,e,t)=>{let o=t,n=o.inputShape,s=o.shape,a=Array.from(s);for(let l=n.length-1;l>=0;l--)if(n[l]===s[l])a[l]=1;else if(n[l]!==1)throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${s}].`);let i=[];for(let l=0;l1&&i.push(l);return{x:()=>ge(r,i,!0)}}};var aS={kernelName:Do,gradFunc:r=>({x:()=>r.clone()})};var lS={kernelName:Yo,gradFunc:r=>({x:()=>Ce(r)})};var uS={kernelName:$o,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{clipValueMin:n,clipValueMax:s}=t;return{x:()=>$t(hr(io(o,n),zo(o,s)),r,Ce(r))}}};var cS={kernelName:oa,inputsToSave:["x"],gradFunc:gg.gradFunc};var pS={kernelName:ls,saveAllInputs:!0,gradFunc:(r,e,t)=>{let o=e.map(l=>l.shape),{axis:n}=t,s=Qt(n,e[0].shape)[0],a=o.map(l=>l[s]);return cr(r,a,s).map(l=>()=>l)}};var mS={kernelName:Zo,inputsToSave:["x","filter"],gradFunc:(r,e,t)=>{let[o,n]=e,{dilations:s,strides:a,pad:i,dataFormat:l}=t;return E(Mo(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>Kc(o.shape,r,n,a,i,l),filter:()=>tp(o,r,n.shape,a,i,l)}}};var fS={kernelName:Jo,inputsToSave:["dy","filter"],gradFunc:(r,e,t)=>{let[o,n]=e,{strides:s,pad:a,dataFormat:i,dimRoundingMode:l}=t;return{dy:()=>Kr(r,n,s,a,i,1,l),filter:()=>tp(r,o,n.shape,s,a,i,l)}}};function PH(r,e,t,o,n){let s=r;r.rank===4&&(s=L(r,[1,r.shape[0],r.shape[1],r.shape[2],r.shape[3]]));let a=e;a.rank===4&&(a=L(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]])),E(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),E(a.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${a.shape}.`),E(t.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${t}.`),E(s.shape[4]===t[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${t[3]}.`),E(a.shape[4]===t[4],()=>`Error in conv3dDerFilter: depth of dy (${a.shape[4]}) must match output depth for filter (${t[4]}).`);let i={x:s,dy:a},l={strides:o,pad:n,filterShape:t};return D.runKernel(Ul,i,l)}var dS=T({conv3DBackpropFilter_:PH});var hS={kernelName:na,inputsToSave:["x","filter"],gradFunc:(r,e,t)=>{let{dilations:o,strides:n,pad:s}=t;E(Mo(o),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${o}'`);let[a,i]=e;return{x:()=>tg(a.shape,r,i,n,s),filter:()=>dS(a,r,i.shape,n,s)}}};var gS={kernelName:Qo,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>P(He(Pu(ne(t,"float32"))),r)}}};var xS={kernelName:Qs,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>P(Mu(ne(t,"float32")),r)}}};var yS={kernelName:en,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{axis:n,exclusive:s,reverse:a}=t;return{x:()=>{let i=Sw([n],o.rank),l=Iu(r,n,s,!a);return i!=null&&(l=je(l,i)),l}}}};var bS={kernelName:tn,inputsToSave:["x","filter"],gradFunc:(r,e,t)=>{let{dilations:o,strides:n,pad:s,dimRoundingMode:a}=t,i=o==null?[1,1]:o;E(Mo(i),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${i}'`);let[l,u]=e;return E(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),E(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`),E(l.shape[3]===u.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${u.shape[2]}.`),E(_r(n,i),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'.`),a!=null&&E(ot(s),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${s}.`),{x:()=>cg(l.shape,r,u,n,s,o,a),filter:()=>ug(l,r,u.shape,n,s,o,a)}}};var wS={kernelName:sa,inputsToSave:["x","filter"],gradFunc:(r,e,t)=>{let[o,n]=e,s={x:o,filter:n,dy:r},a={x:o,filter:n,dy:r};return{x:()=>D.runKernel(Fc,s,t),filter:()=>D.runKernel(Oc,a,t)}}};var _S={kernelName:ri,outputsToSave:[!0],gradFunc:(r,e)=>{let[t]=e,o={dy:r,y:t};return{x:()=>D.runKernel(Yl,o)}}};var kS={kernelName:oi,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e,o=P(Zt(He(Oe(t))),2/Math.sqrt(Math.PI));return{x:()=>P(r,o)}}};var vS={kernelName:on,outputsToSave:[!0],gradFunc:(r,e)=>{let[t]=e;return{x:()=>P(r,t)}}};var CS={kernelName:us,inputsToSave:["input"],gradFunc:(r,e)=>{let[t]=e;return{input:()=>L(r,t.shape)}}};var IS={kernelName:si,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>P(r,Zt(t))}}};var NS={kernelName:nn,gradFunc:r=>({x:()=>Ce(r)})};var SS={kernelName:sn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=Be(t.shape,o.shape);return{a:()=>{let i=me(r,ne(o,"float32")),l=kt(t.shape,n);return l.length>0?L(ge(i,l),t.shape):i},b:()=>{let i=P(r,ne(t,"float32")),l=kt(o.shape,n);l.length>0&&(i=L(ge(i,l),o.shape));let u=Oe(o);return He(me(i,ne(u,"float32")))}}}};var TS={kernelName:an,inputsToSave:["x","mean","variance","scale"],gradFunc:(r,e,t)=>{let{varianceEpsilon:o}=t,[n,s,a,i]=e,l=i==null?le(1):i,u=kt(s.shape,n.shape),c=[];if(s.rank===1){for(let _=0;_s.rank===1?L(P(P(r,Lo(L(f,[1,1,1,s.shape[0]]),c)),l),n.shape):L(P(P(r,f),l),n.shape),mean:()=>{let _=P(P(f,le(-1)),m);return s.rank===1&&(_=ge(_,u)),L(_,s.shape)},variance:()=>{let _=P(P(d,p),m);return s.rank===1&&(_=ge(_,u)),L(_,s.shape)},scale:()=>{let _=P(p,f),k=P(r,_);return s.rank===1&&(k=ge(k,u)),L(k,s.shape)},offset:()=>{let _=r;return s.rank===1&&(_=ge(_,u)),L(_,s.shape)}}}};var DS={kernelName:cs,inputsToSave:["x","indices"],gradFunc:(r,e,t)=>{let[o,n]=e,{axis:s}=t,a=Qt(s,o.shape)[0];return{x:()=>{let l=o.shape,u=n.size,c=l.slice(0,a),p=c.length,m=l.slice(s,l.length).slice(1),f=m.length,d=AS(0,p),h=AS(p+1,p+1+f),g=ES([c,[u],m]),x=L(r,g),w=L(n,[u]),b=ES([[p],d,h]),_=je(x,b),k=Zm(_,w,o.shape[a]),A=Mm(b);return k=je(k,A),k},indices:()=>n}}};function AS(r,e){let t=[];for(let o=r;o{let[t,o]=e;return{a:()=>Ce(t),b:()=>Ce(o)}}};var RS={kernelName:Ro,gradFunc:r=>({x:()=>ne(r,"float32")})};var FS={kernelName:ui,gradFunc:r=>({x:()=>Ce(r)})};var OS={kernelName:ci,gradFunc:r=>({x:()=>Ce(r)})};var PS={kernelName:pi,gradFunc:r=>({x:()=>Ce(r)})};var MS={kernelName:un,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{alpha:n}=t,s=er(o,0);return{x:()=>$t(s,r,P(r,n))}}};var LS={kernelName:di,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>me(r,ee(t,1))}}};var zS={kernelName:cn,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>me(r,ne(t,"float32"))}}};var BS={kernelName:Ib,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,e,t)=>{let[o]=e,{axis:n}=t;return{logits:()=>{let s=!0,a=Zt(o);return ce(r,P(ge(r,n,s),a))}}}};function MH(r,e,t,o=5,n=1,s=1,a=.5){let i={x:r,y:e,dy:t},l={depthRadius:o,bias:n,alpha:s,beta:a};return D.runKernel(tu,i,l)}var VS=T({localResponseNormalizationBackprop_:MH});var GS={kernelName:aa,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,e,t)=>{let[o,n]=e,{depthRadius:s,bias:a,alpha:i,beta:l}=t;return{x:()=>VS(o,n,r,s,a,i,l)}}};function xg(r,e,t,o){return e.rankP(r,ne(vo(t,e),r.dtype))}}var e_={kernelName:pn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,e,t)=>{let o=t,{reductionIndices:n}=o,s=e[0],a=e[1],i=Qt(n,s.shape),l=xg(r,a,s,i);return{x:()=>l.x()}}};var WS={kernelName:mn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e;return{a:()=>P(r,ne(io(t,o),"float32")),b:()=>P(r,ne(Su(t,o),"float32"))}}};function LH(r,e,t,o,n,s,a){let i=v(r,"dy","maxPool3dGrad"),l=v(e,"input","maxPool3dGrad"),u=v(t,"output","maxPool3dGrad"),c=i,p=l,m=u,f=!1;l.rank===4&&(f=!0,c=L(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),p=L(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),m=L(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),E(c.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${c.rank}.`),E(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),E(m.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${m.rank}.`),a!=null&&E(ot(s),()=>`Error in maxPool3dGrad: pad must be an integer when using, dimRoundingMode ${a} but got pad ${s}.`);let d={dy:c,input:p,output:m},h={filterSize:o,strides:n,pad:s,dimRoundingMode:a},g=D.runKernel(ou,d,h);return f?L(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var US=T({maxPool3dGrad_:LH});var jS={kernelName:la,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,e,t)=>{let[o,n]=e,{filterSize:s,strides:a,pad:i,dimRoundingMode:l}=t;return{x:()=>US(r,o,n,s,a,i,l)}}};function zH(r,e,t,o,n,s,a){let i=v(r,"dy","maxPoolGrad"),l=v(e,"input","maxPoolGrad"),u=v(t,"output","maxPoolGrad");E(l.rank===i.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${i.rank})`),E(i.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${i.rank}.`),E(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),a!=null&&E(ot(s),()=>`Error in maxPoolGrad: pad must be an integer when using, dimRoundingMode ${a} but got pad ${s}.`);let c={dy:i,input:l,output:u},p={filterSize:o,strides:n,pad:s,dimRoundingMode:a};return D.runKernel(ru,c,p)}var HS=T({maxPoolGrad_:zH});var qS={kernelName:fn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,e,t)=>{let[o,n]=e,{filterSize:s,strides:a,pad:i}=t;return{x:()=>HS(r,o,n,s,a,i)}}};var KS={kernelName:dn,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{axis:n}=t,s=Qt(n,o.shape),i=Nw(o.shape,s)[1],l=ct(i);return{x:()=>{let c=o.shape.slice();s.forEach(f=>{c[f]=1});let p=L(r,c);return me(P(p,Nr(o.shape,"float32")),l)}}}};var XS={kernelName:hn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,e,t)=>{let o=t,{axis:n}=o,[s,a]=e,i=Qt(n,s.shape),l=xg(r,a,s,i);return{x:()=>l.x()}}};var YS={kernelName:gn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e;return{a:()=>P(r,ne(zo(t,o),"float32")),b:()=>P(r,ne(er(t,o),"float32"))}}};var ZS={kernelName:ua,inputsToSave:["x"],gradFunc:(r,e,t)=>{let o=e[0],{paddings:n}=t,s=n.map(a=>a[0]);return{x:()=>Re(r,s,o.shape)}}};var JS={kernelName:gi,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=Be(t.shape,o.shape);return{a:()=>{let i=kt(t.shape,n);return i.length>0?L(ge(r,i),t.shape):r},b:()=>{let i=P(r,He(Ss(me(t,o)))),l=kt(o.shape,n);return l.length>0?L(ge(i,l),o.shape):i}}}};var QS={kernelName:xn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=Be(t.shape,o.shape);return{a:()=>{let i=P(r,ne(o,"float32")),l=kt(t.shape,n);return l.length>0?L(ge(i,l),t.shape):i},b:()=>{let i=P(r,ne(t,"float32")),l=kt(o.shape,n);return l.length>0?L(ge(i,l),o.shape):i}}}};var eT={kernelName:ps,gradFunc:r=>({x:()=>He(r)})};var tT={kernelName:yn,inputsToSave:["indices"],gradFunc:(r,e)=>{let t=e[0];return{indices:()=>gt(t.shape,"float32")}}};var rT={kernelName:ms,gradFunc:r=>({x:()=>Ce(r)})};var oT={kernelName:fs,saveAllInputs:!0,gradFunc:(r,e,t)=>{let{axis:o}=t;return pr(r,o).map(s=>()=>s)}};var t_={kernelName:bn,inputsToSave:["x"],gradFunc:(r,e,t)=>{let o=e[0],{paddings:n}=t,s=n.map(a=>a[0]);return{x:()=>Re(r,s,o.shape)}}};var nT={kernelName:wn,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(r,e)=>{let[t,o,n]=e,s=t,a=o,i=Be(s.shape,a.shape);return{a:()=>{let c=ne(a,"float32"),p=P(r,P(c,Or(s,ce(c,le(1))))),m=kt(s.shape,i);return m.length>0&&(p=ge(p,m)),L(p,s.shape)},b:()=>{let c=er(s,0),p=$t(c,lr(s),Ce(s)),m=P(r,P(n,p)),f=kt(a.shape,i);return f.length>0&&(m=ge(m,f)),L(m,a.shape)}}}};var sT={kernelName:_n,inputsToSave:["x","alpha"],gradFunc:(r,e)=>{let[t,o]=e,n=er(t,0);return{x:()=>$t(n,r,P(r,o)),alpha:()=>{let s=$t(n,Ce(r),P(r,t)),a=kt(o.shape,r.shape);return a.length>0&&(s=ge(s,a)),L(s,o.shape)}}}};var iT={kernelName:rn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=Be(t.shape,o.shape);return{a:()=>{let i=me(r,ne(o,"float32")),l=kt(t.shape,n);return l.length>0?L(ge(i,l),t.shape):i},b:()=>{let i=P(r,ne(t,"float32")),l=kt(o.shape,n);l.length>0&&(i=L(ge(i,l),o.shape));let u=Oe(o);return He(me(i,ne(u,"float32")))}}}};var aT={kernelName:ki,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>me(r,He(Oe(t)))}}};var lT={kernelName:Cn,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e,o=P(zo(t,6),Ds(t));return{x:()=>P(r,ne(o,"float32"))}}};var uT={kernelName:kn,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>P(r,ne(Ds(t),"float32"))}}};var cT={kernelName:ds,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>L(r,t.shape)}}};var pT={kernelName:vn,inputsToSave:["images"],gradFunc:(r,e,t)=>{let[o]=e,n={dy:r,images:o};return{images:()=>D.runKernel(lu,n,t)}}};var mT={kernelName:pa,inputsToSave:["images"],gradFunc:(r,e,t)=>{let[o]=e,n={dy:r,images:o};return{images:()=>D.runKernel(au,n,t)}}};var fT={kernelName:In,gradFunc:(r,e,t)=>{let{dims:o}=t,n=Qt(o,r.shape);return{x:()=>qt(r,n)}}};var dT={kernelName:Nn,gradFunc:r=>({x:()=>Ce(r)})};var hT={kernelName:Sn,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>He(me(r,P(Or(t,1.5),2)))}}};var gT={kernelName:hs,inputsToSave:["condition"],gradFunc:(r,e)=>{let[t]=e;return{condition:()=>ne(Ce(t),"float32"),t:()=>P(r,ne(t,r.dtype)),e:()=>P(r,ne(Ia(t),r.dtype))}}};var xT={kernelName:Ci,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>{let o=er(t,le(0)),n=le(Jw),s=le(Qw),a=P(r,s),i=P(P(r,n),Zt(ne(t,"float32")));return $t(o,a,i)}}}};var yT={kernelName:An,outputsToSave:[!0],gradFunc:(r,e)=>{let[t]=e;return{x:()=>P(r,P(t,ce(le(1),t)))}}};var bT={kernelName:Ni,gradFunc:r=>({x:()=>Ce(r)})};var wT={kernelName:Tn,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>P(ka(ne(t,"float32")),r)}}};var _T={kernelName:Ii,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>P(Cu(ne(t,"float32")),r)}}};var kT={kernelName:gs,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{begin:n,size:s}=t,a=o.shape,[i,l]=ew(o,n,s),u=[];for(let c=0;cFr(r,u)}}};var vT={kernelName:$n,outputsToSave:[!0],gradFunc:(r,e,t)=>{let[o]=e,{dim:n}=t,s=!0,a=P(r,o);return{logits:()=>ce(a,P(ge(a,[n],s),o))}}};var CT={kernelName:Si,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>P(r,qr(t))}}};var r_={kernelName:ma,gradFunc:(r,e,t)=>{let{blockShape:o,paddings:n}=t;return{x:()=>_a(r,o,n)}}};var o_={kernelName:xs,gradFunc:(r,e,t)=>{let{axis:o}=t;return{x:()=>Ye(r,o)}}};var IT={kernelName:En,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>me(r,P(xt(ne(t,"float32")),2))}}};var NT={kernelName:fa,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>P(r,P(ne(t,"float32"),2))}}};var ST={kernelName:Rn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=le(2);return{a:()=>P(r,P(n,ce(t,o))),b:()=>P(r,P(n,ce(o,t)))}}};var TT={kernelName:Fo,gradFunc:r=>({x:()=>Ce(r)})};var AT={kernelName:Fn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=Be(t.shape,o.shape);return{a:()=>{let i=r,l=kt(t.shape,n);return l.length>0&&(i=ge(i,l)),L(i,t.shape)},b:()=>{let i=r,l=kt(o.shape,n);return l.length>0&&(i=ge(i,l)),L(He(i),o.shape)}}}};var ET={kernelName:Dn,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,n=o.shape.slice(),{axis:s}=t;Qt(s,o.shape).forEach(u=>{n[u]=1});let i=L(r,n),l=P(i,Nr(o.shape,"float32"));return{x:()=>l}}};var DT={kernelName:Ai,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>me(r,Oe(ka(t)))}}};var $T={kernelName:On,outputsToSave:[!0],gradFunc:(r,e)=>{let[t]=e;return{x:()=>P(ce(le(1),Oe(t)),r)}}};var RT={kernelName:_o,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{reps:n}=t;return{x:()=>{let a=Ce(o);if(o.rank===1)for(let i=0;i{let o=t,{perm:n}=o,s=Mm(n);return{x:()=>je(r,s)}}};var OT={kernelName:ys,gradFunc:(r,e,t)=>{let o=t,{axis:n}=o;return{value:()=>Vt(r,n)}}};var PT={kernelName:da,inputsToSave:["segmentIds"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>BH(r,t)}}};function BH(r,e){let t=Yr(e,Ce(e)),o=zn(r,t),n=io(e,le(0,"int32")),s=o.rank-n.rank;for(let i=0;i({x:()=>Ce(r)})};var VH=[gg,WN,UN,jN,HN,qN,KN,XN,YN,ZN,JN,QN,tS,oS,nS,sS,iS,aS,lS,uS,cS,pS,fS,mS,hS,gS,xS,yS,bS,wS,iT,_S,kS,vS,CS,IS,SS,NS,TS,DS,$S,RS,FS,OS,PS,MS,LS,zS,BS,GS,e_,e_,WS,jS,qS,KS,XS,YS,ZS,JS,QS,eT,tT,rT,oT,t_,t_,nT,sT,aT,lT,uT,cT,pT,mT,fT,dT,hT,gT,xT,yT,bT,wT,_T,kT,vT,CT,r_,r_,o_,o_,IT,ST,NT,TT,AT,ET,DT,$T,RT,FT,OT,PT,MT];for(let r of VH)Sb(r);O().prototype.abs=function(){return this.throwIfDisposed(),Nt(this)};O().prototype.acos=function(){return this.throwIfDisposed(),wm(this)};O().prototype.acosh=function(){return this.throwIfDisposed(),_m(this)};O().prototype.add=function(r){return this.throwIfDisposed(),ee(this,r)};O().prototype.all=function(r,e){return this.throwIfDisposed(),bu(this,r,e)};O().prototype.any=function(r,e){return this.throwIfDisposed(),ol(this,r,e)};O().prototype.argMax=function(r){return this.throwIfDisposed(),nl(this,r)};O().prototype.argMin=function(r){return this.throwIfDisposed(),km(this,r)};O().prototype.asScalar=function(){return this.throwIfDisposed(),E(this.size===1,()=>"The array must have only 1 element."),L(this,[])};O().prototype.asType=function(r){return this.throwIfDisposed(),ne(this,r)};O().prototype.as1D=function(){return this.throwIfDisposed(),L(this,[this.size])};O().prototype.as2D=function(r,e){return this.throwIfDisposed(),L(this,[r,e])};O().prototype.as3D=function(r,e,t){return this.throwIfDisposed(),L(this,[r,e,t])};O().prototype.as4D=function(r,e,t,o){return this.throwIfDisposed(),L(this,[r,e,t,o])};O().prototype.as5D=function(r,e,t,o,n){return this.throwIfDisposed(),L(this,[r,e,t,o,n])};O().prototype.asin=function(){return this.throwIfDisposed(),vm(this)};O().prototype.asinh=function(){return this.throwIfDisposed(),Cm(this)};O().prototype.atan=function(){return this.throwIfDisposed(),Im(this)};O().prototype.atan2=function(r){return this.throwIfDisposed(),Nm(this,r)};O().prototype.atanh=function(){return this.throwIfDisposed(),Sm(this)};O().prototype.avgPool=function(r,e,t,o){return this.throwIfDisposed(),wa(this,r,e,t,o)};O().prototype.batchToSpaceND=function(r,e){return this.throwIfDisposed(),_a(this,r,e)};O().prototype.batchNorm=function(r,e,t,o,n){return this.throwIfDisposed(),Ln(this,r,e,t,o,n)};O().prototype.broadcastTo=function(r){return this.throwIfDisposed(),sl(this,r)};O().prototype.cast=function(r){return this.throwIfDisposed(),ne(this,r)};O().prototype.ceil=function(){return this.throwIfDisposed(),Am(this)};O().prototype.clipByValue=function(r,e){return this.throwIfDisposed(),ir(this,r,e)};O().prototype.concat=function(r,e){return this.throwIfDisposed(),r instanceof Ve&&(r=[r]),Ye([this,...r],e)};O().prototype.conv1d=function(r,e,t,o,n,s){return this.throwIfDisposed(),ku(this,r,e,t,o,n,s)};O().prototype.conv2dTranspose=function(r,e,t,o,n){return this.throwIfDisposed(),vu(this,r,e,t,o,n)};O().prototype.conv2d=function(r,e,t,o,n,s){return this.throwIfDisposed(),Kr(this,r,e,t,o,n,s)};O().prototype.cos=function(){return this.throwIfDisposed(),ka(this)};O().prototype.cosh=function(){return this.throwIfDisposed(),Cu(this)};O().prototype.cumsum=function(r,e,t){return this.throwIfDisposed(),Iu(this,r,e,t)};O().prototype.depthToSpace=function(r,e){return this.throwIfDisposed(),Dm(this,r,e)};O().prototype.depthwiseConv2d=function(r,e,t,o,n,s){return this.throwIfDisposed(),Is(this,r,e,t,o,n,s)};O().prototype.dilation2d=function(r,e,t,o,n){return this.throwIfDisposed(),$m(this,r,e,t,o,n)};O().prototype.divNoNan=function(r){return this.throwIfDisposed(),Rm(this,r)};O().prototype.div=function(r){return this.throwIfDisposed(),me(this,r)};O().prototype.dot=function(r){return this.throwIfDisposed(),bw(this,r)};O().prototype.elu=function(){return this.throwIfDisposed(),Ns(this)};O().prototype.equal=function(r){return this.throwIfDisposed(),vo(this,r)};O().prototype.erf=function(){return this.throwIfDisposed(),Fm(this)};O().prototype.exp=function(){return this.throwIfDisposed(),Zt(this)};O().prototype.expandDims=function(r){return this.throwIfDisposed(),ar(this,r)};O().prototype.expm1=function(){return this.throwIfDisposed(),Om(this)};O().prototype.fft=function(){return this.throwIfDisposed(),Ea(this)};O().prototype.flatten=function(){return this.throwIfDisposed(),L(this,[this.size])};O().prototype.floor=function(){return this.throwIfDisposed(),Ss(this)};O().prototype.floorDiv=function(r){return this.throwIfDisposed(),yu(this,r)};O().prototype.gather=function(r,e){return this.throwIfDisposed(),zn(this,r,e)};O().prototype.greaterEqual=function(r){return this.throwIfDisposed(),io(this,r)};O().prototype.greater=function(r){return this.throwIfDisposed(),er(this,r)};O().prototype.ifft=function(){return this.throwIfDisposed(),Pi(this)};O().prototype.irfft=function(){return this.throwIfDisposed(),Lu(this)};O().prototype.isFinite=function(){return this.throwIfDisposed(),ww(this)};O().prototype.isInf=function(){return this.throwIfDisposed(),_w(this)};O().prototype.isNaN=function(){return this.throwIfDisposed(),kw(this)};O().prototype.leakyRelu=function(r){return this.throwIfDisposed(),Ca(this,r)};O().prototype.lessEqual=function(r){return this.throwIfDisposed(),zo(this,r)};O().prototype.less=function(r){return this.throwIfDisposed(),Su(this,r)};O().prototype.localResponseNormalization=function(r,e,t,o){return this.throwIfDisposed(),Pm(this,r,e,t,o)};O().prototype.logSigmoid=function(){return this.throwIfDisposed(),Cw(this)};O().prototype.logSoftmax=function(r){return this.throwIfDisposed(),Au(this,r)};O().prototype.logSumExp=function(r,e){return this.throwIfDisposed(),Lm(this,r,e)};O().prototype.log=function(){return this.throwIfDisposed(),lr(this)};O().prototype.log1p=function(){return this.throwIfDisposed(),Tu(this)};O().prototype.logicalAnd=function(r){return this.throwIfDisposed(),hr(this,r)};O().prototype.logicalNot=function(){return this.throwIfDisposed(),Ia(this)};O().prototype.logicalOr=function(r){return this.throwIfDisposed(),Eu(this,r)};O().prototype.logicalXor=function(r){return this.throwIfDisposed(),Tw(this,r)};O().prototype.matMul=function(r,e,t){return this.throwIfDisposed(),We(this,r,e,t)};O().prototype.maxPool=function(r,e,t,o){return this.throwIfDisposed(),Na(this,r,e,t,o)};O().prototype.max=function(r,e){return this.throwIfDisposed(),ur(this,r,e)};O().prototype.maximum=function(r){return this.throwIfDisposed(),Yr(this,r)};O().prototype.mean=function(r,e){return this.throwIfDisposed(),ht(this,r,e)};O().prototype.min=function(r,e){return this.throwIfDisposed(),Oi(this,r,e)};O().prototype.minimum=function(r){return this.throwIfDisposed(),As(this,r)};O().prototype.mirrorPad=function(r,e){return this.throwIfDisposed(),Bm(this,r,e)};O().prototype.mod=function(r){return this.throwIfDisposed(),Vm(this,r)};O().prototype.mul=function(r){return this.throwIfDisposed(),P(this,r)};O().prototype.neg=function(){return this.throwIfDisposed(),He(this)};O().prototype.norm=function(r,e,t){return this.throwIfDisposed(),Vu(this,r,e,t)};O().prototype.notEqual=function(r){return this.throwIfDisposed(),Vn(this,r)};O().prototype.oneHot=function(r,e=1,t=0){return this.throwIfDisposed(),Cs(this,r,e,t)};O().prototype.onesLike=function(){return this.throwIfDisposed(),tr(this)};O().prototype.pad=function(r,e){return this.throwIfDisposed(),Fr(this,r,e)};O().prototype.pool=function(r,e,t,o,n){return this.throwIfDisposed(),Dw(this,r,e,t,o,n)};O().prototype.pow=function(r){return this.throwIfDisposed(),Or(this,r)};O().prototype.prelu=function(r){return this.throwIfDisposed(),Ta(this,r)};O().prototype.prod=function(r,e){return this.throwIfDisposed(),Du(this,r,e)};O().prototype.reciprocal=function(){return this.throwIfDisposed(),Gm(this)};O().prototype.relu=function(){return this.throwIfDisposed(),Sr(this)};O().prototype.relu6=function(){return this.throwIfDisposed(),Ru(this)};O().prototype.reshapeAs=function(r){return this.throwIfDisposed(),L(this,r.shape)};O().prototype.reshape=function(r){return this.throwIfDisposed(),L(this,r)};O().prototype.resizeBilinear=function(r,e,t){return this.throwIfDisposed(),fg(this,r,e,t)};O().prototype.resizeNearestNeighbor=function(r,e,t){return this.throwIfDisposed(),dg(this,r,e,t)};O().prototype.reverse=function(r){return this.throwIfDisposed(),qt(this,r)};O().prototype.rfft=function(){return this.throwIfDisposed(),Da(this)};O().prototype.round=function(){return this.throwIfDisposed(),Wm(this)};O().prototype.rsqrt=function(){return this.throwIfDisposed(),Fu(this)};O().prototype.selu=function(){return this.throwIfDisposed(),Ou(this)};O().prototype.separableConv2d=function(r,e,t,o,n,s){return this.throwIfDisposed(),Um(this,r,e,t,o,n,s)};O().prototype.sigmoid=function(){return this.throwIfDisposed(),qr(this)};O().prototype.sign=function(){return this.throwIfDisposed(),jm(this)};O().prototype.sin=function(){return this.throwIfDisposed(),Pu(this)};O().prototype.sinh=function(){return this.throwIfDisposed(),Mu(this)};O().prototype.slice=function(r,e){return this.throwIfDisposed(),Re(this,r,e)};O().prototype.softmax=function(r){return this.throwIfDisposed(),Aa(this,r)};O().prototype.softplus=function(){return this.throwIfDisposed(),Ts(this)};O().prototype.spaceToBatchND=function(r,e){return this.throwIfDisposed(),Sa(this,r,e)};O().prototype.split=function(r,e){return this.throwIfDisposed(),cr(this,r,e)};O().prototype.sqrt=function(){return this.throwIfDisposed(),xt(this)};O().prototype.square=function(){return this.throwIfDisposed(),Oe(this)};O().prototype.squaredDifference=function(r){return this.throwIfDisposed(),zu(this,r)};O().prototype.squeeze=function(r){return this.throwIfDisposed(),Co(this,r)};O().prototype.stack=function(r,e){this.throwIfDisposed();let t=r instanceof Ve?[this,r]:[this,...r];return Vt(t,e)};O().prototype.step=function(r){return this.throwIfDisposed(),Ds(this,r)};O().prototype.stridedSlice=function(r,e,t,o,n,s,a,i){return this.throwIfDisposed(),Km(this,r,e,t,o,n,s,a,i)};O().prototype.sub=function(r){return this.throwIfDisposed(),ce(this,r)};O().prototype.sum=function(r,e){return this.throwIfDisposed(),ge(this,r,e)};O().prototype.tan=function(){return this.throwIfDisposed(),Xm(this)};O().prototype.tanh=function(){return this.throwIfDisposed(),Fi(this)};O().prototype.tile=function(r){return this.throwIfDisposed(),Lo(this,r)};O().prototype.toBool=function(){return this.throwIfDisposed(),ne(this,"bool")};O().prototype.toFloat=function(){return this.throwIfDisposed(),ne(this,"float32")};O().prototype.toInt=function(){return this.throwIfDisposed(),ne(this,"int32")};O().prototype.topk=function(r,e){return this.throwIfDisposed(),Ym(this,r,e)};O().prototype.transpose=function(r){return this.throwIfDisposed(),je(this,r)};O().prototype.unique=function(r){return this.throwIfDisposed(),ep(this,r)};O().prototype.unsortedSegmentSum=function(r,e){return this.throwIfDisposed(),Zm(this,r,e)};O().prototype.unstack=function(r){return this.throwIfDisposed(),pr(this,r)};O().prototype.where=function(r,e){return this.throwIfDisposed(),$t(r,this,e)};O().prototype.zerosLike=function(){return this.throwIfDisposed(),Ce(this)};var l_={};Je(l_,{maxNorm:()=>WH,minMaxNorm:()=>HH,nonNeg:()=>jH,unitNorm:()=>UH});var n_;function Jt(){return n_==null&&(n_=sw().epsilon()),n_}function Zr(){return"channelsLast"}var Io=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Io.prototype)}},Mr=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Mr.prototype)}},z=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,z.prototype)}},Ne=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Ne.prototype)}},rf=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,rf.prototype)}};function Un(r,e){if(Array.isArray(r)){let t=[];for(let o=0;ot.toUpperCase())}var Hn={};function lp(r){if(r==null)return null;let e={};return e.className=r.getClassName(),e.config=r.getConfig(),e}function i_(r){if(!(r==null||typeof r!="object"))if(Array.isArray(r))r.forEach(e=>i_(e));else{let e=Object.keys(r);for(let t of e){let o=r[t];o!=null&&typeof o=="object"&&(!Array.isArray(o)&&o.type==="ndarray"&&typeof o.value=="number"?r[t]=o.value:i_(o))}}}function Li(r,e={},t={},o="object",n=!1){if(typeof r=="string"){let s=r,a;if(s in t)a=t[s];else if(s in Hn)a=Hn[s];else if(a=e[s],a==null)throw new z(`Unknown ${o}: ${r}. This may be due to one of the following reasons: 1. The ${o} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${o} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return a}else{let s=r;if(s.className==null||s.config==null)throw new L(`${o}: Improper config format: ${JSON.stringify(s)}. -'className' and 'config' must set.`);let a=s.className,i,l;if(a in t?[i,l]=t[a]:a in Hn?[i,l]=Hn.className:a in e&&([i,l]=e[a]),i==null)throw new L(`Unknown ${o}: ${a}. This may be due to one of the following reasons: +2. The custom ${o} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return a}else{let s=r;if(s.className==null||s.config==null)throw new z(`${o}: Improper config format: ${JSON.stringify(s)}. +'className' and 'config' must set.`);let a=s.className,i,l;if(a in t?[i,l]=t[a]:a in Hn?[i,l]=Hn.className:a in e&&([i,l]=e[a]),i==null)throw new z(`Unknown ${o}: ${a}. This may be due to one of the following reasons: 1. The ${o} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${o} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){let u={};for(let f of Object.keys(Hn))u[f]=Hn[f];for(let f of Object.keys(t))u[f]=t[f];let c=s.config;c.customObjects=u;let p=Object.assign({},Hn);for(let f of Object.keys(t))Hn[f]=t[f];e_(s.config);let m=l(i,s.config,t,n);return Hn=Object.assign({},p),m}else{let u=Object.assign({},Hn);for(let p of Object.keys(t))Hn[p]=t[p];let c=new i(s.config);return Hn=Object.assign({},u),c}}}function Mj(r,e){return re?1:0}function tf(r,e){return-1*Mj(r,e)}function qn(r){if(r==null)return r;let e=[];for(let t of r)e.indexOf(t)===-1&&e.push(t);return e}function gT(r){if(r==null)throw new L(`Invalid value in obj: ${JSON.stringify(r)}`);for(let e in r)if(r.hasOwnProperty(e))return!1;return!0}function zi(r,e,t){if(t!=null&&r.indexOf(t)<0)throw new L(`${t} is not a valid ${e}. Valid values are ${r} or null/undefined.`)}function dg(r,e,t=0,o=Infinity){return Bo(t>=0),Bo(o>=t),Array.isArray(r)&&r.length>=t&&r.length<=o&&r.every(n=>typeof n===e)}function Wt(r,e){Array.isArray(r)?(x.assert(r.length>0,()=>`${e} is unexpectedly an empty array.`),r.forEach((t,o)=>Wt(t,`element ${o+1} of ${e}`))):x.assert(Number.isInteger(r)&&r>0,()=>`Expected ${e} to be a positive integer, but got ${xT(r)}.`)}function xT(r){return r===null?"null":Array.isArray(r)?"["+r.map(e=>xT(e)).join(",")+"]":typeof r=="string"?`"${r}"`:`${r}`}function yT(r,e){let t=x.now(),o;return(...s)=>{let a=x.now();return a-tgt(ge(O(r,r),e,!0)))}var ip=class extends J.Serializable{getConfig(){return{}}},rf=class extends ip{constructor(e){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return V(()=>{let t=t_(e,this.axis),o=sr(t,0,this.maxValue);return O(e,me(o,Q(Zt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};rf.className="MaxNorm";J.registerClass(rf);var of=class extends ip{constructor(e){super();this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return V(()=>me(e,Q(Zt(),t_(e,this.axis))))}getConfig(){return{axis:this.axis}}};of.className="UnitNorm";J.registerClass(of);var nf=class extends ip{apply(e){return Nr(e)}};nf.className="NonNeg";J.registerClass(nf);var sf=class extends ip{constructor(e){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return V(()=>{let t=t_(e,this.axis),o=Q(O(this.rate,sr(t,this.minValue,this.maxValue)),O(1-this.rate,t));return O(e,me(o,Q(Zt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};sf.className="MinMaxNorm";J.registerClass(sf);var bT={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Rt(r){return sp(r)}function wT(r,e={}){return Li(r,J.SerializationMap.getMap().classNameMap,e,"constraint")}function Ft(r){if(r==null)return null;if(typeof r=="string"){let t={className:r in bT?bT[r]:r,config:{}};return wT(t)}else return r instanceof ip?r:wT(r)}function Lj(r){return new rf(r)}function zj(r){return new of(r)}function Bj(){return new nf}function Vj(r){return new sf(r)}var a_={};Je(a_,{constant:()=>Xj,glorotNormal:()=>rH,glorotUniform:()=>tH,heNormal:()=>oH,heUniform:()=>nH,identity:()=>Qj,leCunNormal:()=>sH,leCunUniform:()=>iH,ones:()=>Kj,orthogonal:()=>aH,randomNormal:()=>Zj,randomUniform:()=>Yj,truncatedNormal:()=>Jj,varianceScaling:()=>eH,zeros:()=>qj});var _T=["channelsFirst","channelsLast"],kT=["nearest","bilinear"],vT=["valid","same","causal"],CT=["max","avg"],IT=["sum","mul","concat","ave"];var ap=new Map;function $t(r){zi(_T,"DataFormat",r)}function NT(r){zi(kT,"InterpolationFormat",r)}function Jr(r){zi(vT,"PaddingMode",r)}function o_(r){zi(CT,"PoolMode",r)}var af=[],ST="/";function $s(r,e){af.push(r);try{let t=e();return af.pop(),t}catch(t){throw af.pop(),t}}function Gj(){return af.length===0?"":af.join(ST)+ST}function gg(r){if(!TT(r))throw new Error("Not a valid tensor name: '"+r+"'");return Gj()+r}function xg(r){if(!TT(r))throw new Error("Not a valid tensor name: '"+r+"'");ap.has(r)||ap.set(r,0);let e=ap.get(r);if(ap.set(r,ap.get(r)+1),e>0){let t=`${r}_${e}`;return ap.set(t,1),t}else return r}var Wj=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function TT(r){return!!r.match(Wj)}function AT(r){return r===parseInt(r.toString(),10)}function Kn(r,e,t){e==null&&(e=0),t==null&&(t=r.length);let o=1;for(let n=e;n{if(r.shape.length!==2)throw new L(`repeat() expects a rank-2 tensor, but received a rank-${r.shape.length} tensor.`);let t=Oa(r,1);return yg(t,[1,e,1])})}function $T(r){let e=[Kn(r.shape)];return r.reshape(e)}function RT(r){if(r.rank<=1)throw new L(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let e=[r.shape[0],Kn(r.shape,1)];return r.reshape(e)}function Pa(r,e,t){return V(()=>{switch(r.rank){case 1:return Um(r,e,t);case 2:return ng(r,[e,0],[t,r.shape[1]]);case 3:return jm(r,[e,0,0],[t,r.shape[1],r.shape[2]]);case 4:return Yc(r,[e,0,0,0],[t,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Re(r,[e,0,0,0,0],[t,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Re(r,[e,0,0,0,0,0],[t,r.shape[1],r.shape[2],r.shape[3],r.shape[4],r.shape[5]]);default:throw new L(`sliceAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}})}function n_(r,e,t){return V(()=>{switch(r.rank){case 1:return Um(r,e,t);case 2:return ng(r,[0,e],[r.shape[0],t]);case 3:return jm(r,[0,0,e],[r.shape[0],r.shape[1],t]);case 4:return Yc(r,[0,0,0,e],[r.shape[0],r.shape[1],r.shape[2],t]);default:throw new L(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function lf(r,e,t,o){return V(()=>{switch(r.rank){case 1:return Um(r,e,t);case 2:switch(o){case 1:return Pa(r,e,t);case 2:return n_(r,e,t);default:throw new L(`The axis is not within the rank of the tensor ${o}`)}case 3:switch(o){case 1:return Pa(r,e,t);case 2:return jm(r,[0,e,0],[r.shape[0],t,r.shape[2]]);case 3:return n_(r,e,t);default:throw new L(`The axis is not within the rank of the tensor ${o}`)}case 4:switch(o){case 1:return Pa(r,e,t);case 2:return Yc(r,[0,e,0,0],[r.shape[0],t,r.shape[2],r.shape[3]]);case 3:return Yc(r,[0,0,e,0],[r.shape[0],r.shape[1],t,r.shape[3]]);case 4:return n_(r,e,t);default:throw new L(`The axis is not within the rank of the tensor ${o}`)}default:throw new L(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function lp(r,e=-1){let t;return e<0&&(t=r[0].rank,t!==0?e=t:e=0),e===r[0].rank&&(e=-1),Ye(r,e)}function s_(r,e){switch(r.rank){case 1:return lw([r,e]);case 2:return uw([r,e],0);case 3:return cw([r,e],0);case 4:return pw([r,e],0);default:throw new L(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function yg(r,e){if(Array.isArray(e)||(e=[e]),r.rank!==e.length)throw new L(`The length of input n (${e.length}) does not match the number of dimensions in input x (${r.rank})`);return Lo(r,e)}function up(r,e=0,t=1,o,n){return og(r,e,t,o,n)}function Xn(r,e,t,o){if(r.rank<2||e.rank<2)throw new Ne(`dot requires both inputs to be rank >= 2 but got x shape = ${r.shape} and y shape = ${e.shape}`);if(e.rank>=3){let n=r.shape.slice(-1)[0],s=e.shape.slice(-2)[0];if(n!==s)throw new Ne(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${r.shape} and y shape = ${e.shape}`)}if(r.rank===2&&e.rank===2){let n=!1,s=!1;return Gn.matMul({a:r,b:e,transposeA:n,transposeB:s,bias:o?i_(r.rank,o,Zr()):null,activation:t})}else{let n=r.shape.slice(),s=n.pop();r=r.reshape([-1,s]);let a=e.shape.slice(),i=a.pop(),l=a.pop(),u=[...a,i],c=Array.from({length:e.rank},(d,h)=>h===0?e.rank-2:h<=e.rank-2?h-1:h);e=e.transpose(c).reshape([l,-1]);let p=[...n,...u],m=!1,f=!1;return Gn.matMul({a:r,b:e,transposeA:m,transposeB:f,bias:o?i_(r.rank,o,Zr()):null,activation:t}).reshape(p)}}function bg(r,e,t){return V(()=>(Array.isArray(e)?e=Vt(e,"int32"):e=e.toInt(),zn(r,e,t)))}function ju(r){return O(r,r)}function i_(r,e,t){let o=e.shape;if(e.rank!==1&&e.rank!==r)throw new L(`Unexpected bias dimensions: ${e.rank}; expected it to be 1 or ${r}`);if(r===5){if(t==="channelsFirst")return o.length===1?e.reshape([1,o[0],1,1,1]):e.reshape([1,o[3],o[0],o[1],o[2]]);if(t==="channelsLast")return o.length===1?e.reshape([1,1,1,1,o[0]]):e.reshape([1].concat(o))}else if(r===4){if(t==="channelsFirst")return o.length===1?e.reshape([1,o[0],1,1]):e.reshape([1,o[2],o[0],o[1]]);if(t==="channelsLast")return o.length===1?e.reshape([1,1,1,o[0]]):e.reshape([1].concat(o))}else if(r===3){if(t==="channelsFirst")return o.length===1?e.reshape([1,o[0],1]):e.reshape([1,o[1],o[0]]);if(t==="channelsLast")return o.length===1?e.reshape([1,1,o[0]]):e.reshape([1].concat(o))}else if(r<3)return e;throw new L(`Unsupported input rank by biasAdd: ${e.rank}`)}function ao(r,e,t){return V(()=>(t==null&&(t=Zr()),$t(t),r.add(i_(r.rank,e,t))))}function FT(r,e=1){if(e!==1)throw new Ne(`Support for alpha values other than 1 (${e}) is not implemented yet.`);return Is(r)}function OT(r){return V(()=>me(r,It(r).add(1)))}function wg(r,e,t,o){return V(()=>zw(r,e,t,o))}function PT(r){return V(()=>{let e=Q(.5,O(.2,r));return sr(e,0,1)})}function ul(r,e,t=!1){return t?r():e()}var MT=["fanIn","fanOut","fanAvg"],LT=["normal","uniform","truncatedNormal"];function Uj(r){zi(MT,"FanMode",r)}function jj(r){zi(LT,"Distribution",r)}var lo=class extends J.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},uf=class extends lo{apply(e,t){return ht(e,t)}};uf.className="Zeros";J.registerClass(uf);var Hu=class extends lo{apply(e,t){return Ir(e,t)}};Hu.className="Ones";J.registerClass(Hu);var cf=class extends lo{constructor(e){super();if(typeof e!="object")throw new L(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new L(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return V(()=>O(ue(this.value),Ir(e,t)))}getConfig(){return{value:this.value}}};cf.className="Constant";J.registerClass(cf);var pf=class extends lo{constructor(e){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return As(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};pf.className="RandomUniform";J.registerClass(pf);var mf=class extends lo{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Ne(`randomNormal does not support dType ${t}.`);return up(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};mf.className="RandomNormal";J.registerClass(mf);var ff=class extends lo{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Ne(`truncatedNormal does not support dType ${t}.`);return Lu(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};ff.className="TruncatedNormal";J.registerClass(ff);var df=class extends lo{constructor(e){super();this.gain=e.gain!=null?e.gain:1}apply(e,t){return V(()=>{if(e.length!==2||e[0]!==e[1])throw new L("Identity matrix initializer can only be used for 2D square matrices.");return O(this.gain,Hc(e[0]))})}getConfig(){return{gain:this.gain}}};df.className="Identity";J.registerClass(df);function Hj(r,e="channelsLast"){let t,o;if($t(e),r.length===2)t=r[0],o=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(e==="channelsFirst"){let n=Kn(r,2);t=r[1]*n,o=r[0]*n}else if(e==="channelsLast"){let n=Kn(r,0,r.length-2);t=r[r.length-2]*n,o=r[r.length-1]*n}}else{let n=Kn(r);t=Math.sqrt(n),o=Math.sqrt(n)}return[t,o]}var Lr=class extends lo{constructor(e){super();if(e.scale<0)throw new L(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,Uj(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,jj(this.distribution),this.seed=e.seed}apply(e,t){let o=Hj(e),n=o[0],s=o[1],a=this.scale;if(this.mode==="fanIn"?a/=Math.max(1,n):this.mode==="fanOut"?a/=Math.max(1,s):a/=Math.max(1,(n+s)/2),this.distribution==="normal"){let i=Math.sqrt(a);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Ne(`${this.getClassName()} does not support dType ${t}.`);return Lu(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*a);return As(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Lr.className="VarianceScaling";J.registerClass(Lr);var cp=class extends Lr{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Lr.className}};cp.className="GlorotUniform";J.registerClass(cp);var pp=class extends Lr{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Lr.className}};pp.className="GlorotNormal";J.registerClass(pp);var mp=class extends Lr{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Lr.className}};mp.className="HeNormal";J.registerClass(mp);var fp=class extends Lr{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Lr.className}};fp.className="HeUniform";J.registerClass(fp);var dp=class extends Lr{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Lr.className}};dp.className="LeCunNormal";J.registerClass(dp);var hp=class extends Lr{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Lr.className}};hp.className="LeCunNormal";J.registerClass(hp);var hf=class extends lo{constructor(e){super();if(this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new Ne("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return V(()=>{if(e.length<2)throw new Ne("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);let o=e[0]>e[1]?[e[1],e[0]]:e,n=up(o,0,1,"float32"),s=jw.gramSchmidt(n);return e[0]>e[1]&&(s=s.transpose()),O(this.gain,s)})}getConfig(){return{gain:this.gain,seed:this.seed}}};hf.className="Orthogonal";J.registerClass(hf);var zT={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function BT(r,e={}){return Li(r,J.SerializationMap.getMap().classNameMap,e,"initializer")}function kt(r){return sp(r)}function pt(r){if(typeof r=="string"){let e=r in zT?zT[r]:r;if(e==="GlorotNormal")return new pp;if(e==="GlorotUniform")return new cp;if(e==="HeNormal")return new mp;if(e==="HeUniform")return new fp;if(e==="LeCunNormal")return new dp;if(e==="LeCunUniform")return new hp;{let t={};return t.className=e,t.config={},BT(t)}}else return r instanceof lo?r:BT(r)}function qj(){return new uf}function Kj(){return new Hu}function Xj(r){return new cf(r)}function Yj(r){return new pf(r)}function Zj(r){return new mf(r)}function Jj(r){return new ff(r)}function Qj(r){return new df(r)}function eH(r){return new Lr(r)}function tH(r){return new cp(r)}function rH(r){return new pp(r)}function oH(r){return new mp(r)}function nH(r){return new fp(r)}function sH(r){return new dp(r)}function iH(r){return new hp(r)}function aH(r){return new hf(r)}var W_={};Je(W_,{Layer:()=>Pe,RNN:()=>mo,RNNCell:()=>yl,activation:()=>Iq,add:()=>Fq,alphaDropout:()=>xK,average:()=>Oq,averagePooling1d:()=>U_,averagePooling2d:()=>j_,averagePooling3d:()=>H_,avgPool1d:()=>Uq,avgPool2d:()=>Hq,avgPool3d:()=>Kq,avgPooling1d:()=>jq,avgPooling2d:()=>qq,avgPooling3d:()=>Xq,batchNormalization:()=>Vq,bidirectional:()=>uK,concatenate:()=>Pq,conv1d:()=>xq,conv2d:()=>yq,conv2dTranspose:()=>bq,conv3d:()=>wq,convLstm2d:()=>sK,convLstm2dCell:()=>iK,cropping2D:()=>kq,dense:()=>Nq,depthwiseConv2d:()=>Cq,dot:()=>Bq,dropout:()=>Sq,elu:()=>pq,embedding:()=>Rq,flatten:()=>Aq,gaussianDropout:()=>gK,gaussianNoise:()=>hK,globalAveragePooling1d:()=>Yq,globalAveragePooling2d:()=>Zq,globalMaxPool1d:()=>pK,globalMaxPool2d:()=>mK,globalMaxPooling1d:()=>_1,globalMaxPooling2d:()=>k1,gru:()=>Qq,gruCell:()=>eK,input:()=>Gg,inputLayer:()=>cq,layerNormalization:()=>Gq,leakyReLU:()=>fq,lstm:()=>tK,lstmCell:()=>rK,masking:()=>yK,maxPool1d:()=>fK,maxPool2d:()=>dK,maxPooling1d:()=>v1,maxPooling2d:()=>C1,maxPooling3d:()=>Jq,maximum:()=>Mq,minimum:()=>Lq,multiply:()=>zq,permute:()=>$q,prelu:()=>dq,reLU:()=>mq,repeatVector:()=>Eq,reshape:()=>Dq,rnn:()=>aK,separableConv2d:()=>_q,simpleRNN:()=>oK,simpleRNNCell:()=>nK,softmax:()=>hq,spatialDropout1d:()=>Tq,stackedRNNCells:()=>lK,thresholdedReLU:()=>gq,timeDistributed:()=>cK,upSampling2d:()=>vq,zeroPadding2d:()=>Wq});var lH=0;function _g(){return lH++}var kg={};function cl(r=""){return r in kg||(kg[r]=0),kg[r]+=1,r+kg[r].toString()}function vg(r){return Array.isArray(r)&&Array.isArray(r[0])}function gp(r){return r.length===0?[]:Array.isArray(r[0])?r:[r]}function Fe(r){let e;if(Array.isArray(r)){if(r.length!==1)throw new L(`Expected Tensor length to be 1; got ${r.length}`);e=r[0]}else e=r;return e}function Ze(r){if(Array.isArray(r)&&Array.isArray(r[0])){if(r.length===1)return r=r,r[0];throw new L(`Expected exactly 1 Shape; got ${r.length}`)}else return r}function xp(r){let e=0;for(let t of r)t.shape.length===0?e+=1:e+=t.shape.reduce((o,n)=>o*n);return e}var VT="Variable",gf=class{constructor(e,t="float32",o=VT,n=!0,s=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=_g(),o=o==null?VT:o,this.originalName=gg(o),this.name=xg(this.originalName),this.trainable_=n,this.constraint=s,this.val=Ow(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),uH(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}};function uH(r,e){if(r.shape.toString()!==e.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(r.shape)+" vs. "+JSON.stringify(e.shape))}function xf(r){return r.map(e=>e.read())}function yp(r){r.forEach(e=>{e[0].write(e[1])})}var Nt=class{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}},zr=class{constructor(e,t,o,n,s,a,i){this.dtype=e,this.shape=t,this.sourceLayer=o,this.inputs=n,this.callArgs=s,this.outputTensorIndex=i,this.id=_g(),a!=null&&(this.originalName=gg(a),this.name=xg(this.originalName)),this.rank=t.length}},cH=0,pl=class{constructor(e,t){this.callArgs=t,this.id=cH++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(let o of e.inboundLayers)o!=null&&o.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){let e=[];for(let t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},pH=0,Pe=class extends J.Serializable{constructor(e={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=pH++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){let o=this.getClassName();t=jn(o)+"_"+cl(o)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let o;if(e.batchInputShape!=null)o=e.batchInputShape;else if(e.inputShape!=null){let s=null;e.batchSize!=null&&(s=e.batchSize),o=[s].concat(e.inputShape)}this.batchInputShape=o;let n=e.dtype;n==null&&(n=e.inputDType),n==null&&(n="float32"),this.dtype=n}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new Pr(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new L(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return hr(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return hr(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Io(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new Io(`Layer ${this.name} is not connected, no input to return.`);return hr(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new Io(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Io(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return hr(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=xt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=xt(this.inputSpec);if(e.length!==t.length)throw new L(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let o=0;os.maxNDim)throw new L(`Input ${o} is incompatible with layer ${this.name}: expected max_ndim=${s.maxNDim}, found ndim=${a}`);if(s.minNDim!=null&&a=0?i[u]:i[i.length+u];if(c!=null&&[c,null].indexOf(p)===-1)throw new L(`Input ${o} is incompatible with layer ${this.name}: expected axis ${u} of input shape to have value ${c} but got shape ${i}.`)}}if(s.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(e);let a=[];for(let i of xt(e))a.push(i.shape);this.build(hr(a)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&s&&(this._refCount=1)}if(this.assertInputCompatibility(e),s){let a=this.call(e,t),i=xt(a),l=[];for(let u of i)o.indexOf(u)!==-1&&(u=u.clone()),l.push(u);if(a=hr(l),this.activityRegularizer!=null)throw new Ne("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return a}else{let a=mH(e),i=this.computeOutputShape(a),l,u=fH(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?a[0]:a),i!=null&&i.length>0&&Array.isArray(i[0])?l=i.map((c,p)=>new zr(u,c,this,xt(e),t,this.name,p)):l=new zr(u,i,this,xt(e),t,this.name),this.addInboundNode(e,l,null,null,a,i,t),this._refCount++,this.activityRegularizer!=null)throw new Ne("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return l}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((o,n)=>{o!=null&&e[n]!=null&&e[n]!==o&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new Io(`The layer ${this.name} has never been called and thus has no defined output shape.`);let e=[];for(let t of this.inboundNodes){let o=JSON.stringify(t.outputShapes);e.indexOf(o)===-1&&e.push(o)}if(e.length===1){let t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new Io(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Pr(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return xp(this.weights)}build(e){this.built=!0}getWeights(e=!1){return xf(e?this.trainableWeights:this.weights)}setWeights(e){V(()=>{let t=this.weights;if(t.length!==e.length)throw new L(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;let o=[],n=xf(t);for(let s=0;ss.apply(u.read())),a==null&&(a=!0),a?this._trainableWeights.push(u):this._nonTrainableWeights.push(u),u}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=xt(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(o=>{if(o!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,o,n,s,a,i=null){let l=xt(e);t=xt(t),o=xt(o),n=xt(n),s=gp(s),a=gp(a);let u=[],c=[],p=[];for(let m of l)u.push(m.sourceLayer),c.push(m.nodeIndex),p.push(m.tensorIndex);new pl({outboundLayer:this,inboundLayers:u,nodeIndices:c,tensorIndices:p,inputTensors:l,outputTensors:t,inputMasks:o,outputMasks:n,inputShapes:s,outputShapes:a},i);for(let m=0;me.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount==0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}};function mH(r){r=xt(r);let e=[];for(let t of r)e.push(t.shape);return hr(e)}function fH(r){return"float32"}function l_(r,e,t){if((e==null||t!=null&&t>0)&&(e=r.sourceLayer,t=r.nodeIndex),e.inboundNodes.length===0)return[r];{let o=e.inboundNodes[t];if(o.inboundLayers.length===0)return o.inputTensors;{let n=[];for(let s=0;s0){let n=await Promise.all(e);for(let s=0;sQ(this.totals[n],O(s,o)));this.totals[n]=i,a!=null&&a.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(let o of this.params.metrics)this.totals[o]!=null&&(typeof this.totals[o]=="number"?t[o]=this.totals[o]/this.seen:V(()=>{let n=O(me(1,this.seen),this.totals[o]);t[o]=n,this.totals[o].dispose(),Et(t[o])}))}},Sg=class extends ml{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(let o in t)this.history[o]==null&&(this.history[o]=[]),this.history[o].push(t[o])}async syncData(){let e=[],t=[],o=[];for(let s in this.history){let a=this.history[s];for(let i=0;inew Tg(o,e))}var uo=class{constructor(){}static registerCallbackConstructor(e,t){x.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),uo.checkForDuplicate(t),uo.constructors[e]==null&&(uo.constructors[e]=[]),uo.constructors[e].push(t)}static checkForDuplicate(e){for(let t in uo.constructors)uo.constructors[+t].forEach(n=>{if(n===e)throw new L("Duplicate callback constructor.")})}static clear(){uo.constructors={}}static createCallbacks(e){let t=[];for(let o in uo.constructors){let n=+o;e>=n&&t.push(...uo.constructors[n])}return t.map(o=>new o)}};uo.constructors={};function Eg(r,e,t,o,n,s,a,i,l){let u=new Sg,c=[new WT,...uo.createCallbacks(e)];r!=null&&c.push(...r),c.push(u);let p=new Ng(c);return p.setParams({epochs:t,initialEpoch:o,samples:n,steps:s,batchSize:a,verbose:e,doValidation:i,metrics:l}),{callbackList:p,history:u}}function Qr(r,e={},t=!1){return Li(r,J.SerializationMap.getMap().classNameMap,e,"layer",t)}function yf(r,e){return V(()=>{r.dtype!=="float32"&&(r=r.asType("float32"));let t=ge(ju(r),e,!0),o=va(t.shape,Zt()),n=gt(Yr(t,o));return me(r,n)})}function Gi(r,e){return V(()=>dt(ju(ce(e,r)),-1))}function bp(r,e){return V(()=>dt(It(ce(e,r)),-1))}function fl(r,e){return V(()=>{let t=ce(r,e),o=sr(It(r),Zt(),Number.MAX_VALUE),n=It(me(t,o));return O(100,dt(n,-1))})}function hH(r,e){return V(()=>{let t=sr(e,Zt(),Number.MAX_VALUE),o=ar(Q(1,t)),n=sr(r,Zt(),Number.MAX_VALUE),s=ar(Q(1,n));return dt(ju(ce(o,s)),-1)})}function gH(r,e){return V(()=>{let t=Yr(0,ce(1,O(r,e)));return dt(ju(t),-1)})}function xH(r,e){return V(()=>{let t=Yr(0,ce(1,O(r,e)));return dt(t,-1)})}function yH(r,e){return V(()=>{let t=ge(O(r,e),-1),o=lr(O(ce(1,r),e),-1);return Yr(0,Q(1,ce(o,t)))})}function bH(r,e){return V(()=>{let t=Math.log(2),o=ce(e,r),n=ce(Q(o,Ss(O(-2,o))),t);return dt(n,-1)})}function qu(r,e,t=!1){return V(()=>{if(t)e=Aa(e);else{let o=ge(e,e.shape.length-1,!0);e=me(e,o)}return e=sr(e,Zt(),1-Zt()),He(ge(O(r.toFloat(),ar(e)),e.shape.length-1))})}function wp(r,e,t=!1){return V(()=>{let o=Ns($T(r)).toInt();e=sr(e,Zt(),1-Zt());let n=e.shape,s=vs(o,n[n.length-1]).reshape(n);return qu(s,e,t)})}function wH(r,e){if(!x.arraysEqual(r.shape,e.shape))throw new L(`logits and labels must have the same shape, but got shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(e.shape)}`);return V(()=>{let t=e.relu(),o=e.abs().neg();return t.sub(e.mul(r)).add(o.exp().log1p())})}function _p(r,e){return V(()=>{let t;return t=sr(e,Zt(),1-Zt()),t=ar(me(t,ce(1,t))),dt(wH(r,t),-1)})}function _H(r,e){return V(()=>{let t=sr(r,Zt(),1),o=sr(e,Zt(),1);return ge(O(r,ar(me(t,o))),-1)})}function kH(r,e){return V(()=>{let t=ar(Q(Zt(),e));return dt(ce(e,O(r,t)),-1)})}function bf(r,e){return V(()=>{let t=yf(r,-1),o=yf(e,-1),n=O(t,o);return He(ge(n,-1))})}var wf={meanSquaredError:Gi,meanAbsoluteError:bp,meanAbsolutePercentageError:fl,meanSquaredLogarithmicError:hH,squaredHinge:gH,hinge:xH,categoricalHinge:yH,logcosh:bH,categoricalCrossentropy:qu,sparseCategoricalCrossentropy:wp,binaryCrossentropy:_p,kullbackLeiblerDivergence:_H,poisson:kH,cosineProximity:bf};function Dg(r){if(typeof r=="string"){if(r in wf)return wf[r];let e=`Unknown loss ${r}`;throw r.toLowerCase().includes("softmaxcrossentropy")&&(e=`Unknown loss ${r}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new L(e)}else return r}function _f(r,e){return V(()=>{let t=O(.5,er(e)),o=Fa(Qt(e,t),r.dtype);return dt(vo(r,o),-1)})}function kf(r,e){return V(()=>Fa(vo(nl(r,-1),nl(e,-1)),"float32"))}function UT(r,e){return V(()=>dr(r.equal(1),e.equal(1)).sum().cast("float32"))}function vH(r,e){return V(()=>dr(r.equal(1),e.equal(0)).sum().cast("float32"))}function CH(r,e){return V(()=>dr(r.equal(0),e.equal(1)).sum().cast("float32"))}function u_(r,e){return V(()=>{let t=UT(r,e),o=CH(r,e),n=t.add(o);return Dt(Qt(n,0),t.div(n),0).cast("float32")})}function jT(r,e){return V(()=>{let t=UT(r,e),o=vH(r,e),n=t.add(o);return Dt(Qt(n,0),t.div(n),0).cast("float32")})}function $g(r,e){return _p(r,e)}function Rg(r,e){return r.rank===e.rank&&(r=r.squeeze([r.rank-1])),e=e.argMax(-1),e.dtype!==r.dtype&&(e=e.asType(r.dtype)),vo(r,e).asType("float32")}var IH=Gi,NH=Gi,SH=bp,TH=bp,AH=fl,EH=fl,vf=qu,DH=bf,c_=wp,Fg={binaryAccuracy:_f,categoricalAccuracy:kf,precision:u_,categoricalCrossentropy:vf,sparseCategoricalCrossentropy:c_,mse:IH,MSE:NH,mae:SH,MAE:TH,mape:AH,MAPE:EH,cosine:DH};function HT(r){if(typeof r=="string"&&r in Fg)return Fg[r];if(typeof r!="string"&&r!=null)return r;throw new L(`Unknown metric ${r}`)}function Cf(r){if(Bo(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r=="string")return r;{let e;for(let t of Object.keys(wf))if(wf[t]===r){e=t;break}if(e!==void 0)return e;for(let t of Object.keys(Fg))if(Fg[t]===r){e=t;break}return e!==void 0?e:r.name}}function qT(r){let e={Adagrad:()=>ll.adagrad(.01),Adadelta:()=>ll.adadelta(1,.95,Zt()),Adam:()=>ll.adam(.001,.9,.999,Zt()),Adamax:()=>ll.adamax(.002,.9,.999,Zt(),0),RMSProp:()=>ll.rmsprop(.001,.9,0,Zt()),SGD:()=>ll.sgd(.01)};if(e.adagrad=e.Adagrad,e.adadelta=e.Adadelta,e.adam=e.Adam,e.adamax=e.Adamax,e.rmsprop=e.RMSProp,e.sgd=e.SGD,r in e)return e[r]();throw new L(`Unknown Optimizer ${r}`)}var KT=1*1024*1024;function m_(r,e,t=!1){if(r==null||typeof r!="object"||Object.getPrototypeOf(r)!==Object.prototype||!p_(r))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(t){let o=JSON.stringify(r);o.length>KT&&console.warn(`User-defined metadata of model "${e}" is too large in size (length=${o.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${KT}.`)}}function p_(r){if(r===null)return!0;if(typeof r=="object")if(Object.getPrototypeOf(r)===Object.prototype){let e=Object.keys(r);for(let t of e)if(typeof t!="string"||!p_(r[t]))return!1;return!0}else if(Array.isArray(r)){for(let e of r)if(!p_(e))return!1;return!0}else return!1;else{let e=typeof r;return e==="string"||e==="number"||e==="boolean"}}function XT(r,e,t,o=console.log){let n=RH(r),s=["Layer (type)","Output shape","Param #"];n?(e=e||65,t=t||[.45,.85,1]):(e=e||98,t=t||[.33,.55,.67,1]),t[t.length-1]<=1&&(t=t.map(c=>Math.floor(e*c)));let a;if(!n){s.push("Receives inputs"),a=[];for(let c in r.nodesByDepth)a.push(...r.nodesByDepth[c])}o("_".repeat(e)),Og(s,t,o),o("=".repeat(e));let i=r.layers;for(let c=0;c1||n.length===1&&n[0].inboundLayers.length>1){e=!1;break}o.push(...n)}if(e)for(let n of r.layers){let s=!1;for(let a of n.inboundNodes)if(o.indexOf(a)!==-1)if(s){e=!1;break}else s=!0;if(!e)break}return e}function Og(r,e,t=console.log){let o="";for(let n=0;n0&&(o=o.slice(0,o.length-1)+" "),o+=r[n],o=o.slice(0,e[n]),o+=" ".repeat(e[n]-o.length);t(o)}function FH(r,e,t){let o;try{o=JSON.stringify(r.outputShape)}catch(i){o="multiple"}let n=r.name,s=r.getClassName(),a=[`${n} (${s})`,o,r.countParams().toString()];Og(a,e,t)}function OH(r,e,t,o){let n;try{n=JSON.stringify(r.outputShape)}catch(c){n="multiple"}let s=[];for(let c of r.inboundNodes)if(!(t!=null&&t.length>0&&t.indexOf(c)===-1))for(let p=0;pd.name),l=[],u=e.names();for(let d of i)u.indexOf(d)!==-1?l.push(e.getValue(d)):l.push(null);o!=null&&(o.maxNumTensors=-Infinity,o.minNumTensors=Infinity);let c=i.join(",")+"|"+e.names().join(","),p,m;if(f_[c]==null){let d=MH(a,e);p=d.sorted,m=d.recipientCounts,f_[c]=p,ZT[c]=m}p=f_[c],m={},n||Object.assign(m,ZT[c]);let f=new Fs(e);for(let d=0;do.maxNumTensors&&(o.maxNumTensors=P),P0,()=>"Expected at least one fetch, got none");let t=[],o={};if(r.length===1){let n=JT(r[0],e);t=n.sorted,o=n.recipientMap}else{let n=new Set;for(let s of r){let{sorted:a,recipientMap:i}=JT(s,e);for(let l of a)n.has(l.name)||(t.push(l),n.add(l.name));for(let l in i)o[l]==null&&(o[l]=new Set),i[l].forEach(u=>o[l].add(u))}}return{sorted:t,recipientCounts:zH(o)}}function zH(r){let e={};for(let t in r)e[t]=r[t].size;return e}function JT(r,e){let t=new Set,o=[],n={};for(let i of e.names())t.add(i);let s=[],a=[];for(s.push(r);s.length>0;){let i=s[s.length-1];if(t.has(i.name)){s.pop();continue}let l=a[a.length-1]===s.length-1;if(i.inputs.length===0||l)s.pop(),o.push(i),t.add(i.name),l&&a.pop();else{a.push(s.length-1);for(let u of i.inputs)n[u.name]==null&&(n[u.name]=new Set),n[u.name].add(i.name),!t.has(u.name)&&s.push(u)}}return{sorted:o,recipientMap:n}}function LH(r){let e;if(r.sourceLayer.inboundNodes.length===1)e=r.sourceLayer.output;else{let t=null;for(let o=0;ob.name)}`);qn(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(b=>b.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let b of this.outputs){let w=b.sourceLayer,_=b.nodeIndex,C=b.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(_),this.outputLayersTensorIndices.push(C)}for(let b of this.inputs){let w=b.sourceLayer,_=b.nodeIndex,C=b.tensorIndex;Bo(_===0,"input layer has >1 nodes"),Bo(C===0,"input layer has >1 tensors"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(_),this.inputLayersTensorIndices.push(C)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let b=0;bb.shape),this.internalOutputShapes=this.outputs.map(b=>b.shape);let t={},o={},n={},s={},a={},i=[],l=(b,w,_,C,D,T)=>{(C==null||D==null||T==null)&&(C=b.sourceLayer,D=b.nodeIndex,T=b.tensorIndex);let R=C.inboundNodes[D];if(_.indexOf(R)!==-1)throw new Pr(`The tensor ${b.name} at layer "${C.name}" is part of a cycle.`);if(w.indexOf(R)!==-1)return;this.containerNodes.add(Vo.nodeKey(C,D)),C.id in a||(a[C.id]=Object.keys(a).length),_.indexOf(R)===-1&&_.push(R);let P=R.inboundLayers.length;for(let B=0;B=0;)_.splice(_.indexOf(R),1);i.push(R)},u=[],c=[];for(let b of this.outputs)l(b,u,c);let p=i.slice().reverse();for(let b of p){o[b.id]=b,b.id in t||(t[b.id]=0);let w=t[b.id],_=n[b.outboundLayer.id]==null?0:n[b.outboundLayer.id];w=Math.max(w,_),n[b.outboundLayer.id]=w,s[b.outboundLayer.id]=b.outboundLayer,t[b.id]=w;for(let C=0;CparseInt(b,10)).sort(tf);this.layers=[];for(let b of d){let w=f[b];w.sort((_,C)=>{let D=a[_.id],T=a[C.id];return DT?1:0});for(let _ of w)_ instanceof Vo&&this.internalContainerRefs.push(_),this.layers.push(_)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(tf);let h=this.inputs.slice(),g=[];for(let b of d)for(let w of m[b]){let _=w.outboundLayer;if(_!=null){for(let C of w.inputTensors)if(h.indexOf(C)===-1)throw new Pr(`Graph disconnected: cannot obtain value for tensor ${C} at layer "${_.name}". The following previous layers were accessed without issue: ${g}`);for(let C of w.outputTensors)h.push(C);g.push(_.name)}}this.nodesByDepth=m;let y=this.layers.map(b=>b.name);for(let b of y){let w=y.filter(_=>_===b).length;if(w!==1)throw new Pr(`The name "${b}" is used ${w} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(y))}this.outboundNodes=[],this.inboundNodes=[],new pl({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(b=>null),outputMasks:this.outputs.map(b=>null),inputShapes:this.inputs.map(b=>b.shape),outputShapes:this.outputs.map(b=>b.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount==0){for(let t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(let t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(o=>o.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new L("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(let t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let o of this.layers)t.push(...o.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){let o={},n=0;for(let a of this.layers)for(let i of a.weights){if(o[i.originalName]!=null)throw new L(`Duplicate weight name: ${i.originalName}`);o[i.originalName]=i,n++}let s=[];for(let a in e){let i=a;if(o[a]==null){let l=a.split("/");i=l.slice(0,-2).concat([l[l.length-1]]).join("/")}if(o[i]!=null)s.push([o[i],e[a]]);else if(t)throw new L(`Provided weight data has no target variable: ${a}`);delete o[i]}if(t){let a=[];for(let i in o)a.push(i);if(a.length>0)throw new L(`${a.length} of ${n} weights are not set: ${a}`)}yp(s)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${dl}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let o=Pg(this.updatedConfig());return t?JSON.stringify(o):o}call(e,t){return V(()=>{e=xt(e);let o=new Fs;for(let n=0;n{e=xt(e);let o;return t==null?o=Un(null,e.length):o=xt(t),this.runInternalGraph(e,o)[1]})}computeOutputShape(e){let t=gp(e);if(t.length!==this.inputLayers.length)throw new L(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let o={};for(let i=0;iparseInt(i,10)).sort(tf);if(n.length>1)for(let i of n){let l=this.nodesByDepth[i];for(let u of l){let c=u.outboundLayer;if(this.inputLayers.map(h=>h.id).indexOf(c.id)!==-1)continue;let p=[];for(let h=0;hparseInt(l,10)).sort(tf);for(let l of n){let u=this.nodesByDepth[l];for(let c of u){let p=c.outboundLayer,m=c.inputTensors,f=c.outputTensors,d=new Array;for(let h of m)h.id in o&&d.push(o[h.id]);if(d.length===m.length){let h={},g,y,b,w;if(c.callArgs!=null&&(h=c.callArgs),d.length===1){let[_,C]=d[0];h.mask==null&&(h.mask=C),b=xt(p.call(_,h)),w=xt(p.computeMask(_,C)),g=[_],y=[C]}else g=d.map(_=>_[0]),y=d.map(_=>_[1]),h.mask==null&&(h.mask=y),b=xt(p.call(g,h)),w=xt(p.computeMask(g,y));if(p.activityRegularizer)throw new Ne("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let _=0;_{let e=[];for(let t of this.layers)for(let o=0;o0){let h=[];for(let g=0;g0&&g.apply(hr(b),w)}function u(g){let y=g.name,b=Qr(g,t.customObjects!=null?t.customObjects:{});b.setFastWeightInitDuringBuild(n),s[y]=b,g.inboundNodes.forEach(_=>{if(!(_ instanceof Array))throw new L(`Corrupted configuration, expected array for nodeData: ${_}`);i(b,_)})}let c=t.name,p=t.layers;for(let g of p)u(g);for(;!gT(a);)for(let g of p){let y=s[g.name];if(y.name in a){let b=a[y.name];delete a[y.name];for(let w of b)l(y,w)}}let m=[],f=[],d=t.inputLayers;for(let g of d){let y=g[0],b=g[1],w=g[2];Bo(y in s);let C=s[y].inboundNodes[b].outputTensors;m.push(C[w])}let h=t.outputLayers;for(let g of h){let y=g[0],b=g[1],w=g[2];Bo(y in s);let C=s[y].inboundNodes[b].outputTensors;f.push(C[w])}return new e({inputs:m,outputs:f,name:c})}get stateful(){if(this._stateful)throw new L("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let e of this.layers)if(e.stateful)return!0;return!1}resetStates(){V(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function BH(r,e,t){let o=e.length;if(r==null||Array.isArray(r)&&r.length===0)return e.map(n=>null);if(o===1)return Array.isArray(r)&&r.length===1?r:typeof r=="object"&&e[0]in r?[r[e[0]]]:[r];if(Array.isArray(r)){if(r.length!==o)throw new Error(`Provided ${t} is an array of ${r.length} element(s), but the model has ${o} outputs. Make sure a set of weights is provided for each model output.`);return r}else if(typeof r=="object"&&Object.keys(r).length>0&&typeof r[Object.keys(r)[0]]=="object"){let n=[];return e.forEach(s=>{s in r?n.push(r[s]):n.push(null)}),n}else throw new Error(`The model has multiple (${o}) outputs, so ${t} must be either an array with ${o} elements or an object with ${e} keys. Provided ${t} not understood: ${JSON.stringify(r)}`)}function Mg(r,e){return BH(r,e,"classWeight")}async function Lg(r,e,t,o){if(e!=null||o!=null)throw new Error("Support sampleWeight is not implemented yet");if(t!=null){let n=V(()=>{if(r.shape.length===1)return r.clone();if(r.shape.length===2)if(r.shape[1]>1){let i=1;return r.argMax(i)}else{if(r.shape[1]===1)return r.reshape([r.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${r.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${r.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await n.data());Te(n);let a=[];return s.forEach(i=>{if(t[i]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${i} exists in the data but not in classWeight`);a.push(t[i])}),Vt(a,"float32")}else return null}function QT(r,e){return O(r,e)}var VH=32;function t1(r,e){let t,o,n=e;t=n.xs,o=n.ys,x.assert(t!=null&&o!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${e}`);let s=e1("input",r.inputNames,t),a=e1("output",r.outputNames,o),i=s[0].shape[0];x.assert(s.length===r.inputs.length,()=>`LayersModel has ${r.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(r.inputNames)})`),x.assert(a.length===r.outputs.length,()=>`LayersModel has ${r.outputs.length} outputs, but the dataset provides ${a.length} outputs. (Expected output keys: ${JSON.stringify(r.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${r.inputNames[l]} has ${s[l].shape[0]}; expected ${i} based on input ${r.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${r.outputNames[l]} has ${a[l].shape[0]}; expected ${i} based on input ${r.inputNames[0]}.`);return{xs:s,ys:a}}function e1(r,e,t){if(t instanceof Ve)return[t];if(Array.isArray(t))return x.assert(t.length===e.length,()=>`Received an array of ${t.length} Tensors, but expected ${e.length} to match the ${r} keys ${e}.`),t;{let o=[];for(let n of e){if(t[n]==null)throw new L(`The feature data generated by the dataset lacks the required ${r} key '${n}'.`);o.push(t[n])}return o}}function GH(r){if(r.length===3)throw new Ne("Validation with sample weights is not implemented yet.");return{xs:r[0],ys:r[1]}}async function o1(r,e,t){let o=t.batchesPerEpoch!=null;if(x.assert(r.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),x.assert(t!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),x.assert(t.epochs!=null&&t.epochs>0&&Number.isInteger(t.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${t.epochs}`),x.assert(!o||t.batchesPerEpoch>0&&Number.isInteger(t.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${t.batchesPerEpoch}`),x.assert(t.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),r.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");r.isTraining=!0;try{let n=t.validationData!=null,s,a;if(n)if(r1(t.validationData))x.assert(t.validationBatches==null||t.validationBatches>0&&Number.isInteger(t.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${t.validationBatches}`);else{let g=GH(t.validationData);s=g.xs,a=g.ys}let i=r.makeTrainFunction(),l=r.getDedupedMetricsNames(),u;n?u=l.slice().concat(l.map(g=>"val_"+g)):u=l.slice();let c=Ag(t.callbacks,t.yieldEvery),p=t.verbose==null?1:t.verbose,{callbackList:m,history:f}=Eg(c,p,t.epochs,null,null,WH(e,t),null,n,u);m.setModel(r),r.history=f,await m.onTrainBegin(),r.stopTraining_=!1;let d=t.initialEpoch==null?0:t.initialEpoch,h=await e.iterator();for(;d=t.batchesPerEpoch:w.done){if(n){let _;r1(t.validationData)?_=xt(await r.evaluateDataset(t.validationData,{batches:t.validationBatches})):_=xt(r.evaluate(s,a,{batchSize:t.validationBatchSize==null?VH:t.validationBatchSize,verbose:0}));for(let C=0;C0)throw new Ne("Verbose mode is not implemented yet.");x.assert(!o||t.batches>0&&Number.isInteger(t.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(t.batches)}`);let a=UH(e)?e:await e.iterator(),i=0,l=0;for(;o?l{if(u.value){let{xs:c,ys:p}=t1(r,u.value),m=c.concat(p),f=V(()=>n(m));if(Te(m),l===0)for(let h=0;hQ(s[h],O(d,g))),l>0&&Te(y)}Te(f),i+=d,++l}return s}),u.done){o&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${t.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let u=0;u0&&Number.isInteger(r),()=>`batchSize is required to be a positive integer, but got ${r}`)}function kp(r,e,t){return r==null?[null]:Array.isArray(r)?r.map(o=>Pa(o,e,t-e)):Pa(r,e,t-e)}function Bg(r,e){return V(()=>r==null?null:Array.isArray(r)?r.map(t=>Bg(t,e)):bg(r,e.dtype==="int32"?e:e.toInt()))}function Vg(r,e){let t=[],o=0,n=null;for(;o=r&&(n=r),t.push([o,n]),o=n;return t}async function jH(r,e,t,o,n,s,a,i,l,u,c,p,m,f,d){n==null&&(n=32),s==null&&(s=1),c==null&&(c=!0),m==null&&(m=0);let h=!1;if(l!=null&&u!=null&&(h=!0),d!=null&&(h=!0,f==null))throw new L("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=r.checkNumSamples(t,n,f,"steps_per_epoch"),y;g!=null&&(y=Mr(0,g)),a==null&&(a=1);let{callbackList:b,history:w}=Eg(i,a,s,m,g,f,n,h,p);b.setModel(r),r.history=w,await b.onTrainBegin(),r.stopTraining_=!1;for(let _=m;_{let B=T[R][0],G=T[R][1],U=Pa(D,B,G-B);P.batch=R,P.size=G-B;let j=Bg(t,U),H=e(j);for(let K=0;K0){if(d=!0,o.validationData.length===2)a=o.validationData[0],i=o.validationData[1];else throw o.validationData.length===3?new Ne("validationData including sample weights is not supported yet."):new L(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${o.validationData} is invalid.`);let T=!0,R=await r.standardizeUserData(a,i,null,null,T,p);l=R[0],u=R[1],h=l.concat(u)}else if(o.validationSplit!=null&&o.validationSplit>0&&o.validationSplit<1){d=!0;let T=Math.floor(n[0].shape[0]*(1-o.validationSplit)),R=n[0].shape[0];l=kp(n,T,R),n=kp(n,0,T),u=kp(s,T,R),s=kp(s,0,T),h=l.concat(u)}else o.validationSteps!=null&&(d=!0);let g=n.concat(s).concat(c);r.checkTrainableWeightsConsistency();let y=r.makeTrainFunction(),b=r.getDedupedMetricsNames(),w,_;d?(r.makeTestFunction(),w=r.testFunction,_=b.slice().concat(b.map(T=>"val_"+T))):(w=null,h=[],_=b.slice());let C=Ag(o.callbacks,o.yieldEvery);return await jH(r,y,g,b,p,o.epochs,o.verbose,C,w,h,o.shuffle,_,o.initialEpoch,null,null)}finally{r.isTraining=!1,hl(n,e),hl(s,t),hl(l,a),hl(u,i),c!=null&&Te(c)}}function d_(r){let e=[];r instanceof Ve&&(r=[r]);for(let t=0;tt.push(n.id));else if(e!=null)for(let n in e){let s=e[n];t.push(s.id)}let o=[];if(r instanceof Ve)t.indexOf(r.id)===-1&&o.push(r);else if(Array.isArray(r))r.forEach(n=>{t.indexOf(n.id)===-1&&o.push(n)});else if(r!=null)for(let n in r){let s=r[n];t.indexOf(s.id)===-1&&o.push(s)}o.forEach(n=>{n.isDisposed||n.dispose()})}function HH(r){return r instanceof Ve}function h_(r){return Array.isArray(r)}function i1(r){return!HH(r)&&!h_(r)}function a1(r,e,t,o=!0,n=""){if(e==null||e.length===0){if(r!=null){let a=!1;if(h_(r)&&r.length>0)a=!0;else if(i1(r)){for(let i in r)if(r.hasOwnProperty(i)){a=!0;break}}else a=!0;if(a)throw new L(`Error when checking model ${n} expected no data, but got ${r}`)}return[]}if(r==null)return e.map(a=>null);let s;if(i1(r)){r=r,s=[];for(let a of e){if(r[a]==null)throw new L(`No data provided for "${a}". Need data for each key in: ${e}`);s.push(r[a])}}else if(h_(r)){if(r=r,r.length!==e.length)throw new L(`Error when checking model ${n}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${e.length} Tensor(s), but instead got the following list of Tensor(s): ${r}`);s=r}else{if(r=r,e.length>1)throw new L(`The model ${n} expects ${e.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${r.shape}`);s=[r]}if(s=d_(s),t!=null)for(let a=0;a=0&&u!==c)throw new L(`Error when checking ${n}: expected ${e[a]} to have shape [${t[a]}], but got array with shape [${i.shape}].`)}}return s}function qH(r,e,t){let o=qn(r.map(s=>s.shape[0]));o.sort();let n=qn(e.map(s=>s.shape[0]));if(n.sort(),o.length>1)throw new L(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(r.map(s=>s.shape))}`);if(n.length>1)throw new L(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(s=>s.shape))}`);if(o.length>0&&n.length>0&&!x.arraysEqual(o,n))throw new L(`Input Tensors should have the same number of samples as target Tensors. Found ${o[0]} input sample(s) and ${n[0]} target sample(s).`)}function KH(r,e,t){let o=[Gi,_p,qu];for(let n=0;n1)throw new L(`The model expects ${e.length} ${n} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(r.shape)}.`);s=[r]}if(t!=null)for(let a=0;a[]);let t;if(typeof r=="string"||typeof r=="function")t=[r];else if(Array.isArray(r)||typeof r=="object")t=r;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${r}`);if(Array.isArray(t))return e.map(o=>t);{let o=[];for(let n of e){let s=t.hasOwnProperty(n)?t[n]:[];Array.isArray(s)||(s=[s]),o.push(s)}return o}}var YH="layers-model",No=class extends Vo{constructor(e){super(e);this.isTraining=!1}summary(e,t,o=console.log){if(!this.built)throw new L("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");XT(this,e,t,o)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=qT(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Or))throw new L("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(let a in e.loss)if(this.outputNames.indexOf(a)===-1)throw new L(`Unknown entry in loss dictionary: "${a}". Only expected the following keys: ${this.outputNames}`);for(let a of this.outputNames)e.loss[a]==null&&console.warn(`Output "${a}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${a} during training`),t.push(Dg(e.loss[a]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new L(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);t=e.loss.map(i=>Dg(i))}else{let a=Dg(e.loss);this.outputs.forEach(i=>{t.push(a)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let a=0;a{for(let a=0;a1&&(this.metricsTensors.push([i,a]),this.metricsNames.push(this.outputNames[a]+"_loss"))}});let n=XH(e.metrics,this.outputNames),s=(a,i,l)=>{this.outputNames.length>1&&(i=this.outputNames[a]+"_"+i),this.metricsNames.push(i),this.metricsTensors.push([l,a])};$s("metric",()=>{for(let a=0;a{let c="",p,m,f;for(let d of u){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){let g=this.internalOutputShapes[a];g[g.length-1]===1||this.lossFunctions[a]===_p?["accuracy","acc"].indexOf(d)!==-1?m=_f:["crossentropy","ce"].indexOf(d)!==-1&&(m=$g):this.lossFunctions[a]===wp?["accuracy","acc"].indexOf(d)!==-1?m=Rg:["crossentropy","ce"].indexOf(d)!==-1&&(m=c_):["accuracy","acc"].indexOf(d)!==-1?m=kf:["crossentropy","ce"].indexOf(d)!==-1&&(m=vf);let y;["accuracy","acc"].indexOf(d)!==-1?y="acc":["crossentropy","ce"].indexOf(d)!==-1&&(y="ce"),f=m,p=c+y}else f=HT(d),p=c+Cf(d);let h;$s(p,()=>{h=f}),s(a,p,h)}})(i)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,o={}){let n=o.batchSize==null?32:o.batchSize;zg(n);let s=!0,a=this.standardizeUserDataXY(e,t,s,n);try{let i=a[0].concat(a[1]);this.makeTestFunction();let l=this.testFunction,u=this.testLoop(l,i,n,o.verbose,o.steps);return hr(u)}finally{hl(a[0],e),hl(a[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),n1(this,e,t)}checkNumSamples(e,t,o,n="steps"){let s;if(o!=null){if(s=null,t!=null)throw new L(`If ${n} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?s=e[0].shape[0]:s=e.shape[0];else throw new L(`Either the input data should have a defined shape, or ${n} shoud be specified.`);return s}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new L("`outputs` is an empty Array, which is not allowed.");let o=Array.isArray(t),n=o?t:[t],s=this.retrieveSymbolicTensors(n),a=new Fs;if(e instanceof Ve&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new L(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let l=0;li.name);for(let i=0;i0){let n=[];throw t.forEach((s,a)=>{s==null&&n.push(e[a])}),new L(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(n)}`)}return t}predictLoop(e,t=32,o=!1){return V(()=>{let n=this.checkNumSamples(e);if(o)throw new Ne("Verbose predictLoop() is not implemented yet.");let s=Vg(n,t),a=this.outputs.map(i=>[]);for(let i=0;i{let u=s[i][0],c=s[i][1],p=kp(e,u,c),m=[];if(Array.isArray(p))for(let d=0;da[c].push(u));return hr(a.map(i=>Ye(i,0)))})}predict(e,t={}){let o=d_(e);l1(o,this.inputNames,this.feedInputShapes,!1);try{let n=t.batchSize==null?32:t.batchSize;return zg(n),this.predictLoop(o,n)}finally{hl(o,e)}}predictOnBatch(e){l1(e,this.inputNames,this.feedInputShapes,!0);let t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,o=!0,n){if(this.optimizer_==null)throw new Pr("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let s=[];for(let a=0;a0&&e[0].shape[0]%n!=0)throw new L(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${n}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,o,n,s=!0,a){let[i,l]=this.standardizeUserDataXY(e,t,s,a);if(o!=null)throw new Error("sample weight is not supported yet.");let u=null;if(n!=null){let c=Mg(n,this.outputNames);u=[];for(let p=0;p{let a=this.checkNumSamples(t,o,s,"steps"),i=[];if(n>0)throw new Ne("Verbose mode is not implemented yet.");if(s!=null)throw new Ne("steps mode in testLoop() is not implemented yet");{let l=Vg(a,o),u=Vt(Mr(0,a));for(let c=0;c1&&(s+=`_${Qw(e.slice(0,o),n)}`),t.push(s)}return t}makeTrainFunction(){return e=>{let t=[],o=e.slice(0,this.inputs.length),n=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),a=[],i=()=>{let p=[];for(let h=0;h1&&h{d=Q(d,h)}),d},l=this.collectedTrainableWeights.map(p=>p.read()),u=!0;return[this.optimizer_.minimize(i,u,l)].concat(a)}}makeTestFunction(){this.testFunction=e=>V(()=>{let t=[],o,n=e.slice(0,this.inputs.length),s=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),a=[];for(let u=0;ujn(t))}else{let t=Object.keys(this.loss);e={};let o=this.loss;for(let n of t)if(typeof o[n]=="string")e[n]=jn(o[n]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[jn(Cf(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>jn(Cf(e)));{let e={};for(let t in this.metrics)e[t]=jn(Cf(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let t=Ku(e.optimizer_config),o=Qr(t),n;if(typeof e.loss=="string")n=Ra(e.loss);else if(Array.isArray(e.loss))n=e.loss.map(a=>Ra(a));else if(e.loss!=null){n={};for(let a in e.loss)n[a]=Ra(e.loss[a])}let s;if(Array.isArray(e.metrics))s=e.metrics.map(a=>Ra(a));else if(e.metrics!=null){s={};for(let a in e.metrics)s[a]=Ra(e.metrics[a])}this.compile({loss:n,metrics:s,optimizer:o})}async save(e,t){if(typeof e=="string"){let u=Cr.getSaveHandlers(e);if(u.length===0)throw new L(`Cannot find any save handlers for URL '${e}'`);if(u.length>1)throw new L(`Found more than one (${u.length}) save handlers for URL '${e}'`);e=u[0]}if(e.save==null)throw new L("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let o=await Cr.encodeWeights(this.getNamedWeights(t)),n=!1,s=null,i={modelTopology:this.toJSON(s,n),format:YH,generatedBy:`TensorFlow.js tfjs-layers v${dl}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){i.trainingConfig=this.getTrainingConfig();let u="optimizer",{data:c,specs:p}=await Cr.encodeWeights(await this.optimizer.getWeights(),u);o.specs.push(...p),o.data=Cr.concatenateArrayBuffers([o.data,c])}if(this.userDefinedMetadata!=null){let u=!0;m_(this.userDefinedMetadata,this.name,u),i.userDefinedMetadata=this.userDefinedMetadata}return i.weightData=o.data,i.weightSpecs=o.specs,e.save(i)}setUserDefinedMetadata(e){m_(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};No.className="Model";J.registerClass(No);var g_=class extends No{};g_.className="Functional";J.registerClass(g_);async function u1(r,e){"modelTopology"in r||(r={modelTopology:r}),r=r;let t=r.modelTopology;t.model_config!=null&&(t=t.model_config);let o=Ku(t),n=Qr(o,e);if(r.weightsManifest!=null){let s=await Cr.loadWeights(r.weightsManifest,r.pathPrefix,n.weights.map(i=>i.originalName)),a={};for(let i of n.weights)a[i.originalName]=s[i.originalName];n.loadWeights(a),Te(s)}return n}async function c1(r,e){if(e==null&&(e={}),typeof r=="string"){let t=Cr.getLoadHandlers(r,e);if(t.length===0)t.push(Cr.browserHTTPRequest(r,e));else if(t.length>1)throw new L(`Found more than one (${t.length}) load handlers for URL '${r}'`);r=t[0]}return ZH(r,void 0,e)}async function ZH(r,e,t){if(t==null&&(t={}),r.load==null)throw new L("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let o=await r.load(),n=o.modelTopology;n.model_config!=null&&(n=n.model_config);let s=t.strict==null?!0:t.strict,a=o.weightData!=null&&o.weightSpecs!=null&&s,i=Qr(Ku(n),e,a),l=o.trainingConfig;if(l!=null&&i.loadTrainingConfig(l),o.userDefinedMetadata!=null&&i.setUserDefinedMetadata(o.userDefinedMetadata),o.weightData!=null){if(o.weightSpecs==null)throw new L("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:u,optimizerWeights:c}=JH(o.weightData,o.weightSpecs);i.loadWeights(u,s),i.optimizer!=null&&c.length>0&&await i.optimizer.setWeights(c),Te(u),Te(c.map(p=>p.tensor))}return i}function JH(r,e){let t=Cr.decodeWeights(r,e),o={},n=[];return e.forEach(s=>{s.group==="optimizer"?n.push({name:s.name,tensor:t[s.name]}):o[s.name]=t[s.name]}),{modelWeights:o,optimizerWeights:n}}var Wi=class extends No{constructor(e){super({inputs:[],outputs:[]});if(e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:cl("sequential_"),e.layers!=null)for(let t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(o=>o<0))throw new L(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof Wi||e instanceof No,o;if(t){if(o=e,o.outputs.length!==1)throw new L("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(o.inputs.length!==1)throw new L("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new L("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let n=Cg({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(n)}if(t)this.outputs=o.outputs,this.inputs=o.inputs;else{if(e.inboundNodes.length!==1)throw new L(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new L("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=l_(this.outputs[0])}this.inboundNodes=[],new pl({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Un(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(n=>n.shape),outputShapes:this.outputs[0].shape})}else{let n=e.apply(this.outputs[0]);if(Array.isArray(n))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[n],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(Ze(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new No({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,o=console.log){this.built||this.build(),super.summary(e,t,o)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,o={}){if(!this.built)throw new Pr("The model needs to be compiled before being used.");return this.model.evaluate(e,t,o)}async evaluateDataset(e,t){if(!this.built)throw new Pr("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,o={}){if(!this.built)throw new Pr("The model needs to be compiled before being used.");return this.model.fit(e,t,o)}async fitDataset(e,t){if(!this.built)throw new Pr("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,o={},n=!1){let s,a={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new L("Legacy serialization format not supported yet.");s=t}else x.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),s=t.layers,delete t.layers,a=t;let i=new e(a);if(!(i instanceof Wi))throw new Ne(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let l of s){let c=Qr(l,void 0,n);n&&c.setFastWeightInitDuringBuild(!0),i.add(c)}return i}set stopTraining(e){if(this.model==null)throw new L("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new L("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let e=[];for(let t of this.layers){let o={};o.className=t.getClassName(),o.config=t.getConfig(),e.push(o)}return{name:this.name,layers:e}}};Wi.className="Sequential";J.registerClass(Wi);function p1(r){return new No(r)}function m1(r){return new Wi(r)}function f1(r,e){return e==null&&(e={}),c1(r,e)}function Gg(r){return Cg(r)}function d1(r,e){uo.registerCallbackConstructor(r,e)}var co=class extends J.Serializable{getConfig(){return{}}},x_=class extends co{apply(e,t=1){return FT(e,t)}};x_.className="elu";J.registerClass(x_);var y_=class extends co{apply(e){return Ru(e)}};y_.className="selu";J.registerClass(y_);var b_=class extends co{apply(e){return Nr(e)}};b_.className="relu";J.registerClass(b_);var w_=class extends co{apply(e){return V(()=>Ts(6,Nr(e)))}};w_.className="relu6";J.registerClass(w_);var __=class extends co{apply(e){return e}};__.className="linear";J.registerClass(__);var k_=class extends co{apply(e){return qr(e)}};k_.className="sigmoid";J.registerClass(k_);var v_=class extends co{apply(e){return PT(e)}};v_.className="hardSigmoid";J.registerClass(v_);var C_=class extends co{apply(e){return Ss(e)}};C_.className="softplus";J.registerClass(C_);var I_=class extends co{apply(e){return OT(e)}};I_.className="softsign";J.registerClass(I_);var N_=class extends co{apply(e){return Fi(e)}};N_.className="tanh";J.registerClass(N_);var If=class extends co{apply(e,t=-1){return Aa(e,t)}};If.className="softmax";J.registerClass(If);var S_=class extends co{apply(e,t=-1){return Su(e,t)}};S_.className="logSoftmax";J.registerClass(S_);var T_=class extends co{apply(e,t=1){return V(()=>qr(e.mul(t)).mul(e))}};T_.className="swish";J.registerClass(T_);function Os(r){return r.getClassName()}function A_(r,e={}){return Li(r,J.SerializationMap.getMap().classNameMap,e,"activation")}function Ps(r){if(r==null){let e={};return e.className="linear",e.config={},A_(e)}if(typeof r=="string"){let e={};return e.className=r,e.config={},A_(e)}else return r instanceof co?r:A_(r)}function E_(r){if(r!=null&&typeof r!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${r}`)}var D_=class extends J.Serializable{},Yu=class extends D_{constructor(e){super();E_(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return V(()=>{let t=ht([1]);return this.hasL1&&(t=Q(t,ge(O(this.l1,It(e))))),this.hasL2&&(t=Q(t,ge(O(this.l2,ju(e))))),t.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};Yu.className="L1L2";J.registerClass(Yu);function h1(r){return E_(r),new Yu({l1:r!=null?r.l1:null,l2:0})}function g1(r){return E_(r),new Yu({l2:r!=null?r.l2:null,l1:0})}var x1={l1l2:"L1L2"};function st(r){return sp(r)}function y1(r,e={}){return Li(r,J.SerializationMap.getMap().classNameMap,e,"regularizer")}function yt(r){if(r==null)return null;if(typeof r=="string"){let t={className:r in x1?x1[r]:r,config:{}};return y1(t)}else return r instanceof D_?r:y1(r)}var Nf=class extends Pe{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Fe(e);let o=Nr(e);return this.maxValue!=null&&(o=sr(o,0,this.maxValue)),o}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};Nf.className="ReLU";J.registerClass(Nf);var Sf=class extends Pe{constructor(e){super(e==null?{}:e);this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){let o=Fe(e);return Ca(o,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};Sf.className="LeakyReLU";J.registerClass(Sf);var Tf=class extends Pe{constructor(e){super(e==null?{}:e);if(this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=pt(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=yt(e.alphaRegularizer),this.alphaConstraint=Ft(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new L(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=Ze(e);let t=e.slice(1);if(this.sharedAxes!=null)for(let n of this.sharedAxes)t[n-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let o={};if(this.sharedAxes!=null)for(let n=1;n($t(e),e==="channelsFirst"?je(r,[0,2,3,1]):r))}function $_(r,e){return V(()=>($t(e),e==="channelsFirst"?je(r,[0,2,3,4,1]):r))}function QH(r,e,t,o=1,n="valid",s,a=1){return V(()=>{if(s==null&&(s=Zr()),$t(s),r.shape.length!==3)throw new L(`The input of a conv1dWithBias operation should be 3, but is ${r.shape.length} instead.`);if(e.shape.length!==3)throw new L(`The kernel for a conv1dWithBias operation should be 3, but is ${e.shape.length} instead`);if(t!=null&&t.shape.length!==1)throw new L(`The bias for a conv1dWithBias operation should be 1, but is ${e.shape.length} instead`);if(s==="channelsFirst"&&(r=je(r,[0,2,1])),n==="causal")throw new Ne("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let i=wu(r,e,o,n==="same"?"same":"valid","NWC",a);return t!=null&&(i=ao(i,t)),i})}function b1(r,e,t,o=[1,1],n="valid",s,a,i=null){return V(()=>{if(s==null&&(s=Zr()),$t(s),r.rank!==3&&r.rank!==4)throw new L(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${r.rank}.`);if(e.rank!==3&&e.rank!==4)throw new L(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${r.rank}.`);let l=Rf(r,s);if(n==="causal")throw new Ne("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=Gn.conv2d({x:l,filter:e,strides:o,pad:n==="same"?"same":"valid",dilations:a,dataFormat:"NHWC",bias:t,activation:i}),s==="channelsFirst"&&(l=je(l,[0,3,1,2])),l})}function eq(r,e,t,o=[1,1,1],n="valid",s,a){return V(()=>{if(s==null&&(s=Zr()),$t(s),r.rank!==4&&r.rank!==5)throw new L(`conv3dWithBias expects input to be of rank 4 or 5, but received ${r.rank}.`);if(e.rank!==4&&e.rank!==5)throw new L(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${r.rank}.`);let i=$_(r,s);if(n==="causal")throw new Ne("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return i=Sm(i,e,o,n==="same"?"same":"valid","NDHWC",a),t!=null&&(i=ao(i,t)),s==="channelsFirst"&&(i=je(i,[0,4,1,2,3])),i})}var vp=class extends Pe{constructor(e,t){super(t);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",vp.verifyArgs(t),this.rank=e,Wt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Ne(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=gl(t.kernelSize,e,"kernelSize"),this.strides=gl(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,Jr(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,$t(this.dataFormat),this.activation=Ps(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=pt(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Ft(t.biasConstraint),this.biasRegularizer=yt(t.biasRegularizer),this.activityRegularizer=yt(t.activityRegularizer),this.dilationRate=gl(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new L(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new L(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new L(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(Bo("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!dg(e.kernelSize,"number",1,3))throw new L(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){let e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:Os(this.activation),useBias:this.useBias,biasInitializer:kt(this.biasInitializer),biasRegularizer:st(this.biasRegularizer),activityRegularizer:st(this.activityRegularizer),biasConstraint:Rt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},Zu=class extends vp{constructor(e,t){super(e,t);this.kernel=null,Zu.verifyArgs(t),this.filters=t.filters,Wt(this.filters,"filters"),this.kernelInitializer=pt(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Ft(t.kernelConstraint),this.kernelRegularizer=yt(t.kernelRegularizer)}build(e){e=Ze(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new L(`The channel dimension of the input should be defined. Found ${e[t]}`);let o=e[t],n=this.kernelSize.concat([o,this.filters]);this.kernel=this.addWeight("kernel",n,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:o}}],this.built=!0}call(e,t){return V(()=>{e=Fe(e);let o,n=this.bias==null?null:this.bias.read(),s=hg(this.activation.getClassName());if(s!=null&&this.rank===2)o=b1(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)o=QH(e,this.kernel.read(),n,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)o=b1(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)o=eq(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Ne("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(o=this.activation.apply(o))}return o})}computeOutputShape(e){e=Ze(e);let t=[],o=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let s=0;s 0 but got ${JSON.stringify(e.filters)}`)}},xl=class extends Zu{constructor(e){super(2,e);xl.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!dg(e.kernelSize,"number",1,2))throw new L(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};xl.className="Conv2D";J.registerClass(xl);var Ju=class extends Zu{constructor(e){super(3,e);Ju.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new L(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};Ju.className="Conv3D";J.registerClass(Ju);var Ff=class extends xl{constructor(e){super(e);if(this.inputSpec=[new Nt({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new L(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Ze(e),e.length!==4)throw new L("Input should have rank 4; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new L("The channel dimension of the inputs should be defined. Found `None`.");let o=e[t],n=this.kernelSize.concat([this.filters,o]);this.kernel=this.addWeight("kernel",n,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new Nt({ndim:4,axes:{[t]:o}})],this.built=!0}call(e,t){return V(()=>{let o=Fe(e);if(o.shape.length!==4)throw new L(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${o.shape.length}`);let n=o.shape,s=n[0],a,i;this.dataFormat==="channelsFirst"?(a=2,i=3):(a=1,i=2);let l=n[a],u=n[i],c=this.kernelSize[0],p=this.kernelSize[1],m=this.strides[0],f=this.strides[1],d=$f(l,m,c,this.padding),h=$f(u,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!=="channelsLast"&&(o=je(o,[0,2,3,1]));let y=_u(o,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(y=je(y,[0,3,1,2])),this.bias!=null&&(y=ao(y,this.bias.read(),this.dataFormat)),this.activation!=null&&(y=this.activation.apply(y)),y})}computeOutputShape(e){e=Ze(e);let t=e.slice(),o,n,s;this.dataFormat==="channelsFirst"?(o=1,n=2,s=3):(o=3,n=1,s=2);let a=this.kernelSize[0],i=this.kernelSize[1],l=this.strides[0],u=this.strides[1];return t[o]=this.filters,t[n]=$f(t[n],l,a,this.padding),t[s]=$f(t[s],u,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Ff.className="Conv2DTranspose";J.registerClass(Ff);var R_=class extends Zu{constructor(e,t){super(e,t);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new L("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new L("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new L(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=pt(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=yt(t.depthwiseRegularizer),this.depthwiseConstraint=Ft(t.depthwiseConstraint),this.pointwiseInitializer=pt(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=yt(t.pointwiseRegularizer),this.pointwiseConstraint=Ft(t.pointwiseConstraint)}build(e){if(e=Ze(e),e.length{e=Fe(e);let o;if(this.rank===1)throw new Ne("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=je(e,[0,2,3,1])),o=Gm(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(o=ao(o,this.bias.read(),this.dataFormat)),this.activation!=null&&(o=this.activation.apply(o)),this.dataFormat==="channelsFirst"&&(o=je(o,[0,3,1,2])),o})}getConfig(){let e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=kt(this.depthwiseInitializer),e.pointwiseInitializer=kt(this.pointwiseInitializer),e.depthwiseRegularizer=st(this.depthwiseRegularizer),e.pointwiseRegularizer=st(this.pointwiseRegularizer),e.depthwiseConstraint=Rt(this.depthwiseConstraint),e.pointwiseConstraint=Rt(this.pointwiseConstraint),e}};R_.className="SeparableConv";var Of=class extends R_{constructor(e){super(2,e)}};Of.className="SeparableConv2D";J.registerClass(Of);var Qu=class extends Zu{constructor(e){super(1,e);Qu.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){let e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!dg(e.kernelSize,"number",1,1))throw new L(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};Qu.className="Conv1D";J.registerClass(Qu);var Pf=class extends Pe{constructor(e){super(e);typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return V(()=>{if(e=Fe(e),this.dataFormat==="channelsLast"){let o=lf(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return lf(o,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let o=lf(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return lf(o,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Pf.className="Cropping2D";J.registerClass(Pf);var Mf=class extends Pe{constructor(e){super(e);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,$t(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,NT(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){let t=e[2]==null?null:this.size[0]*e[2],o=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,o]}else{let t=e[1]==null?null:this.size[0]*e[1],o=e[2]==null?null:this.size[1]*e[2];return[e[0],t,o,e[3]]}}call(e,t){return V(()=>{let o=Fe(e),n=o.shape;if(this.dataFormat==="channelsFirst"){o=je(o,[0,2,3,1]);let s=this.size[0]*n[2],a=this.size[1]*n[3],i=this.interpolation==="nearest"?o.resizeNearestNeighbor([s,a]):o.resizeBilinear([s,a]);return je(i,[0,3,1,2])}else{let s=this.size[0]*n[1],a=this.size[1]*n[2];return this.interpolation==="nearest"?o.resizeNearestNeighbor([s,a]):o.resizeBilinear([s,a])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Mf.className="UpSampling2D";J.registerClass(Mf);function tq(r,e,t=[1,1],o="valid",n,s){return V(()=>{n==null&&(n=Zr()),$t(n);let a=Rf(r,n);if(r.rank!==4)throw new L(`Input for depthwiseConv2d is required to be 4-D, but is instead ${r.rank}-D`);if(e.rank!==4)throw new L(`depthwiseKernel is required to be 4-D, but is instead ${e.rank}-D`);return a=Cs(a,e,t,o==="same"?"same":"valid","NHWC",s),n==="channelsFirst"&&(a=je(a,[0,3,1,2])),a})}var Lf=class extends vp{constructor(e){super(2,e);this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=pt(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Ft(e.depthwiseConstraint),this.depthwiseRegularizer=yt(e.depthwiseRegularizer)}build(e){if(e=Ze(e),e.length<4)throw new L(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);let t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new L(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);let o=e[t],n=[this.kernelSize[0],this.kernelSize[1],o,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",n,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[o*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return V(()=>{e=Fe(e);let o=tq(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(o=ao(o,this.bias.read(),this.dataFormat)),this.activation!=null&&(o=this.activation.apply(o)),o})}computeOutputShape(e){e=Ze(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],o=this.dataFormat==="channelsFirst"?e[3]:e[2],n=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,s=po(t,this.kernelSize[0],this.padding,this.strides[0]),a=po(o,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],n,s,a]:[e[0],s,a,n]}getConfig(){let e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=kt(this.depthwiseInitializer),e.depthwiseRegularizer=st(this.depthwiseRegularizer),e.depthwiseConstraint=Rt(this.depthwiseRegularizer),e}};Lf.className="DepthwiseConv2D";J.registerClass(Lf);function F_(r,e,t,o){if(Array.isArray(r)){if(e!=null||t!=null)throw new L("When inputs is an array, neither initialState or constants should be provided");o!=null&&(t=r.slice(r.length-o,r.length),r=r.slice(0,r.length-o)),r.length>1&&(e=r.slice(1,r.length)),r=r[0]}function n(s){return s==null||Array.isArray(s)?s:[s]}return e=n(e),t=n(t),{inputs:r,initialState:e,constants:t}}function O_(r,e,t,o=!1,n,s,a=!1,i=!1){return V(()=>{let l=e.shape.length;if(l<3)throw new L(`Input should be at least 3D, but is ${l}D.`);let u=[1,0].concat(Mr(2,l));if(e=je(e,u),s!=null)throw new Ne("The rnn() functoin of the deeplearn.js backend does not support constants yet.");a&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),n!=null&&(n=n.asType("bool").asType("float32"),n.rank===l-1&&(n=ir(n,-1)),n=je(n,u)),o&&(e=Ht(e,0),n!=null&&(n=Ht(n,0)));let c=[],p,m=t,f=e.shape[0],d=cr(e),h;n!=null&&(h=cr(n));for(let y=0;yr(b,m));if(n==null)p=w[0],m=w[1];else{let _=V(()=>{let C=h[y],D=er(C).sub(C),T=w[0].mul(C).add(m[0].mul(D)),R=m.map((P,B)=>w[1][B].mul(C).add(P.mul(D)));return{output:T,newStates:R}});p=_.output,m=_.newStates}i&&c.push(p)}let g;return i&&(g=Bt(c,1)),[p,g,m]})}var mo=class extends Pe{constructor(e){super(e);let t;if(e.cell==null)throw new L("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new Cp({cells:e.cell}):t=e.cell,t.stateSize==null)throw new L("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new Nt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Mr(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){vg(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);let o=t[0],n;if(this.returnSequences?n=[e[0],e[1],o]:n=[e[0],o],this.returnState){let s=[];for(let a of t)s.push([e[0],a]);return[n].concat(s)}else return n}computeMask(e,t){return V(()=>{Array.isArray(t)&&(t=t[0]);let o=this.returnSequences?t:null;if(this.returnState){let n=this.states.map(s=>null);return[o].concat(n)}else return o})}get states(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let o=0;oi.shape[i.shape.length-1]),a))throw new L(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=a.map(i=>new Nt({shape:[null,i]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){V(()=>{if(!this.stateful)throw new Io("Cannot call resetStates() on an RNN Layer that is not stateful.");let o=this.inputSpec[0].shape[0];if(o==null)throw new L("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(n=>ht([o,n])):this.states_=[ht([o,this.cell.stateSize])];else if(e==null)Te(this.states_),this.keptStates!=null&&(Te(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(n=>ht([o,n])):this.states_[0]=ht([o,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new L(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):Te(this.states_);for(let n=0;nEt(n.clone()))})}apply(e,t){let o=t==null?null:t.initialState,n=t==null?null:t.constants;t==null&&(t={});let s=F_(e,o,n,this.numConstants);e=s.inputs,o=s.initialState,n=s.constants;let a=[],i=[];if(o!=null){t.initialState=o,a=a.concat(o),this.stateSpec=[];for(let u of o)this.stateSpec.push(new Nt({shape:u.shape}));i=i.concat(this.stateSpec)}if(n!=null&&(t.constants=n,a=a.concat(n),this.numConstants=n.length),a[0]instanceof zr){let u=[e].concat(a),c=this.inputSpec.concat(i),p=this.inputSpec;this.inputSpec=c;let m=super.apply(u,t);return this.inputSpec=p,m}else return super.apply(e,t)}call(e,t){return V(()=>{let o=t==null?null:t.mask,n=t==null?null:t.training,s=t==null?null:t.initialState;e=Fe(e),s==null&&(this.stateful?s=this.states_:s=this.getInitialState(e));let a=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(s.length!==a)throw new L(`RNN Layer has ${a} state(s) but was passed ${s.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let i={training:n},u=O_((d,h)=>{let g=this.cell.call([d].concat(h),i);return[g[0],g.slice(1)]},e,s,this.goBackwards,o,null,this.unroll,this.returnSequences),c=u[0],p=u[1],m=u[2];this.stateful&&this.resetStates(m,n);let f=this.returnSequences?p:c;return this.returnState?[f].concat(m):f})}getInitialState(e){return V(()=>{let t=ht(e.shape);return t=ge(t,[1,2]),t=Oa(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(o=>o>1?yg(t,[1,o]):t):this.cell.stateSize>1?[yg(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){let e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);let o=this.cell.getConfig();return this.getClassName()===mo.className&&(t.cell={className:this.cell.getClassName(),config:o}),Object.assign({},o,e,t)}static fromConfig(e,t,o={}){let n=t.cell,s=Qr(n,o);return new e(Object.assign(t,{cell:s}))}};mo.className="RNN";J.registerClass(mo);var yl=class extends Pe{},Ip=class extends yl{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Wt(this.units,"units"),this.activation=Ps(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=pt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=pt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=pt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=yt(e.kernelRegularizer),this.recurrentRegularizer=yt(e.recurrentRegularizer),this.biasRegularizer=yt(e.biasRegularizer),this.kernelConstraint=Ft(e.kernelConstraint),this.recurrentConstraint=Ft(e.recurrentConstraint),this.biasConstraint=Ft(e.biasConstraint),this.dropout=Uu([1,Rs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Uu([1,Rs([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Ze(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return V(()=>{if(e=e,e.length!==2)throw new L(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let o=e[1];e=e[0];let n=t.training==null?!1:t.training;0er(e),rate:this.dropout,training:n})),0er(o),rate:this.recurrentDropout,training:n}));let s,a=this.dropoutMask,i=this.recurrentDropoutMask;a!=null?s=Xn(O(e,a),this.kernel.read()):s=Xn(e,this.kernel.read()),this.bias!=null&&(s=ao(s,this.bias.read())),i!=null&&(o=O(o,i));let l=Q(s,Xn(o,this.recurrentKernel.read()));return this.activation!=null&&(l=this.activation.apply(l)),[l,l]})}getConfig(){let e=super.getConfig(),t={units:this.units,activation:Os(this.activation),useBias:this.useBias,kernelInitializer:kt(this.kernelInitializer),recurrentInitializer:kt(this.recurrentInitializer),biasInitializer:kt(this.biasInitializer),kernelRegularizer:st(this.kernelRegularizer),recurrentRegularizer:st(this.recurrentRegularizer),biasRegularizer:st(this.biasRegularizer),activityRegularizer:st(this.activityRegularizer),kernelConstraint:Rt(this.kernelConstraint),recurrentConstraint:Rt(this.recurrentConstraint),biasConstraint:Rt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}};Ip.className="SimpleRNNCell";J.registerClass(Ip);var zf=class extends mo{constructor(e){e.cell=new Ip(e),super(e)}call(e,t){return V(()=>{this.cell.dropoutMask!=null&&(Te(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Te(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let o=t==null?null:t.mask,n=t==null?null:t.training,s=t==null?null:t.initialState;return super.call(e,{mask:o,training:n,initialState:s})})}static fromConfig(e,t){return new e(t)}};zf.className="SimpleRNN";J.registerClass(zf);var Np=class extends yl{constructor(e){super(e);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new L("GRUCell does not support reset_after parameter set to true.");this.units=e.units,Wt(this.units,"units"),this.activation=Ps(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Ps(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=pt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=pt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=pt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=yt(e.kernelRegularizer),this.recurrentRegularizer=yt(e.recurrentRegularizer),this.biasRegularizer=yt(e.biasRegularizer),this.kernelConstraint=Ft(e.kernelConstraint),this.recurrentConstraint=Ft(e.recurrentConstraint),this.biasConstraint=Ft(e.biasConstraint),this.dropout=Uu([1,Rs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Uu([1,Rs([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Ze(e);let t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return V(()=>{if(e=e,e.length!==2)throw new L(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);let o=t.training==null?!1:t.training,n=e[1];e=e[0],0er(e),rate:this.dropout,training:o,count:3})),0er(n),rate:this.recurrentDropout,training:o,count:3}));let s=this.dropoutMask,a=this.recurrentDropoutMask,i,l,u;0{this.cell.dropoutMask!=null&&(Te(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Te(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let o=t==null?null:t.mask,n=t==null?null:t.training,s=t==null?null:t.initialState;return super.call(e,{mask:o,training:n,initialState:s})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Bf.className="GRU";J.registerClass(Bf);var bl=class extends yl{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Wt(this.units,"units"),this.activation=Ps(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Ps(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=pt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=pt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=pt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=yt(e.kernelRegularizer),this.recurrentRegularizer=yt(e.recurrentRegularizer),this.biasRegularizer=yt(e.biasRegularizer),this.kernelConstraint=Ft(e.kernelConstraint),this.recurrentConstraint=Ft(e.recurrentConstraint),this.biasConstraint=Ft(e.biasConstraint),this.dropout=Uu([1,Rs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Uu([1,Rs([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=Ze(e);let o=e[e.length-1];this.kernel=this.addWeight("kernel",[o,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let n;if(this.useBias){if(this.unitForgetBias){let s=this.biasInitializer,a=this.units;n=new(t=class extends lo{apply(l,u){let c=s.apply([a]),p=new Hu().apply([a]),m=s.apply([a*2]);return s_(s_(c,p),m)}},t.className="CustomInit",t)}else n=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,n,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return V(()=>{let o=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new L(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=e[1],s=e[2];e=e[0],0er(e),rate:this.dropout,training:o,count:4})),0er(n),rate:this.recurrentDropout,training:o,count:4}));let a=this.dropoutMask,i=this.recurrentDropoutMask,l,u,c,p;0{this.cell.dropoutMask!=null&&(Te(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Te(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let o=t==null?null:t.mask,n=t==null?null:t.training,s=t==null?null:t.initialState;return super.call(e,{mask:o,training:n,initialState:s})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Vf.className="LSTM";J.registerClass(Vf);var Cp=class extends yl{constructor(e){super(e);this.cells=e.cells}get stateSize(){let e=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return V(()=>{e=e;let o=e.slice(1),n=[];for(let i of this.cells.slice().reverse())Array.isArray(i.stateSize)?n.push(o.splice(0,i.stateSize.length)):n.push(o.splice(0,1));n.reverse();let s=[],a;for(let i=0;i{$s(`RNNCell_${n}`,()=>{o.build(e),Array.isArray(o.stateSize)?t=o.stateSize[0]:t=o.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){let e=super.getConfig(),t=s=>({className:s.getClassName(),config:s.getConfig()}),n={cells:this.cells.map(t)};return Object.assign({},e,n)}static fromConfig(e,t,o={}){let n=[];for(let s of t.cells)n.push(Qr(s,o));return new e({cells:n})}get trainableWeights(){if(!this.trainable)return[];let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let o of this.cells)t.push(...o.trainableWeights);return t.concat(e)}return e}getWeights(){let e=[];for(let t of this.cells)e.push(...t.weights);return xf(e)}setWeights(e){let t=[];for(let o of this.cells){let n=o.weights.length,s=e.splice(n);for(let a=0;awg(e(),t),a=()=>ul(s,e,o);return!n||n<=1?Et(a().clone()):Array(n).fill(void 0).map(a).map(l=>Et(l.clone()))}var rq=function(r,e){var t={};for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&e.indexOf(o)<0&&(t[o]=r[o]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,o=Object.getOwnPropertySymbols(r);n{if(this.cell.dropoutMask!=null&&(Te(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Te(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new L("ConvRNN2D cell does not support constants");let o=t==null?null:t.mask,n=t==null?null:t.training,s=t==null?null:t.initialState;return super.call(e,{mask:o,training:n,initialState:s})})}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return V(()=>{let{stateSize:t}=this.cell,o=e.shape,n=this.computeSingleOutputShape(o),s=[n[0],...n.slice(2)],a=ht(s);return Array.isArray(t)?Array(t.length).fill(a):[a]})}resetStates(e,t=!1){V(()=>{if(!this.stateful)throw new Io("Cannot call resetStates() on an RNN Layer that is not stateful.");let o=this.inputSpec[0].shape,n=this.computeSingleOutputShape(o),s=[n[0],...n.slice(2)];if(o[0]==null)throw new L("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>ht(s)):this.states_=[ht(s)];else if(e==null)Te(this.states_),this.keptStates!=null&&(Te(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>ht(s)):this.states_[0]=ht(s);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new L(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):Te(this.states_);for(let i=0;iEt(i.clone()))})}computeSingleOutputShape(e){let{dataFormat:t,filters:o,kernelSize:n,padding:s,strides:a,dilationRate:i}=this.cell,l=t==="channelsFirst",u=e[l?3:2],c=e[l?4:3],p=po(u,n[0],s,a[0],i[0]),m=po(c,n[1],s,a[1],i[1]);return[...e.slice(0,2),...l?[o,p,m]:[p,m,o]]}};P_.className="ConvRNN2D";var Sp=class extends bl{constructor(e){let{filters:t,kernelSize:o,strides:n,padding:s,dataFormat:a,dilationRate:i}=e;super(Object.assign({},e,{units:t}));this.filters=t,Wt(this.filters,"filters"),this.kernelSize=gl(o,2,"kernelSize"),this.kernelSize.forEach(l=>Wt(l,"kernelSize")),this.strides=gl(n||1,2,"strides"),this.strides.forEach(l=>Wt(l,"strides")),this.padding=s||"valid",Jr(this.padding),this.dataFormat=a||"channelsLast",$t(this.dataFormat),this.dilationRate=gl(i||1,2,"dilationRate"),this.dilationRate.forEach(l=>Wt(l,"dilationRate"))}build(e){var t;e=Ze(e);let o=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[o]==null)throw new L(`The channel dimension of the input should be defined. Found ${e[o]}`);let n=e[o],s=4,a=this.kernelSize.concat([n,this.filters*s]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let i=this.kernelSize.concat([this.filters,this.filters*s]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let l;if(this.unitForgetBias){let u=this.biasInitializer,c=this.filters;l=new(t=class extends lo{apply(m,f){let d=u.apply([c]),h=Ir([c]),g=u.apply([c*2]);return lp([d,h,g])}},t.className="CustomInit",t)}else l=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*s],null,l,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return V(()=>{if(e.length!==3)throw new L(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let o=t.training||!1,n=e[0],s=e[1],a=e[2],i=4;0er(n),rate:this.dropout,training:o,count:i}));let l=this.dropoutMask,u=(te,ie,le)=>!ie||!ie[le]?te:O(ie[le],te),c=u(n,l,0),p=u(n,l,1),m=u(n,l,2),f=u(n,l,3);0er(s),rate:this.recurrentDropout,training:o,count:i}));let d=this.recurrentDropoutMask,h=u(s,d,0),g=u(s,d,1),y=u(s,d,2),b=u(s,d,3),w=3,[_,C,D,T]=ur(this.kernel.read(),i,w),[R,P,B,G]=this.useBias?ur(this.bias.read(),i):[null,null,null,null];c=this.inputConv(c,_,R,this.padding),p=this.inputConv(p,C,P,this.padding),m=this.inputConv(m,D,B,this.padding),f=this.inputConv(f,T,G,this.padding);let[U,j,H,K]=ur(this.recurrentKernel.read(),i,w);h=this.recurrentConv(h,U),g=this.recurrentConv(g,j),y=this.recurrentConv(y,H),b=this.recurrentConv(b,K);let X=this.recurrentActivation.apply(Q(c,h)),oe=this.recurrentActivation.apply(Q(p,g)),Y=Q(O(oe,a),O(X,this.activation.apply(Q(m,y)))),re=O(this.recurrentActivation.apply(Q(f,b)),this.activation.apply(Y));return[re,re,Y]})}getConfig(){let e=super.getConfig(),{units:t}=e,o=rq(e,["units"]),n={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},o,n)}inputConv(e,t,o,n){let s=Kr(e,t,this.strides,n||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return o?ao(s,o,this.dataFormat):s}recurrentConv(e,t){return Kr(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Sp.className="ConvLSTM2DCell";J.registerClass(Sp);var Gf=class extends P_{constructor(e){let t=new Sp(e);super(Object.assign({},e,{cell:t}))}static fromConfig(e,t){return new e(t)}};Gf.className="ConvLSTM2D";J.registerClass(Gf);var Tp=class extends Pe{constructor(e){super(e);this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;let t=e.shape,o=[];for(let n=0;n{this.invokeCallHook(e,t);let o=Fe(e);if(0wg(o,this.rate,s,this.seed),()=>o,n)}return e})}getConfig(){let e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}};Tp.className="Dropout";J.registerClass(Tp);var Wf=class extends Tp{constructor(e){super(e);this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};Wf.className="SpatialDropout1D";J.registerClass(Wf);var Uf=class extends Pe{constructor(e){super(e);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,Wt(this.units,"units"),this.activation=Ps(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=pt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=pt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Ft(e.kernelConstraint),this.biasConstraint=Ft(e.biasConstraint),this.kernelRegularizer=yt(e.kernelRegularizer),this.biasRegularizer=yt(e.biasRegularizer),this.activityRegularizer=yt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=Ze(e);let t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=Ze(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return V(()=>{this.invokeCallHook(e,t);let o=Fe(e),n=hg(this.activation.getClassName()),s;return n!=null?s=Xn(o,this.kernel.read(),n,this.bias?this.bias.read():null):(s=Xn(o,this.kernel.read()),this.bias!=null&&(s=ao(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let e={units:this.units,activation:Os(this.activation),useBias:this.useBias,kernelInitializer:kt(this.kernelInitializer),biasInitializer:kt(this.biasInitializer),kernelRegularizer:st(this.kernelRegularizer),biasRegularizer:st(this.biasRegularizer),activityRegularizer:st(this.activityRegularizer),kernelConstraint:Rt(this.kernelConstraint),biasConstraint:Rt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Uf.className="Dense";J.registerClass(Uf);var jf=class extends Pe{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Ze(e);for(let t of e.slice(1))if(t==null)throw new L(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],Kn(e,1)]}call(e,t){return V(()=>{this.invokeCallHook(e,t);let o=Fe(e);if(this.dataFormat==="channelsFirst"&&o.rank>1){let n=[0];for(let s=2;s{this.invokeCallHook(e,t);let o=Fe(e);return this.activation.apply(o)})}getConfig(){let e={activation:Os(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};Hf.className="Activation";J.registerClass(Hf);var qf=class extends Pe{constructor(e){super(e);this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return V(()=>(e=Fe(e),DT(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};qf.className="RepeatVector";J.registerClass(qf);var Kf=class extends Pe{constructor(e){super(e);this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let o=Fe(e),n=o.shape,s=n.slice(0,1).concat(this.fixUnknownDimension(n.slice(1),this.targetShape));return o.reshape(s)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};Kf.className="Reshape";J.registerClass(Kf);var Xf=class extends Pe{constructor(e){super(e);if(e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);let t=Mr(1,e.dims.length+1);if(!x.arraysEqual(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new Nt({ndim:this.dims.length+1})]}computeOutputShape(e){e=Ze(e);let t=e.slice();return this.dims.forEach((o,n)=>{t[n+1]=e[o]}),t}call(e,t){return je(Fe(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};Xf.className="Permute";J.registerClass(Xf);var Yf=class extends Pe{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){let o=Fe(e),n=-1;return ol(Vn(o,this.maskValue),n)}call(e,t){return V(()=>{this.invokeCallHook(e,t);let o=Fe(e),n=-1,s=!0,a=ol(Vn(o,this.maskValue),n,s);return o.mul(a.asType(o.dtype))})}};Yf.className="Masking";J.registerClass(Yf);var Zf=class extends Pe{constructor(e){super(e);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(xt(e.inputLength))}this.inputDim=e.inputDim,Wt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Wt(this.outputDim,"outputDim"),this.embeddingsInitializer=pt(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=yt(e.embeddingsRegularizer),this.activityRegularizer=yt(e.activityRegularizer),this.embeddingsConstraint=Ft(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return V(()=>this.maskZero?(e=Fe(e),Vn(e,Ce(e))):null)}computeOutputShape(e){if(e=Ze(e),this.inputLength==null)return[...e,this.outputDim];let t=xt(this.inputLength);if(t.length!==e.length-1)throw new L(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let o=0;for(let n=0;n{this.invokeCallHook(e,t);let o=Fe(e);return o.dtype!=="int32"&&(o=Fa(o,"int32")),bg(this.embeddings.read(),o.as1D()).reshape(Ze(this.computeOutputShape(o.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:kt(this.embeddingsInitializer),embeddingsRegularizer:st(this.embeddingsRegularizer),activityRegularizer:st(this.activityRegularizer),embeddingsConstraint:Rt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};Zf.className="Embedding";J.registerClass(Zf);var wl=class extends Pe{constructor(e){super(e||{});this.supportsMasking=!0}mergeFunction(e){throw new Ne}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new L(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let o=e[0]==null?null:e[0].slice(1);for(let s=1;ss.length);e.indexOf(null)===-1&&qn(n).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return V(()=>{if(e=e,this.reshapeRequired){let o=[],n=e.map(s=>s.rank);if(n.indexOf(null)===-1){let s=Rs(n);for(let a of e){let i=a.rank;for(let l=0;l1){let c=Mr(1,u).concat([0]);o.push(je(l,c)),s=!0}else o.push(l)}let a=this.mergeFunction(o),i=a.rank;if(s){if(i==null){let l=a.shape,u=l.length,c=l[u-1],p=[c].concat(l.slice(0,l.length-1));a=je(a.reshape([-1,c]),[1,0]).reshape(p)}else if(i>1){let l=[i-1].concat(Mr(0,i-1));a=je(a,l)}}return a}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let n=1;n{if(t==null)return null;if(!Array.isArray(t))throw new L("`mask` should be an Array");if(!Array.isArray(e))throw new L("`inputs` should be an Array");if(t.length!==e.length)throw new L(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(n=>n==null))return null;t=t.map(n=>n==null?n:ir(n,0));let o=t[0];for(let n=1;n{let t=e[0].clone();for(let o=1;o{let t=e[0].clone();for(let o=1;o{let t=e[0].clone();for(let o=1;o{let t=e[0];for(let o=1;o{let t=e[0];for(let o=1;o1)throw new L("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return V(()=>lp(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new L("A `Concatenate` layer should be called on a list of inputs.");let t=e,o=t[0].slice(),n=this.axis<0?o.length+this.axis:this.axis;for(let s of t.slice(1)){if(o[n]==null||s[n]==null){o[n]=null;break}o[n]+=s[n]}return o}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new L("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new L("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new L(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return V(()=>{let o=!0;if(t.forEach(a=>{if(a!=null){o=!1;return}}),o)return null;let n=[];for(let a=0;a3||e.shape.length>3)throw new Ne("batchDot is not implemented for tensors of 4D or higher rank yet");if(x.assert(r.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${r.shape.length}`),x.assert(r.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${e.shape.length}`),typeof t=="number"&&(t=[t,t]),r.dtype==="complex64"||e.dtype==="complex64")throw new Ne("batchDot is not implemented for complex64-type Tensors yet.");let o=r.shape.length,n=e.shape.length;t==null&&(t=[o-1,n-2]);let s=t;return V(()=>{let a;if(o>n){a=o-n;let l=[];for(let u=0;uo){a=n-o;let l=[];for(let u=0;u0){let l;o>n?l=o+n-3:l=o-1;let u=[];for(let c=l;c"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0],o=e[1];if(t.length>3||o.length>3)throw new Ne("Dot layer does not support tensors of 4D or higher rank yet.");let n=this.interpretAxes(t,o);if(t[n[0]]!==o[n[1]])throw new L(`Dimension incompatibility: ${t[n[0]]} !== ${o[n[1]]}`)}mergeFunction(e){if(e.length!==2)throw new L(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],o=e[1],n;return Array.isArray(this.axes)?n=this.axes.map((s,a)=>nd(s,e[a].shape.length)):n=[nd(this.axes,t.shape.length),nd(this.axes,o.shape.length)],this.normalize&&(t=yf(t,n[0]),o=yf(o,n[1])),oq(t,o,n)}interpretAxes(e,t){let o;return Array.isArray(this.axes)?o=this.axes:o=[nd(this.axes,e.length),nd(this.axes,t.length)],o}computeOutputShape(e){x.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0].slice(),o=e[1].slice();if(t.length>3||o.length>3)throw new Ne("Dot layer does not support tensors of 4D or higher rank yet.");let n=this.interpretAxes(t,o);t.splice(n[0],1),o.splice(n[1],1),o.splice(0,1);let s=t.concat(o);return s.length===1&&s.push(1),s}computeMask(e,t){return null}getConfig(){let e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}};sd.className="Dot";J.registerClass(sd);var id=class extends Pe{constructor(e){super(e);this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return V(()=>{this.invokeCallHook(e,t);let o=Fe(e);return ul(()=>up(o.shape,0,this.stddev).add(o),()=>o,t.training||!1)})}};id.className="GaussianNoise";J.registerClass(id);var ad=class extends Pe{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return V(()=>{this.invokeCallHook(e,t);let o=Fe(e);return this.rate>0&&this.rate<1?ul(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return o.mul(up(o.shape,1,s))},()=>o,t.training||!1):o})}};ad.className="GaussianDropout";J.registerClass(ad);var ld=class extends Pe{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Fe(e).shape}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return V(()=>{if(this.rate<1&&this.rate>0){let o=this._getNoiseShape(e);return ul(()=>{let s=Fe(e),a=1.6732632423543772,i=1.0507009873554805,l=-a*i,u=io(As(o),this.rate);u=Fa(u,"float32");let c=((1-this.rate)*(1+this.rate*l**2))**-.5,p=-c*l*this.rate;return s.mul(u).add(u.add(-1).mul(l)).mul(c).add(p)},()=>Fe(e),t.training||!1)}return e})}};ld.className="AlphaDropout";J.registerClass(ld);function ud(r,e,t,o,n,s=.001){let a;if(r.rank===2)a=nw(r,e,t,o,n,s);else if(r.rank===3)a=sw(r,e,t,o,n,s);else if(r.rank===4)a=iw(r,e,t,o,n,s);else throw new Ne(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return a}function nq(r,e,t,o,n=.001){return V(()=>{let s=qc(r,o),a=s.mean,i=s.variance;return[ud(r,a,i,t,e,n),a,i]})}function sq(r,e,t,o,n=.001){return V(()=>{let s=qc(r,o),a=s.mean,i=s.variance,l=[];for(let d of Mr(0,r.rank))o.indexOf(d)!==-1?l.push(1):l.push(r.shape[d]);let u=a.reshape(l),c=i.reshape(l),p=e==null?null:e.reshape(l),m=t==null?null:t.reshape(l);return[ud(r,u,c,m,p,n),a,i]})}function iq(r,e,t,o,n=.001){return x.arraysEqual(o.slice().sort(),Mr(0,r.rank-1))?nq(r,e,t,o,n):sq(r,e,t,o,n)}var cd=class extends Pe{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=pt(e.betaInitializer||"zeros"),this.gammaInitializer=pt(e.gammaInitializer||"ones"),this.movingMeanInitializer=pt(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=pt(e.movingVarianceInitializer||"ones"),this.betaConstraint=Ft(e.betaConstraint),this.gammaConstraint=Ft(e.gammaConstraint),this.betaRegularizer=yt(e.betaRegularizer),this.gammaRegularizer=yt(e.gammaRegularizer)}build(e){e=Ze(e);let t=this.axis>=0?this.axis:this.axis+e.length,o=e[t];if(o==null)throw new L(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new Nt({ndim:e.length,axes:{[t]:o}})];let n=[o];this.scale&&(this.gamma=this.addWeight("gamma",n,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",n,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",n,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",n,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return V(()=>{let o=t.training==null?!1:t.training,n=Fe(e),s=n.shape,a=s.length,i=Mr(0,a),l=this.axis>=0?this.axis:this.axis+a;i.splice(l,1);let u=Un(1,a);u[l]=s[l];let c=i.slice();c.sort();let p=!x.arraysEqual(c,Mr(0,a).slice(0,a-1)),m=()=>{if(p){let b=this.movingMean.read().reshape(u),w=this.movingVariance.read().reshape(u),_=this.center?this.beta.read().reshape(u):null,C=this.scale?this.gamma.read().reshape(u):null;return ud(n,b,w,_,C,this.epsilon)}else return ud(n,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!o)return m();let[f,d,h]=iq(n,this.gamma.read(),this.beta.read(),i,this.epsilon),g=(b,w,_)=>{V(()=>{let C=1-_,D=b.read(),T=D.sub(w).mul(C);b.write(D.sub(T))})};return(()=>{g(this.movingMean,d,this.momentum),g(this.movingVariance,h,this.momentum)})(),f})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:kt(this.betaInitializer),gammaInitializer:kt(this.gammaInitializer),movingMeanInitializer:kt(this.movingMeanInitializer),movingVarianceInitializer:kt(this.movingVarianceInitializer),betaRegularizer:st(this.betaRegularizer),gammaRegularizer:st(this.gammaRegularizer),betaConstraint:Rt(this.betaConstraint),gammaConstraint:Rt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};cd.className="BatchNormalization";J.registerClass(cd);var pd=class extends Pe{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=pt(e.betaInitializer||"zeros"),this.gammaInitializer=pt(e.gammaInitializer||"ones"),this.betaRegularizer=yt(e.betaRegularizer),this.gammaRegularizer=yt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=Ze(e);let t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let s=0;s=t)throw new Error(`Invalid axis: ${s}`);if(this.axis.length!==qn(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let o=this.axis.map(s=>e[s]),n=!0;this.scale?this.gamma=this.addWeight("gamma",o,"float32",this.gammaInitializer,this.gammaRegularizer,n):this.gamma=null,this.center?this.beta=this.addWeight("beta",o,"float32",this.betaInitializer,this.betaRegularizer,n):this.beta=null,this.built=!0}call(e,t){let o=Fe(e),n=o.shape,s=n.length;return V(()=>{let a=!0,{mean:i,variance:l}=qc(o,this.axis,a),u=Un(1,s);for(let h of this.axis)u[h]=n[h];let c=h=>h!=null&&h.shape.length!==s&&this.axis!==[s-1]?h.reshape(u):h,p=c(this.gamma.read()),m=c(this.beta.read()),f=[],d=[];for(let h=0;h{if(r.rank!==4)throw new L(`temporalPadding expects input tensor to be 4-D, but received a ${r.rank}-D tensor.`);if(e==null&&(e=[[1,1],[1,1]]),e.length!==2||e[0].length!==2||e[1].length!==2)throw new L("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(t==null&&(t=Zr()),t!=="channelsLast"&&t!=="channelsFirst")throw new L(`Unknown data format: ${t}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let o;return t==="channelsFirst"?o=[[0,0],[0,0],e[0],e[1]]:o=[[0,0],e[0],e[1],[0,0]],Rr(r,o)})}var md=class extends Pe{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?Zr():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new L(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,o;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],o=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new L(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new L(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);o=e.padding[1]}this.padding=[t,o]}this.inputSpec=[new Nt({ndim:4})]}computeOutputShape(e){e=Ze(e);let t,o;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?o=e[3]+this.padding[1][0]+this.padding[1][1]:o=null,[e[0],e[1],t,o]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?o=e[2]+this.padding[1][0]+this.padding[1][1]:o=null,[e[0],t,o,e[3]])}call(e,t){return V(()=>aq(Fe(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};md.className="ZeroPadding2D";J.registerClass(md);function Wg(r,e,t,o,n,s){return V(()=>{$t(n),o_(s),Jr(o),t==null&&(t=[1,1]),o==null&&(o="valid"),n==null&&(n=Zr()),s==null&&(s="max"),r=Rf(r,n);let a,i=o==="same"?"same":"valid";return s==="max"?a=Na(r,e,t,i):a=wa(r,e,t,i),n==="channelsFirst"&&(a=je(a,[0,3,1,2])),a})}function w1(r,e,t,o,n,s){return V(()=>{$t(n),o_(s),Jr(o),t==null&&(t=[1,1,1]),o==null&&(o="valid"),n==null&&(n=Zr()),s==null&&(s="max"),r=$_(r,n);let a,i=o==="same"?"same":"valid";return s==="max"?a=Pm(r,e,t,i):a=Im(r,e,t,i),n==="channelsFirst"&&(a=je(a,[0,4,1,2,3])),a})}var M_=class extends Pe{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new L(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(Wt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new L(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);Wt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,Jr(this.padding),this.inputSpec=[new Nt({ndim:3})]}computeOutputShape(e){e=Ze(e);let t=po(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return V(()=>{this.invokeCallHook(e,t),e=Oa(Fe(e),2);let o=this.poolingFunction(Fe(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Co(o,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},fd=class extends M_{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return $t(s),Jr(n),Wg(e,t,o,n,s,"max")}};fd.className="MaxPooling1D";J.registerClass(fd);var dd=class extends M_{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return $t(s),Jr(n),Wg(e,t,o,n,s,"avg")}};dd.className="AveragePooling1D";J.registerClass(dd);var L_=class extends Pe{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new L(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];Wt(this.poolSize,"poolSize"),Wt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,$t(this.dataFormat),Jr(this.padding),this.inputSpec=[new Nt({ndim:4})]}computeOutputShape(e){e=Ze(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],o=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=po(t,this.poolSize[0],this.padding,this.strides[0]),o=po(o,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,o]:[e[0],t,o,e[3]]}call(e,t){return V(()=>(this.invokeCallHook(e,t),this.poolingFunction(Fe(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},hd=class extends L_{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return $t(s),Jr(n),Wg(e,t,o,n,s,"max")}};hd.className="MaxPooling2D";J.registerClass(hd);var gd=class extends L_{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return $t(s),Jr(n),Wg(e,t,o,n,s,"avg")}};gd.className="AveragePooling2D";J.registerClass(gd);var z_=class extends Pe{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new L(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];Wt(this.poolSize,"poolSize"),Wt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,$t(this.dataFormat),Jr(this.padding),this.inputSpec=[new Nt({ndim:5})]}computeOutputShape(e){e=Ze(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],o=this.dataFormat==="channelsFirst"?e[3]:e[2],n=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=po(t,this.poolSize[0],this.padding,this.strides[0]),o=po(o,this.poolSize[1],this.padding,this.strides[1]),n=po(n,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,o,n]:[e[0],t,o,n,e[4]]}call(e,t){return V(()=>(this.invokeCallHook(e,t),this.poolingFunction(Fe(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},xd=class extends z_{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return $t(s),Jr(n),w1(e,t,o,n,s,"max")}};xd.className="MaxPooling3D";J.registerClass(xd);var yd=class extends z_{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return $t(s),Jr(n),w1(e,t,o,n,s,"avg")}};yd.className="AveragePooling3D";J.registerClass(yd);var B_=class extends Pe{constructor(e){super(e);this.inputSpec=[new Nt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Ne}},bd=class extends B_{constructor(e){super(e||{})}call(e,t){return V(()=>{let o=Fe(e);return dt(o,1)})}};bd.className="GlobalAveragePooling1D";J.registerClass(bd);var wd=class extends B_{constructor(e){super(e||{})}call(e,t){return V(()=>{let o=Fe(e);return lr(o,1)})}};wd.className="GlobalMaxPooling1D";J.registerClass(wd);var V_=class extends Pe{constructor(e){super(e);this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,$t(this.dataFormat),this.inputSpec=[new Nt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new Ne}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},_d=class extends V_{call(e,t){return V(()=>{let o=Fe(e);return this.dataFormat==="channelsLast"?dt(o,[1,2]):dt(o,[2,3])})}};_d.className="GlobalAveragePooling2D";J.registerClass(_d);var kd=class extends V_{call(e,t){return V(()=>{let o=Fe(e);return this.dataFormat==="channelsLast"?lr(o,[1,2]):lr(o,[2,3])})}};kd.className="GlobalMaxPooling2D";J.registerClass(kd);var G_=class extends Pe{constructor(e){super(e);this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){let e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,o={}){let n=t.layer,s=Qr(n,o);delete t.layer;let a={layer:s};return Object.assign(a,t),new e(a)}},vd=class extends G_{constructor(e){super(e);this.supportsMasking=!0}build(e){if(e=Ze(e),e.length<3)throw new L(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];let t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=Ze(e);let t=[e[0]].concat(e.slice(2)),o=this.layer.computeOutputShape(t),n=e[1];return[o[0],n].concat(o.slice(1))}call(e,t){return V(()=>(e=Fe(e),O_((a,i)=>[Fe(this.layer.call(a,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};vd.className="TimeDistributed";J.registerClass(vd);function lq(r){zi(IT,"BidirectionalMergeMode",r)}var uq="concat",Cd=class extends G_{constructor(e){super(e);let t=e.layer.getConfig(),o={};o.className=e.layer.getClassName(),o.config=t,this.forwardLayer=Qr(o),t.goBackwards=t.goBackwards!==!0;let n={};if(n.className=e.layer.getClassName(),n.config=t,this.backwardLayer=Qr(n),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?uq:e.mergeMode,lq(this.mergeMode),e.weights)throw new Ne("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){let t=e.length,o=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,o)),this.backwardLayer.setWeights(e.slice(o))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let o,n,s;return this.returnState&&(s=t.slice(1)),o=t[0],o=o,this.mergeMode==="concat"?(o[o.length-1]*=2,n=[o]):this.mergeMode==null?n=[o,o.slice()]:n=[o],this.returnState?this.mergeMode==null?n.concat(s).concat(s.slice()):[o].concat(s).concat(s.slice()):hr(n)}apply(e,t){let o=t==null?null:t.initialState,n=t==null?null:t.constants;t==null&&(t={});let s=F_(e,o,n,this.numConstants);if(e=s.inputs,o=s.initialState,n=s.constants,Array.isArray(e)&&(o=e.slice(1),e=e[0]),(o==null||o.length===0)&&n==null)return super.apply(e,t);let a=[],i=[];if(o!=null){let u=o.length;if(u%2>0)throw new L("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=o,a.push(...o);let c=o.map(p=>new Nt({shape:p.shape}));this.forwardLayer.stateSpec=c.slice(0,u/2),this.backwardLayer.stateSpec=c.slice(u/2),i.push(...c)}if(n!=null)throw new Ne("Support for constants in Bidirectional layers is not implemented yet.");let l=a[0]instanceof zr;for(let u of a)if(u instanceof zr!==l)throw new L("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(l){let u=[e].concat(a),c=this.inputSpec.concat(i),p=this.inputSpec;this.inputSpec=c;let m=super.apply(u,t);return this.inputSpec=p,m}else return super.apply(e,t)}call(e,t){return V(()=>{let o=t.initialState,n,s;if(o==null)n=this.forwardLayer.call(e,t),s=this.backwardLayer.call(e,t);else{let l=o.slice(0,o.length/2),u=o.slice(o.length/2);n=this.forwardLayer.call(e,Object.assign(t,{initialState:l})),s=this.backwardLayer.call(e,Object.assign(t,{initialState:u}))}let a;this.returnState&&(Array.isArray(n)&&(a=n.slice(1).concat(s.slice(1))),n=n[0],s=s[0]),this.returnSequences&&(s=Ht(s,1));let i;return this.mergeMode==="concat"?i=lp([n,s]):this.mergeMode==="sum"?i=Q(n,s):this.mergeMode==="ave"?i=O(.5,Q(n,s)):this.mergeMode==="mul"?i=O(n,s):this.mergeMode==null&&(i=[n,s]),this.returnState?this.mergeMode==null?i.concat(a):[i].concat(a):i})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){$s(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),$s(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let o;if(this.returnSequences?this.mergeMode==null?o=[t,t]:o=t:this.mergeMode==null?o=[null,null]:o=null,this.returnState){let s=this.forwardLayer.states.map(a=>null);return Array.isArray(o)?o.concat(s).concat(s):[o].concat(s).concat(s)}else return o}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){let e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){let o=Qr(t.layer);if(delete t.layer,t.numConstants!=null)throw new Ne("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let n=t;return n.layer=o,new e(n)}};Cd.className="Bidirectional";J.registerClass(Cd);function cq(r){return new Bi(r)}function pq(r){return new Af(r)}function mq(r){return new Nf(r)}function fq(r){return new Sf(r)}function dq(r){return new Tf(r)}function hq(r){return new Df(r)}function gq(r){return new Ef(r)}function xq(r){return new Qu(r)}function yq(r){return new xl(r)}function bq(r){return new Ff(r)}function wq(r){return new Ju(r)}function _q(r){return new Of(r)}function kq(r){return new Pf(r)}function vq(r){return new Mf(r)}function Cq(r){return new Lf(r)}function Iq(r){return new Hf(r)}function Nq(r){return new Uf(r)}function Sq(r){return new Tp(r)}function Tq(r){return new Wf(r)}function Aq(r){return new jf(r)}function Eq(r){return new qf(r)}function Dq(r){return new Kf(r)}function $q(r){return new Xf(r)}function Rq(r){return new Zf(r)}function Fq(r){return new Jf(r)}function Oq(r){return new ed(r)}function Pq(r){return new od(r)}function Mq(r){return new td(r)}function Lq(r){return new rd(r)}function zq(r){return new Qf(r)}function Bq(r){return new sd(r)}function Vq(r){return new cd(r)}function Gq(r){return new pd(r)}function Wq(r){return new md(r)}function U_(r){return new dd(r)}function Uq(r){return U_(r)}function jq(r){return U_(r)}function j_(r){return new gd(r)}function Hq(r){return j_(r)}function qq(r){return j_(r)}function H_(r){return new yd(r)}function Kq(r){return H_(r)}function Xq(r){return H_(r)}function Yq(r){return new bd(r)}function Zq(r){return new _d(r)}function _1(r){return new wd(r)}function k1(r){return new kd(r)}function v1(r){return new fd(r)}function C1(r){return new hd(r)}function Jq(r){return new xd(r)}function Qq(r){return new Bf(r)}function eK(r){return new Np(r)}function tK(r){return new Vf(r)}function rK(r){return new bl(r)}function oK(r){return new zf(r)}function nK(r){return new Ip(r)}function sK(r){return new Gf(r)}function iK(r){return new Sp(r)}function aK(r){return new mo(r)}function lK(r){return new Cp(r)}function uK(r){return new Cd(r)}function cK(r){return new vd(r)}var pK=_1,mK=k1,fK=v1,dK=C1;function hK(r){return new id(r)}function gK(r){return new ad(r)}function xK(r){return new ld(r)}function yK(r){return new Yf(r)}var q_={};Je(q_,{MAPE:()=>AK,MSE:()=>$K,binaryAccuracy:()=>bK,binaryCrossentropy:()=>wK,categoricalAccuracy:()=>kK,categoricalCrossentropy:()=>vK,cosineProximity:()=>NK,mape:()=>EK,meanAbsoluteError:()=>SK,meanAbsolutePercentageError:()=>TK,meanSquaredError:()=>DK,mse:()=>RK,precision:()=>CK,recall:()=>IK,sparseCategoricalAccuracy:()=>_K});function bK(r,e){return _f(r,e)}function wK(r,e){return $g(r,e)}function _K(r,e){return Rg(r,e)}function kK(r,e){return kf(r,e)}function vK(r,e){return vf(r,e)}function CK(r,e){return u_(r,e)}function IK(r,e){return jT(r,e)}function NK(r,e){return bf(r,e)}function SK(r,e){return bp(r,e)}function TK(r,e){return fl(r,e)}function AK(r,e){return fl(r,e)}function EK(r,e){return fl(r,e)}function DK(r,e){return Gi(r,e)}function $K(r,e){return Gi(r,e)}function RK(r,e){return Gi(r,e)}var K_={};Je(K_,{modelFromJSON:()=>u1});var X_={};Je(X_,{l1:()=>OK,l1l2:()=>FK,l2:()=>PK});function FK(r){return new Yu(r)}function OK(r){return h1(r)}function PK(r){return g1(r)}var Ug=class extends ml{constructor(){super(...arguments);this.model=null}setModel(e){if(!(e instanceof No))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function jg(r,e){return re}var Hg=class extends Ug{constructor(e){super();if(e==null&&(e={}),e.restoreBestWeights)throw new Ne("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(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=jg:this.mode==="max"?this.monitorFunc=I1:this.monitor.indexOf("acc")!==-1?this.monitorFunc=I1:this.monitorFunc=jg,this.monitorFunc===jg&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===jg?Infinity:-Infinity}async onEpochEnd(e,t){await Vi(t);let o=this.getMonitorValue(t);o!=null&&(this.monitorFunc(o-this.minDelta,this.best)?(this.best=o,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0)))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){e==null&&(e={});let t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}};function MK(r){return new Hg(r)}var N1={earlyStopping:MK};var Yn;(function(r){r[r.DT_INVALID=0]="DT_INVALID",r[r.DT_FLOAT=1]="DT_FLOAT",r[r.DT_DOUBLE=2]="DT_DOUBLE",r[r.DT_INT32=3]="DT_INT32",r[r.DT_UINT8=4]="DT_UINT8",r[r.DT_INT16=5]="DT_INT16",r[r.DT_INT8=6]="DT_INT8",r[r.DT_STRING=7]="DT_STRING",r[r.DT_COMPLEX64=8]="DT_COMPLEX64",r[r.DT_INT64=9]="DT_INT64",r[r.DT_BOOL=10]="DT_BOOL",r[r.DT_QINT8=11]="DT_QINT8",r[r.DT_QUINT8=12]="DT_QUINT8",r[r.DT_QINT32=13]="DT_QINT32",r[r.DT_BFLOAT16=14]="DT_BFLOAT16",r[r.DT_FLOAT_REF=101]="DT_FLOAT_REF",r[r.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",r[r.DT_INT32_REF=103]="DT_INT32_REF",r[r.DT_UINT8_REF=104]="DT_UINT8_REF",r[r.DT_INT16_REF=105]="DT_INT16_REF",r[r.DT_INT8_REF=106]="DT_INT8_REF",r[r.DT_STRING_REF=107]="DT_STRING_REF",r[r.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",r[r.DT_INT64_REF=109]="DT_INT64_REF",r[r.DT_BOOL_REF=110]="DT_BOOL_REF",r[r.DT_QINT8_REF=111]="DT_QINT8_REF",r[r.DT_QUINT8_REF=112]="DT_QUINT8_REF",r[r.DT_QINT32_REF=113]="DT_QINT32_REF",r[r.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(Yn||(Yn={}));var S1;(function(r){let e;(function(t){t[t.LEGACY=0]="LEGACY",t[t.V1=1]="V1",t[t.V2=2]="V2"})(e=r.CheckpointFormatVersion||(r.CheckpointFormatVersion={}))})(S1||(S1={}));var Y_={};function T1(r,e){let t={tfOpName:r,category:"custom",inputs:[],attrs:[],customExecutor:e};Y_[r]=t}function qg(r){return Y_[r]}function A1(r){delete Y_[r]}function v(r,e,t,o,n){let s=e.inputParams[r];if(s&&s.inputIndexStart!==void 0){let i=s.inputIndexStart,l=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?i+1:s.inputIndexEnd;if(s.type==="tensor")return gr(e.inputNames[s.inputIndexStart],t,o,n);if(s.type==="tensors")return e.inputNames.slice(i,l).map(m=>gr(m,t,o,n));let u=gr(e.inputNames.slice(i)[0],t,o,n),c=u.dataSync();return s.type==="number"?c[0]:x.toNestedArray(u.shape,c)}let a=e.attrParams[r];return a&&a.value}function gr(r,e,t,o){let[n,s]=eo(r);if(o!=null){let i=o.getHashTableHandleByName(n);if(i!=null)return i}let a=t.currentContextIds.find(i=>!!e[Kg(n,i)]);return a!==void 0?e[Kg(n,a)][s]:void 0}function E1(r,e,t){return e[Kg(r,t.currentContextId)]}function Ms(r,e){let[t,o]=eo(r);return[Kg(t,e&&e.currentContextId),o]}function Kg(r,e){return e?`${r}-${e}`:r}function eo(r){let e=r.split(":");return e.length===1?[r,0]:[e[0],Number(e[e.length-1])]}function Id(r,e,t){let o=v("pad",r,e,t);if(o==="explicit"){o=v("explicitPaddings",r,e,t);let n=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)n[s][0]=o[s*2],n[s][1]=o[s*2+1];return n}return o}function Ls(r){return r.kept?r:Oo(r)}var Z_={};Je(Z_,{json:()=>LK});var LK=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var J_={};Je(J_,{json:()=>zK});var zK=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var Q_={};Je(Q_,{json:()=>BK});var BK=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}];var ek={};Je(ek,{json:()=>VK});var VK=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}];var tk={};Je(tk,{json:()=>GK});var GK=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}];var rk={};Je(rk,{json:()=>WK});var WK=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var ok={};Je(ok,{json:()=>UK});var UK=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}];var nk={};Je(nk,{json:()=>jK});var jK=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}];var sk={};Je(sk,{json:()=>HK});var HK=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]}];var ik={};Je(ik,{json:()=>qK});var qK=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}];var ak={};Je(ak,{json:()=>KK});var KK=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var lk={};Je(lk,{json:()=>XK});var XK=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var uk={};Je(uk,{json:()=>YK});var YK=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}];var ck={};Je(ck,{json:()=>ZK});var ZK=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}];var pk={};Je(pk,{json:()=>JK});var JK=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}];var mk={};Je(mk,{json:()=>QK});var QK=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}];var fk={};Je(fk,{json:()=>e6});var e6=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}];var Xg=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[Z_,J_,Q_,ek,tk,rk,ok,ak,ik,nk,lk,uk,ck,pk,mk,fk,sk],t=[].concat(...e.map(o=>o.json));this.opMappers=t.reduce((o,n)=>(o[n.tfOpName]=n,o),{})}transformGraph(e,t={}){let o=e.node,n=[],s=[],a=[],i=o.reduce((h,g)=>(h[g.name]=this.mapNode(g),g.op.startsWith("Placeholder")?n.push(h[g.name]):g.op==="Const"?s.push(h[g.name]):(g.input==null||g.input.length===0)&&a.push(h[g.name]),h),{}),l=[],u=[],c={},p={};t!=null&&(c=this.mapSignatureEntries(t.inputs),p=this.mapSignatureEntries(t.outputs));let m=Object.keys(i);m.forEach(h=>{let g=i[h];g.inputNames.forEach(y=>{let[b]=Ms(y);g.inputs.push(i[b]),i[b].children.push(g)})}),Object.keys(p).length===0?m.forEach(h=>{let g=i[h];g.children.length===0&&u.push(g)}):Object.keys(p).forEach(h=>{let[g]=Ms(h),y=i[g];y!=null&&(y.signatureKey=p[h],u.push(y))}),Object.keys(c).length>0?Object.keys(c).forEach(h=>{let[g]=Ms(h),y=i[g];y&&(y.signatureKey=c[h],l.push(y))}):l=n;let f={};e.library!=null&&e.library.function!=null&&(f=e.library.function.reduce((h,g)=>(h[g.signature.name]=this.mapFunction(g),h),{}));let d={nodes:i,inputs:l,outputs:u,weights:s,placeholders:n,signature:t,functions:f};return a.length>0&&(d.initNodes=a),d}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,o)=>(t[e[o].name]=o,t),{})}mapNode(e){let t=qg(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});let o={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(n=>n.startsWith("^")?n.substr(1):n),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return t.inputs!=null&&(o.inputParams=t.inputs.reduce((n,s)=>(n[s.name]={type:s.type,inputIndexStart:s.start,inputIndexEnd:s.end},n),{})),t.attrs!=null&&(o.attrParams=t.attrs.reduce((n,s)=>{let a=s.type,i;switch(s.type){case"string":i=Yg(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=Yg(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"string[]":i=ox(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=ox(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"number":i=Jg(e.attr,s.tfName,s.defaultValue||0),i===void 0&&!!s.tfDeprecatedName&&(i=Jg(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"number[]":i=rx(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=rx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool":i=Zg(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=Zg(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool[]":i=sx(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=sx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape":i=tx(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=tx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape[]":i=nx(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=nx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype":i=Qg(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=Qg(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype[]":i=ex(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=ex(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"func":i=D1(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=D1(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${s.type} for op: ${e.op}`)}return n[s.name]={value:i,type:a},n},{})),o}mapFunction(e){let t=e.nodeDef,o=[],n=[],s={};t!=null&&(s=t.reduce((p,m)=>(p[m.name]=this.mapNode(m),m.op==="Const"&&n.push(p[m.name]),p),{}));let a=[],i=[];e.signature.inputArg.forEach(p=>{let[m]=Ms(p.name),f={name:m,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:dk(p.type),type:"dtype"}},children:[]};f.signatureKey=p.name,a.push(f),s[m]=f}),Object.keys(s).forEach(p=>{let m=s[p];m.inputNames.forEach(f=>{let[d]=Ms(f);m.inputs.push(s[d]),s[d].children.push(m)})});let u=e.ret;e.signature.outputArg.forEach(p=>{let[m,f]=Ms(u[p.name]),d=s[m];d!=null&&(d.defaultOutput=f,i.push(d))});let c=this.mapArgsToSignature(e);return{nodes:s,inputs:a,outputs:i,weights:n,placeholders:o,signature:c}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,o)=>(t[o.name]=this.mapArgToTensorInfo(o),t),{}),outputs:e.signature.outputArg.reduce((t,o)=>(t[o.name]=this.mapArgToTensorInfo(o,e.ret),t),{})}}mapArgToTensorInfo(e,t){let o=e.name;return t!=null&&(o=t[o]),{name:o,dtype:e.type}}};function t6(r){let e=W().global;if(typeof e.atob!="undefined")return e.atob(r);if(typeof Buffer!="undefined")return new Buffer(r,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function $1(r,e){let t=Array.isArray(r)?String.fromCharCode.apply(null,r):t6(r);return e?t:t.toLowerCase()}function Yg(r,e,t,o=!1){let n=r[e];return n!=null?$1(n.s,o):t}function Zg(r,e,t){let o=r[e];return o?o.b:t}function Jg(r,e,t){let o=r[e]||{},n=o.i!=null?o.i:o.f!=null?o.f:t;return typeof n=="number"?n:parseInt(n,10)}function dk(r){switch(typeof r=="string"&&(r=Yn[r]),r){case Yn.DT_FLOAT:return"float32";case Yn.DT_INT32:case Yn.DT_INT64:case Yn.DT_INT8:case Yn.DT_UINT8:return"int32";case Yn.DT_BOOL:return"bool";case Yn.DT_DOUBLE:return"float32";case Yn.DT_STRING:return"string";default:return null}}function D1(r,e,t){let o=r[e];return o&&o.func?o.func.name:t}function Qg(r,e,t){let o=r[e];return o&&o.type?dk(o.type):t}function ex(r,e,t){let o=r[e];return o&&o.list&&o.list.type?o.list.type.map(n=>dk(n)):t}function R1(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(e=>typeof e.size=="number"?e.size:parseInt(e.size,10)):[]}function tx(r,e,t){let o=r[e];return o&&o.shape?R1(o.shape):t}function rx(r,e,t){let o=r[e];return o?((o.list.f&&o.list.f.length?o.list.f:o.list.i)||[]).map(n=>typeof n=="number"?n:parseInt(n,10)):t}function ox(r,e,t,o=!1){let n=r[e];return n&&n.list&&n.list.s?n.list.s.map(s=>$1(s,o)):t}function nx(r,e,t){let o=r[e];return o&&o.list&&o.list.shape?o.list.shape.map(n=>R1(n)):t}function sx(r,e,t){let o=r[e];return o&&o.list&&o.list.b?o.list.b:t}var hk=class{constructor(e,t,o){this.node=e,this.tensorMap=t,this.context=o,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(n=>this.getInput(n)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((n,s)=>(n[s]=this.getAttr(s),n),{}))}getInput(e){return gr(e,this.tensorMap,this.context)}getAttr(e,t){let o=this.node.rawAttrs[e];if(o.tensor!=null)return gr(e,this.tensorMap,this.context);if(o.i!=null||o.f!=null)return Jg(this.node.rawAttrs,e,t);if(o.s!=null)return Yg(this.node.rawAttrs,e,t);if(o.b!=null)return Zg(this.node.rawAttrs,e,t);if(o.shape!=null)return tx(this.node.rawAttrs,e,t);if(o.type!=null)return Qg(this.node.rawAttrs,e,t);if(o.list!=null){if(o.list.i!=null||o.list.f!=null)return rx(this.node.rawAttrs,e,t);if(o.list.s!=null)return ox(this.node.rawAttrs,e,t);if(o.list.shape!=null)return nx(this.node.rawAttrs,e,t);if(o.list.b!=null)return sx(this.node.rawAttrs,e,t);if(o.list.type!=null)return ex(this.node.rawAttrs,e,t)}return t}};var F1=(r,e,t)=>{switch(r.op){case"BiasAdd":case"AddV2":case"Add":return[Q(v("a",r,e,t),v("b",r,e,t))];case"AddN":return[ew(v("tensors",r,e,t))];case"FloorMod":case"Mod":return[Lm(v("a",r,e,t),v("b",r,e,t))];case"Mul":return[O(v("a",r,e,t),v("b",r,e,t))];case"RealDiv":case"Div":return[me(v("a",r,e,t),v("b",r,e,t))];case"DivNoNan":return[Em(v("a",r,e,t),v("b",r,e,t))];case"FloorDiv":return[gu(v("a",r,e,t),v("b",r,e,t))];case"Sub":return[ce(v("a",r,e,t),v("b",r,e,t))];case"Minimum":return[Ts(v("a",r,e,t),v("b",r,e,t))];case"Maximum":return[Yr(v("a",r,e,t),v("b",r,e,t))];case"Pow":return[Fr(v("a",r,e,t),v("b",r,e,t))];case"SquaredDifference":return[Mu(v("a",r,e,t),v("b",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var O1=(r,e,t)=>{switch(r.op){case"Abs":case"ComplexAbs":return[It(v("x",r,e,t))];case"Acos":return[xm(v("x",r,e,t))];case"Acosh":return[ym(v("x",r,e,t))];case"Asin":return[wm(v("x",r,e,t))];case"Asinh":return[_m(v("x",r,e,t))];case"Atan":return[km(v("x",r,e,t))];case"Atan2":return[vm(v("x",r,e,t),v("y",r,e,t))];case"Atanh":return[Cm(v("x",r,e,t))];case"Ceil":return[Nm(v("x",r,e,t))];case"Complex":return[ko(v("real",r,e,t),v("imag",r,e,t))];case"Cos":return[ka(v("x",r,e,t))];case"Cosh":return[ku(v("x",r,e,t))];case"Elu":return[Is(v("x",r,e,t))];case"Erf":return[Dm(v("x",r,e,t))];case"Exp":return[Yt(v("x",r,e,t))];case"Expm1":return[$m(v("x",r,e,t))];case"Floor":return[Ns(v("x",r,e,t))];case"Log":return[ar(v("x",r,e,t))];case"Log1p":return[Nu(v("x",r,e,t))];case"Imag":return[Cu(v("x",r,e,t))];case"Neg":return[He(v("x",r,e,t))];case"Reciprocal":return[Bm(v("x",r,e,t))];case"Real":return[il(v("x",r,e,t))];case"Relu":return[Nr(v("x",r,e,t))];case"Round":return[Vm(v("x",r,e,t))];case"Selu":return[Ru(v("x",r,e,t))];case"Sigmoid":return[qr(v("x",r,e,t))];case"Sin":return[Fu(v("x",r,e,t))];case"Sign":return[Wm(v("x",r,e,t))];case"Sinh":return[Ou(v("x",r,e,t))];case"Softplus":return[Ss(v("x",r,e,t))];case"Sqrt":return[gt(v("x",r,e,t))];case"Square":return[Oe(v("x",r,e,t))];case"Tanh":return[Fi(v("x",r,e,t))];case"Tan":return[qm(v("x",r,e,t))];case"ClipByValue":return[sr(v("x",r,e,t),v("clipValueMin",r,e,t),v("clipValueMax",r,e,t))];case"Relu6":return[Du(v("x",r,e,t))];case"Rsqrt":return[$u(gr(r.inputNames[0],e,t))];case"Prod":return[Au(v("x",r,e,t),v("axes",r,e,t))];case"LeakyRelu":return[Ca(v("x",r,e,t),v("alpha",r,e,t))];case"Prelu":return[Ta(v("x",r,e,t),v("alpha",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function So(r,e,t=""){if(!(typeof r=="number"||typeof e=="number")){x.assert(r.length===e.length,()=>t+` Shapes ${r} and ${e} must match`);for(let o=0;ot+` Shapes ${r} and ${e} must match`)}}}function P1(r){return!(typeof r=="number"||r.some(e=>e<0))}function Ap(r,e,t){let o=ix(r,t),n=!P1(o);if(n&&e.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${o}`);if(n&&e.forEach(s=>{o=ix(s.shape,o)}),!P1(o))throw new Error(`Non-fully-defined elementShape: ${o}`);return o}function ix(r,e){if(typeof r=="number")return e;if(typeof e=="number")return r;if(r.length!==e.length)throw new Error(`Incompatible ranks during merge: ${r} vs. ${e}`);let t=[];for(let o=0;o=0&&s>=0&&n!==s)throw new Error(`Incompatible shape during merge: ${r} vs. ${e}`);t[o]=n>=0?n:s}return t}var gk=class{constructor(e,t,o,n,s,a,i){this.name=e,this.dtype=t,this.maxSize=o,this.elementShape=n,this.identicalElementShapes=s,this.dynamicSize=a,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=ue(0),Et(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.tensor.id))&&t.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);let t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(t=>this.read(t))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);let o=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, - because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),So(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),o.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(o.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);o.tensor=t,Et(t),o.written=!0,this.tensors[e]=o}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach((o,n)=>this.write(o,t[n]))}gather(e,t){if(!!t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let n=0;n=this.maxSize)throw new Error(`Max index must be < array size (${o} vs. ${this.maxSize})`);this.writeMany(e,cr(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let o=0,n=e.map(l=>(o+=l,o));if(o!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to +2. The custom ${o} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){let u={};for(let f of Object.keys(Hn))u[f]=Hn[f];for(let f of Object.keys(t))u[f]=t[f];let c=s.config;c.customObjects=u;let p=Object.assign({},Hn);for(let f of Object.keys(t))Hn[f]=t[f];i_(s.config);let m=l(i,s.config,t,n);return Hn=Object.assign({},p),m}else{let u=Object.assign({},Hn);for(let p of Object.keys(t))Hn[p]=t[p];let c=new i(s.config);return Hn=Object.assign({},u),c}}}function GH(r,e){return re?1:0}function of(r,e){return-1*GH(r,e)}function qn(r){if(r==null)return r;let e=[];for(let t of r)e.indexOf(t)===-1&&e.push(t);return e}function LT(r){if(r==null)throw new z(`Invalid value in obj: ${JSON.stringify(r)}`);for(let e in r)if(r.hasOwnProperty(e))return!1;return!0}function zi(r,e,t){if(t!=null&&r.indexOf(t)<0)throw new z(`${t} is not a valid ${e}. Valid values are ${r} or null/undefined.`)}function yg(r,e,t=0,o=Infinity){return Bo(t>=0),Bo(o>=t),Array.isArray(r)&&r.length>=t&&r.length<=o&&r.every(n=>typeof n===e)}function Ut(r,e){Array.isArray(r)?(y.assert(r.length>0,()=>`${e} is unexpectedly an empty array.`),r.forEach((t,o)=>Ut(t,`element ${o+1} of ${e}`))):y.assert(Number.isInteger(r)&&r>0,()=>`Expected ${e} to be a positive integer, but got ${zT(r)}.`)}function zT(r){return r===null?"null":Array.isArray(r)?"["+r.map(e=>zT(e)).join(",")+"]":typeof r=="string"?`"${r}"`:`${r}`}function BT(r,e){let t=y.now(),o;return(...s)=>{let a=y.now();return a-txt(ge(P(r,r),e,!0)))}var up=class extends Q.Serializable{getConfig(){return{}}},nf=class extends up{constructor(e){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return G(()=>{let t=a_(e,this.axis),o=ir(t,0,this.maxValue);return P(e,me(o,ee(Jt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};nf.className="MaxNorm";Q.registerClass(nf);var sf=class extends up{constructor(e){super();this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return G(()=>me(e,ee(Jt(),a_(e,this.axis))))}getConfig(){return{axis:this.axis}}};sf.className="UnitNorm";Q.registerClass(sf);var af=class extends up{apply(e){return Sr(e)}};af.className="NonNeg";Q.registerClass(af);var lf=class extends up{constructor(e){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return G(()=>{let t=a_(e,this.axis),o=ee(P(this.rate,ir(t,this.minValue,this.maxValue)),P(1-this.rate,t));return P(e,me(o,ee(Jt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};lf.className="MinMaxNorm";Q.registerClass(lf);var VT={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Ft(r){return lp(r)}function GT(r,e={}){return Li(r,Q.SerializationMap.getMap().classNameMap,e,"constraint")}function Ot(r){if(r==null)return null;if(typeof r=="string"){let t={className:r in VT?VT[r]:r,config:{}};return GT(t)}else return r instanceof up?r:GT(r)}function WH(r){return new nf(r)}function UH(r){return new sf(r)}function jH(){return new af}function HH(r){return new lf(r)}var f_={};Je(f_,{constant:()=>eq,glorotNormal:()=>aq,glorotUniform:()=>iq,heNormal:()=>lq,heUniform:()=>uq,identity:()=>nq,leCunNormal:()=>cq,leCunUniform:()=>pq,ones:()=>QH,orthogonal:()=>mq,randomNormal:()=>rq,randomUniform:()=>tq,truncatedNormal:()=>oq,varianceScaling:()=>sq,zeros:()=>JH});var WT=["channelsFirst","channelsLast"],UT=["nearest","bilinear"],jT=["valid","same","causal"],HT=["max","avg"],qT=["sum","mul","concat","ave"];var cp=new Map;function Rt(r){zi(WT,"DataFormat",r)}function KT(r){zi(UT,"InterpolationFormat",r)}function Jr(r){zi(jT,"PaddingMode",r)}function u_(r){zi(HT,"PoolMode",r)}var uf=[],XT="/";function Rs(r,e){uf.push(r);try{let t=e();return uf.pop(),t}catch(t){throw uf.pop(),t}}function qH(){return uf.length===0?"":uf.join(XT)+XT}function wg(r){if(!YT(r))throw new Error("Not a valid tensor name: '"+r+"'");return qH()+r}function _g(r){if(!YT(r))throw new Error("Not a valid tensor name: '"+r+"'");cp.has(r)||cp.set(r,0);let e=cp.get(r);if(cp.set(r,cp.get(r)+1),e>0){let t=`${r}_${e}`;return cp.set(t,1),t}else return r}var KH=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function YT(r){return!!r.match(KH)}function ZT(r){return r===parseInt(r.toString(),10)}function Kn(r,e,t){e==null&&(e=0),t==null&&(t=r.length);let o=1;for(let n=e;n{if(r.shape.length!==2)throw new z(`repeat() expects a rank-2 tensor, but received a rank-${r.shape.length} tensor.`);let t=Oa(r,1);return kg(t,[1,e,1])})}function e1(r){let e=[Kn(r.shape)];return r.reshape(e)}function t1(r){if(r.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let e=[r.shape[0],Kn(r.shape,1)];return r.reshape(e)}function Pa(r,e,t){return G(()=>{switch(r.rank){case 1:return Hm(r,e,t);case 2:return lg(r,[e,0],[t,r.shape[1]]);case 3:return qm(r,[e,0,0],[t,r.shape[1],r.shape[2]]);case 4:return Qc(r,[e,0,0,0],[t,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Re(r,[e,0,0,0,0],[t,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Re(r,[e,0,0,0,0,0],[t,r.shape[1],r.shape[2],r.shape[3],r.shape[4],r.shape[5]]);default:throw new z(`sliceAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}})}function c_(r,e,t){return G(()=>{switch(r.rank){case 1:return Hm(r,e,t);case 2:return lg(r,[0,e],[r.shape[0],t]);case 3:return qm(r,[0,0,e],[r.shape[0],r.shape[1],t]);case 4:return Qc(r,[0,0,0,e],[r.shape[0],r.shape[1],r.shape[2],t]);default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function cf(r,e,t,o){return G(()=>{switch(r.rank){case 1:return Hm(r,e,t);case 2:switch(o){case 1:return Pa(r,e,t);case 2:return c_(r,e,t);default:throw new z(`The axis is not within the rank of the tensor ${o}`)}case 3:switch(o){case 1:return Pa(r,e,t);case 2:return qm(r,[0,e,0],[r.shape[0],t,r.shape[2]]);case 3:return c_(r,e,t);default:throw new z(`The axis is not within the rank of the tensor ${o}`)}case 4:switch(o){case 1:return Pa(r,e,t);case 2:return Qc(r,[0,e,0,0],[r.shape[0],t,r.shape[2],r.shape[3]]);case 3:return Qc(r,[0,0,e,0],[r.shape[0],r.shape[1],t,r.shape[3]]);case 4:return c_(r,e,t);default:throw new z(`The axis is not within the rank of the tensor ${o}`)}default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function pp(r,e=-1){let t;return e<0&&(t=r[0].rank,t!==0?e=t:e=0),e===r[0].rank&&(e=-1),Ye(r,e)}function p_(r,e){switch(r.rank){case 1:return dw([r,e]);case 2:return hw([r,e],0);case 3:return gw([r,e],0);case 4:return xw([r,e],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function kg(r,e){if(Array.isArray(e)||(e=[e]),r.rank!==e.length)throw new z(`The length of input n (${e.length}) does not match the number of dimensions in input x (${r.rank})`);return Lo(r,e)}function mp(r,e=0,t=1,o,n){return ag(r,e,t,o,n)}function Xn(r,e,t,o){if(r.rank<2||e.rank<2)throw new Ne(`dot requires both inputs to be rank >= 2 but got x shape = ${r.shape} and y shape = ${e.shape}`);if(e.rank>=3){let n=r.shape.slice(-1)[0],s=e.shape.slice(-2)[0];if(n!==s)throw new Ne(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${r.shape} and y shape = ${e.shape}`)}if(r.rank===2&&e.rank===2){let n=!1,s=!1;return Gn.matMul({a:r,b:e,transposeA:n,transposeB:s,bias:o?m_(r.rank,o,Zr()):null,activation:t})}else{let n=r.shape.slice(),s=n.pop();r=r.reshape([-1,s]);let a=e.shape.slice(),i=a.pop(),l=a.pop(),u=[...a,i],c=Array.from({length:e.rank},(d,h)=>h===0?e.rank-2:h<=e.rank-2?h-1:h);e=e.transpose(c).reshape([l,-1]);let p=[...n,...u],m=!1,f=!1;return Gn.matMul({a:r,b:e,transposeA:m,transposeB:f,bias:o?m_(r.rank,o,Zr()):null,activation:t}).reshape(p)}}function vg(r,e,t){return G(()=>(Array.isArray(e)?e=Gt(e,"int32"):e=e.toInt(),zn(r,e,t)))}function qu(r){return P(r,r)}function m_(r,e,t){let o=e.shape;if(e.rank!==1&&e.rank!==r)throw new z(`Unexpected bias dimensions: ${e.rank}; expected it to be 1 or ${r}`);if(r===5){if(t==="channelsFirst")return o.length===1?e.reshape([1,o[0],1,1,1]):e.reshape([1,o[3],o[0],o[1],o[2]]);if(t==="channelsLast")return o.length===1?e.reshape([1,1,1,1,o[0]]):e.reshape([1].concat(o))}else if(r===4){if(t==="channelsFirst")return o.length===1?e.reshape([1,o[0],1,1]):e.reshape([1,o[2],o[0],o[1]]);if(t==="channelsLast")return o.length===1?e.reshape([1,1,1,o[0]]):e.reshape([1].concat(o))}else if(r===3){if(t==="channelsFirst")return o.length===1?e.reshape([1,o[0],1]):e.reshape([1,o[1],o[0]]);if(t==="channelsLast")return o.length===1?e.reshape([1,1,o[0]]):e.reshape([1].concat(o))}else if(r<3)return e;throw new z(`Unsupported input rank by biasAdd: ${e.rank}`)}function ao(r,e,t){return G(()=>(t==null&&(t=Zr()),Rt(t),r.add(m_(r.rank,e,t))))}function r1(r,e=1){if(e!==1)throw new Ne(`Support for alpha values other than 1 (${e}) is not implemented yet.`);return Ns(r)}function o1(r){return G(()=>me(r,Nt(r).add(1)))}function Cg(r,e,t,o){return G(()=>jw(r,e,t,o))}function n1(r){return G(()=>{let e=ee(.5,P(.2,r));return ir(e,0,1)})}function ul(r,e,t=!1){return t?r():e()}var s1=["fanIn","fanOut","fanAvg"],i1=["normal","uniform","truncatedNormal"];function XH(r){zi(s1,"FanMode",r)}function YH(r){zi(i1,"Distribution",r)}var lo=class extends Q.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},pf=class extends lo{apply(e,t){return gt(e,t)}};pf.className="Zeros";Q.registerClass(pf);var Ku=class extends lo{apply(e,t){return Nr(e,t)}};Ku.className="Ones";Q.registerClass(Ku);var mf=class extends lo{constructor(e){super();if(typeof e!="object")throw new z(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new z(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return G(()=>P(le(this.value),Nr(e,t)))}getConfig(){return{value:this.value}}};mf.className="Constant";Q.registerClass(mf);var ff=class extends lo{constructor(e){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return Es(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};ff.className="RandomUniform";Q.registerClass(ff);var df=class extends lo{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Ne(`randomNormal does not support dType ${t}.`);return mp(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};df.className="RandomNormal";Q.registerClass(df);var hf=class extends lo{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Ne(`truncatedNormal does not support dType ${t}.`);return Bu(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};hf.className="TruncatedNormal";Q.registerClass(hf);var gf=class extends lo{constructor(e){super();this.gain=e.gain!=null?e.gain:1}apply(e,t){return G(()=>{if(e.length!==2||e[0]!==e[1])throw new z("Identity matrix initializer can only be used for 2D square matrices.");return P(this.gain,Xc(e[0]))})}getConfig(){return{gain:this.gain}}};gf.className="Identity";Q.registerClass(gf);function ZH(r,e="channelsLast"){let t,o;if(Rt(e),r.length===2)t=r[0],o=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(e==="channelsFirst"){let n=Kn(r,2);t=r[1]*n,o=r[0]*n}else if(e==="channelsLast"){let n=Kn(r,0,r.length-2);t=r[r.length-2]*n,o=r[r.length-1]*n}}else{let n=Kn(r);t=Math.sqrt(n),o=Math.sqrt(n)}return[t,o]}var zr=class extends lo{constructor(e){super();if(e.scale<0)throw new z(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,XH(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,YH(this.distribution),this.seed=e.seed}apply(e,t){let o=ZH(e),n=o[0],s=o[1],a=this.scale;if(this.mode==="fanIn"?a/=Math.max(1,n):this.mode==="fanOut"?a/=Math.max(1,s):a/=Math.max(1,(n+s)/2),this.distribution==="normal"){let i=Math.sqrt(a);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Ne(`${this.getClassName()} does not support dType ${t}.`);return Bu(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*a);return Es(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};zr.className="VarianceScaling";Q.registerClass(zr);var fp=class extends zr{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return zr.className}};fp.className="GlorotUniform";Q.registerClass(fp);var dp=class extends zr{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return zr.className}};dp.className="GlorotNormal";Q.registerClass(dp);var hp=class extends zr{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return zr.className}};hp.className="HeNormal";Q.registerClass(hp);var gp=class extends zr{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return zr.className}};gp.className="HeUniform";Q.registerClass(gp);var xp=class extends zr{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return zr.className}};xp.className="LeCunNormal";Q.registerClass(xp);var yp=class extends zr{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return zr.className}};yp.className="LeCunNormal";Q.registerClass(yp);var xf=class extends lo{constructor(e){super();if(this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new Ne("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return G(()=>{if(e.length<2)throw new Ne("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);let o=e[0]>e[1]?[e[1],e[0]]:e,n=mp(o,0,1,"float32"),s=Zw.gramSchmidt(n);return e[0]>e[1]&&(s=s.transpose()),P(this.gain,s)})}getConfig(){return{gain:this.gain,seed:this.seed}}};xf.className="Orthogonal";Q.registerClass(xf);var a1={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function l1(r,e={}){return Li(r,Q.SerializationMap.getMap().classNameMap,e,"initializer")}function vt(r){return lp(r)}function pt(r){if(typeof r=="string"){let e=r in a1?a1[r]:r;if(e==="GlorotNormal")return new dp;if(e==="GlorotUniform")return new fp;if(e==="HeNormal")return new hp;if(e==="HeUniform")return new gp;if(e==="LeCunNormal")return new xp;if(e==="LeCunUniform")return new yp;{let t={};return t.className=e,t.config={},l1(t)}}else return r instanceof lo?r:l1(r)}function JH(){return new pf}function QH(){return new Ku}function eq(r){return new mf(r)}function tq(r){return new ff(r)}function rq(r){return new df(r)}function oq(r){return new hf(r)}function nq(r){return new gf(r)}function sq(r){return new zr(r)}function iq(r){return new fp(r)}function aq(r){return new dp(r)}function lq(r){return new hp(r)}function uq(r){return new gp(r)}function cq(r){return new xp(r)}function pq(r){return new yp(r)}function mq(r){return new xf(r)}var X_={};Je(X_,{Layer:()=>Pe,RNN:()=>mo,RNNCell:()=>yl,activation:()=>EK,add:()=>zK,alphaDropout:()=>k6,average:()=>BK,averagePooling1d:()=>Y_,averagePooling2d:()=>Z_,averagePooling3d:()=>J_,avgPool1d:()=>XK,avgPool2d:()=>ZK,avgPool3d:()=>QK,avgPooling1d:()=>YK,avgPooling2d:()=>JK,avgPooling3d:()=>e6,batchNormalization:()=>HK,bidirectional:()=>d6,concatenate:()=>VK,conv1d:()=>kK,conv2d:()=>vK,conv2dTranspose:()=>CK,conv3d:()=>IK,convLstm2d:()=>c6,convLstm2dCell:()=>p6,cropping2D:()=>SK,dense:()=>DK,depthwiseConv2d:()=>AK,dot:()=>jK,dropout:()=>$K,elu:()=>gK,embedding:()=>LK,flatten:()=>FK,gaussianDropout:()=>_6,gaussianNoise:()=>w6,globalAveragePooling1d:()=>t6,globalAveragePooling2d:()=>r6,globalMaxPool1d:()=>g6,globalMaxPool2d:()=>x6,globalMaxPooling1d:()=>W1,globalMaxPooling2d:()=>U1,gru:()=>n6,gruCell:()=>s6,input:()=>Hg,inputLayer:()=>hK,layerNormalization:()=>qK,leakyReLU:()=>yK,lstm:()=>i6,lstmCell:()=>a6,masking:()=>v6,maxPool1d:()=>y6,maxPool2d:()=>b6,maxPooling1d:()=>j1,maxPooling2d:()=>H1,maxPooling3d:()=>o6,maximum:()=>GK,minimum:()=>WK,multiply:()=>UK,permute:()=>MK,prelu:()=>bK,reLU:()=>xK,repeatVector:()=>OK,reshape:()=>PK,rnn:()=>m6,separableConv2d:()=>NK,simpleRNN:()=>l6,simpleRNNCell:()=>u6,softmax:()=>wK,spatialDropout1d:()=>RK,stackedRNNCells:()=>f6,thresholdedReLU:()=>_K,timeDistributed:()=>h6,upSampling2d:()=>TK,zeroPadding2d:()=>KK});var fq=0;function Ig(){return fq++}var Ng={};function cl(r=""){return r in Ng||(Ng[r]=0),Ng[r]+=1,r+Ng[r].toString()}function Sg(r){return Array.isArray(r)&&Array.isArray(r[0])}function bp(r){return r.length===0?[]:Array.isArray(r[0])?r:[r]}function Fe(r){let e;if(Array.isArray(r)){if(r.length!==1)throw new z(`Expected Tensor length to be 1; got ${r.length}`);e=r[0]}else e=r;return e}function Ze(r){if(Array.isArray(r)&&Array.isArray(r[0])){if(r.length===1)return r=r,r[0];throw new z(`Expected exactly 1 Shape; got ${r.length}`)}else return r}function wp(r){let e=0;for(let t of r)t.shape.length===0?e+=1:e+=t.shape.reduce((o,n)=>o*n);return e}var u1="Variable",yf=class{constructor(e,t="float32",o=u1,n=!0,s=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=Ig(),o=o==null?u1:o,this.originalName=wg(o),this.name=_g(this.originalName),this.trainable_=n,this.constraint=s,this.val=Vw(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),dq(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}};function dq(r,e){if(r.shape.toString()!==e.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(r.shape)+" vs. "+JSON.stringify(e.shape))}function bf(r){return r.map(e=>e.read())}function _p(r){r.forEach(e=>{e[0].write(e[1])})}var St=class{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}},Br=class{constructor(e,t,o,n,s,a,i){this.dtype=e,this.shape=t,this.sourceLayer=o,this.inputs=n,this.callArgs=s,this.outputTensorIndex=i,this.id=Ig(),a!=null&&(this.originalName=wg(a),this.name=_g(this.originalName)),this.rank=t.length}},hq=0,pl=class{constructor(e,t){this.callArgs=t,this.id=hq++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(let o of e.inboundLayers)o!=null&&o.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){let e=[];for(let t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},gq=0,Pe=class extends Q.Serializable{constructor(e={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=gq++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){let o=this.getClassName();t=jn(o)+"_"+cl(o)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let o;if(e.batchInputShape!=null)o=e.batchInputShape;else if(e.inputShape!=null){let s=null;e.batchSize!=null&&(s=e.batchSize),o=[s].concat(e.inputShape)}this.batchInputShape=o;let n=e.dtype;n==null&&(n=e.inputDType),n==null&&(n="float32"),this.dtype=n}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new Mr(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new z(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return gr(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return gr(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Io(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new Io(`Layer ${this.name} is not connected, no input to return.`);return gr(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new Io(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Io(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return gr(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=yt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=yt(this.inputSpec);if(e.length!==t.length)throw new z(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let o=0;os.maxNDim)throw new z(`Input ${o} is incompatible with layer ${this.name}: expected max_ndim=${s.maxNDim}, found ndim=${a}`);if(s.minNDim!=null&&a=0?i[u]:i[i.length+u];if(c!=null&&[c,null].indexOf(p)===-1)throw new z(`Input ${o} is incompatible with layer ${this.name}: expected axis ${u} of input shape to have value ${c} but got shape ${i}.`)}}if(s.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(e);let a=[];for(let i of yt(e))a.push(i.shape);this.build(gr(a)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&s&&(this._refCount=1)}if(this.assertInputCompatibility(e),s){let a=this.call(e,t),i=yt(a),l=[];for(let u of i)o.indexOf(u)!==-1&&(u=u.clone()),l.push(u);if(a=gr(l),this.activityRegularizer!=null)throw new Ne("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return a}else{let a=xq(e),i=this.computeOutputShape(a),l,u=yq(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?a[0]:a),i!=null&&i.length>0&&Array.isArray(i[0])?l=i.map((c,p)=>new Br(u,c,this,yt(e),t,this.name,p)):l=new Br(u,i,this,yt(e),t,this.name),this.addInboundNode(e,l,null,null,a,i,t),this._refCount++,this.activityRegularizer!=null)throw new Ne("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return l}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((o,n)=>{o!=null&&e[n]!=null&&e[n]!==o&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new Io(`The layer ${this.name} has never been called and thus has no defined output shape.`);let e=[];for(let t of this.inboundNodes){let o=JSON.stringify(t.outputShapes);e.indexOf(o)===-1&&e.push(o)}if(e.length===1){let t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new Io(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Mr(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return wp(this.weights)}build(e){this.built=!0}getWeights(e=!1){return bf(e?this.trainableWeights:this.weights)}setWeights(e){G(()=>{let t=this.weights;if(t.length!==e.length)throw new z(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;let o=[],n=bf(t);for(let s=0;ss.apply(u.read())),a==null&&(a=!0),a?this._trainableWeights.push(u):this._nonTrainableWeights.push(u),u}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=yt(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(o=>{if(o!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,o,n,s,a,i=null){let l=yt(e);t=yt(t),o=yt(o),n=yt(n),s=bp(s),a=bp(a);let u=[],c=[],p=[];for(let m of l)u.push(m.sourceLayer),c.push(m.nodeIndex),p.push(m.tensorIndex);new pl({outboundLayer:this,inboundLayers:u,nodeIndices:c,tensorIndices:p,inputTensors:l,outputTensors:t,inputMasks:o,outputMasks:n,inputShapes:s,outputShapes:a},i);for(let m=0;me.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount==0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}};function xq(r){r=yt(r);let e=[];for(let t of r)e.push(t.shape);return gr(e)}function yq(r){return"float32"}function d_(r,e,t){if((e==null||t!=null&&t>0)&&(e=r.sourceLayer,t=r.nodeIndex),e.inboundNodes.length===0)return[r];{let o=e.inboundNodes[t];if(o.inboundLayers.length===0)return o.inputTensors;{let n=[];for(let s=0;s0){let n=await Promise.all(e);for(let s=0;see(this.totals[n],P(s,o)));this.totals[n]=i,a!=null&&a.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(let o of this.params.metrics)this.totals[o]!=null&&(typeof this.totals[o]=="number"?t[o]=this.totals[o]/this.seen:G(()=>{let n=P(me(1,this.seen),this.totals[o]);t[o]=n,this.totals[o].dispose(),Dt(t[o])}))}},Dg=class extends ml{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(let o in t)this.history[o]==null&&(this.history[o]=[]),this.history[o].push(t[o])}async syncData(){let e=[],t=[],o=[];for(let s in this.history){let a=this.history[s];for(let i=0;inew $g(o,e))}var uo=class{constructor(){}static registerCallbackConstructor(e,t){y.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),uo.checkForDuplicate(t),uo.constructors[e]==null&&(uo.constructors[e]=[]),uo.constructors[e].push(t)}static checkForDuplicate(e){for(let t in uo.constructors)uo.constructors[+t].forEach(n=>{if(n===e)throw new z("Duplicate callback constructor.")})}static clear(){uo.constructors={}}static createCallbacks(e){let t=[];for(let o in uo.constructors){let n=+o;e>=n&&t.push(...uo.constructors[n])}return t.map(o=>new o)}};uo.constructors={};function Fg(r,e,t,o,n,s,a,i,l){let u=new Dg,c=[new p1,...uo.createCallbacks(e)];r!=null&&c.push(...r),c.push(u);let p=new Eg(c);return p.setParams({epochs:t,initialEpoch:o,samples:n,steps:s,batchSize:a,verbose:e,doValidation:i,metrics:l}),{callbackList:p,history:u}}function Qr(r,e={},t=!1){return Li(r,Q.SerializationMap.getMap().classNameMap,e,"layer",t)}function wf(r,e){return G(()=>{r.dtype!=="float32"&&(r=r.asType("float32"));let t=ge(qu(r),e,!0),o=va(t.shape,Jt()),n=xt(Yr(t,o));return me(r,n)})}function Gi(r,e){return G(()=>ht(qu(ce(e,r)),-1))}function kp(r,e){return G(()=>ht(Nt(ce(e,r)),-1))}function fl(r,e){return G(()=>{let t=ce(r,e),o=ir(Nt(r),Jt(),Number.MAX_VALUE),n=Nt(me(t,o));return P(100,ht(n,-1))})}function wq(r,e){return G(()=>{let t=ir(e,Jt(),Number.MAX_VALUE),o=lr(ee(1,t)),n=ir(r,Jt(),Number.MAX_VALUE),s=lr(ee(1,n));return ht(qu(ce(o,s)),-1)})}function _q(r,e){return G(()=>{let t=Yr(0,ce(1,P(r,e)));return ht(qu(t),-1)})}function kq(r,e){return G(()=>{let t=Yr(0,ce(1,P(r,e)));return ht(t,-1)})}function vq(r,e){return G(()=>{let t=ge(P(r,e),-1),o=ur(P(ce(1,r),e),-1);return Yr(0,ee(1,ce(o,t)))})}function Cq(r,e){return G(()=>{let t=Math.log(2),o=ce(e,r),n=ce(ee(o,Ts(P(-2,o))),t);return ht(n,-1)})}function Xu(r,e,t=!1){return G(()=>{if(t)e=Aa(e);else{let o=ge(e,e.shape.length-1,!0);e=me(e,o)}return e=ir(e,Jt(),1-Jt()),He(ge(P(r.toFloat(),lr(e)),e.shape.length-1))})}function vp(r,e,t=!1){return G(()=>{let o=Ss(e1(r)).toInt();e=ir(e,Jt(),1-Jt());let n=e.shape,s=Cs(o,n[n.length-1]).reshape(n);return Xu(s,e,t)})}function Iq(r,e){if(!y.arraysEqual(r.shape,e.shape))throw new z(`logits and labels must have the same shape, but got shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(e.shape)}`);return G(()=>{let t=e.relu(),o=e.abs().neg();return t.sub(e.mul(r)).add(o.exp().log1p())})}function Cp(r,e){return G(()=>{let t;return t=ir(e,Jt(),1-Jt()),t=lr(me(t,ce(1,t))),ht(Iq(r,t),-1)})}function Nq(r,e){return G(()=>{let t=ir(r,Jt(),1),o=ir(e,Jt(),1);return ge(P(r,lr(me(t,o))),-1)})}function Sq(r,e){return G(()=>{let t=lr(ee(Jt(),e));return ht(ce(e,P(r,t)),-1)})}function _f(r,e){return G(()=>{let t=wf(r,-1),o=wf(e,-1),n=P(t,o);return He(ge(n,-1))})}var kf={meanSquaredError:Gi,meanAbsoluteError:kp,meanAbsolutePercentageError:fl,meanSquaredLogarithmicError:wq,squaredHinge:_q,hinge:kq,categoricalHinge:vq,logcosh:Cq,categoricalCrossentropy:Xu,sparseCategoricalCrossentropy:vp,binaryCrossentropy:Cp,kullbackLeiblerDivergence:Nq,poisson:Sq,cosineProximity:_f};function Og(r){if(typeof r=="string"){if(r in kf)return kf[r];let e=`Unknown loss ${r}`;throw r.toLowerCase().includes("softmaxcrossentropy")&&(e=`Unknown loss ${r}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new z(e)}else return r}function vf(r,e){return G(()=>{let t=P(.5,tr(e)),o=Fa(er(e,t),r.dtype);return ht(vo(r,o),-1)})}function Cf(r,e){return G(()=>Fa(vo(nl(r,-1),nl(e,-1)),"float32"))}function m1(r,e){return G(()=>hr(r.equal(1),e.equal(1)).sum().cast("float32"))}function Tq(r,e){return G(()=>hr(r.equal(1),e.equal(0)).sum().cast("float32"))}function Aq(r,e){return G(()=>hr(r.equal(0),e.equal(1)).sum().cast("float32"))}function h_(r,e){return G(()=>{let t=m1(r,e),o=Aq(r,e),n=t.add(o);return $t(er(n,0),t.div(n),0).cast("float32")})}function f1(r,e){return G(()=>{let t=m1(r,e),o=Tq(r,e),n=t.add(o);return $t(er(n,0),t.div(n),0).cast("float32")})}function Pg(r,e){return Cp(r,e)}function Mg(r,e){return r.rank===e.rank&&(r=r.squeeze([r.rank-1])),e=e.argMax(-1),e.dtype!==r.dtype&&(e=e.asType(r.dtype)),vo(r,e).asType("float32")}var Eq=Gi,Dq=Gi,$q=kp,Rq=kp,Fq=fl,Oq=fl,If=Xu,Pq=_f,g_=vp,Lg={binaryAccuracy:vf,categoricalAccuracy:Cf,precision:h_,categoricalCrossentropy:If,sparseCategoricalCrossentropy:g_,mse:Eq,MSE:Dq,mae:$q,MAE:Rq,mape:Fq,MAPE:Oq,cosine:Pq};function d1(r){if(typeof r=="string"&&r in Lg)return Lg[r];if(typeof r!="string"&&r!=null)return r;throw new z(`Unknown metric ${r}`)}function Nf(r){if(Bo(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r=="string")return r;{let e;for(let t of Object.keys(kf))if(kf[t]===r){e=t;break}if(e!==void 0)return e;for(let t of Object.keys(Lg))if(Lg[t]===r){e=t;break}return e!==void 0?e:r.name}}function h1(r){let e={Adagrad:()=>ll.adagrad(.01),Adadelta:()=>ll.adadelta(1,.95,Jt()),Adam:()=>ll.adam(.001,.9,.999,Jt()),Adamax:()=>ll.adamax(.002,.9,.999,Jt(),0),RMSProp:()=>ll.rmsprop(.001,.9,0,Jt()),SGD:()=>ll.sgd(.01)};if(e.adagrad=e.Adagrad,e.adadelta=e.Adadelta,e.adam=e.Adam,e.adamax=e.Adamax,e.rmsprop=e.RMSProp,e.sgd=e.SGD,r in e)return e[r]();throw new z(`Unknown Optimizer ${r}`)}var g1=1*1024*1024;function y_(r,e,t=!1){if(r==null||typeof r!="object"||Object.getPrototypeOf(r)!==Object.prototype||!x_(r))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(t){let o=JSON.stringify(r);o.length>g1&&console.warn(`User-defined metadata of model "${e}" is too large in size (length=${o.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${g1}.`)}}function x_(r){if(r===null)return!0;if(typeof r=="object")if(Object.getPrototypeOf(r)===Object.prototype){let e=Object.keys(r);for(let t of e)if(typeof t!="string"||!x_(r[t]))return!1;return!0}else if(Array.isArray(r)){for(let e of r)if(!x_(e))return!1;return!0}else return!1;else{let e=typeof r;return e==="string"||e==="number"||e==="boolean"}}function x1(r,e,t,o=console.log){let n=Lq(r),s=["Layer (type)","Output shape","Param #"];n?(e=e||65,t=t||[.45,.85,1]):(e=e||98,t=t||[.33,.55,.67,1]),t[t.length-1]<=1&&(t=t.map(c=>Math.floor(e*c)));let a;if(!n){s.push("Receives inputs"),a=[];for(let c in r.nodesByDepth)a.push(...r.nodesByDepth[c])}o("_".repeat(e)),zg(s,t,o),o("=".repeat(e));let i=r.layers;for(let c=0;c1||n.length===1&&n[0].inboundLayers.length>1){e=!1;break}o.push(...n)}if(e)for(let n of r.layers){let s=!1;for(let a of n.inboundNodes)if(o.indexOf(a)!==-1)if(s){e=!1;break}else s=!0;if(!e)break}return e}function zg(r,e,t=console.log){let o="";for(let n=0;n0&&(o=o.slice(0,o.length-1)+" "),o+=r[n],o=o.slice(0,e[n]),o+=" ".repeat(e[n]-o.length);t(o)}function zq(r,e,t){let o;try{o=JSON.stringify(r.outputShape)}catch(i){o="multiple"}let n=r.name,s=r.getClassName(),a=[`${n} (${s})`,o,r.countParams().toString()];zg(a,e,t)}function Bq(r,e,t,o){let n;try{n=JSON.stringify(r.outputShape)}catch(c){n="multiple"}let s=[];for(let c of r.inboundNodes)if(!(t!=null&&t.length>0&&t.indexOf(c)===-1))for(let p=0;pd.name),l=[],u=e.names();for(let d of i)u.indexOf(d)!==-1?l.push(e.getValue(d)):l.push(null);o!=null&&(o.maxNumTensors=-Infinity,o.minNumTensors=Infinity);let c=i.join(",")+"|"+e.names().join(","),p,m;if(b_[c]==null){let d=Gq(a,e);p=d.sorted,m=d.recipientCounts,b_[c]=p,b1[c]=m}p=b_[c],m={},n||Object.assign(m,b1[c]);let f=new Os(e);for(let d=0;do.maxNumTensors&&(o.maxNumTensors=F),F0,()=>"Expected at least one fetch, got none");let t=[],o={};if(r.length===1){let n=w1(r[0],e);t=n.sorted,o=n.recipientMap}else{let n=new Set;for(let s of r){let{sorted:a,recipientMap:i}=w1(s,e);for(let l of a)n.has(l.name)||(t.push(l),n.add(l.name));for(let l in i)o[l]==null&&(o[l]=new Set),i[l].forEach(u=>o[l].add(u))}}return{sorted:t,recipientCounts:Uq(o)}}function Uq(r){let e={};for(let t in r)e[t]=r[t].size;return e}function w1(r,e){let t=new Set,o=[],n={};for(let i of e.names())t.add(i);let s=[],a=[];for(s.push(r);s.length>0;){let i=s[s.length-1];if(t.has(i.name)){s.pop();continue}let l=a[a.length-1]===s.length-1;if(i.inputs.length===0||l)s.pop(),o.push(i),t.add(i.name),l&&a.pop();else{a.push(s.length-1);for(let u of i.inputs)n[u.name]==null&&(n[u.name]=new Set),n[u.name].add(i.name),!t.has(u.name)&&s.push(u)}}return{sorted:o,recipientMap:n}}function Wq(r){let e;if(r.sourceLayer.inboundNodes.length===1)e=r.sourceLayer.output;else{let t=null;for(let o=0;ow.name)}`);qn(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(w=>w.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let w of this.outputs){let b=w.sourceLayer,_=w.nodeIndex,k=w.tensorIndex;this.outputLayers.push(b),this.outputLayersNodeIndices.push(_),this.outputLayersTensorIndices.push(k)}for(let w of this.inputs){let b=w.sourceLayer,_=w.nodeIndex,k=w.tensorIndex;Bo(_===0,"input layer has >1 nodes"),Bo(k===0,"input layer has >1 tensors"),this.inputLayers.push(b),this.inputLayersNodeIndices.push(_),this.inputLayersTensorIndices.push(k)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let w=0;ww.shape),this.internalOutputShapes=this.outputs.map(w=>w.shape);let t={},o={},n={},s={},a={},i=[],l=(w,b,_,k,A,N)=>{(k==null||A==null||N==null)&&(k=w.sourceLayer,A=w.nodeIndex,N=w.tensorIndex);let $=k.inboundNodes[A];if(_.indexOf($)!==-1)throw new Mr(`The tensor ${w.name} at layer "${k.name}" is part of a cycle.`);if(b.indexOf($)!==-1)return;this.containerNodes.add(Vo.nodeKey(k,A)),k.id in a||(a[k.id]=Object.keys(a).length),_.indexOf($)===-1&&_.push($);let F=$.inboundLayers.length;for(let M=0;M=0;)_.splice(_.indexOf($),1);i.push($)},u=[],c=[];for(let w of this.outputs)l(w,u,c);let p=i.slice().reverse();for(let w of p){o[w.id]=w,w.id in t||(t[w.id]=0);let b=t[w.id],_=n[w.outboundLayer.id]==null?0:n[w.outboundLayer.id];b=Math.max(b,_),n[w.outboundLayer.id]=b,s[w.outboundLayer.id]=w.outboundLayer,t[w.id]=b;for(let k=0;kparseInt(w,10)).sort(of);this.layers=[];for(let w of d){let b=f[w];b.sort((_,k)=>{let A=a[_.id],N=a[k.id];return AN?1:0});for(let _ of b)_ instanceof Vo&&this.internalContainerRefs.push(_),this.layers.push(_)}this.layersByDepth=f,d=Object.keys(m).map(w=>parseInt(w,10)).sort(of);let h=this.inputs.slice(),g=[];for(let w of d)for(let b of m[w]){let _=b.outboundLayer;if(_!=null){for(let k of b.inputTensors)if(h.indexOf(k)===-1)throw new Mr(`Graph disconnected: cannot obtain value for tensor ${k} at layer "${_.name}". The following previous layers were accessed without issue: ${g}`);for(let k of b.outputTensors)h.push(k);g.push(_.name)}}this.nodesByDepth=m;let x=this.layers.map(w=>w.name);for(let w of x){let b=x.filter(_=>_===w).length;if(b!==1)throw new Mr(`The name "${w}" is used ${b} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(x))}this.outboundNodes=[],this.inboundNodes=[],new pl({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(w=>null),outputMasks:this.outputs.map(w=>null),inputShapes:this.inputs.map(w=>w.shape),outputShapes:this.outputs.map(w=>w.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount==0){for(let t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(let t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(o=>o.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new z("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(let t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let o of this.layers)t.push(...o.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){let o={},n=0;for(let a of this.layers)for(let i of a.weights){if(o[i.originalName]!=null)throw new z(`Duplicate weight name: ${i.originalName}`);o[i.originalName]=i,n++}let s=[];for(let a in e){let i=a;if(o[a]==null){let l=a.split("/");i=l.slice(0,-2).concat([l[l.length-1]]).join("/")}if(o[i]!=null)s.push([o[i],e[a]]);else if(t)throw new z(`Provided weight data has no target variable: ${a}`);delete o[i]}if(t){let a=[];for(let i in o)a.push(i);if(a.length>0)throw new z(`${a.length} of ${n} weights are not set: ${a}`)}_p(s)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${dl}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let o=Bg(this.updatedConfig());return t?JSON.stringify(o):o}call(e,t){return G(()=>{e=yt(e);let o=new Os;for(let n=0;n{e=yt(e);let o;return t==null?o=Un(null,e.length):o=yt(t),this.runInternalGraph(e,o)[1]})}computeOutputShape(e){let t=bp(e);if(t.length!==this.inputLayers.length)throw new z(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let o={};for(let i=0;iparseInt(i,10)).sort(of);if(n.length>1)for(let i of n){let l=this.nodesByDepth[i];for(let u of l){let c=u.outboundLayer;if(this.inputLayers.map(h=>h.id).indexOf(c.id)!==-1)continue;let p=[];for(let h=0;hparseInt(l,10)).sort(of);for(let l of n){let u=this.nodesByDepth[l];for(let c of u){let p=c.outboundLayer,m=c.inputTensors,f=c.outputTensors,d=new Array;for(let h of m)h.id in o&&d.push(o[h.id]);if(d.length===m.length){let h={},g,x,w,b;if(c.callArgs!=null&&(h=c.callArgs),d.length===1){let[_,k]=d[0];h.mask==null&&(h.mask=k),w=yt(p.call(_,h)),b=yt(p.computeMask(_,k)),g=[_],x=[k]}else g=d.map(_=>_[0]),x=d.map(_=>_[1]),h.mask==null&&(h.mask=x),w=yt(p.call(g,h)),b=yt(p.computeMask(g,x));if(p.activityRegularizer)throw new Ne("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let _=0;_{let e=[];for(let t of this.layers)for(let o=0;o0){let h=[];for(let g=0;g0&&g.apply(gr(w),b)}function u(g){let x=g.name,w=Qr(g,t.customObjects!=null?t.customObjects:{});w.setFastWeightInitDuringBuild(n),s[x]=w,g.inboundNodes.forEach(_=>{if(!(_ instanceof Array))throw new z(`Corrupted configuration, expected array for nodeData: ${_}`);i(w,_)})}let c=t.name,p=t.layers;for(let g of p)u(g);for(;!LT(a);)for(let g of p){let x=s[g.name];if(x.name in a){let w=a[x.name];delete a[x.name];for(let b of w)l(x,b)}}let m=[],f=[],d=t.inputLayers;for(let g of d){let x=g[0],w=g[1],b=g[2];Bo(x in s);let k=s[x].inboundNodes[w].outputTensors;m.push(k[b])}let h=t.outputLayers;for(let g of h){let x=g[0],w=g[1],b=g[2];Bo(x in s);let k=s[x].inboundNodes[w].outputTensors;f.push(k[b])}return new e({inputs:m,outputs:f,name:c})}get stateful(){if(this._stateful)throw new z("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let e of this.layers)if(e.stateful)return!0;return!1}resetStates(){G(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function jq(r,e,t){let o=e.length;if(r==null||Array.isArray(r)&&r.length===0)return e.map(n=>null);if(o===1)return Array.isArray(r)&&r.length===1?r:typeof r=="object"&&e[0]in r?[r[e[0]]]:[r];if(Array.isArray(r)){if(r.length!==o)throw new Error(`Provided ${t} is an array of ${r.length} element(s), but the model has ${o} outputs. Make sure a set of weights is provided for each model output.`);return r}else if(typeof r=="object"&&Object.keys(r).length>0&&typeof r[Object.keys(r)[0]]=="object"){let n=[];return e.forEach(s=>{s in r?n.push(r[s]):n.push(null)}),n}else throw new Error(`The model has multiple (${o}) outputs, so ${t} must be either an array with ${o} elements or an object with ${e} keys. Provided ${t} not understood: ${JSON.stringify(r)}`)}function Vg(r,e){return jq(r,e,"classWeight")}async function Gg(r,e,t,o){if(e!=null||o!=null)throw new Error("Support sampleWeight is not implemented yet");if(t!=null){let n=G(()=>{if(r.shape.length===1)return r.clone();if(r.shape.length===2)if(r.shape[1]>1){let i=1;return r.argMax(i)}else{if(r.shape[1]===1)return r.reshape([r.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${r.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${r.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await n.data());Te(n);let a=[];return s.forEach(i=>{if(t[i]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${i} exists in the data but not in classWeight`);a.push(t[i])}),Gt(a,"float32")}else return null}function _1(r,e){return P(r,e)}var Hq=32;function v1(r,e){let t,o,n=e;t=n.xs,o=n.ys,y.assert(t!=null&&o!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${e}`);let s=k1("input",r.inputNames,t),a=k1("output",r.outputNames,o),i=s[0].shape[0];y.assert(s.length===r.inputs.length,()=>`LayersModel has ${r.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(r.inputNames)})`),y.assert(a.length===r.outputs.length,()=>`LayersModel has ${r.outputs.length} outputs, but the dataset provides ${a.length} outputs. (Expected output keys: ${JSON.stringify(r.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${r.inputNames[l]} has ${s[l].shape[0]}; expected ${i} based on input ${r.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${r.outputNames[l]} has ${a[l].shape[0]}; expected ${i} based on input ${r.inputNames[0]}.`);return{xs:s,ys:a}}function k1(r,e,t){if(t instanceof Ve)return[t];if(Array.isArray(t))return y.assert(t.length===e.length,()=>`Received an array of ${t.length} Tensors, but expected ${e.length} to match the ${r} keys ${e}.`),t;{let o=[];for(let n of e){if(t[n]==null)throw new z(`The feature data generated by the dataset lacks the required ${r} key '${n}'.`);o.push(t[n])}return o}}function qq(r){if(r.length===3)throw new Ne("Validation with sample weights is not implemented yet.");return{xs:r[0],ys:r[1]}}async function I1(r,e,t){let o=t.batchesPerEpoch!=null;if(y.assert(r.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),y.assert(t!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),y.assert(t.epochs!=null&&t.epochs>0&&Number.isInteger(t.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${t.epochs}`),y.assert(!o||t.batchesPerEpoch>0&&Number.isInteger(t.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${t.batchesPerEpoch}`),y.assert(t.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),r.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");r.isTraining=!0;try{let n=t.validationData!=null,s,a;if(n)if(C1(t.validationData))y.assert(t.validationBatches==null||t.validationBatches>0&&Number.isInteger(t.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${t.validationBatches}`);else{let g=qq(t.validationData);s=g.xs,a=g.ys}let i=r.makeTrainFunction(),l=r.getDedupedMetricsNames(),u;n?u=l.slice().concat(l.map(g=>"val_"+g)):u=l.slice();let c=Rg(t.callbacks,t.yieldEvery),p=t.verbose==null?1:t.verbose,{callbackList:m,history:f}=Fg(c,p,t.epochs,null,null,Kq(e,t),null,n,u);m.setModel(r),r.history=f,await m.onTrainBegin(),r.stopTraining_=!1;let d=t.initialEpoch==null?0:t.initialEpoch,h=await e.iterator();for(;d=t.batchesPerEpoch:b.done){if(n){let _;C1(t.validationData)?_=yt(await r.evaluateDataset(t.validationData,{batches:t.validationBatches})):_=yt(r.evaluate(s,a,{batchSize:t.validationBatchSize==null?Hq:t.validationBatchSize,verbose:0}));for(let k=0;k0)throw new Ne("Verbose mode is not implemented yet.");y.assert(!o||t.batches>0&&Number.isInteger(t.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(t.batches)}`);let a=Xq(e)?e:await e.iterator(),i=0,l=0;for(;o?l{if(u.value){let{xs:c,ys:p}=v1(r,u.value),m=c.concat(p),f=G(()=>n(m));if(Te(m),l===0)for(let h=0;hee(s[h],P(d,g))),l>0&&Te(x)}Te(f),i+=d,++l}return s}),u.done){o&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${t.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let u=0;u0&&Number.isInteger(r),()=>`batchSize is required to be a positive integer, but got ${r}`)}function Ip(r,e,t){return r==null?[null]:Array.isArray(r)?r.map(o=>Pa(o,e,t-e)):Pa(r,e,t-e)}function Ug(r,e){return G(()=>r==null?null:Array.isArray(r)?r.map(t=>Ug(t,e)):vg(r,e.dtype==="int32"?e:e.toInt()))}function jg(r,e){let t=[],o=0,n=null;for(;o=r&&(n=r),t.push([o,n]),o=n;return t}async function Yq(r,e,t,o,n,s,a,i,l,u,c,p,m,f,d){n==null&&(n=32),s==null&&(s=1),c==null&&(c=!0),m==null&&(m=0);let h=!1;if(l!=null&&u!=null&&(h=!0),d!=null&&(h=!0,f==null))throw new z("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=r.checkNumSamples(t,n,f,"steps_per_epoch"),x;g!=null&&(x=Lr(0,g)),a==null&&(a=1);let{callbackList:w,history:b}=Fg(i,a,s,m,g,f,n,h,p);w.setModel(r),r.history=b,await w.onTrainBegin(),r.stopTraining_=!1;for(let _=m;_{let M=N[$][0],V=N[$][1],W=Pa(A,M,V-M);F.batch=$,F.size=V-M;let U=Ug(t,W),H=e(U);for(let q=0;q0){if(d=!0,o.validationData.length===2)a=o.validationData[0],i=o.validationData[1];else throw o.validationData.length===3?new Ne("validationData including sample weights is not supported yet."):new z(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${o.validationData} is invalid.`);let N=!0,$=await r.standardizeUserData(a,i,null,null,N,p);l=$[0],u=$[1],h=l.concat(u)}else if(o.validationSplit!=null&&o.validationSplit>0&&o.validationSplit<1){d=!0;let N=Math.floor(n[0].shape[0]*(1-o.validationSplit)),$=n[0].shape[0];l=Ip(n,N,$),n=Ip(n,0,N),u=Ip(s,N,$),s=Ip(s,0,N),h=l.concat(u)}else o.validationSteps!=null&&(d=!0);let g=n.concat(s).concat(c);r.checkTrainableWeightsConsistency();let x=r.makeTrainFunction(),w=r.getDedupedMetricsNames(),b,_;d?(r.makeTestFunction(),b=r.testFunction,_=w.slice().concat(w.map(N=>"val_"+N))):(b=null,h=[],_=w.slice());let k=Rg(o.callbacks,o.yieldEvery);return await Yq(r,x,g,w,p,o.epochs,o.verbose,k,b,h,o.shuffle,_,o.initialEpoch,null,null)}finally{r.isTraining=!1,hl(n,e),hl(s,t),hl(l,a),hl(u,i),c!=null&&Te(c)}}function w_(r){let e=[];r instanceof Ve&&(r=[r]);for(let t=0;tt.push(n.id));else if(e!=null)for(let n in e){let s=e[n];t.push(s.id)}let o=[];if(r instanceof Ve)t.indexOf(r.id)===-1&&o.push(r);else if(Array.isArray(r))r.forEach(n=>{t.indexOf(n.id)===-1&&o.push(n)});else if(r!=null)for(let n in r){let s=r[n];t.indexOf(s.id)===-1&&o.push(s)}o.forEach(n=>{n.isDisposed||n.dispose()})}function Zq(r){return r instanceof Ve}function __(r){return Array.isArray(r)}function T1(r){return!Zq(r)&&!__(r)}function A1(r,e,t,o=!0,n=""){if(e==null||e.length===0){if(r!=null){let a=!1;if(__(r)&&r.length>0)a=!0;else if(T1(r)){for(let i in r)if(r.hasOwnProperty(i)){a=!0;break}}else a=!0;if(a)throw new z(`Error when checking model ${n} expected no data, but got ${r}`)}return[]}if(r==null)return e.map(a=>null);let s;if(T1(r)){r=r,s=[];for(let a of e){if(r[a]==null)throw new z(`No data provided for "${a}". Need data for each key in: ${e}`);s.push(r[a])}}else if(__(r)){if(r=r,r.length!==e.length)throw new z(`Error when checking model ${n}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${e.length} Tensor(s), but instead got the following list of Tensor(s): ${r}`);s=r}else{if(r=r,e.length>1)throw new z(`The model ${n} expects ${e.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${r.shape}`);s=[r]}if(s=w_(s),t!=null)for(let a=0;a=0&&u!==c)throw new z(`Error when checking ${n}: expected ${e[a]} to have shape [${t[a]}], but got array with shape [${i.shape}].`)}}return s}function Jq(r,e,t){let o=qn(r.map(s=>s.shape[0]));o.sort();let n=qn(e.map(s=>s.shape[0]));if(n.sort(),o.length>1)throw new z(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(r.map(s=>s.shape))}`);if(n.length>1)throw new z(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(s=>s.shape))}`);if(o.length>0&&n.length>0&&!y.arraysEqual(o,n))throw new z(`Input Tensors should have the same number of samples as target Tensors. Found ${o[0]} input sample(s) and ${n[0]} target sample(s).`)}function Qq(r,e,t){let o=[Gi,Cp,Xu];for(let n=0;n1)throw new z(`The model expects ${e.length} ${n} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(r.shape)}.`);s=[r]}if(t!=null)for(let a=0;a[]);let t;if(typeof r=="string"||typeof r=="function")t=[r];else if(Array.isArray(r)||typeof r=="object")t=r;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${r}`);if(Array.isArray(t))return e.map(o=>t);{let o=[];for(let n of e){let s=t.hasOwnProperty(n)?t[n]:[];Array.isArray(s)||(s=[s]),o.push(s)}return o}}var tK="layers-model",No=class extends Vo{constructor(e){super(e);this.isTraining=!1}summary(e,t,o=console.log){if(!this.built)throw new z("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");x1(this,e,t,o)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=h1(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Pr))throw new z("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(let a in e.loss)if(this.outputNames.indexOf(a)===-1)throw new z(`Unknown entry in loss dictionary: "${a}". Only expected the following keys: ${this.outputNames}`);for(let a of this.outputNames)e.loss[a]==null&&console.warn(`Output "${a}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${a} during training`),t.push(Og(e.loss[a]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new z(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);t=e.loss.map(i=>Og(i))}else{let a=Og(e.loss);this.outputs.forEach(i=>{t.push(a)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let a=0;a{for(let a=0;a1&&(this.metricsTensors.push([i,a]),this.metricsNames.push(this.outputNames[a]+"_loss"))}});let n=eK(e.metrics,this.outputNames),s=(a,i,l)=>{this.outputNames.length>1&&(i=this.outputNames[a]+"_"+i),this.metricsNames.push(i),this.metricsTensors.push([l,a])};Rs("metric",()=>{for(let a=0;a{let c="",p,m,f;for(let d of u){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){let g=this.internalOutputShapes[a];g[g.length-1]===1||this.lossFunctions[a]===Cp?["accuracy","acc"].indexOf(d)!==-1?m=vf:["crossentropy","ce"].indexOf(d)!==-1&&(m=Pg):this.lossFunctions[a]===vp?["accuracy","acc"].indexOf(d)!==-1?m=Mg:["crossentropy","ce"].indexOf(d)!==-1&&(m=g_):["accuracy","acc"].indexOf(d)!==-1?m=Cf:["crossentropy","ce"].indexOf(d)!==-1&&(m=If);let x;["accuracy","acc"].indexOf(d)!==-1?x="acc":["crossentropy","ce"].indexOf(d)!==-1&&(x="ce"),f=m,p=c+x}else f=d1(d),p=c+Nf(d);let h;Rs(p,()=>{h=f}),s(a,p,h)}})(i)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,o={}){let n=o.batchSize==null?32:o.batchSize;Wg(n);let s=!0,a=this.standardizeUserDataXY(e,t,s,n);try{let i=a[0].concat(a[1]);this.makeTestFunction();let l=this.testFunction,u=this.testLoop(l,i,n,o.verbose,o.steps);return gr(u)}finally{hl(a[0],e),hl(a[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),N1(this,e,t)}checkNumSamples(e,t,o,n="steps"){let s;if(o!=null){if(s=null,t!=null)throw new z(`If ${n} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?s=e[0].shape[0]:s=e.shape[0];else throw new z(`Either the input data should have a defined shape, or ${n} shoud be specified.`);return s}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new z("`outputs` is an empty Array, which is not allowed.");let o=Array.isArray(t),n=o?t:[t],s=this.retrieveSymbolicTensors(n),a=new Os;if(e instanceof Ve&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new z(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let l=0;li.name);for(let i=0;i0){let n=[];throw t.forEach((s,a)=>{s==null&&n.push(e[a])}),new z(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(n)}`)}return t}predictLoop(e,t=32,o=!1){return G(()=>{let n=this.checkNumSamples(e);if(o)throw new Ne("Verbose predictLoop() is not implemented yet.");let s=jg(n,t),a=this.outputs.map(i=>[]);for(let i=0;i{let u=s[i][0],c=s[i][1],p=Ip(e,u,c),m=[];if(Array.isArray(p))for(let d=0;da[c].push(u));return gr(a.map(i=>Ye(i,0)))})}predict(e,t={}){let o=w_(e);E1(o,this.inputNames,this.feedInputShapes,!1);try{let n=t.batchSize==null?32:t.batchSize;return Wg(n),this.predictLoop(o,n)}finally{hl(o,e)}}predictOnBatch(e){E1(e,this.inputNames,this.feedInputShapes,!0);let t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,o=!0,n){if(this.optimizer_==null)throw new Mr("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let s=[];for(let a=0;a0&&e[0].shape[0]%n!=0)throw new z(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${n}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,o,n,s=!0,a){let[i,l]=this.standardizeUserDataXY(e,t,s,a);if(o!=null)throw new Error("sample weight is not supported yet.");let u=null;if(n!=null){let c=Vg(n,this.outputNames);u=[];for(let p=0;p{let a=this.checkNumSamples(t,o,s,"steps"),i=[];if(n>0)throw new Ne("Verbose mode is not implemented yet.");if(s!=null)throw new Ne("steps mode in testLoop() is not implemented yet");{let l=jg(a,o),u=Gt(Lr(0,a));for(let c=0;c1&&(s+=`_${s_(e.slice(0,o),n)}`),t.push(s)}return t}makeTrainFunction(){return e=>{let t=[],o=e.slice(0,this.inputs.length),n=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),a=[],i=()=>{let p=[];for(let h=0;h1&&h{d=ee(d,h)}),d},l=this.collectedTrainableWeights.map(p=>p.read()),u=!0;return[this.optimizer_.minimize(i,u,l)].concat(a)}}makeTestFunction(){this.testFunction=e=>G(()=>{let t=[],o,n=e.slice(0,this.inputs.length),s=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),a=[];for(let u=0;ujn(t))}else{let t=Object.keys(this.loss);e={};let o=this.loss;for(let n of t)if(typeof o[n]=="string")e[n]=jn(o[n]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[jn(Nf(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>jn(Nf(e)));{let e={};for(let t in this.metrics)e[t]=jn(Nf(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let t=Yu(e.optimizer_config),o=Qr(t),n;if(typeof e.loss=="string")n=Ra(e.loss);else if(Array.isArray(e.loss))n=e.loss.map(a=>Ra(a));else if(e.loss!=null){n={};for(let a in e.loss)n[a]=Ra(e.loss[a])}let s;if(Array.isArray(e.metrics))s=e.metrics.map(a=>Ra(a));else if(e.metrics!=null){s={};for(let a in e.metrics)s[a]=Ra(e.metrics[a])}this.compile({loss:n,metrics:s,optimizer:o})}async save(e,t){if(typeof e=="string"){let u=Ir.getSaveHandlers(e);if(u.length===0)throw new z(`Cannot find any save handlers for URL '${e}'`);if(u.length>1)throw new z(`Found more than one (${u.length}) save handlers for URL '${e}'`);e=u[0]}if(e.save==null)throw new z("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let o=await Ir.encodeWeights(this.getNamedWeights(t)),n=!1,s=null,i={modelTopology:this.toJSON(s,n),format:tK,generatedBy:`TensorFlow.js tfjs-layers v${dl}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){i.trainingConfig=this.getTrainingConfig();let u="optimizer",{data:c,specs:p}=await Ir.encodeWeights(await this.optimizer.getWeights(),u);o.specs.push(...p),o.data=Ir.concatenateArrayBuffers([o.data,c])}if(this.userDefinedMetadata!=null){let u=!0;y_(this.userDefinedMetadata,this.name,u),i.userDefinedMetadata=this.userDefinedMetadata}return i.weightData=o.data,i.weightSpecs=o.specs,e.save(i)}setUserDefinedMetadata(e){y_(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};No.className="Model";Q.registerClass(No);var k_=class extends No{};k_.className="Functional";Q.registerClass(k_);async function D1(r,e){"modelTopology"in r||(r={modelTopology:r}),r=r;let t=r.modelTopology;t.model_config!=null&&(t=t.model_config);let o=Yu(t),n=Qr(o,e);if(r.weightsManifest!=null){let s=await Ir.loadWeights(r.weightsManifest,r.pathPrefix,n.weights.map(i=>i.originalName)),a={};for(let i of n.weights)a[i.originalName]=s[i.originalName];n.loadWeights(a),Te(s)}return n}async function $1(r,e){if(e==null&&(e={}),typeof r=="string"){let t=Ir.getLoadHandlers(r,e);if(t.length===0)t.push(Ir.browserHTTPRequest(r,e));else if(t.length>1)throw new z(`Found more than one (${t.length}) load handlers for URL '${r}'`);r=t[0]}return rK(r,void 0,e)}async function rK(r,e,t){if(t==null&&(t={}),r.load==null)throw new z("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let o=await r.load(),n=o.modelTopology;n.model_config!=null&&(n=n.model_config);let s=t.strict==null?!0:t.strict,a=o.weightData!=null&&o.weightSpecs!=null&&s,i=Qr(Yu(n),e,a),l=o.trainingConfig;if(l!=null&&i.loadTrainingConfig(l),o.userDefinedMetadata!=null&&i.setUserDefinedMetadata(o.userDefinedMetadata),o.weightData!=null){if(o.weightSpecs==null)throw new z("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:u,optimizerWeights:c}=oK(o.weightData,o.weightSpecs);i.loadWeights(u,s),i.optimizer!=null&&c.length>0&&await i.optimizer.setWeights(c),Te(u),Te(c.map(p=>p.tensor))}return i}function oK(r,e){let t=Ir.decodeWeights(r,e),o={},n=[];return e.forEach(s=>{s.group==="optimizer"?n.push({name:s.name,tensor:t[s.name]}):o[s.name]=t[s.name]}),{modelWeights:o,optimizerWeights:n}}var Wi=class extends No{constructor(e){super({inputs:[],outputs:[]});if(e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:cl("sequential_"),e.layers!=null)for(let t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(o=>o<0))throw new z(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof Wi||e instanceof No,o;if(t){if(o=e,o.outputs.length!==1)throw new z("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(o.inputs.length!==1)throw new z("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new z("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let n=Tg({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(n)}if(t)this.outputs=o.outputs,this.inputs=o.inputs;else{if(e.inboundNodes.length!==1)throw new z(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new z("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=d_(this.outputs[0])}this.inboundNodes=[],new pl({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Un(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(n=>n.shape),outputShapes:this.outputs[0].shape})}else{let n=e.apply(this.outputs[0]);if(Array.isArray(n))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[n],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(Ze(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new No({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,o=console.log){this.built||this.build(),super.summary(e,t,o)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,o={}){if(!this.built)throw new Mr("The model needs to be compiled before being used.");return this.model.evaluate(e,t,o)}async evaluateDataset(e,t){if(!this.built)throw new Mr("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,o={}){if(!this.built)throw new Mr("The model needs to be compiled before being used.");return this.model.fit(e,t,o)}async fitDataset(e,t){if(!this.built)throw new Mr("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,o={},n=!1){let s,a={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new z("Legacy serialization format not supported yet.");s=t}else y.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),s=t.layers,delete t.layers,a=t;let i=new e(a);if(!(i instanceof Wi))throw new Ne(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let l of s){let c=Qr(l,void 0,n);n&&c.setFastWeightInitDuringBuild(!0),i.add(c)}return i}set stopTraining(e){if(this.model==null)throw new z("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new z("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let e=[];for(let t of this.layers){let o={};o.className=t.getClassName(),o.config=t.getConfig(),e.push(o)}return{name:this.name,layers:e}}};Wi.className="Sequential";Q.registerClass(Wi);function R1(r){return new No(r)}function F1(r){return new Wi(r)}function O1(r,e){return e==null&&(e={}),$1(r,e)}function Hg(r){return Tg(r)}function P1(r,e){uo.registerCallbackConstructor(r,e)}var co=class extends Q.Serializable{getConfig(){return{}}},v_=class extends co{apply(e,t=1){return r1(e,t)}};v_.className="elu";Q.registerClass(v_);var C_=class extends co{apply(e){return Ou(e)}};C_.className="selu";Q.registerClass(C_);var I_=class extends co{apply(e){return Sr(e)}};I_.className="relu";Q.registerClass(I_);var N_=class extends co{apply(e){return G(()=>As(6,Sr(e)))}};N_.className="relu6";Q.registerClass(N_);var S_=class extends co{apply(e){return e}};S_.className="linear";Q.registerClass(S_);var T_=class extends co{apply(e){return qr(e)}};T_.className="sigmoid";Q.registerClass(T_);var A_=class extends co{apply(e){return n1(e)}};A_.className="hardSigmoid";Q.registerClass(A_);var E_=class extends co{apply(e){return Ts(e)}};E_.className="softplus";Q.registerClass(E_);var D_=class extends co{apply(e){return o1(e)}};D_.className="softsign";Q.registerClass(D_);var $_=class extends co{apply(e){return Fi(e)}};$_.className="tanh";Q.registerClass($_);var Sf=class extends co{apply(e,t=-1){return Aa(e,t)}};Sf.className="softmax";Q.registerClass(Sf);var R_=class extends co{apply(e,t=-1){return Au(e,t)}};R_.className="logSoftmax";Q.registerClass(R_);var F_=class extends co{apply(e,t=1){return G(()=>qr(e.mul(t)).mul(e))}};F_.className="swish";Q.registerClass(F_);function Ps(r){return r.getClassName()}function O_(r,e={}){return Li(r,Q.SerializationMap.getMap().classNameMap,e,"activation")}function Ms(r){if(r==null){let e={};return e.className="linear",e.config={},O_(e)}if(typeof r=="string"){let e={};return e.className=r,e.config={},O_(e)}else return r instanceof co?r:O_(r)}function P_(r){if(r!=null&&typeof r!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${r}`)}var M_=class extends Q.Serializable{},Ju=class extends M_{constructor(e){super();P_(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return G(()=>{let t=gt([1]);return this.hasL1&&(t=ee(t,ge(P(this.l1,Nt(e))))),this.hasL2&&(t=ee(t,ge(P(this.l2,qu(e))))),t.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};Ju.className="L1L2";Q.registerClass(Ju);function M1(r){return P_(r),new Ju({l1:r!=null?r.l1:null,l2:0})}function L1(r){return P_(r),new Ju({l2:r!=null?r.l2:null,l1:0})}var z1={l1l2:"L1L2"};function st(r){return lp(r)}function B1(r,e={}){return Li(r,Q.SerializationMap.getMap().classNameMap,e,"regularizer")}function bt(r){if(r==null)return null;if(typeof r=="string"){let t={className:r in z1?z1[r]:r,config:{}};return B1(t)}else return r instanceof M_?r:B1(r)}var Tf=class extends Pe{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Fe(e);let o=Sr(e);return this.maxValue!=null&&(o=ir(o,0,this.maxValue)),o}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};Tf.className="ReLU";Q.registerClass(Tf);var Af=class extends Pe{constructor(e){super(e==null?{}:e);this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){let o=Fe(e);return Ca(o,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};Af.className="LeakyReLU";Q.registerClass(Af);var Ef=class extends Pe{constructor(e){super(e==null?{}:e);if(this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=pt(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=bt(e.alphaRegularizer),this.alphaConstraint=Ot(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new z(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=Ze(e);let t=e.slice(1);if(this.sharedAxes!=null)for(let n of this.sharedAxes)t[n-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let o={};if(this.sharedAxes!=null)for(let n=1;n(Rt(e),e==="channelsFirst"?je(r,[0,2,3,1]):r))}function L_(r,e){return G(()=>(Rt(e),e==="channelsFirst"?je(r,[0,2,3,4,1]):r))}function nK(r,e,t,o=1,n="valid",s,a=1){return G(()=>{if(s==null&&(s=Zr()),Rt(s),r.shape.length!==3)throw new z(`The input of a conv1dWithBias operation should be 3, but is ${r.shape.length} instead.`);if(e.shape.length!==3)throw new z(`The kernel for a conv1dWithBias operation should be 3, but is ${e.shape.length} instead`);if(t!=null&&t.shape.length!==1)throw new z(`The bias for a conv1dWithBias operation should be 1, but is ${e.shape.length} instead`);if(s==="channelsFirst"&&(r=je(r,[0,2,1])),n==="causal")throw new Ne("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let i=ku(r,e,o,n==="same"?"same":"valid","NWC",a);return t!=null&&(i=ao(i,t)),i})}function V1(r,e,t,o=[1,1],n="valid",s,a,i=null){return G(()=>{if(s==null&&(s=Zr()),Rt(s),r.rank!==3&&r.rank!==4)throw new z(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${r.rank}.`);if(e.rank!==3&&e.rank!==4)throw new z(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${r.rank}.`);let l=Of(r,s);if(n==="causal")throw new Ne("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=Gn.conv2d({x:l,filter:e,strides:o,pad:n==="same"?"same":"valid",dilations:a,dataFormat:"NHWC",bias:t,activation:i}),s==="channelsFirst"&&(l=je(l,[0,3,1,2])),l})}function sK(r,e,t,o=[1,1,1],n="valid",s,a){return G(()=>{if(s==null&&(s=Zr()),Rt(s),r.rank!==4&&r.rank!==5)throw new z(`conv3dWithBias expects input to be of rank 4 or 5, but received ${r.rank}.`);if(e.rank!==4&&e.rank!==5)throw new z(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${r.rank}.`);let i=L_(r,s);if(n==="causal")throw new Ne("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return i=Em(i,e,o,n==="same"?"same":"valid","NDHWC",a),t!=null&&(i=ao(i,t)),s==="channelsFirst"&&(i=je(i,[0,4,1,2,3])),i})}var Np=class extends Pe{constructor(e,t){super(t);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Np.verifyArgs(t),this.rank=e,Ut(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Ne(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=gl(t.kernelSize,e,"kernelSize"),this.strides=gl(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,Jr(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Rt(this.dataFormat),this.activation=Ms(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=pt(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Ot(t.biasConstraint),this.biasRegularizer=bt(t.biasRegularizer),this.activityRegularizer=bt(t.activityRegularizer),this.dilationRate=gl(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new z(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new z(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new z(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(Bo("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!yg(e.kernelSize,"number",1,3))throw new z(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){let e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:Ps(this.activation),useBias:this.useBias,biasInitializer:vt(this.biasInitializer),biasRegularizer:st(this.biasRegularizer),activityRegularizer:st(this.activityRegularizer),biasConstraint:Ft(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},Qu=class extends Np{constructor(e,t){super(e,t);this.kernel=null,Qu.verifyArgs(t),this.filters=t.filters,Ut(this.filters,"filters"),this.kernelInitializer=pt(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Ot(t.kernelConstraint),this.kernelRegularizer=bt(t.kernelRegularizer)}build(e){e=Ze(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new z(`The channel dimension of the input should be defined. Found ${e[t]}`);let o=e[t],n=this.kernelSize.concat([o,this.filters]);this.kernel=this.addWeight("kernel",n,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:o}}],this.built=!0}call(e,t){return G(()=>{e=Fe(e);let o,n=this.bias==null?null:this.bias.read(),s=bg(this.activation.getClassName());if(s!=null&&this.rank===2)o=V1(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)o=nK(e,this.kernel.read(),n,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)o=V1(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)o=sK(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Ne("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(o=this.activation.apply(o))}return o})}computeOutputShape(e){e=Ze(e);let t=[],o=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let s=0;s 0 but got ${JSON.stringify(e.filters)}`)}},xl=class extends Qu{constructor(e){super(2,e);xl.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!yg(e.kernelSize,"number",1,2))throw new z(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};xl.className="Conv2D";Q.registerClass(xl);var ec=class extends Qu{constructor(e){super(3,e);ec.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};ec.className="Conv3D";Q.registerClass(ec);var Pf=class extends xl{constructor(e){super(e);if(this.inputSpec=[new St({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new z(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Ze(e),e.length!==4)throw new z("Input should have rank 4; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new z("The channel dimension of the inputs should be defined. Found `None`.");let o=e[t],n=this.kernelSize.concat([this.filters,o]);this.kernel=this.addWeight("kernel",n,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new St({ndim:4,axes:{[t]:o}})],this.built=!0}call(e,t){return G(()=>{let o=Fe(e);if(o.shape.length!==4)throw new z(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${o.shape.length}`);let n=o.shape,s=n[0],a,i;this.dataFormat==="channelsFirst"?(a=2,i=3):(a=1,i=2);let l=n[a],u=n[i],c=this.kernelSize[0],p=this.kernelSize[1],m=this.strides[0],f=this.strides[1],d=Ff(l,m,c,this.padding),h=Ff(u,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!=="channelsLast"&&(o=je(o,[0,2,3,1]));let x=vu(o,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(x=je(x,[0,3,1,2])),this.bias!=null&&(x=ao(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(e){e=Ze(e);let t=e.slice(),o,n,s;this.dataFormat==="channelsFirst"?(o=1,n=2,s=3):(o=3,n=1,s=2);let a=this.kernelSize[0],i=this.kernelSize[1],l=this.strides[0],u=this.strides[1];return t[o]=this.filters,t[n]=Ff(t[n],l,a,this.padding),t[s]=Ff(t[s],u,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Pf.className="Conv2DTranspose";Q.registerClass(Pf);var z_=class extends Qu{constructor(e,t){super(e,t);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new z("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new z("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new z(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=pt(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=bt(t.depthwiseRegularizer),this.depthwiseConstraint=Ot(t.depthwiseConstraint),this.pointwiseInitializer=pt(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=bt(t.pointwiseRegularizer),this.pointwiseConstraint=Ot(t.pointwiseConstraint)}build(e){if(e=Ze(e),e.length{e=Fe(e);let o;if(this.rank===1)throw new Ne("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=je(e,[0,2,3,1])),o=Um(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(o=ao(o,this.bias.read(),this.dataFormat)),this.activation!=null&&(o=this.activation.apply(o)),this.dataFormat==="channelsFirst"&&(o=je(o,[0,3,1,2])),o})}getConfig(){let e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=vt(this.depthwiseInitializer),e.pointwiseInitializer=vt(this.pointwiseInitializer),e.depthwiseRegularizer=st(this.depthwiseRegularizer),e.pointwiseRegularizer=st(this.pointwiseRegularizer),e.depthwiseConstraint=Ft(this.depthwiseConstraint),e.pointwiseConstraint=Ft(this.pointwiseConstraint),e}};z_.className="SeparableConv";var Mf=class extends z_{constructor(e){super(2,e)}};Mf.className="SeparableConv2D";Q.registerClass(Mf);var tc=class extends Qu{constructor(e){super(1,e);tc.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){let e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!yg(e.kernelSize,"number",1,1))throw new z(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};tc.className="Conv1D";Q.registerClass(tc);var Lf=class extends Pe{constructor(e){super(e);typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return G(()=>{if(e=Fe(e),this.dataFormat==="channelsLast"){let o=cf(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return cf(o,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let o=cf(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return cf(o,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Lf.className="Cropping2D";Q.registerClass(Lf);var zf=class extends Pe{constructor(e){super(e);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,KT(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){let t=e[2]==null?null:this.size[0]*e[2],o=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,o]}else{let t=e[1]==null?null:this.size[0]*e[1],o=e[2]==null?null:this.size[1]*e[2];return[e[0],t,o,e[3]]}}call(e,t){return G(()=>{let o=Fe(e),n=o.shape;if(this.dataFormat==="channelsFirst"){o=je(o,[0,2,3,1]);let s=this.size[0]*n[2],a=this.size[1]*n[3],i=this.interpolation==="nearest"?o.resizeNearestNeighbor([s,a]):o.resizeBilinear([s,a]);return je(i,[0,3,1,2])}else{let s=this.size[0]*n[1],a=this.size[1]*n[2];return this.interpolation==="nearest"?o.resizeNearestNeighbor([s,a]):o.resizeBilinear([s,a])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};zf.className="UpSampling2D";Q.registerClass(zf);function iK(r,e,t=[1,1],o="valid",n,s){return G(()=>{n==null&&(n=Zr()),Rt(n);let a=Of(r,n);if(r.rank!==4)throw new z(`Input for depthwiseConv2d is required to be 4-D, but is instead ${r.rank}-D`);if(e.rank!==4)throw new z(`depthwiseKernel is required to be 4-D, but is instead ${e.rank}-D`);return a=Is(a,e,t,o==="same"?"same":"valid","NHWC",s),n==="channelsFirst"&&(a=je(a,[0,3,1,2])),a})}var Bf=class extends Np{constructor(e){super(2,e);this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=pt(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Ot(e.depthwiseConstraint),this.depthwiseRegularizer=bt(e.depthwiseRegularizer)}build(e){if(e=Ze(e),e.length<4)throw new z(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);let t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new z(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);let o=e[t],n=[this.kernelSize[0],this.kernelSize[1],o,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",n,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[o*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return G(()=>{e=Fe(e);let o=iK(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(o=ao(o,this.bias.read(),this.dataFormat)),this.activation!=null&&(o=this.activation.apply(o)),o})}computeOutputShape(e){e=Ze(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],o=this.dataFormat==="channelsFirst"?e[3]:e[2],n=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,s=po(t,this.kernelSize[0],this.padding,this.strides[0]),a=po(o,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],n,s,a]:[e[0],s,a,n]}getConfig(){let e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=vt(this.depthwiseInitializer),e.depthwiseRegularizer=st(this.depthwiseRegularizer),e.depthwiseConstraint=Ft(this.depthwiseRegularizer),e}};Bf.className="DepthwiseConv2D";Q.registerClass(Bf);function B_(r,e,t,o){if(Array.isArray(r)){if(e!=null||t!=null)throw new z("When inputs is an array, neither initialState or constants should be provided");o!=null&&(t=r.slice(r.length-o,r.length),r=r.slice(0,r.length-o)),r.length>1&&(e=r.slice(1,r.length)),r=r[0]}function n(s){return s==null||Array.isArray(s)?s:[s]}return e=n(e),t=n(t),{inputs:r,initialState:e,constants:t}}function V_(r,e,t,o=!1,n,s,a=!1,i=!1){return G(()=>{let l=e.shape.length;if(l<3)throw new z(`Input should be at least 3D, but is ${l}D.`);let u=[1,0].concat(Lr(2,l));if(e=je(e,u),s!=null)throw new Ne("The rnn() functoin of the deeplearn.js backend does not support constants yet.");a&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),n!=null&&(n=n.asType("bool").asType("float32"),n.rank===l-1&&(n=ar(n,-1)),n=je(n,u)),o&&(e=qt(e,0),n!=null&&(n=qt(n,0)));let c=[],p,m=t,f=e.shape[0],d=pr(e),h;n!=null&&(h=pr(n));for(let x=0;xr(w,m));if(n==null)p=b[0],m=b[1];else{let _=G(()=>{let k=h[x],A=tr(k).sub(k),N=b[0].mul(k).add(m[0].mul(A)),$=m.map((F,M)=>b[1][M].mul(k).add(F.mul(A)));return{output:N,newStates:$}});p=_.output,m=_.newStates}i&&c.push(p)}let g;return i&&(g=Vt(c,1)),[p,g,m]})}var mo=class extends Pe{constructor(e){super(e);let t;if(e.cell==null)throw new z("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new Sp({cells:e.cell}):t=e.cell,t.stateSize==null)throw new z("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new St({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Lr(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Sg(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);let o=t[0],n;if(this.returnSequences?n=[e[0],e[1],o]:n=[e[0],o],this.returnState){let s=[];for(let a of t)s.push([e[0],a]);return[n].concat(s)}else return n}computeMask(e,t){return G(()=>{Array.isArray(t)&&(t=t[0]);let o=this.returnSequences?t:null;if(this.returnState){let n=this.states.map(s=>null);return[o].concat(n)}else return o})}get states(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let o=0;oi.shape[i.shape.length-1]),a))throw new z(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=a.map(i=>new St({shape:[null,i]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){G(()=>{if(!this.stateful)throw new Io("Cannot call resetStates() on an RNN Layer that is not stateful.");let o=this.inputSpec[0].shape[0];if(o==null)throw new z("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(n=>gt([o,n])):this.states_=[gt([o,this.cell.stateSize])];else if(e==null)Te(this.states_),this.keptStates!=null&&(Te(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(n=>gt([o,n])):this.states_[0]=gt([o,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):Te(this.states_);for(let n=0;nDt(n.clone()))})}apply(e,t){let o=t==null?null:t.initialState,n=t==null?null:t.constants;t==null&&(t={});let s=B_(e,o,n,this.numConstants);e=s.inputs,o=s.initialState,n=s.constants;let a=[],i=[];if(o!=null){t.initialState=o,a=a.concat(o),this.stateSpec=[];for(let u of o)this.stateSpec.push(new St({shape:u.shape}));i=i.concat(this.stateSpec)}if(n!=null&&(t.constants=n,a=a.concat(n),this.numConstants=n.length),a[0]instanceof Br){let u=[e].concat(a),c=this.inputSpec.concat(i),p=this.inputSpec;this.inputSpec=c;let m=super.apply(u,t);return this.inputSpec=p,m}else return super.apply(e,t)}call(e,t){return G(()=>{let o=t==null?null:t.mask,n=t==null?null:t.training,s=t==null?null:t.initialState;e=Fe(e),s==null&&(this.stateful?s=this.states_:s=this.getInitialState(e));let a=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(s.length!==a)throw new z(`RNN Layer has ${a} state(s) but was passed ${s.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let i={training:n},u=V_((d,h)=>{let g=this.cell.call([d].concat(h),i);return[g[0],g.slice(1)]},e,s,this.goBackwards,o,null,this.unroll,this.returnSequences),c=u[0],p=u[1],m=u[2];this.stateful&&this.resetStates(m,n);let f=this.returnSequences?p:c;return this.returnState?[f].concat(m):f})}getInitialState(e){return G(()=>{let t=gt(e.shape);return t=ge(t,[1,2]),t=Oa(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(o=>o>1?kg(t,[1,o]):t):this.cell.stateSize>1?[kg(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){let e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);let o=this.cell.getConfig();return this.getClassName()===mo.className&&(t.cell={className:this.cell.getClassName(),config:o}),Object.assign({},o,e,t)}static fromConfig(e,t,o={}){let n=t.cell,s=Qr(n,o);return new e(Object.assign(t,{cell:s}))}};mo.className="RNN";Q.registerClass(mo);var yl=class extends Pe{},Tp=class extends yl{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Ut(this.units,"units"),this.activation=Ms(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=pt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=pt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=pt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=bt(e.kernelRegularizer),this.recurrentRegularizer=bt(e.recurrentRegularizer),this.biasRegularizer=bt(e.biasRegularizer),this.kernelConstraint=Ot(e.kernelConstraint),this.recurrentConstraint=Ot(e.recurrentConstraint),this.biasConstraint=Ot(e.biasConstraint),this.dropout=Hu([1,Fs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Hu([1,Fs([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Ze(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return G(()=>{if(e=e,e.length!==2)throw new z(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let o=e[1];e=e[0];let n=t.training==null?!1:t.training;0tr(e),rate:this.dropout,training:n})),0tr(o),rate:this.recurrentDropout,training:n}));let s,a=this.dropoutMask,i=this.recurrentDropoutMask;a!=null?s=Xn(P(e,a),this.kernel.read()):s=Xn(e,this.kernel.read()),this.bias!=null&&(s=ao(s,this.bias.read())),i!=null&&(o=P(o,i));let l=ee(s,Xn(o,this.recurrentKernel.read()));return this.activation!=null&&(l=this.activation.apply(l)),[l,l]})}getConfig(){let e=super.getConfig(),t={units:this.units,activation:Ps(this.activation),useBias:this.useBias,kernelInitializer:vt(this.kernelInitializer),recurrentInitializer:vt(this.recurrentInitializer),biasInitializer:vt(this.biasInitializer),kernelRegularizer:st(this.kernelRegularizer),recurrentRegularizer:st(this.recurrentRegularizer),biasRegularizer:st(this.biasRegularizer),activityRegularizer:st(this.activityRegularizer),kernelConstraint:Ft(this.kernelConstraint),recurrentConstraint:Ft(this.recurrentConstraint),biasConstraint:Ft(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}};Tp.className="SimpleRNNCell";Q.registerClass(Tp);var Vf=class extends mo{constructor(e){e.cell=new Tp(e),super(e)}call(e,t){return G(()=>{this.cell.dropoutMask!=null&&(Te(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Te(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let o=t==null?null:t.mask,n=t==null?null:t.training,s=t==null?null:t.initialState;return super.call(e,{mask:o,training:n,initialState:s})})}static fromConfig(e,t){return new e(t)}};Vf.className="SimpleRNN";Q.registerClass(Vf);var Ap=class extends yl{constructor(e){super(e);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new z("GRUCell does not support reset_after parameter set to true.");this.units=e.units,Ut(this.units,"units"),this.activation=Ms(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Ms(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=pt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=pt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=pt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=bt(e.kernelRegularizer),this.recurrentRegularizer=bt(e.recurrentRegularizer),this.biasRegularizer=bt(e.biasRegularizer),this.kernelConstraint=Ot(e.kernelConstraint),this.recurrentConstraint=Ot(e.recurrentConstraint),this.biasConstraint=Ot(e.biasConstraint),this.dropout=Hu([1,Fs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Hu([1,Fs([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Ze(e);let t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return G(()=>{if(e=e,e.length!==2)throw new z(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);let o=t.training==null?!1:t.training,n=e[1];e=e[0],0tr(e),rate:this.dropout,training:o,count:3})),0tr(n),rate:this.recurrentDropout,training:o,count:3}));let s=this.dropoutMask,a=this.recurrentDropoutMask,i,l,u;0{this.cell.dropoutMask!=null&&(Te(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Te(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let o=t==null?null:t.mask,n=t==null?null:t.training,s=t==null?null:t.initialState;return super.call(e,{mask:o,training:n,initialState:s})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Gf.className="GRU";Q.registerClass(Gf);var bl=class extends yl{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Ut(this.units,"units"),this.activation=Ms(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Ms(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=pt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=pt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=pt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=bt(e.kernelRegularizer),this.recurrentRegularizer=bt(e.recurrentRegularizer),this.biasRegularizer=bt(e.biasRegularizer),this.kernelConstraint=Ot(e.kernelConstraint),this.recurrentConstraint=Ot(e.recurrentConstraint),this.biasConstraint=Ot(e.biasConstraint),this.dropout=Hu([1,Fs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Hu([1,Fs([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=Ze(e);let o=e[e.length-1];this.kernel=this.addWeight("kernel",[o,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let n;if(this.useBias){if(this.unitForgetBias){let s=this.biasInitializer,a=this.units;n=new(t=class extends lo{apply(l,u){let c=s.apply([a]),p=new Ku().apply([a]),m=s.apply([a*2]);return p_(p_(c,p),m)}},t.className="CustomInit",t)}else n=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,n,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return G(()=>{let o=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new z(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=e[1],s=e[2];e=e[0],0tr(e),rate:this.dropout,training:o,count:4})),0tr(n),rate:this.recurrentDropout,training:o,count:4}));let a=this.dropoutMask,i=this.recurrentDropoutMask,l,u,c,p;0{this.cell.dropoutMask!=null&&(Te(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Te(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let o=t==null?null:t.mask,n=t==null?null:t.training,s=t==null?null:t.initialState;return super.call(e,{mask:o,training:n,initialState:s})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Wf.className="LSTM";Q.registerClass(Wf);var Sp=class extends yl{constructor(e){super(e);this.cells=e.cells}get stateSize(){let e=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return G(()=>{e=e;let o=e.slice(1),n=[];for(let i of this.cells.slice().reverse())Array.isArray(i.stateSize)?n.push(o.splice(0,i.stateSize.length)):n.push(o.splice(0,1));n.reverse();let s=[],a;for(let i=0;i{Rs(`RNNCell_${n}`,()=>{o.build(e),Array.isArray(o.stateSize)?t=o.stateSize[0]:t=o.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){let e=super.getConfig(),t=s=>({className:s.getClassName(),config:s.getConfig()}),n={cells:this.cells.map(t)};return Object.assign({},e,n)}static fromConfig(e,t,o={}){let n=[];for(let s of t.cells)n.push(Qr(s,o));return new e({cells:n})}get trainableWeights(){if(!this.trainable)return[];let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let o of this.cells)t.push(...o.trainableWeights);return t.concat(e)}return e}getWeights(){let e=[];for(let t of this.cells)e.push(...t.weights);return bf(e)}setWeights(e){let t=[];for(let o of this.cells){let n=o.weights.length,s=e.splice(n);for(let a=0;aCg(e(),t),a=()=>ul(s,e,o);return!n||n<=1?Dt(a().clone()):Array(n).fill(void 0).map(a).map(l=>Dt(l.clone()))}var aK=function(r,e){var t={};for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&e.indexOf(o)<0&&(t[o]=r[o]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,o=Object.getOwnPropertySymbols(r);n{if(this.cell.dropoutMask!=null&&(Te(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Te(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new z("ConvRNN2D cell does not support constants");let o=t==null?null:t.mask,n=t==null?null:t.training,s=t==null?null:t.initialState;return super.call(e,{mask:o,training:n,initialState:s})})}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return G(()=>{let{stateSize:t}=this.cell,o=e.shape,n=this.computeSingleOutputShape(o),s=[n[0],...n.slice(2)],a=gt(s);return Array.isArray(t)?Array(t.length).fill(a):[a]})}resetStates(e,t=!1){G(()=>{if(!this.stateful)throw new Io("Cannot call resetStates() on an RNN Layer that is not stateful.");let o=this.inputSpec[0].shape,n=this.computeSingleOutputShape(o),s=[n[0],...n.slice(2)];if(o[0]==null)throw new z("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>gt(s)):this.states_=[gt(s)];else if(e==null)Te(this.states_),this.keptStates!=null&&(Te(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>gt(s)):this.states_[0]=gt(s);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):Te(this.states_);for(let i=0;iDt(i.clone()))})}computeSingleOutputShape(e){let{dataFormat:t,filters:o,kernelSize:n,padding:s,strides:a,dilationRate:i}=this.cell,l=t==="channelsFirst",u=e[l?3:2],c=e[l?4:3],p=po(u,n[0],s,a[0],i[0]),m=po(c,n[1],s,a[1],i[1]);return[...e.slice(0,2),...l?[o,p,m]:[p,m,o]]}};G_.className="ConvRNN2D";var Ep=class extends bl{constructor(e){let{filters:t,kernelSize:o,strides:n,padding:s,dataFormat:a,dilationRate:i}=e;super(Object.assign({},e,{units:t}));this.filters=t,Ut(this.filters,"filters"),this.kernelSize=gl(o,2,"kernelSize"),this.kernelSize.forEach(l=>Ut(l,"kernelSize")),this.strides=gl(n||1,2,"strides"),this.strides.forEach(l=>Ut(l,"strides")),this.padding=s||"valid",Jr(this.padding),this.dataFormat=a||"channelsLast",Rt(this.dataFormat),this.dilationRate=gl(i||1,2,"dilationRate"),this.dilationRate.forEach(l=>Ut(l,"dilationRate"))}build(e){var t;e=Ze(e);let o=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[o]==null)throw new z(`The channel dimension of the input should be defined. Found ${e[o]}`);let n=e[o],s=4,a=this.kernelSize.concat([n,this.filters*s]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let i=this.kernelSize.concat([this.filters,this.filters*s]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let l;if(this.unitForgetBias){let u=this.biasInitializer,c=this.filters;l=new(t=class extends lo{apply(m,f){let d=u.apply([c]),h=Nr([c]),g=u.apply([c*2]);return pp([d,h,g])}},t.className="CustomInit",t)}else l=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*s],null,l,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return G(()=>{if(e.length!==3)throw new z(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let o=t.training||!1,n=e[0],s=e[1],a=e[2],i=4;0tr(n),rate:this.dropout,training:o,count:i}));let l=this.dropoutMask,u=(J,ie,ue)=>!ie||!ie[ue]?J:P(ie[ue],J),c=u(n,l,0),p=u(n,l,1),m=u(n,l,2),f=u(n,l,3);0tr(s),rate:this.recurrentDropout,training:o,count:i}));let d=this.recurrentDropoutMask,h=u(s,d,0),g=u(s,d,1),x=u(s,d,2),w=u(s,d,3),b=3,[_,k,A,N]=cr(this.kernel.read(),i,b),[$,F,M,V]=this.useBias?cr(this.bias.read(),i):[null,null,null,null];c=this.inputConv(c,_,$,this.padding),p=this.inputConv(p,k,F,this.padding),m=this.inputConv(m,A,M,this.padding),f=this.inputConv(f,N,V,this.padding);let[W,U,H,q]=cr(this.recurrentKernel.read(),i,b);h=this.recurrentConv(h,W),g=this.recurrentConv(g,U),x=this.recurrentConv(x,H),w=this.recurrentConv(w,q);let X=this.recurrentActivation.apply(ee(c,h)),oe=this.recurrentActivation.apply(ee(p,g)),Y=ee(P(oe,a),P(X,this.activation.apply(ee(m,x)))),re=P(this.recurrentActivation.apply(ee(f,w)),this.activation.apply(Y));return[re,re,Y]})}getConfig(){let e=super.getConfig(),{units:t}=e,o=aK(e,["units"]),n={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},o,n)}inputConv(e,t,o,n){let s=Kr(e,t,this.strides,n||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return o?ao(s,o,this.dataFormat):s}recurrentConv(e,t){return Kr(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Ep.className="ConvLSTM2DCell";Q.registerClass(Ep);var Uf=class extends G_{constructor(e){let t=new Ep(e);super(Object.assign({},e,{cell:t}))}static fromConfig(e,t){return new e(t)}};Uf.className="ConvLSTM2D";Q.registerClass(Uf);var Dp=class extends Pe{constructor(e){super(e);this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;let t=e.shape,o=[];for(let n=0;n{this.invokeCallHook(e,t);let o=Fe(e);if(0Cg(o,this.rate,s,this.seed),()=>o,n)}return e})}getConfig(){let e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}};Dp.className="Dropout";Q.registerClass(Dp);var jf=class extends Dp{constructor(e){super(e);this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};jf.className="SpatialDropout1D";Q.registerClass(jf);var Hf=class extends Pe{constructor(e){super(e);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,Ut(this.units,"units"),this.activation=Ms(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=pt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=pt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Ot(e.kernelConstraint),this.biasConstraint=Ot(e.biasConstraint),this.kernelRegularizer=bt(e.kernelRegularizer),this.biasRegularizer=bt(e.biasRegularizer),this.activityRegularizer=bt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=Ze(e);let t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=Ze(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return G(()=>{this.invokeCallHook(e,t);let o=Fe(e),n=bg(this.activation.getClassName()),s;return n!=null?s=Xn(o,this.kernel.read(),n,this.bias?this.bias.read():null):(s=Xn(o,this.kernel.read()),this.bias!=null&&(s=ao(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let e={units:this.units,activation:Ps(this.activation),useBias:this.useBias,kernelInitializer:vt(this.kernelInitializer),biasInitializer:vt(this.biasInitializer),kernelRegularizer:st(this.kernelRegularizer),biasRegularizer:st(this.biasRegularizer),activityRegularizer:st(this.activityRegularizer),kernelConstraint:Ft(this.kernelConstraint),biasConstraint:Ft(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Hf.className="Dense";Q.registerClass(Hf);var qf=class extends Pe{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Ze(e);for(let t of e.slice(1))if(t==null)throw new z(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],Kn(e,1)]}call(e,t){return G(()=>{this.invokeCallHook(e,t);let o=Fe(e);if(this.dataFormat==="channelsFirst"&&o.rank>1){let n=[0];for(let s=2;s{this.invokeCallHook(e,t);let o=Fe(e);return this.activation.apply(o)})}getConfig(){let e={activation:Ps(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};Kf.className="Activation";Q.registerClass(Kf);var Xf=class extends Pe{constructor(e){super(e);this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return G(()=>(e=Fe(e),QT(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};Xf.className="RepeatVector";Q.registerClass(Xf);var Yf=class extends Pe{constructor(e){super(e);this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let o=Fe(e),n=o.shape,s=n.slice(0,1).concat(this.fixUnknownDimension(n.slice(1),this.targetShape));return o.reshape(s)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};Yf.className="Reshape";Q.registerClass(Yf);var Zf=class extends Pe{constructor(e){super(e);if(e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);let t=Lr(1,e.dims.length+1);if(!y.arraysEqual(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new St({ndim:this.dims.length+1})]}computeOutputShape(e){e=Ze(e);let t=e.slice();return this.dims.forEach((o,n)=>{t[n+1]=e[o]}),t}call(e,t){return je(Fe(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};Zf.className="Permute";Q.registerClass(Zf);var Jf=class extends Pe{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){let o=Fe(e),n=-1;return ol(Vn(o,this.maskValue),n)}call(e,t){return G(()=>{this.invokeCallHook(e,t);let o=Fe(e),n=-1,s=!0,a=ol(Vn(o,this.maskValue),n,s);return o.mul(a.asType(o.dtype))})}};Jf.className="Masking";Q.registerClass(Jf);var Qf=class extends Pe{constructor(e){super(e);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(yt(e.inputLength))}this.inputDim=e.inputDim,Ut(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Ut(this.outputDim,"outputDim"),this.embeddingsInitializer=pt(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=bt(e.embeddingsRegularizer),this.activityRegularizer=bt(e.activityRegularizer),this.embeddingsConstraint=Ot(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return G(()=>this.maskZero?(e=Fe(e),Vn(e,Ce(e))):null)}computeOutputShape(e){if(e=Ze(e),this.inputLength==null)return[...e,this.outputDim];let t=yt(this.inputLength);if(t.length!==e.length-1)throw new z(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let o=0;for(let n=0;n{this.invokeCallHook(e,t);let o=Fe(e);return o.dtype!=="int32"&&(o=Fa(o,"int32")),vg(this.embeddings.read(),o.as1D()).reshape(Ze(this.computeOutputShape(o.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:vt(this.embeddingsInitializer),embeddingsRegularizer:st(this.embeddingsRegularizer),activityRegularizer:st(this.activityRegularizer),embeddingsConstraint:Ft(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};Qf.className="Embedding";Q.registerClass(Qf);var wl=class extends Pe{constructor(e){super(e||{});this.supportsMasking=!0}mergeFunction(e){throw new Ne}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new z(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let o=e[0]==null?null:e[0].slice(1);for(let s=1;ss.length);e.indexOf(null)===-1&&qn(n).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return G(()=>{if(e=e,this.reshapeRequired){let o=[],n=e.map(s=>s.rank);if(n.indexOf(null)===-1){let s=Fs(n);for(let a of e){let i=a.rank;for(let l=0;l1){let c=Lr(1,u).concat([0]);o.push(je(l,c)),s=!0}else o.push(l)}let a=this.mergeFunction(o),i=a.rank;if(s){if(i==null){let l=a.shape,u=l.length,c=l[u-1],p=[c].concat(l.slice(0,l.length-1));a=je(a.reshape([-1,c]),[1,0]).reshape(p)}else if(i>1){let l=[i-1].concat(Lr(0,i-1));a=je(a,l)}}return a}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let n=1;n{if(t==null)return null;if(!Array.isArray(t))throw new z("`mask` should be an Array");if(!Array.isArray(e))throw new z("`inputs` should be an Array");if(t.length!==e.length)throw new z(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(n=>n==null))return null;t=t.map(n=>n==null?n:ar(n,0));let o=t[0];for(let n=1;n{let t=e[0].clone();for(let o=1;o{let t=e[0].clone();for(let o=1;o{let t=e[0].clone();for(let o=1;o{let t=e[0];for(let o=1;o{let t=e[0];for(let o=1;o1)throw new z("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return G(()=>pp(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new z("A `Concatenate` layer should be called on a list of inputs.");let t=e,o=t[0].slice(),n=this.axis<0?o.length+this.axis:this.axis;for(let s of t.slice(1)){if(o[n]==null||s[n]==null){o[n]=null;break}o[n]+=s[n]}return o}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new z("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new z("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new z(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return G(()=>{let o=!0;if(t.forEach(a=>{if(a!=null){o=!1;return}}),o)return null;let n=[];for(let a=0;a3||e.shape.length>3)throw new Ne("batchDot is not implemented for tensors of 4D or higher rank yet");if(y.assert(r.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${r.shape.length}`),y.assert(r.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${e.shape.length}`),typeof t=="number"&&(t=[t,t]),r.dtype==="complex64"||e.dtype==="complex64")throw new Ne("batchDot is not implemented for complex64-type Tensors yet.");let o=r.shape.length,n=e.shape.length;t==null&&(t=[o-1,n-2]);let s=t;return G(()=>{let a;if(o>n){a=o-n;let l=[];for(let u=0;uo){a=n-o;let l=[];for(let u=0;u0){let l;o>n?l=o+n-3:l=o-1;let u=[];for(let c=l;c"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0],o=e[1];if(t.length>3||o.length>3)throw new Ne("Dot layer does not support tensors of 4D or higher rank yet.");let n=this.interpretAxes(t,o);if(t[n[0]]!==o[n[1]])throw new z(`Dimension incompatibility: ${t[n[0]]} !== ${o[n[1]]}`)}mergeFunction(e){if(e.length!==2)throw new z(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],o=e[1],n;return Array.isArray(this.axes)?n=this.axes.map((s,a)=>id(s,e[a].shape.length)):n=[id(this.axes,t.shape.length),id(this.axes,o.shape.length)],this.normalize&&(t=wf(t,n[0]),o=wf(o,n[1])),lK(t,o,n)}interpretAxes(e,t){let o;return Array.isArray(this.axes)?o=this.axes:o=[id(this.axes,e.length),id(this.axes,t.length)],o}computeOutputShape(e){y.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0].slice(),o=e[1].slice();if(t.length>3||o.length>3)throw new Ne("Dot layer does not support tensors of 4D or higher rank yet.");let n=this.interpretAxes(t,o);t.splice(n[0],1),o.splice(n[1],1),o.splice(0,1);let s=t.concat(o);return s.length===1&&s.push(1),s}computeMask(e,t){return null}getConfig(){let e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}};ad.className="Dot";Q.registerClass(ad);var ld=class extends Pe{constructor(e){super(e);this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return G(()=>{this.invokeCallHook(e,t);let o=Fe(e);return ul(()=>mp(o.shape,0,this.stddev).add(o),()=>o,t.training||!1)})}};ld.className="GaussianNoise";Q.registerClass(ld);var ud=class extends Pe{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return G(()=>{this.invokeCallHook(e,t);let o=Fe(e);return this.rate>0&&this.rate<1?ul(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return o.mul(mp(o.shape,1,s))},()=>o,t.training||!1):o})}};ud.className="GaussianDropout";Q.registerClass(ud);var cd=class extends Pe{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Fe(e).shape}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return G(()=>{if(this.rate<1&&this.rate>0){let o=this._getNoiseShape(e);return ul(()=>{let s=Fe(e),a=1.6732632423543772,i=1.0507009873554805,l=-a*i,u=io(Es(o),this.rate);u=Fa(u,"float32");let c=((1-this.rate)*(1+this.rate*l**2))**-.5,p=-c*l*this.rate;return s.mul(u).add(u.add(-1).mul(l)).mul(c).add(p)},()=>Fe(e),t.training||!1)}return e})}};cd.className="AlphaDropout";Q.registerClass(cd);function pd(r,e,t,o,n,s=.001){let a;if(r.rank===2)a=cw(r,e,t,o,n,s);else if(r.rank===3)a=pw(r,e,t,o,n,s);else if(r.rank===4)a=mw(r,e,t,o,n,s);else throw new Ne(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return a}function uK(r,e,t,o,n=.001){return G(()=>{let s=Yc(r,o),a=s.mean,i=s.variance;return[pd(r,a,i,t,e,n),a,i]})}function cK(r,e,t,o,n=.001){return G(()=>{let s=Yc(r,o),a=s.mean,i=s.variance,l=[];for(let d of Lr(0,r.rank))o.indexOf(d)!==-1?l.push(1):l.push(r.shape[d]);let u=a.reshape(l),c=i.reshape(l),p=e==null?null:e.reshape(l),m=t==null?null:t.reshape(l);return[pd(r,u,c,m,p,n),a,i]})}function pK(r,e,t,o,n=.001){return y.arraysEqual(o.slice().sort(),Lr(0,r.rank-1))?uK(r,e,t,o,n):cK(r,e,t,o,n)}var md=class extends Pe{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=pt(e.betaInitializer||"zeros"),this.gammaInitializer=pt(e.gammaInitializer||"ones"),this.movingMeanInitializer=pt(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=pt(e.movingVarianceInitializer||"ones"),this.betaConstraint=Ot(e.betaConstraint),this.gammaConstraint=Ot(e.gammaConstraint),this.betaRegularizer=bt(e.betaRegularizer),this.gammaRegularizer=bt(e.gammaRegularizer)}build(e){e=Ze(e);let t=this.axis>=0?this.axis:this.axis+e.length,o=e[t];if(o==null)throw new z(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new St({ndim:e.length,axes:{[t]:o}})];let n=[o];this.scale&&(this.gamma=this.addWeight("gamma",n,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",n,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",n,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",n,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return G(()=>{let o=t.training==null?!1:t.training,n=Fe(e),s=n.shape,a=s.length,i=Lr(0,a),l=this.axis>=0?this.axis:this.axis+a;i.splice(l,1);let u=Un(1,a);u[l]=s[l];let c=i.slice();c.sort();let p=!y.arraysEqual(c,Lr(0,a).slice(0,a-1)),m=()=>{if(p){let w=this.movingMean.read().reshape(u),b=this.movingVariance.read().reshape(u),_=this.center?this.beta.read().reshape(u):null,k=this.scale?this.gamma.read().reshape(u):null;return pd(n,w,b,_,k,this.epsilon)}else return pd(n,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!o)return m();let[f,d,h]=pK(n,this.gamma.read(),this.beta.read(),i,this.epsilon),g=(w,b,_)=>{G(()=>{let k=1-_,A=w.read(),N=A.sub(b).mul(k);w.write(A.sub(N))})};return(()=>{g(this.movingMean,d,this.momentum),g(this.movingVariance,h,this.momentum)})(),f})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:vt(this.betaInitializer),gammaInitializer:vt(this.gammaInitializer),movingMeanInitializer:vt(this.movingMeanInitializer),movingVarianceInitializer:vt(this.movingVarianceInitializer),betaRegularizer:st(this.betaRegularizer),gammaRegularizer:st(this.gammaRegularizer),betaConstraint:Ft(this.betaConstraint),gammaConstraint:Ft(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};md.className="BatchNormalization";Q.registerClass(md);var fd=class extends Pe{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=pt(e.betaInitializer||"zeros"),this.gammaInitializer=pt(e.gammaInitializer||"ones"),this.betaRegularizer=bt(e.betaRegularizer),this.gammaRegularizer=bt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=Ze(e);let t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let s=0;s=t)throw new Error(`Invalid axis: ${s}`);if(this.axis.length!==qn(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let o=this.axis.map(s=>e[s]),n=!0;this.scale?this.gamma=this.addWeight("gamma",o,"float32",this.gammaInitializer,this.gammaRegularizer,n):this.gamma=null,this.center?this.beta=this.addWeight("beta",o,"float32",this.betaInitializer,this.betaRegularizer,n):this.beta=null,this.built=!0}call(e,t){let o=Fe(e),n=o.shape,s=n.length;return G(()=>{let a=!0,{mean:i,variance:l}=Yc(o,this.axis,a),u=Un(1,s);for(let h of this.axis)u[h]=n[h];let c=h=>h!=null&&h.shape.length!==s&&this.axis!==[s-1]?h.reshape(u):h,p=c(this.gamma.read()),m=c(this.beta.read()),f=[],d=[];for(let h=0;h{if(r.rank!==4)throw new z(`temporalPadding expects input tensor to be 4-D, but received a ${r.rank}-D tensor.`);if(e==null&&(e=[[1,1],[1,1]]),e.length!==2||e[0].length!==2||e[1].length!==2)throw new z("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(t==null&&(t=Zr()),t!=="channelsLast"&&t!=="channelsFirst")throw new z(`Unknown data format: ${t}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let o;return t==="channelsFirst"?o=[[0,0],[0,0],e[0],e[1]]:o=[[0,0],e[0],e[1],[0,0]],Fr(r,o)})}var dd=class extends Pe{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?Zr():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new z(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,o;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],o=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new z(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new z(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);o=e.padding[1]}this.padding=[t,o]}this.inputSpec=[new St({ndim:4})]}computeOutputShape(e){e=Ze(e);let t,o;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?o=e[3]+this.padding[1][0]+this.padding[1][1]:o=null,[e[0],e[1],t,o]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?o=e[2]+this.padding[1][0]+this.padding[1][1]:o=null,[e[0],t,o,e[3]])}call(e,t){return G(()=>mK(Fe(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};dd.className="ZeroPadding2D";Q.registerClass(dd);function qg(r,e,t,o,n,s){return G(()=>{Rt(n),u_(s),Jr(o),t==null&&(t=[1,1]),o==null&&(o="valid"),n==null&&(n=Zr()),s==null&&(s="max"),r=Of(r,n);let a,i=o==="same"?"same":"valid";return s==="max"?a=Na(r,e,t,i):a=wa(r,e,t,i),n==="channelsFirst"&&(a=je(a,[0,3,1,2])),a})}function G1(r,e,t,o,n,s){return G(()=>{Rt(n),u_(s),Jr(o),t==null&&(t=[1,1,1]),o==null&&(o="valid"),n==null&&(n=Zr()),s==null&&(s="max"),r=L_(r,n);let a,i=o==="same"?"same":"valid";return s==="max"?a=zm(r,e,t,i):a=Tm(r,e,t,i),n==="channelsFirst"&&(a=je(a,[0,4,1,2,3])),a})}var W_=class extends Pe{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new z(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(Ut(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new z(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);Ut(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,Jr(this.padding),this.inputSpec=[new St({ndim:3})]}computeOutputShape(e){e=Ze(e);let t=po(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return G(()=>{this.invokeCallHook(e,t),e=Oa(Fe(e),2);let o=this.poolingFunction(Fe(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Co(o,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},hd=class extends W_{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return Rt(s),Jr(n),qg(e,t,o,n,s,"max")}};hd.className="MaxPooling1D";Q.registerClass(hd);var gd=class extends W_{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return Rt(s),Jr(n),qg(e,t,o,n,s,"avg")}};gd.className="AveragePooling1D";Q.registerClass(gd);var U_=class extends Pe{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new z(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];Ut(this.poolSize,"poolSize"),Ut(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),Jr(this.padding),this.inputSpec=[new St({ndim:4})]}computeOutputShape(e){e=Ze(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],o=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=po(t,this.poolSize[0],this.padding,this.strides[0]),o=po(o,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,o]:[e[0],t,o,e[3]]}call(e,t){return G(()=>(this.invokeCallHook(e,t),this.poolingFunction(Fe(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},xd=class extends U_{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return Rt(s),Jr(n),qg(e,t,o,n,s,"max")}};xd.className="MaxPooling2D";Q.registerClass(xd);var yd=class extends U_{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return Rt(s),Jr(n),qg(e,t,o,n,s,"avg")}};yd.className="AveragePooling2D";Q.registerClass(yd);var j_=class extends Pe{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new z(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];Ut(this.poolSize,"poolSize"),Ut(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),Jr(this.padding),this.inputSpec=[new St({ndim:5})]}computeOutputShape(e){e=Ze(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],o=this.dataFormat==="channelsFirst"?e[3]:e[2],n=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=po(t,this.poolSize[0],this.padding,this.strides[0]),o=po(o,this.poolSize[1],this.padding,this.strides[1]),n=po(n,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,o,n]:[e[0],t,o,n,e[4]]}call(e,t){return G(()=>(this.invokeCallHook(e,t),this.poolingFunction(Fe(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},bd=class extends j_{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return Rt(s),Jr(n),G1(e,t,o,n,s,"max")}};bd.className="MaxPooling3D";Q.registerClass(bd);var wd=class extends j_{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return Rt(s),Jr(n),G1(e,t,o,n,s,"avg")}};wd.className="AveragePooling3D";Q.registerClass(wd);var H_=class extends Pe{constructor(e){super(e);this.inputSpec=[new St({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Ne}},_d=class extends H_{constructor(e){super(e||{})}call(e,t){return G(()=>{let o=Fe(e);return ht(o,1)})}};_d.className="GlobalAveragePooling1D";Q.registerClass(_d);var kd=class extends H_{constructor(e){super(e||{})}call(e,t){return G(()=>{let o=Fe(e);return ur(o,1)})}};kd.className="GlobalMaxPooling1D";Q.registerClass(kd);var q_=class extends Pe{constructor(e){super(e);this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.inputSpec=[new St({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new Ne}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},vd=class extends q_{call(e,t){return G(()=>{let o=Fe(e);return this.dataFormat==="channelsLast"?ht(o,[1,2]):ht(o,[2,3])})}};vd.className="GlobalAveragePooling2D";Q.registerClass(vd);var Cd=class extends q_{call(e,t){return G(()=>{let o=Fe(e);return this.dataFormat==="channelsLast"?ur(o,[1,2]):ur(o,[2,3])})}};Cd.className="GlobalMaxPooling2D";Q.registerClass(Cd);var K_=class extends Pe{constructor(e){super(e);this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){let e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,o={}){let n=t.layer,s=Qr(n,o);delete t.layer;let a={layer:s};return Object.assign(a,t),new e(a)}},Id=class extends K_{constructor(e){super(e);this.supportsMasking=!0}build(e){if(e=Ze(e),e.length<3)throw new z(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];let t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=Ze(e);let t=[e[0]].concat(e.slice(2)),o=this.layer.computeOutputShape(t),n=e[1];return[o[0],n].concat(o.slice(1))}call(e,t){return G(()=>(e=Fe(e),V_((a,i)=>[Fe(this.layer.call(a,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};Id.className="TimeDistributed";Q.registerClass(Id);function fK(r){zi(qT,"BidirectionalMergeMode",r)}var dK="concat",Nd=class extends K_{constructor(e){super(e);let t=e.layer.getConfig(),o={};o.className=e.layer.getClassName(),o.config=t,this.forwardLayer=Qr(o),t.goBackwards=t.goBackwards!==!0;let n={};if(n.className=e.layer.getClassName(),n.config=t,this.backwardLayer=Qr(n),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?dK:e.mergeMode,fK(this.mergeMode),e.weights)throw new Ne("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){let t=e.length,o=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,o)),this.backwardLayer.setWeights(e.slice(o))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let o,n,s;return this.returnState&&(s=t.slice(1)),o=t[0],o=o,this.mergeMode==="concat"?(o[o.length-1]*=2,n=[o]):this.mergeMode==null?n=[o,o.slice()]:n=[o],this.returnState?this.mergeMode==null?n.concat(s).concat(s.slice()):[o].concat(s).concat(s.slice()):gr(n)}apply(e,t){let o=t==null?null:t.initialState,n=t==null?null:t.constants;t==null&&(t={});let s=B_(e,o,n,this.numConstants);if(e=s.inputs,o=s.initialState,n=s.constants,Array.isArray(e)&&(o=e.slice(1),e=e[0]),(o==null||o.length===0)&&n==null)return super.apply(e,t);let a=[],i=[];if(o!=null){let u=o.length;if(u%2>0)throw new z("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=o,a.push(...o);let c=o.map(p=>new St({shape:p.shape}));this.forwardLayer.stateSpec=c.slice(0,u/2),this.backwardLayer.stateSpec=c.slice(u/2),i.push(...c)}if(n!=null)throw new Ne("Support for constants in Bidirectional layers is not implemented yet.");let l=a[0]instanceof Br;for(let u of a)if(u instanceof Br!==l)throw new z("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(l){let u=[e].concat(a),c=this.inputSpec.concat(i),p=this.inputSpec;this.inputSpec=c;let m=super.apply(u,t);return this.inputSpec=p,m}else return super.apply(e,t)}call(e,t){return G(()=>{let o=t.initialState,n,s;if(o==null)n=this.forwardLayer.call(e,t),s=this.backwardLayer.call(e,t);else{let l=o.slice(0,o.length/2),u=o.slice(o.length/2);n=this.forwardLayer.call(e,Object.assign(t,{initialState:l})),s=this.backwardLayer.call(e,Object.assign(t,{initialState:u}))}let a;this.returnState&&(Array.isArray(n)&&(a=n.slice(1).concat(s.slice(1))),n=n[0],s=s[0]),this.returnSequences&&(s=qt(s,1));let i;return this.mergeMode==="concat"?i=pp([n,s]):this.mergeMode==="sum"?i=ee(n,s):this.mergeMode==="ave"?i=P(.5,ee(n,s)):this.mergeMode==="mul"?i=P(n,s):this.mergeMode==null&&(i=[n,s]),this.returnState?this.mergeMode==null?i.concat(a):[i].concat(a):i})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Rs(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Rs(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let o;if(this.returnSequences?this.mergeMode==null?o=[t,t]:o=t:this.mergeMode==null?o=[null,null]:o=null,this.returnState){let s=this.forwardLayer.states.map(a=>null);return Array.isArray(o)?o.concat(s).concat(s):[o].concat(s).concat(s)}else return o}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){let e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){let o=Qr(t.layer);if(delete t.layer,t.numConstants!=null)throw new Ne("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let n=t;return n.layer=o,new e(n)}};Nd.className="Bidirectional";Q.registerClass(Nd);function hK(r){return new Bi(r)}function gK(r){return new Df(r)}function xK(r){return new Tf(r)}function yK(r){return new Af(r)}function bK(r){return new Ef(r)}function wK(r){return new Rf(r)}function _K(r){return new $f(r)}function kK(r){return new tc(r)}function vK(r){return new xl(r)}function CK(r){return new Pf(r)}function IK(r){return new ec(r)}function NK(r){return new Mf(r)}function SK(r){return new Lf(r)}function TK(r){return new zf(r)}function AK(r){return new Bf(r)}function EK(r){return new Kf(r)}function DK(r){return new Hf(r)}function $K(r){return new Dp(r)}function RK(r){return new jf(r)}function FK(r){return new qf(r)}function OK(r){return new Xf(r)}function PK(r){return new Yf(r)}function MK(r){return new Zf(r)}function LK(r){return new Qf(r)}function zK(r){return new ed(r)}function BK(r){return new rd(r)}function VK(r){return new sd(r)}function GK(r){return new od(r)}function WK(r){return new nd(r)}function UK(r){return new td(r)}function jK(r){return new ad(r)}function HK(r){return new md(r)}function qK(r){return new fd(r)}function KK(r){return new dd(r)}function Y_(r){return new gd(r)}function XK(r){return Y_(r)}function YK(r){return Y_(r)}function Z_(r){return new yd(r)}function ZK(r){return Z_(r)}function JK(r){return Z_(r)}function J_(r){return new wd(r)}function QK(r){return J_(r)}function e6(r){return J_(r)}function t6(r){return new _d(r)}function r6(r){return new vd(r)}function W1(r){return new kd(r)}function U1(r){return new Cd(r)}function j1(r){return new hd(r)}function H1(r){return new xd(r)}function o6(r){return new bd(r)}function n6(r){return new Gf(r)}function s6(r){return new Ap(r)}function i6(r){return new Wf(r)}function a6(r){return new bl(r)}function l6(r){return new Vf(r)}function u6(r){return new Tp(r)}function c6(r){return new Uf(r)}function p6(r){return new Ep(r)}function m6(r){return new mo(r)}function f6(r){return new Sp(r)}function d6(r){return new Nd(r)}function h6(r){return new Id(r)}var g6=W1,x6=U1,y6=j1,b6=H1;function w6(r){return new ld(r)}function _6(r){return new ud(r)}function k6(r){return new cd(r)}function v6(r){return new Jf(r)}var Q_={};Je(Q_,{MAPE:()=>F6,MSE:()=>M6,binaryAccuracy:()=>C6,binaryCrossentropy:()=>I6,categoricalAccuracy:()=>S6,categoricalCrossentropy:()=>T6,cosineProximity:()=>D6,mape:()=>O6,meanAbsoluteError:()=>$6,meanAbsolutePercentageError:()=>R6,meanSquaredError:()=>P6,mse:()=>L6,precision:()=>A6,recall:()=>E6,sparseCategoricalAccuracy:()=>N6});function C6(r,e){return vf(r,e)}function I6(r,e){return Pg(r,e)}function N6(r,e){return Mg(r,e)}function S6(r,e){return Cf(r,e)}function T6(r,e){return If(r,e)}function A6(r,e){return h_(r,e)}function E6(r,e){return f1(r,e)}function D6(r,e){return _f(r,e)}function $6(r,e){return kp(r,e)}function R6(r,e){return fl(r,e)}function F6(r,e){return fl(r,e)}function O6(r,e){return fl(r,e)}function P6(r,e){return Gi(r,e)}function M6(r,e){return Gi(r,e)}function L6(r,e){return Gi(r,e)}var ek={};Je(ek,{modelFromJSON:()=>D1});var tk={};Je(tk,{l1:()=>B6,l1l2:()=>z6,l2:()=>V6});function z6(r){return new Ju(r)}function B6(r){return M1(r)}function V6(r){return L1(r)}var Kg=class extends ml{constructor(){super(...arguments);this.model=null}setModel(e){if(!(e instanceof No))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function Xg(r,e){return re}var Yg=class extends Kg{constructor(e){super();if(e==null&&(e={}),e.restoreBestWeights)throw new Ne("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(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=Xg:this.mode==="max"?this.monitorFunc=q1:this.monitor.indexOf("acc")!==-1?this.monitorFunc=q1:this.monitorFunc=Xg,this.monitorFunc===Xg&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Xg?Infinity:-Infinity}async onEpochEnd(e,t){await Vi(t);let o=this.getMonitorValue(t);o!=null&&(this.monitorFunc(o-this.minDelta,this.best)?(this.best=o,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0)))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){e==null&&(e={});let t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}};function G6(r){return new Yg(r)}var K1={earlyStopping:G6};var Yn;(function(r){r[r.DT_INVALID=0]="DT_INVALID",r[r.DT_FLOAT=1]="DT_FLOAT",r[r.DT_DOUBLE=2]="DT_DOUBLE",r[r.DT_INT32=3]="DT_INT32",r[r.DT_UINT8=4]="DT_UINT8",r[r.DT_INT16=5]="DT_INT16",r[r.DT_INT8=6]="DT_INT8",r[r.DT_STRING=7]="DT_STRING",r[r.DT_COMPLEX64=8]="DT_COMPLEX64",r[r.DT_INT64=9]="DT_INT64",r[r.DT_BOOL=10]="DT_BOOL",r[r.DT_QINT8=11]="DT_QINT8",r[r.DT_QUINT8=12]="DT_QUINT8",r[r.DT_QINT32=13]="DT_QINT32",r[r.DT_BFLOAT16=14]="DT_BFLOAT16",r[r.DT_FLOAT_REF=101]="DT_FLOAT_REF",r[r.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",r[r.DT_INT32_REF=103]="DT_INT32_REF",r[r.DT_UINT8_REF=104]="DT_UINT8_REF",r[r.DT_INT16_REF=105]="DT_INT16_REF",r[r.DT_INT8_REF=106]="DT_INT8_REF",r[r.DT_STRING_REF=107]="DT_STRING_REF",r[r.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",r[r.DT_INT64_REF=109]="DT_INT64_REF",r[r.DT_BOOL_REF=110]="DT_BOOL_REF",r[r.DT_QINT8_REF=111]="DT_QINT8_REF",r[r.DT_QUINT8_REF=112]="DT_QUINT8_REF",r[r.DT_QINT32_REF=113]="DT_QINT32_REF",r[r.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(Yn||(Yn={}));var X1;(function(r){let e;(function(t){t[t.LEGACY=0]="LEGACY",t[t.V1=1]="V1",t[t.V2=2]="V2"})(e=r.CheckpointFormatVersion||(r.CheckpointFormatVersion={}))})(X1||(X1={}));var rk={};function Y1(r,e){let t={tfOpName:r,category:"custom",inputs:[],attrs:[],customExecutor:e};rk[r]=t}function Zg(r){return rk[r]}function Z1(r){delete rk[r]}function C(r,e,t,o,n){let s=e.inputParams[r];if(s&&s.inputIndexStart!==void 0){let i=s.inputIndexStart,l=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?i+1:s.inputIndexEnd;if(s.type==="tensor")return xr(e.inputNames[s.inputIndexStart],t,o,n);if(s.type==="tensors")return e.inputNames.slice(i,l).map(m=>xr(m,t,o,n));let u=xr(e.inputNames.slice(i)[0],t,o,n),c=u.dataSync();return s.type==="number"?c[0]:y.toNestedArray(u.shape,c)}let a=e.attrParams[r];return a&&a.value}function xr(r,e,t,o){let[n,s]=eo(r);if(o!=null){let i=o.getHashTableHandleByName(n);if(i!=null)return i}let a=t.currentContextIds.find(i=>!!e[Jg(n,i)]);return a!==void 0?e[Jg(n,a)][s]:void 0}function J1(r,e,t){return e[Jg(r,t.currentContextId)]}function Ls(r,e){let[t,o]=eo(r);return[Jg(t,e&&e.currentContextId),o]}function Jg(r,e){return e?`${r}-${e}`:r}function eo(r){let e=r.split(":");return e.length===1?[r,0]:[e[0],Number(e[e.length-1])]}function Sd(r,e,t){let o=C("pad",r,e,t);if(o==="explicit"){o=C("explicitPaddings",r,e,t);let n=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)n[s][0]=o[s*2],n[s][1]=o[s*2+1];return n}return o}function zs(r){return r.kept?r:Oo(r)}var ok={};Je(ok,{json:()=>W6});var W6=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var nk={};Je(nk,{json:()=>U6});var U6=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var sk={};Je(sk,{json:()=>j6});var j6=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}];var ik={};Je(ik,{json:()=>H6});var H6=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}];var ak={};Je(ak,{json:()=>q6});var q6=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}];var lk={};Je(lk,{json:()=>K6});var K6=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var uk={};Je(uk,{json:()=>X6});var X6=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}];var ck={};Je(ck,{json:()=>Y6});var Y6=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}];var pk={};Je(pk,{json:()=>Z6});var Z6=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableSize",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"LookupTableSizeV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]}];var mk={};Je(mk,{json:()=>J6});var J6=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}];var fk={};Je(fk,{json:()=>Q6});var Q6=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var dk={};Je(dk,{json:()=>e5});var e5=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var hk={};Je(hk,{json:()=>t5});var t5=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}];var gk={};Je(gk,{json:()=>r5});var r5=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}];var xk={};Je(xk,{json:()=>o5});var o5=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}];var yk={};Je(yk,{json:()=>n5});var n5=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}];var bk={};Je(bk,{json:()=>s5});var s5=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}];var Qg=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[ok,nk,sk,ik,ak,lk,uk,fk,mk,ck,dk,hk,gk,xk,yk,bk,pk],t=[].concat(...e.map(o=>o.json));this.opMappers=t.reduce((o,n)=>(o[n.tfOpName]=n,o),{})}transformGraph(e,t={}){let o=e.node,n=[],s=[],a=[],i=o.reduce((h,g)=>(h[g.name]=this.mapNode(g),g.op.startsWith("Placeholder")?n.push(h[g.name]):g.op==="Const"?s.push(h[g.name]):(g.input==null||g.input.length===0)&&a.push(h[g.name]),h),{}),l=[],u=[],c={},p={};t!=null&&(c=this.mapSignatureEntries(t.inputs),p=this.mapSignatureEntries(t.outputs));let m=Object.keys(i);m.forEach(h=>{let g=i[h];g.inputNames.forEach(x=>{let[w]=Ls(x);g.inputs.push(i[w]),i[w].children.push(g)})}),Object.keys(p).length===0?m.forEach(h=>{let g=i[h];g.children.length===0&&u.push(g)}):Object.keys(p).forEach(h=>{let[g]=Ls(h),x=i[g];x!=null&&(x.signatureKey=p[h],u.push(x))}),Object.keys(c).length>0?Object.keys(c).forEach(h=>{let[g]=Ls(h),x=i[g];x&&(x.signatureKey=c[h],l.push(x))}):l=n;let f={};e.library!=null&&e.library.function!=null&&(f=e.library.function.reduce((h,g)=>(h[g.signature.name]=this.mapFunction(g),h),{}));let d={nodes:i,inputs:l,outputs:u,weights:s,placeholders:n,signature:t,functions:f};return a.length>0&&(d.initNodes=a),d}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,o)=>(t[e[o].name]=o,t),{})}mapNode(e){let t=Zg(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});let o={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(n=>n.startsWith("^")?n.substr(1):n),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return t.inputs!=null&&(o.inputParams=t.inputs.reduce((n,s)=>(n[s.name]={type:s.type,inputIndexStart:s.start,inputIndexEnd:s.end},n),{})),t.attrs!=null&&(o.attrParams=t.attrs.reduce((n,s)=>{let a=s.type,i;switch(s.type){case"string":i=ex(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=ex(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"string[]":i=ax(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=ax(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"number":i=rx(e.attr,s.tfName,s.defaultValue||0),i===void 0&&!!s.tfDeprecatedName&&(i=rx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"number[]":i=ix(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=ix(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool":i=tx(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=tx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool[]":i=ux(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=ux(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape":i=sx(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=sx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape[]":i=lx(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=lx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype":i=ox(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=ox(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype[]":i=nx(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=nx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"func":i=Q1(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=Q1(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${s.type} for op: ${e.op}`)}return n[s.name]={value:i,type:a},n},{})),o}mapFunction(e){let t=e.nodeDef,o=[],n=[],s={};t!=null&&(s=t.reduce((p,m)=>(p[m.name]=this.mapNode(m),m.op==="Const"&&n.push(p[m.name]),p),{}));let a=[],i=[];e.signature.inputArg.forEach(p=>{let[m]=Ls(p.name),f={name:m,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:wk(p.type),type:"dtype"}},children:[]};f.signatureKey=p.name,a.push(f),s[m]=f}),Object.keys(s).forEach(p=>{let m=s[p];m.inputNames.forEach(f=>{let[d]=Ls(f);m.inputs.push(s[d]),s[d].children.push(m)})});let u=e.ret;e.signature.outputArg.forEach(p=>{let[m,f]=Ls(u[p.name]),d=s[m];d!=null&&(d.defaultOutput=f,i.push(d))});let c=this.mapArgsToSignature(e);return{nodes:s,inputs:a,outputs:i,weights:n,placeholders:o,signature:c}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,o)=>(t[o.name]=this.mapArgToTensorInfo(o),t),{}),outputs:e.signature.outputArg.reduce((t,o)=>(t[o.name]=this.mapArgToTensorInfo(o,e.ret),t),{})}}mapArgToTensorInfo(e,t){let o=e.name;return t!=null&&(o=t[o]),{name:o,dtype:e.type}}};function i5(r){let e=j().global;if(typeof e.atob!="undefined")return e.atob(r);if(typeof Buffer!="undefined")return new Buffer(r,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function eA(r,e){let t=Array.isArray(r)?String.fromCharCode.apply(null,r):i5(r);return e?t:t.toLowerCase()}function ex(r,e,t,o=!1){let n=r[e];return n!=null?eA(n.s,o):t}function tx(r,e,t){let o=r[e];return o?o.b:t}function rx(r,e,t){let o=r[e]||{},n=o.i!=null?o.i:o.f!=null?o.f:t;return typeof n=="number"?n:parseInt(n,10)}function wk(r){switch(typeof r=="string"&&(r=Yn[r]),r){case Yn.DT_FLOAT:return"float32";case Yn.DT_INT32:case Yn.DT_INT64:case Yn.DT_INT8:case Yn.DT_UINT8:return"int32";case Yn.DT_BOOL:return"bool";case Yn.DT_DOUBLE:return"float32";case Yn.DT_STRING:return"string";default:return null}}function Q1(r,e,t){let o=r[e];return o&&o.func?o.func.name:t}function ox(r,e,t){let o=r[e];return o&&o.type?wk(o.type):t}function nx(r,e,t){let o=r[e];return o&&o.list&&o.list.type?o.list.type.map(n=>wk(n)):t}function tA(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(e=>typeof e.size=="number"?e.size:parseInt(e.size,10)):[]}function sx(r,e,t){let o=r[e];return o&&o.shape?tA(o.shape):t}function ix(r,e,t){let o=r[e];return o?((o.list.f&&o.list.f.length?o.list.f:o.list.i)||[]).map(n=>typeof n=="number"?n:parseInt(n,10)):t}function ax(r,e,t,o=!1){let n=r[e];return n&&n.list&&n.list.s?n.list.s.map(s=>eA(s,o)):t}function lx(r,e,t){let o=r[e];return o&&o.list&&o.list.shape?o.list.shape.map(n=>tA(n)):t}function ux(r,e,t){let o=r[e];return o&&o.list&&o.list.b?o.list.b:t}var _k=class{constructor(e,t,o){this.node=e,this.tensorMap=t,this.context=o,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(n=>this.getInput(n)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((n,s)=>(n[s]=this.getAttr(s),n),{}))}getInput(e){return xr(e,this.tensorMap,this.context)}getAttr(e,t){let o=this.node.rawAttrs[e];if(o.tensor!=null)return xr(e,this.tensorMap,this.context);if(o.i!=null||o.f!=null)return rx(this.node.rawAttrs,e,t);if(o.s!=null)return ex(this.node.rawAttrs,e,t);if(o.b!=null)return tx(this.node.rawAttrs,e,t);if(o.shape!=null)return sx(this.node.rawAttrs,e,t);if(o.type!=null)return ox(this.node.rawAttrs,e,t);if(o.list!=null){if(o.list.i!=null||o.list.f!=null)return ix(this.node.rawAttrs,e,t);if(o.list.s!=null)return ax(this.node.rawAttrs,e,t);if(o.list.shape!=null)return lx(this.node.rawAttrs,e,t);if(o.list.b!=null)return ux(this.node.rawAttrs,e,t);if(o.list.type!=null)return nx(this.node.rawAttrs,e,t)}return t}};var rA=(r,e,t)=>{switch(r.op){case"BiasAdd":case"AddV2":case"Add":return[ee(C("a",r,e,t),C("b",r,e,t))];case"AddN":return[iw(C("tensors",r,e,t))];case"FloorMod":case"Mod":return[Vm(C("a",r,e,t),C("b",r,e,t))];case"Mul":return[P(C("a",r,e,t),C("b",r,e,t))];case"RealDiv":case"Div":return[me(C("a",r,e,t),C("b",r,e,t))];case"DivNoNan":return[Rm(C("a",r,e,t),C("b",r,e,t))];case"FloorDiv":return[yu(C("a",r,e,t),C("b",r,e,t))];case"Sub":return[ce(C("a",r,e,t),C("b",r,e,t))];case"Minimum":return[As(C("a",r,e,t),C("b",r,e,t))];case"Maximum":return[Yr(C("a",r,e,t),C("b",r,e,t))];case"Pow":return[Or(C("a",r,e,t),C("b",r,e,t))];case"SquaredDifference":return[zu(C("a",r,e,t),C("b",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var oA=(r,e,t)=>{switch(r.op){case"Abs":case"ComplexAbs":return[Nt(C("x",r,e,t))];case"Acos":return[wm(C("x",r,e,t))];case"Acosh":return[_m(C("x",r,e,t))];case"Asin":return[vm(C("x",r,e,t))];case"Asinh":return[Cm(C("x",r,e,t))];case"Atan":return[Im(C("x",r,e,t))];case"Atan2":return[Nm(C("x",r,e,t),C("y",r,e,t))];case"Atanh":return[Sm(C("x",r,e,t))];case"Ceil":return[Am(C("x",r,e,t))];case"Complex":return[ko(C("real",r,e,t),C("imag",r,e,t))];case"Cos":return[ka(C("x",r,e,t))];case"Cosh":return[Cu(C("x",r,e,t))];case"Elu":return[Ns(C("x",r,e,t))];case"Erf":return[Fm(C("x",r,e,t))];case"Exp":return[Zt(C("x",r,e,t))];case"Expm1":return[Om(C("x",r,e,t))];case"Floor":return[Ss(C("x",r,e,t))];case"Log":return[lr(C("x",r,e,t))];case"Log1p":return[Tu(C("x",r,e,t))];case"Imag":return[Nu(C("x",r,e,t))];case"Neg":return[He(C("x",r,e,t))];case"Reciprocal":return[Gm(C("x",r,e,t))];case"Real":return[il(C("x",r,e,t))];case"Relu":return[Sr(C("x",r,e,t))];case"Round":return[Wm(C("x",r,e,t))];case"Selu":return[Ou(C("x",r,e,t))];case"Sigmoid":return[qr(C("x",r,e,t))];case"Sin":return[Pu(C("x",r,e,t))];case"Sign":return[jm(C("x",r,e,t))];case"Sinh":return[Mu(C("x",r,e,t))];case"Softplus":return[Ts(C("x",r,e,t))];case"Sqrt":return[xt(C("x",r,e,t))];case"Square":return[Oe(C("x",r,e,t))];case"Tanh":return[Fi(C("x",r,e,t))];case"Tan":return[Xm(C("x",r,e,t))];case"ClipByValue":return[ir(C("x",r,e,t),C("clipValueMin",r,e,t),C("clipValueMax",r,e,t))];case"Relu6":return[Ru(C("x",r,e,t))];case"Rsqrt":return[Fu(xr(r.inputNames[0],e,t))];case"Prod":return[Du(C("x",r,e,t),C("axes",r,e,t))];case"LeakyRelu":return[Ca(C("x",r,e,t),C("alpha",r,e,t))];case"Prelu":return[Ta(C("x",r,e,t),C("alpha",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function So(r,e,t=""){if(!(typeof r=="number"||typeof e=="number")){y.assert(r.length===e.length,()=>t+` Shapes ${r} and ${e} must match`);for(let o=0;ot+` Shapes ${r} and ${e} must match`)}}}function nA(r){return!(typeof r=="number"||r.some(e=>e<0))}function $p(r,e,t){let o=cx(r,t),n=!nA(o);if(n&&e.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${o}`);if(n&&e.forEach(s=>{o=cx(s.shape,o)}),!nA(o))throw new Error(`Non-fully-defined elementShape: ${o}`);return o}function cx(r,e){if(typeof r=="number")return e;if(typeof e=="number")return r;if(r.length!==e.length)throw new Error(`Incompatible ranks during merge: ${r} vs. ${e}`);let t=[];for(let o=0;o=0&&s>=0&&n!==s)throw new Error(`Incompatible shape during merge: ${r} vs. ${e}`);t[o]=n>=0?n:s}return t}var kk=class{constructor(e,t,o,n,s,a,i){this.name=e,this.dtype=t,this.maxSize=o,this.elementShape=n,this.identicalElementShapes=s,this.dynamicSize=a,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=le(0),Dt(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.tensor.id))&&t.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);let t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(t=>this.read(t))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);let o=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, + because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),So(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),o.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(o.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);o.tensor=t,Dt(t),o.written=!0,this.tensors[e]=o}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach((o,n)=>this.write(o,t[n]))}gather(e,t){if(!!t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let n=0;n=this.maxSize)throw new Error(`Max index must be < array size (${o} vs. ${this.maxSize})`);this.writeMany(e,pr(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let o=0,n=e.map(l=>(o+=l,o));if(o!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${o}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);let s=o===0?0:t.size/o,a=[];V(()=>{t=M(t,[1,o,s]);for(let l=0;l{if(o!==s.dtype)throw new Error(`Invalid data types; op elements ${o}, but list elements ${s.dtype}`);So(t,s.shape,"TensorList shape mismatch: "),Et(s)}),this.idTensor=ue(0),this.maxNumElements=n,Et(this.idTensor)}get id(){return this.idTensor.id}copy(){return new ec([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.id))&&t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,o=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(o!==-1&&this.tensors.length!==o)throw new Error(`Operation expected a list with ${o} elements but got a list with ${this.tensors.length} elements.`);So(e,this.elementShape,"TensorList shape mismatch: ");let n=Ap(this.elementShape,this.tensors,e);return V(()=>{let s=this.tensors.map(a=>M(a,n));return Bt(s,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let o=Ap(this.elementShape,this.tensors,e),n=this.tensors.pop();return So(n.shape,e,"TensorList shape mismatch: "),M(n,o)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(So(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");Et(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,o){if(o!==this.elementDtype)throw new Error(`Invalid data types; op elements ${o}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);So(this.tensors[e].shape,t,"TensorList shape mismatch: ");let n=Ap(this.elementShape,this.tensors,t);return M(this.tensors[e],n)}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);So(this.elementShape,t.shape,"TensorList shape mismatch: "),Et(t),this.tensors[e]=t}gather(e,t,o){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);So(this.elementShape,o,"TensorList shape mismatch: "),e=e.slice(0,this.size());let n=Ap(this.elementShape,this.tensors,o);return e.length===0?$r([],[0].concat(n)):V(()=>{let s=e.map(a=>M(this.tensors[a],n));return Bt(s,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);So(this.elementShape,t,"TensorList shape mismatch: ");let o=Ap(this.elementShape,this.tensors,t);return this.size()===0?$r([],[0].concat(o)):V(()=>{let n=this.tensors.map(s=>M(s,o));return Ye(n,0)})}};function M1(r,e,t){let o=r.dtype;if(r.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${r.shape}`);if(r.dtype!==t)throw new Error(`Invalid data types; op elements ${r.dtype}, but list elements ${t}`);let n=r.shape.slice(1);So(n,e,"TensorList shape mismatch: ");let s=cr(r);return new ec(s,e,o)}function L1(r,e,t){return new ec([],r,e,t)}function z1(r,e,t,o){if(e.length!==r.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${e.length} vs. ${r.shape[0]}`);let n=Math.max(...e);if(o!=null&&o!==-1&&n>=o)throw new Error(`Max index must be < array size (${n} vs. ${o})`);let s=new ec([],t,r.dtype,o),a=cr(r,0);return e.forEach((i,l)=>{s.setItem(i,a[l])}),s}function B1(r,e,t){let o=0,n=e.map(c=>(o+=c,o));if(o!==r.shape[0])throw new Error(`Expected sum of lengths to be equal to + ${o}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);let s=o===0?0:t.size/o,a=[];G(()=>{t=L(t,[1,o,s]);for(let l=0;l{if(o!==s.dtype)throw new Error(`Invalid data types; op elements ${o}, but list elements ${s.dtype}`);So(t,s.shape,"TensorList shape mismatch: "),Dt(s)}),this.idTensor=le(0),this.maxNumElements=n,Dt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new rc([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.id))&&t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,o=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(o!==-1&&this.tensors.length!==o)throw new Error(`Operation expected a list with ${o} elements but got a list with ${this.tensors.length} elements.`);So(e,this.elementShape,"TensorList shape mismatch: ");let n=$p(this.elementShape,this.tensors,e);return G(()=>{let s=this.tensors.map(a=>L(a,n));return Vt(s,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let o=$p(this.elementShape,this.tensors,e),n=this.tensors.pop();return So(n.shape,e,"TensorList shape mismatch: "),L(n,o)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(So(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");Dt(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,o){if(o!==this.elementDtype)throw new Error(`Invalid data types; op elements ${o}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);So(this.tensors[e].shape,t,"TensorList shape mismatch: ");let n=$p(this.elementShape,this.tensors,t);return L(this.tensors[e],n)}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);So(this.elementShape,t.shape,"TensorList shape mismatch: "),Dt(t),this.tensors[e]=t}gather(e,t,o){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);So(this.elementShape,o,"TensorList shape mismatch: "),e=e.slice(0,this.size());let n=$p(this.elementShape,this.tensors,o);return e.length===0?Rr([],[0].concat(n)):G(()=>{let s=e.map(a=>L(this.tensors[a],n));return Vt(s,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);So(this.elementShape,t,"TensorList shape mismatch: ");let o=$p(this.elementShape,this.tensors,t);return this.size()===0?Rr([],[0].concat(o)):G(()=>{let n=this.tensors.map(s=>L(s,o));return Ye(n,0)})}};function sA(r,e,t){let o=r.dtype;if(r.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${r.shape}`);if(r.dtype!==t)throw new Error(`Invalid data types; op elements ${r.dtype}, but list elements ${t}`);let n=r.shape.slice(1);So(n,e,"TensorList shape mismatch: ");let s=pr(r);return new rc(s,e,o)}function iA(r,e,t){return new rc([],r,e,t)}function aA(r,e,t,o){if(e.length!==r.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${e.length} vs. ${r.shape[0]}`);let n=Math.max(...e);if(o!=null&&o!==-1&&n>=o)throw new Error(`Max index must be < array size (${n} vs. ${o})`);let s=new rc([],t,r.dtype,o),a=pr(r,0);return e.forEach((i,l)=>{s.setItem(i,a[l])}),s}function lA(r,e,t){let o=0,n=e.map(c=>(o+=c,o));if(o!==r.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${o}, and tensor's shape is: ${r.shape}`);let s=r.shape.slice(1),a=ix(s,t),i=o===0?0:r.size/o,l=V(()=>{let c=[];r=M(r,[1,o,i]);for(let p=0;p{switch(r.op){case"If":case"StatelessIf":{let o=v("thenBranch",r,e,t),n=v("elseBranch",r,e,t),s=v("cond",r,e,t),a=v("args",r,e,t);return(await s.data())[0]?t.functionMap[o].executeFunctionAsync(a,t.tensorArrayMap,t.tensorListMap):t.functionMap[n].executeFunctionAsync(a,t.tensorArrayMap,t.tensorListMap)}case"While":case"StatelessWhile":{let o=v("body",r,e,t),n=v("cond",r,e,t),s=v("args",r,e,t),a=await t.functionMap[n].executeFunctionAsync(s,t.tensorArrayMap,t.tensorListMap),i=s.map(c=>c.id),l=await a[0].data();a.forEach(c=>{!c.kept&&i.indexOf(c.id)===-1&&c.dispose()});let u=s;for(;l[0];){let c=u;u=await t.functionMap[o].executeFunctionAsync(u,t.tensorArrayMap,t.tensorListMap);let p=u.map(f=>f.id);c.forEach(f=>{!f.kept&&i.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()});let m=await t.functionMap[n].executeFunctionAsync(u,t.tensorArrayMap,t.tensorListMap);l=await m[0].data(),m.forEach(f=>{!f.kept&&i.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()})}return u}case"LoopCond":{let o=v("pred",r,e,t);return[Ls(o)]}case"Switch":{let o=v("pred",r,e,t),n=v("data",r,e,t);return n.kept||(n=Ls(n)),(await o.data())[0]?[void 0,n]:[n,void 0]}case"Merge":{let o=r.inputNames.find(n=>gr(n,e,t)!==void 0);if(o){let n=gr(o,e,t);return[Ls(n)]}return}case"Enter":{let o=v("frameName",r,e,t),n=v("tensor",r,e,t);return t.enterFrame(o),[Ls(n)]}case"Exit":{let o=v("tensor",r,e,t);return t.exitFrame(),[Ls(o)]}case"NextIteration":{let o=v("tensor",r,e,t);return t.nextIteration(),[Ls(o)]}case"TensorArrayV3":{let o=v("size",r,e,t),n=v("dtype",r,e,t),s=v("elementShape",r,e,t),a=v("dynamicSize",r,e,t),i=v("clearAfterRead",r,e,t),l=v("identicalElementShapes",r,e,t),u=v("name",r,e,t),c=new gk(u,n,o,s,l,a,i);return t.addTensorArray(c),[c.idTensor,ue(1)]}case"TensorArrayWriteV3":{let o=v("tensorArrayId",r,e,t),n=v("index",r,e,t),s=v("tensor",r,e,t),a=t.getTensorArray(o.id);return a.write(n,s),[a.idTensor]}case"TensorArrayReadV3":{let o=v("tensorArrayId",r,e,t),n=v("index",r,e,t);return[t.getTensorArray(o.id).read(n)]}case"TensorArrayGatherV3":{let o=v("tensorArrayId",r,e,t),n=v("indices",r,e,t),s=v("dtype",r,e,t);return[t.getTensorArray(o.id).gather(n,s)]}case"TensorArrayScatterV3":{let o=v("tensorArrayId",r,e,t),n=v("indices",r,e,t),s=v("tensor",r,e,t),a=t.getTensorArray(o.id);return a.scatter(n,s),[a.idTensor]}case"TensorArrayConcatV3":{let o=v("tensorArrayId",r,e,t),n=t.getTensorArray(o.id),s=v("dtype",r,e,t);return[n.concat(s)]}case"TensorArraySplitV3":{let o=v("tensorArrayId",r,e,t),n=v("tensor",r,e,t),s=v("lengths",r,e,t),a=t.getTensorArray(o.id);return a.split(s,n),[a.idTensor]}case"TensorArraySizeV3":{let o=v("tensorArrayId",r,e,t),n=t.getTensorArray(o.id);return[ue(n.size(),"int32")]}case"TensorArrayCloseV3":{let o=v("tensorArrayId",r,e,t),n=t.getTensorArray(o.id);return n.clearAndClose(),[n.idTensor]}case"TensorListSetItem":{let o=v("tensorListId",r,e,t),n=v("index",r,e,t),s=v("tensor",r,e,t),a=t.getTensorList(o.id);return a.setItem(n,s),[a.idTensor]}case"TensorListGetItem":{let o=v("tensorListId",r,e,t),n=v("index",r,e,t),s=v("elementShape",r,e,t),a=v("elementDType",r,e,t);return[t.getTensorList(o.id).getItem(n,s,a)]}case"TensorListScatterV2":case"TensorListScatter":{let o=v("indices",r,e,t),n=v("tensor",r,e,t),s=v("elementShape",r,e,t),a=v("numElements",r,e,t),i=z1(n,o,s,a);return t.addTensorList(i),[i.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let o=v("elementShape",r,e,t),n=v("elementDType",r,e,t),s;r.op==="TensorListReserve"?s="numElements":s="maxNumElements";let a=v(s,r,e,t),i=L1(o,n,a);return t.addTensorList(i),[i.idTensor]}case"TensorListGather":{let o=v("tensorListId",r,e,t),n=v("indices",r,e,t),s=v("elementShape",r,e,t),a=v("elementDType",r,e,t);return[t.getTensorList(o.id).gather(n,a,s)]}case"TensorListStack":{let o=v("tensorListId",r,e,t),n=v("elementShape",r,e,t),s=v("elementDType",r,e,t),a=v("numElements",r,e,t);return[t.getTensorList(o.id).stack(n,s,a)]}case"TensorListFromTensor":{let o=v("tensor",r,e,t),n=v("elementShape",r,e,t),s=v("elementDType",r,e,t),a=M1(o,n,s);return t.addTensorList(a),[a.idTensor]}case"TensorListConcat":{let o=v("tensorListId",r,e,t),n=t.getTensorList(o.id),s=v("dtype",r,e,t),a=v("elementShape",r,e,t);return[n.concat(s,a)]}case"TensorListPushBack":{let o=v("tensorListId",r,e,t),n=v("tensor",r,e,t),s=t.getTensorList(o.id);return s.pushBack(n),[s.idTensor]}case"TensorListPopBack":{let o=v("tensorListId",r,e,t),n=v("elementShape",r,e,t),s=v("elementDType",r,e,t);return[t.getTensorList(o.id).popBack(n,s)]}case"TensorListSplit":{let o=v("tensor",r,e,t),n=v("elementShape",r,e,t),s=v("lengths",r,e,t),a=B1(o,s,n);return t.addTensorList(a),[a.idTensor]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};function G1(r,e,t){let[o,n]=v("fusedOps",r,e,t),s=o==="biasadd",a=n==="prelu",i=o==="fusedbatchnorm",l=v("numArgs",r,e,t);if(s){if(a&&l!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!a&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(i)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");let u=v("strides",r,e,t),c=Id(r,e,t),p=v("dataFormat",r,e,t).toUpperCase(),m=v("dilations",r,e,t),[f,d]=v("args",r,e,t),h=v("leakyreluAlpha",r,e,t);return{stride:u,pad:c,dataFormat:p,dilations:m,biasArg:f,preluArg:d,activationFunc:n,leakyreluAlpha:h}}var W1=(r,e,t)=>{switch(r.op){case"Conv1D":{let o=v("stride",r,e,t),n=v("pad",r,e,t),s=v("dataFormat",r,e,t).toUpperCase(),a=v("dilation",r,e,t);return[wu(v("x",r,e,t),v("filter",r,e,t),o,n,s,a)]}case"Conv2D":{let o=v("strides",r,e,t),n=Id(r,e,t),s=v("dataFormat",r,e,t).toUpperCase(),a=v("dilations",r,e,t);return[Kr(v("x",r,e,t),v("filter",r,e,t),[o[1],o[2]],n,s,[a[1],a[2]])]}case"_FusedConv2D":{let{stride:o,pad:n,dataFormat:s,dilations:a,biasArg:i,preluArg:l,activationFunc:u,leakyreluAlpha:c}=G1(r,e,t);return[Gn.conv2d({x:v("x",r,e,t),filter:v("filter",r,e,t),strides:[o[1],o[2]],pad:n,dataFormat:s,dilations:[a[1],a[2]],bias:i,activation:u,preluActivationWeights:l,leakyreluAlpha:c})]}case"FusedDepthwiseConv2dNative":{let{stride:o,pad:n,dataFormat:s,dilations:a,biasArg:i,preluArg:l,activationFunc:u,leakyreluAlpha:c}=G1(r,e,t);return[Gn.depthwiseConv2d({x:v("x",r,e,t),filter:v("filter",r,e,t),strides:[o[1],o[2]],pad:n,dataFormat:s,dilations:[a[1],a[2]],bias:i,activation:u,preluActivationWeights:l,leakyreluAlpha:c})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let o=v("outputShape",r,e,t),n=v("strides",r,e,t),s=Id(r,e,t);return[_u(v("x",r,e,t),v("filter",r,e,t),o,[n[1],n[2]],s)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let o=v("strides",r,e,t),n=Id(r,e,t),s=v("dilations",r,e,t),a=v("dataFormat",r,e,t).toUpperCase();return[Cs(v("input",r,e,t),v("filter",r,e,t),[o[1],o[2]],n,a,[s[1],s[2]])]}case"Conv3D":{let o=v("strides",r,e,t),n=v("pad",r,e,t),s=v("dataFormat",r,e,t).toUpperCase(),a=v("dilations",r,e,t);return[Sm(v("x",r,e,t),v("filter",r,e,t),[o[1],o[2],o[3]],n,s,[a[1],a[2],a[3]])]}case"AvgPool":{let o=v("strides",r,e,t),n=v("pad",r,e,t),s=v("kernelSize",r,e,t);return[wa(v("x",r,e,t),[s[1],s[2]],[o[1],o[2]],n)]}case"MaxPool":{let o=v("strides",r,e,t),n=v("pad",r,e,t),s=v("kernelSize",r,e,t);return[Na(v("x",r,e,t),[s[1],s[2]],[o[1],o[2]],n)]}case"MaxPoolWithArgmax":{let o=v("strides",r,e,t),n=v("pad",r,e,t),s=v("kernelSize",r,e,t),a=v("includeBatchInIndex",r,e,t),{result:i,indexes:l}=vw(v("x",r,e,t),[s[1],s[2]],[o[1],o[2]],n,a);return[i,l]}case"AvgPool3D":{let o=v("strides",r,e,t),n=v("pad",r,e,t),s=v("kernelSize",r,e,t);return[Im(v("x",r,e,t),[s[1],s[2],s[3]],[o[1],o[2],o[3]],n)]}case"MaxPool3D":{let o=v("strides",r,e,t),n=v("pad",r,e,t),s=v("kernelSize",r,e,t);return[Pm(v("x",r,e,t),[s[1],s[2],s[3]],[o[1],o[2],o[3]],n)]}case"Dilation2D":{let o=v("strides",r,e,t),n=v("pad",r,e,t),s=v("dilations",r,e,t),a=o[1],i=o[2],l=s[1],u=s[2];return[Am(v("x",r,e,t),v("filter",r,e,t),[a,i],n,[l,u],"NHWC")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var U1=(r,e,t)=>{switch(r.op){case"Fill":{let o=v("shape",r,e,t),n=v("dtype",r,e,t),s=v("value",r,e,t);return[va(o,s,n)]}case"LinSpace":{let o=v("start",r,e,t),n=v("stop",r,e,t),s=v("num",r,e,t);return[xw(o,n,s)]}case"Multinomial":{let o=v("logits",r,e,t),n=v("numSamples",r,e,t),s=v("seed",r,e,t);return[Cw(o,n,s)]}case"OneHot":{let o=v("indices",r,e,t),n=v("depth",r,e,t),s=v("onValue",r,e,t),a=v("offValue",r,e,t);return[vs(o,n,s,a)]}case"Ones":return[Ir(v("shape",r,e,t),v("dtype",r,e,t))];case"OnesLike":return[er(v("x",r,e,t))];case"RandomUniform":return[As(v("shape",r,e,t),v("minval",r,e,t),v("maxval",r,e,t),v("dtype",r,e,t))];case"Range":{let o=v("start",r,e,t),n=v("stop",r,e,t),s=v("step",r,e,t);return[Xc(o,n,s,v("dtype",r,e,t))]}case"TruncatedNormal":{let o=v("shape",r,e,t),n=v("mean",r,e,t),s=v("stdDev",r,e,t),a=v("seed",r,e,t);return[Lu(o,n,s,v("dtype",r,e,t),a)]}case"Zeros":return[ht(v("shape",r,e,t),v("dtype",r,e,t))];case"ZerosLike":return[Ce(v("x",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function xk(r,e,t){let o=v("boxes",r,e,t),n=v("scores",r,e,t),s=v("maxOutputSize",r,e,t),a=v("iouThreshold",r,e,t),i=v("scoreThreshold",r,e,t),l=v("softNmsSigma",r,e,t);return{boxes:o,scores:n,maxOutputSize:s,iouThreshold:a,scoreThreshold:i,softNmsSigma:l}}var j1=async(r,e,t)=>{switch(r.op){case"NonMaxSuppressionV5":{let{boxes:o,scores:n,maxOutputSize:s,iouThreshold:a,scoreThreshold:i,softNmsSigma:l}=xk(r,e,t),u=await Ds.nonMaxSuppressionWithScoreAsync(o,n,s,a,i,l);return[u.selectedIndices,u.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:o,scores:n,maxOutputSize:s,iouThreshold:a,scoreThreshold:i}=xk(r,e,t),l=v("padToMaxOutputSize",r,e,t),u=await Ds.nonMaxSuppressionPaddedAsync(o,n,s,a,i,l);return[u.selectedIndices,u.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:o,scores:n,maxOutputSize:s,iouThreshold:a,scoreThreshold:i}=xk(r,e,t);return[await Ds.nonMaxSuppressionAsync(o,n,s,a,i)]}case"Where":{let o=ne(v("condition",r,e,t),"bool"),n=[await Ym(o)];return o.dispose(),n}case"ListDiff":return Fw(v("x",r,e,t),v("y",r,e,t));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var H1=(r,e,t)=>{switch(r.op){case"TopKV2":{let o=v("x",r,e,t),n=v("k",r,e,t),s=v("sorted",r,e,t),a=Km(o,n,s);return[a.values,a.indices]}case"Unique":{let o=v("x",r,e,t),n=Zc(o);return[n.values,n.indices]}case"UniqueV2":{let o=v("x",r,e,t),n=v("axis",r,e,t),s=Zc(o,n);return[s.values,s.indices]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var q1=(r,e,t)=>{switch(r.op){case"Const":return e[r.name];case"PlaceholderWithDefault":let o=v("default",r,e,t);return[gr(r.name,e,t)||o];case"Placeholder":return[gr(r.name,e,t)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let u=v("x",r,e,t);return[Ls(u)]}case"IdentityN":return v("x",r,e,t).map(u=>Ls(u));case"Snapshot":let n=v("x",r,e,t);return[Ls(n)];case"Shape":return[Vt(v("x",r,e,t).shape,"int32")];case"ShapeN":return v("x",r,e,t).map(u=>Vt(u.shape));case"Size":return[ue(v("x",r,e,t).size,"int32")];case"Rank":return[ue(v("x",r,e,t).rank,"int32")];case"NoOp":return[ue(1)];case"Print":let s=v("x",r,e,t),a=v("data",r,e,t),i=v("message",r,e,t),l=v("summarize",r,e,t);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(i);for(let u=0;ue.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}async import(e,t){this.checkKeyAndValueTensor(e,t);let o=await e.data();return this.tensorMap.forEach(n=>n.dispose()),this.tensorMap.clear(),V(()=>{let n=cr(t),s=o.length,a=n.length;x.assert(s===a,()=>`The number of elements doesn't match, keys has ${s} elements, the values has ${a} elements.`);for(let i=0;i{let n=[];for(let s=0;s{switch(r.op){case"HashTable":case"HashTableV2":{let n=v("keyDType",r,e,t),s=v("valueDType",r,e,t),a=new yk(n,s);return o.addHashTable(r.name,a),[a.handle]}case"LookupTableImport":case"LookupTableImportV2":{let n=v("tableHandle",r,e,t,o),s=v("keys",r,e,t),a=v("values",r,e,t);return[await o.getHashTableById(n.id).import(s,a)]}case"LookupTableFind":case"LookupTableFindV2":{let n=v("tableHandle",r,e,t,o),s=v("keys",r,e,t),a=v("defaultValue",r,e,t);return[await o.getHashTableById(n.id).find(s,a)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var X1=(r,e,t)=>{switch(r.op){case"ResizeBilinear":{let o=v("images",r,e,t),n=v("size",r,e,t),s=v("alignCorners",r,e,t),a=v("halfPixelCenters",r,e,t);return[Ds.resizeBilinear(o,[n[0],n[1]],s,a)]}case"ResizeNearestNeighbor":{let o=v("images",r,e,t),n=v("size",r,e,t),s=v("alignCorners",r,e,t),a=v("halfPixelCenters",r,e,t);return[Ds.resizeNearestNeighbor(o,[n[0],n[1]],s,a)]}case"CropAndResize":{let o=v("image",r,e,t),n=v("boxes",r,e,t),s=v("boxInd",r,e,t),a=v("cropSize",r,e,t),i=v("method",r,e,t),l=v("extrapolationValue",r,e,t);return[Ds.cropAndResize(o,n,s,a,i,l)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var Y1=(r,e,t)=>{switch(r.op){case"Equal":return[vo(v("a",r,e,t),v("b",r,e,t))];case"NotEqual":return[Vn(v("a",r,e,t),v("b",r,e,t))];case"Greater":return[Qt(v("a",r,e,t),v("b",r,e,t))];case"GreaterEqual":return[io(v("a",r,e,t),v("b",r,e,t))];case"Less":return[Iu(v("a",r,e,t),v("b",r,e,t))];case"LessEqual":return[zo(v("a",r,e,t),v("b",r,e,t))];case"LogicalAnd":return[dr(v("a",r,e,t),v("b",r,e,t))];case"LogicalNot":return[Ia(v("a",r,e,t))];case"LogicalOr":return[Tu(v("a",r,e,t),v("b",r,e,t))];case"Select":case"SelectV2":return[Dt(v("condition",r,e,t),v("a",r,e,t),v("b",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var Z1=(r,e,t)=>{switch(r.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[We(v("a",r,e,t),v("b",r,e,t),v("transposeA",r,e,t),v("transposeB",r,e,t))];case"Transpose":return[je(v("x",r,e,t),v("perm",r,e,t))];case"_FusedMatMul":let[o,n]=v("fusedOps",r,e,t),s=o==="biasadd",a=n==="prelu",i=v("numArgs",r,e,t),l=v("leakyreluAlpha",r,e,t);if(s){if(a&&i!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!a&&i!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[u,c]=v("args",r,e,t);return[Gn.matMul({a:v("a",r,e,t),b:v("b",r,e,t),transposeA:v("transposeA",r,e,t),transposeB:v("transposeB",r,e,t),bias:u,activation:n,preluActivationWeights:c,leakyreluAlpha:l})];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var J1=(r,e,t)=>{switch(r.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[Ln(v("x",r,e,t),v("mean",r,e,t),v("variance",r,e,t),v("offset",r,e,t),v("scale",r,e,t),v("epsilon",r,e,t))];case"FusedBatchNormV3":return[Ln(v("x",r,e,t),v("mean",r,e,t),v("variance",r,e,t),v("offset",r,e,t),v("scale",r,e,t),v("epsilon",r,e,t))];case"LRN":return[Rm(v("x",r,e,t),v("radius",r,e,t),v("bias",r,e,t),v("alpha",r,e,t),v("beta",r,e,t))];case"Softmax":return[Aa(v("x",r,e,t))];case"LogSoftmax":return[Su(v("x",r,e,t))];case"SparseToDense":return[Zm(v("sparseIndices",r,e,t),v("outputShape",r,e,t),v("sparseValues",r,e,t),v("defaultValue",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var Q1=(r,e,t)=>{switch(r.op){case"Max":{let a=v("axis",r,e,t),i=v("keepDims",r,e,t);return[lr(v("x",r,e,t),a,i)]}case"Mean":{let a=v("axis",r,e,t),i=v("keepDims",r,e,t);return[dt(v("x",r,e,t),a,i)]}case"Min":{let a=v("axis",r,e,t),i=v("keepDims",r,e,t);return[Oi(v("x",r,e,t),a,i)]}case"Sum":{let a=v("axis",r,e,t),i=v("keepDims",r,e,t);return[ge(v("x",r,e,t),a,i)]}case"All":{let a=v("axis",r,e,t),i=v("keepDims",r,e,t);return[xu(v("x",r,e,t),a,i)]}case"Any":{let a=v("axis",r,e,t),i=v("keepDims",r,e,t);return[ol(v("x",r,e,t),a,i)]}case"ArgMax":{let a=v("axis",r,e,t);return[nl(v("x",r,e,t),a)]}case"ArgMin":{let a=v("axis",r,e,t);return[bm(v("x",r,e,t),a)]}case"Prod":{let a=v("axis",r,e,t),i=v("keepDims",r,e,t);return[Au(v("x",r,e,t),a,i)]}case"Cumsum":{let a=v("axis",r,e,t),i=v("exclusive",r,e,t),l=v("reverse",r,e,t);return[vu(v("x",r,e,t),a,i,l)]}case"Bincount":let o=v("x",r,e,t),n=v("weights",r,e,t),s=v("size",r,e,t);return[aw(o,n,s)];case"DenseBincount":{let a=v("x",r,e,t),i=v("weights",r,e,t),l=v("size",r,e,t),u=v("binaryOutput",r,e,t);return[mw(a,i,l,u)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var eA=(r,e,t)=>{switch(r.op){case"ConcatV2":case"Concat":{let o=v("n",r,e,t),n=v("axis",r,e,t),s=v("tensors",r,e,t);return s=s.slice(0,o),[Ye(s,n)]}case"Gather":{let o=v("x",r,e,t),n=v("indices",r,e,t);return[zn(o,ne(n,"int32"),0)]}case"GatherV2":{let o=v("axis",r,e,t),n=v("batchDims",r,e,t),s=v("x",r,e,t),a=v("indices",r,e,t);return[zn(s,ne(a,"int32"),o,n)]}case"Reverse":{let o=v("dims",r,e,t),n=[];for(let a=0;a{let o=v("axis",r,e,t),n=v("tensors",r,e,t),s=n[0].shape,a=Co(n[0]).shape,i=n.map(l=>{let u=x.arraysEqual(l.shape,s);if(!u&&!x.arraysEqual(Co(l).shape,a))throw new Error("the input tensors shape does not match");return u?l:M(l,s)});return[Bt(i,o)]});case"Unpack":{let o=v("axis",r,e,t),n=v("tensor",r,e,t);return cr(n,o)}case"Tile":{let o=v("reps",r,e,t);return[Lo(v("x",r,e,t),o)]}case"Split":case"SplitV":{let o=v("axis",r,e,t),n=v("numOrSizeSplits",r,e,t),s=v("x",r,e,t);return ur(s,n,o)}case"ScatterNd":{let o=v("indices",r,e,t),n=v("values",r,e,t),s=v("shape",r,e,t);return[Mw(o,n,s)]}case"GatherNd":{let o=v("x",r,e,t),n=v("indices",r,e,t);return[Lw(o,n)]}case"SparseToDense":{let o=v("sparseIndices",r,e,t),n=v("outputShape",r,e,t),s=v("sparseValues",r,e,t),a=v("defaultValue",r,e,t);return[Zm(o,s,n,s.dtype===a.dtype?a:ne(a,s.dtype))]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var tA=(r,e,t)=>{switch(r.op){case"FFT":return[Ea(v("x",r,e,t))];case"IFFT":return[Pi(v("x",r,e,t))];case"RFFT":return[Da(v("x",r,e,t))];case"IRFFT":return[Pu(v("x",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var rA=(r,e,t)=>{switch(r.op){case"Cast":return[ne(v("x",r,e,t),v("dtype",r,e,t))];case"ExpandDims":{let o=v("axis",r,e,t);return[ir(v("x",r,e,t),o)]}case"Squeeze":{let o=v("axis",r,e,t);return[Co(v("x",r,e,t),o)]}case"Reshape":return[M(v("x",r,e,t),v("shape",r,e,t))];case"MirrorPad":return[Mm(v("x",r,e,t),v("padding",r,e,t),v("mode",r,e,t))];case"PadV2":case"Pad":return[Rr(v("x",r,e,t),v("padding",r,e,t),v("constantValue",r,e,t))];case"SpaceToBatchND":{let o=v("blockShape",r,e,t),n=v("paddings",r,e,t);return[Sa(v("x",r,e,t),o,n)]}case"BatchToSpaceND":{let o=v("blockShape",r,e,t),n=v("crops",r,e,t);return[_a(v("x",r,e,t),o,n)]}case"DepthToSpace":{let o=v("blockSize",r,e,t),n=v("dataFormat",r,e,t).toUpperCase();return[Tm(v("x",r,e,t),o,n)]}case"BroadcastTo":return[sl(v("x",r,e,t),v("shape",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function bk(r,e,t,o){let n=((s,a,i)=>{switch(s.category){case"arithmetic":return V(()=>F1(s,a,i));case"basic_math":return V(()=>O1(s,a,i));case"control":return V1(s,a,i);case"convolution":return V(()=>W1(s,a,i));case"creation":return V(()=>U1(s,a,i));case"dynamic":return j1(s,a,i);case"evaluation":return V(()=>H1(s,a,i));case"image":return V(()=>X1(s,a,i));case"graph":return V(()=>q1(s,a,i));case"logical":return V(()=>Y1(s,a,i));case"matrices":return V(()=>Z1(s,a,i));case"normalization":return V(()=>J1(s,a,i));case"reduction":return V(()=>Q1(s,a,i));case"slice_join":return V(()=>eA(s,a,i));case"spectral":return V(()=>tA(s,a,i));case"transformation":return V(()=>rA(s,a,i));case"hash_table":return K1(s,a,i,o);case"custom":let l=qg(s.op);if(l&&l.customExecutor)return l.customExecutor(new hk(s,a,i));throw TypeError(`Custom op ${s.op} is not registered.`);default:throw TypeError(`Unknown op '${s.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(r,e,t);return x.isPromise(n)?n.then(s=>[].concat(s)):[].concat(n)}var ax=class{constructor(e={},t={},o={},n={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=o,this.functionMap=n,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(let t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(let t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}};function _k(r,e,t,o){let n=new Set,s=[],a=null,i=null,l=new Set,u=Object.keys(r).map(m=>eo(m)[0]),c=[];o!=null&&(c=o.map(m=>eo(m.name)[0]));let p=[...e];for(;p.length>0;){let m=p.pop();if((wk(m)||r6(m)||o6(m))&&a==null&&(a=m,i=a.children.map(f=>f.name).filter(f=>n.has(f))),n.add(m.name),t[m.name]==null&&u.indexOf(m.name)===-1&&c.indexOf(m.name)===-1){if(m.inputs.length===0){s.push(m.name);continue}m.inputs.forEach(f=>{l.has(f.name)||(l.add(f.name),p.push(f))})}}return{inputs:r,outputs:e,usedNodes:n,missingInputs:s,dynamicNode:a,syncInputs:i}}function oA(r,e,t){let{usedNodes:o,inputs:n}=t,s=[],a=Object.keys(n).map(c=>eo(c)[0]).map(c=>r.nodes[c]),i=r.initNodes;a.forEach(c=>{o.has(c.name)&&s.push(c)}),r.weights.forEach(c=>{o.has(c.name)&&s.push(c)}),i!=null&&i.forEach(c=>{o.has(c.name)&&s.push(c)});let l=new Set,u=[];for(;s.length>0;){let c=s.pop();l.add(c.name),e[c.name]||u.push(c),c.children.forEach(p=>{!l.has(p.name)&&o.has(p.name)&&p.inputs.every(m=>l.has(m.name))&&s.push(p)})}return u}var n6=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],s6=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],i6=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2"];function wk(r){return n6.indexOf(r.op)>=0}function r6(r){return s6.indexOf(r.op)>=0}function o6(r){return i6.indexOf(r.op)>=0}var Ep=class{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(o=>{this._functionExecutorMap[o]=new Ep(e.functions[o],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){let t=Object.keys(e).map(o=>e[o].map(n=>n.id));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{let t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t})}get functions(){return Object.keys(this._functions).reduce((e,t)=>(e[t]=this._functions[t].signature,e),{})}getCompilationKey(e,t){let o=e.map(s=>s.name).sort(),n=t.map(s=>s.name).sort();return o.join(this.SEPERATOR)+"--"+n.join(this.SEPERATOR)}compile(e,t){let o=_k(e,t,this.weightMap,this._initNodes),{missingInputs:n,dynamicNode:s,syncInputs:a}=o;if(s!=null)throw new Error(`This execution contains the node '${s.name}', which has the dynamic op '${s.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${a}]`);if(n.length>0){let i=t.map(u=>u.name),l=Object.keys(e);throw new Error(`Cannot compute the outputs [${i}] from the provided inputs [${l}]. Missing the following inputs: [${n}]`)}return oA(this.graph,this.weightMap,o)}execute(e,t){e=this.mapInputs(e);let o=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let n=o.map(p=>this.graph.nodes[eo(p)[0]]),s=t.map(p=>eo(p)[0]),a=s.map(p=>this.graph.nodes[p]);a.length===0&&(a=this._outputs);let i=this.getCompilationKey(n,a),l=this.compiledMap.get(i);l==null&&(l=this.compile(e,a),this.compiledMap.set(i,l));let u={},c={};return V(()=>{let p=new ax(this.weightMap,u,c,this.functionExecutorMap),m=Object.assign({},this.weightMap);Object.keys(e).forEach(h=>{let[g,y]=eo(h),b=[];b[y]=e[h],m[g]=b});let f=this.getFrozenTensorIds(m),d={};for(let h=0;hgr(h,m,p))})}getFrozenTensorIds(e){let t=[].concat.apply([],Object.keys(e).map(o=>e[o]).map(o=>o.map(n=>n.id)));return new Set(t)}checkTensorForDisposal(e,t,o,n,s,a,i){t.category==="control"||a.indexOf(e)!==-1||(o[e].forEach(l=>{l!=null&&(i[l.id]=(i[l.id]||0)+t.children.length)}),t.inputs.forEach(l=>{if(l.category!=="control"){let u=E1(l.name,o,n);u!=null&&u.forEach(c=>{if(c&&!s.has(c.id)){let p=i[c.id];p===1?(c.dispose(),delete i[c.id]):p!=null&&i[c.id]--}})}}))}async executeAsync(e,t){return this._executeAsync(e,t)}async _executeAsync(e,t,o=!1,n={},s={}){o||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));let a=new ax(this.weightMap,n,s,this.functionExecutorMap),i=await this.executeWithControlFlow(e,a,t,o),l=t.map(m=>gr(m,i,a)),u=l.map(m=>m.id),c=Object.keys(e).map(m=>e[m].id),p=new Set([...u,...c,...this.weightIds]);return Object.keys(i).forEach(m=>{i[m].forEach(d=>{d&&!d.isDisposed&&!p.has(d.id)&&d.dispose()})}),this.parent==null&&a.dispose(p),l}async executeFunctionAsync(e,t,o){let n=e.reduce((s,a,i)=>(s[this.inputs[i].name]=a,s),{});return this._executeAsync(n,this.outputNodes,!0,t,o)}async executeWithControlFlow(e,t,o,n){let s=Object.keys(e),a=s.map(w=>this.graph.nodes[eo(w)[0]]),i=o.map(w=>eo(w)[0]),l=i.map(w=>this.graph.nodes[w]);l.length===0&&(l=this._outputs);let{usedNodes:u,missingInputs:c,dynamicNode:p,syncInputs:m}=_k(e,l,this.weightMap,this._initNodes),f=[...a,...this.graph.weights,...this._initNodes||[]].map(w=>({node:w,contexts:t.currentContext})),d=Object.assign({},this.weightMap);Object.keys(e).forEach(w=>{let[_,C]=eo(w),D=[];D[C]=e[w],d[_]=D});let h={},g=this.getFrozenTensorIds(d),y={};for(;f.length>0;){let w=this.processStack(a,f,t,d,y,g,i,h,u);await Promise.all(w)}p==null&&!n&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let b=l.filter(w=>!wk(w)&&!gr(w.name,d,t)).map(w=>w.name);if(b.length>0){let w="";throw p!=null&&(w=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${m}]`),new Error(`Cannot compute the outputs [${b}] from the provided inputs [${s}]. Consider providing the following inputs: [${c}]. ${w}`)}return d}processStack(e,t,o,n,s,a,i,l,u){let c=[];for(;t.length>0;){let p=t.pop();o.currentContext=p.contexts;let m="";if(p.node.op==="Enter"&&v("isConstant",p.node,n,o)&&([m]=Ms(p.node.name,o)),n[p.node.name]==null){let f=bk(p.node,n,o,this._resourceManager);m||([m]=Ms(p.node.name,o));let d=o.currentContext;x.isPromise(f)?c.push(f.then(h=>(n[m]=h,o.currentContext=d,this.checkTensorForDisposal(m,p.node,n,o,a,i,l),this.processChildNodes(p.node,t,o,n,s,u),h))):(n[m]=f,this.checkTensorForDisposal(m,p.node,n,o,a,i,l),this.processChildNodes(p.node,t,o,n,s,u))}else this.processChildNodes(p.node,t,o,n,s,u)}return c}processChildNodes(e,t,o,n,s,a){e.children.forEach(i=>{let[l]=Ms(i.name,o);s[l]||!a.has(i.name)||(i.op==="Merge"?i.inputNames.some(u=>!!gr(u,n,o))&&(s[l]=!0,t.push({contexts:o.currentContext,node:i})):i.inputNames.every(u=>!!gr(u,n,o))&&(s[l]=!0,t.push({contexts:o.currentContext,node:i})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let o=e[t],[n]=eo(t),s=this.graph.nodes[n];if(s.attrParams.shape&&s.attrParams.shape.value){let a=s.attrParams.shape.value,i=a.length===o.shape.length&&o.shape.every((l,u)=>a[u]===-1||a[u]===l);x.assert(i,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${a}], but was [${o.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&x.assert(o.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${o.dtype}`)})}mapInputs(e){let t={};for(let o in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[o]!=null){let n=this._signature.inputs[o];t[n.name]=e[o]}else t[o]=e[o];return t}checkInputs(e){let t=Object.keys(e).filter(o=>{let[n]=eo(o);return this.graph.nodes[n]==null});if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(t=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null?this._signature.outputs[t].name:t,{})}checkOutputs(e){e.forEach(t=>{let[o]=eo(t);if(!this.graph.nodes[o])throw new Error(`The output '${t}' is not found in the graph`)})}};var kk=class{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(let e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(let e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}};var a6="?tfjs-format=file",l6="model.json",lx=class{constructor(e,t={}){this.modelUrl=e,this.loadOptions=t,this.version="n/a",t==null&&(this.loadOptions={}),this.resourceManager=new kk}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=Cr.browserHTTPRequest(e,this.loadOptions);else{let t=Cr.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(Cr.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=await this.handler.load();return this.loadSync(e)}loadSync(e){this.artifacts=e;let t=this.artifacts.modelTopology,o;this.artifacts.userDefinedMetadata!=null&&this.artifacts.userDefinedMetadata.signature!=null?o=this.artifacts.userDefinedMetadata.signature:o=this.artifacts.signature,this.signature=o,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;let n=Cr.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new Ep(Xg.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(n),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let s=Xg.Instance.transformGraph(e.modelInitializer);this.initializer=new Ep(s),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(e,t){if(typeof e=="string"){let o=Cr.getSaveHandlers(e);if(o.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(o.length>1)throw new Error(`Found more than one (${o.length}) save handlers for URL '${e}'`);e=o[0]}if(e.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){return this.execute(e,this.outputNodes)}normalizeInputs(e){if(!(e instanceof Ve)&&!Array.isArray(e))return e;if(e=Array.isArray(e)?e:[e],e.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce((t,o,n)=>(t[o]=e[n],t),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let o=this.executor.execute(e,t);return o.length>1?o:o[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let o=await this.executor.executeAsync(e,t);return o.length>1?o:o[0]}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,o)=>(t[o]=[e[o]],t),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}};async function nA(r,e={}){if(r==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");e==null&&(e={}),e.fromTFHub&&r.load==null&&(r.endsWith("/")||(r=r+"/"),r=`${r}${l6}${a6}`);let t=new lx(r,e);return await t.load(),t}var ux="3.2.0";var Ek={};Je(Ek,{CSVDataset:()=>Ed,Dataset:()=>Ui,FileDataSource:()=>Od,TextLineDataset:()=>Td,URLDataSource:()=>Pd,array:()=>NA,csv:()=>PA,func:()=>MA,generator:()=>LA,microphone:()=>BA,version_data:()=>gx,webcam:()=>zA,zip:()=>SA});var IA=Ic(zm());var cA=Ic(zm());function sA(r,e){return cx(r,e)}function cx(r,e,t=new Map,o=new Set){if(r==null)return null;if(o.has(r))throw new Error("Circular references are not supported.");if(t.has(r))return t.get(r);let n=e(r);if(n.recurse&&n.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(n.recurse)if(_l(r)){let s=Array.isArray(r)?[]:{};o.add(r);for(let a in r){let i=r[a],l=cx(i,e,t,o);s[a]=l}return o.delete(r),s}else throw new Error(`Can't recurse into non-iterable type: ${r}`);else return t.set(r,n.value),n.value}function aA(r,e=vk){return iA(r,e)}function iA(r,e,t=new Set){let o=r[0];if(t.has(o))throw new Error("Circular references are not supported.");let n=e(r);if(n.recurse&&n.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(n.recurse)if(_l(o)){let s=Array.isArray(o)?[]:{};t.add(o);for(let a in o){let i=r.map(u=>u[a]),l=iA(i,e,t);s[a]=l}return t.delete(o),s}else throw new Error(`Can't recurse into non-iterable type: ${o}`);else return n.value}function vk(r){return r===null?null:_l(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function px(r,e){let t=new Map;cx(r,e,t);for(let n of Array.from(t.keys())){let s=t.get(n);if(x.isPromise(s)){let a=await s;t.set(n,a)}}return cx(r,e,t)}function _l(r){return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r=="object"&&!(r instanceof Ve))}function lA(r){return r==null||u6(r)||Array.isArray(r)||typeof r=="object"&&r instanceof Ve||x.isTypedArray(r)}function u6(r){return r===null||typeof r!="object"&&typeof r!="function"}function uA(r){return sA(r,c6)}function c6(r){return r instanceof Ve?{value:r.clone(),recurse:!1}:_l(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var Nd=class{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(let t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.wrap(this.begin+e),o=this.get(t);return this.set(t,this.pop()),o}};var Dp=class extends Nd{constructor(){super(Dp.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){let e=this.capacity*2,t=new Array(e),o=this.length();for(let n=0;nt===!0)}rowMajorBatch(e,t=!0){return new bA(this,e,t)}columnMajorBatch(e,t=!0,o=vk){return this.rowMajorBatch(e,t).map(s=>aA(s,o))}concatenate(e,t){return new Ik(Ck([this,e]),t)}take(e){return e<0||e==null?this:new yA(this,e)}skip(e){return e<0||e==null?this:new xA(this,e)}prefetch(e){return new Sk(this,e)}shuffle(e,t){return new CA(this,e,t)}serial(){return new gA(this)}},pA=class extends qt{constructor(e){super();this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let e=this.items[this.trav];return this.trav++,{value:uA(e),done:!1}}},mA=class extends qt{constructor(e){super();this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},gA=class extends qt{constructor(e){super();this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},xA=class extends qt{constructor(e,t){super();this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},bA=class extends qt{constructor(e,t,o=!0){super();this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=o,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}},wA=class extends qt{constructor(e,t){super();this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;Te(e.value)}}},_A=class extends qt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Mn.getTensorsInContainer(e.value),o=this.transform(e.value),n=Mn.getTensorsInContainer(o);for(let s of t)Mn.isTensorInList(s,n)||s.dispose();return{value:o,done:!1}}},kA=class extends qt{constructor(e,t){super();this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},Nk=class extends qt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Mn.getTensorsInContainer(e.value),o=await this.transform(e.value),n=Mn.getTensorsInContainer(o);for(let s of t)Mn.isTensorInList(s,n)||s.dispose();return{value:o,done:!1}}},$p=class extends qt{constructor(){super();this.outputQueue=new Dp,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},vA=class extends $p{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let e=await this.upstream.next();if(e.done)return!1;let t=Mn.getTensorsInContainer(e.value),o=this.transform(e.value),n=Mn.getTensorsInContainer(o);this.outputQueue.pushAll(o);for(let s of t)Mn.isTensorInList(s,n)||s.dispose();return!0}},Ik=class extends qt{constructor(e,t){super();this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,this.iterator==null){let o=await this.moreIterators.next();if(o.done)return{value:null,done:!0};this.iterator=o.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}},La;(function(r){r[r.FAIL=0]="FAIL",r[r.SHORTEST=1]="SHORTEST",r[r.LONGEST=2]="LONGEST"})(La||(La={}));var dA=class extends qt{constructor(e,t=La.FAIL){super();this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(e){await e;let t=0,o=0;function n(a){return a instanceof qt?{value:a.next().then(l=>(t++,l.done&&o++,l.value)),recurse:!1}:{value:null,recurse:!0}}let s=await px(this.iterators,n);if(t===o)return{value:null,done:!0};if(o>0)switch(this.mismatchMode){case La.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case La.SHORTEST:return{value:null,done:!0};case La.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},Sk=class extends qt{constructor(e,t){super();this.upstream=e,this.bufferSize=t,this.buffer=new Nd(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}},CA=class extends Sk{constructor(e,t,o){super(e,t);this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=cA.alea(o||x.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}};var Ui=class{constructor(){this.size=null}batch(e,t=!0){let o=this;x.assert(e>0,()=>`batchSize needs to be positive, but it is - ${e}`);let n;return this.size===Infinity||this.size==null?n=this.size:t?n=Math.ceil(this.size/e):n=Math.floor(this.size/e),fo(async()=>(await o.iterator()).columnMajorBatch(e,t,p6),n)}concatenate(e){let t=this,o;return this.size===Infinity||e.size===Infinity?o=Infinity:this.size!=null&&e.size!=null?o=this.size+e.size:o=null,fo(async()=>(await t.iterator()).concatenate(await e.iterator()),o)}filter(e){let t=this,o;return this.size===Infinity?o=Infinity:o=null,fo(async()=>(await t.iterator()).filter(n=>V(()=>e(n))),o)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return fo(async()=>(await t.iterator()).map(o=>V(()=>e(o))),this.size)}mapAsync(e){let t=this;return fo(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 fo(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,o;return this.size!=null&&e>0?o=this.size*e:e===0?o=0:this.size!=null&&(e===void 0||e<0)?o=Infinity:o=null,fo(async()=>{let n=Sd(async()=>({value:await t.iterator(),done:!1}));return fA(n.take(e))},o)}skip(e){let t=this,o;return this.size!=null&&e>=0&&this.size>=e?o=this.size-e:this.size!=null&&(this.size(await t.iterator()).skip(e),o)}shuffle(e,t,o=!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)`);let n=this,s=IA.alea(t||x.now().toString());return fo(async()=>{let a=s.int32();return o&&(a+=s.int32()),(await n.iterator()).shuffle(e,a.toString())},this.size)}take(e){let t=this,o;return this.size!=null&&this.size>e?o=e:this.size!=null&&this.size<=e?o=this.size:o=null,fo(async()=>(await t.iterator()).take(e),o)}async toArray(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};Ui.MAX_BUFFER_SIZE=1e4;function fo(r,e=null){return new class extends Ui{constructor(){super(...arguments);this.size=e}async iterator(){return r()}}}function NA(r){return fo(async()=>Ck(r),r.length)}function SA(r){if(!_l(r))throw new Error("The argument to zip() must be an object or array.");let e;if(Array.isArray(r))for(let t=0;t{let t=await px(r,o=>{if(o instanceof Ui)return{value:o.iterator(),recurse:!1};if(_l(o))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return hA(t,La.SHORTEST)},e)}function p6(r){if(r===null)return null;let e=r[0];return lA(e)?{value:m6(r),recurse:!1}:{value:null,recurse:!0}}function m6(r){if(r.length===0)throw new Error("Can't make a batch of zero elements.");return r[0]instanceof Ve?Bt(r):$r(r)}var Td=class extends Ui{constructor(e){super();this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` -`).map(n=>(n.endsWith("\r")&&(n=n.slice(0,-1)),n))}};var mx='"',Ad=Symbol("out"),TA=Symbol("field"),fx=Symbol("quote"),Tk=Symbol("quoteafterquote"),AA=Symbol("quoteinquote"),Ed=class extends Ui{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 Td(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(x.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 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&&x.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((n,s)=>(n[s]=n[s]+1||1,n),{}),o=Object.keys(t).filter(n=>t[n]>1);if(x.assert(o.length===0,()=>"Duplicate column names found: "+o.toString()),this.columnConfigs){for(let n of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(n)===-1)throw new Error('The key "'+n+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let t=await(await this.base.iterator()).next();if(t.done)throw new Error("No data was found for CSV parsing.");let o=t.value;return this.parseRow(o,!1)}else return null}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),o={},n={};for(let s=0;s14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=e.includeSpectrogram!==!1,this.includeWaveform=e.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(W().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");let t=new Dd(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(o){throw new Error(`Error thrown while initializing video stream: ${o.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let e,t,o=await this.getAudioData();if(this.includeSpectrogram){let n=this.flattenQueue(o.freqDataQueue);e=this.getTensorFromAudioDataArray(n,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let n=this.flattenQueue(o.timeDataQueue);t=this.getTensorFromAudioDataArray(n,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let e=[],t=[],o=0;return new Promise(n=>{let s=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&n({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++o===this.numFrames&&(clearInterval(s),n({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){let t=e[0].length,o=new Float32Array(e.length*t);return e.forEach((n,s)=>o.set(n,s*t)),o}getTensorFromAudioDataArray(e,t){let o=new Float32Array(x.sizeFromShape(t));return o.set(e,o.length-e.length),$r(o,t)}};var $d=class extends qt{constructor(e,t){super();if(this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Vt([0],"int32"),this.webcamConfig.centerCrop){let o=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,n=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,s=(1-o)/2,a=(1-n)/2,i=s+o,l=n+a;this.cropBox=Mi([a,s,l,i],[1,4])}else this.cropBox=Mi([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(W().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}let o=new $d(e,t);return await o.start(),o}async start(){this.webcamConfig.facingMode&&x.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}})}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=Uh.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return V(()=>{let t=ir(ne(e,"float32"),0),o;o=Ds.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let n=o.shape;return M(o,n.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(t=>t.stop());try{this.webcamVideoElement.srcObject=null}catch(t){console.log(t),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}};var Rd=class{};var dx=class extends qt{split(e){return new EA(this,e)}},EA=class extends dx{constructor(e,t){super();this.upstream=e,this.impl=new DA(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},DA=class extends $p{constructor(e,t){super();this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(let o of t.slice(0,-1))this.outputQueue.push(o);return this.carryover=t[t.length-1],!0}};var Ak=class extends qt{decodeUTF8(){return new RA(this)}},RA=class extends dx{constructor(e){super();this.upstream=e,this.impl=new FA(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},FA=class extends $p{constructor(e){super();if(this.upstream=e,W().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=$A();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let e=await this.upstream.next(),t;if(e.done)return!1;t=e.value;let o;return W().get("IS_BROWSER")?o=this.decoder.decode(t,{stream:!0}):o=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(o),!0}};var Fd=class extends Ak{constructor(e,t={}){super();this.file=e,this.options=t,x.assert(e instanceof Uint8Array||(W().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((t,o)=>{let n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)t(new Uint8Array(this.file.slice(this.offset,n)));else{let s=new FileReader;s.onload=i=>{let l=s.result;if(l instanceof ArrayBuffer&&(l=new Uint8Array(l)),!(l instanceof Uint8Array))return o(new TypeError("FileReader returned unknown type."));t(l)},s.onabort=i=>o(new Error("Aborted")),s.onerror=i=>o(new Error(i.type));let a=this.file.slice(this.offset,n);s.readAsArrayBuffer(a)}this.offset=n}),done:!1}}};async function OA(r,e={}){let t,o;typeof r=="string"?t=r:(t=r.url,o=f6(r));let n=await x.fetch(t,o);if(n.ok){let s=new Uint8Array(await n.arrayBuffer());return new Fd(s,e)}else throw new Error(n.statusText)}var f6=r=>({method:r.method,headers:r.headers,body:r.body,mode:r.mode,credentials:r.credentials,cache:r.cache,redirect:r.redirect,referrer:r.referrer,integrity:r.integrity});function hx(r){return typeof r=="string"&&r.substr(0,7)==="file://"}var Od=class extends Rd{constructor(e,t={}){super();this.input=e,this.options=t}async iterator(){if(hx(this.input)&&W().get("IS_NODE")){let e=require("fs");this.input=e.readFileSync(this.input.substr(7))}return new Fd(this.input,this.options)}};var Pd=class extends Rd{constructor(e,t={}){super();this.url=e,this.fileOptions=t}async iterator(){return hx(this.url)?new Od(this.url,this.fileOptions).iterator():OA(this.url,this.fileOptions)}};function PA(r,e={}){return new Ed(new Pd(r),e)}function MA(r){let e=Sd(r);return fo(async()=>e)}function LA(r){return fo(async()=>{let e=await r();return Sd(()=>e.next())})}async function zA(r,e){return $d.create(r,e)}async function BA(r){return Dd.create(r)}var gx="3.2.0";function ee(r,e){Array.isArray(r)||(r=[r]),r.forEach(t=>{t!=null&&x.assert(t.dtype!=="complex64",()=>`${e} does not support complex64 tensors in the CPU backend.`)})}var d6=Tr.whereImpl,Rp=class extends Gs{constructor(){super();this.blockSize=48,this.firstUse=!0,this.data=new Xa(this,Po())}nextDataId(){return Rp.nextDataId++}write(e,t,o){this.firstUse&&(this.firstUse=!1,W().get("IS_NODE")&&N.warn(` + ${o}, and tensor's shape is: ${r.shape}`);let s=r.shape.slice(1),a=cx(s,t),i=o===0?0:r.size/o,l=G(()=>{let c=[];r=L(r,[1,o,i]);for(let p=0;p{switch(r.op){case"If":case"StatelessIf":{let o=C("thenBranch",r,e,t),n=C("elseBranch",r,e,t),s=C("cond",r,e,t),a=C("args",r,e,t);return(await s.data())[0]?t.functionMap[o].executeFunctionAsync(a,t.tensorArrayMap,t.tensorListMap):t.functionMap[n].executeFunctionAsync(a,t.tensorArrayMap,t.tensorListMap)}case"While":case"StatelessWhile":{let o=C("body",r,e,t),n=C("cond",r,e,t),s=C("args",r,e,t),a=await t.functionMap[n].executeFunctionAsync(s,t.tensorArrayMap,t.tensorListMap),i=s.map(c=>c.id),l=await a[0].data();a.forEach(c=>{!c.kept&&i.indexOf(c.id)===-1&&c.dispose()});let u=s;for(;l[0];){let c=u;u=await t.functionMap[o].executeFunctionAsync(u,t.tensorArrayMap,t.tensorListMap);let p=u.map(f=>f.id);c.forEach(f=>{!f.kept&&i.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()});let m=await t.functionMap[n].executeFunctionAsync(u,t.tensorArrayMap,t.tensorListMap);l=await m[0].data(),m.forEach(f=>{!f.kept&&i.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()})}return u}case"LoopCond":{let o=C("pred",r,e,t);return[zs(o)]}case"Switch":{let o=C("pred",r,e,t),n=C("data",r,e,t);return n.kept||(n=zs(n)),(await o.data())[0]?[void 0,n]:[n,void 0]}case"Merge":{let o=r.inputNames.find(n=>xr(n,e,t)!==void 0);if(o){let n=xr(o,e,t);return[zs(n)]}return}case"Enter":{let o=C("frameName",r,e,t),n=C("tensor",r,e,t);return t.enterFrame(o),[zs(n)]}case"Exit":{let o=C("tensor",r,e,t);return t.exitFrame(),[zs(o)]}case"NextIteration":{let o=C("tensor",r,e,t);return t.nextIteration(),[zs(o)]}case"TensorArrayV3":{let o=C("size",r,e,t),n=C("dtype",r,e,t),s=C("elementShape",r,e,t),a=C("dynamicSize",r,e,t),i=C("clearAfterRead",r,e,t),l=C("identicalElementShapes",r,e,t),u=C("name",r,e,t),c=new kk(u,n,o,s,l,a,i);return t.addTensorArray(c),[c.idTensor,le(1)]}case"TensorArrayWriteV3":{let o=C("tensorArrayId",r,e,t),n=C("index",r,e,t),s=C("tensor",r,e,t),a=t.getTensorArray(o.id);return a.write(n,s),[a.idTensor]}case"TensorArrayReadV3":{let o=C("tensorArrayId",r,e,t),n=C("index",r,e,t);return[t.getTensorArray(o.id).read(n)]}case"TensorArrayGatherV3":{let o=C("tensorArrayId",r,e,t),n=C("indices",r,e,t),s=C("dtype",r,e,t);return[t.getTensorArray(o.id).gather(n,s)]}case"TensorArrayScatterV3":{let o=C("tensorArrayId",r,e,t),n=C("indices",r,e,t),s=C("tensor",r,e,t),a=t.getTensorArray(o.id);return a.scatter(n,s),[a.idTensor]}case"TensorArrayConcatV3":{let o=C("tensorArrayId",r,e,t),n=t.getTensorArray(o.id),s=C("dtype",r,e,t);return[n.concat(s)]}case"TensorArraySplitV3":{let o=C("tensorArrayId",r,e,t),n=C("tensor",r,e,t),s=C("lengths",r,e,t),a=t.getTensorArray(o.id);return a.split(s,n),[a.idTensor]}case"TensorArraySizeV3":{let o=C("tensorArrayId",r,e,t),n=t.getTensorArray(o.id);return[le(n.size(),"int32")]}case"TensorArrayCloseV3":{let o=C("tensorArrayId",r,e,t),n=t.getTensorArray(o.id);return n.clearAndClose(),[n.idTensor]}case"TensorListSetItem":{let o=C("tensorListId",r,e,t),n=C("index",r,e,t),s=C("tensor",r,e,t),a=t.getTensorList(o.id);return a.setItem(n,s),[a.idTensor]}case"TensorListGetItem":{let o=C("tensorListId",r,e,t),n=C("index",r,e,t),s=C("elementShape",r,e,t),a=C("elementDType",r,e,t);return[t.getTensorList(o.id).getItem(n,s,a)]}case"TensorListScatterV2":case"TensorListScatter":{let o=C("indices",r,e,t),n=C("tensor",r,e,t),s=C("elementShape",r,e,t),a=C("numElements",r,e,t),i=aA(n,o,s,a);return t.addTensorList(i),[i.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let o=C("elementShape",r,e,t),n=C("elementDType",r,e,t),s;r.op==="TensorListReserve"?s="numElements":s="maxNumElements";let a=C(s,r,e,t),i=iA(o,n,a);return t.addTensorList(i),[i.idTensor]}case"TensorListGather":{let o=C("tensorListId",r,e,t),n=C("indices",r,e,t),s=C("elementShape",r,e,t),a=C("elementDType",r,e,t);return[t.getTensorList(o.id).gather(n,a,s)]}case"TensorListStack":{let o=C("tensorListId",r,e,t),n=C("elementShape",r,e,t),s=C("elementDType",r,e,t),a=C("numElements",r,e,t);return[t.getTensorList(o.id).stack(n,s,a)]}case"TensorListFromTensor":{let o=C("tensor",r,e,t),n=C("elementShape",r,e,t),s=C("elementDType",r,e,t),a=sA(o,n,s);return t.addTensorList(a),[a.idTensor]}case"TensorListConcat":{let o=C("tensorListId",r,e,t),n=t.getTensorList(o.id),s=C("dtype",r,e,t),a=C("elementShape",r,e,t);return[n.concat(s,a)]}case"TensorListPushBack":{let o=C("tensorListId",r,e,t),n=C("tensor",r,e,t),s=t.getTensorList(o.id);return s.pushBack(n),[s.idTensor]}case"TensorListPopBack":{let o=C("tensorListId",r,e,t),n=C("elementShape",r,e,t),s=C("elementDType",r,e,t);return[t.getTensorList(o.id).popBack(n,s)]}case"TensorListSplit":{let o=C("tensor",r,e,t),n=C("elementShape",r,e,t),s=C("lengths",r,e,t),a=lA(o,s,n);return t.addTensorList(a),[a.idTensor]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};function cA(r,e,t){let[o,n]=C("fusedOps",r,e,t),s=o==="biasadd",a=n==="prelu",i=o==="fusedbatchnorm",l=C("numArgs",r,e,t);if(s){if(a&&l!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!a&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(i)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");let u=C("strides",r,e,t),c=Sd(r,e,t),p=C("dataFormat",r,e,t).toUpperCase(),m=C("dilations",r,e,t),[f,d]=C("args",r,e,t),h=C("leakyreluAlpha",r,e,t);return{stride:u,pad:c,dataFormat:p,dilations:m,biasArg:f,preluArg:d,activationFunc:n,leakyreluAlpha:h}}var pA=(r,e,t)=>{switch(r.op){case"Conv1D":{let o=C("stride",r,e,t),n=C("pad",r,e,t),s=C("dataFormat",r,e,t).toUpperCase(),a=C("dilation",r,e,t);return[ku(C("x",r,e,t),C("filter",r,e,t),o,n,s,a)]}case"Conv2D":{let o=C("strides",r,e,t),n=Sd(r,e,t),s=C("dataFormat",r,e,t).toUpperCase(),a=C("dilations",r,e,t);return[Kr(C("x",r,e,t),C("filter",r,e,t),[o[1],o[2]],n,s,[a[1],a[2]])]}case"_FusedConv2D":{let{stride:o,pad:n,dataFormat:s,dilations:a,biasArg:i,preluArg:l,activationFunc:u,leakyreluAlpha:c}=cA(r,e,t);return[Gn.conv2d({x:C("x",r,e,t),filter:C("filter",r,e,t),strides:[o[1],o[2]],pad:n,dataFormat:s,dilations:[a[1],a[2]],bias:i,activation:u,preluActivationWeights:l,leakyreluAlpha:c})]}case"FusedDepthwiseConv2dNative":{let{stride:o,pad:n,dataFormat:s,dilations:a,biasArg:i,preluArg:l,activationFunc:u,leakyreluAlpha:c}=cA(r,e,t);return[Gn.depthwiseConv2d({x:C("x",r,e,t),filter:C("filter",r,e,t),strides:[o[1],o[2]],pad:n,dataFormat:s,dilations:[a[1],a[2]],bias:i,activation:u,preluActivationWeights:l,leakyreluAlpha:c})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let o=C("outputShape",r,e,t),n=C("strides",r,e,t),s=Sd(r,e,t);return[vu(C("x",r,e,t),C("filter",r,e,t),o,[n[1],n[2]],s)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let o=C("strides",r,e,t),n=Sd(r,e,t),s=C("dilations",r,e,t),a=C("dataFormat",r,e,t).toUpperCase();return[Is(C("input",r,e,t),C("filter",r,e,t),[o[1],o[2]],n,a,[s[1],s[2]])]}case"Conv3D":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("dataFormat",r,e,t).toUpperCase(),a=C("dilations",r,e,t);return[Em(C("x",r,e,t),C("filter",r,e,t),[o[1],o[2],o[3]],n,s,[a[1],a[2],a[3]])]}case"AvgPool":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("kernelSize",r,e,t);return[wa(C("x",r,e,t),[s[1],s[2]],[o[1],o[2]],n)]}case"MaxPool":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("kernelSize",r,e,t);return[Na(C("x",r,e,t),[s[1],s[2]],[o[1],o[2]],n)]}case"MaxPoolWithArgmax":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("kernelSize",r,e,t),a=C("includeBatchInIndex",r,e,t),{result:i,indexes:l}=Aw(C("x",r,e,t),[s[1],s[2]],[o[1],o[2]],n,a);return[i,l]}case"AvgPool3D":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("kernelSize",r,e,t);return[Tm(C("x",r,e,t),[s[1],s[2],s[3]],[o[1],o[2],o[3]],n)]}case"MaxPool3D":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("kernelSize",r,e,t);return[zm(C("x",r,e,t),[s[1],s[2],s[3]],[o[1],o[2],o[3]],n)]}case"Dilation2D":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("dilations",r,e,t),a=o[1],i=o[2],l=s[1],u=s[2];return[$m(C("x",r,e,t),C("filter",r,e,t),[a,i],n,[l,u],"NHWC")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var mA=(r,e,t)=>{switch(r.op){case"Fill":{let o=C("shape",r,e,t),n=C("dtype",r,e,t),s=C("value",r,e,t);return[va(o,s,n)]}case"LinSpace":{let o=C("start",r,e,t),n=C("stop",r,e,t),s=C("num",r,e,t);return[vw(o,n,s)]}case"Multinomial":{let o=C("logits",r,e,t),n=C("numSamples",r,e,t),s=C("seed",r,e,t);return[Ew(o,n,s)]}case"OneHot":{let o=C("indices",r,e,t),n=C("depth",r,e,t),s=C("onValue",r,e,t),a=C("offValue",r,e,t);return[Cs(o,n,s,a)]}case"Ones":return[Nr(C("shape",r,e,t),C("dtype",r,e,t))];case"OnesLike":return[tr(C("x",r,e,t))];case"RandomUniform":return[Es(C("shape",r,e,t),C("minval",r,e,t),C("maxval",r,e,t),C("dtype",r,e,t))];case"Range":{let o=C("start",r,e,t),n=C("stop",r,e,t),s=C("step",r,e,t);return[Jc(o,n,s,C("dtype",r,e,t))]}case"TruncatedNormal":{let o=C("shape",r,e,t),n=C("mean",r,e,t),s=C("stdDev",r,e,t),a=C("seed",r,e,t);return[Bu(o,n,s,C("dtype",r,e,t),a)]}case"Zeros":return[gt(C("shape",r,e,t),C("dtype",r,e,t))];case"ZerosLike":return[Ce(C("x",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function vk(r,e,t){let o=C("boxes",r,e,t),n=C("scores",r,e,t),s=C("maxOutputSize",r,e,t),a=C("iouThreshold",r,e,t),i=C("scoreThreshold",r,e,t),l=C("softNmsSigma",r,e,t);return{boxes:o,scores:n,maxOutputSize:s,iouThreshold:a,scoreThreshold:i,softNmsSigma:l}}var fA=async(r,e,t)=>{switch(r.op){case"NonMaxSuppressionV5":{let{boxes:o,scores:n,maxOutputSize:s,iouThreshold:a,scoreThreshold:i,softNmsSigma:l}=vk(r,e,t),u=await $s.nonMaxSuppressionWithScoreAsync(o,n,s,a,i,l);return[u.selectedIndices,u.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:o,scores:n,maxOutputSize:s,iouThreshold:a,scoreThreshold:i}=vk(r,e,t),l=C("padToMaxOutputSize",r,e,t),u=await $s.nonMaxSuppressionPaddedAsync(o,n,s,a,i,l);return[u.selectedIndices,u.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:o,scores:n,maxOutputSize:s,iouThreshold:a,scoreThreshold:i}=vk(r,e,t);return[await $s.nonMaxSuppressionAsync(o,n,s,a,i)]}case"Where":{let o=ne(C("condition",r,e,t),"bool"),n=[await Jm(o)];return o.dispose(),n}case"ListDiff":return Bw(C("x",r,e,t),C("y",r,e,t));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var dA=(r,e,t)=>{switch(r.op){case"TopKV2":{let o=C("x",r,e,t),n=C("k",r,e,t),s=C("sorted",r,e,t),a=Ym(o,n,s);return[a.values,a.indices]}case"Unique":{let o=C("x",r,e,t),n=ep(o);return[n.values,n.indices]}case"UniqueV2":{let o=C("x",r,e,t),n=C("axis",r,e,t),s=ep(o,n);return[s.values,s.indices]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var hA=(r,e,t)=>{switch(r.op){case"Const":return e[r.name];case"PlaceholderWithDefault":let o=C("default",r,e,t);return[xr(r.name,e,t)||o];case"Placeholder":return[xr(r.name,e,t)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let u=C("x",r,e,t);return[zs(u)]}case"IdentityN":return C("x",r,e,t).map(u=>zs(u));case"Snapshot":let n=C("x",r,e,t);return[zs(n)];case"Shape":return[Gt(C("x",r,e,t).shape,"int32")];case"ShapeN":return C("x",r,e,t).map(u=>Gt(u.shape));case"Size":return[le(C("x",r,e,t).size,"int32")];case"Rank":return[le(C("x",r,e,t).rank,"int32")];case"NoOp":return[le(1)];case"Print":let s=C("x",r,e,t),a=C("data",r,e,t),i=C("message",r,e,t),l=C("summarize",r,e,t);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(i);for(let u=0;ue.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return le(this.size(),"int32")}async import(e,t){this.checkKeyAndValueTensor(e,t);let o=await e.data();return this.tensorMap.forEach(n=>n.dispose()),this.tensorMap.clear(),G(()=>{let n=pr(t),s=o.length,a=n.length;y.assert(s===a,()=>`The number of elements doesn't match, keys has ${s} elements, the values has ${a} elements.`);for(let i=0;i{let n=[];for(let s=0;s{switch(r.op){case"HashTable":case"HashTableV2":{let n=C("keyDType",r,e,t),s=C("valueDType",r,e,t),a=new Ck(n,s);return o.addHashTable(r.name,a),[a.handle]}case"LookupTableImport":case"LookupTableImportV2":{let n=C("tableHandle",r,e,t,o),s=C("keys",r,e,t),a=C("values",r,e,t);return[await o.getHashTableById(n.id).import(s,a)]}case"LookupTableFind":case"LookupTableFindV2":{let n=C("tableHandle",r,e,t,o),s=C("keys",r,e,t),a=C("defaultValue",r,e,t);return[await o.getHashTableById(n.id).find(s,a)]}case"LookupTableSize":case"LookupTableSizeV2":{let n=C("tableHandle",r,e,t,o);return[o.getHashTableById(n.id).tensorSize()]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var xA=(r,e,t)=>{switch(r.op){case"ResizeBilinear":{let o=C("images",r,e,t),n=C("size",r,e,t),s=C("alignCorners",r,e,t),a=C("halfPixelCenters",r,e,t);return[$s.resizeBilinear(o,[n[0],n[1]],s,a)]}case"ResizeNearestNeighbor":{let o=C("images",r,e,t),n=C("size",r,e,t),s=C("alignCorners",r,e,t),a=C("halfPixelCenters",r,e,t);return[$s.resizeNearestNeighbor(o,[n[0],n[1]],s,a)]}case"CropAndResize":{let o=C("image",r,e,t),n=C("boxes",r,e,t),s=C("boxInd",r,e,t),a=C("cropSize",r,e,t),i=C("method",r,e,t),l=C("extrapolationValue",r,e,t);return[$s.cropAndResize(o,n,s,a,i,l)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var yA=(r,e,t)=>{switch(r.op){case"Equal":return[vo(C("a",r,e,t),C("b",r,e,t))];case"NotEqual":return[Vn(C("a",r,e,t),C("b",r,e,t))];case"Greater":return[er(C("a",r,e,t),C("b",r,e,t))];case"GreaterEqual":return[io(C("a",r,e,t),C("b",r,e,t))];case"Less":return[Su(C("a",r,e,t),C("b",r,e,t))];case"LessEqual":return[zo(C("a",r,e,t),C("b",r,e,t))];case"LogicalAnd":return[hr(C("a",r,e,t),C("b",r,e,t))];case"LogicalNot":return[Ia(C("a",r,e,t))];case"LogicalOr":return[Eu(C("a",r,e,t),C("b",r,e,t))];case"Select":case"SelectV2":return[$t(C("condition",r,e,t),C("a",r,e,t),C("b",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var bA=(r,e,t)=>{switch(r.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[We(C("a",r,e,t),C("b",r,e,t),C("transposeA",r,e,t),C("transposeB",r,e,t))];case"Transpose":return[je(C("x",r,e,t),C("perm",r,e,t))];case"_FusedMatMul":let[o,n]=C("fusedOps",r,e,t),s=o==="biasadd",a=n==="prelu",i=C("numArgs",r,e,t),l=C("leakyreluAlpha",r,e,t);if(s){if(a&&i!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!a&&i!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[u,c]=C("args",r,e,t);return[Gn.matMul({a:C("a",r,e,t),b:C("b",r,e,t),transposeA:C("transposeA",r,e,t),transposeB:C("transposeB",r,e,t),bias:u,activation:n,preluActivationWeights:c,leakyreluAlpha:l})];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var wA=(r,e,t)=>{switch(r.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[Ln(C("x",r,e,t),C("mean",r,e,t),C("variance",r,e,t),C("offset",r,e,t),C("scale",r,e,t),C("epsilon",r,e,t))];case"FusedBatchNormV3":return[Ln(C("x",r,e,t),C("mean",r,e,t),C("variance",r,e,t),C("offset",r,e,t),C("scale",r,e,t),C("epsilon",r,e,t))];case"LRN":return[Pm(C("x",r,e,t),C("radius",r,e,t),C("bias",r,e,t),C("alpha",r,e,t),C("beta",r,e,t))];case"Softmax":return[Aa(C("x",r,e,t))];case"LogSoftmax":return[Au(C("x",r,e,t))];case"SparseToDense":return[Qm(C("sparseIndices",r,e,t),C("outputShape",r,e,t),C("sparseValues",r,e,t),C("defaultValue",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var _A=(r,e,t)=>{switch(r.op){case"Max":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[ur(C("x",r,e,t),a,i)]}case"Mean":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[ht(C("x",r,e,t),a,i)]}case"Min":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[Oi(C("x",r,e,t),a,i)]}case"Sum":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[ge(C("x",r,e,t),a,i)]}case"All":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[bu(C("x",r,e,t),a,i)]}case"Any":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[ol(C("x",r,e,t),a,i)]}case"ArgMax":{let a=C("axis",r,e,t);return[nl(C("x",r,e,t),a)]}case"ArgMin":{let a=C("axis",r,e,t);return[km(C("x",r,e,t),a)]}case"Prod":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[Du(C("x",r,e,t),a,i)]}case"Cumsum":{let a=C("axis",r,e,t),i=C("exclusive",r,e,t),l=C("reverse",r,e,t);return[Iu(C("x",r,e,t),a,i,l)]}case"Bincount":let o=C("x",r,e,t),n=C("weights",r,e,t),s=C("size",r,e,t);return[fw(o,n,s)];case"DenseBincount":{let a=C("x",r,e,t),i=C("weights",r,e,t),l=C("size",r,e,t),u=C("binaryOutput",r,e,t);return[yw(a,i,l,u)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var kA=(r,e,t)=>{switch(r.op){case"ConcatV2":case"Concat":{let o=C("n",r,e,t),n=C("axis",r,e,t),s=C("tensors",r,e,t);return s=s.slice(0,o),[Ye(s,n)]}case"Gather":{let o=C("x",r,e,t),n=C("indices",r,e,t);return[zn(o,ne(n,"int32"),0)]}case"GatherV2":{let o=C("axis",r,e,t),n=C("batchDims",r,e,t),s=C("x",r,e,t),a=C("indices",r,e,t);return[zn(s,ne(a,"int32"),o,n)]}case"Reverse":{let o=C("dims",r,e,t),n=[];for(let a=0;a{let o=C("axis",r,e,t),n=C("tensors",r,e,t),s=n[0].shape,a=Co(n[0]).shape,i=n.map(l=>{let u=y.arraysEqual(l.shape,s);if(!u&&!y.arraysEqual(Co(l).shape,a))throw new Error("the input tensors shape does not match");return u?l:L(l,s)});return[Vt(i,o)]});case"Unpack":{let o=C("axis",r,e,t),n=C("tensor",r,e,t);return pr(n,o)}case"Tile":{let o=C("reps",r,e,t);return[Lo(C("x",r,e,t),o)]}case"Split":case"SplitV":{let o=C("axis",r,e,t),n=C("numOrSizeSplits",r,e,t),s=C("x",r,e,t);return cr(s,n,o)}case"ScatterNd":{let o=C("indices",r,e,t),n=C("values",r,e,t),s=C("shape",r,e,t);return[Ww(o,n,s)]}case"GatherNd":{let o=C("x",r,e,t),n=C("indices",r,e,t);return[Uw(o,n)]}case"SparseToDense":{let o=C("sparseIndices",r,e,t),n=C("outputShape",r,e,t),s=C("sparseValues",r,e,t),a=C("defaultValue",r,e,t);return[Qm(o,s,n,s.dtype===a.dtype?a:ne(a,s.dtype))]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var vA=(r,e,t)=>{switch(r.op){case"FFT":return[Ea(C("x",r,e,t))];case"IFFT":return[Pi(C("x",r,e,t))];case"RFFT":return[Da(C("x",r,e,t))];case"IRFFT":return[Lu(C("x",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var CA=(r,e,t)=>{switch(r.op){case"Cast":return[ne(C("x",r,e,t),C("dtype",r,e,t))];case"ExpandDims":{let o=C("axis",r,e,t);return[ar(C("x",r,e,t),o)]}case"Squeeze":{let o=C("axis",r,e,t);return[Co(C("x",r,e,t),o)]}case"Reshape":return[L(C("x",r,e,t),C("shape",r,e,t))];case"MirrorPad":return[Bm(C("x",r,e,t),C("padding",r,e,t),C("mode",r,e,t))];case"PadV2":case"Pad":return[Fr(C("x",r,e,t),C("padding",r,e,t),C("constantValue",r,e,t))];case"SpaceToBatchND":{let o=C("blockShape",r,e,t),n=C("paddings",r,e,t);return[Sa(C("x",r,e,t),o,n)]}case"BatchToSpaceND":{let o=C("blockShape",r,e,t),n=C("crops",r,e,t);return[_a(C("x",r,e,t),o,n)]}case"DepthToSpace":{let o=C("blockSize",r,e,t),n=C("dataFormat",r,e,t).toUpperCase();return[Dm(C("x",r,e,t),o,n)]}case"BroadcastTo":return[sl(C("x",r,e,t),C("shape",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Ik(r,e,t,o){let n=((s,a,i)=>{switch(s.category){case"arithmetic":return G(()=>rA(s,a,i));case"basic_math":return G(()=>oA(s,a,i));case"control":return uA(s,a,i);case"convolution":return G(()=>pA(s,a,i));case"creation":return G(()=>mA(s,a,i));case"dynamic":return fA(s,a,i);case"evaluation":return G(()=>dA(s,a,i));case"image":return G(()=>xA(s,a,i));case"graph":return G(()=>hA(s,a,i));case"logical":return G(()=>yA(s,a,i));case"matrices":return G(()=>bA(s,a,i));case"normalization":return G(()=>wA(s,a,i));case"reduction":return G(()=>_A(s,a,i));case"slice_join":return G(()=>kA(s,a,i));case"spectral":return G(()=>vA(s,a,i));case"transformation":return G(()=>CA(s,a,i));case"hash_table":return gA(s,a,i,o);case"custom":let l=Zg(s.op);if(l&&l.customExecutor)return l.customExecutor(new _k(s,a,i));throw TypeError(`Custom op ${s.op} is not registered.`);default:throw TypeError(`Unknown op '${s.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(r,e,t);return y.isPromise(n)?n.then(s=>[].concat(s)):[].concat(n)}var px=class{constructor(e={},t={},o={},n={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=o,this.functionMap=n,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(let t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(let t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}};function Sk(r,e,t,o){let n=new Set,s=[],a=null,i=null,l=new Set,u=Object.keys(r).map(m=>eo(m)[0]),c=[];o!=null&&(c=o.map(m=>eo(m.name)[0]));let p=[...e];for(;p.length>0;){let m=p.pop();if((Nk(m)||a5(m)||l5(m))&&a==null&&(a=m,i=a.children.map(f=>f.name).filter(f=>n.has(f))),n.add(m.name),t[m.name]==null&&u.indexOf(m.name)===-1&&c.indexOf(m.name)===-1){if(m.inputs.length===0){s.push(m.name);continue}m.inputs.forEach(f=>{l.has(f.name)||(l.add(f.name),p.push(f))})}}return{inputs:r,outputs:e,usedNodes:n,missingInputs:s,dynamicNode:a,syncInputs:i}}function IA(r,e,t){let{usedNodes:o,inputs:n}=t,s=[],a=Object.keys(n).map(c=>eo(c)[0]).map(c=>r.nodes[c]),i=r.initNodes;a.forEach(c=>{o.has(c.name)&&s.push(c)}),r.weights.forEach(c=>{o.has(c.name)&&s.push(c)}),i!=null&&i.forEach(c=>{o.has(c.name)&&s.push(c)});let l=new Set,u=[];for(;s.length>0;){let c=s.pop();l.add(c.name),e[c.name]||u.push(c),c.children.forEach(p=>{!l.has(p.name)&&o.has(p.name)&&p.inputs.every(m=>l.has(m.name))&&s.push(p)})}return u}var u5=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],c5=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],p5=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function Nk(r){return u5.indexOf(r.op)>=0}function a5(r){return c5.indexOf(r.op)>=0}function l5(r){return p5.indexOf(r.op)>=0}var Rp=class{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(o=>{this._functionExecutorMap[o]=new Rp(e.functions[o],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){let t=Object.keys(e).map(o=>e[o].map(n=>n.id));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{let t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t})}get functions(){return Object.keys(this._functions).reduce((e,t)=>(e[t]=this._functions[t].signature,e),{})}getCompilationKey(e,t){let o=e.map(s=>s.name).sort(),n=t.map(s=>s.name).sort();return o.join(this.SEPERATOR)+"--"+n.join(this.SEPERATOR)}compile(e,t){let o=Sk(e,t,this.weightMap,this._initNodes),{missingInputs:n,dynamicNode:s,syncInputs:a}=o;if(s!=null)throw new Error(`This execution contains the node '${s.name}', which has the dynamic op '${s.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${a}]`);if(n.length>0){let i=t.map(u=>u.name),l=Object.keys(e);throw new Error(`Cannot compute the outputs [${i}] from the provided inputs [${l}]. Missing the following inputs: [${n}]`)}return IA(this.graph,this.weightMap,o)}execute(e,t){e=this.mapInputs(e);let o=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let n=o.map(p=>this.graph.nodes[eo(p)[0]]),s=t.map(p=>eo(p)[0]),a=s.map(p=>this.graph.nodes[p]);a.length===0&&(a=this._outputs);let i=this.getCompilationKey(n,a),l=this.compiledMap.get(i);l==null&&(l=this.compile(e,a),this.compiledMap.set(i,l));let u={},c={};return G(()=>{let p=new px(this.weightMap,u,c,this.functionExecutorMap),m=Object.assign({},this.weightMap);Object.keys(e).forEach(h=>{let[g,x]=eo(h),w=[];w[x]=e[h],m[g]=w});let f=this.getFrozenTensorIds(m),d={};for(let h=0;hxr(h,m,p))})}getFrozenTensorIds(e){let t=[].concat.apply([],Object.keys(e).map(o=>e[o]).map(o=>o.map(n=>n.id)));return new Set(t)}checkTensorForDisposal(e,t,o,n,s,a,i){t.category==="control"||a.indexOf(e)!==-1||(o[e].forEach(l=>{l!=null&&(i[l.id]=(i[l.id]||0)+t.children.length)}),t.inputs.forEach(l=>{if(l.category!=="control"){let u=J1(l.name,o,n);u!=null&&u.forEach(c=>{if(c&&!s.has(c.id)){let p=i[c.id];p===1?(c.dispose(),delete i[c.id]):p!=null&&i[c.id]--}})}}))}async executeAsync(e,t){return this._executeAsync(e,t)}async _executeAsync(e,t,o=!1,n={},s={}){o||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));let a=new px(this.weightMap,n,s,this.functionExecutorMap),i=await this.executeWithControlFlow(e,a,t,o),l=t.map(m=>xr(m,i,a)),u=l.map(m=>m.id),c=Object.keys(e).map(m=>e[m].id),p=new Set([...u,...c,...this.weightIds]);return Object.keys(i).forEach(m=>{i[m].forEach(d=>{d&&!d.isDisposed&&!p.has(d.id)&&d.dispose()})}),this.parent==null&&a.dispose(p),l}async executeFunctionAsync(e,t,o){let n=e.reduce((s,a,i)=>(s[this.inputs[i].name]=a,s),{});return this._executeAsync(n,this.outputNodes,!0,t,o)}async executeWithControlFlow(e,t,o,n){let s=Object.keys(e),a=s.map(b=>this.graph.nodes[eo(b)[0]]),i=o.map(b=>eo(b)[0]),l=i.map(b=>this.graph.nodes[b]);l.length===0&&(l=this._outputs);let{usedNodes:u,missingInputs:c,dynamicNode:p,syncInputs:m}=Sk(e,l,this.weightMap,this._initNodes),f=[...a,...this.graph.weights,...this._initNodes||[]].map(b=>({node:b,contexts:t.currentContext})),d=Object.assign({},this.weightMap);Object.keys(e).forEach(b=>{let[_,k]=eo(b),A=[];A[k]=e[b],d[_]=A});let h={},g=this.getFrozenTensorIds(d),x={};for(;f.length>0;){let b=this.processStack(a,f,t,d,x,g,i,h,u);await Promise.all(b)}p==null&&!n&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let w=l.filter(b=>!Nk(b)&&!xr(b.name,d,t)).map(b=>b.name);if(w.length>0){let b="";throw p!=null&&(b=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${m}]`),new Error(`Cannot compute the outputs [${w}] from the provided inputs [${s}]. Consider providing the following inputs: [${c}]. ${b}`)}return d}processStack(e,t,o,n,s,a,i,l,u){let c=[];for(;t.length>0;){let p=t.pop();o.currentContext=p.contexts;let m="";if(p.node.op==="Enter"&&C("isConstant",p.node,n,o)&&([m]=Ls(p.node.name,o)),n[p.node.name]==null){let f=Ik(p.node,n,o,this._resourceManager);m||([m]=Ls(p.node.name,o));let d=o.currentContext;y.isPromise(f)?c.push(f.then(h=>(n[m]=h,o.currentContext=d,this.checkTensorForDisposal(m,p.node,n,o,a,i,l),this.processChildNodes(p.node,t,o,n,s,u),h))):(n[m]=f,this.checkTensorForDisposal(m,p.node,n,o,a,i,l),this.processChildNodes(p.node,t,o,n,s,u))}else this.processChildNodes(p.node,t,o,n,s,u)}return c}processChildNodes(e,t,o,n,s,a){e.children.forEach(i=>{let[l]=Ls(i.name,o);s[l]||!a.has(i.name)||(i.op==="Merge"?i.inputNames.some(u=>!!xr(u,n,o))&&(s[l]=!0,t.push({contexts:o.currentContext,node:i})):i.inputNames.every(u=>!!xr(u,n,o))&&(s[l]=!0,t.push({contexts:o.currentContext,node:i})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let o=e[t],[n]=eo(t),s=this.graph.nodes[n];if(s.attrParams.shape&&s.attrParams.shape.value){let a=s.attrParams.shape.value,i=a.length===o.shape.length&&o.shape.every((l,u)=>a[u]===-1||a[u]===l);y.assert(i,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${a}], but was [${o.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&y.assert(o.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${o.dtype}`)})}mapInputs(e){let t={};for(let o in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[o]!=null){let n=this._signature.inputs[o];t[n.name]=e[o]}else t[o]=e[o];return t}checkInputs(e){let t=Object.keys(e).filter(o=>{let[n]=eo(o);return this.graph.nodes[n]==null});if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(t=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null?this._signature.outputs[t].name:t,{})}checkOutputs(e){e.forEach(t=>{let[o]=eo(t);if(!this.graph.nodes[o])throw new Error(`The output '${t}' is not found in the graph`)})}};var Tk=class{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(let e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(let e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}};var m5="?tfjs-format=file",f5="model.json",mx=class{constructor(e,t={}){this.modelUrl=e,this.loadOptions=t,this.version="n/a",t==null&&(this.loadOptions={}),this.resourceManager=new Tk}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=Ir.browserHTTPRequest(e,this.loadOptions);else{let t=Ir.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(Ir.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=await this.handler.load();return this.loadSync(e)}loadSync(e){this.artifacts=e;let t=this.artifacts.modelTopology,o;this.artifacts.userDefinedMetadata!=null&&this.artifacts.userDefinedMetadata.signature!=null?o=this.artifacts.userDefinedMetadata.signature:o=this.artifacts.signature,this.signature=o,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;let n=Ir.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new Rp(Qg.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(n),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let s=Qg.Instance.transformGraph(e.modelInitializer);this.initializer=new Rp(s),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(e,t){if(typeof e=="string"){let o=Ir.getSaveHandlers(e);if(o.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(o.length>1)throw new Error(`Found more than one (${o.length}) save handlers for URL '${e}'`);e=o[0]}if(e.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){return this.execute(e,this.outputNodes)}normalizeInputs(e){if(!(e instanceof Ve)&&!Array.isArray(e))return e;if(e=Array.isArray(e)?e:[e],e.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce((t,o,n)=>(t[o]=e[n],t),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let o=this.executor.execute(e,t);return o.length>1?o:o[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let o=await this.executor.executeAsync(e,t);return o.length>1?o:o[0]}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,o)=>(t[o]=[e[o]],t),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}};async function NA(r,e={}){if(r==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");e==null&&(e={}),e.fromTFHub&&r.load==null&&(r.endsWith("/")||(r=r+"/"),r=`${r}${f5}${m5}`);let t=new mx(r,e);return await t.load(),t}var fx="3.3.0";var Wk={};Je(Wk,{CSVDataset:()=>$d,Dataset:()=>Ui,FileDataSource:()=>Md,TextLineDataset:()=>Ed,URLDataSource:()=>Ld,array:()=>lE,csv:()=>yE,func:()=>bE,generator:()=>wE,microphone:()=>kE,version_data:()=>_x,webcam:()=>_E,zip:()=>uE});var aE=Ac(Ok());var HA=Ac(Ok());function VA(r,e){return hx(r,e)}function hx(r,e,t=new Map,o=new Set){if(r==null)return null;if(o.has(r))throw new Error("Circular references are not supported.");if(t.has(r))return t.get(r);let n=e(r);if(n.recurse&&n.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(n.recurse)if(_l(r)){let s=Array.isArray(r)?[]:{};o.add(r);for(let a in r){let i=r[a],l=hx(i,e,t,o);s[a]=l}return o.delete(r),s}else throw new Error(`Can't recurse into non-iterable type: ${r}`);else return t.set(r,n.value),n.value}function WA(r,e=Pk){return GA(r,e)}function GA(r,e,t=new Set){let o=r[0];if(t.has(o))throw new Error("Circular references are not supported.");let n=e(r);if(n.recurse&&n.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(n.recurse)if(_l(o)){let s=Array.isArray(o)?[]:{};t.add(o);for(let a in o){let i=r.map(u=>u[a]),l=GA(i,e,t);s[a]=l}return t.delete(o),s}else throw new Error(`Can't recurse into non-iterable type: ${o}`);else return n.value}function Pk(r){return r===null?null:_l(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function gx(r,e){let t=new Map;hx(r,e,t);for(let n of Array.from(t.keys())){let s=t.get(n);if(y.isPromise(s)){let a=await s;t.set(n,a)}}return hx(r,e,t)}function _l(r){return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r=="object"&&!(r instanceof Ve))}function UA(r){return r==null||w5(r)||Array.isArray(r)||typeof r=="object"&&r instanceof Ve||y.isTypedArray(r)}function w5(r){return r===null||typeof r!="object"&&typeof r!="function"}function jA(r){return VA(r,_5)}function _5(r){return r instanceof Ve?{value:r.clone(),recurse:!1}:_l(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var Td=class{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(let t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.wrap(this.begin+e),o=this.get(t);return this.set(t,this.pop()),o}};var Fp=class extends Td{constructor(){super(Fp.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){let e=this.capacity*2,t=new Array(e),o=this.length();for(let n=0;nt===!0)}rowMajorBatch(e,t=!0){return new tE(this,e,t)}columnMajorBatch(e,t=!0,o=Pk){return this.rowMajorBatch(e,t).map(s=>WA(s,o))}concatenate(e,t){return new Lk(Mk([this,e]),t)}take(e){return e<0||e==null?this:new eE(this,e)}skip(e){return e<0||e==null?this:new QA(this,e)}prefetch(e){return new Bk(this,e)}shuffle(e,t){return new iE(this,e,t)}serial(){return new JA(this)}},qA=class extends Kt{constructor(e){super();this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let e=this.items[this.trav];return this.trav++,{value:jA(e),done:!1}}},KA=class extends Kt{constructor(e){super();this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},JA=class extends Kt{constructor(e){super();this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},QA=class extends Kt{constructor(e,t){super();this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},tE=class extends Kt{constructor(e,t,o=!0){super();this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=o,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}},rE=class extends Kt{constructor(e,t){super();this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;Te(e.value)}}},oE=class extends Kt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Mn.getTensorsInContainer(e.value),o=this.transform(e.value),n=Mn.getTensorsInContainer(o);for(let s of t)Mn.isTensorInList(s,n)||s.dispose();return{value:o,done:!1}}},nE=class extends Kt{constructor(e,t){super();this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},zk=class extends Kt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Mn.getTensorsInContainer(e.value),o=await this.transform(e.value),n=Mn.getTensorsInContainer(o);for(let s of t)Mn.isTensorInList(s,n)||s.dispose();return{value:o,done:!1}}},Op=class extends Kt{constructor(){super();this.outputQueue=new Fp,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},sE=class extends Op{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let e=await this.upstream.next();if(e.done)return!1;let t=Mn.getTensorsInContainer(e.value),o=this.transform(e.value),n=Mn.getTensorsInContainer(o);this.outputQueue.pushAll(o);for(let s of t)Mn.isTensorInList(s,n)||s.dispose();return!0}},Lk=class extends Kt{constructor(e,t){super();this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,this.iterator==null){let o=await this.moreIterators.next();if(o.done)return{value:null,done:!0};this.iterator=o.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}},La;(function(r){r[r.FAIL=0]="FAIL",r[r.SHORTEST=1]="SHORTEST",r[r.LONGEST=2]="LONGEST"})(La||(La={}));var YA=class extends Kt{constructor(e,t=La.FAIL){super();this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(e){await e;let t=0,o=0;function n(a){return a instanceof Kt?{value:a.next().then(l=>(t++,l.done&&o++,l.value)),recurse:!1}:{value:null,recurse:!0}}let s=await gx(this.iterators,n);if(t===o)return{value:null,done:!0};if(o>0)switch(this.mismatchMode){case La.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case La.SHORTEST:return{value:null,done:!0};case La.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},Bk=class extends Kt{constructor(e,t){super();this.upstream=e,this.bufferSize=t,this.buffer=new Td(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}},iE=class extends Bk{constructor(e,t,o){super(e,t);this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=HA.alea(o||y.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}};var Ui=class{constructor(){this.size=null}batch(e,t=!0){let o=this;y.assert(e>0,()=>`batchSize needs to be positive, but it is + ${e}`);let n;return this.size===Infinity||this.size==null?n=this.size:t?n=Math.ceil(this.size/e):n=Math.floor(this.size/e),fo(async()=>(await o.iterator()).columnMajorBatch(e,t,k5),n)}concatenate(e){let t=this,o;return this.size===Infinity||e.size===Infinity?o=Infinity:this.size!=null&&e.size!=null?o=this.size+e.size:o=null,fo(async()=>(await t.iterator()).concatenate(await e.iterator()),o)}filter(e){let t=this,o;return this.size===Infinity?o=Infinity:o=null,fo(async()=>(await t.iterator()).filter(n=>G(()=>e(n))),o)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return fo(async()=>(await t.iterator()).map(o=>G(()=>e(o))),this.size)}mapAsync(e){let t=this;return fo(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 fo(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,o;return this.size!=null&&e>0?o=this.size*e:e===0?o=0:this.size!=null&&(e===void 0||e<0)?o=Infinity:o=null,fo(async()=>{let n=Ad(async()=>({value:await t.iterator(),done:!1}));return XA(n.take(e))},o)}skip(e){let t=this,o;return this.size!=null&&e>=0&&this.size>=e?o=this.size-e:this.size!=null&&(this.size(await t.iterator()).skip(e),o)}shuffle(e,t,o=!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)`);let n=this,s=aE.alea(t||y.now().toString());return fo(async()=>{let a=s.int32();return o&&(a+=s.int32()),(await n.iterator()).shuffle(e,a.toString())},this.size)}take(e){let t=this,o;return this.size!=null&&this.size>e?o=e:this.size!=null&&this.size<=e?o=this.size:o=null,fo(async()=>(await t.iterator()).take(e),o)}async toArray(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};Ui.MAX_BUFFER_SIZE=1e4;function fo(r,e=null){return new class extends Ui{constructor(){super(...arguments);this.size=e}async iterator(){return r()}}}function lE(r){return fo(async()=>Mk(r),r.length)}function uE(r){if(!_l(r))throw new Error("The argument to zip() must be an object or array.");let e;if(Array.isArray(r))for(let t=0;t{let t=await gx(r,o=>{if(o instanceof Ui)return{value:o.iterator(),recurse:!1};if(_l(o))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return ZA(t,La.SHORTEST)},e)}function k5(r){if(r===null)return null;let e=r[0];return UA(e)?{value:v5(r),recurse:!1}:{value:null,recurse:!0}}function v5(r){if(r.length===0)throw new Error("Can't make a batch of zero elements.");return r[0]instanceof Ve?Vt(r):Rr(r)}var Ed=class extends Ui{constructor(e){super();this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` +`).map(n=>(n.endsWith("\r")&&(n=n.slice(0,-1)),n))}};var xx='"',Dd=Symbol("out"),cE=Symbol("field"),yx=Symbol("quote"),Vk=Symbol("quoteafterquote"),pE=Symbol("quoteinquote"),$d=class extends Ui{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 Ed(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(y.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 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&&y.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((n,s)=>(n[s]=n[s]+1||1,n),{}),o=Object.keys(t).filter(n=>t[n]>1);if(y.assert(o.length===0,()=>"Duplicate column names found: "+o.toString()),this.columnConfigs){for(let n of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(n)===-1)throw new Error('The key "'+n+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let t=await(await this.base.iterator()).next();if(t.done)throw new Error("No data was found for CSV parsing.");let o=t.value;return this.parseRow(o,!1)}else return null}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),o={},n={};for(let s=0;s14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=e.includeSpectrogram!==!1,this.includeWaveform=e.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(j().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");let t=new Rd(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(o){throw new Error(`Error thrown while initializing video stream: ${o.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let e,t,o=await this.getAudioData();if(this.includeSpectrogram){let n=this.flattenQueue(o.freqDataQueue);e=this.getTensorFromAudioDataArray(n,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let n=this.flattenQueue(o.timeDataQueue);t=this.getTensorFromAudioDataArray(n,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let e=[],t=[],o=0;return new Promise(n=>{let s=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&n({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++o===this.numFrames&&(clearInterval(s),n({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){let t=e[0].length,o=new Float32Array(e.length*t);return e.forEach((n,s)=>o.set(n,s*t)),o}getTensorFromAudioDataArray(e,t){let o=new Float32Array(y.sizeFromShape(t));return o.set(e,o.length-e.length),Rr(o,t)}};var Fd=class extends Kt{constructor(e,t){super();if(this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Gt([0],"int32"),this.webcamConfig.centerCrop){let o=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,n=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,s=(1-o)/2,a=(1-n)/2,i=s+o,l=n+a;this.cropBox=Mi([a,s,l,i],[1,4])}else this.cropBox=Mi([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(j().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}let o=new Fd(e,t);return await o.start(),o}async start(){this.webcamConfig.facingMode&&y.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}})}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=qh.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return G(()=>{let t=ar(ne(e,"float32"),0),o;o=$s.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let n=o.shape;return L(o,n.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(t=>t.stop());try{this.webcamVideoElement.srcObject=null}catch(t){console.log(t),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}};var Od=class{};var bx=class extends Kt{split(e){return new mE(this,e)}},mE=class extends bx{constructor(e,t){super();this.upstream=e,this.impl=new fE(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},fE=class extends Op{constructor(e,t){super();this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(let o of t.slice(0,-1))this.outputQueue.push(o);return this.carryover=t[t.length-1],!0}};var Gk=class extends Kt{decodeUTF8(){return new hE(this)}},hE=class extends bx{constructor(e){super();this.upstream=e,this.impl=new gE(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},gE=class extends Op{constructor(e){super();if(this.upstream=e,j().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=dE();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let e=await this.upstream.next(),t;if(e.done)return!1;t=e.value;let o;return j().get("IS_BROWSER")?o=this.decoder.decode(t,{stream:!0}):o=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(o),!0}};var Pd=class extends Gk{constructor(e,t={}){super();this.file=e,this.options=t,y.assert(e instanceof Uint8Array||(j().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((t,o)=>{let n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)t(new Uint8Array(this.file.slice(this.offset,n)));else{let s=new FileReader;s.onload=i=>{let l=s.result;if(l instanceof ArrayBuffer&&(l=new Uint8Array(l)),!(l instanceof Uint8Array))return o(new TypeError("FileReader returned unknown type."));t(l)},s.onabort=i=>o(new Error("Aborted")),s.onerror=i=>o(new Error(i.type));let a=this.file.slice(this.offset,n);s.readAsArrayBuffer(a)}this.offset=n}),done:!1}}};async function xE(r,e={}){let t,o;typeof r=="string"?t=r:(t=r.url,o=C5(r));let n=await y.fetch(t,o);if(n.ok){let s=new Uint8Array(await n.arrayBuffer());return new Pd(s,e)}else throw new Error(n.statusText)}var C5=r=>({method:r.method,headers:r.headers,body:r.body,mode:r.mode,credentials:r.credentials,cache:r.cache,redirect:r.redirect,referrer:r.referrer,integrity:r.integrity});function wx(r){return typeof r=="string"&&r.substr(0,7)==="file://"}var Md=class extends Od{constructor(e,t={}){super();this.input=e,this.options=t}async iterator(){if(wx(this.input)&&j().get("IS_NODE")){let e=require("fs");this.input=e.readFileSync(this.input.substr(7))}return new Pd(this.input,this.options)}};var Ld=class extends Od{constructor(e,t={}){super();this.url=e,this.fileOptions=t}async iterator(){return wx(this.url)?new Md(this.url,this.fileOptions).iterator():xE(this.url,this.fileOptions)}};function yE(r,e={}){return new $d(new Ld(r),e)}function bE(r){let e=Ad(r);return fo(async()=>e)}function wE(r){return fo(async()=>{let e=await r();return Ad(()=>e.next())})}async function _E(r,e){return Fd.create(r,e)}async function kE(r){return Rd.create(r)}var _x="3.3.0";function te(r,e){Array.isArray(r)||(r=[r]),r.forEach(t=>{t!=null&&y.assert(t.dtype!=="complex64",()=>`${e} does not support complex64 tensors in the CPU backend.`)})}var I5=Ar.whereImpl,Pp=class extends Ws{constructor(){super();this.blockSize=48,this.firstUse=!0,this.data=new Xa(this,Po())}nextDataId(){return Pp.nextDataId++}write(e,t,o){this.firstUse&&(this.firstUse=!1,j().get("IS_NODE")&&S.warn(` ============================ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details. -============================`));let n={id:this.nextDataId()};return this.data.set(n,{values:e,dtype:o,refCount:1}),n}makeTensorInfo(e,t,o){let n;if(t==="string"&&o!=null&&o.length>0&&x.isString(o[0])){let s=o.map(a=>x.encodeString(a));n=this.write(s,e,t)}else n=this.write(o,e,t);return{dataId:n,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,o,n,s){this.data.set(e,{values:t,dtype:n,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:o}=this.data.get(e);if(t==="complex64"){let n=this.readSync(o.real.dataId),s=this.readSync(o.imag.dataId);return N.mergeRealAndImagArrays(n,s)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId),o=t;if(e.dtype==="string")try{o=t.map(n=>x.decodeString(n))}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return ve(e.shape,e.dtype,o)}makeOutput(e,t,o){let n=this.write(e,t,o);return Po().makeTensorFromDataId(n,t,o,this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;let{complexTensorInfos:o}=this.data.get(e);o!=null&&(this.disposeData(o.real.dataId,!0),this.disposeData(o.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){let t=x.now();return e(),{kernelMs:x.now()-t}}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(e){ee([e],"where");let t=this.readSync(e.dataId);return d6(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Rp.nextDataId=0;var Bk={};Je(Bk,{addImpl:()=>qA,bincountImpl:()=>Md,bincountReduceImpl:()=>Dk,ceilImpl:()=>XA,concatImpl:()=>Ld,expImpl:()=>ZA,expm1Impl:()=>QA,floorImpl:()=>tE,gatherV2Impl:()=>Rk,greaterImpl:()=>oE,lessImpl:()=>sE,linSpaceImpl:()=>Fk,logImpl:()=>aE,maxImpl:()=>Ok,maximumImpl:()=>uE,minimumImpl:()=>pE,multiplyImpl:()=>xx,negImpl:()=>dE,notEqualImpl:()=>gE,prodImpl:()=>bE,rangeImpl:()=>Vd,rsqrtImpl:()=>_E,simpleAbsImpl:()=>VA,sliceImpl:()=>Gd,squaredDifferenceImpl:()=>CE,stridedSliceImpl:()=>Pk,subImpl:()=>NE,tileImpl:()=>Mk,topKImpl:()=>Lk,transposeImpl:()=>Bd,uniqueImpl:()=>zk});function VA(r){let e=new Float32Array(r.length);for(let t=0;t{let{x:e}=r.inputs,t=r.backend;ee(e,"abs");let o=new Float32Array(x.sizeFromShape(e.shape)),n=t.data.get(e.dataId).values;return o=VA(n),t.makeOutput(o,e.shape,"float32")},GA={kernelName:as,backendName:"cpu",kernelFunc:h6};function Ke(r){return(e,t,o,n,s)=>{let a=N.assertAndGetBroadcastShape(e,t),i=a.length,l=x.computeStrides(a),u=x.sizeFromShape(a),c=x.getTypedArrayFromDType(s,u),p=e.length,m=t.length,f=x.computeStrides(e),d=x.computeStrides(t),h=N.getBroadcastDims(e,a),g=N.getBroadcastDims(t,a);if(h.length+g.length===0)for(let y=0;yw[T]=0);let _=x.locToIndex(w,p,f),C=b.slice(-m);g.forEach(T=>C[T]=0);let D=x.locToIndex(C,m,d);c[y]=r(o[_],n[D])}return[c,a]}}function pr(r){let{inputs:e,backend:t}=r,{real:o,imag:n}=e,s=t.data.get(o.dataId).values,a=t.data.get(n.dataId).values,i=t.makeTensorInfo(o.shape,"complex64"),l=t.data.get(i.dataId);return l.complexTensorInfos={real:t.makeTensorInfo(o.shape,"float32",s),imag:t.makeTensorInfo(n.shape,"float32",a)},i}var WA={kernelName:Gl,backendName:"cpu",kernelFunc:pr};function Fp(r,e,t="float32"){if(t==="complex64"){let n=Fp(r,e,"float32"),s=Fp(r,e,"float32");return pr({inputs:{real:n,imag:s},backend:r})}let o=x.makeZerosTypedArray(x.sizeFromShape(e),t);return r.makeTensorInfo(e,t,o)}function Ar(r){let{inputs:e,backend:t}=r,{x:o}=e;return t.incRef(o.dataId),{dataId:o.dataId,shape:o.shape,dtype:o.dtype}}var UA={kernelName:Ro,backendName:"cpu",kernelFunc:Ar};function Zn(r){let{inputs:e,backend:t}=r,{input:o}=e,n=t.data.get(o.dataId).complexTensorInfos.real,s=t.data.get(n.dataId).values;return t.makeTensorInfo(n.shape,n.dtype,s)}var jA={kernelName:iu,backendName:"cpu",kernelFunc:Zn};function Jn(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{dtype:s}=o;if(s==="complex64"){if(n.dtype==="complex64")return Ar({inputs:{x:n},backend:t});let a=Fp(t,n.shape,n.dtype),i=Jn({inputs:{x:n},backend:t,attrs:{dtype:"float32"}}),l=pr({inputs:{real:i,imag:a},backend:t});return t.disposeIntermediateTensorInfo(a),t.disposeIntermediateTensorInfo(i),l}if(n.dtype==="complex64"){let a=Zn({inputs:{input:n},backend:t}),i=Jn({inputs:{x:a},backend:t,attrs:{dtype:s}});return t.disposeIntermediateTensorInfo(a),i}if(!x.hasEncodingLoss(n.dtype,s)){let a=Ar({inputs:{x:n},backend:t});return{dataId:a.dataId,shape:a.shape,dtype:s}}if(s==="int32"){let a=t.data.get(n.dataId).values,i=Int32Array.from(a);return t.makeTensorInfo(n.shape,"int32",i)}if(s==="bool"){let a=t.data.get(n.dataId).values,i=x.toTypedArray([0],n.dtype),[l,u]=Ke((c,p)=>c!==p?1:0)(n.shape,[],a,i,"bool");return t.makeTensorInfo(u,"bool",l)}throw new Error(`Error in Cast: failed to cast ${n.dtype} to ${s}`)}var HA={kernelName:Do,backendName:"cpu",kernelFunc:Jn};function et(r,e,t,o){return t==null?({inputs:n,backend:s})=>{let{a,b:i}=n,l=s;ee([a,i],r);let u=l.data.get(a.dataId).values,c=l.data.get(i.dataId).values,p=o||a.dtype,[m,f]=e(a.shape,i.shape,u,c,p);return l.makeTensorInfo(f,p,m)}:({inputs:n,backend:s})=>{let{a,b:i}=n,l=s;if(a.dtype==="complex64"||i.dtype==="complex64"){let u=Jn({inputs:{x:a},backend:l,attrs:{dtype:"complex64"}}),c=l.data.get(u.dataId),p=c.complexTensorInfos.real,m=c.complexTensorInfos.imag,f=l.data.get(p.dataId).values,d=l.data.get(m.dataId).values,h=Jn({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(h.dataId),y=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,w=l.data.get(y.dataId).values,_=l.data.get(b.dataId).values,[C,D,T]=t(a.shape,i.shape,f,d,w,_),R=l.makeTensorInfo(T,"float32",C),P=l.makeTensorInfo(T,"float32",D),B=pr({inputs:{real:R,imag:P},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(h),l.disposeIntermediateTensorInfo(R),l.disposeIntermediateTensorInfo(P),B}else{let u=l.data.get(a.dataId).values,c=l.data.get(i.dataId).values,p=o||a.dtype,[m,f]=e(a.shape,i.shape,u,c,p);return l.makeTensorInfo(f,p,m)}}}function Op(r){return(e,t,o,n,s,a)=>{let i=N.assertAndGetBroadcastShape(e,t),l=x.sizeFromShape(i),u=i.length,c=x.computeStrides(i),p=x.getTypedArrayFromDType("float32",l),m=x.getTypedArrayFromDType("float32",l),f=N.getBroadcastDims(e,i),d=N.getBroadcastDims(t,i),h=N.mergeRealAndImagArrays(o,n),g=N.mergeRealAndImagArrays(s,a),y=e.length,b=x.computeStrides(e),w=t.length,_=x.computeStrides(t);if(f.length+d.length===0)for(let C=0;CT[U]=0);let R=x.locToIndex(T,y,b),P=D.slice(-w);d.forEach(U=>P[U]=0);let B=x.locToIndex(P,w,_),G=r(h[R*2],h[R*2+1],g[B*2],g[B*2+1]);p[C]=G.real,m[C]=G.imag}return[p,m,i]}}var qA=Ke((r,e)=>r+e),g6=Op((r,e,t,o)=>({real:r+t,imag:e+o})),za=et(wo,qA,g6),KA={kernelName:wo,backendName:"cpu",kernelFunc:za};function Md(r,e,t,o,n){let s=x.sizeFromShape(o),a=x.makeZerosTypedArray(n,t);for(let i=0;i=n||(s>0?a[l]+=e[i]:a[l]+=1)}return a}function Dk(r,e,t,o=!1){let n=r.shape[0],s=r.shape[1],a=ve([n,t],e.dtype);for(let i=0;i=t||(o?a.set(1,i,u):e.size>0?a.set(a.get(i,u)+e.get(i,l),i,u):a.set(a.get(i,u)+1,i,u))}return a}function Qn(r){return(e,t,o)=>{let n=x.getTypedArrayFromDType(t,e.length);for(let s=0;s{let{x:a}=o;if(ee(a,r),a.dtype==="string"||t==="string")throw new Error("unaryKernelFunc does not support string input/output");let i=s,l=i.data.get(a.dataId).values,u=x.sizeFromShape(a.shape),c=t||a.dtype,p=x.getArrayFromDType(c,u);for(let m=0;m{let{x:a}=o;if(ee(a,r),a.dtype==="string"||t==="string")throw new Error("unaryKernelFunc does not support string input/output");let i=s,l=i.data.get(a.dataId).values,u=t||a.dtype,c=e(l,u,n);return i.makeTensorInfo(a.shape,u,c)}}var XA=Qn(r=>Math.ceil(r)),x6=es(Yo,XA),YA={kernelName:Yo,backendName:"cpu",kernelFunc:x6};function Ld(r,e,t,o){let n=x.getArrayFromDType(t,x.sizeFromShape(e));if(o&&t!=="string"){let s=0;r.forEach(a=>{let i=x.sizeFromShape(a.shape);n.set(a.vals,s),s+=i})}else{let s=0;r.forEach(a=>{let i=t==="string"?N.fromUint8ToStringArray(a.vals):a.vals,l=0;for(let u=0;uMath.exp(r)),$k=es(on,ZA),JA={kernelName:on,backendName:"cpu",kernelFunc:$k};var QA=Qn(r=>Math.expm1(r)),y6=es(ni,QA),eE={kernelName:ni,backendName:"cpu",kernelFunc:y6};var tE=Qn(r=>Math.floor(r)),b6=es(nn,tE),rE={kernelName:nn,backendName:"cpu",kernelFunc:b6};function Rk(r,e,t){let o=ve(t,r.dtype);for(let n=0;nr>e?1:0),w6=et(ai,oE,null,"bool"),nE={kernelName:ai,backendName:"cpu",kernelFunc:w6};var sE=Ke((r,e)=>rMath.log(r)),k6=es(cn,aE),lE={kernelName:cn,backendName:"cpu",kernelFunc:k6};function Ok(r,e,t,o){let n=x.getTypedArrayFromDType(o,x.sizeFromShape(t));for(let s=0;si&&(i=u)}n[s]=i}return n}var uE=Ke((r,e)=>Math.max(r,e)),v6=et(mn,uE),cE={kernelName:mn,backendName:"cpu",kernelFunc:v6};var pE=Ke((r,e)=>Math.min(r,e)),C6=et(gn,pE),mE={kernelName:gn,backendName:"cpu",kernelFunc:C6};var xx=Ke((r,e)=>r*e),I6=Op((r,e,t,o)=>({real:r*t-e*o,imag:r*o+e*t})),zd=et(xn,xx,I6),fE={kernelName:xn,backendName:"cpu",kernelFunc:zd};function dE(r,e,t){let o=x.createScalarValue(-1,t);return xx([],e,o,r,t)}function N6(r){let{inputs:e,backend:t}=r,{x:o}=e;ee(o,"neg");let n=t.data.get(o.dataId).values,[s,a]=dE(n,o.shape,o.dtype);return t.makeTensorInfo(a,o.dtype,s)}var hE={kernelName:ps,backendName:"cpu",kernelFunc:N6};var gE=Ke((r,e)=>r!==e?1:0),S6=et(gi,gE,null,"bool"),xE={kernelName:gi,backendName:"cpu",kernelFunc:S6};function Bd(r,e,t,o,n){let s=e.length,a=x.sizeFromShape(e),i=x.computeStrides(e),l=x.computeStrides(n),u=x.getTypedArrayFromDType(t,x.sizeFromShape(n));for(let c=0;ct.disposeIntermediateTensorInfo(b)),t.makeTensorInfo(y,g,d)}var wE={kernelName:wi,backendName:"cpu",kernelFunc:T6};function Vd(r,e,t,o){let n=r===e,s=r1;if(n||s||a)return x.makeZerosTypedArray(0,o);let i=Math.abs(Math.ceil((e-r)/t)),l=x.makeZerosTypedArray(i,o);e1/Math.sqrt(r)),A6=es(Sn,_E),kE={kernelName:Sn,backendName:"cpu",kernelFunc:A6};function Gd(r,e,t,o,n){let s=nr.isSliceContinous(o,e,t),a=x.sizeFromShape(t),i=x.computeStrides(o);if(s){let p=nr.computeFlatOffset(e,i);return n==="string"?r.slice(p,p+a):r.subarray(p,p+a)}let l=n==="string"?N.fromUint8ToStringArray(r):r,u=ve(o,n,l),c=ve(t,n);for(let p=0;pd+e[h]);c.set(u.get(...f),...m)}return n==="string"?N.fromStringArrayToUint8(c.values):c.values}function ts(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{begin:s,size:a}=o;ee(n,"slice");let[i,l]=nr.parseSliceParams(n,s,a);nr.assertParamsValid(n,i,l);let u=t.data.get(n.dataId).values,c=Gd(u,i,l,n.shape,n.dtype);return t.makeTensorInfo(l,n.dtype,c)}var vE={kernelName:gs,backendName:"cpu",kernelFunc:ts};var CE=Ke((r,e)=>{let t=r-e;return t*t}),E6=et(Rn,CE),IE={kernelName:Rn,backendName:"cpu",kernelFunc:E6};function Pk(r,e,t,o){let n=ve(r,e.dtype);for(let s=0;sr-e),D6=Op((r,e,t,o)=>({real:r-t,imag:e-o})),Wd=et(Fn,NE,D6),SE={kernelName:Fn,backendName:"cpu",kernelFunc:Wd};function Mk(r,e){let t=new Array(r.rank);for(let n=0;nw.value-b.value);let h=p*o,g=l.subarray(h,h+o),y=u.subarray(h,h+o);for(let b=0;b{for(let g=0;gnew Rp,1);var Vk=$e(ti,r=>r>=0?r:Math.exp(r)-1),AE={kernelName:ti,backendName:"cpu",kernelFunc:Vk};function Gk(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{alpha:s}=o;ee([n],"leakyRelu");let a=x.sizeFromShape(n.shape),i=t.data.get(n.dataId).values,l=x.getTypedArrayFromDType("float32",a);for(let u=0;ur<0?e*r:r);function Wk(r){let{inputs:e,backend:t}=r,{x:o,alpha:n}=e;ee([o,n],"prelu");let s=t.data.get(o.dataId).values,a=t.data.get(n.dataId).values,[i,l]=$6(o.shape,n.shape,s,a,o.dtype);return t.makeTensorInfo(l,o.dtype,i)}var DE={kernelName:_n,backendName:"cpu",kernelFunc:Wk};var Uk=$e(kn,r=>Math.max(0,r)),$E={kernelName:kn,backendName:"cpu",kernelFunc:Uk};var jk=$e(Cn,r=>Math.min(Math.max(0,r),6)),RE={kernelName:Cn,backendName:"cpu",kernelFunc:jk};function Pp(r,e,t,o,n){if(t==="linear")return Ar({inputs:{x:e},backend:r});if(t==="relu")return Uk({inputs:{x:e},backend:r});if(t==="elu")return Vk({inputs:{x:e},backend:r});if(t==="relu6")return jk({inputs:{x:e},backend:r});if(t==="prelu")return Wk({inputs:{x:e,alpha:o},backend:r});if(t==="leakyrelu")return Gk({inputs:{x:e},backend:r,attrs:{alpha:n}});throw new Error(`Activation ${t} has not been implemented for the CPU backend.`)}function Qe(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{shape:s}=o,a=x.sizeFromShape(n.shape),i=x.inferFromImplicitShape(s,a),l=x.sizeFromShape(i);x.assert(a===l,()=>`The new shape (${i}) has ${l} elements and the old shape (${n.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`),t.incRef(n.dataId);let u=t.data.get(n.dataId);if(u.complexTensorInfos!=null){let c=u.complexTensorInfos.real,p=u.complexTensorInfos.imag;c.shape=i,p.shape=i}return{dataId:n.dataId,shape:i,dtype:n.dtype}}var FE={kernelName:ds,backendName:"cpu",kernelFunc:Qe};function Hk(r){let{inputs:e,backend:t,attrs:o}=r,{a:n,b:s}=e,{transposeA:a,transposeB:i}=o;ee([n,s],"matMul");let l=n.shape.length,u=s.shape.length,c=a?n.shape[l-2]:n.shape[l-1],p=i?s.shape[u-1]:s.shape[u-2],m=a?n.shape[l-1]:n.shape[l-2],f=i?s.shape[u-2]:s.shape[u-1],d=n.shape.slice(0,-2),h=s.shape.slice(0,-2),g=x.sizeFromShape(d),y=x.sizeFromShape(h),b=g===y||g===1||y===1;x.assert(l>=2&&u>=2&&b,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${d}) and (${h}).`);let _=(g>y?n.shape.slice(0,-2):s.shape.slice(0,-2)).concat([m,f]);x.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${n.shape} and ${s.shape} and transposeA=${a} and transposeB=${i} must match.`);let C=a?[g,c,m]:[g,m,c],D=i?[y,f,p]:[y,p,f],T=Qe({inputs:{x:n},backend:t,attrs:{shape:C}}),R=Qe({inputs:{x:s},backend:t,attrs:{shape:D}}),P=a?T.shape[1]:T.shape[2],B=a?T.shape[2]:T.shape[1],G=i?R.shape[1]:R.shape[2],U=Math.max(g,y),j=t.data.get(T.dataId).values,H=t.data.get(R.dataId).values,K=x.computeStrides(T.shape),X=x.computeStrides(R.shape),[oe,Y,re]=a?[K[0],1,K[1]]:[K[0],K[1],1],[te,ie,le]=i?[1,X[1],X[0]]:[X[1],1,X[0]],ae=B*G,fe=ve([U,B,G],T.dtype),de=fe.values,xe=t.blockSize;for(let we=0;weMath.acos(r)),ME={kernelName:js,backendName:"cpu",kernelFunc:F6};var O6=$e(Hs,r=>Math.acosh(r)),LE={kernelName:Hs,backendName:"cpu",kernelFunc:O6};function P6(r){let{inputs:e,backend:t}=r,o=e;ee(e,"addN");let n=o.map(i=>t.data.get(i.dataId).values),s=ve(o[0].shape,o[0].dtype),a=s.values;for(let i=0;ib&&(b=C,w=_)}f[g]=w}return u.forEach(g=>t.disposeIntermediateTensorInfo(g)),t.makeTensorInfo(c,"int32",f)}var GE={kernelName:qo,backendName:"cpu",kernelFunc:z6};function B6(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s}=o;ee(n,"argMin");let a=x.parseAxisParam(s,n.shape),i=N.getAxesPermutation(a,n.shape.length),l=n,u=[];i!=null&&(l=tr({inputs:{x:n},backend:t,attrs:{perm:i}}),u.push(l),a=N.getInnerMostAxes(a.length,l.shape.length)),a=[a[0]],N.assertAxesAreInnerMostDims("argMin",a,l.shape.length);let[c,p]=N.computeOutAndReduceShapes(l.shape,a),m=x.sizeFromShape(c),f=x.makeZerosTypedArray(m,"int32"),d=x.sizeFromShape(p),h=t.data.get(l.dataId).values;for(let g=0;gt.disposeIntermediateTensorInfo(g)),t.makeTensorInfo(c,"int32",f)}var WE={kernelName:ea,backendName:"cpu",kernelFunc:B6};var V6=$e(qs,r=>Math.asin(r)),UE={kernelName:qs,backendName:"cpu",kernelFunc:V6};var G6=$e(Ks,r=>Math.asinh(r)),jE={kernelName:Ks,backendName:"cpu",kernelFunc:G6};var W6=$e(Xs,r=>Math.atan(r)),HE={kernelName:Xs,backendName:"cpu",kernelFunc:W6};var U6=Ke((r,e)=>Math.atan2(r,e)),j6=et(Zs,U6),qE={kernelName:Zs,backendName:"cpu",kernelFunc:j6};var H6=$e(Ys,r=>Math.atanh(r)),KE={kernelName:Ys,backendName:"cpu",kernelFunc:H6};function Mp(r,e,t,o,n,s){let a=n.strideHeight,i=n.strideWidth,l=n.dilationHeight,u=n.dilationWidth,c=n.effectiveFilterHeight,p=n.effectiveFilterWidth,m=n.padInfo.top,f=n.padInfo.left,d=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,h=ve(n.outShape,t),g=h.values,y=n.outShape[1]*n.outShape[2]*n.outShape[3],b=n.outShape[2]*n.outShape[3],w=n.outShape[3];for(let _=0;_oe?oe=de:s==="avg"&&(Y+=de,re++)}if(isNaN(oe))break}let te=U+j*w+T;g[te]=s==="avg"?Y/re:oe}}}return h}function yx(r,e,t,o,n=!1,s=!1){let a=ve(o.outShape,"int32"),i=o.strideHeight,l=o.strideWidth,u=o.dilationHeight,c=o.dilationWidth,p=o.effectiveFilterHeight,m=o.effectiveFilterWidth,f=o.padInfo.top,d=o.padInfo.left,h=ve(e,t,r);for(let g=0;gB&&(B=X,n?G=s?((g*o.inHeight+U)*o.inWidth+H)*o.inChannels+y:(U*o.inWidth+H)*o.inChannels+y:G=j*m+K)}}a.set(G,g,b,D,y)}}return a}function bx(r,e,t,o,n,s){let a=n.strideDepth,i=n.strideHeight,l=n.strideWidth,u=n.dilationDepth,c=n.dilationHeight,p=n.dilationWidth,m=n.effectiveFilterDepth,f=n.effectiveFilterHeight,d=n.effectiveFilterWidth,h=n.padInfo.front,g=n.padInfo.top,y=n.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,w=ve(n.outShape,t),_=w.values,C=n.outShape[1]*n.outShape[2]*n.outShape[3]*n.outShape[4],D=n.outShape[2]*n.outShape[3]*n.outShape[4],T=n.outShape[3]*n.outShape[4],R=n.outShape[4];for(let P=0;PDe?De=Pt:s==="avg"&&(Ie+=Pt,ze++),isNaN(De))break}if(isNaN(De))break}if(isNaN(De))break}let qe=we+U;_[qe]=s==="avg"?Ie/ze:De}}}}return w}function XE(r,e){let t=ve(e.outShape,"int32"),o=e.strideDepth,n=e.strideHeight,s=e.strideWidth,a=e.dilationDepth,i=e.dilationHeight,l=e.dilationWidth,u=e.effectiveFilterDepth,c=e.effectiveFilterHeight,p=e.effectiveFilterWidth,m=e.padInfo.front,f=e.padInfo.top,d=e.padInfo.left;for(let h=0;h=j&&(j=ie,H=X*c*p+Y*c+te)}}}t.set(H,h,y,C,P,g)}}}return t}function q6(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e;ee(n,"avgPool");let{filterSize:s,strides:a,pad:i,dimRoundingMode:l}=o,u=1;x.assert(N.eitherStridesOrDilationsAreOne(a,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);let c=N.computePool2DInfo(n.shape,s,a,u,i,l),p;if(c.filterWidth===1&&c.filterHeight===1&&x.arraysEqual(c.inShape,c.outShape))p=Ar({inputs:{x:n},backend:t});else{let m=t.data.get(n.dataId).values,f=x.computeStrides(n.shape),d=Mp(m,n.shape,n.dtype,f,c,"avg");p=t.makeTensorInfo(c.outShape,n.dtype,d.values)}return p}var YE={kernelName:Ko,backendName:"cpu",kernelFunc:q6};function K6(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{filterSize:s,strides:a,pad:i,dimRoundingMode:l,dataFormat:u}=o;ee(n,"avgPool3d");let c=N.computePool3DInfo(n.shape,s,a,1,i,l,u),p=t.data.get(n.dataId).values,m=bx(p,n.shape,n.dtype,x.computeStrides(n.shape),c,"avg");return t.makeTensorInfo(m.shape,"float32",m.values)}var ZE={kernelName:ta,backendName:"cpu",kernelFunc:K6};function X6(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,{filterSize:a,strides:i,pad:l,dimRoundingMode:u}=o;ee([n,s],"avgPool3DGrad");let c=N.computePool3DInfo(s.shape,a,i,1,l,u),p=c.strideDepth,m=c.strideHeight,f=c.strideWidth,d=c.filterDepth,h=c.filterHeight,g=c.filterWidth,y=c.dilationDepth,b=c.dilationHeight,w=c.dilationWidth,_=c.effectiveFilterDepth,C=c.effectiveFilterHeight,D=c.effectiveFilterWidth,T=_-1-c.padInfo.front,R=D-1-c.padInfo.left,P=C-1-c.padInfo.top,B=ve(s.shape,"float32"),G=1/(d*h*g),U=t.bufferSync(n);for(let j=0;j=c.outDepth||Math.floor(ae)!==ae))for(let fe=0;fe=c.outHeight||Math.floor(de)!==de))for(let xe=0;xe=c.outWidth||Math.floor(we)!==we)continue;ie+=U.get(j,ae,de,we,H)}}}B.set(ie*G,j,K,X,oe,H)}return t.makeTensorInfo(B.shape,B.dtype,B.values)}var JE={kernelName:Bl,backendName:"cpu",kernelFunc:X6};function Y6(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,a=s;ee([n,s],"avgPoolGrad");let{filterSize:i,strides:l,pad:u}=o,c=N.computePool2DInfo(a.shape,i,l,1,u),p=c.strideHeight,m=c.strideWidth,f=c.filterHeight,d=c.filterWidth,h=c.dilationHeight,g=c.dilationWidth,y=c.effectiveFilterHeight,b=c.effectiveFilterWidth,w=b-1-c.padInfo.left,_=y-1-c.padInfo.top,C=ve(a.shape,"float32"),D=1/(f*d),T=t.data.get(n.dataId).values,R=ve(n.shape,"float32",T);for(let P=0;P=c.outHeight||Math.floor(oe)!==oe))for(let Y=0;Y=c.outWidth||Math.floor(re)!==re)continue;K+=R.get(P,oe,re,B)}}C.set(K*D,P,G,U,B)}return t.makeTensorInfo(C.shape,C.dtype,C.values)}var QE={kernelName:zl,backendName:"cpu",kernelFunc:Y6};function Z6(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,scale:s,offset:a,mean:i,variance:l}=e;x.assert(i.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),x.assert(a==null||i.shape.length===a.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),x.assert(s==null||i.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),ee([n,i,l,s,a],"batchNorm");let{varianceEpsilon:u}=o;u==null&&(u=.001);let c=t.data.get(n.dataId).values,p=t.data.get(i.dataId).values,m=t.data.get(l.dataId).values,f=s?t.data.get(s.dataId).values:new Float32Array([1]),d=a?t.data.get(a.dataId).values:new Float32Array([0]),h=new Float32Array(c.length),g=d.length,y=f.length,b=m.length,w=p.length,_=0,C=0,D=0,T=0;for(let R=0;R=g&&(_=0),C>=w&&(C=0),D>=y&&(D=0),T>=b&&(T=0);return t.makeTensorInfo(n.shape,n.dtype,h)}var e2={kernelName:an,backendName:"cpu",kernelFunc:Z6};function J6(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{blockShape:s,crops:a}=o;ee([n],"batchToSpaceND");let i=s.reduce((y,b)=>y*b),l=N.getReshaped(n.shape,s,i),u=N.getPermuted(l.length,s.length),c=N.getReshapedPermuted(n.shape,s,i),p=N.getSliceBeginCoords(a,s.length),m=N.getSliceSize(c,a,s.length),f=Qe({inputs:{x:n},backend:t,attrs:{shape:l}}),d=tr({inputs:{x:f},backend:t,attrs:{perm:u}}),h=Qe({inputs:{x:d},backend:t,attrs:{shape:c}}),g=ts({inputs:{x:h},backend:t,attrs:{begin:p,size:m}});return t.disposeIntermediateTensorInfo(f),t.disposeIntermediateTensorInfo(d),t.disposeIntermediateTensorInfo(h),g}var t2={kernelName:ra,backendName:"cpu",kernelFunc:J6};function Q6(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,weights:s}=e,{size:a}=o,i=t.data.get(n.dataId).values,l=t.data.get(s.dataId).values,u=Md(i,l,s.dtype,s.shape,a);return t.makeTensorInfo([a],s.dtype,u)}var r2={kernelName:Vl,backendName:"cpu",kernelFunc:Q6};var e5=$e($o,(r,e)=>{let t=e;return r>t.clipValueMax?t.clipValueMax:r{let{x:e}=r.inputs,t=r.backend,o=new Float32Array(x.sizeFromShape(e.shape)),n=t.data.get(e.dataId),s=n.complexTensorInfos.real,a=n.complexTensorInfos.imag,i=t.data.get(s.dataId).values,l=t.data.get(a.dataId).values;for(let u=0;uh.shape),s);if(x.sizeFromShape(a)===0)return t.makeTensorInfo(a,e[0].dtype,[]);let i=e.filter(h=>x.sizeFromShape(h.shape)>0);if(i.length===1)return Ar({inputs:{x:i[0]},backend:t});let l=i.map(h=>h.shape);if(N.assertParamsConsistent(l,s),i[0].dtype==="complex64"){let h=i.map(_=>Zn({inputs:{input:_},backend:t})),g=i.map(_=>ji({inputs:{input:_},backend:t})),y=kl({inputs:h,backend:t,attrs:{axis:s}}),b=kl({inputs:g,backend:t,attrs:{axis:s}}),w=pr({inputs:{real:y,imag:b},backend:t});return h.forEach(_=>t.disposeIntermediateTensorInfo(_)),g.forEach(_=>t.disposeIntermediateTensorInfo(_)),t.disposeIntermediateTensorInfo(y),t.disposeIntermediateTensorInfo(b),w}let u=i.map(h=>{let g=x.sizeFromShape(h.shape.slice(s));return Qe({inputs:{x:h},backend:t,attrs:{shape:[-1,g]}})}),c=u.map(h=>({vals:t.data.get(h.dataId).values,shape:h.shape}));a=N.computeOutShape(u.map(h=>h.shape),1);let p=u[0].shape[0]===1,m=Ld(c,a,e[0].dtype,p),f=N.computeOutShape(i.map(h=>h.shape),s),d=t.makeTensorInfo(f,e[0].dtype,m);return u.forEach(h=>t.disposeIntermediateTensorInfo(h)),d}var i2={kernelName:ls,backendName:"cpu",kernelFunc:kl};function qk(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s}=e,{strides:a,pad:i,dataFormat:l,dilations:u,dimRoundingMode:c}=o;ee([n,s],"conv2d");let p=N.convertConv2DDataFormat(l),m=N.computeConv2DInfo(n.shape,s.shape,a,u,i,c,!1,p),f=m.filterHeight,d=m.filterWidth,h=m.dilationHeight,g=m.dilationWidth,y=m.padInfo.left,b=m.padInfo.top,w=m.dataFormat==="channelsLast",_=new lt(m.outShape,n.dtype),C=x.computeStrides(n.shape),D=x.computeStrides(s.shape),T=C[0],R=w?C[1]:C[2],P=w?C[2]:1,B=w?1:C[1],G=_.strides[0],U=w?_.strides[1]:_.strides[2],j=w?_.strides[2]:1,H=w?1:_.strides[1],K=t.data.get(n.dataId).values,X=t.data.get(s.dataId).values,oe=_.values;for(let Y=0;Y=m.inHeight)continue;let xe=fe*D[0],we=re+de*R;for(let De=0;De=m.inWidth)continue;let Tt=xe+qe*D[1],At=we+it*P,Ue=Tt;for(let ut=0;ut=u.inDepth)continue;let Y=X*P[0],re=G+oe*R[1];for(let te=0;te=u.inHeight)continue;let de=Y+ae*P[1],xe=re+fe*R[2];for(let we=0;we=u.inWidth)continue;let it=de+ze*P[2],Tt=xe+qe*u.inChannels,At=it;for(let Ue=0;UeMath.cos(r)),f2={kernelName:Qo,backendName:"cpu",kernelFunc:a5};var l5=$e(Js,r=>Math.cosh(r)),d2={kernelName:Js,backendName:"cpu",kernelFunc:l5};function u5(r){let{inputs:e,backend:t,attrs:o}=r,{image:n,boxes:s,boxInd:a}=e,{cropSize:i,method:l,extrapolationValue:u}=o,[c,p,m,f]=n.shape,d=s.shape[0],[h,g]=i,y=ve([d,h,g,f],"float32"),b=t.data.get(s.dataId).values,w=t.data.get(a.dataId).values,_=t.data.get(n.dataId).values,C=x.computeStrides(n.shape),D=x.computeStrides(y.shape);for(let T=0;T=c)continue;let H=h>1?(G-P)*(p-1)/(h-1):0,K=g>1?(U-B)*(m-1)/(g-1):0;for(let X=0;X1?P*(p-1)+X*H:.5*(P+G)*(p-1);if(oe<0||oe>p-1){for(let Y=0;Y1?B*(m-1)+ie*K:.5*(B+U)*(m-1);if(le<0||le>m-1){for(let xe=0;xe1?B*(m-1)+Y*K:.5*(B+U)*(m-1);if(re<0||re>m-1){for(let le=0;ley+d-b-1:(y,b)=>y+b;for(let y=0;y`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${a}`),x.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let i=n.shape[0],l=n.shape[1],u=n.shape[2],c=n.shape[3],p=l*s,m=u*s,f=c/(s*s),d=t.data.get(n.dataId).values,h=new Float32Array(i*p*m*f),g=0;for(let y=0;y`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${a} and dilations '${m}'`);let f=N.computeConv2DInfo(n.shape,s.shape,a,m,i,u,!0),{filterHeight:d,filterWidth:h,dilationHeight:g,dilationWidth:y,padInfo:b}=f,w=b.left,_=b.top,C=f.outChannels/f.inChannels,D=new lt(f.outShape,n.dtype),T=t.data.get(n.dataId).values,R=t.data.get(s.dataId).values,P=D.values;for(let B=0;B=f.inHeight)continue;let Y=X*p[0],re=G+oe*c[1];for(let te=0;te=f.inWidth)continue;let de=Y+ae*p[1],xe=re+fe*f.inChannels,we=ie,De=de;for(let Ie=0;Ie{let{x:o,filter:n}=r,{strides:s,pad:a,dilations:i}=t,l=e,u=l.data.get(o.dataId).values,c=o.shape.length,p=l.data.get(n.dataId).values,m=n.shape.length,{batchSize:f,inHeight:d,inWidth:h,inChannels:g,outHeight:y,outWidth:b,padInfo:w,strideHeight:_,strideWidth:C,filterHeight:D,filterWidth:T,dilationHeight:R,dilationWidth:P,outShape:B}=N.computeDilation2DInfo(o.shape,n.shape,s,a,"NHWC",i),G=x.sizeFromShape(B),U=B.length,j=x.getArrayFromDType(o.dtype,G);for(let K=0;K=0&&fe=0&&xeie&&(ie=Ie)}}}let le=x.locToIndex([K,X,Y,te],U,x.computeStrides(B));j[le]=ie}}}return{dataId:l.write(x.toTypedArray(j,o.dtype),B,o.dtype),shape:B,dtype:o.dtype}}};var C2={kernelName:Dc,backendName:"cpu",kernelFunc:({inputs:r,backend:e,attrs:t})=>{let{x:o,filter:n,dy:s}=r,{strides:a,pad:i,dilations:l}=t,u=e,c=x.toNestedArray(o.shape,u.data.get(o.dataId).values),p=x.toNestedArray(n.shape,u.data.get(n.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:y,padInfo:b,strideHeight:w,strideWidth:_,filterHeight:C,filterWidth:D,dilationHeight:T,dilationWidth:R,outShape:P}=N.computeDilation2DInfo(o.shape,n.shape,a,i,"NHWC",l);x.assert(s.rank===P.length,()=>`Error in ${Dc}, dy must have the same rank as output ${P.length}, but got ${s.rank}`);let B=x.toNestedArray(P,u.data.get(s.dataId).values),G=x.makeZerosNestedTypedArray(n.shape,n.dtype);for(let j=0;j=0&&ae=0&&dere&&(re=xe,te=le,ie=fe)}}}G[te][ie][Y]+=B[j][H][X][Y]}}}return{dataId:u.write(x.toTypedArray(G,o.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};var I2={kernelName:Ec,backendName:"cpu",kernelFunc:({inputs:r,backend:e,attrs:t})=>{let{x:o,filter:n,dy:s}=r,{strides:a,pad:i,dilations:l}=t,u=e,c=x.toNestedArray(o.shape,u.data.get(o.dataId).values),p=x.toNestedArray(n.shape,u.data.get(n.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:y,padInfo:b,strideHeight:w,strideWidth:_,filterHeight:C,filterWidth:D,dilationHeight:T,dilationWidth:R,outShape:P}=N.computeDilation2DInfo(o.shape,n.shape,a,i,"NHWC",l);x.assert(s.rank===P.length,()=>`Error in ${Ec}, dy must have the same rank as output ${P.length}, but got ${s.rank}`);let B=x.toNestedArray(P,u.data.get(s.dataId).values),G=x.makeZerosNestedTypedArray(o.shape,o.dtype);for(let j=0;j=0&&ae=0&&dere&&(re=xe,te=ae,ie=de)}}}G[j][te][ie][Y]+=B[j][H][X][Y]}}}return{dataId:u.write(x.toTypedArray(G,o.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};function g5(r){let{inputs:e,backend:t}=r,{dy:o,y:n}=e;ee([o,n],"eluGrad");let s=new Float32Array(x.sizeFromShape(n.shape)),a=t.data.get(n.dataId).values,i=t.data.get(o.dataId).values;for(let l=0;l=1?s[l]=i[l]:s[l]=i[l]*(u+1)}return t.makeTensorInfo(n.shape,"float32",s)}var N2={kernelName:Yl,backendName:"cpu",kernelFunc:g5};var x5=Ke((r,e)=>r===e?1:0),Xk=et(oi,x5,null,"bool"),S2={kernelName:oi,backendName:"cpu",kernelFunc:Xk};var y5=N.ERF_P,b5=N.ERF_A1,w5=N.ERF_A2,_5=N.ERF_A3,k5=N.ERF_A4,v5=N.ERF_A5,C5=$e(ri,r=>{let e=Math.sign(r),t=Math.abs(r),o=1/(1+y5*t);return e*(1-((((v5*o+k5)*o+_5)*o+w5)*o+b5)*o*Math.exp(-t*t))}),T2={kernelName:ri,backendName:"cpu",kernelFunc:C5};function Lp(r){let{inputs:e,backend:t,attrs:o}=r,{input:n}=e,{dim:s}=o,a=n.shape.length,i=n.shape.slice(),l=s;return s<0&&(x.assert(-(a+1)<=s,()=>`Axis must be in the interval [${-(a+1)}, ${a}]`),l=a+s+1),i.splice(l,0,1),Qe({inputs:{x:n},backend:t,attrs:{shape:i}})}var A2={kernelName:us,backendName:"cpu",kernelFunc:Lp};var I5=Ke((r,e)=>r/e),Ud=et(rn,I5),jd={kernelName:rn,backendName:"cpu",kernelFunc:Ud};function wx(r,e,t){let o=r.shape,n=o[0],s=o[1],a=t.data.get(r.dataId),i=a.complexTensorInfos.real,l=a.complexTensorInfos.imag,u=[n,s],c=x.sizeFromShape(u),p=x.getTypedArrayFromDType("float32",c),m=x.getTypedArrayFromDType("float32",c);for(let g=0;g{let{image:o}=r,n=t,s=x.getTypedArrayFromDType(o.dtype,x.sizeFromShape(o.shape)),[a,i,l,u]=o.shape,c=n.data.get(o.dataId).values;for(let m=0;m=0&&CMath.floor(r/e)),$5=et(sn,D5,null,"int32"),R2={kernelName:sn,backendName:"cpu",kernelFunc:$5};function R5(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=o,h=qk({inputs:{x:n,filter:s},backend:t,attrs:{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:m}});if(a){let g=h;h=za({inputs:{a:h,b:a},backend:t}),t.disposeIntermediateTensorInfo(g)}if(f){let g=h;h=Pp(t,h,f,i,d),t.disposeIntermediateTensorInfo(g)}return h}var F2={kernelName:_s,backendName:"cpu",kernelFunc:R5};function F5(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=o,h=Kk({inputs:{x:n,filter:s},backend:t,attrs:{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:m}});if(a){let g=h;h=za({inputs:{a:h,b:a},backend:t}),t.disposeIntermediateTensorInfo(g)}if(f){let g=h;h=Pp(t,h,f,i,d),t.disposeIntermediateTensorInfo(g)}return h}var O2={kernelName:ks,backendName:"cpu",kernelFunc:F5};function O5(r){let{inputs:e,backend:t}=r,{params:o,indices:n}=e,s=x.sizeFromShape(o.shape),a=n.shape,i=a[a.length-1],[l,u,c,p]=N.prepareAndValidate(o,n);if(u===0)return t.makeTensorInfo(l,o.dtype,[]);let m=ve([u,c],o.dtype),f=t.data.get(n.dataId).values,d=t.data.get(o.dataId).values;for(let h=0;h=s/c)throw new Error(`Invalid indices: ${g} does not index into ${o.shape}`);for(let b=0;br>=e?1:0),L5=et(ln,M5,null,"bool"),L2={kernelName:ln,backendName:"cpu",kernelFunc:L5};function z5(r){let{inputs:e,backend:t}=r,{input:o}=e,n=x.sizeFromShape(o.shape),s=o.shape[o.shape.length-1],a=n/s,i=Qe({inputs:{x:o},backend:t,attrs:{shape:[a,s]}}),l=wx(i,!0,t),u=Qe({inputs:{x:l},backend:t,attrs:{shape:o.shape}});return t.disposeIntermediateTensorInfo(i),t.disposeIntermediateTensorInfo(l),u}var z2={kernelName:Jl,backendName:"cpu",kernelFunc:z5};var B5=$e(li,r=>Number.isFinite(r)?1:0,"bool"),B2={kernelName:li,backendName:"cpu",kernelFunc:B5};var V5=$e(ui,r=>Math.abs(r)===Infinity?1:0,"bool"),V2={kernelName:ui,backendName:"cpu",kernelFunc:V5};var G5=$e(ci,r=>Number.isNaN(r)?1:0,"bool"),G2={kernelName:ci,backendName:"cpu",kernelFunc:G5};var W5=Ke((r,e)=>r<=e?1:0),U5=et(mi,W5,null,"bool"),W2={kernelName:mi,backendName:"cpu",kernelFunc:U5};function j5(r){let{backend:e,attrs:t}=r,{start:o,stop:n,num:s}=t,a=Fk(o,n,s);return e.makeTensorInfo([a.length],"float32",a)}var U2={kernelName:eu,backendName:"cpu",kernelFunc:j5};var H5=$e(fi,r=>Math.log1p(r)),j2={kernelName:fi,backendName:"cpu",kernelFunc:H5};var q5=Ke((r,e)=>r&&e),K5=et(di,q5,null,"bool"),H2={kernelName:di,backendName:"cpu",kernelFunc:K5};var X5=$e(Ya,r=>r?0:1,"bool"),q2={kernelName:Ya,backendName:"cpu",kernelFunc:X5};var Y5=Ke((r,e)=>r||e),Z5=et(Za,Y5,null,"bool"),K2={kernelName:Za,backendName:"cpu",kernelFunc:Z5};function J5(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{depthRadius:s,bias:a,alpha:i,beta:l}=o;ee(n,"LRN");let u=n.shape[3],c=u-1,p=t.data.get(n.dataId).values,m=x.sizeFromShape(n.shape),f=new Float32Array(m);function d(h){let g=h%u,y=h-g+Math.max(0,g-s),b=h-g+Math.min(g+s,c),w=0;for(;y<=b;y++){let _=p[y];w+=_*_}return w}for(let h=0;h`Error in maxPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);let c=N.computePool2DInfo(n.shape,s,a,u,i,l),p;if(c.filterWidth===1&&c.filterHeight===1&&x.arraysEqual(c.inShape,c.outShape))p=Ar({inputs:{x:n},backend:t});else{let m=t.data.get(n.dataId).values,f=x.computeStrides(n.shape),d=Mp(m,n.shape,n.dtype,f,c,"max");p=t.makeTensorInfo(c.outShape,n.dtype,d.values)}return p}var J2={kernelName:fn,backendName:"cpu",kernelFunc:eX};function tX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{filterSize:s,strides:a,pad:i,dimRoundingMode:l,dataFormat:u}=o;ee(n,"maxPool3d");let c=N.computePool3DInfo(n.shape,s,a,1,i,l,u),p=t.data.get(n.dataId).values,m=bx(p,n.shape,n.dtype,x.computeStrides(n.shape),c,"max");return t.makeTensorInfo(m.shape,"float32",m.values)}var Q2={kernelName:la,backendName:"cpu",kernelFunc:tX};function rX(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,{filterSize:a,strides:i,pad:l,dimRoundingMode:u}=o;ee([n,s],"maxPool3DGrad");let c=N.computePool3DInfo(s.shape,a,i,1,l,u),p=t.bufferSync(s),m=XE(p,c),f=c.strideDepth,d=c.strideHeight,h=c.strideWidth,g=c.dilationDepth,y=c.dilationHeight,b=c.dilationWidth,w=c.effectiveFilterDepth,_=c.effectiveFilterHeight,C=c.effectiveFilterWidth,D=w-1-c.padInfo.front,T=C-1-c.padInfo.left,R=_-1-c.padInfo.top,P=ve(s.shape,"float32"),B=t.bufferSync(n);for(let G=0;G=c.outDepth||Math.floor(ie)!==ie))for(let le=0;le<_;le+=y){let ae=(oe+le)/d;if(!(ae<0||ae>=c.outHeight||Math.floor(ae)!==ae))for(let fe=0;fe=c.outWidth||Math.floor(de)!==de)continue;let xe=w*_*C-1-m.get(G,ie,ae,de,U),we=te*_*C+le*C+fe,De=xe===we?1:0;if(De===0)continue;re+=B.get(G,ie,ae,de,U)*De}}}P.set(re,G,j,H,K,U)}return t.makeTensorInfo(P.shape,P.dtype,P.values)}var eD={kernelName:ou,backendName:"cpu",kernelFunc:rX};function oX(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s,output:a}=e,i=s;ee([s,a],"maxPoolGrad");let{filterSize:l,strides:u,pad:c,dimRoundingMode:p}=o,m=N.computePool2DInfo(i.shape,l,u,1,c,p),f=t.data.get(i.dataId).values,d=ve(m.outShape,i.dtype,yx(f,i.shape,i.dtype,m).values),h=m.strideHeight,g=m.strideWidth,y=m.dilationHeight,b=m.dilationWidth,w=m.effectiveFilterHeight,_=m.effectiveFilterWidth,C=_-1-m.padInfo.left,D=w-1-m.padInfo.top,T=ve(i.shape,"float32"),R=t.data.get(n.dataId).values,P=ve(n.shape,"float32",R);for(let B=0;B=m.outHeight||Math.floor(Y)!==Y))for(let re=0;re<_;re+=b){let te=(K+re)/g;if(te<0||te>=m.outWidth||Math.floor(te)!==te)continue;let ie=w*_-1-d.get(B,Y,te,G),le=oe*_+re,ae=ie===le?1:0;if(ae===0)continue;X+=P.get(B,Y,te,G)*ae}}T.set(X,B,U,j,G)}return t.makeTensorInfo(T.shape,T.dtype,T.values)}var tD={kernelName:ru,backendName:"cpu",kernelFunc:oX};function rD(r,e,t,o,n){let s=x.computeStrides(e),a=Mp(r,e,t,s,n,"max"),i=yx(r,e,t,n,!0,o);return[a.values,i.values]}var oD={kernelName:nu,backendName:"cpu",kernelFunc:({inputs:r,attrs:e,backend:t})=>{let{x:o}=r,{filterSize:n,strides:s,pad:a,includeBatchInIndex:i}=e,l=t;ee(o,"MaxPoolWithArgmax");let u=l.data.get(o.dataId).values,c=N.computePool2DInfo(o.shape,n,s,[1,1],a),[p,m]=rD(u,o.shape,o.dtype,i,c),f=l.write(p,c.outShape,o.dtype),d=l.write(m,c.outShape,o.dtype);return[{dataId:f,shape:c.outShape,dtype:o.dtype},{dataId:d,shape:c.outShape,dtype:"int32"}]}};function tc(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o;ee(n,"sum");let i;n.dtype==="bool"?i=Jn({inputs:{x:n},backend:t,attrs:{dtype:"int32"}}):i=Ar({inputs:{x:n},backend:t});let l=i.shape.length,u=x.parseAxisParam(s,i.shape),c=N.getAxesPermutation(u,l),p=u,m=i;c!=null&&(m=tr({inputs:{x:i},backend:t,attrs:{perm:c}}),p=N.getInnerMostAxes(p.length,l)),N.assertAxesAreInnerMostDims("sum",p,m.shape.length);let[f,d]=N.computeOutAndReduceShapes(m.shape,p),h=N.upcastType(m.dtype,"int32"),g=Fp(t,f,h),y=x.sizeFromShape(d),b=t.data.get(g.dataId).values,w=t.data.get(m.dataId).values;for(let _=0;_t.disposeIntermediateTensorInfo(g)),h}var sD={kernelName:dn,backendName:"cpu",kernelFunc:nX};function sX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o;ee(n,"min");let i=x.parseAxisParam(s,n.shape),l=i,u=N.getAxesPermutation(l,n.shape.length),c=n;u!=null&&(c=tr({inputs:{x:n},backend:t,attrs:{perm:u}}),l=N.getInnerMostAxes(l.length,n.shape.length)),N.assertAxesAreInnerMostDims("min",l,c.shape.length);let[p,m]=N.computeOutAndReduceShapes(c.shape,l),f=x.sizeFromShape(m),d=x.makeZerosTypedArray(x.sizeFromShape(p),c.dtype),h=t.data.get(c.dataId).values;for(let y=0;yw[0]+n.shape[_]+w[1]),l=s.map(w=>w[0]),u=s.map((w,_)=>w[0]+n.shape[_]),c=a==="reflect"?0:1,p=t.data.get(n.dataId).values,m=n.shape.length,f=x.computeStrides(n.shape),d=x.sizeFromShape(i),h=i.length,g=x.computeStrides(i),y=x.getTypedArrayFromDType(n.dtype,d);for(let w=0;w=u[D]&&(_[D]=(u[D]-1)*2-_[D]+c);_=_.map((D,T)=>D-l[T]);let C=x.locToIndex(_,m,f);y[w]=p[C]}return{dataId:t.write(y,i,n.dtype),shape:i,dtype:n.dtype}}var aD={kernelName:ua,backendName:"cpu",kernelFunc:iX};var aX=Ke((r,e)=>{let t=r%e;return r<0&&e<0||r>=0&&e>=0?t:(t+e)%e}),lX=et(hi,aX),lD={kernelName:hi,backendName:"cpu",kernelFunc:lX};var cD=Ic(zm());function Jk(r){let{inputs:e,backend:t,attrs:o}=r,{logits:n}=e,{dim:s}=o,a=n.shape.length,i=s;if(i===-1&&(i=a-1),i!==a-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${a} and dim was ${i}`);let l=x.parseAxisParam([i],n.shape),u=Zk({inputs:{x:n},backend:t,attrs:{reductionIndices:l,keepDims:!1}}),c=N.expandShapeToKeepDim(u.shape,l),p=Qe({inputs:{x:u},backend:t,attrs:{shape:c}}),m=Wd({inputs:{a:n,b:p},backend:t}),f=$k({inputs:{x:m},backend:t}),d=tc({inputs:{x:f},backend:t,attrs:{axis:l,keepDims:!1}}),h=Qe({inputs:{x:d},backend:t,attrs:{shape:c}}),g=Ud({inputs:{a:f,b:h},backend:t});return t.disposeIntermediateTensorInfo(u),t.disposeIntermediateTensorInfo(p),t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(f),t.disposeIntermediateTensorInfo(d),t.disposeIntermediateTensorInfo(h),g}var uD={kernelName:$n,backendName:"cpu",kernelFunc:Jk};function uX(r){let{inputs:e,backend:t,attrs:o}=r,{logits:n}=e,{numSamples:s,seed:a,normalized:i}=o;ee(n,"multinomial");let l=i?n:Jk({inputs:{logits:n},backend:t,attrs:{dim:-1}}),u=l.shape[0],c=l.shape[1],p=t.data.get(l.dataId).values,m=[u,s],f=x.makeZerosTypedArray(x.sizeFromShape(m),"int32");for(let d=0;d=0&&c[p]{x.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),x.assert(a===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let i=[],l=e.map(c=>{let p=Lp({inputs:{input:c},backend:t,attrs:{dim:n}});return i.push(p),p}),u=kl({inputs:l,backend:t,attrs:{axis:n}});return i.forEach(c=>t.disposeIntermediateTensorInfo(c)),u}var bD={kernelName:fs,backendName:"cpu",kernelFunc:Qk};function xX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{paddings:s,constantValue:a}=o;ee(n,"pad");let i=s.map((b,w)=>b[0]+n.shape[w]+b[1]),l=s.map(b=>b[0]),u=t.data.get(n.dataId).values,c=x.sizeFromShape(n.shape),p=n.shape.length,m=x.computeStrides(n.shape),f=x.sizeFromShape(i),d=i.length,h=x.computeStrides(i),g=x.getTypedArrayFromDType(n.dtype,f);a!==0&&g.fill(a);for(let b=0;bD+l[T]),C=x.locToIndex(_,d,h);g[C]=u[b]}return{dataId:t.write(g,i,n.dtype),shape:i,dtype:n.dtype}}var _x={kernelName:bn,backendName:"cpu",kernelFunc:xX};var yX=Ke((r,e)=>Math.pow(r,e)),bX=et(wn,yX),wD={kernelName:wn,backendName:"cpu",kernelFunc:bX};function wX(r){let{backend:e,attrs:t}=r,{start:o,stop:n,dtype:s,step:a}=t,i=Vd(o,n,a,s);return e.makeTensorInfo([i.length],s,i)}var _D={kernelName:ca,backendName:"cpu",kernelFunc:wX};var _X=$e(_i,r=>1/r),kD={kernelName:_i,backendName:"cpu",kernelFunc:_X};function kX(r){let{inputs:e,backend:t,attrs:o}=r,{images:n}=e,{alignCorners:s,halfPixelCenters:a,size:i}=o;ee(n,"resizeBilinear");let l=x.computeStrides(n.shape),[u,c]=i,[p,m,f,d]=n.shape,h=t.data.get(n.dataId).values,g=new Float32Array(x.sizeFromShape([p,u,c,d])),y=[s&&u>1?m-1:m,s&&c>1?f-1:f],b=[s&&u>1?u-1:u,s&&c>1?c-1:c],w=0,_=y[0]/b[0],C=y[1]/b[1];for(let D=0;D1?u-1:u,a&&f>1?c-1:c],g=[a&&m>1?m-1:m,a&&f>1?f-1:f],y=h[0]/g[0],b=h[1]/g[1],w=t.data.get(s.dataId).values,_=0;for(let C=0;C1?m-1:m,s&&c>1?f-1:f],b=[s&&u>1?u-1:u,s&&c>1?c-1:c],w=y[0]/b[0],_=y[1]/b[1],C=0;for(let D=0;D1?c-1:c,a&&d>1?p-1:p],b=[a&&f>1?f-1:f,a&&d>1?d-1:d],w=y[0]/b[0],_=y[1]/b[1],C=1/w,D=1/_,T=Math.ceil(C)*2+2,R=Math.ceil(D)*2+2;for(let P=0;P=f)continue;let ae=B+le*l[1],fe=le*w,de=Math.min(c-1,a?Math.round(fe):Math.floor(fe));if(G===de)for(let xe=0;xe=d)continue;let De=ae+we*l[2],Ie=we*_,ze=Math.min(p-1,a?Math.round(Ie):Math.floor(Ie));K===ze&&(te+=g[De+re])}}h[X+re]=te}}}}return t.makeTensorInfo(n.shape,n.dtype,h)}var ND={kernelName:au,backendName:"cpu",kernelFunc:IX};function NX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{dims:s}=o;ee(n,"reverse");let a=n.shape.length,i=x.parseAxisParam(s,n.shape);if(a===0)return Ar({inputs:{x:n},backend:t});let l=new lt(n.shape,n.dtype),u=t.bufferSync(n);for(let c=0;cm[f]=n.shape[f]-1-m[f]),l.set(u.get(...m),...p)}return t.makeTensorInfo(l.shape,l.dtype,l.values)}var SD={kernelName:In,backendName:"cpu",kernelFunc:NX};var TD={kernelName:Ei,backendName:"cpu",kernelFunc:({inputs:r,attrs:e,backend:t})=>{let{image:o}=r,{radians:n,fillValue:s,center:a}=e,i=t,l=x.getTypedArrayFromDType(o.dtype,x.sizeFromShape(o.shape)),[u,c,p,m]=o.shape,[f,d]=N.getImageCenter(a,c,p),h=255,g=Math.sin(n),y=Math.cos(n),b=i.data.get(o.dataId).values;for(let _=0;_=0&&H=0&&K{let e=Math.floor(r);return r-e<.5?Math.floor(r):r-e>.5?Math.ceil(r):e%2==0?e:e+1}),AD={kernelName:Nn,backendName:"cpu",kernelFunc:SX};function kx(r,e,t,o,n,s,a,i,l,u){let c=[o/n,n],p=r.values,m=e.values;if(o===0)return ve(t,e.dtype);let f=ve(c,e.dtype);f.values.fill(l);for(let d=0;d=o/n)throw new Error(`Invalid indices: ${h} does not index into ${t}`);for(let y=0;y1||n.shape.length===1?1:x.sizeFromShape(n.shape.slice(1));for(let d=0;dr>=0?DX*r:EX*(Math.exp(r)-1)),$D={kernelName:vi,backendName:"cpu",kernelFunc:$X};var RX=$e(An,r=>1/(1+Math.exp(-r))),RD={kernelName:An,backendName:"cpu",kernelFunc:RX};var FX=$e(Ii,r=>r<0?-1:r>0?1:0),FD={kernelName:Ii,backendName:"cpu",kernelFunc:FX};var OX=$e(Tn,r=>Math.sin(r)),OD={kernelName:Tn,backendName:"cpu",kernelFunc:OX};var PX=$e(Ci,r=>Math.sinh(r)),PD={kernelName:Ci,backendName:"cpu",kernelFunc:PX};var MX=11920928955078125e-23,MD=Math.log(MX)+2,LX=$e(Ni,r=>{let e=r>-MD,t=r{let m=[...c];m[i]=p;let f=ts({inputs:{x:n},backend:t,attrs:{begin:u,size:m}});return u[i]+=p,f})}var VD={kernelName:xs,backendName:"cpu",kernelFunc:VX};var GX=$e(En,r=>Math.sqrt(r)),GD={kernelName:En,backendName:"cpu",kernelFunc:GX};var WD={kernelName:fa,backendName:"cpu",kernelFunc:({inputs:r,backend:e})=>{let{x:t}=r,o=e;ee(t,"square");let n=o.data.get(t.dataId).values,s=new Float32Array(n.length);for(let i=0;i{let t=e;return isNaN(r)?NaN:r>0?1:t.alpha}),UD={kernelName:Fo,backendName:"cpu",kernelFunc:WX};function UX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{begin:s,end:a,strides:i,beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=o;ee(n,"stridedSlice");let{nonStrided:f,$begin:d,$strides:h,size:g,newShape:y,outShape:b}=nr.sliceInfo(n.shape,s,a,i,l,u,c,p,m),w=Qe({inputs:{x:n},backend:t,attrs:{shape:y}}),_;if(f){let D=ts({inputs:{x:w},backend:t,attrs:{begin:d,size:g}});_=Qe({inputs:{x:D},backend:t,attrs:{shape:b}}),t.disposeIntermediateTensorInfo(D)}else if(b.some(D=>D===0))_=t.makeTensorInfo(b,n.dtype,[]);else{let D=t.bufferSync(w),T=Pk(b,D,h,d);_=t.makeTensorInfo(T.shape,T.dtype,T.values)}let C=Qe({inputs:{x:_},backend:t,attrs:{shape:b}});return t.disposeIntermediateTensorInfo(w),t.disposeIntermediateTensorInfo(_),C}var jD={kernelName:Si,backendName:"cpu",kernelFunc:UX};var jX=$e(Ti,r=>Math.tan(r)),HD={kernelName:Ti,backendName:"cpu",kernelFunc:jX};var HX=$e(On,r=>Math.tanh(r)),qD={kernelName:On,backendName:"cpu",kernelFunc:HX};function qX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{reps:s}=o;ee(n,"tile");let a=Mk(t.bufferSync(n),s);return t.makeTensorInfo(a.shape,a.dtype,a.values)}var KD={kernelName:_o,backendName:"cpu",kernelFunc:qX};function KX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{k:s,sorted:a}=o;ee(n,"topk");let i=t.data.get(n.dataId).values,[l,u]=Lk(i,n.shape,n.dtype,s,a);return[t.makeTensorInfo(l.shape,l.dtype,l.values),t.makeTensorInfo(u.shape,u.dtype,u.values)]}var XD={kernelName:Ai,backendName:"cpu",kernelFunc:KX};function XX(r){let{inputs:e,attrs:t,backend:o}=r,{axis:n}=t,{x:s}=e;ee(s,"unique");let a=o.data.get(s.dataId).values,{outputValues:i,outputShape:l,indices:u}=zk(a,n,s.shape,s.dtype);return[o.makeTensorInfo(l,s.dtype,i),o.makeTensorInfo([u.length],"int32",u)]}var YD={kernelName:cu,backendName:"cpu",kernelFunc:XX};function YX(r){let{inputs:e,backend:t,attrs:o}=r,{value:n}=e,{axis:s}=o;s<0&&(s+=n.shape.length);let a=n.shape.length,i=n.shape[s],l=new Array(a-1),u=0;for(let f=0;ft.disposeIntermediateTensorInfo(d)),f}var JD={kernelName:da,backendName:"cpu",kernelFunc:ZX};var JX=[PE,GA,ME,LE,KA,zE,BE,VE,GE,WE,UE,jE,HE,qE,KE,YE,ZE,JE,QE,OE,e2,t2,r2,HA,YA,o2,WA,n2,i2,l2,u2,a2,p2,m2,c2,f2,d2,h2,g2,x2,y2,b2,w2,_2,k2,v2,I2,C2,jd,AE,N2,S2,T2,JA,A2,eE,E2,D2,$2,rE,R2,F2,O2,P2,M2,nE,L2,UA,z2,s2,B2,V2,G2,EE,iE,W2,U2,lE,j2,H2,q2,K2,X2,Y2,cE,J2,Q2,eD,tD,oD,Z2,sD,iD,mE,aD,lD,pD,fE,hE,mD,fD,dD,xE,hD,yD,bD,_x,wD,DE,wE,_D,jA,kD,$E,RE,FE,vD,CD,ID,ND,SD,TD,AD,kE,ED,DD,$D,RD,FD,OD,PD,vE,uD,LD,zD,BD,VD,GD,WD,IE,UD,jD,SE,nD,HD,qD,KD,XD,yE,YD,ZD,JD,gD];for(let r of JX)Ja(r);var rc={},ev={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function QD(r,e){rc[r]=e}function Go(r){if(!(r in rc)){let t=QX(r);if(t!==null)rc[r]=t;else return console.log("Could not get context for WebGL version",r),null}let e=rc[r];return e.isContextLost()?(delete rc[r],Go(r)):(e.disable(e.DEPTH_TEST),e.disable(e.STENCIL_TEST),e.disable(e.BLEND),e.disable(e.DITHER),e.disable(e.POLYGON_OFFSET_FILL),e.disable(e.SAMPLE_COVERAGE),e.enable(e.SCISSOR_TEST),e.enable(e.CULL_FACE),e.cullFace(e.BACK),rc[r])}function e8(r){if(typeof OffscreenCanvas!="undefined"&&r===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function QX(r){if(r!==1&&r!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let e=e8(r);return e.addEventListener("webglcontextlost",t=>{t.preventDefault(),delete rc[r]},!1),r===1?e.getContext("webgl",ev)||e.getContext("experimental-webgl",ev):e.getContext("webgl2",ev)}var vl;(function(r){r[r.DENSE=0]="DENSE",r[r.SHARED_BATCH=1]="SHARED_BATCH"})(vl||(vl={}));var Er;(function(r){r[r.RENDER=0]="RENDER",r[r.UPLOAD=1]="UPLOAD",r[r.PIXELS=2]="PIXELS",r[r.DOWNLOAD=3]="DOWNLOAD"})(Er||(Er={}));var _r;(function(r){r[r.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",r[r.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",r[r.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",r[r.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",r[r.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(_r||(_r={}));function oc(r,e){return[e,r]}function e$(r,e){return r*e}function Cl(r){let e=x.sizeFromShape(r),t=Math.ceil(e/4);return x.sizeToSquarishShape(t)}function Hi(r,e){return[Math.max(1,Math.ceil(e/2)),Math.max(1,Math.ceil(r/2))]}function t$(r,e){let[t,o]=Hi(r,e);return t*o*4}function Kd(r,e){let t=r,o,n,s,a,i,l,u,c,p,m;return W().getNumber("WEBGL_VERSION")===2?(o=t.R32F,n=t.R16F,s=t.RGBA16F,a=t.RGBA32F,i=t.RED,u=4,c=1,p=t.HALF_FLOAT,m=t.FLOAT):(o=r.RGBA,n=r.RGBA,s=r.RGBA,a=t.RGBA,i=r.RGBA,u=4,c=4,p=e!=null?e.HALF_FLOAT_OES:null,m=r.FLOAT),l=r.RGBA,{internalFormatFloat:o,internalFormatHalfFloat:n,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:a,textureFormatFloat:i,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:c,textureTypeHalfFloat:p,textureTypeFloat:m}}function Ae(r,e){let t=e();return W().getBool("DEBUG")&&t8(r),t}function t8(r){let e=r.getError();if(e!==r.NO_ERROR)throw new Error("WebGL Error: "+r8(r,e))}var o8=596e-10,n8=65504;function r$(r){return!!(W().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||r===0||o8r.getExtension(e),'Extension "'+e+'" not supported on this browser.')}function o$(r,e){let t=Ba(r,()=>r.createShader(r.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(Ae(r,()=>r.shaderSource(t,e)),Ae(r,()=>r.compileShader(t)),r.getShaderParameter(t,r.COMPILE_STATUS)===!1)throw console.log(r.getShaderInfoLog(t)),new Error("Failed to compile vertex shader.");return t}function n$(r,e){let t=Ba(r,()=>r.createShader(r.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(Ae(r,()=>r.shaderSource(t,e)),Ae(r,()=>r.compileShader(t)),r.getShaderParameter(t,r.COMPILE_STATUS)===!1)throw s8(e,r.getShaderInfoLog(t)),new Error("Failed to compile fragment shader.");return t}var i8=/ERROR: [0-9]+:([0-9]+):/g;function s8(r,e){let t=i8.exec(e);if(t==null){console.log(`Couldn't parse line number in error: ${e}`),console.log(r);return}let o=+t[1],n=r.split(` -`),s=n.length.toString().length+2,a=n.map((p,m)=>x.rightPad((m+1).toString(),s)+p),i=0;for(let p=0;p0&&y.isString(o[0])){let s=o.map(a=>y.encodeString(a));n=this.write(s,e,t)}else n=this.write(o,e,t);return{dataId:n,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,o,n,s){this.data.set(e,{values:t,dtype:n,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:o}=this.data.get(e);if(t==="complex64"){let n=this.readSync(o.real.dataId),s=this.readSync(o.imag.dataId);return S.mergeRealAndImagArrays(n,s)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId),o=t;if(e.dtype==="string")try{o=t.map(n=>y.decodeString(n))}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return ve(e.shape,e.dtype,o)}makeOutput(e,t,o){let n=this.write(e,t,o);return Po().makeTensorFromDataId(n,t,o,this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;let{complexTensorInfos:o}=this.data.get(e);o!=null&&(this.disposeData(o.real.dataId,!0),this.disposeData(o.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){let t=y.now();return e(),{kernelMs:y.now()-t}}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(e){te([e],"where");let t=this.readSync(e.dataId);return I5(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Pp.nextDataId=0;var Qk={};Je(Qk,{addImpl:()=>AE,bincountImpl:()=>zd,bincountReduceImpl:()=>Uk,ceilImpl:()=>DE,concatImpl:()=>Bd,expImpl:()=>RE,expm1Impl:()=>OE,floorImpl:()=>ME,gatherV2Impl:()=>Hk,greaterImpl:()=>zE,lessImpl:()=>VE,linSpaceImpl:()=>qk,logImpl:()=>WE,maxImpl:()=>Kk,maximumImpl:()=>jE,minimumImpl:()=>qE,multiplyImpl:()=>kx,negImpl:()=>YE,notEqualImpl:()=>JE,prodImpl:()=>t2,rangeImpl:()=>Wd,rsqrtImpl:()=>o2,simpleAbsImpl:()=>vE,sliceImpl:()=>Ud,squaredDifferenceImpl:()=>i2,stridedSliceImpl:()=>Xk,subImpl:()=>l2,tileImpl:()=>Yk,topKImpl:()=>Zk,transposeImpl:()=>Gd,uniqueImpl:()=>Jk});function vE(r){let e=new Float32Array(r.length);for(let t=0;t{let{x:e}=r.inputs,t=r.backend;te(e,"abs");let o=new Float32Array(y.sizeFromShape(e.shape)),n=t.data.get(e.dataId).values;return o=vE(n),t.makeOutput(o,e.shape,"float32")},CE={kernelName:as,backendName:"cpu",kernelFunc:N5};function Ke(r){return(e,t,o,n,s)=>{let a=S.assertAndGetBroadcastShape(e,t),i=a.length,l=y.computeStrides(a),u=y.sizeFromShape(a),c=y.getTypedArrayFromDType(s,u),p=e.length,m=t.length,f=y.computeStrides(e),d=y.computeStrides(t),h=S.getBroadcastDims(e,a),g=S.getBroadcastDims(t,a);if(h.length+g.length===0)for(let x=0;xb[N]=0);let _=y.locToIndex(b,p,f),k=w.slice(-m);g.forEach(N=>k[N]=0);let A=y.locToIndex(k,m,d);c[x]=r(o[_],n[A])}return[c,a]}}function mr(r){let{inputs:e,backend:t}=r,{real:o,imag:n}=e,s=t.data.get(o.dataId).values,a=t.data.get(n.dataId).values,i=t.makeTensorInfo(o.shape,"complex64"),l=t.data.get(i.dataId);return l.complexTensorInfos={real:t.makeTensorInfo(o.shape,"float32",s),imag:t.makeTensorInfo(n.shape,"float32",a)},i}var IE={kernelName:Gl,backendName:"cpu",kernelFunc:mr};function Mp(r,e,t="float32"){if(t==="complex64"){let n=Mp(r,e,"float32"),s=Mp(r,e,"float32");return mr({inputs:{real:n,imag:s},backend:r})}let o=y.makeZerosTypedArray(y.sizeFromShape(e),t);return r.makeTensorInfo(e,t,o)}function Er(r){let{inputs:e,backend:t}=r,{x:o}=e;return t.incRef(o.dataId),{dataId:o.dataId,shape:o.shape,dtype:o.dtype}}var NE={kernelName:Ro,backendName:"cpu",kernelFunc:Er};function Zn(r){let{inputs:e,backend:t}=r,{input:o}=e,n=t.data.get(o.dataId).complexTensorInfos.real,s=t.data.get(n.dataId).values;return t.makeTensorInfo(n.shape,n.dtype,s)}var SE={kernelName:iu,backendName:"cpu",kernelFunc:Zn};function Jn(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{dtype:s}=o;if(s==="complex64"){if(n.dtype==="complex64")return Er({inputs:{x:n},backend:t});let a=Mp(t,n.shape,n.dtype),i=Jn({inputs:{x:n},backend:t,attrs:{dtype:"float32"}}),l=mr({inputs:{real:i,imag:a},backend:t});return t.disposeIntermediateTensorInfo(a),t.disposeIntermediateTensorInfo(i),l}if(n.dtype==="complex64"){let a=Zn({inputs:{input:n},backend:t}),i=Jn({inputs:{x:a},backend:t,attrs:{dtype:s}});return t.disposeIntermediateTensorInfo(a),i}if(!y.hasEncodingLoss(n.dtype,s)){let a=Er({inputs:{x:n},backend:t});return{dataId:a.dataId,shape:a.shape,dtype:s}}if(s==="int32"){let a=t.data.get(n.dataId).values,i=Int32Array.from(a);return t.makeTensorInfo(n.shape,"int32",i)}if(s==="bool"){let a=t.data.get(n.dataId).values,i=y.toTypedArray([0],n.dtype),[l,u]=Ke((c,p)=>c!==p?1:0)(n.shape,[],a,i,"bool");return t.makeTensorInfo(u,"bool",l)}throw new Error(`Error in Cast: failed to cast ${n.dtype} to ${s}`)}var TE={kernelName:Do,backendName:"cpu",kernelFunc:Jn};function et(r,e,t,o){return t==null?({inputs:n,backend:s})=>{let{a,b:i}=n,l=s;te([a,i],r);let u=l.data.get(a.dataId).values,c=l.data.get(i.dataId).values,p=o||a.dtype,[m,f]=e(a.shape,i.shape,u,c,p);return l.makeTensorInfo(f,p,m)}:({inputs:n,backend:s})=>{let{a,b:i}=n,l=s;if(a.dtype==="complex64"||i.dtype==="complex64"){let u=Jn({inputs:{x:a},backend:l,attrs:{dtype:"complex64"}}),c=l.data.get(u.dataId),p=c.complexTensorInfos.real,m=c.complexTensorInfos.imag,f=l.data.get(p.dataId).values,d=l.data.get(m.dataId).values,h=Jn({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(h.dataId),x=g.complexTensorInfos.real,w=g.complexTensorInfos.imag,b=l.data.get(x.dataId).values,_=l.data.get(w.dataId).values,[k,A,N]=t(a.shape,i.shape,f,d,b,_),$=l.makeTensorInfo(N,"float32",k),F=l.makeTensorInfo(N,"float32",A),M=mr({inputs:{real:$,imag:F},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(h),l.disposeIntermediateTensorInfo($),l.disposeIntermediateTensorInfo(F),M}else{let u=l.data.get(a.dataId).values,c=l.data.get(i.dataId).values,p=o||a.dtype,[m,f]=e(a.shape,i.shape,u,c,p);return l.makeTensorInfo(f,p,m)}}}function Lp(r){return(e,t,o,n,s,a)=>{let i=S.assertAndGetBroadcastShape(e,t),l=y.sizeFromShape(i),u=i.length,c=y.computeStrides(i),p=y.getTypedArrayFromDType("float32",l),m=y.getTypedArrayFromDType("float32",l),f=S.getBroadcastDims(e,i),d=S.getBroadcastDims(t,i),h=S.mergeRealAndImagArrays(o,n),g=S.mergeRealAndImagArrays(s,a),x=e.length,w=y.computeStrides(e),b=t.length,_=y.computeStrides(t);if(f.length+d.length===0)for(let k=0;kN[W]=0);let $=y.locToIndex(N,x,w),F=A.slice(-b);d.forEach(W=>F[W]=0);let M=y.locToIndex(F,b,_),V=r(h[$*2],h[$*2+1],g[M*2],g[M*2+1]);p[k]=V.real,m[k]=V.imag}return[p,m,i]}}var AE=Ke((r,e)=>r+e),S5=Lp((r,e,t,o)=>({real:r+t,imag:e+o})),za=et(wo,AE,S5),EE={kernelName:wo,backendName:"cpu",kernelFunc:za};function zd(r,e,t,o,n){let s=y.sizeFromShape(o),a=y.makeZerosTypedArray(n,t);for(let i=0;i=n||(s>0?a[l]+=e[i]:a[l]+=1)}return a}function Uk(r,e,t,o=!1){let n=r.shape[0],s=r.shape[1],a=ve([n,t],e.dtype);for(let i=0;i=t||(o?a.set(1,i,u):e.size>0?a.set(a.get(i,u)+e.get(i,l),i,u):a.set(a.get(i,u)+1,i,u))}return a}function Qn(r){return(e,t,o)=>{let n=y.getTypedArrayFromDType(t,e.length);for(let s=0;s{let{x:a}=o;if(te(a,r),a.dtype==="string"||t==="string")throw new Error("unaryKernelFunc does not support string input/output");let i=s,l=i.data.get(a.dataId).values,u=y.sizeFromShape(a.shape),c=t||a.dtype,p=y.getArrayFromDType(c,u);for(let m=0;m{let{x:a}=o;if(te(a,r),a.dtype==="string"||t==="string")throw new Error("unaryKernelFunc does not support string input/output");let i=s,l=i.data.get(a.dataId).values,u=t||a.dtype,c=e(l,u,n);return i.makeTensorInfo(a.shape,u,c)}}var DE=Qn(r=>Math.ceil(r)),T5=es(Yo,DE),$E={kernelName:Yo,backendName:"cpu",kernelFunc:T5};function Bd(r,e,t,o){let n=y.getArrayFromDType(t,y.sizeFromShape(e));if(o&&t!=="string"){let s=0;r.forEach(a=>{let i=y.sizeFromShape(a.shape);n.set(a.vals,s),s+=i})}else{let s=0;r.forEach(a=>{let i=t==="string"?S.fromUint8ToStringArray(a.vals):a.vals,l=0;for(let u=0;uMath.exp(r)),jk=es(on,RE),FE={kernelName:on,backendName:"cpu",kernelFunc:jk};var OE=Qn(r=>Math.expm1(r)),A5=es(si,OE),PE={kernelName:si,backendName:"cpu",kernelFunc:A5};var ME=Qn(r=>Math.floor(r)),E5=es(nn,ME),LE={kernelName:nn,backendName:"cpu",kernelFunc:E5};function Hk(r,e,t){let o=ve(t,r.dtype);for(let n=0;nr>e?1:0),D5=et(li,zE,null,"bool"),BE={kernelName:li,backendName:"cpu",kernelFunc:D5};var VE=Ke((r,e)=>rMath.log(r)),R5=es(cn,WE),UE={kernelName:cn,backendName:"cpu",kernelFunc:R5};function Kk(r,e,t,o){let n=y.getTypedArrayFromDType(o,y.sizeFromShape(t));for(let s=0;si&&(i=u)}n[s]=i}return n}var jE=Ke((r,e)=>Math.max(r,e)),F5=et(mn,jE),HE={kernelName:mn,backendName:"cpu",kernelFunc:F5};var qE=Ke((r,e)=>Math.min(r,e)),O5=et(gn,qE),KE={kernelName:gn,backendName:"cpu",kernelFunc:O5};var kx=Ke((r,e)=>r*e),P5=Lp((r,e,t,o)=>({real:r*t-e*o,imag:r*o+e*t})),Vd=et(xn,kx,P5),XE={kernelName:xn,backendName:"cpu",kernelFunc:Vd};function YE(r,e,t){let o=y.createScalarValue(-1,t);return kx([],e,o,r,t)}function M5(r){let{inputs:e,backend:t}=r,{x:o}=e;te(o,"neg");let n=t.data.get(o.dataId).values,[s,a]=YE(n,o.shape,o.dtype);return t.makeTensorInfo(a,o.dtype,s)}var ZE={kernelName:ps,backendName:"cpu",kernelFunc:M5};var JE=Ke((r,e)=>r!==e?1:0),L5=et(xi,JE,null,"bool"),QE={kernelName:xi,backendName:"cpu",kernelFunc:L5};function Gd(r,e,t,o,n){let s=e.length,a=y.sizeFromShape(e),i=y.computeStrides(e),l=y.computeStrides(n),u=y.getTypedArrayFromDType(t,y.sizeFromShape(n));for(let c=0;ct.disposeIntermediateTensorInfo(w)),t.makeTensorInfo(x,g,d)}var r2={kernelName:_i,backendName:"cpu",kernelFunc:z5};function Wd(r,e,t,o){let n=r===e,s=r1;if(n||s||a)return y.makeZerosTypedArray(0,o);let i=Math.abs(Math.ceil((e-r)/t)),l=y.makeZerosTypedArray(i,o);e1/Math.sqrt(r)),B5=es(Sn,o2),n2={kernelName:Sn,backendName:"cpu",kernelFunc:B5};function Ud(r,e,t,o,n){let s=sr.isSliceContinous(o,e,t),a=y.sizeFromShape(t),i=y.computeStrides(o);if(s){let p=sr.computeFlatOffset(e,i);return n==="string"?r.slice(p,p+a):r.subarray(p,p+a)}let l=n==="string"?S.fromUint8ToStringArray(r):r,u=ve(o,n,l),c=ve(t,n);for(let p=0;pd+e[h]);c.set(u.get(...f),...m)}return n==="string"?S.fromStringArrayToUint8(c.values):c.values}function ts(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{begin:s,size:a}=o;te(n,"slice");let[i,l]=sr.parseSliceParams(n,s,a);sr.assertParamsValid(n,i,l);let u=t.data.get(n.dataId).values,c=Ud(u,i,l,n.shape,n.dtype);return t.makeTensorInfo(l,n.dtype,c)}var s2={kernelName:gs,backendName:"cpu",kernelFunc:ts};var i2=Ke((r,e)=>{let t=r-e;return t*t}),V5=et(Rn,i2),a2={kernelName:Rn,backendName:"cpu",kernelFunc:V5};function Xk(r,e,t,o){let n=ve(r,e.dtype);for(let s=0;sr-e),G5=Lp((r,e,t,o)=>({real:r-t,imag:e-o})),jd=et(Fn,l2,G5),u2={kernelName:Fn,backendName:"cpu",kernelFunc:jd};function Yk(r,e){let t=new Array(r.rank);for(let n=0;nb.value-w.value);let h=p*o,g=l.subarray(h,h+o),x=u.subarray(h,h+o);for(let w=0;w{for(let g=0;gnew Pp,1);var ev=$e(ri,r=>r>=0?r:Math.exp(r)-1),p2={kernelName:ri,backendName:"cpu",kernelFunc:ev};function tv(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{alpha:s}=o;te([n],"leakyRelu");let a=y.sizeFromShape(n.shape),i=t.data.get(n.dataId).values,l=y.getTypedArrayFromDType("float32",a);for(let u=0;ur<0?e*r:r);function rv(r){let{inputs:e,backend:t}=r,{x:o,alpha:n}=e;te([o,n],"prelu");let s=t.data.get(o.dataId).values,a=t.data.get(n.dataId).values,[i,l]=W5(o.shape,n.shape,s,a,o.dtype);return t.makeTensorInfo(l,o.dtype,i)}var f2={kernelName:_n,backendName:"cpu",kernelFunc:rv};var ov=$e(kn,r=>Math.max(0,r)),d2={kernelName:kn,backendName:"cpu",kernelFunc:ov};var nv=$e(Cn,r=>Math.min(Math.max(0,r),6)),h2={kernelName:Cn,backendName:"cpu",kernelFunc:nv};function zp(r,e,t,o,n){if(t==="linear")return Er({inputs:{x:e},backend:r});if(t==="relu")return ov({inputs:{x:e},backend:r});if(t==="elu")return ev({inputs:{x:e},backend:r});if(t==="relu6")return nv({inputs:{x:e},backend:r});if(t==="prelu")return rv({inputs:{x:e,alpha:o},backend:r});if(t==="leakyrelu")return tv({inputs:{x:e},backend:r,attrs:{alpha:n}});throw new Error(`Activation ${t} has not been implemented for the CPU backend.`)}function Qe(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{shape:s}=o,a=y.sizeFromShape(n.shape),i=y.inferFromImplicitShape(s,a),l=y.sizeFromShape(i);y.assert(a===l,()=>`The new shape (${i}) has ${l} elements and the old shape (${n.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`),t.incRef(n.dataId);let u=t.data.get(n.dataId);if(u.complexTensorInfos!=null){let c=u.complexTensorInfos.real,p=u.complexTensorInfos.imag;c.shape=i,p.shape=i}return{dataId:n.dataId,shape:i,dtype:n.dtype}}var g2={kernelName:ds,backendName:"cpu",kernelFunc:Qe};function sv(r){let{inputs:e,backend:t,attrs:o}=r,{a:n,b:s}=e,{transposeA:a,transposeB:i}=o;te([n,s],"matMul");let l=n.shape.length,u=s.shape.length,c=a?n.shape[l-2]:n.shape[l-1],p=i?s.shape[u-1]:s.shape[u-2],m=a?n.shape[l-1]:n.shape[l-2],f=i?s.shape[u-2]:s.shape[u-1],d=n.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=g===x||g===1||x===1;y.assert(l>=2&&u>=2&&w,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${d}) and (${h}).`);let _=(g>x?n.shape.slice(0,-2):s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${n.shape} and ${s.shape} and transposeA=${a} and transposeB=${i} must match.`);let k=a?[g,c,m]:[g,m,c],A=i?[x,f,p]:[x,p,f],N=Qe({inputs:{x:n},backend:t,attrs:{shape:k}}),$=Qe({inputs:{x:s},backend:t,attrs:{shape:A}}),F=a?N.shape[1]:N.shape[2],M=a?N.shape[2]:N.shape[1],V=i?$.shape[1]:$.shape[2],W=Math.max(g,x),U=t.data.get(N.dataId).values,H=t.data.get($.dataId).values,q=y.computeStrides(N.shape),X=y.computeStrides($.shape),[oe,Y,re]=a?[q[0],1,q[1]]:[q[0],q[1],1],[J,ie,ue]=i?[1,X[1],X[0]]:[X[1],1,X[0]],ae=M*V,fe=ve([W,M,V],N.dtype),de=fe.values,xe=t.blockSize;for(let we=0;weMath.acos(r)),b2={kernelName:Hs,backendName:"cpu",kernelFunc:j5};var H5=$e(qs,r=>Math.acosh(r)),w2={kernelName:qs,backendName:"cpu",kernelFunc:H5};function q5(r){let{inputs:e,backend:t}=r,o=e;te(e,"addN");let n=o.map(i=>t.data.get(i.dataId).values),s=ve(o[0].shape,o[0].dtype),a=s.values;for(let i=0;iw&&(w=k,b=_)}f[g]=b}return u.forEach(g=>t.disposeIntermediateTensorInfo(g)),t.makeTensorInfo(c,"int32",f)}var C2={kernelName:qo,backendName:"cpu",kernelFunc:Y5};function Z5(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s}=o;te(n,"argMin");let a=y.parseAxisParam(s,n.shape),i=S.getAxesPermutation(a,n.shape.length),l=n,u=[];i!=null&&(l=rr({inputs:{x:n},backend:t,attrs:{perm:i}}),u.push(l),a=S.getInnerMostAxes(a.length,l.shape.length)),a=[a[0]],S.assertAxesAreInnerMostDims("argMin",a,l.shape.length);let[c,p]=S.computeOutAndReduceShapes(l.shape,a),m=y.sizeFromShape(c),f=y.makeZerosTypedArray(m,"int32"),d=y.sizeFromShape(p),h=t.data.get(l.dataId).values;for(let g=0;gt.disposeIntermediateTensorInfo(g)),t.makeTensorInfo(c,"int32",f)}var I2={kernelName:ea,backendName:"cpu",kernelFunc:Z5};var J5=$e(Ks,r=>Math.asin(r)),N2={kernelName:Ks,backendName:"cpu",kernelFunc:J5};var Q5=$e(Xs,r=>Math.asinh(r)),S2={kernelName:Xs,backendName:"cpu",kernelFunc:Q5};var eX=$e(Ys,r=>Math.atan(r)),T2={kernelName:Ys,backendName:"cpu",kernelFunc:eX};var tX=Ke((r,e)=>Math.atan2(r,e)),rX=et(Js,tX),A2={kernelName:Js,backendName:"cpu",kernelFunc:rX};var oX=$e(Zs,r=>Math.atanh(r)),E2={kernelName:Zs,backendName:"cpu",kernelFunc:oX};function Bp(r,e,t,o,n,s){let a=n.strideHeight,i=n.strideWidth,l=n.dilationHeight,u=n.dilationWidth,c=n.effectiveFilterHeight,p=n.effectiveFilterWidth,m=n.padInfo.top,f=n.padInfo.left,d=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,h=ve(n.outShape,t),g=h.values,x=n.outShape[1]*n.outShape[2]*n.outShape[3],w=n.outShape[2]*n.outShape[3],b=n.outShape[3];for(let _=0;_oe?oe=de:s==="avg"&&(Y+=de,re++)}if(isNaN(oe))break}let J=W+U*b+N;g[J]=s==="avg"?Y/re:oe}}}return h}function vx(r,e,t,o,n=!1,s=!1){let a=ve(o.outShape,"int32"),i=o.strideHeight,l=o.strideWidth,u=o.dilationHeight,c=o.dilationWidth,p=o.effectiveFilterHeight,m=o.effectiveFilterWidth,f=o.padInfo.top,d=o.padInfo.left,h=ve(e,t,r);for(let g=0;gM&&(M=X,n?V=s?((g*o.inHeight+W)*o.inWidth+H)*o.inChannels+x:(W*o.inWidth+H)*o.inChannels+x:V=U*m+q)}}a.set(V,g,w,A,x)}}return a}function Cx(r,e,t,o,n,s){let a=n.strideDepth,i=n.strideHeight,l=n.strideWidth,u=n.dilationDepth,c=n.dilationHeight,p=n.dilationWidth,m=n.effectiveFilterDepth,f=n.effectiveFilterHeight,d=n.effectiveFilterWidth,h=n.padInfo.front,g=n.padInfo.top,x=n.padInfo.left,w=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,b=ve(n.outShape,t),_=b.values,k=n.outShape[1]*n.outShape[2]*n.outShape[3]*n.outShape[4],A=n.outShape[2]*n.outShape[3]*n.outShape[4],N=n.outShape[3]*n.outShape[4],$=n.outShape[4];for(let F=0;FDe?De=Mt:s==="avg"&&(Ie+=Mt,ze++),isNaN(De))break}if(isNaN(De))break}if(isNaN(De))break}let qe=we+W;_[qe]=s==="avg"?Ie/ze:De}}}}return b}function D2(r,e){let t=ve(e.outShape,"int32"),o=e.strideDepth,n=e.strideHeight,s=e.strideWidth,a=e.dilationDepth,i=e.dilationHeight,l=e.dilationWidth,u=e.effectiveFilterDepth,c=e.effectiveFilterHeight,p=e.effectiveFilterWidth,m=e.padInfo.front,f=e.padInfo.top,d=e.padInfo.left;for(let h=0;h=U&&(U=ie,H=X*c*p+Y*c+J)}}}t.set(H,h,x,k,F,g)}}}return t}function nX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e;te(n,"avgPool");let{filterSize:s,strides:a,pad:i,dimRoundingMode:l}=o,u=1;y.assert(S.eitherStridesOrDilationsAreOne(a,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);let c=S.computePool2DInfo(n.shape,s,a,u,i,l),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Er({inputs:{x:n},backend:t});else{let m=t.data.get(n.dataId).values,f=y.computeStrides(n.shape),d=Bp(m,n.shape,n.dtype,f,c,"avg");p=t.makeTensorInfo(c.outShape,n.dtype,d.values)}return p}var $2={kernelName:Ko,backendName:"cpu",kernelFunc:nX};function sX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{filterSize:s,strides:a,pad:i,dimRoundingMode:l,dataFormat:u}=o;te(n,"avgPool3d");let c=S.computePool3DInfo(n.shape,s,a,1,i,l,u),p=t.data.get(n.dataId).values,m=Cx(p,n.shape,n.dtype,y.computeStrides(n.shape),c,"avg");return t.makeTensorInfo(m.shape,"float32",m.values)}var R2={kernelName:ta,backendName:"cpu",kernelFunc:sX};function iX(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,{filterSize:a,strides:i,pad:l,dimRoundingMode:u}=o;te([n,s],"avgPool3DGrad");let c=S.computePool3DInfo(s.shape,a,i,1,l,u),p=c.strideDepth,m=c.strideHeight,f=c.strideWidth,d=c.filterDepth,h=c.filterHeight,g=c.filterWidth,x=c.dilationDepth,w=c.dilationHeight,b=c.dilationWidth,_=c.effectiveFilterDepth,k=c.effectiveFilterHeight,A=c.effectiveFilterWidth,N=_-1-c.padInfo.front,$=A-1-c.padInfo.left,F=k-1-c.padInfo.top,M=ve(s.shape,"float32"),V=1/(d*h*g),W=t.bufferSync(n);for(let U=0;U=c.outDepth||Math.floor(ae)!==ae))for(let fe=0;fe=c.outHeight||Math.floor(de)!==de))for(let xe=0;xe=c.outWidth||Math.floor(we)!==we)continue;ie+=W.get(U,ae,de,we,H)}}}M.set(ie*V,U,q,X,oe,H)}return t.makeTensorInfo(M.shape,M.dtype,M.values)}var F2={kernelName:Bl,backendName:"cpu",kernelFunc:iX};function aX(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,a=s;te([n,s],"avgPoolGrad");let{filterSize:i,strides:l,pad:u}=o,c=S.computePool2DInfo(a.shape,i,l,1,u),p=c.strideHeight,m=c.strideWidth,f=c.filterHeight,d=c.filterWidth,h=c.dilationHeight,g=c.dilationWidth,x=c.effectiveFilterHeight,w=c.effectiveFilterWidth,b=w-1-c.padInfo.left,_=x-1-c.padInfo.top,k=ve(a.shape,"float32"),A=1/(f*d),N=t.data.get(n.dataId).values,$=ve(n.shape,"float32",N);for(let F=0;F=c.outHeight||Math.floor(oe)!==oe))for(let Y=0;Y=c.outWidth||Math.floor(re)!==re)continue;q+=$.get(F,oe,re,M)}}k.set(q*A,F,V,W,M)}return t.makeTensorInfo(k.shape,k.dtype,k.values)}var O2={kernelName:zl,backendName:"cpu",kernelFunc:aX};function lX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,scale:s,offset:a,mean:i,variance:l}=e;y.assert(i.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),y.assert(a==null||i.shape.length===a.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),y.assert(s==null||i.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),te([n,i,l,s,a],"batchNorm");let{varianceEpsilon:u}=o;u==null&&(u=.001);let c=t.data.get(n.dataId).values,p=t.data.get(i.dataId).values,m=t.data.get(l.dataId).values,f=s?t.data.get(s.dataId).values:new Float32Array([1]),d=a?t.data.get(a.dataId).values:new Float32Array([0]),h=new Float32Array(c.length),g=d.length,x=f.length,w=m.length,b=p.length,_=0,k=0,A=0,N=0;for(let $=0;$=g&&(_=0),k>=b&&(k=0),A>=x&&(A=0),N>=w&&(N=0);return t.makeTensorInfo(n.shape,n.dtype,h)}var P2={kernelName:an,backendName:"cpu",kernelFunc:lX};function uX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{blockShape:s,crops:a}=o;te([n],"batchToSpaceND");let i=s.reduce((x,w)=>x*w),l=S.getReshaped(n.shape,s,i),u=S.getPermuted(l.length,s.length),c=S.getReshapedPermuted(n.shape,s,i),p=S.getSliceBeginCoords(a,s.length),m=S.getSliceSize(c,a,s.length),f=Qe({inputs:{x:n},backend:t,attrs:{shape:l}}),d=rr({inputs:{x:f},backend:t,attrs:{perm:u}}),h=Qe({inputs:{x:d},backend:t,attrs:{shape:c}}),g=ts({inputs:{x:h},backend:t,attrs:{begin:p,size:m}});return t.disposeIntermediateTensorInfo(f),t.disposeIntermediateTensorInfo(d),t.disposeIntermediateTensorInfo(h),g}var M2={kernelName:ra,backendName:"cpu",kernelFunc:uX};function cX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,weights:s}=e,{size:a}=o,i=t.data.get(n.dataId).values,l=t.data.get(s.dataId).values,u=zd(i,l,s.dtype,s.shape,a);return t.makeTensorInfo([a],s.dtype,u)}var L2={kernelName:Vl,backendName:"cpu",kernelFunc:cX};var pX=$e($o,(r,e)=>{let t=e;return r>t.clipValueMax?t.clipValueMax:r{let{x:e}=r.inputs,t=r.backend,o=new Float32Array(y.sizeFromShape(e.shape)),n=t.data.get(e.dataId),s=n.complexTensorInfos.real,a=n.complexTensorInfos.imag,i=t.data.get(s.dataId).values,l=t.data.get(a.dataId).values;for(let u=0;uh.shape),s);if(y.sizeFromShape(a)===0)return t.makeTensorInfo(a,e[0].dtype,[]);let i=e.filter(h=>y.sizeFromShape(h.shape)>0);if(i.length===1)return Er({inputs:{x:i[0]},backend:t});let l=i.map(h=>h.shape);if(S.assertParamsConsistent(l,s),i[0].dtype==="complex64"){let h=i.map(_=>Zn({inputs:{input:_},backend:t})),g=i.map(_=>ji({inputs:{input:_},backend:t})),x=kl({inputs:h,backend:t,attrs:{axis:s}}),w=kl({inputs:g,backend:t,attrs:{axis:s}}),b=mr({inputs:{real:x,imag:w},backend:t});return h.forEach(_=>t.disposeIntermediateTensorInfo(_)),g.forEach(_=>t.disposeIntermediateTensorInfo(_)),t.disposeIntermediateTensorInfo(x),t.disposeIntermediateTensorInfo(w),b}let u=i.map(h=>{let g=y.sizeFromShape(h.shape.slice(s));return Qe({inputs:{x:h},backend:t,attrs:{shape:[-1,g]}})}),c=u.map(h=>({vals:t.data.get(h.dataId).values,shape:h.shape}));a=S.computeOutShape(u.map(h=>h.shape),1);let p=u[0].shape[0]===1,m=Bd(c,a,e[0].dtype,p),f=S.computeOutShape(i.map(h=>h.shape),s),d=t.makeTensorInfo(f,e[0].dtype,m);return u.forEach(h=>t.disposeIntermediateTensorInfo(h)),d}var G2={kernelName:ls,backendName:"cpu",kernelFunc:kl};function iv(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s}=e,{strides:a,pad:i,dataFormat:l,dilations:u,dimRoundingMode:c}=o;te([n,s],"conv2d");let p=S.convertConv2DDataFormat(l),m=S.computeConv2DInfo(n.shape,s.shape,a,u,i,c,!1,p),f=m.filterHeight,d=m.filterWidth,h=m.dilationHeight,g=m.dilationWidth,x=m.padInfo.left,w=m.padInfo.top,b=m.dataFormat==="channelsLast",_=new lt(m.outShape,n.dtype),k=y.computeStrides(n.shape),A=y.computeStrides(s.shape),N=k[0],$=b?k[1]:k[2],F=b?k[2]:1,M=b?1:k[1],V=_.strides[0],W=b?_.strides[1]:_.strides[2],U=b?_.strides[2]:1,H=b?1:_.strides[1],q=t.data.get(n.dataId).values,X=t.data.get(s.dataId).values,oe=_.values;for(let Y=0;Y=m.inHeight)continue;let xe=fe*A[0],we=re+de*$;for(let De=0;De=m.inWidth)continue;let At=xe+qe*A[1],Et=we+it*F,Ue=At;for(let ut=0;ut=u.inDepth)continue;let Y=X*F[0],re=V+oe*$[1];for(let J=0;J=u.inHeight)continue;let de=Y+ae*F[1],xe=re+fe*$[2];for(let we=0;we=u.inWidth)continue;let it=de+ze*F[2],At=xe+qe*u.inChannels,Et=it;for(let Ue=0;UeMath.cos(r)),X2={kernelName:Qo,backendName:"cpu",kernelFunc:yX};var bX=$e(Qs,r=>Math.cosh(r)),Y2={kernelName:Qs,backendName:"cpu",kernelFunc:bX};function wX(r){let{inputs:e,backend:t,attrs:o}=r,{image:n,boxes:s,boxInd:a}=e,{cropSize:i,method:l,extrapolationValue:u}=o,[c,p,m,f]=n.shape,d=s.shape[0],[h,g]=i,x=ve([d,h,g,f],"float32"),w=t.data.get(s.dataId).values,b=t.data.get(a.dataId).values,_=t.data.get(n.dataId).values,k=y.computeStrides(n.shape),A=y.computeStrides(x.shape);for(let N=0;N=c)continue;let H=h>1?(V-F)*(p-1)/(h-1):0,q=g>1?(W-M)*(m-1)/(g-1):0;for(let X=0;X1?F*(p-1)+X*H:.5*(F+V)*(p-1);if(oe<0||oe>p-1){for(let Y=0;Y1?M*(m-1)+ie*q:.5*(M+W)*(m-1);if(ue<0||ue>m-1){for(let xe=0;xe1?M*(m-1)+Y*q:.5*(M+W)*(m-1);if(re<0||re>m-1){for(let ue=0;uex+d-w-1:(x,w)=>x+w;for(let x=0;x`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${a}`),y.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let i=n.shape[0],l=n.shape[1],u=n.shape[2],c=n.shape[3],p=l*s,m=u*s,f=c/(s*s),d=t.data.get(n.dataId).values,h=new Float32Array(i*p*m*f),g=0;for(let x=0;x`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${a} and dilations '${m}'`);let f=S.computeConv2DInfo(n.shape,s.shape,a,m,i,u,!0),{filterHeight:d,filterWidth:h,dilationHeight:g,dilationWidth:x,padInfo:w}=f,b=w.left,_=w.top,k=f.outChannels/f.inChannels,A=new lt(f.outShape,n.dtype),N=t.data.get(n.dataId).values,$=t.data.get(s.dataId).values,F=A.values;for(let M=0;M=f.inHeight)continue;let Y=X*p[0],re=V+oe*c[1];for(let J=0;J=f.inWidth)continue;let de=Y+ae*p[1],xe=re+fe*f.inChannels,we=ie,De=de;for(let Ie=0;Ie{let{x:o,filter:n}=r,{strides:s,pad:a,dilations:i}=t,l=e,u=l.data.get(o.dataId).values,c=o.shape.length,p=l.data.get(n.dataId).values,m=n.shape.length,{batchSize:f,inHeight:d,inWidth:h,inChannels:g,outHeight:x,outWidth:w,padInfo:b,strideHeight:_,strideWidth:k,filterHeight:A,filterWidth:N,dilationHeight:$,dilationWidth:F,outShape:M}=S.computeDilation2DInfo(o.shape,n.shape,s,a,"NHWC",i),V=y.sizeFromShape(M),W=M.length,U=y.getArrayFromDType(o.dtype,V);for(let q=0;q=0&&fe=0&&xeie&&(ie=Ie)}}}let ue=y.locToIndex([q,X,Y,J],W,y.computeStrides(M));U[ue]=ie}}}return{dataId:l.write(y.toTypedArray(U,o.dtype),M,o.dtype),shape:M,dtype:o.dtype}}};var iD={kernelName:Oc,backendName:"cpu",kernelFunc:({inputs:r,backend:e,attrs:t})=>{let{x:o,filter:n,dy:s}=r,{strides:a,pad:i,dilations:l}=t,u=e,c=y.toNestedArray(o.shape,u.data.get(o.dataId).values),p=y.toNestedArray(n.shape,u.data.get(n.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:w,strideHeight:b,strideWidth:_,filterHeight:k,filterWidth:A,dilationHeight:N,dilationWidth:$,outShape:F}=S.computeDilation2DInfo(o.shape,n.shape,a,i,"NHWC",l);y.assert(s.rank===F.length,()=>`Error in ${Oc}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let M=y.toNestedArray(F,u.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(n.shape,n.dtype);for(let U=0;U=0&&ae=0&&dere&&(re=xe,J=ue,ie=fe)}}}V[J][ie][Y]+=M[U][H][X][Y]}}}return{dataId:u.write(y.toTypedArray(V,o.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};var aD={kernelName:Fc,backendName:"cpu",kernelFunc:({inputs:r,backend:e,attrs:t})=>{let{x:o,filter:n,dy:s}=r,{strides:a,pad:i,dilations:l}=t,u=e,c=y.toNestedArray(o.shape,u.data.get(o.dataId).values),p=y.toNestedArray(n.shape,u.data.get(n.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:w,strideHeight:b,strideWidth:_,filterHeight:k,filterWidth:A,dilationHeight:N,dilationWidth:$,outShape:F}=S.computeDilation2DInfo(o.shape,n.shape,a,i,"NHWC",l);y.assert(s.rank===F.length,()=>`Error in ${Fc}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let M=y.toNestedArray(F,u.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(o.shape,o.dtype);for(let U=0;U=0&&ae=0&&dere&&(re=xe,J=ae,ie=de)}}}V[U][J][ie][Y]+=M[U][H][X][Y]}}}return{dataId:u.write(y.toTypedArray(V,o.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};function SX(r){let{inputs:e,backend:t}=r,{dy:o,y:n}=e;te([o,n],"eluGrad");let s=new Float32Array(y.sizeFromShape(n.shape)),a=t.data.get(n.dataId).values,i=t.data.get(o.dataId).values;for(let l=0;l=1?s[l]=i[l]:s[l]=i[l]*(u+1)}return t.makeTensorInfo(n.shape,"float32",s)}var lD={kernelName:Yl,backendName:"cpu",kernelFunc:SX};var TX=Ke((r,e)=>r===e?1:0),lv=et(ni,TX,null,"bool"),uD={kernelName:ni,backendName:"cpu",kernelFunc:lv};var AX=S.ERF_P,EX=S.ERF_A1,DX=S.ERF_A2,$X=S.ERF_A3,RX=S.ERF_A4,FX=S.ERF_A5,OX=$e(oi,r=>{let e=Math.sign(r),t=Math.abs(r),o=1/(1+AX*t);return e*(1-((((FX*o+RX)*o+$X)*o+DX)*o+EX)*o*Math.exp(-t*t))}),cD={kernelName:oi,backendName:"cpu",kernelFunc:OX};function Vp(r){let{inputs:e,backend:t,attrs:o}=r,{input:n}=e,{dim:s}=o,a=n.shape.length,i=n.shape.slice(),l=s;return s<0&&(y.assert(-(a+1)<=s,()=>`Axis must be in the interval [${-(a+1)}, ${a}]`),l=a+s+1),i.splice(l,0,1),Qe({inputs:{x:n},backend:t,attrs:{shape:i}})}var pD={kernelName:us,backendName:"cpu",kernelFunc:Vp};var PX=Ke((r,e)=>r/e),Hd=et(rn,PX),qd={kernelName:rn,backendName:"cpu",kernelFunc:Hd};function Ix(r,e,t){let o=r.shape,n=o[0],s=o[1],a=t.data.get(r.dataId),i=a.complexTensorInfos.real,l=a.complexTensorInfos.imag,u=[n,s],c=y.sizeFromShape(u),p=y.getTypedArrayFromDType("float32",c),m=y.getTypedArrayFromDType("float32",c);for(let g=0;g{let{image:o}=r,n=t,s=y.getTypedArrayFromDType(o.dtype,y.sizeFromShape(o.shape)),[a,i,l,u]=o.shape,c=n.data.get(o.dataId).values;for(let m=0;m=0&&kMath.floor(r/e)),WX=et(sn,GX,null,"int32"),hD={kernelName:sn,backendName:"cpu",kernelFunc:WX};function UX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=o,h=iv({inputs:{x:n,filter:s},backend:t,attrs:{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:m}});if(a){let g=h;h=za({inputs:{a:h,b:a},backend:t}),t.disposeIntermediateTensorInfo(g)}if(f){let g=h;h=zp(t,h,f,i,d),t.disposeIntermediateTensorInfo(g)}return h}var gD={kernelName:_s,backendName:"cpu",kernelFunc:UX};function jX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=o,h=av({inputs:{x:n,filter:s},backend:t,attrs:{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:m}});if(a){let g=h;h=za({inputs:{a:h,b:a},backend:t}),t.disposeIntermediateTensorInfo(g)}if(f){let g=h;h=zp(t,h,f,i,d),t.disposeIntermediateTensorInfo(g)}return h}var xD={kernelName:ks,backendName:"cpu",kernelFunc:jX};function HX(r){let{inputs:e,backend:t}=r,{params:o,indices:n}=e,s=y.sizeFromShape(o.shape),a=n.shape,i=a[a.length-1],[l,u,c,p]=S.prepareAndValidate(o,n);if(u===0)return t.makeTensorInfo(l,o.dtype,[]);let m=ve([u,c],o.dtype),f=t.data.get(n.dataId).values,d=t.data.get(o.dataId).values;for(let h=0;h=s/c)throw new Error(`Invalid indices: ${g} does not index into ${o.shape}`);for(let w=0;wr>=e?1:0),XX=et(ln,KX,null,"bool"),wD={kernelName:ln,backendName:"cpu",kernelFunc:XX};function YX(r){let{inputs:e,backend:t}=r,{input:o}=e,n=y.sizeFromShape(o.shape),s=o.shape[o.shape.length-1],a=n/s,i=Qe({inputs:{x:o},backend:t,attrs:{shape:[a,s]}}),l=Ix(i,!0,t),u=Qe({inputs:{x:l},backend:t,attrs:{shape:o.shape}});return t.disposeIntermediateTensorInfo(i),t.disposeIntermediateTensorInfo(l),u}var _D={kernelName:Jl,backendName:"cpu",kernelFunc:YX};var ZX=$e(ui,r=>Number.isFinite(r)?1:0,"bool"),kD={kernelName:ui,backendName:"cpu",kernelFunc:ZX};var JX=$e(ci,r=>Math.abs(r)===Infinity?1:0,"bool"),vD={kernelName:ci,backendName:"cpu",kernelFunc:JX};var QX=$e(pi,r=>Number.isNaN(r)?1:0,"bool"),CD={kernelName:pi,backendName:"cpu",kernelFunc:QX};var e8=Ke((r,e)=>r<=e?1:0),t8=et(fi,e8,null,"bool"),ID={kernelName:fi,backendName:"cpu",kernelFunc:t8};function r8(r){let{backend:e,attrs:t}=r,{start:o,stop:n,num:s}=t,a=qk(o,n,s);return e.makeTensorInfo([a.length],"float32",a)}var ND={kernelName:eu,backendName:"cpu",kernelFunc:r8};var o8=$e(di,r=>Math.log1p(r)),SD={kernelName:di,backendName:"cpu",kernelFunc:o8};var n8=Ke((r,e)=>r&&e),s8=et(hi,n8,null,"bool"),TD={kernelName:hi,backendName:"cpu",kernelFunc:s8};var i8=$e(Ya,r=>r?0:1,"bool"),AD={kernelName:Ya,backendName:"cpu",kernelFunc:i8};var a8=Ke((r,e)=>r||e),l8=et(Za,a8,null,"bool"),ED={kernelName:Za,backendName:"cpu",kernelFunc:l8};function u8(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{depthRadius:s,bias:a,alpha:i,beta:l}=o;te(n,"LRN");let u=n.shape[3],c=u-1,p=t.data.get(n.dataId).values,m=y.sizeFromShape(n.shape),f=new Float32Array(m);function d(h){let g=h%u,x=h-g+Math.max(0,g-s),w=h-g+Math.min(g+s,c),b=0;for(;x<=w;x++){let _=p[x];b+=_*_}return b}for(let h=0;h`Error in maxPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);let c=S.computePool2DInfo(n.shape,s,a,u,i,l),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Er({inputs:{x:n},backend:t});else{let m=t.data.get(n.dataId).values,f=y.computeStrides(n.shape),d=Bp(m,n.shape,n.dtype,f,c,"max");p=t.makeTensorInfo(c.outShape,n.dtype,d.values)}return p}var FD={kernelName:fn,backendName:"cpu",kernelFunc:p8};function m8(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{filterSize:s,strides:a,pad:i,dimRoundingMode:l,dataFormat:u}=o;te(n,"maxPool3d");let c=S.computePool3DInfo(n.shape,s,a,1,i,l,u),p=t.data.get(n.dataId).values,m=Cx(p,n.shape,n.dtype,y.computeStrides(n.shape),c,"max");return t.makeTensorInfo(m.shape,"float32",m.values)}var OD={kernelName:la,backendName:"cpu",kernelFunc:m8};function f8(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,{filterSize:a,strides:i,pad:l,dimRoundingMode:u}=o;te([n,s],"maxPool3DGrad");let c=S.computePool3DInfo(s.shape,a,i,1,l,u),p=t.bufferSync(s),m=D2(p,c),f=c.strideDepth,d=c.strideHeight,h=c.strideWidth,g=c.dilationDepth,x=c.dilationHeight,w=c.dilationWidth,b=c.effectiveFilterDepth,_=c.effectiveFilterHeight,k=c.effectiveFilterWidth,A=b-1-c.padInfo.front,N=k-1-c.padInfo.left,$=_-1-c.padInfo.top,F=ve(s.shape,"float32"),M=t.bufferSync(n);for(let V=0;V=c.outDepth||Math.floor(ie)!==ie))for(let ue=0;ue<_;ue+=x){let ae=(oe+ue)/d;if(!(ae<0||ae>=c.outHeight||Math.floor(ae)!==ae))for(let fe=0;fe=c.outWidth||Math.floor(de)!==de)continue;let xe=b*_*k-1-m.get(V,ie,ae,de,W),we=J*_*k+ue*k+fe,De=xe===we?1:0;if(De===0)continue;re+=M.get(V,ie,ae,de,W)*De}}}F.set(re,V,U,H,q,W)}return t.makeTensorInfo(F.shape,F.dtype,F.values)}var PD={kernelName:ou,backendName:"cpu",kernelFunc:f8};function d8(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s,output:a}=e,i=s;te([s,a],"maxPoolGrad");let{filterSize:l,strides:u,pad:c,dimRoundingMode:p}=o,m=S.computePool2DInfo(i.shape,l,u,1,c,p),f=t.data.get(i.dataId).values,d=ve(m.outShape,i.dtype,vx(f,i.shape,i.dtype,m).values),h=m.strideHeight,g=m.strideWidth,x=m.dilationHeight,w=m.dilationWidth,b=m.effectiveFilterHeight,_=m.effectiveFilterWidth,k=_-1-m.padInfo.left,A=b-1-m.padInfo.top,N=ve(i.shape,"float32"),$=t.data.get(n.dataId).values,F=ve(n.shape,"float32",$);for(let M=0;M=m.outHeight||Math.floor(Y)!==Y))for(let re=0;re<_;re+=w){let J=(q+re)/g;if(J<0||J>=m.outWidth||Math.floor(J)!==J)continue;let ie=b*_-1-d.get(M,Y,J,V),ue=oe*_+re,ae=ie===ue?1:0;if(ae===0)continue;X+=F.get(M,Y,J,V)*ae}}N.set(X,M,W,U,V)}return t.makeTensorInfo(N.shape,N.dtype,N.values)}var MD={kernelName:ru,backendName:"cpu",kernelFunc:d8};function LD(r,e,t,o,n){let s=y.computeStrides(e),a=Bp(r,e,t,s,n,"max"),i=vx(r,e,t,n,!0,o);return[a.values,i.values]}var zD={kernelName:nu,backendName:"cpu",kernelFunc:({inputs:r,attrs:e,backend:t})=>{let{x:o}=r,{filterSize:n,strides:s,pad:a,includeBatchInIndex:i}=e,l=t;te(o,"MaxPoolWithArgmax");let u=l.data.get(o.dataId).values,c=S.computePool2DInfo(o.shape,n,s,[1,1],a),[p,m]=LD(u,o.shape,o.dtype,i,c),f=l.write(p,c.outShape,o.dtype),d=l.write(m,c.outShape,o.dtype);return[{dataId:f,shape:c.outShape,dtype:o.dtype},{dataId:d,shape:c.outShape,dtype:"int32"}]}};function nc(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o;te(n,"sum");let i;n.dtype==="bool"?i=Jn({inputs:{x:n},backend:t,attrs:{dtype:"int32"}}):i=Er({inputs:{x:n},backend:t});let l=i.shape.length,u=y.parseAxisParam(s,i.shape),c=S.getAxesPermutation(u,l),p=u,m=i;c!=null&&(m=rr({inputs:{x:i},backend:t,attrs:{perm:c}}),p=S.getInnerMostAxes(p.length,l)),S.assertAxesAreInnerMostDims("sum",p,m.shape.length);let[f,d]=S.computeOutAndReduceShapes(m.shape,p),h=S.upcastType(m.dtype,"int32"),g=Mp(t,f,h),x=y.sizeFromShape(d),w=t.data.get(g.dataId).values,b=t.data.get(m.dataId).values;for(let _=0;_t.disposeIntermediateTensorInfo(g)),h}var VD={kernelName:dn,backendName:"cpu",kernelFunc:h8};function g8(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o;te(n,"min");let i=y.parseAxisParam(s,n.shape),l=i,u=S.getAxesPermutation(l,n.shape.length),c=n;u!=null&&(c=rr({inputs:{x:n},backend:t,attrs:{perm:u}}),l=S.getInnerMostAxes(l.length,n.shape.length)),S.assertAxesAreInnerMostDims("min",l,c.shape.length);let[p,m]=S.computeOutAndReduceShapes(c.shape,l),f=y.sizeFromShape(m),d=y.makeZerosTypedArray(y.sizeFromShape(p),c.dtype),h=t.data.get(c.dataId).values;for(let x=0;xb[0]+n.shape[_]+b[1]),l=s.map(b=>b[0]),u=s.map((b,_)=>b[0]+n.shape[_]),c=a==="reflect"?0:1,p=t.data.get(n.dataId).values,m=n.shape.length,f=y.computeStrides(n.shape),d=y.sizeFromShape(i),h=i.length,g=y.computeStrides(i),x=y.getTypedArrayFromDType(n.dtype,d);for(let b=0;b=u[A]&&(_[A]=(u[A]-1)*2-_[A]+c);_=_.map((A,N)=>A-l[N]);let k=y.locToIndex(_,m,f);x[b]=p[k]}return{dataId:t.write(x,i,n.dtype),shape:i,dtype:n.dtype}}var WD={kernelName:ua,backendName:"cpu",kernelFunc:x8};var y8=Ke((r,e)=>{let t=r%e;return r<0&&e<0||r>=0&&e>=0?t:(t+e)%e}),b8=et(gi,y8),UD={kernelName:gi,backendName:"cpu",kernelFunc:b8};var a$=Ac(s$());function xv(r){let{inputs:e,backend:t,attrs:o}=r,{logits:n}=e,{dim:s}=o,a=n.shape.length,i=s;if(i===-1&&(i=a-1),i!==a-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${a} and dim was ${i}`);let l=y.parseAxisParam([i],n.shape),u=cv({inputs:{x:n},backend:t,attrs:{reductionIndices:l,keepDims:!1}}),c=S.expandShapeToKeepDim(u.shape,l),p=Qe({inputs:{x:u},backend:t,attrs:{shape:c}}),m=jd({inputs:{a:n,b:p},backend:t}),f=jk({inputs:{x:m},backend:t}),d=nc({inputs:{x:f},backend:t,attrs:{axis:l,keepDims:!1}}),h=Qe({inputs:{x:d},backend:t,attrs:{shape:c}}),g=Hd({inputs:{a:f,b:h},backend:t});return t.disposeIntermediateTensorInfo(u),t.disposeIntermediateTensorInfo(p),t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(f),t.disposeIntermediateTensorInfo(d),t.disposeIntermediateTensorInfo(h),g}var i$={kernelName:$n,backendName:"cpu",kernelFunc:xv};function N8(r){let{inputs:e,backend:t,attrs:o}=r,{logits:n}=e,{numSamples:s,seed:a,normalized:i}=o;te(n,"multinomial");let l=i?n:xv({inputs:{logits:n},backend:t,attrs:{dim:-1}}),u=l.shape[0],c=l.shape[1],p=t.data.get(l.dataId).values,m=[u,s],f=y.makeZerosTypedArray(y.sizeFromShape(m),"int32");for(let d=0;d=0&&c[p]{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(a===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let i=[],l=e.map(c=>{let p=Vp({inputs:{input:c},backend:t,attrs:{dim:n}});return i.push(p),p}),u=kl({inputs:l,backend:t,attrs:{axis:n}});return i.forEach(c=>t.disposeIntermediateTensorInfo(c)),u}var g$={kernelName:fs,backendName:"cpu",kernelFunc:yv};function F8(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{paddings:s,constantValue:a}=o;te(n,"pad");let i=s.map((w,b)=>w[0]+n.shape[b]+w[1]),l=s.map(w=>w[0]),u=t.data.get(n.dataId).values,c=y.sizeFromShape(n.shape),p=n.shape.length,m=y.computeStrides(n.shape),f=y.sizeFromShape(i),d=i.length,h=y.computeStrides(i),g=y.getTypedArrayFromDType(n.dtype,f);a!==0&&g.fill(a);for(let w=0;wA+l[N]),k=y.locToIndex(_,d,h);g[k]=u[w]}return{dataId:t.write(g,i,n.dtype),shape:i,dtype:n.dtype}}var Sx={kernelName:bn,backendName:"cpu",kernelFunc:F8};var O8=Ke((r,e)=>Math.pow(r,e)),P8=et(wn,O8),x$={kernelName:wn,backendName:"cpu",kernelFunc:P8};function M8(r){let{backend:e,attrs:t}=r,{start:o,stop:n,dtype:s,step:a}=t,i=Wd(o,n,a,s);return e.makeTensorInfo([i.length],s,i)}var y$={kernelName:ca,backendName:"cpu",kernelFunc:M8};var L8=$e(ki,r=>1/r),b$={kernelName:ki,backendName:"cpu",kernelFunc:L8};function z8(r){let{inputs:e,backend:t,attrs:o}=r,{images:n}=e,{alignCorners:s,halfPixelCenters:a,size:i}=o;te(n,"resizeBilinear");let l=y.computeStrides(n.shape),[u,c]=i,[p,m,f,d]=n.shape,h=t.data.get(n.dataId).values,g=new Float32Array(y.sizeFromShape([p,u,c,d])),x=[s&&u>1?m-1:m,s&&c>1?f-1:f],w=[s&&u>1?u-1:u,s&&c>1?c-1:c],b=0,_=x[0]/w[0],k=x[1]/w[1];for(let A=0;A1?u-1:u,a&&f>1?c-1:c],g=[a&&m>1?m-1:m,a&&f>1?f-1:f],x=h[0]/g[0],w=h[1]/g[1],b=t.data.get(s.dataId).values,_=0;for(let k=0;k1?m-1:m,s&&c>1?f-1:f],w=[s&&u>1?u-1:u,s&&c>1?c-1:c],b=x[0]/w[0],_=x[1]/w[1],k=0;for(let A=0;A1?c-1:c,a&&d>1?p-1:p],w=[a&&f>1?f-1:f,a&&d>1?d-1:d],b=x[0]/w[0],_=x[1]/w[1],k=1/b,A=1/_,N=Math.ceil(k)*2+2,$=Math.ceil(A)*2+2;for(let F=0;F=f)continue;let ae=M+ue*l[1],fe=ue*b,de=Math.min(c-1,a?Math.round(fe):Math.floor(fe));if(V===de)for(let xe=0;xe<$;xe++){let we=xe+Y;if(we<0||we>=d)continue;let De=ae+we*l[2],Ie=we*_,ze=Math.min(p-1,a?Math.round(Ie):Math.floor(Ie));q===ze&&(J+=g[De+re])}}h[X+re]=J}}}}return t.makeTensorInfo(n.shape,n.dtype,h)}var v$={kernelName:au,backendName:"cpu",kernelFunc:G8};function W8(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{dims:s}=o;te(n,"reverse");let a=n.shape.length,i=y.parseAxisParam(s,n.shape);if(a===0)return Er({inputs:{x:n},backend:t});let l=new lt(n.shape,n.dtype),u=t.bufferSync(n);for(let c=0;cm[f]=n.shape[f]-1-m[f]),l.set(u.get(...m),...p)}return t.makeTensorInfo(l.shape,l.dtype,l.values)}var C$={kernelName:In,backendName:"cpu",kernelFunc:W8};var I$={kernelName:Di,backendName:"cpu",kernelFunc:({inputs:r,attrs:e,backend:t})=>{let{image:o}=r,{radians:n,fillValue:s,center:a}=e,i=t,l=y.getTypedArrayFromDType(o.dtype,y.sizeFromShape(o.shape)),[u,c,p,m]=o.shape,[f,d]=S.getImageCenter(a,c,p),h=255,g=Math.sin(n),x=Math.cos(n),w=i.data.get(o.dataId).values;for(let _=0;_=0&&H=0&&q{let e=Math.floor(r);return r-e<.5?Math.floor(r):r-e>.5?Math.ceil(r):e%2==0?e:e+1}),N$={kernelName:Nn,backendName:"cpu",kernelFunc:U8};function Tx(r,e,t,o,n,s,a,i,l,u){let c=[o/n,n],p=r.values,m=e.values;if(o===0)return ve(t,e.dtype);let f=ve(c,e.dtype);f.values.fill(l);for(let d=0;d=o/n)throw new Error(`Invalid indices: ${h} does not index into ${t}`);for(let x=0;x1||n.shape.length===1?1:y.sizeFromShape(n.shape.slice(1));for(let d=0;dr>=0?K8*r:q8*(Math.exp(r)-1)),A$={kernelName:Ci,backendName:"cpu",kernelFunc:X8};var Y8=$e(An,r=>1/(1+Math.exp(-r))),E$={kernelName:An,backendName:"cpu",kernelFunc:Y8};var Z8=$e(Ni,r=>r<0?-1:r>0?1:0),D$={kernelName:Ni,backendName:"cpu",kernelFunc:Z8};var J8=$e(Tn,r=>Math.sin(r)),$$={kernelName:Tn,backendName:"cpu",kernelFunc:J8};var Q8=$e(Ii,r=>Math.sinh(r)),R$={kernelName:Ii,backendName:"cpu",kernelFunc:Q8};var eY=11920928955078125e-23,F$=Math.log(eY)+2,tY=$e(Si,r=>{let e=r>-F$,t=r{let m=[...c];m[i]=p;let f=ts({inputs:{x:n},backend:t,attrs:{begin:u,size:m}});return u[i]+=p,f})}var L$={kernelName:xs,backendName:"cpu",kernelFunc:nY};var sY=$e(En,r=>Math.sqrt(r)),z$={kernelName:En,backendName:"cpu",kernelFunc:sY};var B$={kernelName:fa,backendName:"cpu",kernelFunc:({inputs:r,backend:e})=>{let{x:t}=r,o=e;te(t,"square");let n=o.data.get(t.dataId).values,s=new Float32Array(n.length);for(let i=0;i{let t=e;return isNaN(r)?NaN:r>0?1:t.alpha}),V$={kernelName:Fo,backendName:"cpu",kernelFunc:iY};function aY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{begin:s,end:a,strides:i,beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=o;te(n,"stridedSlice");let{nonStrided:f,$begin:d,$strides:h,size:g,newShape:x,outShape:w}=sr.sliceInfo(n.shape,s,a,i,l,u,c,p,m),b=Qe({inputs:{x:n},backend:t,attrs:{shape:x}}),_;if(f){let A=ts({inputs:{x:b},backend:t,attrs:{begin:d,size:g}});_=Qe({inputs:{x:A},backend:t,attrs:{shape:w}}),t.disposeIntermediateTensorInfo(A)}else if(w.some(A=>A===0))_=t.makeTensorInfo(w,n.dtype,[]);else{let A=t.bufferSync(b),N=Xk(w,A,h,d);_=t.makeTensorInfo(N.shape,N.dtype,N.values)}let k=Qe({inputs:{x:_},backend:t,attrs:{shape:w}});return t.disposeIntermediateTensorInfo(b),t.disposeIntermediateTensorInfo(_),k}var G$={kernelName:Ti,backendName:"cpu",kernelFunc:aY};var lY=$e(Ai,r=>Math.tan(r)),W$={kernelName:Ai,backendName:"cpu",kernelFunc:lY};var uY=$e(On,r=>Math.tanh(r)),U$={kernelName:On,backendName:"cpu",kernelFunc:uY};function cY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{reps:s}=o;te(n,"tile");let a=Yk(t.bufferSync(n),s);return t.makeTensorInfo(a.shape,a.dtype,a.values)}var j$={kernelName:_o,backendName:"cpu",kernelFunc:cY};function pY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{k:s,sorted:a}=o;te(n,"topk");let i=t.data.get(n.dataId).values,[l,u]=Zk(i,n.shape,n.dtype,s,a);return[t.makeTensorInfo(l.shape,l.dtype,l.values),t.makeTensorInfo(u.shape,u.dtype,u.values)]}var H$={kernelName:Ei,backendName:"cpu",kernelFunc:pY};function dY(r){let{inputs:e,attrs:t,backend:o}=r,{image:n,transforms:s}=e,{interpolation:a,fillMode:i,fillValue:l,outputShape:u}=t,[c,p,m,f]=n.shape,[d,h]=u!=null?u:[p,m],g=[c,d,h,f],x=y.computeStrides(n.shape),w=x[0],b=x[1],_=x[2],k=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(g));k.fill(l);let A=o.data.get(n.dataId).values,N=o.data.get(s.dataId).values;for(let F=0;Fe-1)if(e<=1)t=0;else{let o=2*e;t-=o*Math.trunc(t/o),t>=e&&(t=o-t-1)}return y.clamp(0,t,e-1)}function gY(r,e){let t=r;if(t<0)if(e<=1)t=0;else{let o=e-1;t+=e*(Math.trunc(-t/o)+1)}else if(t>e-1)if(e<=1)t=0;else{let o=e-1;t-=e*Math.trunc(t/o)}return y.clamp(0,t,e-1)}function xY(r,e){return r}function yY(r,e){return y.clamp(0,r,e-1)}function Yd(r,e,t,o,n,s,a,i,l,u,c){let p=a*o+i*n+l*s+u;return 0<=i&&it.disposeIntermediateTensorInfo(d)),f}var Z$={kernelName:da,backendName:"cpu",kernelFunc:_Y};var kY=[y2,CE,b2,w2,EE,_2,k2,v2,C2,I2,N2,S2,T2,A2,E2,$2,R2,F2,O2,x2,P2,M2,L2,TE,$E,z2,IE,B2,G2,U2,j2,W2,q2,K2,H2,X2,Y2,Z2,J2,Q2,eD,tD,rD,oD,nD,sD,aD,iD,qd,p2,lD,uD,cD,FE,pD,PE,mD,fD,dD,LE,hD,gD,xD,yD,bD,BE,wD,NE,_D,V2,kD,vD,CD,m2,GE,ID,ND,UE,SD,TD,AD,ED,DD,$D,HE,FD,OD,PD,MD,zD,RD,VD,GD,KE,WD,UD,l$,XE,ZE,u$,c$,p$,QE,m$,h$,g$,Sx,x$,f2,r2,y$,SE,b$,d2,h2,g2,w$,_$,k$,v$,C$,I$,N$,n2,S$,T$,A$,E$,D$,$$,R$,s2,i$,O$,P$,M$,L$,z$,B$,a2,V$,G$,u2,BD,W$,U$,j$,H$,e2,K$,X$,Y$,Z$,f$];for(let r of kY)Ja(r);var ic={},bv={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function J$(r,e){ic[r]=e}function Go(r){if(!(r in ic)){let t=vY(r);if(t!==null)ic[r]=t;else return console.log("Could not get context for WebGL version",r),null}let e=ic[r];return e.isContextLost()?(delete ic[r],Go(r)):(e.disable(e.DEPTH_TEST),e.disable(e.STENCIL_TEST),e.disable(e.BLEND),e.disable(e.DITHER),e.disable(e.POLYGON_OFFSET_FILL),e.disable(e.SAMPLE_COVERAGE),e.enable(e.SCISSOR_TEST),e.enable(e.CULL_FACE),e.cullFace(e.BACK),ic[r])}function CY(r){if(typeof OffscreenCanvas!="undefined"&&r===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function vY(r){if(r!==1&&r!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let e=CY(r);return e.addEventListener("webglcontextlost",t=>{t.preventDefault(),delete ic[r]},!1),r===1?e.getContext("webgl",bv)||e.getContext("experimental-webgl",bv):e.getContext("webgl2",bv)}var vl;(function(r){r[r.DENSE=0]="DENSE",r[r.SHARED_BATCH=1]="SHARED_BATCH"})(vl||(vl={}));var Dr;(function(r){r[r.RENDER=0]="RENDER",r[r.UPLOAD=1]="UPLOAD",r[r.PIXELS=2]="PIXELS",r[r.DOWNLOAD=3]="DOWNLOAD"})(Dr||(Dr={}));var kr;(function(r){r[r.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",r[r.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",r[r.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",r[r.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",r[r.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(kr||(kr={}));function ac(r,e){return[e,r]}function Q$(r,e){return r*e}function Cl(r){let e=y.sizeFromShape(r),t=Math.ceil(e/4);return y.sizeToSquarishShape(t)}function Hi(r,e){return[Math.max(1,Math.ceil(e/2)),Math.max(1,Math.ceil(r/2))]}function eR(r,e){let[t,o]=Hi(r,e);return t*o*4}function Zd(r,e){let t=r,o,n,s,a,i,l,u,c,p,m;return j().getNumber("WEBGL_VERSION")===2?(o=t.R32F,n=t.R16F,s=t.RGBA16F,a=t.RGBA32F,i=t.RED,u=4,c=1,p=t.HALF_FLOAT,m=t.FLOAT):(o=r.RGBA,n=r.RGBA,s=r.RGBA,a=t.RGBA,i=r.RGBA,u=4,c=4,p=e!=null?e.HALF_FLOAT_OES:null,m=r.FLOAT),l=r.RGBA,{internalFormatFloat:o,internalFormatHalfFloat:n,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:a,textureFormatFloat:i,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:c,textureTypeHalfFloat:p,textureTypeFloat:m}}function Ae(r,e){let t=e();return j().getBool("DEBUG")&&IY(r),t}function IY(r){let e=r.getError();if(e!==r.NO_ERROR)throw new Error("WebGL Error: "+NY(r,e))}var SY=596e-10,TY=65504;function tR(r){return!!(j().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||r===0||SYr.getExtension(e),'Extension "'+e+'" not supported on this browser.')}function rR(r,e){let t=Ba(r,()=>r.createShader(r.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(Ae(r,()=>r.shaderSource(t,e)),Ae(r,()=>r.compileShader(t)),r.getShaderParameter(t,r.COMPILE_STATUS)===!1)throw console.log(r.getShaderInfoLog(t)),new Error("Failed to compile vertex shader.");return t}function oR(r,e){let t=Ba(r,()=>r.createShader(r.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(Ae(r,()=>r.shaderSource(t,e)),Ae(r,()=>r.compileShader(t)),r.getShaderParameter(t,r.COMPILE_STATUS)===!1)throw AY(e,r.getShaderInfoLog(t)),new Error("Failed to compile fragment shader.");return t}var EY=/ERROR: [0-9]+:([0-9]+):/g;function AY(r,e){let t=EY.exec(e);if(t==null){console.log(`Couldn't parse line number in error: ${e}`),console.log(r);return}let o=+t[1],n=r.split(` +`),s=n.length.toString().length+2,a=n.map((p,m)=>y.rightPad((m+1).toString(),s)+p),i=0;for(let p=0;pr.createProgram(),"Unable to create WebGLProgram.")}function i$(r,e){if(Ae(r,()=>r.linkProgram(e)),r.getProgramParameter(e,r.LINK_STATUS)===!1)throw console.log(r.getProgramInfoLog(e)),new Error("Failed to link vertex and fragment shaders.")}function vx(r,e){if(Ae(r,()=>r.validateProgram(e)),r.getProgramParameter(e,r.VALIDATE_STATUS)===!1)throw console.log(r.getProgramInfoLog(e)),new Error("Shader program validation failed.")}function a$(r,e){let t=Ba(r,()=>r.createBuffer(),"Unable to create WebGLBuffer");return Ae(r,()=>r.bindBuffer(r.ARRAY_BUFFER,t)),Ae(r,()=>r.bufferData(r.ARRAY_BUFFER,e,r.STATIC_DRAW)),t}function l$(r,e){let t=Ba(r,()=>r.createBuffer(),"Unable to create WebGLBuffer");return Ae(r,()=>r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t)),Ae(r,()=>r.bufferData(r.ELEMENT_ARRAY_BUFFER,e,r.STATIC_DRAW)),t}function u$(r){return Ba(r,()=>r.createTexture(),"Unable to create WebGLTexture.")}function c$(r,e){let t=W().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(r<=0||e<=0){let o=`[${r}x${e}]`;throw new Error("Requested texture size "+o+" is invalid.")}if(r>t||e>t){let o=`[${r}x${e}]`,n=`[${t}x${t}]`;throw new Error("Requested texture size "+o+" greater than WebGL maximum on this browser / GPU "+n+".")}}function p$(r){return Ba(r,()=>r.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function tv(r,e,t,o,n,s,a){let i=r.getAttribLocation(e,t);return i===-1?!1:(Ae(r,()=>r.bindBuffer(r.ARRAY_BUFFER,o)),Ae(r,()=>r.vertexAttribPointer(i,n,r.FLOAT,!1,s,a)),Ae(r,()=>r.enableVertexAttribArray(i)),!0)}function l8(r,e,t){a8(r,t),Ae(r,()=>r.activeTexture(r.TEXTURE0+t)),Ae(r,()=>r.bindTexture(r.TEXTURE_2D,e))}function m$(r,e,t){return Ba(r,()=>r.getUniformLocation(e,t),'uniform "'+t+'" not present in program.')}function f$(r,e,t){return r.getUniformLocation(e,t)}function d$(r,e,t,o){Ae(r,()=>l8(r,e,o)),Ae(r,()=>r.uniform1i(t,o))}function Cx(r,e,t){Ae(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),Ae(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0))}function rv(r,e){Ae(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,e)),Ae(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function Yd(r){let e=r.checkFramebufferStatus(r.FRAMEBUFFER);if(e!==r.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+u8(r,e))}function u8(r,e){switch(e){case r.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case r.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case r.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case r.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${e}`}}function Ba(r,e,t){let o=Ae(r,()=>e());if(o==null)throw new Error(t);return o}function a8(r,e){let t=r.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,o=e+r.TEXTURE0;if(ot){let n=`[gl.TEXTURE0, gl.TEXTURE${t}]`;throw new Error(`textureUnit must be in ${n}.`)}}function Il(r,e=2){return x.sizeFromShape(r.slice(0,r.length-e))}function Nl(r){if(r.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[r.length>1?r[r.length-2]:1,r[r.length-1]]}function Ix(r){let e=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(e=[Il(r),...Nl(r)]),e}function h$(r,e=!1){let t=W().getNumber("WEBGL_MAX_TEXTURE_SIZE");e&&(t=t*2,r=r.map((n,s)=>s>=r.length-2?x.nearestLargerEven(r[s]):r[s]),r.length===1&&(r=[2,r[0]])),r.length!==2&&(r=x.squeezeShape(r).newShape);let o=x.sizeFromShape(r);if(r.length<=1&&o<=t)return[1,o];if(r.length===2&&r[0]<=t&&r[1]<=t)return r;if(r.length===3&&r[0]*r[1]<=t&&r[2]<=t)return[r[0]*r[1],r[2]];if(r.length===3&&r[0]<=t&&r[1]*r[2]<=t)return[r[0],r[1]*r[2]];if(r.length===4&&r[0]*r[1]*r[2]<=t&&r[3]<=t)return[r[0]*r[1]*r[2],r[3]];if(r.length===4&&r[0]<=t&&r[1]*r[2]*r[3]<=t)return[r[0],r[1]*r[2]*r[3]];if(e){let n=Il(r),s=2,a=2;return r.length&&([s,a]=Nl(r)),o=n*(s/2)*(a/2),x.sizeToSquarishShape(o).map(i=>i*2)}return x.sizeToSquarishShape(o)}function Nx(r){return r%2==0}function nc(r,e){if(r=r.slice(-2),e=e.slice(-2),x.arraysEqual(r,e)||!r.length||!e.length||r[0]===0||r[1]===0||e[0]===0||e[1]===0)return!0;if(r.length!==e.length){let t=r.slice(-1)[0],o=e.slice(-1)[0];if(t===o||Nx(t)&&Nx(o)&&(r[0]===1||e[0]===1))return!0}return r[1]===e[1]&&Nx(r[0])&&Nx(e[0])}var ov,nv;function g$(r){if(ov==null){let e=Go(r);ov=e.getParameter(e.MAX_TEXTURE_SIZE)}return ov}function x$(r){if(nv==null){let e=Go(r);nv=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,nv)}function y$(r){if(r===0)return 0;let e,t=Go(r);return Wo(t,"EXT_disjoint_timer_query_webgl2")&&r===2?e=2:Wo(t,"EXT_disjoint_timer_query")?e=1:e=0,e}function Wo(r,e){return r.getExtension(e)!=null}function sv(r){try{if(Go(r)!=null)return!0}catch(e){return console.log("Error when getting WebGL context: ",e),!1}return!1}function b$(r){if(r===0)return!1;let e=Go(r);if(r===1){if(!Wo(e,"OES_texture_float"))return!1}else if(!Wo(e,"EXT_color_buffer_float"))return!1;return iv(e)}function w$(r){if(r===0)return!1;let e=Go(r);if(r===1){if(!Wo(e,"OES_texture_float")||!Wo(e,"WEBGL_color_buffer_float"))return!1}else{if(Wo(e,"EXT_color_buffer_float"))return iv(e);let o="EXT_color_buffer_half_float";if(Wo(e,o)){let n=e.getExtension(o);return c8(e,n)}return!1}return iv(e)}function iv(r){let e=Kd(r),t=r.createTexture();r.bindTexture(r.TEXTURE_2D,t);let o=1,n=1;r.texImage2D(r.TEXTURE_2D,0,e.internalFormatFloat,o,n,0,e.textureFormatFloat,e.textureTypeFloat,null);let s=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,s),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t,0);let a=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(t),r.deleteFramebuffer(s),a}function c8(r,e){let t=Kd(r,e),o=r.createTexture();r.bindTexture(r.TEXTURE_2D,o);let n=1,s=1;r.texImage2D(r.TEXTURE_2D,0,t.internalFormatHalfFloat,n,s,0,t.textureFormatFloat,t.textureTypeHalfFloat,null);let a=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,a),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,o,0);let i=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(o),r.deleteFramebuffer(a),i}function _$(r){return r!==2?!1:Go(r).fenceSync!=null}function qi(r,e){Array.isArray(r)||(r=[r]),r.forEach(t=>{t!=null&&x.assert(t.dtype!=="complex64",()=>`${e} does not support complex64 tensors in the WebGL backend.`)})}var Me=W();Me.registerFlag("HAS_WEBGL",()=>Me.getNumber("WEBGL_VERSION")>0);Me.registerFlag("WEBGL_VERSION",()=>sv(2)?2:sv(1)?1:0);Me.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Me.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Me.get("WEBGL_VERSION")===2);Me.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Me.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Me.registerFlag("WEBGL_PACK",()=>Me.getBool("HAS_WEBGL"));Me.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Me.getBool("WEBGL_PACK"));Me.registerFlag("WEBGL_PACK_CLIP",()=>Me.getBool("WEBGL_PACK"));Me.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>!1);Me.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Me.getBool("WEBGL_PACK"));Me.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Me.getBool("WEBGL_PACK"));Me.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Me.getBool("WEBGL_PACK"));Me.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Me.getBool("WEBGL_PACK"));Me.registerFlag("WEBGL_PACK_REDUCE",()=>Me.getBool("WEBGL_PACK"));Me.registerFlag("WEBGL_LAZILY_UNPACK",()=>Me.getBool("WEBGL_PACK"));Me.registerFlag("WEBGL_CONV_IM2COL",()=>Me.getBool("WEBGL_PACK"));Me.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>g$(Me.getNumber("WEBGL_VERSION")));Me.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>x$(Me.getNumber("WEBGL_VERSION")));Me.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let r=Me.getNumber("WEBGL_VERSION");return r===0?0:y$(r)});Me.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Me.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Lc.isMobile());Me.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>b$(Me.getNumber("WEBGL_VERSION")));Me.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Me.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Me.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Me.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>w$(Me.getNumber("WEBGL_VERSION")));Me.registerFlag("WEBGL_FENCE_API_ENABLED",()=>_$(Me.getNumber("WEBGL_VERSION")));Me.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Me.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Me.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,r=>{if(r<0&&r!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${r}.`)});Me.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>-1,r=>{if(r<0&&r!==-1)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${r}.`)});function Ot(){let r,e,t,o,n,s,a,i,l,u;return W().getNumber("WEBGL_VERSION")===2?(r="#version 300 es",e="in",t="out",o="in",n="texture",s="outputColor",a="out vec4 outputColor;",i=` +`)[0]),console.log(`%c ${y.rightPad(u[0],i)}`,"border:1px solid red; background-color:#e3d2d2; color:#a61717"),console.log(c.join(` +`))}function nR(r){return Ba(r,()=>r.createProgram(),"Unable to create WebGLProgram.")}function sR(r,e){if(Ae(r,()=>r.linkProgram(e)),r.getProgramParameter(e,r.LINK_STATUS)===!1)throw console.log(r.getProgramInfoLog(e)),new Error("Failed to link vertex and fragment shaders.")}function Ax(r,e){if(Ae(r,()=>r.validateProgram(e)),r.getProgramParameter(e,r.VALIDATE_STATUS)===!1)throw console.log(r.getProgramInfoLog(e)),new Error("Shader program validation failed.")}function iR(r,e){let t=Ba(r,()=>r.createBuffer(),"Unable to create WebGLBuffer");return Ae(r,()=>r.bindBuffer(r.ARRAY_BUFFER,t)),Ae(r,()=>r.bufferData(r.ARRAY_BUFFER,e,r.STATIC_DRAW)),t}function aR(r,e){let t=Ba(r,()=>r.createBuffer(),"Unable to create WebGLBuffer");return Ae(r,()=>r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t)),Ae(r,()=>r.bufferData(r.ELEMENT_ARRAY_BUFFER,e,r.STATIC_DRAW)),t}function lR(r){return Ba(r,()=>r.createTexture(),"Unable to create WebGLTexture.")}function uR(r,e){let t=j().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(r<=0||e<=0){let o=`[${r}x${e}]`;throw new Error("Requested texture size "+o+" is invalid.")}if(r>t||e>t){let o=`[${r}x${e}]`,n=`[${t}x${t}]`;throw new Error("Requested texture size "+o+" greater than WebGL maximum on this browser / GPU "+n+".")}}function cR(r){return Ba(r,()=>r.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function wv(r,e,t,o,n,s,a){let i=r.getAttribLocation(e,t);return i===-1?!1:(Ae(r,()=>r.bindBuffer(r.ARRAY_BUFFER,o)),Ae(r,()=>r.vertexAttribPointer(i,n,r.FLOAT,!1,s,a)),Ae(r,()=>r.enableVertexAttribArray(i)),!0)}function $Y(r,e,t){DY(r,t),Ae(r,()=>r.activeTexture(r.TEXTURE0+t)),Ae(r,()=>r.bindTexture(r.TEXTURE_2D,e))}function pR(r,e,t){return Ba(r,()=>r.getUniformLocation(e,t),'uniform "'+t+'" not present in program.')}function mR(r,e,t){return r.getUniformLocation(e,t)}function fR(r,e,t,o){Ae(r,()=>$Y(r,e,o)),Ae(r,()=>r.uniform1i(t,o))}function Ex(r,e,t){Ae(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),Ae(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0))}function _v(r,e){Ae(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,e)),Ae(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function Qd(r){let e=r.checkFramebufferStatus(r.FRAMEBUFFER);if(e!==r.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+RY(r,e))}function RY(r,e){switch(e){case r.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case r.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case r.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case r.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${e}`}}function Ba(r,e,t){let o=Ae(r,()=>e());if(o==null)throw new Error(t);return o}function DY(r,e){let t=r.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,o=e+r.TEXTURE0;if(ot){let n=`[gl.TEXTURE0, gl.TEXTURE${t}]`;throw new Error(`textureUnit must be in ${n}.`)}}function Il(r,e=2){return y.sizeFromShape(r.slice(0,r.length-e))}function Nl(r){if(r.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[r.length>1?r[r.length-2]:1,r[r.length-1]]}function Dx(r){let e=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(e=[Il(r),...Nl(r)]),e}function dR(r,e=!1){let t=j().getNumber("WEBGL_MAX_TEXTURE_SIZE");e&&(t=t*2,r=r.map((n,s)=>s>=r.length-2?y.nearestLargerEven(r[s]):r[s]),r.length===1&&(r=[2,r[0]])),r.length!==2&&(r=y.squeezeShape(r).newShape);let o=y.sizeFromShape(r);if(r.length<=1&&o<=t)return[1,o];if(r.length===2&&r[0]<=t&&r[1]<=t)return r;if(r.length===3&&r[0]*r[1]<=t&&r[2]<=t)return[r[0]*r[1],r[2]];if(r.length===3&&r[0]<=t&&r[1]*r[2]<=t)return[r[0],r[1]*r[2]];if(r.length===4&&r[0]*r[1]*r[2]<=t&&r[3]<=t)return[r[0]*r[1]*r[2],r[3]];if(r.length===4&&r[0]<=t&&r[1]*r[2]*r[3]<=t)return[r[0],r[1]*r[2]*r[3]];if(e){let n=Il(r),s=2,a=2;return r.length&&([s,a]=Nl(r)),o=n*(s/2)*(a/2),y.sizeToSquarishShape(o).map(i=>i*2)}return y.sizeToSquarishShape(o)}function $x(r){return r%2==0}function lc(r,e){if(r=r.slice(-2),e=e.slice(-2),y.arraysEqual(r,e)||!r.length||!e.length||r[0]===0||r[1]===0||e[0]===0||e[1]===0)return!0;if(r.length!==e.length){let t=r.slice(-1)[0],o=e.slice(-1)[0];if(t===o||$x(t)&&$x(o)&&(r[0]===1||e[0]===1))return!0}return r[1]===e[1]&&$x(r[0])&&$x(e[0])}var kv,vv;function hR(r){if(kv==null){let e=Go(r);kv=e.getParameter(e.MAX_TEXTURE_SIZE)}return kv}function gR(r){if(vv==null){let e=Go(r);vv=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,vv)}function xR(r){if(r===0)return 0;let e,t=Go(r);return Wo(t,"EXT_disjoint_timer_query_webgl2")&&r===2?e=2:Wo(t,"EXT_disjoint_timer_query")?e=1:e=0,e}function Wo(r,e){return r.getExtension(e)!=null}function Cv(r){try{if(Go(r)!=null)return!0}catch(e){return console.log("Error when getting WebGL context: ",e),!1}return!1}function yR(r){if(r===0)return!1;let e=Go(r);if(r===1){if(!Wo(e,"OES_texture_float"))return!1}else if(!Wo(e,"EXT_color_buffer_float"))return!1;return Iv(e)}function bR(r){if(r===0)return!1;let e=Go(r);if(r===1){if(!Wo(e,"OES_texture_float")||!Wo(e,"WEBGL_color_buffer_float"))return!1}else{if(Wo(e,"EXT_color_buffer_float"))return Iv(e);let o="EXT_color_buffer_half_float";if(Wo(e,o)){let n=e.getExtension(o);return FY(e,n)}return!1}return Iv(e)}function Iv(r){let e=Zd(r),t=r.createTexture();r.bindTexture(r.TEXTURE_2D,t);let o=1,n=1;r.texImage2D(r.TEXTURE_2D,0,e.internalFormatFloat,o,n,0,e.textureFormatFloat,e.textureTypeFloat,null);let s=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,s),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t,0);let a=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(t),r.deleteFramebuffer(s),a}function FY(r,e){let t=Zd(r,e),o=r.createTexture();r.bindTexture(r.TEXTURE_2D,o);let n=1,s=1;r.texImage2D(r.TEXTURE_2D,0,t.internalFormatHalfFloat,n,s,0,t.textureFormatFloat,t.textureTypeHalfFloat,null);let a=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,a),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,o,0);let i=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(o),r.deleteFramebuffer(a),i}function wR(r){return r!==2?!1:Go(r).fenceSync!=null}function qi(r,e){Array.isArray(r)||(r=[r]),r.forEach(t=>{t!=null&&y.assert(t.dtype!=="complex64",()=>`${e} does not support complex64 tensors in the WebGL backend.`)})}var Me=j();Me.registerFlag("HAS_WEBGL",()=>Me.getNumber("WEBGL_VERSION")>0);Me.registerFlag("WEBGL_VERSION",()=>Cv(2)?2:Cv(1)?1:0);Me.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Me.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Me.get("WEBGL_VERSION")===2);Me.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Me.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Me.registerFlag("WEBGL_PACK",()=>Me.getBool("HAS_WEBGL"));Me.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Me.getBool("WEBGL_PACK"));Me.registerFlag("WEBGL_PACK_CLIP",()=>Me.getBool("WEBGL_PACK"));Me.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>!1);Me.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Me.getBool("WEBGL_PACK"));Me.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Me.getBool("WEBGL_PACK"));Me.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Me.getBool("WEBGL_PACK"));Me.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Me.getBool("WEBGL_PACK"));Me.registerFlag("WEBGL_PACK_REDUCE",()=>Me.getBool("WEBGL_PACK"));Me.registerFlag("WEBGL_LAZILY_UNPACK",()=>Me.getBool("WEBGL_PACK"));Me.registerFlag("WEBGL_CONV_IM2COL",()=>Me.getBool("WEBGL_PACK"));Me.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>hR(Me.getNumber("WEBGL_VERSION")));Me.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>gR(Me.getNumber("WEBGL_VERSION")));Me.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let r=Me.getNumber("WEBGL_VERSION");return r===0?0:xR(r)});Me.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Me.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!hu.isMobile());Me.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>yR(Me.getNumber("WEBGL_VERSION")));Me.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Me.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Me.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Me.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>bR(Me.getNumber("WEBGL_VERSION")));Me.registerFlag("WEBGL_FENCE_API_ENABLED",()=>wR(Me.getNumber("WEBGL_VERSION")));Me.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Me.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Me.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,r=>{if(r<0&&r!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${r}.`)});Me.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>hu.isMobile()&&Me.getBool("IS_CHROME")?1:-1,r=>{if(r<0&&r!==-1)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${r}.`)});function Pt(){let r,e,t,o,n,s,a,i,l,u;return j().getNumber("WEBGL_VERSION")===2?(r="#version 300 es",e="in",t="out",o="in",n="texture",s="outputColor",a="out vec4 outputColor;",i=` bool isnan_custom(float val) { return (val > 0.0 || val < 0.0) ? false : val != 0.0; } @@ -86,11 +86,11 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ivec4 round(vec4 value) { return ivec4(floor(value + vec4(0.5))); } - `),{version:r,attribute:e,varyingVs:t,varyingFs:o,texture2D:n,output:s,defineOutput:a,defineSpecialNaN:i,defineSpecialInf:l,defineRound:u}}function zs(r,e,t="index"){let o=x.computeStrides(e);return o.map((n,s)=>{let a=`int ${r[s]} = ${t} / ${n}`,i=s===o.length-1?`int ${r[s+1]} = ${t} - ${r[s]} * ${n}`:`index -= ${r[s]} * ${n}`;return`${a}; ${i};`}).join("")}function zp(r){let e=x.computeStrides(r).map(t=>t.toString());return` + `),{version:r,attribute:e,varyingVs:t,varyingFs:o,texture2D:n,output:s,defineOutput:a,defineSpecialNaN:i,defineSpecialInf:l,defineRound:u}}function Bs(r,e,t="index"){let o=y.computeStrides(e);return o.map((n,s)=>{let a=`int ${r[s]} = ${t} / ${n}`,i=s===o.length-1?`int ${r[s+1]} = ${t} - ${r[s]} * ${n}`:`index -= ${r[s]} * ${n}`;return`${a}; ${i};`}).join("")}function Gp(r){let e=y.computeStrides(r).map(t=>t.toString());return` int getFlatIndex(ivec3 coords) { return coords.x * ${e[0]} + coords.y * ${e[1]} + coords.z; } -`}var Sx=` +`}var Rx=` const float FLOAT_MAX = 1.70141184e38; const float FLOAT_MIN = 1.17549435e-38; @@ -129,9 +129,9 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee return c / 255.0; } -`;var av=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=vl.DENSE;let t=Cl(e),o=Ot();this.outputShape=e,this.userCode=` +`;var Nv=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=vl.DENSE;let t=Cl(e),o=Pt();this.outputShape=e,this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${zs(["r","c","d"],e)} + ${Bs(["r","c","d"],e)} return ivec3(r, c, d); } @@ -150,9 +150,9 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${o.output} = result; } - `}};var lv=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=vl.DENSE;let t=Cl(e),o=Ot();this.outputShape=e,this.userCode=` + `}};var Sv=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=vl.DENSE;let t=Cl(e),o=Pt();this.outputShape=e,this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${zs(["r","c","d"],e)} + ${Bs(["r","c","d"],e)} return ivec3(r, c, d); } @@ -171,23 +171,23 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${o.output} = result; } - `}};var uv=class{constructor(e){this.variableNames=["A"],this.outTexUsage=Er.DOWNLOAD;let t=Ot();this.outputShape=e,this.userCode=` - ${Sx} + `}};var Tv=class{constructor(e){this.variableNames=["A"],this.outTexUsage=Dr.DOWNLOAD;let t=Pt();this.outputShape=e,this.userCode=` + ${Rx} void main() { float x = getAAtOutCoords(); ${t.output} = encode_float(x); } - `}};var cv=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Er.DOWNLOAD;let t=Ot();this.outputShape=e,this.userCode=` - ${Sx} + `}};var Av=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Dr.DOWNLOAD;let t=Pt();this.outputShape=e,this.userCode=` + ${Rx} void main() { ivec3 coords = getOutputCoords(); float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${t.output} = encode_float(x); } - `}};var pv=class{constructor(e,t,o=!1){this.variableNames=["A"];let n=Ot(),[s,a]=t;this.outputShape=e;let i="result";o&&(i="floor(result * 255. + 0.5)"),this.userCode=` - ${zp(e)} + `}};var Ev=class{constructor(e,t,o=!1){this.variableNames=["A"];let n=Pt(),[s,a]=t;this.outputShape=e;let i="result";o&&(i="floor(result * 255. + 0.5)"),this.userCode=` + ${Gp(e)} void main() { ivec3 coords = getOutputCoords(); @@ -216,7 +216,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${n.output} = vec4(${i}, 0., 0., 0.); } - `}};var mv=class{constructor(e,t,o=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let n=Ot(),[s,a]=t;this.outputShape=e;let i="",l="result";o&&(l="floor(result * 255. + 0.5)");for(let u=0;u<=1;u++)for(let c=0;c<=1;c++){let p=u*2+c;i+=` + `}};var Dv=class{constructor(e,t,o=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let n=Pt(),[s,a]=t;this.outputShape=e;let i="",l="result";o&&(l="floor(result * 255. + 0.5)");for(let u=0;u<=1;u++)for(let c=0;c<=1;c++){let p=u*2+c;i+=` localCoords = coords; if(localCoords[2] + ${c} < ${e[2]}) { localCoords[2] += ${c}; @@ -245,7 +245,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee } } `}this.userCode=` - ${zp(e)} + ${Gp(e)} void main() { ivec3 coords = getOutputCoords(); @@ -260,7 +260,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${n.output} = ${l}; } - `}};function k$(r){let e=Ot(),t=`${e.version} + `}};function _R(r){let e=Pt(),t=`${e.version} precision highp float; ${e.attribute} vec3 clipSpacePos; ${e.attribute} vec2 uv; @@ -269,22 +269,22 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return o$(r,t)}function v$(r){let e=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return a$(r,e)}function C$(r){let e=new Uint16Array([0,1,2,2,1,3]);return l$(r,e)}function Zd(r,e,t,o,n,s){c$(e,t);let a=u$(r),i=r.TEXTURE_2D;return Ae(r,()=>r.bindTexture(i,a)),Ae(r,()=>r.texParameteri(i,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE)),Ae(r,()=>r.texParameteri(i,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE)),Ae(r,()=>r.texParameteri(i,r.TEXTURE_MIN_FILTER,r.NEAREST)),Ae(r,()=>r.texParameteri(i,r.TEXTURE_MAG_FILTER,r.NEAREST)),Ae(r,()=>r.texImage2D(i,0,o,e,t,0,n,s,null)),Ae(r,()=>r.bindTexture(r.TEXTURE_2D,null)),a}function fv(r){return r.internalFormatFloat}function I$(r,e,t,o){let[n,s]=oc(e,t);return Zd(r,n,s,fv(o),o.textureFormatFloat,r.FLOAT)}function dv(r){return r.internalFormatHalfFloat}function N$(r,e,t,o){let[n,s]=oc(e,t);return Zd(r,n,s,dv(o),o.textureFormatFloat,o.textureTypeHalfFloat)}function hv(r){return r.downloadTextureFormat}function S$(r,e,t,o){let[n,s]=oc(e,t);return Zd(r,n,s,hv(o),r.RGBA,r.UNSIGNED_BYTE)}function gv(r){return r.internalFormatPackedFloat}function T$(r,e,t,o){let[n,s]=Hi(e,t);return Zd(r,n,s,gv(o),r.RGBA,r.FLOAT)}function xv(r){return r.internalFormatPackedHalfFloat}function A$(r,e,t,o){let[n,s]=Hi(e,t);return Zd(r,n,s,xv(o),r.RGBA,o.textureTypeHalfFloat)}function E$(r,e,t){let o=0,n=3*4,s=3*4+2*4;return Ae(r,()=>r.bindBuffer(r.ARRAY_BUFFER,t)),tv(r,e,"clipSpacePos",t,3,s,o)&&tv(r,e,"uv",t,2,s,n)}function D$(r,e,t,o,n,s){Ae(r,()=>r.bindTexture(r.TEXTURE_2D,e));let a,i,l;n instanceof Uint8Array?(a=new Uint8Array(t*o*4),i=r.UNSIGNED_BYTE,l=r.RGBA):(a=new Float32Array(t*o*4),i=r.FLOAT,l=s.internalFormatPackedFloat),a.set(n),Ae(r,()=>r.texImage2D(r.TEXTURE_2D,0,l,t,o,0,r.RGBA,i,a)),Ae(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function $$(r,e,t){Ae(r,()=>r.bindTexture(r.TEXTURE_2D,e)),t.data instanceof Uint8Array?Ae(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,t.width,t.height,0,r.RGBA,r.UNSIGNED_BYTE,t.data)):Ae(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,t)),Ae(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function R$(r,e,t,o){let n=r.createBuffer();Ae(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,n));let i=4*4*e*t;return Ae(r,()=>r.bufferData(r.PIXEL_PACK_BUFFER,i,r.STREAM_READ)),Ae(r,()=>r.readPixels(0,0,t,e,r.RGBA,r.FLOAT,0)),Ae(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,null)),n}function F$(r,e,t){let o=r,n=new Float32Array(t);return o.bindBuffer(o.PIXEL_PACK_BUFFER,e),o.getBufferSubData(o.PIXEL_PACK_BUFFER,0,n),o.bindBuffer(o.PIXEL_PACK_BUFFER,null),n}function O$(r,e,t,o){let[n,s]=oc(e,t),a=4,i=new Uint8Array(e$(e*t,a));return Ae(r,()=>r.readPixels(0,0,n,s,o.downloadTextureFormat,r.UNSIGNED_BYTE,i)),new Float32Array(i.buffer)}function P$(r,e,t,o,n,s,a,i){let l=r,u=new Float32Array(t$(s,a));return l.bindBuffer(l.PIXEL_PACK_BUFFER,e),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,u),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),u}function M$(r,e,t){let o=new Float32Array(e*t*4);return Ae(r,()=>r.readPixels(0,0,t,e,r.RGBA,r.FLOAT,o)),o}var yv=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let t=W().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,QD(t,e)):this.gl=Go(t);let o="WEBGL_color_buffer_float",n="EXT_color_buffer_half_float";if(W().getNumber("WEBGL_VERSION")===1){let s="OES_texture_float",a="OES_texture_half_float";if(this.textureFloatExtension=Xd(this.gl,s),Wo(this.gl,a))this.textureHalfFloatExtension=Xd(this.gl,a);else if(W().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(o),Wo(this.gl,n))this.colorBufferHalfFloatExtension=Xd(this.gl,n);else if(W().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(o="EXT_color_buffer_float",Wo(this.gl,o))this.colorBufferFloatExtension=this.gl.getExtension(o);else if(Wo(this.gl,n))this.colorBufferHalfFloatExtension=this.gl.getExtension(n);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=v$(this.gl),this.indexBuffer=C$(this.gl),this.framebuffer=p$(this.gl),this.textureConfig=Kd(this.gl,this.textureHalfFloatExtension)}get debug(){return W().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let e=this.gl;Ae(e,()=>e.finish()),Ae(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),Ae(e,()=>e.deleteFramebuffer(this.framebuffer)),Ae(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),Ae(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),Ae(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),I$(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),N$(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),S$(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),$$(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,o,n){this.throwIfDisposed(),D$(this.gl,e,t,o,n,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),A$(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),T$(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(rv(this.gl,this.framebuffer),this.outputTexture=null),Ae(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,o){return this.downloadMatrixDriver(e,()=>O$(this.gl,t,o,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,o,n,s,a){return P$(this.gl,e,t,o,n,s,a,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return F$(this.gl,e,t)}createBufferFromTexture(e,t,o){this.bindTextureToFrameBuffer(e);let n=R$(this.gl,t,o,this.textureConfig);return this.unbindTextureToFrameBuffer(),n}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,o;if(W().getBool("WEBGL_FENCE_API_ENABLED")){let n=e,s=n.fenceSync(n.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),o=()=>{let a=n.clientWaitSync(s,0,0);return a===n.ALREADY_SIGNALED||a===n.CONDITION_SATISFIED},t=s}else W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),o=()=>this.isQueryAvailable(t,W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):o=()=>!0;return{query:t,isFencePassed:o}}downloadMatrixFromPackedTexture(e,t,o){return this.downloadMatrixDriver(e,()=>M$(this.gl,t,o))}createProgram(e){this.throwIfDisposed();let t=this.gl,o=n$(t,e),n=k$(t),s=s$(t);return Ae(t,()=>t.attachShader(s,n)),Ae(t,()=>t.attachShader(s,o)),i$(t,s),this.debug&&vx(t,s),this.vertexAttrsAreBound||(this.setProgram(s),this.vertexAttrsAreBound=E$(t,this.program,this.vertexBuffer)),s}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&Ae(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&vx(this.gl,this.program),Ae(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,o=!0){return this.throwIfDisposed(),o?m$(this.gl,e,t):f$(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),Ae(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,o){this.throwIfDisposed(),this.throwIfNoProgram(),d$(this.gl,e,t,o)}setOutputMatrixTexture(e,t,o){this.setOutputMatrixTextureDriver(e,o,t)}setOutputPackedMatrixTexture(e,t,o){this.throwIfDisposed();let[n,s]=Hi(t,o);this.setOutputMatrixTextureDriver(e,n,s)}setOutputMatrixWriteRegion(e,t,o,n){this.setOutputMatrixWriteRegionDriver(o,e,n,t)}setOutputPackedMatrixWriteRegion(e,t,o,n){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&vx(this.gl,this.program),Yd(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&this.debugValidate(),Ae(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),Ae(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Xd(this.gl,W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let o=this.gl,n=this.getQueryTimerExtensionWebGL2(),s=o.createQuery();return o.beginQuery(n.TIME_ELAPSED_EXT,s),s}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let t=this.gl,o=this.getQueryTimerExtensionWebGL2();t.endQuery(o.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await x.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){let o=this.gl;return o.getQueryParameter(e,o.QUERY_RESULT)/1e6}else{let o=this.getQueryTimerExtensionWebGL1();return o.getQueryObjectEXT(e,o.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){let o=this.gl,n=this.getQueryTimerExtensionWebGL2(),s=o.getQueryParameter(e,o.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),s&&!this.disjoint}else{let o=this.getQueryTimerExtensionWebGL1(),n=o.getQueryObjectEXT(e,o.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(o.GPU_DISJOINT_EXT)),n&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=p8(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:o}=this.itemsToPoll[t];o()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),!(this.itemsToPoll.length>1)&&x.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),Cx(this.gl,e,this.framebuffer),this.debug&&Yd(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Cx(this.gl,this.outputTexture,this.framebuffer),this.debug&&Yd(this.gl)):rv(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let o=t();return this.unbindTextureToFrameBuffer(),o}setOutputMatrixTextureDriver(e,t,o){this.throwIfDisposed();let n=this.gl;Cx(n,e,this.framebuffer),this.debug&&Yd(n),this.outputTexture=e,Ae(n,()=>n.viewport(0,0,t,o)),Ae(n,()=>n.scissor(0,0,t,o))}setOutputMatrixWriteRegionDriver(e,t,o,n){this.throwIfDisposed(),Ae(this.gl,()=>this.gl.scissor(e,t,o,n))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function p8(r){let e=0;for(;e{let h=x.sizeFromShape(d.shapeInfo.logicalShape);d.shapeInfo.isUniform?n.push(`uniform float ${d.name}${h>1?`[${h}]`:""};`):(n.push(`uniform sampler2D ${d.name};`),n.push(`uniform int offset${d.name};`))});let s=n.join(` -`),a=r.map(d=>m8(d,e,o)).join(` -`),i=e.texShape,l=Ot(),u=h8(l),c,p,m=y8(l);return e.isPacked?(c=f8(e.logicalShape,i),p=x8(l)):(c=d8(e.logicalShape,i),p=g8(l)),o&&(m+=b8),[m,u,p,s,c,a,t].join(` -`)}function Bp(r){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return w8(r);case 1:return _8(r);case 2:return k8(r);case 3:return v8(r);case 4:return C8(r);case 5:return I8(r);case 6:return N8(r);default:throw new Error(`${e.length}-D input sampling is not yet supported`)}}function B$(r){switch(r.shapeInfo.logicalShape.length){case 0:return S8(r);case 1:return T8(r);case 2:return A8(r);case 3:return E8(r);default:return D8(r)}}function m8(r,e,t=!1){let o="";t?o+=B$(r):o+=Bp(r);let n=r.shapeInfo.logicalShape,s=e.logicalShape;return n.length<=s.length&&(t?o+=$8(r,e):o+=R8(r,e)),o}function f8(r,e){switch(r.length){case 0:return V$();case 1:return F8(r,e);case 2:return M8(r,e);case 3:return O8(r,e);default:return P8(r,e)}}function d8(r,e){switch(r.length){case 0:return V$();case 1:return L8(r,e);case 2:return W8(r,e);case 3:return z8(r,e);case 4:return B8(r,e);case 5:return V8(r,e);case 6:return G8(r,e);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function h8(r){return` + }`;return rR(r,t)}function kR(r){let e=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return iR(r,e)}function vR(r){let e=new Uint16Array([0,1,2,2,1,3]);return aR(r,e)}function eh(r,e,t,o,n,s){uR(e,t);let a=lR(r),i=r.TEXTURE_2D;return Ae(r,()=>r.bindTexture(i,a)),Ae(r,()=>r.texParameteri(i,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE)),Ae(r,()=>r.texParameteri(i,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE)),Ae(r,()=>r.texParameteri(i,r.TEXTURE_MIN_FILTER,r.NEAREST)),Ae(r,()=>r.texParameteri(i,r.TEXTURE_MAG_FILTER,r.NEAREST)),Ae(r,()=>r.texImage2D(i,0,o,e,t,0,n,s,null)),Ae(r,()=>r.bindTexture(r.TEXTURE_2D,null)),a}function $v(r){return r.internalFormatFloat}function CR(r,e,t,o){let[n,s]=ac(e,t);return eh(r,n,s,$v(o),o.textureFormatFloat,r.FLOAT)}function Rv(r){return r.internalFormatHalfFloat}function IR(r,e,t,o){let[n,s]=ac(e,t);return eh(r,n,s,Rv(o),o.textureFormatFloat,o.textureTypeHalfFloat)}function Fv(r){return r.downloadTextureFormat}function NR(r,e,t,o){let[n,s]=ac(e,t);return eh(r,n,s,Fv(o),r.RGBA,r.UNSIGNED_BYTE)}function Ov(r){return r.internalFormatPackedFloat}function SR(r,e,t,o){let[n,s]=Hi(e,t);return eh(r,n,s,Ov(o),r.RGBA,r.FLOAT)}function Pv(r){return r.internalFormatPackedHalfFloat}function TR(r,e,t,o){let[n,s]=Hi(e,t);return eh(r,n,s,Pv(o),r.RGBA,o.textureTypeHalfFloat)}function AR(r,e,t){let o=0,n=3*4,s=3*4+2*4;return Ae(r,()=>r.bindBuffer(r.ARRAY_BUFFER,t)),wv(r,e,"clipSpacePos",t,3,s,o)&&wv(r,e,"uv",t,2,s,n)}function ER(r,e,t,o,n,s){Ae(r,()=>r.bindTexture(r.TEXTURE_2D,e));let a,i,l;n instanceof Uint8Array?(a=new Uint8Array(t*o*4),i=r.UNSIGNED_BYTE,l=r.RGBA):(a=new Float32Array(t*o*4),i=r.FLOAT,l=s.internalFormatPackedFloat),a.set(n),Ae(r,()=>r.texImage2D(r.TEXTURE_2D,0,l,t,o,0,r.RGBA,i,a)),Ae(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function DR(r,e,t){Ae(r,()=>r.bindTexture(r.TEXTURE_2D,e)),t.data instanceof Uint8Array?Ae(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,t.width,t.height,0,r.RGBA,r.UNSIGNED_BYTE,t.data)):Ae(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,t)),Ae(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function $R(r,e,t,o){let n=r.createBuffer();Ae(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,n));let i=4*4*e*t;return Ae(r,()=>r.bufferData(r.PIXEL_PACK_BUFFER,i,r.STREAM_READ)),Ae(r,()=>r.readPixels(0,0,t,e,r.RGBA,r.FLOAT,0)),Ae(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,null)),n}function RR(r,e,t){let o=r,n=new Float32Array(t);return o.bindBuffer(o.PIXEL_PACK_BUFFER,e),o.getBufferSubData(o.PIXEL_PACK_BUFFER,0,n),o.bindBuffer(o.PIXEL_PACK_BUFFER,null),n}function FR(r,e,t,o){let[n,s]=ac(e,t),a=4,i=new Uint8Array(Q$(e*t,a));return Ae(r,()=>r.readPixels(0,0,n,s,o.downloadTextureFormat,r.UNSIGNED_BYTE,i)),new Float32Array(i.buffer)}function OR(r,e,t,o,n,s,a,i){let l=r,u=new Float32Array(eR(s,a));return l.bindBuffer(l.PIXEL_PACK_BUFFER,e),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,u),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),u}function PR(r,e,t){let o=new Float32Array(e*t*4);return Ae(r,()=>r.readPixels(0,0,t,e,r.RGBA,r.FLOAT,o)),o}var Mv=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let t=j().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,J$(t,e)):this.gl=Go(t);let o="WEBGL_color_buffer_float",n="EXT_color_buffer_half_float";if(j().getNumber("WEBGL_VERSION")===1){let s="OES_texture_float",a="OES_texture_half_float";if(this.textureFloatExtension=Jd(this.gl,s),Wo(this.gl,a))this.textureHalfFloatExtension=Jd(this.gl,a);else if(j().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(o),Wo(this.gl,n))this.colorBufferHalfFloatExtension=Jd(this.gl,n);else if(j().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(o="EXT_color_buffer_float",Wo(this.gl,o))this.colorBufferFloatExtension=this.gl.getExtension(o);else if(Wo(this.gl,n))this.colorBufferHalfFloatExtension=this.gl.getExtension(n);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=kR(this.gl),this.indexBuffer=vR(this.gl),this.framebuffer=cR(this.gl),this.textureConfig=Zd(this.gl,this.textureHalfFloatExtension)}get debug(){return j().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let e=this.gl;Ae(e,()=>e.finish()),Ae(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),Ae(e,()=>e.deleteFramebuffer(this.framebuffer)),Ae(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),Ae(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),Ae(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),CR(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),IR(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),NR(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),DR(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,o,n){this.throwIfDisposed(),ER(this.gl,e,t,o,n,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),TR(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),SR(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(_v(this.gl,this.framebuffer),this.outputTexture=null),Ae(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,o){return this.downloadMatrixDriver(e,()=>FR(this.gl,t,o,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,o,n,s,a){return OR(this.gl,e,t,o,n,s,a,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return RR(this.gl,e,t)}createBufferFromTexture(e,t,o){this.bindTextureToFrameBuffer(e);let n=$R(this.gl,t,o,this.textureConfig);return this.unbindTextureToFrameBuffer(),n}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,o;if(j().getBool("WEBGL_FENCE_API_ENABLED")){let n=e,s=n.fenceSync(n.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),o=()=>{let a=n.clientWaitSync(s,0,0);return a===n.ALREADY_SIGNALED||a===n.CONDITION_SATISFIED},t=s}else j().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),o=()=>this.isQueryAvailable(t,j().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):o=()=>!0;return{query:t,isFencePassed:o}}downloadMatrixFromPackedTexture(e,t,o){return this.downloadMatrixDriver(e,()=>PR(this.gl,t,o))}createProgram(e){this.throwIfDisposed();let t=this.gl,o=oR(t,e),n=_R(t),s=nR(t);return Ae(t,()=>t.attachShader(s,n)),Ae(t,()=>t.attachShader(s,o)),sR(t,s),this.debug&&Ax(t,s),this.vertexAttrsAreBound||(this.setProgram(s),this.vertexAttrsAreBound=AR(t,this.program,this.vertexBuffer)),s}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&Ae(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&Ax(this.gl,this.program),Ae(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,o=!0){return this.throwIfDisposed(),o?pR(this.gl,e,t):mR(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),Ae(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,o){this.throwIfDisposed(),this.throwIfNoProgram(),fR(this.gl,e,t,o)}setOutputMatrixTexture(e,t,o){this.setOutputMatrixTextureDriver(e,o,t)}setOutputPackedMatrixTexture(e,t,o){this.throwIfDisposed();let[n,s]=Hi(t,o);this.setOutputMatrixTextureDriver(e,n,s)}setOutputMatrixWriteRegion(e,t,o,n){this.setOutputMatrixWriteRegionDriver(o,e,n,t)}setOutputPackedMatrixWriteRegion(e,t,o,n){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&Ax(this.gl,this.program),Qd(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&this.debugValidate(),Ae(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),Ae(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Jd(this.gl,j().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(j().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let o=this.gl,n=this.getQueryTimerExtensionWebGL2(),s=o.createQuery();return o.beginQuery(n.TIME_ELAPSED_EXT,s),s}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(j().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let t=this.gl,o=this.getQueryTimerExtensionWebGL2();t.endQuery(o.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await y.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,j().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,j().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){let o=this.gl;return o.getQueryParameter(e,o.QUERY_RESULT)/1e6}else{let o=this.getQueryTimerExtensionWebGL1();return o.getQueryObjectEXT(e,o.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){let o=this.gl,n=this.getQueryTimerExtensionWebGL2(),s=o.getQueryParameter(e,o.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),s&&!this.disjoint}else{let o=this.getQueryTimerExtensionWebGL1(),n=o.getQueryObjectEXT(e,o.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(o.GPU_DISJOINT_EXT)),n&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=OY(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:o}=this.itemsToPoll[t];o()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),!(this.itemsToPoll.length>1)&&y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),Ex(this.gl,e,this.framebuffer),this.debug&&Qd(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Ex(this.gl,this.outputTexture,this.framebuffer),this.debug&&Qd(this.gl)):_v(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let o=t();return this.unbindTextureToFrameBuffer(),o}setOutputMatrixTextureDriver(e,t,o){this.throwIfDisposed();let n=this.gl;Ex(n,e,this.framebuffer),this.debug&&Qd(n),this.outputTexture=e,Ae(n,()=>n.viewport(0,0,t,o)),Ae(n,()=>n.scissor(0,0,t,o))}setOutputMatrixWriteRegionDriver(e,t,o,n){this.throwIfDisposed(),Ae(this.gl,()=>this.gl.scissor(e,t,o,n))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function OY(r){let e=0;for(;e{let h=y.sizeFromShape(d.shapeInfo.logicalShape);d.shapeInfo.isUniform?n.push(`uniform float ${d.name}${h>1?`[${h}]`:""};`):(n.push(`uniform sampler2D ${d.name};`),n.push(`uniform int offset${d.name};`))});let s=n.join(` +`),a=r.map(d=>PY(d,e,o)).join(` +`),i=e.texShape,l=Pt(),u=zY(l),c,p,m=GY(l);return e.isPacked?(c=MY(e.logicalShape,i),p=VY(l)):(c=LY(e.logicalShape,i),p=BY(l)),o&&(m+=WY),[m,u,p,s,c,a,t].join(` +`)}function Wp(r){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return UY(r);case 1:return jY(r);case 2:return HY(r);case 3:return qY(r);case 4:return KY(r);case 5:return XY(r);case 6:return YY(r);default:throw new Error(`${e.length}-D input sampling is not yet supported`)}}function zR(r){switch(r.shapeInfo.logicalShape.length){case 0:return ZY(r);case 1:return JY(r);case 2:return QY(r);case 3:return e7(r);default:return t7(r)}}function PY(r,e,t=!1){let o="";t?o+=zR(r):o+=Wp(r);let n=r.shapeInfo.logicalShape,s=e.logicalShape;return n.length<=s.length&&(t?o+=r7(r,e):o+=o7(r,e)),o}function MY(r,e){switch(r.length){case 0:return BR();case 1:return n7(r,e);case 2:return a7(r,e);case 3:return s7(r,e);default:return i7(r,e)}}function LY(r,e){switch(r.length){case 0:return BR();case 1:return l7(r,e);case 2:return f7(r,e);case 3:return u7(r,e);case 4:return c7(r,e);case 5:return p7(r,e);case 6:return m7(r,e);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function zY(r){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${r.texture2D}(textureSampler, uv).r; } - `}function g8(r){return` + `}function BY(r){return` void setOutput(float val) { ${r.output} = vec4(val, 0, 0, 0); } - `}function x8(r){return` + `}function VY(r){return` void setOutput(vec4 val) { ${r.output} = val; } - `}function y8(r){return`${r.version} + `}function GY(r){return`${r.version} precision highp float; precision highp int; precision highp sampler2D; @@ -339,10 +339,10 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee return fract((p3.x + p3.y) * p3.z); } - ${U8} - ${j8} - ${H8} - `}var U8=` + ${d7} + ${h7} + ${g7} + `}var d7=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; @@ -354,7 +354,7 @@ vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,j8=` +`,h7=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); @@ -362,7 +362,7 @@ vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,H8=` +`,g7=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { @@ -371,7 +371,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,b8=` +`,WY=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? @@ -382,11 +382,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } -`;function V$(){return` +`;function BR(){return` int getOutputCoords() { return 0; } - `}function F8(r,e){let t=[Math.ceil(e[0]/2),Math.ceil(e[1]/2)];return t[0]===1?` + `}function n7(r,e){let t=[Math.ceil(e[0]/2),Math.ceil(e[1]/2)];return t[0]===1?` int getOutputCoords() { return 2 * int(resultUV.x * ${t[1]}.0); } @@ -400,7 +400,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${t[0]}, ${t[1]})); return 2 * (resTexRC.x * ${t[1]} + resTexRC.y); } - `}function L8(r,e){return e[0]===1?` + `}function l7(r,e){return e[0]===1?` int getOutputCoords() { return int(resultUV.x * ${e[1]}.0); } @@ -414,7 +414,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${e[0]}, ${e[1]})); return resTexRC.x * ${e[1]} + resTexRC.y; } - `}function O8(r,e){let t=[Math.ceil(e[0]/2),Math.ceil(e[1]/2)],o=Math.ceil(r[2]/2),n=o*Math.ceil(r[1]/2);return` + `}function s7(r,e){let t=[Math.ceil(e[0]/2),Math.ceil(e[1]/2)],o=Math.ceil(r[2]/2),n=o*Math.ceil(r[1]/2);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -428,7 +428,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec3(b, r, c); } - `}function z8(r,e){let t=zs(["r","c","d"],r);return` + `}function u7(r,e){let t=Bs(["r","c","d"],r);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${e[0]}, ${e[1]})); @@ -436,7 +436,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${t} return ivec3(r, c, d); } - `}function P8(r,e){let t=[Math.ceil(e[0]/2),Math.ceil(e[1]/2)],o=Math.ceil(r[r.length-1]/2),n=o*Math.ceil(r[r.length-2]/2),s=n,a="",i="b, r, c";for(let l=2;l=1?c="coords = 0;":c=i.map(b=>`coords.${p[b+u]} = 0;`).join(` -`);let m="";a<2&&s>0?m="coords":m=r.shapeInfo.logicalShape.map((b,w)=>`coords.${p[w+u]}`).join(", ");let f="return outputValue;",h=x.sizeFromShape(r.shapeInfo.logicalShape)===1,y=x.sizeFromShape(e.logicalShape)===1;if(s===1&&!h&&!y)f=` + `}function r7(r,e){let t=r.name,o=t.charAt(0).toUpperCase()+t.slice(1),n="get"+o+"AtOutCoords",s=r.shapeInfo.logicalShape.length,a=e.logicalShape.length,i=MR(r.shapeInfo.logicalShape,e.logicalShape),l=Le(a),u=a-s,c,p=["x","y","z","w","u","v"];s===0?c="":a<2&&i.length>=1?c="coords = 0;":c=i.map(w=>`coords.${p[w+u]} = 0;`).join(` +`);let m="";a<2&&s>0?m="coords":m=r.shapeInfo.logicalShape.map((w,b)=>`coords.${p[b+u]}`).join(", ");let f="return outputValue;",h=y.sizeFromShape(r.shapeInfo.logicalShape)===1,x=y.sizeFromShape(e.logicalShape)===1;if(s===1&&!h&&!x)f=` return vec4(outputValue.xy, outputValue.xy); - `;else if(h&&!y)a===1?f=` + `;else if(h&&!x)a===1?f=` return vec4(outputValue.x, outputValue.x, 0., 0.); `:f=` return vec4(outputValue.x); - `;else if(i.length){let b=s-2,w=s-1;i.indexOf(b)>-1&&i.indexOf(w)>-1?f="return vec4(outputValue.x);":i.indexOf(b)>-1?f="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":i.indexOf(w)>-1&&(f="return vec4(outputValue.xx, outputValue.zz);")}return` + `;else if(i.length){let w=s-2,b=s-1;i.indexOf(w)>-1&&i.indexOf(b)>-1?f="return vec4(outputValue.x);":i.indexOf(w)>-1?f="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":i.indexOf(b)>-1&&(f="return vec4(outputValue.xx, outputValue.zz);")}return` vec4 ${n}() { ${l} coords = getOutputCoords(); ${c} vec4 outputValue = get${o}(${m}); ${f} } - `}function R8(r,e){let t=r.name,o=t.charAt(0).toUpperCase()+t.slice(1),n="get"+o+"AtOutCoords",s=e.texShape,a=r.shapeInfo.texShape,i=r.shapeInfo.logicalShape.length,l=e.logicalShape.length;if(!r.shapeInfo.isUniform&&i===l&&r.shapeInfo.flatOffset==null&&x.arraysEqual(a,s))return` + `}function o7(r,e){let t=r.name,o=t.charAt(0).toUpperCase()+t.slice(1),n="get"+o+"AtOutCoords",s=e.texShape,a=r.shapeInfo.texShape,i=r.shapeInfo.logicalShape.length,l=e.logicalShape.length;if(!r.shapeInfo.isUniform&&i===l&&r.shapeInfo.flatOffset==null&&y.arraysEqual(a,s))return` float ${n}() { return sampleTexture(${t}, resultUV); } - `;let u=Le(l),c=L$(r.shapeInfo.logicalShape,e.logicalShape),p=l-i,m,f=["x","y","z","w","u","v"];i===0?m="":l<2&&c.length>=1?m="coords = 0;":m=c.map(h=>`coords.${f[h+p]} = 0;`).join(` + `;let u=Le(l),c=MR(r.shapeInfo.logicalShape,e.logicalShape),p=l-i,m,f=["x","y","z","w","u","v"];i===0?m="":l<2&&c.length>=1?m="coords = 0;":m=c.map(h=>`coords.${f[h+p]} = 0;`).join(` `);let d="";return l<2&&i>0?d="coords":d=r.shapeInfo.logicalShape.map((h,g)=>`coords.${f[g+p]}`).join(", "),` float ${n}() { ${u} coords = getOutputCoords(); ${m} return get${o}(${d}); } - `}function Le(r){if(r<=1)return"int";if(r===2)return"ivec2";if(r===3)return"ivec3";if(r===4)return"ivec4";if(r===5)return"ivec5";if(r===6)return"ivec6";throw Error(`GPU for rank ${r} is not yet supported`)}function Gp(r,e){let t=JSON.parse(JSON.stringify(r));return t.shapeInfo.logicalShape=e,t}function Wp(r,e){return e.map(t=>r[t]).join(", ")}function G$(r,e,t,o){let n=e.userCode,s=t.map((f,d)=>{let h={logicalShape:f.shape,texShape:f.isUniform?null:f.texData.texShape,isUniform:f.isUniform,isPacked:f.isUniform?!1:f.texData.isPacked,flatOffset:null};return f.texData!=null&&f.texData.slice!=null&&f.texData.slice.flatOffset>0&&(h.flatOffset=f.texData.slice.flatOffset),{name:e.variableNames[d],shapeInfo:h}}),a=s.map(f=>f.shapeInfo),i={logicalShape:o.shape,texShape:o.texData.texShape,isUniform:!1,isPacked:o.texData.isPacked,flatOffset:null},l=z$(s,i,n,e.packedInputs),u=r.createProgram(l),c=null,p=r.getUniformLocation(u,"NAN",!1);W().getNumber("WEBGL_VERSION")===1&&(c=r.getUniformLocation(u,"INFINITY",!1));let m={};for(let f=0;f{let n=t.logicalShape,s=e[o],a=s.shape;if(!x.arraysEqual(n,a))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${n} and ${a} must match`);if(t.isUniform&&s.isUniform)return;let i=t.texShape,l=s.isUniform?null:s.texData.texShape;if(!x.arraysEqual(i,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${i} and ${l} must match`)})}function U$(r,e,t,o,n){W$(e.inShapeInfos,t),W$([e.outShapeInfo],[o]);let s=o.texData.texture,a=o.texData.texShape;o.texData.isPacked?r.setOutputPackedMatrixTexture(s,a[0],a[1]):r.setOutputMatrixTexture(s,a[0],a[1]),r.setProgram(e.webGLProgram),W().getNumber("WEBGL_VERSION")===1&&e.infLoc!==null&&r.gl.uniform1f(e.infLoc,Infinity),e.nanLoc!==null&&r.gl.uniform1f(e.nanLoc,NaN),t.forEach((i,l)=>{let u=e.program.variableNames[l],c=e.uniformLocations[u],p=e.uniformLocations[`offset${u}`];if(c!=null){if(i.isUniform){if(x.sizeFromShape(i.shape)<2)r.gl.uniform1f(c,i.uniformValues[0]);else{let m=i.uniformValues;m instanceof Float32Array||(m=new Float32Array(m)),r.gl.uniform1fv(c,m)}return}i.texData.slice!=null&&p!=null&&r.gl.uniform1i(p,i.texData.slice.flatOffset),r.setInputMatrixTexture(i.texData.texture,c,l)}}),n!=null&&n(r,e.webGLProgram),r.executeProgram()}function j$(r,e,t){let o="";e.concat(t).forEach(a=>{let i=a.texData!=null&&a.texData.slice!=null&&a.texData.slice.flatOffset>0,l=a.isUniform?"uniform":a.texData.texShape;o+=`${a.shape}_${l}_${i}`});let n=r.userCode,s=r.constructor.name;return s+="_"+o+"_"+n,s}var{addImpl:H$,bincountImpl:Tx,bincountReduceImpl:q$,ceilImpl:K$,concatImpl:X$,expImpl:Y$,expm1Impl:Z$,floorImpl:J$,gatherV2Impl:Q$,greaterImpl:eR,lessImpl:tR,linSpaceImpl:rR,logImpl:oR,maxImpl:nR,maximumImpl:sR,minimumImpl:iR,multiplyImpl:aR,negImpl:lR,prodImpl:uR,rangeImpl:cR,rsqrtImpl:pR,simpleAbsImpl:Ax,sliceImpl:mR,stridedSliceImpl:fR,subImpl:dR,tileImpl:hR,topKImpl:gR,transposeImpl:Up,uniqueImpl:xR}=Bk;function bv(r,e){return["x","y","z","w","u","v"].slice(0,e).map(t=>`${r}.${t}`)}function Ut(r,e){return e===1?[r]:bv(r,e)}function yR(r,e){if(r===1)return"rc";let t="";for(let o=0;or[t]).join(", ")}function VR(r,e,t,o){let n=e.userCode,s=t.map((f,d)=>{let h={logicalShape:f.shape,texShape:f.isUniform?null:f.texData.texShape,isUniform:f.isUniform,isPacked:f.isUniform?!1:f.texData.isPacked,flatOffset:null};return f.texData!=null&&f.texData.slice!=null&&f.texData.slice.flatOffset>0&&(h.flatOffset=f.texData.slice.flatOffset),{name:e.variableNames[d],shapeInfo:h}}),a=s.map(f=>f.shapeInfo),i={logicalShape:o.shape,texShape:o.texData.texShape,isUniform:!1,isPacked:o.texData.isPacked,flatOffset:null},l=LR(s,i,n,e.packedInputs),u=r.createProgram(l),c=null,p=r.getUniformLocation(u,"NAN",!1);j().getNumber("WEBGL_VERSION")===1&&(c=r.getUniformLocation(u,"INFINITY",!1));let m={};for(let f=0;f{let n=t.logicalShape,s=e[o],a=s.shape;if(!y.arraysEqual(n,a))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${n} and ${a} must match`);if(t.isUniform&&s.isUniform)return;let i=t.texShape,l=s.isUniform?null:s.texData.texShape;if(!y.arraysEqual(i,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${i} and ${l} must match`)})}function WR(r,e,t,o,n){GR(e.inShapeInfos,t),GR([e.outShapeInfo],[o]);let s=o.texData.texture,a=o.texData.texShape;o.texData.isPacked?r.setOutputPackedMatrixTexture(s,a[0],a[1]):r.setOutputMatrixTexture(s,a[0],a[1]),r.setProgram(e.webGLProgram),j().getNumber("WEBGL_VERSION")===1&&e.infLoc!==null&&r.gl.uniform1f(e.infLoc,Infinity),e.nanLoc!==null&&r.gl.uniform1f(e.nanLoc,NaN),t.forEach((i,l)=>{let u=e.program.variableNames[l],c=e.uniformLocations[u],p=e.uniformLocations[`offset${u}`];if(c!=null){if(i.isUniform){if(y.sizeFromShape(i.shape)<2)r.gl.uniform1f(c,i.uniformValues[0]);else{let m=i.uniformValues;m instanceof Float32Array||(m=new Float32Array(m)),r.gl.uniform1fv(c,m)}return}i.texData.slice!=null&&p!=null&&r.gl.uniform1i(p,i.texData.slice.flatOffset),r.setInputMatrixTexture(i.texData.texture,c,l)}}),n!=null&&n(r,e.webGLProgram),r.executeProgram()}function UR(r,e,t){let o="";e.concat(t).forEach(a=>{let i=a.texData!=null&&a.texData.slice!=null&&a.texData.slice.flatOffset>0,l=a.isUniform?"uniform":a.texData.texShape;o+=`${a.shape}_${l}_${i}`});let n=r.userCode,s=r.constructor.name;return s+="_"+o+"_"+n,s}var{addImpl:jR,bincountImpl:Fx,bincountReduceImpl:HR,ceilImpl:qR,concatImpl:KR,expImpl:XR,expm1Impl:YR,floorImpl:ZR,gatherV2Impl:JR,greaterImpl:QR,lessImpl:eF,linSpaceImpl:tF,logImpl:rF,maxImpl:oF,maximumImpl:nF,minimumImpl:sF,multiplyImpl:iF,negImpl:aF,prodImpl:lF,rangeImpl:uF,rsqrtImpl:cF,simpleAbsImpl:Ox,sliceImpl:pF,stridedSliceImpl:mF,subImpl:fF,tileImpl:dF,topKImpl:hF,transposeImpl:qp,uniqueImpl:gF}=Qk;function Lv(r,e){return["x","y","z","w","u","v"].slice(0,e).map(t=>`${r}.${t}`)}function jt(r,e){return e===1?[r]:Lv(r,e)}function xF(r,e){if(r===1)return"rc";let t="";for(let o=0;o ${e[0]}`;let o="";for(let n=r-2;n= ${e[n]}`,n ${e[0]}`;let o="";for(let n=r-2;n= ${e[n]}`,n= ${e}; bool rEdge = rp1 >= ${t}; - `}function X8(r,e){let t=r.length,o=Y8(t,e);return t===1?`getA(rc), + `}function b7(r,e){let t=r.length,o=w7(t,e);return t===1?`getA(rc), rc + 1 >= ${r[0]} ? 0. : getA(rc + 1), 0, 0`:`getA(${o[0]}), cEdge ? 0. : getA(${o[1]}), rEdge ? 0. : getA(${o[2]}), - rEdge || cEdge ? 0. : getA(${o[3]})`}var Jd=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let o="";for(let n=0;n<4;n++){let s="thisRC = rc;";n%2==1&&(s+="thisRC.z += 1;"),n>1&&(s+="thisRC.y += 1;"),o+=` + rEdge || cEdge ? 0. : getA(${o[3]})`}var th=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let o="";for(let n=0;n<4;n++){let s="thisRC = rc;";n%2==1&&(s+="thisRC.z += 1;"),n>1&&(s+="thisRC.y += 1;"),o+=` ${s} ${n>0?"if(thisRC.y < rows && thisRC.z < cols){":""} int flatIndex = getFlatIndex(thisRC); @@ -868,8 +868,8 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${n>0?"}":""} `}this.userCode=` - ${Z8(t)} - ${zp(e)} + ${_7(t)} + ${Gp(e)} void main() { ivec3 rc = getOutputCoords(); @@ -884,12 +884,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function Z8(r){return` + `}};function _7(r){return` ivec3 inputCoordsFromReshapedOutCoords(int index) { - ${zs(["r","c","d"],r)} + ${Bs(["r","c","d"],r)} return ivec3(r, c, d); } - `}var _v=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,o){let n=wR(t,o),s=_R(e,n,o);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let a=bR(e,n,this.gpgpu.gl,this.gpgpu.textureConfig,o);if(this.freeTextures[s].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=a,this.log();let l=this.freeTextures[s].shift();return this.usedTextures[s].push(l),l}let i;return n===_r.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):n===_r.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):n===_r.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):n===_r.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):n===_r.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[s].push(i),this.numUsedTextures++,this._numBytesAllocated+=a,this.log(),i}releaseTexture(e,t,o,n){if(this.freeTextures==null)return;let s=wR(o,n),a=_R(t,s,n);a in this.freeTextures||(this.freeTextures[a]=[]);let i=bR(t,s,this.gpgpu.gl,this.gpgpu.textureConfig,n),l=W().get("WEBGL_DELETE_TEXTURE_THRESHOLD");l!==-1&&this._numBytesAllocated>l?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=i):(this.freeTextures[a].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let u=this.usedTextures[a],c=u.indexOf(e);if(c<0)throw new Error("Cannot release a texture that was never provided by this texture manager");u.splice(c,1),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(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${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)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function J8(r,e){let t=r;if(e===t.R32F)return 4;if(e===t.R16F)return 2;if(e===t.RGBA32F)return 16;if(e===r.RGBA)return 16;if(e===t.RGBA16F)return 8;throw new Error(`Unknown internal format ${e}`)}function bR(r,e,t,o,n){let s=Q8(e,o),a;if(n){let[l,u]=Hi(r[0],r[1]);a=l*u}else{let[l,u]=oc(r[0],r[1]);a=l*u}let i=J8(t,s);return a*i}function Q8(r,e){switch(r){case _r.PACKED_2X2_FLOAT32:return gv(e);case _r.PACKED_2X2_FLOAT16:return xv(e);case _r.UNPACKED_FLOAT32:return fv(e);case _r.UNPACKED_FLOAT16:return dv(e);case _r.PACKED_4X1_UNSIGNED_BYTE:return hv(e);default:throw new Error(`Unknown physical texture type ${r}`)}}function eY(r){return W().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?r?_r.PACKED_2X2_FLOAT32:_r.UNPACKED_FLOAT32:r?_r.PACKED_2X2_FLOAT16:_r.UNPACKED_FLOAT16}function wR(r,e){if(r===Er.UPLOAD)return _r.PACKED_2X2_FLOAT32;if(r===Er.RENDER||r==null)return eY(e);if(r===Er.DOWNLOAD||r===Er.PIXELS)return _r.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function _R(r,e,t){return`${r[0]}_${r[1]}_${e}_${t}`}var ho=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.userCode=` + `}var Bv=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,o){let n=bF(t,o),s=wF(e,n,o);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let a=yF(e,n,this.gpgpu.gl,this.gpgpu.textureConfig,o);if(this.freeTextures[s].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=a,this.log();let l=this.freeTextures[s].shift();return this.usedTextures[s].push(l),l}let i;return n===kr.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):n===kr.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):n===kr.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):n===kr.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):n===kr.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[s].push(i),this.numUsedTextures++,this._numBytesAllocated+=a,this.log(),i}releaseTexture(e,t,o,n){if(this.freeTextures==null)return;let s=bF(o,n),a=wF(t,s,n);a in this.freeTextures||(this.freeTextures[a]=[]);let i=yF(t,s,this.gpgpu.gl,this.gpgpu.textureConfig,n),l=j().get("WEBGL_DELETE_TEXTURE_THRESHOLD");l!==-1&&this._numBytesAllocated>l?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=i):(this.freeTextures[a].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let u=this.usedTextures[a],c=u.indexOf(e);if(c<0)throw new Error("Cannot release a texture that was never provided by this texture manager");u.splice(c,1),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(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${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)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function k7(r,e){let t=r;if(e===t.R32F)return 4;if(e===t.R16F)return 2;if(e===t.RGBA32F)return 16;if(e===r.RGBA)return 16;if(e===t.RGBA16F)return 8;throw new Error(`Unknown internal format ${e}`)}function yF(r,e,t,o,n){let s=v7(e,o),a;if(n){let[l,u]=Hi(r[0],r[1]);a=l*u}else{let[l,u]=ac(r[0],r[1]);a=l*u}let i=k7(t,s);return a*i}function v7(r,e){switch(r){case kr.PACKED_2X2_FLOAT32:return Ov(e);case kr.PACKED_2X2_FLOAT16:return Pv(e);case kr.UNPACKED_FLOAT32:return $v(e);case kr.UNPACKED_FLOAT16:return Rv(e);case kr.PACKED_4X1_UNSIGNED_BYTE:return Fv(e);default:throw new Error(`Unknown physical texture type ${r}`)}}function C7(r){return j().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?r?kr.PACKED_2X2_FLOAT32:kr.UNPACKED_FLOAT32:r?kr.PACKED_2X2_FLOAT16:kr.UNPACKED_FLOAT16}function bF(r,e){if(r===Dr.UPLOAD)return kr.PACKED_2X2_FLOAT32;if(r===Dr.RENDER||r==null)return C7(e);if(r===Dr.DOWNLOAD||r===Dr.PIXELS)return kr.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function wF(r,e,t){return`${r[0]}_${r[1]}_${e}_${t}`}var ho=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.userCode=` float unaryOperation(float x) { ${t} } @@ -900,11 +900,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},xr="if (isnan(x)) return x;",kR="return x;",kv="return abs(x);";var vR="return (x >= 0.0) ? x : (exp(x) - 1.0);",CR=xr+` + `}},yr="if (isnan(x)) return x;",_F="return x;",Vv="return abs(x);";var kF="return (x >= 0.0) ? x : (exp(x) - 1.0);",vF=yr+` return (x < 0.0) ? 0.0 : x; -`,IR=xr+` +`,CF=yr+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,Qd="return x;";var NR="return x;",SR=` +`,rh="return x;";var IF="return x;",NF=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -913,7 +913,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,TR=` +`,SF=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -923,7 +923,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,AR=` +`,TF=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -933,7 +933,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,Bs=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` +`,Vs=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` vec4 unaryOperation(vec4 x) { ${t} } @@ -944,17 +944,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}};var vv=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;let t=e.length,o=Ut("rc",t),n=Le(t),s=yR(t,o),a=o.slice(-2),i=t<=1?"rc":`vec2(${a.join(",")})`;this.userCode=` + `}};var Gv=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;let t=e.length,o=jt("rc",t),n=Le(t),s=xF(t,o),a=o.slice(-2),i=t<=1?"rc":`vec2(${a.join(",")})`;this.userCode=` void main() { ${n} rc = getOutputCoords(); vec4 packedInput = getA(${s}); setOutput(getChannel(packedInput, ${i})); } - `}};var tY=Tr.whereImpl,rY=1e-7,oY=1e-4,Ex={};function nY(r){return r in Ex||(Ex[r]={}),Ex[r]}var sY=128,iY=600;function aY(){return W().global.screen==null?1024:W().global.screen.height*W().global.screen.width*window.devicePixelRatio*iY/1024/1024}var jp=class extends Gs{constructor(e){super();if(this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.warnedAboutCPUBackend=!1,this.pendingDeletes=0,this.disposed=!1,!W().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(e==null){let t=Go(W().getNumber("WEBGL_VERSION"));this.binaryCache=nY(W().getNumber("WEBGL_VERSION")),this.gpgpu=new yv(t),this.canvas=t.canvas,this.gpgpuCreatedLocally=!0}else this.gpgpu=e,this.binaryCache={},this.gpgpuCreatedLocally=!1,this.canvas=e.gl.canvas;this.textureManager=new _v(this.gpgpu),this.numMBBeforeWarning=aY(),this.texData=new Xa(this,Po())}nextDataId(){return jp.nextDataId++}numDataIds(){return this.texData.numDataIds()+(this.cpuBackend?this.cpuBackend.numDataIds():0)-this.pendingDeletes}write(e,t,o){if((W().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||W().getBool("DEBUG"))&&this.checkNumericalProblems(e),o==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let n={id:this.nextDataId()};return this.texData.set(n,{shape:t,dtype:o,values:e,usage:Er.UPLOAD,refCount:1}),n}refCount(e){return this.texData.has(e)?this.texData.get(e).refCount:0}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}move(e,t,o,n,s){if(W().getBool("DEBUG")&&this.checkNumericalProblems(t),n==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:o,dtype:n,values:t,usage:Er.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){let t=this.texData.get(e),{values:o,dtype:n,complexTensorInfos:s,slice:a,shape:i,isPacked:l}=t;if(a!=null){let m;l?m=new Bs(i,Qd):m=new ho(i,Qd);let f=this.runWebGLProgram(m,[{dataId:e,shape:i,dtype:n}],n),d=this.readSync(f.dataId);return this.disposeIntermediateTensorInfo(f),d}if(o!=null)return this.convertAndCacheOnCPU(e);if(n==="string")return o;let u=this.activeTimers!=null,c;u&&(c=x.now());let p;if(n==="complex64"){let m=this.readSync(s.real.dataId),f=this.readSync(s.imag.dataId);p=N.mergeRealAndImagArrays(m,f)}else p=this.getValuesFromTexture(e);return u&&(this.downloadWaitMs+=x.now()-c),this.convertAndCacheOnCPU(e,p)}async read(e){if(this.pendingRead.has(e)){let d=this.pendingRead.get(e);return new Promise(h=>d.push(h))}let t=this.texData.get(e),{values:o,shape:n,slice:s,dtype:a,complexTensorInfos:i,isPacked:l}=t;if(s!=null){let d;l?d=new Bs(n,Qd):d=new ho(n,Qd);let h=this.runWebGLProgram(d,[{dataId:e,shape:n,dtype:a}],a),g=this.read(h.dataId);return this.disposeIntermediateTensorInfo(h),g}if(o!=null)return this.convertAndCacheOnCPU(e);if(!W().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&W().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let u=null,c;if(a!=="complex64"&&W().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(e);let d=this.texData.get(c.dataId);u=this.gpgpu.createBufferFromTexture(d.texture,...Cl(n))}this.pendingRead.set(e,[]),a!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(a==="complex64"){let d=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),h=d[0],g=d[1];p=N.mergeRealAndImagArrays(h,g)}else if(u==null)p=this.getValuesFromTexture(e);else{let d=x.sizeFromShape(n);p=this.gpgpu.downloadFloat32MatrixFromBuffer(u,d)}c!=null&&this.disposeIntermediateTensorInfo(c);let m=this.convertAndCacheOnCPU(e,p),f=this.pendingRead.get(e);return this.pendingRead.delete(e),f.forEach(d=>d(m)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&Po().removeDataId(e,this),this.pendingDeletes--),m}bufferSync(e){let t=this.readSync(e.dataId),o=t;if(e.dtype==="string")try{o=t.map(n=>x.decodeString(n))}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return ve(e.shape,e.dtype,o)}checkNumericalProblems(e){if(e!=null)for(let t=0;t0}async time(e){let t=this.activeTimers,o=[],n=!1;this.programTimersStack==null?(this.programTimersStack=o,n=!0):this.activeTimers.push(o),this.activeTimers=o,e();let s=x.flatten(this.activeTimers.map(l=>l.query)).filter(l=>l!=null),a=x.flatten(this.activeTimers.map(l=>l.name)).filter(l=>l!=null);this.activeTimers=t,n&&(this.programTimersStack=null);let i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};if(W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let l=await Promise.all(s);i.kernelMs=x.sum(l),i.getExtraProfileInfo=()=>l.map((u,c)=>({name:a[c],ms:u})).map(u=>`${u.name}: ${u.ms}`).join(", ")}else i.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,i}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:x.now(),endMs:null}}endTimer(e){return W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=x.now(),e)}async getQueryTime(e){if(W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);let t=e;return t.endMs-t.startMs}disposeData(e,t=!1){if(this.pendingDisposal.has(e))return!1;if(!this.texData.has(e))return!0;if(t?this.texData.get(e).refCount=0:this.texData.get(e).refCount--,!t&&this.texData.get(e).refCount>0)return!1;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),this.pendingDeletes++,!1;this.releaseGPUData(e);let{complexTensorInfos:o}=this.texData.get(e);return o!=null&&(this.disposeData(o.real.dataId,t),this.disposeData(o.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:o,texShape:n,usage:s,isPacked:a,slice:i}=this.texData.get(e),l=i&&i.origDataId||e,u=this.dataRefCount.get(l);u>1?this.dataRefCount.set(l,u-1):(this.dataRefCount.delete(l),t!=null&&(this.numBytesInGPU-=this.computeBytes(n,o),this.textureManager.releaseTexture(t,n,s,a)));let c=this.texData.get(e);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture}getDataInfo(e){return this.texData.get(e)}getCPUBackend(){return W().getBool("WEBGL_CPU_FORWARD")?(this.cpuBackend==null&&(this.cpuBackend=Po().findBackend("cpu")),this.cpuBackend):null}shouldExecuteOnCPU(e,t=sY){let o=this.getCPUBackend();return!W().getBool("IS_TEST")&&!this.warnedAboutCPUBackend&&o==null&&(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),o!=null&&e.every(n=>this.texData.get(n.dataId).texture==null&&x.sizeFromShape(n.shape)0&&x.isString(o[0])){let s=o.map(a=>x.encodeString(a));n=this.write(s,e,t)}else n=this.write(o,e,t);return this.texData.get(n).usage=null,{dataId:n,shape:e,dtype:t}}makeOutput(e,t,o){let{dataId:n}=this.makeTensorInfo(e,t,o);return Po().makeTensorFromDataId(n,e,t,this)}unpackTensor(e){let t=new vv(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new wv(e.shape),o=!0;return this.runWebGLProgram(t,[e],e.dtype,null,o)}packedReshape(e,t){let o=[Il(e.shape),...Nl(e.shape)],n={dtype:e.dtype,shape:o,dataId:e.dataId},s=[Il(t),...Nl(t)],a=new Jd(s,o),i=!0,l=this.runWebGLProgram(a,[n],e.dtype,null,i);return{dataId:l.dataId,shape:t,dtype:l.dtype}}decode(e){let t=this.texData.get(e),{isPacked:o,shape:n,dtype:s}=t,a=Ix(n),i;o?i=new lv(a):i=new av(a);let l=!0,u=this.runWebGLProgram(i,[{shape:a,dtype:s,dataId:e}],s,null,l);return{dtype:s,shape:n,dataId:u.dataId}}runWebGLProgram(e,t,o,n,s=!1){let a=this.makeTensorInfo(e.outputShape,o),i=this.texData.get(a.dataId);if(e.packedOutput&&(i.isPacked=!0),e.outPackingScheme===vl.DENSE){let g=Cl(e.outputShape);i.texShape=g.map(y=>y*2)}if(e.outTexUsage!=null&&(i.usage=e.outTexUsage),x.sizeFromShape(a.shape)===0)return i.values=x.getTypedArrayFromDType(a.dtype,0),a;let l=[],u=t.map(g=>{if(g.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let y=this.texData.get(g.dataId);if(y.texture==null){if(!e.packedInputs&&x.sizeFromShape(g.shape)<=W().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:g.shape,texData:null,isUniform:!0,uniformValues:y.values};e.packedInputs&&(y.isPacked=!0,y.shape=g.shape)}else if(!!y.isPacked!=!!e.packedInputs)g=y.isPacked?this.unpackTensor(g):this.packTensor(g),l.push(g),y=this.texData.get(g.dataId);else if(y.isPacked&&!nc(y.shape,g.shape)){let b=g,w=g.shape;g.shape=y.shape,g=this.packedReshape(g,w),l.push(g),y=this.texData.get(g.dataId),b.shape=w}return this.uploadToGPU(g.dataId),{shape:g.shape,texData:y,isUniform:!1}});this.uploadToGPU(a.dataId);let c={shape:a.shape,texData:i,isUniform:!1},p=j$(e,u,c),m=this.getAndSaveBinary(p,()=>G$(this.gpgpu,e,u,c)),f=this.activeTimers!=null,d;f&&(d=this.startTimer()),U$(this.gpgpu,m,u,c,n),l.forEach(g=>this.disposeIntermediateTensorInfo(g)),f&&(d=this.endTimer(d),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(d)}));let h=W().get("WEBGL_FLUSH_THRESHOLD");if(h>0){let g=x.now();g-this.lastGlFlushTime>h&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=g)}if(!W().getBool("WEBGL_LAZILY_UNPACK")&&i.isPacked&&s===!1){let g=this.unpackTensor(a);return this.disposeIntermediateTensorInfo(a),g}return a}compileAndRun(e,t,o,n,s=!1){return o=o||t[0].dtype,this.runWebGLProgram(e,t,o,n,s)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(W().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(t=>{this.gpgpu.deleteProgram(this.binaryCache[t].webGLProgram),delete this.binaryCache[t]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=V(()=>{if(!W().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=W().getBool("DEBUG");W().set("DEBUG",!1);let t=this.abs(ue(1e-8)).dataSync()[0];if(W().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?rY:oY}uploadToGPU(e){let t=this.texData.get(e),{shape:o,dtype:n,values:s,texture:a,usage:i,isPacked:l}=t;if(a!=null)return;let u=this.activeTimers!=null,c;u&&(c=x.now());let p=t.texShape;if(p==null&&(p=h$(o,l),t.texShape=p),s!=null){let m=Ix(o),f,d=p[1],h=p[0],g=s instanceof Uint8Array;l?([d,h]=Hi(p[0],p[1]),f=new mv(m,[h,d],g)):f=new pv(m,[h,d],g);let y=this.makeTensorInfo([h,d],n);g?this.texData.get(y.dataId).usage=Er.PIXELS:this.texData.get(y.dataId).usage=Er.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(y.dataId),d,h,s);let b=!0,w=this.runWebGLProgram(f,[y],n,null,b),_=this.texData.get(w.dataId);t.texture=_.texture,t.texShape=_.texShape,t.isPacked=_.isPacked,t.usage=_.usage,this.disposeIntermediateTensorInfo(y),this.texData.delete(w.dataId),t.values=null,u&&(this.uploadWaitMs+=x.now()-c)}else{let m=this.acquireTexture(p,i,n,l);t.texture=m}}convertAndCacheOnCPU(e,t){let o=this.texData.get(e),{dtype:n}=o;return this.releaseGPUData(e),t!=null&&(o.values=lY(t,n)),o.values}acquireTexture(e,t,o,n){if(this.numBytesInGPU+=this.computeBytes(e,o),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let s=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${s} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,n)}computeBytes(e,t){return e[0]*e[1]*x.bytesPerElement(t)}};jp.nextDataId=0;function lY(r,e){if(e==="float32"||e==="complex64")return r;if(e==="int32"||e==="bool"){let t=e==="int32"?new Int32Array(r.length):new Uint8Array(r.length);for(let o=0;onew jp,2);var Dx=` + `}};var I7=Ar.whereImpl,N7=1e-7,S7=1e-4,Px={};function T7(r){return r in Px||(Px[r]={}),Px[r]}var A7=128,E7=600;function D7(){return j().global.screen==null?1024:j().global.screen.height*j().global.screen.width*window.devicePixelRatio*E7/1024/1024}var Kp=class extends Ws{constructor(e){super();if(this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.warnedAboutCPUBackend=!1,this.pendingDeletes=0,this.disposed=!1,!j().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(e==null){let t=Go(j().getNumber("WEBGL_VERSION"));this.binaryCache=T7(j().getNumber("WEBGL_VERSION")),this.gpgpu=new Mv(t),this.canvas=t.canvas,this.gpgpuCreatedLocally=!0}else this.gpgpu=e,this.binaryCache={},this.gpgpuCreatedLocally=!1,this.canvas=e.gl.canvas;this.textureManager=new Bv(this.gpgpu),this.numMBBeforeWarning=D7(),this.texData=new Xa(this,Po())}nextDataId(){return Kp.nextDataId++}numDataIds(){return this.texData.numDataIds()+(this.cpuBackend?this.cpuBackend.numDataIds():0)-this.pendingDeletes}write(e,t,o){if((j().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||j().getBool("DEBUG"))&&this.checkNumericalProblems(e),o==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let n={id:this.nextDataId()};return this.texData.set(n,{shape:t,dtype:o,values:e,usage:Dr.UPLOAD,refCount:1}),n}refCount(e){return this.texData.has(e)?this.texData.get(e).refCount:0}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}move(e,t,o,n,s){if(j().getBool("DEBUG")&&this.checkNumericalProblems(t),n==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:o,dtype:n,values:t,usage:Dr.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){let t=this.texData.get(e),{values:o,dtype:n,complexTensorInfos:s,slice:a,shape:i,isPacked:l}=t;if(a!=null){let m;l?m=new Vs(i,rh):m=new ho(i,rh);let f=this.runWebGLProgram(m,[{dataId:e,shape:i,dtype:n}],n),d=this.readSync(f.dataId);return this.disposeIntermediateTensorInfo(f),d}if(o!=null)return this.convertAndCacheOnCPU(e);if(n==="string")return o;let u=this.activeTimers!=null,c;u&&(c=y.now());let p;if(n==="complex64"){let m=this.readSync(s.real.dataId),f=this.readSync(s.imag.dataId);p=S.mergeRealAndImagArrays(m,f)}else p=this.getValuesFromTexture(e);return u&&(this.downloadWaitMs+=y.now()-c),this.convertAndCacheOnCPU(e,p)}async read(e){if(this.pendingRead.has(e)){let d=this.pendingRead.get(e);return new Promise(h=>d.push(h))}let t=this.texData.get(e),{values:o,shape:n,slice:s,dtype:a,complexTensorInfos:i,isPacked:l}=t;if(s!=null){let d;l?d=new Vs(n,rh):d=new ho(n,rh);let h=this.runWebGLProgram(d,[{dataId:e,shape:n,dtype:a}],a),g=this.read(h.dataId);return this.disposeIntermediateTensorInfo(h),g}if(o!=null)return this.convertAndCacheOnCPU(e);if(!j().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&j().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let u=null,c;if(a!=="complex64"&&j().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(e);let d=this.texData.get(c.dataId);u=this.gpgpu.createBufferFromTexture(d.texture,...Cl(n))}this.pendingRead.set(e,[]),a!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(a==="complex64"){let d=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),h=d[0],g=d[1];p=S.mergeRealAndImagArrays(h,g)}else if(u==null)p=this.getValuesFromTexture(e);else{let d=y.sizeFromShape(n);p=this.gpgpu.downloadFloat32MatrixFromBuffer(u,d)}c!=null&&this.disposeIntermediateTensorInfo(c);let m=this.convertAndCacheOnCPU(e,p),f=this.pendingRead.get(e);return this.pendingRead.delete(e),f.forEach(d=>d(m)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&Po().removeDataId(e,this),this.pendingDeletes--),m}bufferSync(e){let t=this.readSync(e.dataId),o=t;if(e.dtype==="string")try{o=t.map(n=>y.decodeString(n))}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return ve(e.shape,e.dtype,o)}checkNumericalProblems(e){if(e!=null)for(let t=0;t0}async time(e){let t=this.activeTimers,o=[],n=!1;this.programTimersStack==null?(this.programTimersStack=o,n=!0):this.activeTimers.push(o),this.activeTimers=o,e();let s=y.flatten(this.activeTimers.map(l=>l.query)).filter(l=>l!=null),a=y.flatten(this.activeTimers.map(l=>l.name)).filter(l=>l!=null);this.activeTimers=t,n&&(this.programTimersStack=null);let i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};if(j().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let l=await Promise.all(s);i.kernelMs=y.sum(l),i.getExtraProfileInfo=()=>l.map((u,c)=>({name:a[c],ms:u})).map(u=>`${u.name}: ${u.ms}`).join(", ")}else i.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,i}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return j().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(e){return j().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=y.now(),e)}async getQueryTime(e){if(j().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);let t=e;return t.endMs-t.startMs}disposeData(e,t=!1){if(this.pendingDisposal.has(e))return!1;if(!this.texData.has(e))return!0;if(t?this.texData.get(e).refCount=0:this.texData.get(e).refCount--,!t&&this.texData.get(e).refCount>0)return!1;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),this.pendingDeletes++,!1;this.releaseGPUData(e);let{complexTensorInfos:o}=this.texData.get(e);return o!=null&&(this.disposeData(o.real.dataId,t),this.disposeData(o.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:o,texShape:n,usage:s,isPacked:a,slice:i}=this.texData.get(e),l=i&&i.origDataId||e,u=this.dataRefCount.get(l);u>1?this.dataRefCount.set(l,u-1):(this.dataRefCount.delete(l),t!=null&&(this.numBytesInGPU-=this.computeBytes(n,o),this.textureManager.releaseTexture(t,n,s,a)));let c=this.texData.get(e);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture}getDataInfo(e){return this.texData.get(e)}getCPUBackend(){return j().getBool("WEBGL_CPU_FORWARD")?(this.cpuBackend==null&&(this.cpuBackend=Po().findBackend("cpu")),this.cpuBackend):null}shouldExecuteOnCPU(e,t=A7){let o=this.getCPUBackend();return!j().getBool("IS_TEST")&&!this.warnedAboutCPUBackend&&o==null&&(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),o!=null&&e.every(n=>this.texData.get(n.dataId).texture==null&&y.sizeFromShape(n.shape)0&&y.isString(o[0])){let s=o.map(a=>y.encodeString(a));n=this.write(s,e,t)}else n=this.write(o,e,t);return this.texData.get(n).usage=null,{dataId:n,shape:e,dtype:t}}makeOutput(e,t,o){let{dataId:n}=this.makeTensorInfo(e,t,o);return Po().makeTensorFromDataId(n,e,t,this)}unpackTensor(e){let t=new Gv(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new zv(e.shape),o=!0;return this.runWebGLProgram(t,[e],e.dtype,null,o)}packedReshape(e,t){let o=[Il(e.shape),...Nl(e.shape)],n={dtype:e.dtype,shape:o,dataId:e.dataId},s=[Il(t),...Nl(t)],a=new th(s,o),i=!0,l=this.runWebGLProgram(a,[n],e.dtype,null,i);return{dataId:l.dataId,shape:t,dtype:l.dtype}}decode(e){let t=this.texData.get(e),{isPacked:o,shape:n,dtype:s}=t,a=Dx(n),i;o?i=new Sv(a):i=new Nv(a);let l=!0,u=this.runWebGLProgram(i,[{shape:a,dtype:s,dataId:e}],s,null,l);return{dtype:s,shape:n,dataId:u.dataId}}runWebGLProgram(e,t,o,n,s=!1){let a=this.makeTensorInfo(e.outputShape,o),i=this.texData.get(a.dataId);if(e.packedOutput&&(i.isPacked=!0),e.outPackingScheme===vl.DENSE){let g=Cl(e.outputShape);i.texShape=g.map(x=>x*2)}if(e.outTexUsage!=null&&(i.usage=e.outTexUsage),y.sizeFromShape(a.shape)===0)return i.values=y.getTypedArrayFromDType(a.dtype,0),a;let l=[],u=t.map(g=>{if(g.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let x=this.texData.get(g.dataId);if(x.texture==null){if(!e.packedInputs&&y.sizeFromShape(g.shape)<=j().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:g.shape,texData:null,isUniform:!0,uniformValues:x.values};e.packedInputs&&(x.isPacked=!0,x.shape=g.shape)}else if(!!x.isPacked!=!!e.packedInputs)g=x.isPacked?this.unpackTensor(g):this.packTensor(g),l.push(g),x=this.texData.get(g.dataId);else if(x.isPacked&&!lc(x.shape,g.shape)){let w=g,b=g.shape;g.shape=x.shape,g=this.packedReshape(g,b),l.push(g),x=this.texData.get(g.dataId),w.shape=b}return this.uploadToGPU(g.dataId),{shape:g.shape,texData:x,isUniform:!1}});this.uploadToGPU(a.dataId);let c={shape:a.shape,texData:i,isUniform:!1},p=UR(e,u,c),m=this.getAndSaveBinary(p,()=>VR(this.gpgpu,e,u,c)),f=this.activeTimers!=null,d;f&&(d=this.startTimer()),WR(this.gpgpu,m,u,c,n),l.forEach(g=>this.disposeIntermediateTensorInfo(g)),f&&(d=this.endTimer(d),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(d)}));let h=j().get("WEBGL_FLUSH_THRESHOLD");if(h>0){let g=y.now();g-this.lastGlFlushTime>h&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=g)}if(!j().getBool("WEBGL_LAZILY_UNPACK")&&i.isPacked&&s===!1){let g=this.unpackTensor(a);return this.disposeIntermediateTensorInfo(a),g}return a}compileAndRun(e,t,o,n,s=!1){return o=o||t[0].dtype,this.runWebGLProgram(e,t,o,n,s)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(j().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(t=>{this.gpgpu.deleteProgram(this.binaryCache[t].webGLProgram),delete this.binaryCache[t]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=G(()=>{if(!j().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=j().getBool("DEBUG");j().set("DEBUG",!1);let t=this.abs(le(1e-8)).dataSync()[0];if(j().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?N7:S7}uploadToGPU(e){let t=this.texData.get(e),{shape:o,dtype:n,values:s,texture:a,usage:i,isPacked:l}=t;if(a!=null)return;let u=this.activeTimers!=null,c;u&&(c=y.now());let p=t.texShape;if(p==null&&(p=dR(o,l),t.texShape=p),s!=null){let m=Dx(o),f,d=p[1],h=p[0],g=s instanceof Uint8Array;l?([d,h]=Hi(p[0],p[1]),f=new Dv(m,[h,d],g)):f=new Ev(m,[h,d],g);let x=this.makeTensorInfo([h,d],n);g?this.texData.get(x.dataId).usage=Dr.PIXELS:this.texData.get(x.dataId).usage=Dr.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(x.dataId),d,h,s);let w=!0,b=this.runWebGLProgram(f,[x],n,null,w),_=this.texData.get(b.dataId);t.texture=_.texture,t.texShape=_.texShape,t.isPacked=_.isPacked,t.usage=_.usage,this.disposeIntermediateTensorInfo(x),this.texData.delete(b.dataId),t.values=null,u&&(this.uploadWaitMs+=y.now()-c)}else{let m=this.acquireTexture(p,i,n,l);t.texture=m}}convertAndCacheOnCPU(e,t){let o=this.texData.get(e),{dtype:n}=o;return this.releaseGPUData(e),t!=null&&(o.values=$7(t,n)),o.values}acquireTexture(e,t,o,n){if(this.numBytesInGPU+=this.computeBytes(e,o),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let s=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${s} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,n)}computeBytes(e,t){return e[0]*e[1]*y.bytesPerElement(t)}};Kp.nextDataId=0;function $7(r,e){if(e==="float32"||e==="complex64")return r;if(e==="int32"||e==="bool"){let t=e==="int32"?new Int32Array(r.length):new Uint8Array(r.length);for(let o=0;onew Kp,2);var Mx=` if (isnan(a)) return a; if (isnan(b)) return b; -`;var rs=class{constructor(e,t,o){this.variableNames=["A","B"],this.outputShape=N.assertAndGetBroadcastShape(t,o),this.userCode=` +`;var rs=class{constructor(e,t,o){this.variableNames=["A","B"],this.outputShape=S.assertAndGetBroadcastShape(t,o),this.userCode=` float binaryOperation(float a, float b) { ${e} } @@ -969,7 +969,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.g = isNaN.g > 0. ? NAN : result.g; result.b = isNaN.b > 0. ? NAN : result.b; result.a = isNaN.a > 0. ? NAN : result.a; -`;var Vs=class{constructor(e,t,o,n=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=N.assertAndGetBroadcastShape(t,o);let s=this.outputShape.length,a="";if(n)if(s===0||x.sizeFromShape(this.outputShape)===1)a=` +`;var Gs=class{constructor(e,t,o,n=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=S.assertAndGetBroadcastShape(t,o);let s=this.outputShape.length,a="";if(n)if(s===0||y.sizeFromShape(this.outputShape)===1)a=` result.y = 0.; result.z = 0.; result.w = 0.; @@ -979,7 +979,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y; result.z = 0.; result.w = 0.; - `;else{let l=Ut("coords",s);a+=` + `;else{let l=jt("coords",s);a+=` bool nextRowOutOfBounds = (${l[s-2]} + 1) >= ${this.outputShape[s-2]}; bool nextColOutOfBounds = @@ -1001,21 +1001,21 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function jt(r){let{inputs:e,backend:t}=r,{x:o}=e;return t.incRef(o.dataId),{dataId:o.dataId,shape:o.shape,dtype:o.dtype}}var DR={kernelName:Ro,backendName:"webgl",kernelFunc:jt};function go(r){let{inputs:e,backend:t}=r,{real:o,imag:n}=e,s=t.makeTensorInfo(o.shape,"complex64"),a=t.texData.get(s.dataId),i=jt({inputs:{x:o},backend:t}),l=jt({inputs:{x:n},backend:t});return a.complexTensorInfos={real:i,imag:l},s}var $R={kernelName:Gl,backendName:"webgl",kernelFunc:go};var Cv="return (a < 0.) ? b * a : a;",Iv=` + `}};function Ht(r){let{inputs:e,backend:t}=r,{x:o}=e;return t.incRef(o.dataId),{dataId:o.dataId,shape:o.shape,dtype:o.dtype}}var EF={kernelName:Ro,backendName:"webgl",kernelFunc:Ht};function go(r){let{inputs:e,backend:t}=r,{real:o,imag:n}=e,s=t.makeTensorInfo(o.shape,"complex64"),a=t.texData.get(s.dataId),i=Ht({inputs:{x:o},backend:t}),l=Ht({inputs:{x:n},backend:t});return a.complexTensorInfos={real:i,imag:l},s}var DF={kernelName:Gl,backendName:"webgl",kernelFunc:go};var Wv="return (a < 0.) ? b * a : a;",Uv=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function uY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{alpha:s}=o,a=t.makeTensorInfo([],"float32",x.createScalarValue(s,"float32")),i=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Vs(Iv,n.shape,a.shape):new rs(Cv,n.shape,a.shape),l=t.runWebGLProgram(i,[n,a],n.dtype);return t.disposeIntermediateTensorInfo(a),l}var RR={kernelName:un,backendName:"webgl",kernelFunc:uY};var Nv="return (a < 0.) ? b * a : a;",Sv=` +`;function R7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{alpha:s}=o,a=t.makeTensorInfo([],"float32",y.createScalarValue(s,"float32")),i=j().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Gs(Uv,n.shape,a.shape):new rs(Wv,n.shape,a.shape),l=t.runWebGLProgram(i,[n,a],n.dtype);return t.disposeIntermediateTensorInfo(a),l}var $F={kernelName:un,backendName:"webgl",kernelFunc:R7};var jv="return (a < 0.) ? b * a : a;",Hv=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function cY(r){let{inputs:e,backend:t}=r,{x:o,alpha:n}=e,s=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Vs(Sv,o.shape,n.shape):new rs(Nv,o.shape,n.shape);return t.runWebGLProgram(s,[o,n],o.dtype)}var FR={kernelName:_n,backendName:"webgl",kernelFunc:cY};var $x="if (isnan(x)) return x;",OR=` +`;function F7(r){let{inputs:e,backend:t}=r,{x:o,alpha:n}=e,s=j().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Gs(Hv,o.shape,n.shape):new rs(jv,o.shape,n.shape);return t.runWebGLProgram(s,[o,n],o.dtype)}var RF={kernelName:_n,backendName:"webgl",kernelFunc:F7};var Lx="if (isnan(x)) return x;",FF=` if (isnan(a)) return a; if (isnan(b)) return b; -`,PR=` +`,OF=` result.r = isNaN.r > 0. ? NAN : result.r; result.g = isNaN.g > 0. ? NAN : result.g; result.b = isNaN.b > 0. ? NAN : result.b; result.a = isNaN.a > 0. ? NAN : result.a; -`;function _e({opSnippet:r,packedOpSnippet:e,cpuKernelImpl:t,dtype:o}){return({inputs:n,backend:s})=>{let{x:a}=n,i=s,l=o||a.dtype;if(i.shouldExecuteOnCPU([a])&&t!=null){let p=i.texData.get(a.dataId),m=t(p.values,l);return i.makeTensorInfo(a.shape,l,m)}let u=W().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&e!=null,c;return u?c=new Bs(a.shape,e):c=new ho(a.shape,r),i.runWebGLProgram(c,[a],l)}}function nt({opSnippet:r,packedOpSnippet:e,checkOutOfBounds:t=!1,supportsComplex:o=!1,cpuKernelImpl:n,dtype:s}){return({inputs:a,backend:i})=>{let{a:l,b:u}=a,c=i;if(o&&l.dtype==="complex64"){let d=c.texData.get(l.dataId),h=c.texData.get(u.dataId),[g,y]=[[d.complexTensorInfos.real,h.complexTensorInfos.real],[d.complexTensorInfos.imag,h.complexTensorInfos.imag]].map(w=>{let[_,C]=w,D={dataId:_.dataId,dtype:_.dtype,shape:l.shape},T={dataId:C.dataId,dtype:C.dtype,shape:u.shape},R=new rs(r,l.shape,u.shape);return c.runWebGLProgram(R,[D,T],fr(_.dtype,C.dtype))}),b=go({inputs:{real:g,imag:y},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(y),b}let p=s||fr(l.dtype,u.dtype);if(c.shouldExecuteOnCPU([l,u])&&n!=null){let d=c.texData.get(l.dataId),h=c.texData.get(u.dataId),[g,y]=n(l.shape,u.shape,d.values,h.values,p),b=c.makeTensorInfo(y,p),w=c.texData.get(b.dataId);return w.values=g,b}let m=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&e!=null,f;return m?f=new Vs(e,l.shape,u.shape,t):f=new rs(r,l.shape,u.shape),c.runWebGLProgram(f,[l,u],p)}}function Tl(r,e=!1){if(r==="linear")return e?NR:kR;if(r==="relu")return e?TR:CR;if(r==="elu")return e?SR:vR;if(r==="relu6")return e?AR:IR;if(r==="prelu")return e?Sv:Nv;if(r==="leakyrelu")return e?Iv:Cv;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var eh=class{constructor(e,t,o,n=!1,s=!1,a=!1,i=null,l=!1,u=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=o;let c=n?e[1]:e[2],p=Math.ceil(c/2),m=n?"i * 2, rc.y":"rc.y, i * 2",f=s?"rc.z, i * 2":"i * 2, rc.z",d=n?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],h=s?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],g="",y="";i&&(l?g=`vec4 activation(vec4 a) { +`;function _e({opSnippet:r,packedOpSnippet:e,cpuKernelImpl:t,dtype:o}){return({inputs:n,backend:s})=>{let{x:a}=n,i=s,l=o||a.dtype;if(i.shouldExecuteOnCPU([a])&&t!=null){let p=i.texData.get(a.dataId),m=t(p.values,l);return i.makeTensorInfo(a.shape,l,m)}let u=j().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&e!=null,c;return u?c=new Vs(a.shape,e):c=new ho(a.shape,r),i.runWebGLProgram(c,[a],l)}}function nt({opSnippet:r,packedOpSnippet:e,checkOutOfBounds:t=!1,supportsComplex:o=!1,cpuKernelImpl:n,dtype:s}){return({inputs:a,backend:i})=>{let{a:l,b:u}=a,c=i;if(o&&l.dtype==="complex64"){let d=c.texData.get(l.dataId),h=c.texData.get(u.dataId),[g,x]=[[d.complexTensorInfos.real,h.complexTensorInfos.real],[d.complexTensorInfos.imag,h.complexTensorInfos.imag]].map(b=>{let[_,k]=b,A={dataId:_.dataId,dtype:_.dtype,shape:l.shape},N={dataId:k.dataId,dtype:k.dtype,shape:u.shape},$=new rs(r,l.shape,u.shape);return c.runWebGLProgram($,[A,N],dr(_.dtype,k.dtype))}),w=go({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),w}let p=s||dr(l.dtype,u.dtype);if(c.shouldExecuteOnCPU([l,u])&&n!=null){let d=c.texData.get(l.dataId),h=c.texData.get(u.dataId),[g,x]=n(l.shape,u.shape,d.values,h.values,p),w=c.makeTensorInfo(x,p),b=c.texData.get(w.dataId);return b.values=g,w}let m=j().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&e!=null,f;return m?f=new Gs(e,l.shape,u.shape,t):f=new rs(r,l.shape,u.shape),c.runWebGLProgram(f,[l,u],p)}}function Tl(r,e=!1){if(r==="linear")return e?IF:_F;if(r==="relu")return e?SF:vF;if(r==="elu")return e?NF:kF;if(r==="relu6")return e?TF:CF;if(r==="prelu")return e?Hv:jv;if(r==="leakyrelu")return e?Uv:Wv;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var oh=class{constructor(e,t,o,n=!1,s=!1,a=!1,i=null,l=!1,u=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=o;let c=n?e[1]:e[2],p=Math.ceil(c/2),m=n?"i * 2, rc.y":"rc.y, i * 2",f=s?"rc.z, i * 2":"i * 2, rc.z",d=n?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],h=s?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],g="",x="";i&&(l?g=`vec4 activation(vec4 a) { vec4 b = getPreluActivationWeightsAtOutCoords(); ${i} }`:u?g=`vec4 activation(vec4 a) { @@ -1023,7 +1023,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${i} }`:g=`vec4 activation(vec4 x) { ${i} - }`,y="result = activation(result);");let b=a?"result += getBiasAtOutCoords();":"";a&&this.variableNames.push("bias"),l&&this.variableNames.push("preluActivationWeights"),u&&this.variableNames.push("leakyreluAlpha");let w="rc.x",_="rc.x";e[0]`The new shape (${l}) has ${u} elements and the old shape (${n.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`);let c=a.texData.get(n.dataId);return c.isPacked&&!nc(n.shape,l)&&!(c.texture!==null&&nc(c.shape,l))?zR(n,l,a):(a.incRef(n.dataId),{dataId:n.dataId,shape:l,dtype:n.dtype})}var BR={kernelName:ds,backendName:"webgl",kernelFunc:pe};var Fx=class{constructor(e,t){this.variableNames=["x"];let{windowSize:o,batchSize:n,inSize:s,outSize:a}=e;this.outputShape=[n,a];let i=Math.floor(o/4)*4,l=o%4,u="sumValue += dot(values, ones);";if(t!=null){let p=1/t;u=`sumValue += dot(values * ${x.isInt(p)?p.toPrecision(2):p}, ones);`}let c="";s%o>0&&(c=` + `}};var PF="return a * b;";function Kv(r){let{inputs:e,backend:t}=r,{a:o,b:n}=e,s=S.upcastType(o.dtype,n.dtype);if(o.dtype==="complex64"){let i=t.texData.get(o.dataId),l=t.texData.get(n.dataId),u=new zx(qv.REAL,o.shape,n.shape),c=new zx(qv.IMAG,o.shape,n.shape),p=[{dataId:i.complexTensorInfos.real.dataId,dtype:i.complexTensorInfos.real.dtype,shape:o.shape},{dataId:i.complexTensorInfos.imag.dataId,dtype:i.complexTensorInfos.imag.dtype,shape:o.shape},{dataId:l.complexTensorInfos.real.dataId,dtype:l.complexTensorInfos.real.dtype,shape:n.shape},{dataId:l.complexTensorInfos.imag.dataId,dtype:l.complexTensorInfos.imag.dtype,shape:n.shape}],m=t.runWebGLProgram(u,p,"float32"),f=t.runWebGLProgram(c,p,"float32"),d=go({inputs:{real:m,imag:f},backend:t});return t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(f),d}if(t.shouldExecuteOnCPU([o,n])){let i=t.texData.get(o.dataId),l=t.texData.get(n.dataId),[u,c]=iF(o.shape,n.shape,i.values,l.values,s),p=t.makeTensorInfo(c,s),m=t.texData.get(p.dataId);return m.values=u,p}let a;return j().getBool("WEBGL_PACK_BINARY_OPERATIONS")?a=new Gs(PF,o.shape,n.shape):a=new rs(PF,o.shape,n.shape),t.runWebGLProgram(a,[o,n],s)}var MF={kernelName:xn,backendName:"webgl",kernelFunc:Kv};function LF(r,e,t){let o=[Il(r.shape),...Nl(r.shape)],n={dtype:r.dtype,shape:o,dataId:r.dataId},s=[Il(e),...Nl(e)],a=new th(s,o),i=!0,l=t.runWebGLProgram(a,[n],r.dtype,null,i);return{dataId:l.dataId,shape:e,dtype:l.dtype}}function pe(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{shape:s}=o,a=t,i=y.sizeFromShape(n.shape),l=y.inferFromImplicitShape(s,i),u=y.sizeFromShape(l);y.assert(i===u,()=>`The new shape (${l}) has ${u} elements and the old shape (${n.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`);let c=a.texData.get(n.dataId);return c.isPacked&&!lc(n.shape,l)&&!(c.texture!==null&&lc(c.shape,l))?LF(n,l,a):(a.incRef(n.dataId),{dataId:n.dataId,shape:l,dtype:n.dtype})}var zF={kernelName:ds,backendName:"webgl",kernelFunc:pe};var Bx=class{constructor(e,t){this.variableNames=["x"];let{windowSize:o,batchSize:n,inSize:s,outSize:a}=e;this.outputShape=[n,a];let i=Math.floor(o/4)*4,l=o%4,u="sumValue += dot(values, ones);";if(t!=null){let p=1/t;u=`sumValue += dot(values * ${y.isInt(p)?p.toPrecision(2):p}, ones);`}let c="";s%o>0&&(c=` if (inIdx < 0 || inIdx >= ${s}) { return 0.0; } @@ -1120,7 +1120,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(sumValue); } - `}};var Ev=class{constructor(e,t){this.variableNames=["x"];let{windowSize:o,batchSize:n,inSize:s,outSize:a}=e;this.outputShape=[n,a];let i="0.0",l="";t==="prod"?i="1.0":t==="min"?(i="1.0 / 1e-20",l="min"):t==="max"&&(i="-1.0 / 1e-20",l="max");let u=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?u="sumValue":t==="prod"?u="prodValue":t==="all"?u="allValue":t==="any"&&(u="anyValue");let c=Math.floor(o/4)*4,p=o%4,m=` + `}};var Xv=class{constructor(e,t){this.variableNames=["x"];let{windowSize:o,batchSize:n,inSize:s,outSize:a}=e;this.outputShape=[n,a];let i="0.0",l="";t==="prod"?i="1.0":t==="min"?(i="1.0 / 1e-20",l="min"):t==="max"&&(i="-1.0 / 1e-20",l="max");let u=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?u="sumValue":t==="prod"?u="prodValue":t==="all"?u="allValue":t==="any"&&(u="anyValue");let c=Math.floor(o/4)*4,p=o%4,m=` if (${t==="sum"}) { sumValue += dot(values, ones); } else if (${t==="prod"}) { @@ -1205,12 +1205,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(${u}); } - `}};function pY(r){let e=[];for(;e.length===0||e[e.length-1].outSize!==1;){let t=e.length?e[e.length-1].outSize:r[1],o=N.computeOptimalWindowSize(t);e.push({inSize:t,windowSize:o,outSize:Math.ceil(t/o)})}return e}function To(r,e,t,o){let n=pY(r.shape),s=r;for(let a=0;a6)throw Error(`Transpose for rank ${e} is not yet supported`);let t=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],o=new Array(e);for(let n=0;n6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let n=Le(this.rank),s=bv("rc",this.rank),a=new Array(this.rank);for(let c=0;c6)throw Error(`Transpose for rank ${e} is not yet supported`);let t=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],o=new Array(e);for(let n=0;n6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let n=Le(this.rank),s=Lv("rc",this.rank),a=new Array(this.rank);for(let c=0;c=2&&c>=2&&w,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${h}) and (${g}).`);let C=(y>b?r.shape.slice(0,-2):e.shape.slice(0,-2)).concat([f,d]);x.assert(p===m,()=>`Error in matMul: inner shapes (${p}) and (${m}) of Tensors with shapes ${r.shape} and ${e.shape} and transposeA=${t} and transposeB=${o} must match.`);let D=t?[y,p,f]:[y,f,p],T=o?[b,d,m]:[b,m,d],R=pe({inputs:{x:r},backend:n,attrs:{shape:D}}),P=pe({inputs:{x:e},backend:n,attrs:{shape:T}}),B=[R,P],G=Math.max(y,b),U=t?R.shape[1]:R.shape[2],j=s!=null,H=a!=null,K=l==="leakyrelu",X=l!=null?Tl(l,!0):null,oe=j||H||K||X!=null,Y;if((f===1||d===1)&&U>Rv&&oe===!1){let te=R,ie=P;t&&(te=Mt({inputs:{x:R},backend:n,attrs:{perm:[0,2,1]}}),B.push(te)),o&&(ie=Mt({inputs:{x:P},backend:n,attrs:{perm:[0,2,1]}}),B.push(ie));let le=d!==1,ae=d===1,fe=te;le&&(fe=pe({inputs:{x:te},backend:n,attrs:{shape:[G,U,1]}}),B.push(fe));let de=d===1?2:1,xe=ie;ae&&(xe=pe({inputs:{x:ie},backend:n,attrs:{shape:[G,1,U]}}),B.push(xe));let we=Av({inputs:{a:fe,b:xe},backend:n});Y=th({inputs:{x:we},backend:n,attrs:{axis:de,keepDims:!0}}),B.push(we)}else{let te=fr(r.dtype,e.dtype),ie=new eh(D,T,[G,f,d],t,o,j,X,H,K),le=[R,P];if(s!=null&&le.push(s),H&&le.push(a),K){let ae=n.makeTensorInfo([],"float32",x.createScalarValue(i,"float32"));le.push(ae),B.push(ae)}Y=n.runWebGLProgram(ie,le,te)}let re=pe({inputs:{x:Y},backend:n,attrs:{shape:C}});B.push(Y);for(let te of B)n.disposeIntermediateTensorInfo(te);return re}function fY(r){let{inputs:e,backend:t,attrs:o}=r,{a:n,b:s,bias:a,preluActivationWeights:i}=e,{transposeA:l,transposeB:u,activation:c,leakyreluAlpha:p}=o;return ic({a:n,b:s,transposeA:l,transposeB:u,backend:t,bias:a,preluActivationWeights:i,leakyreluAlpha:p,activation:c})}var UR={kernelName:ws,backendName:"webgl",kernelFunc:fY};var jR="return abs(x);";function dY(r){let{inputs:e,backend:t}=r,{x:o}=e;if(t.shouldExecuteOnCPU([o])&&o.dtype!=="complex64"){let s=t.texData.get(o.dataId),a=Ax(s.values);return t.makeTensorInfo(o.shape,o.dtype,a)}let n;return W().getBool("WEBGL_PACK_UNARY_OPERATIONS")?n=new Bs(o.shape,jR):n=new ho(o.shape,jR),t.runWebGLProgram(n,[o],o.dtype)}var HR={kernelName:as,backendName:"webgl",kernelFunc:dY};var hY=xr+` + `}};function Al(r,e,t){let o=j().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Zv(r.shape,e):new Yv(r.shape,e);return t.runWebGLProgram(o,[r],r.dtype)}function BF(r,e,t,o){let n=e,s=r.shape.length,a=y.parseAxisParam(n,r.shape),i=a,l=S.getAxesPermutation(i,s),u=l!=null,c=r;u&&(c=Al(r,l,o),i=S.getInnerMostAxes(i.length,s)),S.assertAxesAreInnerMostDims("sum",i,s);let[p,m]=S.computeOutAndReduceShapes(c.shape,i),f=p;t&&(f=S.expandShapeToKeepDim(p,a));let d=y.sizeFromShape(m),g=y.sizeFromShape(r.shape)/d,x=pe({inputs:{x:c},attrs:{shape:[g,d]},backend:o}),w=fu(r.dtype),b=To(x,w,"sum",o),_=pe({inputs:{x:b},attrs:{shape:f},backend:o});return o.disposeIntermediateTensorInfo(x),o.disposeIntermediateTensorInfo(b),u&&o.disposeIntermediateTensorInfo(c),_}function nh(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o;return BF(n,s,a,t)}var VF={kernelName:Dn,backendName:"webgl",kernelFunc:nh};function Lt(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{perm:s}=o,a=t,i=n.shape.length,l=new Array(i);for(let c=0;c=2&&c>=2&&b,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${h}) and (${g}).`);let k=(x>w?r.shape.slice(0,-2):e.shape.slice(0,-2)).concat([f,d]);y.assert(p===m,()=>`Error in matMul: inner shapes (${p}) and (${m}) of Tensors with shapes ${r.shape} and ${e.shape} and transposeA=${t} and transposeB=${o} must match.`);let A=t?[x,p,f]:[x,f,p],N=o?[w,d,m]:[w,m,d],$=pe({inputs:{x:r},backend:n,attrs:{shape:A}}),F=pe({inputs:{x:e},backend:n,attrs:{shape:N}}),M=[$,F],V=Math.max(x,w),W=t?$.shape[1]:$.shape[2],U=s!=null,H=a!=null,q=l==="leakyrelu",X=l!=null?Tl(l,!0):null,oe=U||H||q||X!=null,Y;if((f===1||d===1)&&W>Jv&&oe===!1){let J=$,ie=F;t&&(J=Lt({inputs:{x:$},backend:n,attrs:{perm:[0,2,1]}}),M.push(J)),o&&(ie=Lt({inputs:{x:F},backend:n,attrs:{perm:[0,2,1]}}),M.push(ie));let ue=d!==1,ae=d===1,fe=J;ue&&(fe=pe({inputs:{x:J},backend:n,attrs:{shape:[V,W,1]}}),M.push(fe));let de=d===1?2:1,xe=ie;ae&&(xe=pe({inputs:{x:ie},backend:n,attrs:{shape:[V,1,W]}}),M.push(xe));let we=Kv({inputs:{a:fe,b:xe},backend:n});Y=nh({inputs:{x:we},backend:n,attrs:{axis:de,keepDims:!0}}),M.push(we)}else{let J=dr(r.dtype,e.dtype),ie=new oh(A,N,[V,f,d],t,o,U,X,H,q),ue=[$,F];if(s!=null&&ue.push(s),H&&ue.push(a),q){let ae=n.makeTensorInfo([],"float32",y.createScalarValue(i,"float32"));ue.push(ae),M.push(ae)}Y=n.runWebGLProgram(ie,ue,J)}let re=pe({inputs:{x:Y},backend:n,attrs:{shape:k}});M.push(Y);for(let J of M)n.disposeIntermediateTensorInfo(J);return re}function M7(r){let{inputs:e,backend:t,attrs:o}=r,{a:n,b:s,bias:a,preluActivationWeights:i}=e,{transposeA:l,transposeB:u,activation:c,leakyreluAlpha:p}=o;return cc({a:n,b:s,transposeA:l,transposeB:u,backend:t,bias:a,preluActivationWeights:i,leakyreluAlpha:p,activation:c})}var WF={kernelName:ws,backendName:"webgl",kernelFunc:M7};var UF="return abs(x);";function L7(r){let{inputs:e,backend:t}=r,{x:o}=e;if(t.shouldExecuteOnCPU([o])&&o.dtype!=="complex64"){let s=t.texData.get(o.dataId),a=Ox(s.values);return t.makeTensorInfo(o.shape,o.dtype,a)}let n;return j().getBool("WEBGL_PACK_UNARY_OPERATIONS")?n=new Vs(o.shape,UF):n=new ho(o.shape,UF),t.runWebGLProgram(n,[o],o.dtype)}var jF={kernelName:as,backendName:"webgl",kernelFunc:L7};var z7=yr+` if (abs(x) > 1.) { return NAN; } return acos(x); -`,gY=_e({opSnippet:hY}),qR={kernelName:js,backendName:"webgl",kernelFunc:gY};var xY=xr+` +`,B7=_e({opSnippet:z7}),HF={kernelName:Hs,backendName:"webgl",kernelFunc:B7};var V7=yr+` if (x < 1.0) return NAN; -return log(x + sqrt(x * x - 1.0));`,yY=_e({opSnippet:xY}),KR={kernelName:Hs,backendName:"webgl",kernelFunc:yY};var XR="return a + b;",bY=nt({opSnippet:XR,packedOpSnippet:XR,supportsComplex:!0,cpuKernelImpl:H$}),YR={kernelName:wo,backendName:"webgl",kernelFunc:bY};var Fv=class{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((s,a)=>`T${a}`);let o=[];this.variableNames.forEach(s=>{o.push(`float v${s} = get${s}AtOutCoords();`)});let n=this.variableNames.map(s=>`v${s}`).join(" + ");this.userCode=` +return log(x + sqrt(x * x - 1.0));`,G7=_e({opSnippet:V7}),qF={kernelName:qs,backendName:"webgl",kernelFunc:G7};var KF="return a + b;",W7=nt({opSnippet:KF,packedOpSnippet:KF,supportsComplex:!0,cpuKernelImpl:jR}),XF={kernelName:wo,backendName:"webgl",kernelFunc:W7};var Qv=class{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((s,a)=>`T${a}`);let o=[];this.variableNames.forEach(s=>{o.push(`float v${s} = get${s}AtOutCoords();`)});let n=this.variableNames.map(s=>`v${s}`).join(" + ");this.userCode=` void main() { ${o.join(` `)} @@ -1242,7 +1242,7 @@ return log(x + sqrt(x * x - 1.0));`,yY=_e({opSnippet:xY}),KR={kernelName:Hs,back float result = ${n}; setOutput(result); } - `}};var Ov=class{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((s,a)=>`T${a}`);let o=[];this.variableNames.forEach(s=>{o.push(`vec4 v${s} = get${s}AtOutCoords();`)});let n=this.variableNames.map(s=>`v${s}`).join(" + ");this.userCode=` + `}};var eC=class{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((s,a)=>`T${a}`);let o=[];this.variableNames.forEach(s=>{o.push(`vec4 v${s} = get${s}AtOutCoords();`)});let n=this.variableNames.map(s=>`v${s}`).join(" + ");this.userCode=` void main() { ${o.join(` `)} @@ -1250,7 +1250,7 @@ return log(x + sqrt(x * x - 1.0));`,yY=_e({opSnippet:xY}),KR={kernelName:Hs,back vec4 result = ${n}; setOutput(result); } - `}};function Ox(r){let{inputs:e,backend:t}=r,o=e;if(o.length===1)return jt({inputs:{x:o[0]},backend:t});if(o.length>W().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let l=Math.floor(o.length/2),u=Ox({inputs:o.slice(0,l),backend:t}),c=Ox({inputs:o.slice(l),backend:t});return Ox({inputs:[u,c],backend:t})}let n=o.map(l=>l.dtype).reduce((l,u)=>fr(l,u)),s=o.map(l=>l.shape),i=W().getBool("WEBGL_PACK")?new Ov(o[0].shape,s):new Fv(o[0].shape,s);return t.runWebGLProgram(i,o,n)}var ZR={kernelName:Ho,backendName:"webgl",kernelFunc:Ox};function wY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o,i=n.shape.length,l=x.parseAxisParam(s,n.shape),u=l,c=N.getAxesPermutation(u,i),p=n;c!=null&&(p=Mt({inputs:{x:n},backend:t,attrs:{perm:c}}),u=N.getInnerMostAxes(u.length,i)),N.assertAxesAreInnerMostDims("all",u,i);let[m,f]=N.computeOutAndReduceShapes(p.shape,u),d=x.sizeFromShape(f),h=pe({inputs:{x:p},backend:t,attrs:{shape:[-1,d]}}),g=To(h,h.dtype,"all",t),y;if(a){let b=N.expandShapeToKeepDim(m,l);y=pe({inputs:{x:g},backend:t,attrs:{shape:b}})}else y=pe({inputs:{x:g},backend:t,attrs:{shape:m}});return t.disposeIntermediateTensorInfo(h),t.disposeIntermediateTensorInfo(g),c!=null&&t.disposeIntermediateTensorInfo(p),y}var JR={kernelName:Ml,backendName:"webgl",kernelFunc:wY};function _Y(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o,i=n.shape.length,l=x.parseAxisParam(s,n.shape),u=l,c=N.getAxesPermutation(u,i),p=n;c!=null&&(p=Mt({inputs:{x:n},backend:t,attrs:{perm:c}}),u=N.getInnerMostAxes(u.length,i)),N.assertAxesAreInnerMostDims("any",u,i);let[m,f]=N.computeOutAndReduceShapes(p.shape,u),d=x.sizeFromShape(f),h=pe({inputs:{x:p},backend:t,attrs:{shape:[-1,d]}}),g=To(h,h.dtype,"any",t),y;if(a){let b=N.expandShapeToKeepDim(m,l);y=pe({inputs:{x:g},backend:t,attrs:{shape:b}})}else y=pe({inputs:{x:g},backend:t,attrs:{shape:m}});return t.disposeIntermediateTensorInfo(h),t.disposeIntermediateTensorInfo(g),c!=null&&t.disposeIntermediateTensorInfo(p),y}var QR={kernelName:Ll,backendName:"webgl",kernelFunc:_Y};var Pv=class{constructor(e,t,o){this.variableNames=["A"];let{windowSize:n,batchSize:s,outSize:a}=e;o||this.variableNames.push("bestIndicesA"),this.outputShape=[s,a];let i=t==="max"?">":"<",l=o?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` + `}};function Vx(r){let{inputs:e,backend:t}=r,o=e;if(o.length===1)return Ht({inputs:{x:o[0]},backend:t});if(o.length>j().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let l=Math.floor(o.length/2),u=Vx({inputs:o.slice(0,l),backend:t}),c=Vx({inputs:o.slice(l),backend:t});return Vx({inputs:[u,c],backend:t})}let n=o.map(l=>l.dtype).reduce((l,u)=>dr(l,u)),s=o.map(l=>l.shape),i=j().getBool("WEBGL_PACK")?new eC(o[0].shape,s):new Qv(o[0].shape,s);return t.runWebGLProgram(i,o,n)}var YF={kernelName:Ho,backendName:"webgl",kernelFunc:Vx};function U7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o,i=n.shape.length,l=y.parseAxisParam(s,n.shape),u=l,c=S.getAxesPermutation(u,i),p=n;c!=null&&(p=Lt({inputs:{x:n},backend:t,attrs:{perm:c}}),u=S.getInnerMostAxes(u.length,i)),S.assertAxesAreInnerMostDims("all",u,i);let[m,f]=S.computeOutAndReduceShapes(p.shape,u),d=y.sizeFromShape(f),h=pe({inputs:{x:p},backend:t,attrs:{shape:[-1,d]}}),g=To(h,h.dtype,"all",t),x;if(a){let w=S.expandShapeToKeepDim(m,l);x=pe({inputs:{x:g},backend:t,attrs:{shape:w}})}else x=pe({inputs:{x:g},backend:t,attrs:{shape:m}});return t.disposeIntermediateTensorInfo(h),t.disposeIntermediateTensorInfo(g),c!=null&&t.disposeIntermediateTensorInfo(p),x}var ZF={kernelName:Ml,backendName:"webgl",kernelFunc:U7};function j7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o,i=n.shape.length,l=y.parseAxisParam(s,n.shape),u=l,c=S.getAxesPermutation(u,i),p=n;c!=null&&(p=Lt({inputs:{x:n},backend:t,attrs:{perm:c}}),u=S.getInnerMostAxes(u.length,i)),S.assertAxesAreInnerMostDims("any",u,i);let[m,f]=S.computeOutAndReduceShapes(p.shape,u),d=y.sizeFromShape(f),h=pe({inputs:{x:p},backend:t,attrs:{shape:[-1,d]}}),g=To(h,h.dtype,"any",t),x;if(a){let w=S.expandShapeToKeepDim(m,l);x=pe({inputs:{x:g},backend:t,attrs:{shape:w}})}else x=pe({inputs:{x:g},backend:t,attrs:{shape:m}});return t.disposeIntermediateTensorInfo(h),t.disposeIntermediateTensorInfo(g),c!=null&&t.disposeIntermediateTensorInfo(p),x}var JF={kernelName:Ll,backendName:"webgl",kernelFunc:j7};var tC=class{constructor(e,t,o){this.variableNames=["A"];let{windowSize:n,batchSize:s,outSize:a}=e;o||this.variableNames.push("bestIndicesA"),this.outputShape=[s,a];let i=t==="max"?">":"<",l=o?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -1270,14 +1270,14 @@ return log(x + sqrt(x * x - 1.0));`,yY=_e({opSnippet:xY}),KR={kernelName:Hs,back } setOutput(float(bestIndex)); } - `}};var Mv=class{constructor(e,t,o,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,x.assert(e.length>2,()=>`Packed arg${o.charAt(0).toUpperCase()+o.slice(1)} supports only inputs with rank above 2.`);let s=e[e.length-1],a=Math.ceil(s/t);this.outputShape=e.slice(0,-1),a>1&&this.outputShape.push(a),n||this.variableNames.push("bestIndicesA");let i=this.outputShape,l=i.length,u=Le(l),c=Ut("coords",l),p,m;if(a===1){m=l+1;let R=Le(m);p=` - ${R} sourceLocR = ${R}(${c.join()}, 0); + `}};var rC=class{constructor(e,t,o,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,y.assert(e.length>2,()=>`Packed arg${o.charAt(0).toUpperCase()+o.slice(1)} supports only inputs with rank above 2.`);let s=e[e.length-1],a=Math.ceil(s/t);this.outputShape=e.slice(0,-1),a>1&&this.outputShape.push(a),n||this.variableNames.push("bestIndicesA");let i=this.outputShape,l=i.length,u=Le(l),c=jt("coords",l),p,m;if(a===1){m=l+1;let $=Le(m);p=` + ${$} sourceLocR = ${$}(${c.join()}, 0); ++${c[l-1]}; - ${R} sourceLocG = ${R}(${c.join()}, 0); + ${$} sourceLocG = ${$}(${c.join()}, 0); ++${c[l-2]}; - ${R} sourceLocA = ${R}(${c.join()}, 0); + ${$} sourceLocA = ${$}(${c.join()}, 0); --${c[l-1]}; - ${R} sourceLocB = ${R}(${c.join()}, 0); + ${$} sourceLocB = ${$}(${c.join()}, 0); --${c[l-2]};`}else m=l,p=` ${u} sourceLocR = coords; ++${c[l-1]}; @@ -1286,15 +1286,15 @@ return log(x + sqrt(x * x - 1.0));`,yY=_e({opSnippet:xY}),KR={kernelName:Hs,back ${u} sourceLocA = coords; --${c[l-1]}; ${u} sourceLocB = coords; - --${c[l-2]};`;let f=["x","y","z","w","u","v"].slice(0,m),d="."+f[m-1],h=f.map(R=>"int "+R),g=Ut("sourceLocR",m-1).concat("inIdx.r"),y=Ut("sourceLocG",m-1).concat("inIdx.g"),b=Ut("sourceLocB",m-1).concat("inIdx.b"),w=Ut("sourceLocA",m-1).concat("inIdx.a"),_=o==="max"?"greaterThan":"lessThan",C=n?"":` + --${c[l-2]};`;let f=["x","y","z","w","u","v"].slice(0,m),d="."+f[m-1],h=f.map($=>"int "+$),g=jt("sourceLocR",m-1).concat("inIdx.r"),x=jt("sourceLocG",m-1).concat("inIdx.g"),w=jt("sourceLocB",m-1).concat("inIdx.b"),b=jt("sourceLocA",m-1).concat("inIdx.a"),_=o==="max"?"greaterThan":"lessThan",k=n?"":` inIdx = round(vec4(getBestIndicesAChannel(${g.join()}), - getBestIndicesAChannel(${y.join()}), - getBestIndicesAChannel(${b.join()}), - getBestIndicesAChannel(${w.join()})));`,D=`vec4( + getBestIndicesAChannel(${x.join()}), + getBestIndicesAChannel(${w.join()}), + getBestIndicesAChannel(${b.join()})));`,A=`vec4( getAChannel(${g.join()}), - hasNextCol ? getAChannel(${y.join()}) : 0., - hasNextRow ? getAChannel(${b.join()}) : 0., - hasNextRow && hasNextCol ? getAChannel(${w.join()}) : 0.)`,T=n?"":` + hasNextCol ? getAChannel(${x.join()}) : 0., + hasNextRow ? getAChannel(${w.join()}) : 0., + hasNextRow && hasNextCol ? getAChannel(${b.join()}) : 0.)`,N=n?"":` float getBestIndicesAChannel(${h.join()}) { return getChannel(getBestIndicesA(${f.join()}), vec2(${f.slice(-2).join()})); @@ -1303,7 +1303,7 @@ return log(x + sqrt(x * x - 1.0));`,yY=_e({opSnippet:xY}),KR={kernelName:Hs,back return getChannel(getA(${f.join()}), vec2(${f.slice(-2).join()})); } - ${T} + ${N} void main() { ${u} coords = getOutputCoords(); bool hasNextCol = ${c[l-1]} < ${i[l-1]-1}; @@ -1313,12 +1313,12 @@ return log(x + sqrt(x * x - 1.0));`,yY=_e({opSnippet:xY}),KR={kernelName:Hs,back sourceLocB${d}, sourceLocA${d}) * ${t}; ivec4 inIdx = srcIdx; vec4 bestIndex = vec4(inIdx); - vec4 bestValue = ${D}; + vec4 bestValue = ${A}; for (int i = 0; i < ${t}; i++) { inIdx = srcIdx; - ${C} - vec4 candidate = ${D}; + ${k} + vec4 candidate = ${A}; bvec4 nan = isnan(candidate); bvec4 replace = bvec4( vec4(${_}(candidate, bestValue)) * (vec4(1.0) - vec4(nan))); @@ -1332,23 +1332,23 @@ return log(x + sqrt(x * x - 1.0));`,yY=_e({opSnippet:xY}),KR={kernelName:Hs,back } setOutput(bestIndex); } - `}};function eF(r,e,t,o=null){let n=e.shape[0],s=e.shape[1];o!=null&&(n=o.shape[0],s=o.shape[1]);let a=N.computeOptimalWindowSize(s),i={windowSize:a,inSize:s,batchSize:n,outSize:Math.ceil(s/a)},l=new Pv(i,t,o==null),u=[e];o!=null&&u.push(o);let c=r.runWebGLProgram(l,u,"int32");if(c.shape[1]===1)return c;let p=eF(r,e,t,c);return r.disposeIntermediateTensorInfo(c),p}function tF(r,e,t,o=null){let n=o!=null?o.shape:e.shape,s=n[n.length-1],a=N.computeOptimalWindowSize(s),i=new Mv(n,a,t,o==null),l=o==null?[e]:[e,o],u=r.runWebGLProgram(i,l,"int32");if(u.shape.length===e.shape.length){let c=tF(r,e,t,u);return r.disposeIntermediateTensorInfo(u),c}return u}function Px(r,e,t,o){let n=[t];if(N.assertAxesAreInnerMostDims("arg"+o.charAt(0).toUpperCase()+o.slice(1),n,e.shape.length),!W().getBool("WEBGL_PACK_REDUCE")||e.shape.length<=2){let s=[],[a,i]=N.computeOutAndReduceShapes(e.shape,n),l=x.sizeFromShape(i),u=pe({inputs:{x:e},backend:r,attrs:{shape:[-1,l]}});s.push(u);let c=eF(r,u,o);s.push(c);let p=pe({inputs:{x:c},backend:r,attrs:{shape:a}});return s.forEach(m=>r.disposeIntermediateTensorInfo(m)),p}return tF(r,e,o)}function kY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s}=o,a=x.parseAxisParam(s,n.shape),i=N.getAxesPermutation(a,n.shape.length),l=n,u=[];i!=null&&(l=Mt({inputs:{x:n},backend:t,attrs:{perm:i}}),u.push(l),a=N.getInnerMostAxes(a.length,l.shape.length)),N.assertAxesAreInnerMostDims("argMax",[a[0]],l.shape.length);let c=Px(t,l,a[0],"max");return u.forEach(p=>t.disposeIntermediateTensorInfo(p)),c}var rF={kernelName:qo,backendName:"webgl",kernelFunc:kY};function vY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s}=o,a=x.parseAxisParam(s,n.shape),i=N.getAxesPermutation(a,n.shape.length),l=n,u=[];i!=null&&(l=Mt({inputs:{x:n},backend:t,attrs:{perm:i}}),u.push(l),a=N.getInnerMostAxes(a.length,l.shape.length)),N.assertAxesAreInnerMostDims("argMin",[a[0]],l.shape.length);let c=Px(t,l,a[0],"min");return u.forEach(p=>t.disposeIntermediateTensorInfo(p)),c}var oF={kernelName:ea,backendName:"webgl",kernelFunc:vY};var CY=xr+` + `}};function QF(r,e,t,o=null){let n=e.shape[0],s=e.shape[1];o!=null&&(n=o.shape[0],s=o.shape[1]);let a=S.computeOptimalWindowSize(s),i={windowSize:a,inSize:s,batchSize:n,outSize:Math.ceil(s/a)},l=new tC(i,t,o==null),u=[e];o!=null&&u.push(o);let c=r.runWebGLProgram(l,u,"int32");if(c.shape[1]===1)return c;let p=QF(r,e,t,c);return r.disposeIntermediateTensorInfo(c),p}function eO(r,e,t,o=null){let n=o!=null?o.shape:e.shape,s=n[n.length-1],a=S.computeOptimalWindowSize(s),i=new rC(n,a,t,o==null),l=o==null?[e]:[e,o],u=r.runWebGLProgram(i,l,"int32");if(u.shape.length===e.shape.length){let c=eO(r,e,t,u);return r.disposeIntermediateTensorInfo(u),c}return u}function Gx(r,e,t,o){let n=[t];if(S.assertAxesAreInnerMostDims("arg"+o.charAt(0).toUpperCase()+o.slice(1),n,e.shape.length),!j().getBool("WEBGL_PACK_REDUCE")||e.shape.length<=2){let s=[],[a,i]=S.computeOutAndReduceShapes(e.shape,n),l=y.sizeFromShape(i),u=pe({inputs:{x:e},backend:r,attrs:{shape:[-1,l]}});s.push(u);let c=QF(r,u,o);s.push(c);let p=pe({inputs:{x:c},backend:r,attrs:{shape:a}});return s.forEach(m=>r.disposeIntermediateTensorInfo(m)),p}return eO(r,e,o)}function H7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s}=o,a=y.parseAxisParam(s,n.shape),i=S.getAxesPermutation(a,n.shape.length),l=n,u=[];i!=null&&(l=Lt({inputs:{x:n},backend:t,attrs:{perm:i}}),u.push(l),a=S.getInnerMostAxes(a.length,l.shape.length)),S.assertAxesAreInnerMostDims("argMax",[a[0]],l.shape.length);let c=Gx(t,l,a[0],"max");return u.forEach(p=>t.disposeIntermediateTensorInfo(p)),c}var tO={kernelName:qo,backendName:"webgl",kernelFunc:H7};function q7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s}=o,a=y.parseAxisParam(s,n.shape),i=S.getAxesPermutation(a,n.shape.length),l=n,u=[];i!=null&&(l=Lt({inputs:{x:n},backend:t,attrs:{perm:i}}),u.push(l),a=S.getInnerMostAxes(a.length,l.shape.length)),S.assertAxesAreInnerMostDims("argMin",[a[0]],l.shape.length);let c=Gx(t,l,a[0],"min");return u.forEach(p=>t.disposeIntermediateTensorInfo(p)),c}var rO={kernelName:ea,backendName:"webgl",kernelFunc:q7};var K7=yr+` if (abs(x) > 1.) { return NAN; } return asin(x); -`,IY=_e({opSnippet:CY}),nF={kernelName:qs,backendName:"webgl",kernelFunc:IY};var NY=xr+"return log(x + sqrt(x * x + 1.0));",SY=_e({opSnippet:NY}),sF={kernelName:Ks,backendName:"webgl",kernelFunc:SY};var TY=xr+` +`,X7=_e({opSnippet:K7}),oO={kernelName:Ks,backendName:"webgl",kernelFunc:X7};var Y7=yr+"return log(x + sqrt(x * x + 1.0));",Z7=_e({opSnippet:Y7}),nO={kernelName:Xs,backendName:"webgl",kernelFunc:Z7};var J7=yr+` return atan(x); -`,AY=_e({opSnippet:TY}),iF={kernelName:Xs,backendName:"webgl",kernelFunc:AY};var EY=OR+` +`,Q7=_e({opSnippet:J7}),sO={kernelName:Ys,backendName:"webgl",kernelFunc:Q7};var e9=FF+` return atan(a, b); -`,DY=` +`,t9=` vec4 result = atan(a, b); vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); - `+PR+` + `+OF+` return result; -`,$Y=nt({opSnippet:EY,packedOpSnippet:DY}),aF={kernelName:Zs,backendName:"webgl",kernelFunc:$Y};var RY=xr+` +`,r9=nt({opSnippet:e9,packedOpSnippet:t9}),iO={kernelName:Js,backendName:"webgl",kernelFunc:r9};var o9=yr+` if ((x < -1.0) || (x > 1.0)) return NAN; -return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelName:Ys,backendName:"webgl",kernelFunc:FY};var Ki=class{constructor(e,t,o,n=!1,s=!1){if(this.variableNames=["x"],t==="avg"&&o)throw new Error("Cannot compute positions for average pool.");let a=e.filterWidth,i=e.strideHeight,l=e.strideWidth,u=e.dilationHeight,c=e.dilationWidth,p=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.top,d=e.padInfo.left;this.outputShape=e.outShape;let h=t==="avg",g=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,y=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`,b="0.0";if(h||(b="-1.0 / 1e-20"),o){let R=">=";this.userCode=` +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,n9=_e({opSnippet:o9}),aO={kernelName:Zs,backendName:"webgl",kernelFunc:n9};var Ki=class{constructor(e,t,o,n=!1,s=!1){if(this.variableNames=["x"],t==="avg"&&o)throw new Error("Cannot compute positions for average pool.");let a=e.filterWidth,i=e.strideHeight,l=e.strideWidth,u=e.dilationHeight,c=e.dilationWidth,p=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.top,d=e.padInfo.left;this.outputShape=e.outShape;let h=t==="avg",g=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,x=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`,w="0.0";if(h||(w="-1.0 / 1e-20"),o){let $=">=";this.userCode=` const ivec2 strides = ivec2(${i}, ${l}); const ivec2 pads = ivec2(${f}, ${d}); @@ -1390,25 +1390,25 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam // use the current value. float currMinMaxValue = mix( value, minMaxValue, minMaxValueFound); - if (value ${R} currMinMaxValue) { + if (value ${$} currMinMaxValue) { minMaxValue = value; minMaxValueFound = 1.0; - minMaxPosition = ${n?s?g:y:`wR * ${m} + wC`}; + minMaxPosition = ${n?s?g:x:`wR * ${m} + wC`}; } } } setOutput(float(minMaxPosition)); } - `;return}let w="max",_=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(_="avgValue / count");let C=Math.floor(a/4)*4,D=a%4,T=` + `;return}let b="max",_=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(_="avgValue / count");let k=Math.floor(a/4)*4,A=a%4,N=` if (${h}) { avgValue += dot(values, ones); } else { - minMaxValue = ${w}(values, minMaxValue); + minMaxValue = ${b}(values, minMaxValue); } `;this.userCode=` const ivec2 strides = ivec2(${i}, ${l}); const ivec2 pads = ivec2(${f}, ${d}); - const float initializationValue = ${b}; + const float initializationValue = ${w}; const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); float count = 0.0; @@ -1432,7 +1432,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam // max/min x(?, ?, d) to get y(yR, yC, d). // ? = to be determined - vec4 minMaxValue = vec4(${b}); + vec4 minMaxValue = vec4(${w}); float avgValue = 0.0; count = 0.0; @@ -1444,7 +1444,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam continue; } - for (int wC = 0; wC < ${C}; wC += 4) { + for (int wC = 0; wC < ${k}; wC += 4) { int xC = xCCorner + wC * ${c}; vec4 values = vec4( @@ -1454,11 +1454,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam getValue(batch, xR, xC + 3 * ${c}, d) ); - ${T} + ${N} } - int xC = xCCorner + ${C}; - if (${D===1}) { + int xC = xCCorner + ${k}; + if (${A===1}) { vec4 values = vec4( getValue(batch, xR, xC, d), initializationValue, @@ -1466,8 +1466,8 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam initializationValue ); - ${T} - } else if (${D===2}) { + ${N} + } else if (${A===2}) { vec4 values = vec4( getValue(batch, xR, xC, d), getValue(batch, xR, xC + ${c}, d), @@ -1475,8 +1475,8 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam initializationValue ); - ${T} - } else if (${D===3}) { + ${N} + } else if (${A===3}) { vec4 values = vec4( getValue(batch, xR, xC, d), getValue(batch, xR, xC + ${c}, d), @@ -1484,15 +1484,15 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam initializationValue ); - ${T} + ${N} } } setOutput(${_}); } - `}},ac=class{constructor(e,t,o,n=!1,s=!1){if(this.variableNames=["x"],t==="avg"&&o)throw new Error("Cannot compute positions for average pool.");let a=e.filterWidth,i=e.strideDepth,l=e.strideHeight,u=e.strideWidth,c=e.dilationDepth,p=e.dilationHeight,m=e.dilationWidth,f=e.effectiveFilterDepth,d=e.effectiveFilterHeight,h=e.effectiveFilterWidth,g=e.padInfo.front,y=e.padInfo.top,b=e.padInfo.left;this.outputShape=e.outShape;let w=t==="avg",_="0.0";if(w||(_="-1.0 / 1e-20"),o){let B=">=";this.userCode=` + `}},pc=class{constructor(e,t,o,n=!1,s=!1){if(this.variableNames=["x"],t==="avg"&&o)throw new Error("Cannot compute positions for average pool.");let a=e.filterWidth,i=e.strideDepth,l=e.strideHeight,u=e.strideWidth,c=e.dilationDepth,p=e.dilationHeight,m=e.dilationWidth,f=e.effectiveFilterDepth,d=e.effectiveFilterHeight,h=e.effectiveFilterWidth,g=e.padInfo.front,x=e.padInfo.top,w=e.padInfo.left;this.outputShape=e.outShape;let b=t==="avg",_="0.0";if(b||(_="-1.0 / 1e-20"),o){let M=">=";this.userCode=` const ivec3 strides = ivec3(${i}, ${l}, ${u}); - const ivec3 pads = ivec3(${g}, ${y}, ${b}); + const ivec3 pads = ivec3(${g}, ${x}, ${w}); void main() { ivec5 coords = getOutputCoords(); @@ -1540,7 +1540,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam // use the current value. float currMinMaxValue = mix( value, minMaxValue, minMaxValueFound); - if (value ${B} currMinMaxValue) { + if (value ${M} currMinMaxValue) { minMaxValue = value; minMaxValueFound = 1.0; minMaxPosition = ${n?s?`(((batch * ${e.inDepth} + xD) * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`((xD * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`wD * ${d} * ${h} + @@ -1551,16 +1551,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam } setOutput(float(minMaxPosition)); } - `;return}let C="max",D=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(D="avgValue / count");let T=Math.floor(a/4)*4,R=a%4,P=` - if (${w}) { + `;return}let k="max",A=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(A="avgValue / count");let N=Math.floor(a/4)*4,$=a%4,F=` + if (${b}) { avgValue += dot(values, ones); } else { - minMaxValue = ${C}(values, minMaxValue); + minMaxValue = ${k}(values, minMaxValue); } `;this.userCode=` const ivec3 strides = ivec3(${i}, ${l}, ${u}); - const ivec3 pads = ivec3(${g}, ${y}, ${b}); + const ivec3 pads = ivec3(${g}, ${x}, ${w}); const float initializationValue = ${_}; const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); @@ -1606,7 +1606,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam continue; } - for (int wC = 0; wC < ${T}; wC += 4) { + for (int wC = 0; wC < ${N}; wC += 4) { int xC = xCCorner + wC * ${m}; vec4 values = vec4( @@ -1616,11 +1616,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam getValue(batch, xD, xR, xC + 3 * ${m}, ch) ); - ${P} + ${F} } - int xC = xCCorner + ${T}; - if (${R===1}) { + int xC = xCCorner + ${N}; + if (${$===1}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), initializationValue, @@ -1628,8 +1628,8 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam initializationValue ); - ${P} - } else if (${R===2}) { + ${F} + } else if (${$===2}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), getValue(batch, xD, xR, xC + ${m}, ch), @@ -1637,8 +1637,8 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam initializationValue ); - ${P} - } else if (${R===3}) { + ${F} + } else if (${$===3}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), getValue(batch, xD, xR, xC + ${m}, ch), @@ -1646,13 +1646,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam initializationValue ); - ${P} + ${F} } } - setOutput(${D}); + setOutput(${A}); } } - `}};function OY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e;qi(n,"avgPool");let{filterSize:s,strides:a,pad:i,dimRoundingMode:l}=o,u=1;x.assert(N.eitherStridesOrDilationsAreOne(a,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);let c=N.computePool2DInfo(n.shape,s,a,u,i,l);if(c.filterWidth===1&&c.filterHeight===1&&x.arraysEqual(c.inShape,c.outShape))return jt({inputs:{x:n},backend:t});let p=new Ki(c,"avg",!1);return t.runWebGLProgram(p,[n],"float32")}var uF={kernelName:Ko,backendName:"webgl",kernelFunc:OY};function PY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{filterSize:s,strides:a,pad:i,dimRoundingMode:l,dataFormat:u}=o,c=[1,1,1],p=N.computePool3DInfo(n.shape,s,a,c,i,l,u),m=new ac(p,"avg",!1);return t.runWebGLProgram(m,[n],"float32")}var cF={kernelName:ta,backendName:"webgl",kernelFunc:PY};var Lv=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,o=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a=e.dilationHeight,i=e.dilationWidth,l=e.effectiveFilterHeight,u=e.effectiveFilterWidth,c=l-1-e.padInfo.top,p=u-1-e.padInfo.left,m=1/(t*o);this.userCode=` + `}};function s9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e;qi(n,"avgPool");let{filterSize:s,strides:a,pad:i,dimRoundingMode:l}=o,u=1;y.assert(S.eitherStridesOrDilationsAreOne(a,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);let c=S.computePool2DInfo(n.shape,s,a,u,i,l);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return Ht({inputs:{x:n},backend:t});let p=new Ki(c,"avg",!1);return t.runWebGLProgram(p,[n],"float32")}var lO={kernelName:Ko,backendName:"webgl",kernelFunc:s9};function i9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{filterSize:s,strides:a,pad:i,dimRoundingMode:l,dataFormat:u}=o,c=[1,1,1],p=S.computePool3DInfo(n.shape,s,a,c,i,l,u),m=new pc(p,"avg",!1);return t.runWebGLProgram(m,[n],"float32")}var uO={kernelName:ta,backendName:"webgl",kernelFunc:i9};var oC=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,o=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a=e.dilationHeight,i=e.dilationWidth,l=e.effectiveFilterHeight,u=e.effectiveFilterWidth,c=l-1-e.padInfo.top,p=u-1-e.padInfo.left,m=1/(t*o);this.userCode=` const ivec2 pads = ivec2(${c}, ${p}); const float avgMultiplier = float(${m}); @@ -1694,9 +1694,9 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam } setOutput(dotProd); } - `}},zv=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,o=e.filterHeight,n=e.filterWidth,s=e.strideDepth,a=e.strideHeight,i=e.strideWidth,l=e.dilationDepth,u=e.dilationHeight,c=e.dilationWidth,p=e.effectiveFilterDepth,m=e.effectiveFilterHeight,f=e.effectiveFilterWidth,d=p-1-e.padInfo.front,h=m-1-e.padInfo.top,g=f-1-e.padInfo.left,y=1/(t*o*n);this.userCode=` + `}},nC=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,o=e.filterHeight,n=e.filterWidth,s=e.strideDepth,a=e.strideHeight,i=e.strideWidth,l=e.dilationDepth,u=e.dilationHeight,c=e.dilationWidth,p=e.effectiveFilterDepth,m=e.effectiveFilterHeight,f=e.effectiveFilterWidth,d=p-1-e.padInfo.front,h=m-1-e.padInfo.top,g=f-1-e.padInfo.left,x=1/(t*o*n);this.userCode=` const ivec3 pads = ivec3(${d}, ${h}, ${g}); - const float avgMultiplier = float(${y}); + const float avgMultiplier = float(${x}); void main() { ivec5 coords = getOutputCoords(); @@ -1750,7 +1750,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam } setOutput(dotProd); } - `}};function MY(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,a=s,{filterSize:i,strides:l,pad:u,dimRoundingMode:c}=o,p=[1,1,1],m=N.computePool3DInfo(a.shape,i,l,p,u,c),f=new zv(m);return t.runWebGLProgram(f,[n],a.dtype)}var pF={kernelName:Bl,backendName:"webgl",kernelFunc:MY};function LY(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,a=s;qi([n,s],"avgPoolGrad");let{filterSize:i,strides:l,pad:u}=o,c=N.computePool2DInfo(a.shape,i,l,1,u),p=new Lv(c);return t.runWebGLProgram(p,[n],a.dtype)}var mF={kernelName:zl,backendName:"webgl",kernelFunc:LY};function zY(r){let{inputs:e,backend:t,attrs:o}=r,{a:n,b:s}=e,{transposeA:a,transposeB:i}=o;return ic({a:n,b:s,transposeA:a,transposeB:i,backend:t})}var fF={kernelName:Xo,backendName:"webgl",kernelFunc:zY};var Bv=class{constructor(e,t,o,n,s,a){this.outputShape=[],this.variableNames=["x","mean","variance"],N.assertAndGetBroadcastShape(e,t),N.assertAndGetBroadcastShape(e,o);let i="0.0";n!=null&&(N.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let l="1.0";s!=null&&(N.assertAndGetBroadcastShape(e,s),this.variableNames.push("scale"),l="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}};function a9(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,a=s,{filterSize:i,strides:l,pad:u,dimRoundingMode:c}=o,p=[1,1,1],m=S.computePool3DInfo(a.shape,i,l,p,u,c),f=new nC(m);return t.runWebGLProgram(f,[n],a.dtype)}var cO={kernelName:Bl,backendName:"webgl",kernelFunc:a9};function l9(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,a=s;qi([n,s],"avgPoolGrad");let{filterSize:i,strides:l,pad:u}=o,c=S.computePool2DInfo(a.shape,i,l,1,u),p=new oC(c);return t.runWebGLProgram(p,[n],a.dtype)}var pO={kernelName:zl,backendName:"webgl",kernelFunc:l9};function u9(r){let{inputs:e,backend:t,attrs:o}=r,{a:n,b:s}=e,{transposeA:a,transposeB:i}=o;return cc({a:n,b:s,transposeA:a,transposeB:i,backend:t})}var mO={kernelName:Xo,backendName:"webgl",kernelFunc:u9};var sC=class{constructor(e,t,o,n,s,a){this.outputShape=[],this.variableNames=["x","mean","variance"],S.assertAndGetBroadcastShape(e,t),S.assertAndGetBroadcastShape(e,o);let i="0.0";n!=null&&(S.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let l="1.0";s!=null&&(S.assertAndGetBroadcastShape(e,s),this.variableNames.push("scale"),l="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { float x = getXAtOutCoords(); float mean = getMeanAtOutCoords(); @@ -1760,7 +1760,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam float inv = scale * inversesqrt(variance + float(${a})); setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); } - `}};var Vv=class{constructor(e,t,o,n,s,a){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],N.assertAndGetBroadcastShape(e,t),N.assertAndGetBroadcastShape(e,o);let i="vec4(0.0)";n!=null&&(N.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let l="vec4(1.0)";s!=null&&(N.assertAndGetBroadcastShape(e,s),this.variableNames.push("scale"),l="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}};var iC=class{constructor(e,t,o,n,s,a){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],S.assertAndGetBroadcastShape(e,t),S.assertAndGetBroadcastShape(e,o);let i="vec4(0.0)";n!=null&&(S.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let l="vec4(1.0)";s!=null&&(S.assertAndGetBroadcastShape(e,s),this.variableNames.push("scale"),l="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { vec4 offset = ${i}; vec4 scale = ${l}; @@ -1773,7 +1773,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam setOutput((x - mean) * inv + offset); } - `}};var BY=({inputs:r,backend:e,attrs:t})=>{let{x:o,mean:n,variance:s,offset:a,scale:i}=r;x.assert(n.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),x.assert(a==null||n.shape.length===a.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),x.assert(i==null||n.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=t;l==null&&(l=.001);let u=[o,n,s],c=null;a!=null&&(c=a.shape,u.push(a));let p=null;i!=null&&(p=i.shape,u.push(i));let m=W().getBool("WEBGL_PACK_NORMALIZATION")?new Vv(o.shape,n.shape,s.shape,c,p,l):new Bv(o.shape,n.shape,s.shape,c,p,l);return e.runWebGLProgram(m,u,u[0].dtype)},dF={kernelName:an,backendName:"webgl",kernelFunc:BY};var Gv=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=Le(this.rank),o=`uniform int start[${this.rank}];`,n=VY(this.rank),s,a=e.map((i,l)=>`sourceLoc.${Wv[l]} = start[${l}] + coords.${Wv[l]};`);s=` + `}};var c9=({inputs:r,backend:e,attrs:t})=>{let{x:o,mean:n,variance:s,offset:a,scale:i}=r;y.assert(n.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),y.assert(a==null||n.shape.length===a.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),y.assert(i==null||n.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=t;l==null&&(l=.001);let u=[o,n,s],c=null;a!=null&&(c=a.shape,u.push(a));let p=null;i!=null&&(p=i.shape,u.push(i));let m=j().getBool("WEBGL_PACK_NORMALIZATION")?new iC(o.shape,n.shape,s.shape,c,p,l):new sC(o.shape,n.shape,s.shape,c,p,l);return e.runWebGLProgram(m,u,u[0].dtype)},fO={kernelName:an,backendName:"webgl",kernelFunc:c9};var aC=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=Le(this.rank),o=`uniform int start[${this.rank}];`,n=p9(this.rank),s,a=e.map((i,l)=>`sourceLoc.${lC[l]} = start[${l}] + coords.${lC[l]};`);s=` ${t} sourceLoc; ${t} coords = getOutputCoords(); ${a.join(` @@ -1784,7 +1784,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam ${s} setOutput(getSource(${n})); } - `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,o)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(o,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}},Wv=["x","y","z","w","u","v"];function VY(r){if(r===1)return"sourceLoc";if(r<=6)return Wv.slice(0,r).map(e=>"sourceLoc."+e).join(",");throw Error(`Slicing for rank ${r} is not yet supported`)}var Uv=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;let t=Le(this.rank),o=Ut("coords",this.rank),n=Ut("sourceLoc",this.rank),s=this.rank===1?"sourceLoc":`vec2(${n.slice(-2).join()})`,a=`getChannel(getSource(${n.join()}), ${s})`,i=` + `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,o)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(o,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}},lC=["x","y","z","w","u","v"];function p9(r){if(r===1)return"sourceLoc";if(r<=6)return lC.slice(0,r).map(e=>"sourceLoc."+e).join(",");throw Error(`Slicing for rank ${r} is not yet supported`)}var uC=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;let t=Le(this.rank),o=jt("coords",this.rank),n=jt("sourceLoc",this.rank),s=this.rank===1?"sourceLoc":`vec2(${n.slice(-2).join()})`,a=`getChannel(getSource(${n.join()}), ${s})`,i=` result.x = ${a}; if (++${o[this.rank-1]} < ${e[this.rank-1]}) { ++${n[this.rank-1]}; @@ -1814,7 +1814,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam ${l} setOutput(result); } - `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,o)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(o,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}};function GY(r,e,t,o){let n=o.texData.get(r.dataId),s=o.makeTensorInfo(t,r.dtype),a=o.texData.get(s.dataId);Object.assign(a,n),a.refCount=1,a.shape=t,a.dtype=r.dtype;let i=nr.computeFlatOffset(e,x.computeStrides(r.shape));n.slice&&(i+=n.slice.flatOffset),a.slice={flatOffset:i,origDataId:n.slice&&n.slice.origDataId||r.dataId};let l=o.dataRefCount.get(a.slice.origDataId)||1;return o.dataRefCount.set(a.slice.origDataId,l+1),s}function Va(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{begin:s,size:a}=o,[i,l]=nr.parseSliceParams(n,s,a);if(nr.assertParamsValid(n,i,l),x.sizeFromShape(l)===0)return t.makeTensorInfo(l,n.dtype,[]);if(t.shouldExecuteOnCPU([n])||n.dtype==="string"){let p=t.texData.get(n.dataId),m=mR(p.values,i,l,n.shape,n.dtype);return t.makeTensorInfo(l,n.dtype,m)}let{isPacked:u}=t.texData.get(n.dataId),c=nr.isSliceContinous(n.shape,i,l);if(u||!c){let p=W().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Uv(l):new Gv(l),m=p.getCustomSetupFunc(i);return t.runWebGLProgram(p,[n],n.dtype,m)}return t.uploadToGPU(n.dataId),GY(n,i,l,t)}var hF={kernelName:gs,backendName:"webgl",kernelFunc:Va};var WY=r=>{let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{blockShape:s,crops:a}=o;x.assert(n.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let i=s.reduce((b,w)=>b*w),l=N.getReshaped(n.shape,s,i),u=N.getPermuted(l.length,s.length),c=N.getReshapedPermuted(n.shape,s,i),p=N.getSliceBeginCoords(a,s.length),m=N.getSliceSize(c,a,s.length),f=[],d=pe({inputs:{x:n},backend:t,attrs:{shape:l}}),h=Mt({inputs:{x:d},backend:t,attrs:{perm:u}}),g=pe({inputs:{x:h},backend:t,attrs:{shape:c}}),y=Va({inputs:{x:g},backend:t,attrs:{begin:p,size:m}});return f.push(d),f.push(h),f.push(g),f.forEach(b=>t.disposeIntermediateTensorInfo(b)),y},gF={kernelName:ra,backendName:"webgl",kernelFunc:WY};function UY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,weights:s}=e,{size:a}=o,i=t.readSync(n.dataId),l=t.readSync(s.dataId),u=Tx(i,l,s.dtype,s.shape,a);return t.makeTensorInfo([a],s.dtype,u)}var xF={kernelName:Vl,backendName:"webgl",kernelFunc:UY};var jY="return float(a != b);",jv=nt({opSnippet:jY,dtype:"bool"}),yF={kernelName:gi,backendName:"webgl",kernelFunc:jv};function Ga(r){let{inputs:e,backend:t}=r,{input:o}=e,n=t.texData.get(o.dataId);return jt({inputs:{x:n.complexTensorInfos.real},backend:t})}var bF={kernelName:iu,backendName:"webgl",kernelFunc:Ga};var HY="return float(int(x));";function wF(r,e){let t=new ho(r.shape,HY),o=e.runWebGLProgram(t,[r],"int32");return{dataId:o.dataId,shape:o.shape,dtype:o.dtype}}function Hv(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{dtype:s}=o;if(s==="complex64"){if(n.dtype==="complex64")return jt({inputs:{x:n},backend:t});let a=ht(n.shape),i=Hv({inputs:{x:n},backend:t,attrs:{dtype:"float32"}}),l=go({inputs:{real:i,imag:a},backend:t});return a.dispose(),t.disposeIntermediateTensorInfo(i),l}if(n.dtype==="complex64"){let a=Ga({inputs:{input:n},backend:t}),i=Hv({inputs:{x:a},backend:t,attrs:{dtype:s}});return t.disposeIntermediateTensorInfo(a),i}if(!x.hasEncodingLoss(n.dtype,s)){let a=jt({inputs:{x:n},backend:t});return{dataId:a.dataId,shape:a.shape,dtype:s}}if(s==="int32")return wF(n,t);if(s==="bool"){let a=t.makeTensorInfo([],"bool",x.getTypedArrayFromDType("bool",1)),l=jv({inputs:{a:n,b:a},backend:t});return t.disposeIntermediateTensorInfo(a),l}throw new Error(`Error in Cast: failed to cast ${n.dtype} to ${s}`)}var _F={kernelName:Do,backendName:"webgl",kernelFunc:Hv};var kF="return ceil(x);",qY=_e({opSnippet:kF,packedOpSnippet:kF,cpuKernelImpl:K$}),vF={kernelName:Yo,backendName:"webgl",kernelFunc:qY};var qv=class{constructor(e){this.variableNames=["A"],this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,o)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(o,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}};function m9(r,e,t,o){let n=o.texData.get(r.dataId),s=o.makeTensorInfo(t,r.dtype),a=o.texData.get(s.dataId);Object.assign(a,n),a.refCount=1,a.shape=t,a.dtype=r.dtype;let i=sr.computeFlatOffset(e,y.computeStrides(r.shape));n.slice&&(i+=n.slice.flatOffset),a.slice={flatOffset:i,origDataId:n.slice&&n.slice.origDataId||r.dataId};let l=o.dataRefCount.get(a.slice.origDataId)||1;return o.dataRefCount.set(a.slice.origDataId,l+1),s}function Va(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{begin:s,size:a}=o,[i,l]=sr.parseSliceParams(n,s,a);if(sr.assertParamsValid(n,i,l),y.sizeFromShape(l)===0)return t.makeTensorInfo(l,n.dtype,[]);if(t.shouldExecuteOnCPU([n])||n.dtype==="string"){let p=t.texData.get(n.dataId),m=pF(p.values,i,l,n.shape,n.dtype);return t.makeTensorInfo(l,n.dtype,m)}let{isPacked:u}=t.texData.get(n.dataId),c=sr.isSliceContinous(n.shape,i,l);if(u||!c){let p=j().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new uC(l):new aC(l),m=p.getCustomSetupFunc(i);return t.runWebGLProgram(p,[n],n.dtype,m)}return t.uploadToGPU(n.dataId),m9(n,i,l,t)}var dO={kernelName:gs,backendName:"webgl",kernelFunc:Va};var f9=r=>{let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{blockShape:s,crops:a}=o;y.assert(n.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let i=s.reduce((w,b)=>w*b),l=S.getReshaped(n.shape,s,i),u=S.getPermuted(l.length,s.length),c=S.getReshapedPermuted(n.shape,s,i),p=S.getSliceBeginCoords(a,s.length),m=S.getSliceSize(c,a,s.length),f=[],d=pe({inputs:{x:n},backend:t,attrs:{shape:l}}),h=Lt({inputs:{x:d},backend:t,attrs:{perm:u}}),g=pe({inputs:{x:h},backend:t,attrs:{shape:c}}),x=Va({inputs:{x:g},backend:t,attrs:{begin:p,size:m}});return f.push(d),f.push(h),f.push(g),f.forEach(w=>t.disposeIntermediateTensorInfo(w)),x},hO={kernelName:ra,backendName:"webgl",kernelFunc:f9};function d9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,weights:s}=e,{size:a}=o,i=t.readSync(n.dataId),l=t.readSync(s.dataId),u=Fx(i,l,s.dtype,s.shape,a);return t.makeTensorInfo([a],s.dtype,u)}var gO={kernelName:Vl,backendName:"webgl",kernelFunc:d9};var h9="return float(a != b);",cC=nt({opSnippet:h9,dtype:"bool"}),xO={kernelName:xi,backendName:"webgl",kernelFunc:cC};function Ga(r){let{inputs:e,backend:t}=r,{input:o}=e,n=t.texData.get(o.dataId);return Ht({inputs:{x:n.complexTensorInfos.real},backend:t})}var yO={kernelName:iu,backendName:"webgl",kernelFunc:Ga};var g9="return float(int(x));";function bO(r,e){let t=new ho(r.shape,g9),o=e.runWebGLProgram(t,[r],"int32");return{dataId:o.dataId,shape:o.shape,dtype:o.dtype}}function pC(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{dtype:s}=o;if(s==="complex64"){if(n.dtype==="complex64")return Ht({inputs:{x:n},backend:t});let a=gt(n.shape),i=pC({inputs:{x:n},backend:t,attrs:{dtype:"float32"}}),l=go({inputs:{real:i,imag:a},backend:t});return a.dispose(),t.disposeIntermediateTensorInfo(i),l}if(n.dtype==="complex64"){let a=Ga({inputs:{input:n},backend:t}),i=pC({inputs:{x:a},backend:t,attrs:{dtype:s}});return t.disposeIntermediateTensorInfo(a),i}if(!y.hasEncodingLoss(n.dtype,s)){let a=Ht({inputs:{x:n},backend:t});return{dataId:a.dataId,shape:a.shape,dtype:s}}if(s==="int32")return bO(n,t);if(s==="bool"){let a=t.makeTensorInfo([],"bool",y.getTypedArrayFromDType("bool",1)),l=cC({inputs:{a:n,b:a},backend:t});return t.disposeIntermediateTensorInfo(a),l}throw new Error(`Error in Cast: failed to cast ${n.dtype} to ${s}`)}var wO={kernelName:Do,backendName:"webgl",kernelFunc:pC};var _O="return ceil(x);",x9=_e({opSnippet:_O,packedOpSnippet:_O,cpuKernelImpl:qR}),kO={kernelName:Yo,backendName:"webgl",kernelFunc:x9};var mC=class{constructor(e){this.variableNames=["A"],this.outputShape=e,this.userCode=` uniform float minVal; uniform float maxVal; @@ -1827,7 +1827,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam setOutput(clamp(value, minVal, maxVal)); } - `}getCustomSetupFunc(e,t){return(o,n)=>{this.minLoc==null&&(this.minLoc=o.getUniformLocationNoThrow(n,"minVal"),this.maxLoc=o.getUniformLocationNoThrow(n,"maxVal")),o.gl.uniform1f(this.minLoc,e),o.gl.uniform1f(this.maxLoc,t)}}};var Kv=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e,t){return(o,n)=>{this.minLoc==null&&(this.minLoc=o.getUniformLocationNoThrow(n,"minVal"),this.maxLoc=o.getUniformLocationNoThrow(n,"maxVal")),o.gl.uniform1f(this.minLoc,e),o.gl.uniform1f(this.maxLoc,t)}}};var fC=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` uniform float minVal; uniform float maxVal; @@ -1841,7 +1841,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } - `}getCustomSetupFunc(e,t){return(o,n)=>{this.minLoc==null&&(this.minLoc=o.getUniformLocationNoThrow(n,"minVal"),this.maxLoc=o.getUniformLocationNoThrow(n,"maxVal")),o.gl.uniform1f(this.minLoc,e),o.gl.uniform1f(this.maxLoc,t)}}};function KY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{clipValueMin:s,clipValueMax:a}=o,i;W().getBool("WEBGL_PACK_CLIP")?i=new Kv(n.shape):i=new qv(n.shape);let l=i.getCustomSetupFunc(s,a);return t.runWebGLProgram(i,[n],n.dtype,l)}var CF={kernelName:$o,backendName:"webgl",kernelFunc:KY};var Xv=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e,t){return(o,n)=>{this.minLoc==null&&(this.minLoc=o.getUniformLocationNoThrow(n,"minVal"),this.maxLoc=o.getUniformLocationNoThrow(n,"maxVal")),o.gl.uniform1f(this.minLoc,e),o.gl.uniform1f(this.maxLoc,t)}}};function y9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{clipValueMin:s,clipValueMax:a}=o,i;j().getBool("WEBGL_PACK_CLIP")?i=new fC(n.shape):i=new mC(n.shape);let l=i.getCustomSetupFunc(s,a);return t.runWebGLProgram(i,[n],n.dtype,l)}var vO={kernelName:$o,backendName:"webgl",kernelFunc:y9};var dC=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); @@ -1854,7 +1854,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } - `}};function IF(r,e){return{dataId:e.dataId,dtype:e.dtype,shape:r.shape}}function XY(r){let{inputs:e,backend:t}=r,{x:o}=e,n=t.texData.get(o.dataId),s=new Xv(o.shape),a=[IF(o,n.complexTensorInfos.real),IF(o,n.complexTensorInfos.imag)];return t.runWebGLProgram(s,a,a[0].dtype)}var NF={kernelName:oa,backendName:"webgl",kernelFunc:XY};var Yv=class{constructor(e){this.outputShape=[],this.outputShape=N.computeOutShape(e,1),this.variableNames=e.map((a,i)=>`T${i}`);let t=new Array(e.length-1);t[0]=e[0][1];for(let a=1;a`T${i}`);let t=new Array(e.length-1);t[0]=e[0][1];for(let a=1;a`T${g}`);let l=new Array(e.length-1);l[0]=e[0][t];for(let h=1;h`T${g}`);let l=new Array(e.length-1);l[0]=e[0][t];for(let h=1;h= ${l[h-1]}) { return getChannel( - getT${h}(${Mx(i,u,g)}), - vec2(${Mx(c,u,g)})); + getT${h}(${Wx(i,u,g)}), + vec2(${Wx(c,u,g)})); }`}let f=l.length,d=l[l.length-1];m+=` return getChannel( - getT${f}(${Mx(i,u,d)}), - vec2(${Mx(c,u,d)}));`,this.userCode=` + getT${f}(${Wx(i,u,d)}), + vec2(${Wx(c,u,d)}));`,this.userCode=` float getValue(${i.map(h=>"int "+h)}) { ${m} } @@ -1900,7 +1900,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam } setOutput(result); } - `}};function Mx(r,e,t){let o=r.indexOf(e);return r.map((s,a)=>a===o?`${s} - ${t}`:s).join()}function lc(r){let{inputs:e,backend:t}=r,{input:o}=e,n=t.texData.get(o.dataId);return jt({inputs:{x:n.complexTensorInfos.imag},backend:t})}var SF={kernelName:Ql,backendName:"webgl",kernelFunc:lc};function uc(r,e,t){let o=r[0].dtype;if(o==="complex64"){let u=r.map(d=>Ga({inputs:{input:d},backend:t})),c=r.map(d=>lc({inputs:{input:d},backend:t})),p=uc(u,e,t),m=uc(c,e,t),f=go({inputs:{real:p,imag:m},backend:t});return u.forEach(d=>t.disposeIntermediateTensorInfo(d)),c.forEach(d=>t.disposeIntermediateTensorInfo(d)),t.disposeIntermediateTensorInfo(p),t.disposeIntermediateTensorInfo(m),f}if(o==="string"){let{tensors2D:u,outShape:c}=TF(r,e,t),p=u.map(g=>({vals:t.readSync(g.dataId),shape:g.shape})),m=u[0].shape[0]===1,f=X$(p,c,o,m),d=N.computeOutShape(r.map(g=>g.shape),e),h=t.makeTensorInfo(d,o,f);return u.forEach(g=>t.disposeIntermediateTensorInfo(g)),h}if(r.length>W().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let u=Math.floor(r.length/2),c=uc(r.slice(0,u),e,t),p=uc(r.slice(u),e,t),m=uc([c,p],e,t);return t.disposeIntermediateTensorInfo(c),t.disposeIntermediateTensorInfo(p),m}if(W().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&r[0].shape.length>1){let u=new Zv(r.map(c=>c.shape),e);return t.runWebGLProgram(u,r,o)}let{tensors2D:n,outShape:s}=TF(r,e,t),a=new Yv(n.map(u=>u.shape)),i=t.runWebGLProgram(a,n,o);n.forEach(u=>t.disposeIntermediateTensorInfo(u));let l=pe({inputs:{x:i},attrs:{shape:s},backend:t});return t.disposeIntermediateTensorInfo(i),l}function TF(r,e,t){let o=N.computeOutShape(r.map(s=>s.shape),e);return{tensors2D:r.map(s=>pe({inputs:{x:s},attrs:{shape:[-1,x.sizeFromShape(s.shape.slice(e))]},backend:t})),outShape:o}}function Jv(r){let{inputs:e,backend:t,attrs:o}=r,{axis:n}=o,s=x.parseAxisParam(n,e[0].shape)[0],a=N.computeOutShape(e.map(u=>u.shape),s);if(x.sizeFromShape(a)===0)return t.makeTensorInfo(a,e[0].dtype,[]);let i=e.filter(u=>x.sizeFromShape(u.shape)>0);if(i.length===1)return jt({inputs:{x:i[0]},backend:t});let l=i.map(u=>u.shape);return N.assertParamsConsistent(l,s),uc(i,s,t)}var AF={kernelName:ls,backendName:"webgl",kernelFunc:Jv};var rh=class{constructor(e,t=!1,o=null,n=!1,s=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let a=e.padInfo.top,i=e.padInfo.left,l=e.strideHeight,u=e.strideWidth,c=e.dilationHeight,p=e.dilationWidth,m=e.filterHeight,f=e.filterWidth,d=Math.floor(e.inChannels/4)*4,h=e.inChannels%4,g=e.dataFormat==="channelsLast",y=g?1:2,b=g?2:3,w=g?3:1,_="",C="";o&&(n?_=`float activation(float a) { + `}};function Wx(r,e,t){let o=r.indexOf(e);return r.map((s,a)=>a===o?`${s} - ${t}`:s).join()}function mc(r){let{inputs:e,backend:t}=r,{input:o}=e,n=t.texData.get(o.dataId);return Ht({inputs:{x:n.complexTensorInfos.imag},backend:t})}var NO={kernelName:Ql,backendName:"webgl",kernelFunc:mc};function fc(r,e,t){let o=r[0].dtype;if(o==="complex64"){let u=r.map(d=>Ga({inputs:{input:d},backend:t})),c=r.map(d=>mc({inputs:{input:d},backend:t})),p=fc(u,e,t),m=fc(c,e,t),f=go({inputs:{real:p,imag:m},backend:t});return u.forEach(d=>t.disposeIntermediateTensorInfo(d)),c.forEach(d=>t.disposeIntermediateTensorInfo(d)),t.disposeIntermediateTensorInfo(p),t.disposeIntermediateTensorInfo(m),f}if(o==="string"){let{tensors2D:u,outShape:c}=SO(r,e,t),p=u.map(g=>({vals:t.readSync(g.dataId),shape:g.shape})),m=u[0].shape[0]===1,f=KR(p,c,o,m),d=S.computeOutShape(r.map(g=>g.shape),e),h=t.makeTensorInfo(d,o,f);return u.forEach(g=>t.disposeIntermediateTensorInfo(g)),h}if(r.length>j().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let u=Math.floor(r.length/2),c=fc(r.slice(0,u),e,t),p=fc(r.slice(u),e,t),m=fc([c,p],e,t);return t.disposeIntermediateTensorInfo(c),t.disposeIntermediateTensorInfo(p),m}if(j().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&r[0].shape.length>1){let u=new gC(r.map(c=>c.shape),e);return t.runWebGLProgram(u,r,o)}let{tensors2D:n,outShape:s}=SO(r,e,t),a=new hC(n.map(u=>u.shape)),i=t.runWebGLProgram(a,n,o);n.forEach(u=>t.disposeIntermediateTensorInfo(u));let l=pe({inputs:{x:i},attrs:{shape:s},backend:t});return t.disposeIntermediateTensorInfo(i),l}function SO(r,e,t){let o=S.computeOutShape(r.map(s=>s.shape),e);return{tensors2D:r.map(s=>pe({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(e))]},backend:t})),outShape:o}}function xC(r){let{inputs:e,backend:t,attrs:o}=r,{axis:n}=o,s=y.parseAxisParam(n,e[0].shape)[0],a=S.computeOutShape(e.map(u=>u.shape),s);if(y.sizeFromShape(a)===0)return t.makeTensorInfo(a,e[0].dtype,[]);let i=e.filter(u=>y.sizeFromShape(u.shape)>0);if(i.length===1)return Ht({inputs:{x:i[0]},backend:t});let l=i.map(u=>u.shape);return S.assertParamsConsistent(l,s),fc(i,s,t)}var TO={kernelName:ls,backendName:"webgl",kernelFunc:xC};var sh=class{constructor(e,t=!1,o=null,n=!1,s=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let a=e.padInfo.top,i=e.padInfo.left,l=e.strideHeight,u=e.strideWidth,c=e.dilationHeight,p=e.dilationWidth,m=e.filterHeight,f=e.filterWidth,d=Math.floor(e.inChannels/4)*4,h=e.inChannels%4,g=e.dataFormat==="channelsLast",x=g?1:2,w=g?2:3,b=g?3:1,_="",k="";o&&(n?_=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${o} }`:s?_=`float activation(float a) { @@ -1910,7 +1910,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam float activation(float x) { ${o} } - `,C="result = activation(result);");let D=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),n&&this.variableNames.push("preluActivationWeights"),s&&this.variableNames.push("leakyreluAlpha"),this.userCode=` + `,k="result = activation(result);");let A=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),n&&this.variableNames.push("preluActivationWeights"),s&&this.variableNames.push("leakyreluAlpha"),this.userCode=` ${_} const ivec2 strides = ivec2(${l}, ${u}); @@ -1919,10 +1919,10 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam void main() { ivec4 coords = getOutputCoords(); int batch = coords[0]; - int d2 = coords[${w}]; + int d2 = coords[${b}]; ivec2 xRCCorner = - ivec2(coords[${y}], coords[${b}]) * strides - pads; + ivec2(coords[${x}], coords[${w}]) * strides - pads; int xRCorner = xRCCorner.x; int xCCorner = xRCCorner.y; @@ -2030,11 +2030,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam } float result = dotProd; - ${D} - ${C} + ${A} + ${k} setOutput(result); } - `}},Qv=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,o=e.padInfo.top,n=e.padInfo.left,s=e.strideDepth,a=e.strideHeight,i=e.strideWidth,l=e.dilationDepth,u=e.dilationHeight,c=e.dilationWidth,p=e.filterDepth,m=e.filterHeight,f=e.filterWidth,d=Math.floor(e.inChannels/4)*4,h=e.inChannels%4;this.userCode=` + `}},yC=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,o=e.padInfo.top,n=e.padInfo.left,s=e.strideDepth,a=e.strideHeight,i=e.strideWidth,l=e.dilationDepth,u=e.dilationHeight,c=e.dilationWidth,p=e.filterDepth,m=e.filterHeight,f=e.filterWidth,d=Math.floor(e.inChannels/4)*4,h=e.inChannels%4;this.userCode=` const ivec3 strides = ivec3(${s}, ${a}, ${i}); const ivec3 pads = ivec3(${t}, ${o}, ${n}); @@ -2122,31 +2122,31 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam } setOutput(dotProd); } - `}};var eC=class{constructor(e,t,o){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let{filterWidth:n,inChannels:s,strideWidth:a,strideHeight:i,padInfo:l,outWidth:u,dilationWidth:c,dilationHeight:p,dataFormat:m}=o,{left:f,top:d}=l,h=s*n,g=Ot(),y=m==="channelsLast",b=y?0:1,w=y?1:2,_="";for(let C=0;C<=1;C++)for(let D=0;D<=1;D++)_+=` - blockIndex = rc.y + ${D}; - pos = rc.x + ${C}; + `}};var bC=class{constructor(e,t,o){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let{filterWidth:n,inChannels:s,strideWidth:a,strideHeight:i,padInfo:l,outWidth:u,dilationWidth:c,dilationHeight:p,dataFormat:m}=o,{left:f,top:d}=l,h=s*n,g=Pt(),x=m==="channelsLast",w=x?0:1,b=x?1:2,_="";for(let k=0;k<=1;k++)for(let A=0;A<=1;A++)_+=` + blockIndex = rc.y + ${A}; + pos = rc.x + ${k}; if(blockIndex < ${e[1]} && pos < ${e[0]}) { offsetY = int(blockIndex / (${u})) * ${i} - ${d}; d0 = offsetY + ${p} * (pos / ${h}); - if(d0 < ${t[b]} && d0 >= 0) { + if(d0 < ${t[w]} && d0 >= 0) { offsetX = int(mod(float(blockIndex), ${u}.) * ${a}. - ${f}.); d1 = offsetX + ${c} * (int(mod(float(pos), ${h}.) / ${s}.)); - if(d1 < ${t[w]} && d1 >= 0) { + if(d1 < ${t[b]} && d1 >= 0) { ch = int(mod(float(pos), ${s}.)); - if (${y}) { + if (${x}) { innerDims = vec2(d1, ch); - result[${C*2+D}] = getChannel( + result[${k*2+A}] = getChannel( getA(d0, int(innerDims.x), int(innerDims.y)), innerDims); } else { innerDims = vec2(d0, d1); - result[${C*2+D}] = getChannel( + result[${k*2+A}] = getChannel( getA(ch, int(innerDims.x), int(innerDims.y)), innerDims); } @@ -2166,7 +2166,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam ${g.output} = result; } - `}};function Lx({x:r,filter:e,convInfo:t,backend:o,bias:n=null,preluActivationWeights:s=null,leakyreluAlpha:a=0,activation:i=null}){let l=r.shape,u=o.texData.get(r.dataId),c=t.inChannels,p=l[0]*l[1]*l[2],m=t.outChannels,f=t.dataFormat==="channelsLast",d=!1,h=!1,g,y=[],b=(p===1||m===1)&&c>Rv,w=l[2]%2!=0&&!!u.isPacked;if(b||!W().getBool("WEBGL_LAZILY_UNPACK")||!W().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!w){let _=f?l[0]*l[1]*l[2]:l[0]*l[2]*l[3],C=pe({inputs:{x:r},backend:o,attrs:{shape:[1,_,t.inChannels]}}),D=pe({inputs:{x:e},backend:o,attrs:{shape:[1,t.inChannels,t.outChannels]}}),T=ic({a:C,b:D,transposeA:d,transposeB:h,backend:o,bias:n,activation:i,preluActivationWeights:s,leakyreluAlpha:a});g=pe({inputs:{x:T},backend:o,attrs:{shape:t.outShape}}),y.push(C),y.push(D),y.push(T)}else{let _=f?l[0]*l[1]*(l[2]+1):l[0]*l[2]*(l[3]+1),C={dataId:r.dataId,shape:[1,_,t.inChannels],dtype:r.dtype},D=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,x.assert(nc(u.shape,C.shape),()=>`packed reshape ${u.shape} to ${C.shape} isn't free`);let T=pe({inputs:{x:e},backend:o,attrs:{shape:[1,t.inChannels,t.outChannels]}});y.push(T);let R=ic({a:C,b:T,backend:o,transposeA:d,transposeB:h,bias:n,activation:i,preluActivationWeights:s,leakyreluAlpha:a}),P=o.texData.get(R.dataId);x.assert(P.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=D,P.shape=t.outShape,g=jt({inputs:{x:R},backend:o}),g.shape=t.outShape,y.push(R)}for(let _ of y)o.disposeIntermediateTensorInfo(_);return g}function zx({x:r,filter:e,convInfo:t,backend:o,bias:n=null,preluActivationWeights:s=null,leakyreluAlpha:a=0,activation:i=null}){let{filterWidth:l,filterHeight:u,inChannels:c,outWidth:p,outHeight:m,dataFormat:f}=t,d=f==="channelsLast",h=l*u*c,g=m*p,y=[h,g],b=!0,w=!1,_=[],C=pe({inputs:{x:r},backend:o,attrs:{shape:r.shape.slice(1)}}),D=pe({inputs:{x:e},backend:o,attrs:{shape:[1,h,x.sizeFromShape(e.shape)/h]}});_.push(C),_.push(D);let T=new eC(y,C.shape,t),R=o.runWebGLProgram(T,[C],"float32"),P=pe({inputs:{x:R},backend:o,attrs:{shape:[1,y[0],y[1]]}});_.push(R),_.push(P);let B=n!=null,G=s!=null,U=i==="leakyrelu",j=i?Tl(i,!0):null,H=new eh(P.shape,D.shape,[1,g,t.outChannels],b,w,B,j,G,U),K=[P,D];if(n&&K.push(n),G&&K.push(s),U){let re=o.makeTensorInfo([],"float32",x.createScalarValue(a,"float32"));K.push(re),_.push(re)}let X=o.runWebGLProgram(H,K,"float32"),oe=d?[1,m,p,t.outChannels]:[1,t.outChannels,m,p],Y=pe({inputs:{x:X},backend:o,attrs:{shape:oe}});_.push(X);for(let re of _)o.disposeIntermediateTensorInfo(re);return Y}function YY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s}=e,{strides:a,pad:i,dataFormat:l,dilations:u,dimRoundingMode:c}=o,p=N.convertConv2DDataFormat(l),m=N.computeConv2DInfo(n.shape,s.shape,a,u,i,c,!1,p),f;if(m.filterHeight===1&&m.filterWidth===1&&m.dilationHeight===1&&m.dilationWidth===1&&m.strideHeight===1&&m.strideWidth===1&&(m.padInfo.type==="SAME"||m.padInfo.type==="VALID"))f=Lx({x:n,filter:s,convInfo:m,backend:t});else if(W().getBool("WEBGL_CONV_IM2COL")&&n.shape[0]===1)f=zx({x:n,filter:s,convInfo:m,backend:t});else{let h=new rh(m);f=t.runWebGLProgram(h,[n,s],"float32")}let d=pe({inputs:{x:f},backend:t,attrs:{shape:m.outShape}});return t.disposeIntermediateTensorInfo(f),d}var EF={kernelName:Zo,backendName:"webgl",kernelFunc:YY};var tC=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,o=e.strideWidth,n=e.padInfo.top,s=e.padInfo.left,a=e.dataFormat==="channelsLast";this.userCode=` + `}};function Ux({x:r,filter:e,convInfo:t,backend:o,bias:n=null,preluActivationWeights:s=null,leakyreluAlpha:a=0,activation:i=null}){let l=r.shape,u=o.texData.get(r.dataId),c=t.inChannels,p=l[0]*l[1]*l[2],m=t.outChannels,f=t.dataFormat==="channelsLast",d=!1,h=!1,g,x=[],w=(p===1||m===1)&&c>Jv,b=l[2]%2!=0&&!!u.isPacked;if(w||!j().getBool("WEBGL_LAZILY_UNPACK")||!j().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!b){let _=f?l[0]*l[1]*l[2]:l[0]*l[2]*l[3],k=pe({inputs:{x:r},backend:o,attrs:{shape:[1,_,t.inChannels]}}),A=pe({inputs:{x:e},backend:o,attrs:{shape:[1,t.inChannels,t.outChannels]}}),N=cc({a:k,b:A,transposeA:d,transposeB:h,backend:o,bias:n,activation:i,preluActivationWeights:s,leakyreluAlpha:a});g=pe({inputs:{x:N},backend:o,attrs:{shape:t.outShape}}),x.push(k),x.push(A),x.push(N)}else{let _=f?l[0]*l[1]*(l[2]+1):l[0]*l[2]*(l[3]+1),k={dataId:r.dataId,shape:[1,_,t.inChannels],dtype:r.dtype},A=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,y.assert(lc(u.shape,k.shape),()=>`packed reshape ${u.shape} to ${k.shape} isn't free`);let N=pe({inputs:{x:e},backend:o,attrs:{shape:[1,t.inChannels,t.outChannels]}});x.push(N);let $=cc({a:k,b:N,backend:o,transposeA:d,transposeB:h,bias:n,activation:i,preluActivationWeights:s,leakyreluAlpha:a}),F=o.texData.get($.dataId);y.assert(F.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=A,F.shape=t.outShape,g=Ht({inputs:{x:$},backend:o}),g.shape=t.outShape,x.push($)}for(let _ of x)o.disposeIntermediateTensorInfo(_);return g}function jx({x:r,filter:e,convInfo:t,backend:o,bias:n=null,preluActivationWeights:s=null,leakyreluAlpha:a=0,activation:i=null}){let{filterWidth:l,filterHeight:u,inChannels:c,outWidth:p,outHeight:m,dataFormat:f}=t,d=f==="channelsLast",h=l*u*c,g=m*p,x=[h,g],w=!0,b=!1,_=[],k=pe({inputs:{x:r},backend:o,attrs:{shape:r.shape.slice(1)}}),A=pe({inputs:{x:e},backend:o,attrs:{shape:[1,h,y.sizeFromShape(e.shape)/h]}});_.push(k),_.push(A);let N=new bC(x,k.shape,t),$=o.runWebGLProgram(N,[k],"float32"),F=pe({inputs:{x:$},backend:o,attrs:{shape:[1,x[0],x[1]]}});_.push($),_.push(F);let M=n!=null,V=s!=null,W=i==="leakyrelu",U=i?Tl(i,!0):null,H=new oh(F.shape,A.shape,[1,g,t.outChannels],w,b,M,U,V,W),q=[F,A];if(n&&q.push(n),V&&q.push(s),W){let re=o.makeTensorInfo([],"float32",y.createScalarValue(a,"float32"));q.push(re),_.push(re)}let X=o.runWebGLProgram(H,q,"float32"),oe=d?[1,m,p,t.outChannels]:[1,t.outChannels,m,p],Y=pe({inputs:{x:X},backend:o,attrs:{shape:oe}});_.push(X);for(let re of _)o.disposeIntermediateTensorInfo(re);return Y}function w9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s}=e,{strides:a,pad:i,dataFormat:l,dilations:u,dimRoundingMode:c}=o,p=S.convertConv2DDataFormat(l),m=S.computeConv2DInfo(n.shape,s.shape,a,u,i,c,!1,p),f;if(m.filterHeight===1&&m.filterWidth===1&&m.dilationHeight===1&&m.dilationWidth===1&&m.strideHeight===1&&m.strideWidth===1&&(m.padInfo.type==="SAME"||m.padInfo.type==="VALID"))f=Ux({x:n,filter:s,convInfo:m,backend:t});else if(j().getBool("WEBGL_CONV_IM2COL")&&n.shape[0]===1)f=jx({x:n,filter:s,convInfo:m,backend:t});else{let h=new sh(m);f=t.runWebGLProgram(h,[n,s],"float32")}let d=pe({inputs:{x:f},backend:t,attrs:{shape:m.outShape}});return t.disposeIntermediateTensorInfo(f),d}var AO={kernelName:Zo,backendName:"webgl",kernelFunc:w9};var wC=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,o=e.strideWidth,n=e.padInfo.top,s=e.padInfo.left,a=e.dataFormat==="channelsLast";this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -2208,7 +2208,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam } setOutput(dotProd); } - `}},rC=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,o=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a=e.dataFormat==="channelsLast",i=t-1-e.padInfo.top,l=o-1-e.padInfo.left,u=a?1:2,c=a?2:3,p=a?3:1;this.userCode=` + `}},_C=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,o=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a=e.dataFormat==="channelsLast",i=t-1-e.padInfo.top,l=o-1-e.padInfo.left,u=a?1:2,c=a?2:3,p=a?3:1;this.userCode=` const ivec2 pads = ivec2(${i}, ${l}); void main() { @@ -2261,7 +2261,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam } setOutput(dotProd); } - `}},oC=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,o=e.strideHeight,n=e.strideWidth,s=e.padInfo.front,a=e.padInfo.top,i=e.padInfo.left;this.userCode=` + `}},kC=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,o=e.strideHeight,n=e.strideWidth,s=e.padInfo.front,a=e.padInfo.top,i=e.padInfo.left;this.userCode=` void main() { ivec5 coords = getOutputCoords(); int wF = coords.x; @@ -2303,7 +2303,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam } setOutput(dotProd); } - `}},nC=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,o=e.filterHeight,n=e.filterWidth,s=e.strideDepth,a=e.strideHeight,i=e.strideWidth,l=t-1-e.padInfo.front,u=o-1-e.padInfo.top,c=n-1-e.padInfo.left;this.userCode=` + `}},vC=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,o=e.filterHeight,n=e.filterWidth,s=e.strideDepth,a=e.strideHeight,i=e.strideWidth,l=t-1-e.padInfo.front,u=o-1-e.padInfo.top,c=n-1-e.padInfo.left;this.userCode=` const ivec3 pads = ivec3(${l}, ${u}, ${c}); void main() { @@ -2360,14 +2360,14 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam } setOutput(dotProd); } - `}};function ZY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,dy:s}=e,{strides:a,pad:i,dataFormat:l,dimRoundingMode:u,filterShape:c}=o,p=N.convertConv2DDataFormat(l),m=N.computeConv2DInfo(n.shape,c,a,1,i,u,!1,p),f=new tC(m);return t.runWebGLProgram(f,[n,s],"float32")}var DF={kernelName:Wl,backendName:"webgl",kernelFunc:ZY};function JY(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,filter:s}=e,{inputShape:a,strides:i,pad:l,dataFormat:u,dimRoundingMode:c}=o,p=N.convertConv2DDataFormat(u),m=N.computeConv2DInfo(a,s.shape,i,1,l,c,!1,p),f=new rC(m);return t.runWebGLProgram(f,[n,s],"float32")}var $F={kernelName:Jo,backendName:"webgl",kernelFunc:JY};function QY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s}=e,{strides:a,pad:i,dilations:l}=o,u=N.computeConv3DInfo(n.shape,s.shape,a,l,i),c=new Qv(u);return t.runWebGLProgram(c,[n,s],"float32")}var RF={kernelName:na,backendName:"webgl",kernelFunc:QY};function e7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,dy:s}=e,{strides:a,pad:i,filterShape:l}=o,u=N.computeConv3DInfo(n.shape,l,a,1,i),c=new oC(u);return t.runWebGLProgram(c,[n,s],"float32")}var FF={kernelName:Ul,backendName:"webgl",kernelFunc:e7};function t7(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,filter:s}=e,{pad:a,strides:i,inputShape:l}=o,u=N.computeConv3DInfo(l,s.shape,i,1,a),c=new nC(u);return t.runWebGLProgram(c,[n,s],"float32")}var OF={kernelName:jl,backendName:"webgl",kernelFunc:t7};var r7=$x+` + `}};function _9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,dy:s}=e,{strides:a,pad:i,dataFormat:l,dimRoundingMode:u,filterShape:c}=o,p=S.convertConv2DDataFormat(l),m=S.computeConv2DInfo(n.shape,c,a,1,i,u,!1,p),f=new wC(m);return t.runWebGLProgram(f,[n,s],"float32")}var EO={kernelName:Wl,backendName:"webgl",kernelFunc:_9};function k9(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,filter:s}=e,{inputShape:a,strides:i,pad:l,dataFormat:u,dimRoundingMode:c}=o,p=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(a,s.shape,i,1,l,c,!1,p),f=new _C(m);return t.runWebGLProgram(f,[n,s],"float32")}var DO={kernelName:Jo,backendName:"webgl",kernelFunc:k9};function v9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s}=e,{strides:a,pad:i,dilations:l}=o,u=S.computeConv3DInfo(n.shape,s.shape,a,l,i),c=new yC(u);return t.runWebGLProgram(c,[n,s],"float32")}var $O={kernelName:na,backendName:"webgl",kernelFunc:v9};function C9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,dy:s}=e,{strides:a,pad:i,filterShape:l}=o,u=S.computeConv3DInfo(n.shape,l,a,1,i),c=new kC(u);return t.runWebGLProgram(c,[n,s],"float32")}var RO={kernelName:Ul,backendName:"webgl",kernelFunc:C9};function I9(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,filter:s}=e,{pad:a,strides:i,inputShape:l}=o,u=S.computeConv3DInfo(l,s.shape,i,1,a),c=new vC(u);return t.runWebGLProgram(c,[n,s],"float32")}var FO={kernelName:jl,backendName:"webgl",kernelFunc:I9};var N9=Lx+` return cos(x); -`,o7=_e({opSnippet:r7}),PF={kernelName:Qo,backendName:"webgl",kernelFunc:o7};var n7=` +`,S9=_e({opSnippet:N9}),OO={kernelName:Qo,backendName:"webgl",kernelFunc:S9};var T9=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; -`,s7=_e({opSnippet:n7}),MF={kernelName:Js,backendName:"webgl",kernelFunc:s7};var sC=class{constructor(e,t,o,n,s){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[a,i,l,u]=e,[c]=t,[p,m]=o;this.outputShape=[c,p,m,u];let f=n==="bilinear"?1:0,[d,h]=[`${i-1}.0`,`${l-1}.0`],[g,y,b]=p>1?[`${(i-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${d} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${d}`],[w,_,C]=m>1?[`${(l-1)/(m-1)}`,"(x2-x1) * width_ratio",`x1*${h} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${h}`];this.userCode=` +`,A9=_e({opSnippet:T9}),PO={kernelName:Qs,backendName:"webgl",kernelFunc:A9};var CC=class{constructor(e,t,o,n,s){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[a,i,l,u]=e,[c]=t,[p,m]=o;this.outputShape=[c,p,m,u];let f=n==="bilinear"?1:0,[d,h]=[`${i-1}.0`,`${l-1}.0`],[g,x,w]=p>1?[`${(i-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${d} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${d}`],[b,_,k]=m>1?[`${(l-1)/(m-1)}`,"(x2-x1) * width_ratio",`x1*${h} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${h}`];this.userCode=` const float height_ratio = float(${g}); - const float width_ratio = float(${w}); + const float width_ratio = float(${b}); void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -2387,15 +2387,15 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam return; } - float height_scale = ${y}; + float height_scale = ${x}; float width_scale = ${_}; - float in_y = ${b}; + float in_y = ${w}; if( in_y < 0.0 || in_y > ${d} ) { setOutput(float(${s})); return; } - float in_x = ${C}; + float in_x = ${k}; if( in_x < 0.0 || in_x > ${h} ) { setOutput(float(${s})); return; @@ -2426,21 +2426,21 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam setOutput(newValue); } } - `}};var i7=r=>{let{inputs:e,backend:t,attrs:o}=r,{image:n,boxes:s,boxInd:a}=e,{cropSize:i,method:l,extrapolationValue:u}=o,c=new sC(n.shape,s.shape,i,l,u);return t.runWebGLProgram(c,[n,s,a],"float32")},LF={kernelName:Qs,backendName:"webgl",kernelFunc:i7};var Bx=class{constructor(e,t,o){this.variableNames=["x"],this.outputShape=e;let n=e.length,s=t?"0.0":`getX(${zF(n,"coords")})`,a=e[e.length-1],i="",l="";t?(i=o?`end != ${a-1}`:"end != 0",l=o?"end + 1":"end - 1"):(i=o?`end + pow2 < ${a}`:"end >= pow2",l=o?"end + pow2":"end - pow2"),this.userCode=` + `}};var E9=r=>{let{inputs:e,backend:t,attrs:o}=r,{image:n,boxes:s,boxInd:a}=e,{cropSize:i,method:l,extrapolationValue:u}=o,c=new CC(n.shape,s.shape,i,l,u);return t.runWebGLProgram(c,[n,s,a],"float32")},MO={kernelName:ei,backendName:"webgl",kernelFunc:E9};var Hx=class{constructor(e,t,o){this.variableNames=["x"],this.outputShape=e;let n=e.length,s=t?"0.0":`getX(${LO(n,"coords")})`,a=e[e.length-1],i="",l="";t?(i=o?`end != ${a-1}`:"end != 0",l=o?"end + 1":"end - 1"):(i=o?`end + pow2 < ${a}`:"end >= pow2",l=o?"end + pow2":"end - pow2"),this.userCode=` uniform float index; void main() { ${Le(n)} coords = getOutputCoords(); - int end = ${BF(n,"coords")}; + int end = ${zO(n,"coords")}; float val = ${s}; int pow2 = int(pow(2.0, index)); if (${i}) { int idx = ${l}; - ${BF(n,"coords")} = idx; - val += getX(${zF(n,"coords")}); + ${zO(n,"coords")} = idx; + val += getX(${LO(n,"coords")}); } setOutput(val); } - `}getCustomSetupFunc(e){return(t,o)=>{this.index==null&&(this.index=t.getUniformLocation(o,"index")),t.gl.uniform1f(this.index,e)}}};function zF(r,e){if(r===1)return`${e}`;if(r===2)return`${e}.x, ${e}.y`;if(r===3)return`${e}.x, ${e}.y, ${e}.z`;if(r===4)return`${e}.x, ${e}.y, ${e}.z, ${e}.w`;throw Error(`Cumulative sum for rank ${r} is not yet supported`)}function BF(r,e){if(r===1)return`${e}`;if(r===2)return`${e}.y`;if(r===3)return`${e}.z`;if(r===4)return`${e}.w`;throw Error(`Cumulative sum for rank ${r} is not yet supported`)}function a7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,exclusive:a,reverse:i}=o,l=n.shape.length,u=N.getAxesPermutation([s],l),c=n;u!=null&&(c=Mt({inputs:{x:n},backend:t,attrs:{perm:u}}));let p=N.getInnerMostAxes(1,l)[0];if(p!==l-1)throw new Error(`WebGL cumsum shader expects an inner-most axis=${n.shape.length-1} but got axis=${s}`);let m=c.shape[p],f=jt({inputs:{x:c},backend:t});for(let d=0;d<=Math.ceil(Math.log2(m))-1;d++){let h=new Bx(c.shape,!1,i),g=h.getCustomSetupFunc(d),y=f;f=t.runWebGLProgram(h,[f],f.dtype,g),t.disposeIntermediateTensorInfo(y)}if(a){let d=new Bx(c.shape,a,i),h=f;f=t.runWebGLProgram(d,[f],f.dtype),t.disposeIntermediateTensorInfo(h)}if(u!=null){let d=N.getUndoAxesPermutation(u),h=Mt({inputs:{x:f},backend:t,attrs:{perm:d}});return t.disposeIntermediateTensorInfo(f),t.disposeIntermediateTensorInfo(c),h}return f}var VF={kernelName:en,backendName:"webgl",kernelFunc:a7};function l7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,weights:s}=e,{size:a,binaryOutput:i}=o;if(n.shape.length===1){let l=t.readSync(n.dataId),u=t.readSync(s.dataId),c=Tx(l,u,s.dtype,s.shape,a);return t.makeTensorInfo([a],s.dtype,c)}else if(n.shape.length===2){let l=t.bufferSync(n),u=t.bufferSync(s),c=q$(l,u,a,i);return t.makeTensorInfo(c.shape,s.dtype,c.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${n.shape.length}.`)}var GF={kernelName:Hl,backendName:"webgl",kernelFunc:l7};var iC=class{constructor(e,t,o){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=o,this.userCode=` + `}getCustomSetupFunc(e){return(t,o)=>{this.index==null&&(this.index=t.getUniformLocation(o,"index")),t.gl.uniform1f(this.index,e)}}};function LO(r,e){if(r===1)return`${e}`;if(r===2)return`${e}.x, ${e}.y`;if(r===3)return`${e}.x, ${e}.y, ${e}.z`;if(r===4)return`${e}.x, ${e}.y, ${e}.z, ${e}.w`;throw Error(`Cumulative sum for rank ${r} is not yet supported`)}function zO(r,e){if(r===1)return`${e}`;if(r===2)return`${e}.y`;if(r===3)return`${e}.z`;if(r===4)return`${e}.w`;throw Error(`Cumulative sum for rank ${r} is not yet supported`)}function D9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,exclusive:a,reverse:i}=o,l=n.shape.length,u=S.getAxesPermutation([s],l),c=n;u!=null&&(c=Lt({inputs:{x:n},backend:t,attrs:{perm:u}}));let p=S.getInnerMostAxes(1,l)[0];if(p!==l-1)throw new Error(`WebGL cumsum shader expects an inner-most axis=${n.shape.length-1} but got axis=${s}`);let m=c.shape[p],f=Ht({inputs:{x:c},backend:t});for(let d=0;d<=Math.ceil(Math.log2(m))-1;d++){let h=new Hx(c.shape,!1,i),g=h.getCustomSetupFunc(d),x=f;f=t.runWebGLProgram(h,[f],f.dtype,g),t.disposeIntermediateTensorInfo(x)}if(a){let d=new Hx(c.shape,a,i),h=f;f=t.runWebGLProgram(d,[f],f.dtype),t.disposeIntermediateTensorInfo(h)}if(u!=null){let d=S.getUndoAxesPermutation(u),h=Lt({inputs:{x:f},backend:t,attrs:{perm:d}});return t.disposeIntermediateTensorInfo(f),t.disposeIntermediateTensorInfo(c),h}return f}var BO={kernelName:en,backendName:"webgl",kernelFunc:D9};function $9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,weights:s}=e,{size:a,binaryOutput:i}=o;if(n.shape.length===1){let l=t.readSync(n.dataId),u=t.readSync(s.dataId),c=Fx(l,u,s.dtype,s.shape,a);return t.makeTensorInfo([a],s.dtype,c)}else if(n.shape.length===2){let l=t.bufferSync(n),u=t.bufferSync(s),c=HR(l,u,a,i);return t.makeTensorInfo(c.shape,s.dtype,c.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${n.shape.length}.`)}var VO={kernelName:Hl,backendName:"webgl",kernelFunc:$9};var IC=class{constructor(e,t,o){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=o,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -2459,18 +2459,18 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam float result = ${this.getInputSamplingString()}; setOutput(result); } - `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}};function u7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{blockSize:s,dataFormat:a}=o;x.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let i=n.shape[0],l=a==="NHWC"?n.shape[1]:n.shape[2],u=a==="NHWC"?n.shape[2]:n.shape[3],c=a==="NHWC"?n.shape[3]:n.shape[1],p=l*s,m=u*s,f=c/(s*s),d=a==="NHWC"?[i,p,m,f]:[i,f,p,m],h=new iC(d,s,a);return t.runWebGLProgram(h,[n],n.dtype)}var WF={kernelName:ei,backendName:"webgl",kernelFunc:u7};var oh=class{constructor(e,t=!1,o=null,n=!1,s=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let a=e.inHeight,i=e.inWidth,l=e.padInfo.top,u=e.padInfo.left,c=e.strideHeight,p=e.strideWidth,m=e.dilationHeight,f=e.dilationWidth,d=e.filterHeight,h=e.filterWidth,g=e.outChannels/e.inChannels,y="",b="";o&&(n?y=`float activation(float a) { + `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}};function R9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{blockSize:s,dataFormat:a}=o;y.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let i=n.shape[0],l=a==="NHWC"?n.shape[1]:n.shape[2],u=a==="NHWC"?n.shape[2]:n.shape[3],c=a==="NHWC"?n.shape[3]:n.shape[1],p=l*s,m=u*s,f=c/(s*s),d=a==="NHWC"?[i,p,m,f]:[i,f,p,m],h=new IC(d,s,a);return t.runWebGLProgram(h,[n],n.dtype)}var GO={kernelName:ti,backendName:"webgl",kernelFunc:R9};var ih=class{constructor(e,t=!1,o=null,n=!1,s=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let a=e.inHeight,i=e.inWidth,l=e.padInfo.top,u=e.padInfo.left,c=e.strideHeight,p=e.strideWidth,m=e.dilationHeight,f=e.dilationWidth,d=e.filterHeight,h=e.filterWidth,g=e.outChannels/e.inChannels,x="",w="";o&&(n?x=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${o} - }`:s?y=`float activation(float a) { + }`:s?x=`float activation(float a) { float b = getLeakyreluAlphaAtOutCoords(); ${o} - }`:y=` + }`:x=` float activation(float x) { ${o} } - `,b="result = activation(result);");let w=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),n&&this.variableNames.push("preluActivationWeights"),s&&this.variableNames.push("leakyreluAlpha"),this.userCode=` - ${y} + `,w="result = activation(result);");let b=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),n&&this.variableNames.push("preluActivationWeights"),s&&this.variableNames.push("leakyreluAlpha"),this.userCode=` + ${x} const ivec2 strides = ivec2(${c}, ${p}); const ivec2 pads = ivec2(${l}, ${u}); @@ -2511,28 +2511,28 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam } float result = dotProd; - ${w} ${b} + ${w} setOutput(result); } - `}};var nh=class{constructor(e,t=!1,o=null,n=!1,s=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.outShape;let a=e.inHeight,i=e.inWidth,l=e.padInfo.top,u=e.padInfo.left,c=e.strideHeight,p=e.strideWidth,m=e.dilationHeight,f=e.dilationWidth,d=e.filterHeight,h=e.filterWidth,g=h,y="int xR; int xC; int xCOffset;";for(let C=0;C= 0 && xR < ${a} && xCOffset >= 0 && xCOffset < ${i}) { - xTexelR${C}C${T} = getX(batch, xR, xCOffset, d1); + xTexelR${k}C${N} = getX(batch, xR, xCOffset, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if(xCOffset + 1 >= ${i}) { - xTexelR${C}C${T}.zw = vec2(0.); + xTexelR${k}C${N}.zw = vec2(0.); } } else { - xTexelR${C}C${T} = vec4(0.); + xTexelR${k}C${N} = vec4(0.); } xCOffset = xC + 1 - 2; @@ -2545,105 +2545,105 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam previous.zw = vec2(0.); } - xR${C}C${T} = vec4(previous.zw, xTexelR${C}C${T}.xy); + xR${k}C${N} = vec4(previous.zw, xTexelR${k}C${N}.xy); } else { - xR${C}C${T} = vec4(0, 0, xTexelR${C}C${T}.xy); + xR${k}C${N} = vec4(0, 0, xTexelR${k}C${N}.xy); } - `:y+=` + `:x+=` if(xR >= 0 && xR < ${a} && xC >= 0 && xC < ${i}) { - xTexelR${C}C${T} = getX(batch, xR, xC, d1); + xTexelR${k}C${N} = getX(batch, xR, xC, d1); } else { - xTexelR${C}C${T} = vec4(0.); + xTexelR${k}C${N} = vec4(0.); } - xR${C}C${T} = xTexelR${C}C${T}; - `,T+1= 0 && xR < ${a} && xCOffset >= 0 && xCOffset < ${i}) { - xTexelR${C}C${T+2} = getX(batch, xR, xCOffset, d1); + xTexelR${k}C${N+2} = getX(batch, xR, xCOffset, d1); } - `,f>1&&(y+=` + `,f>1&&(x+=` xCOffset -= 2; if(xR >= 0 && xR < ${a} && xCOffset >= 0 && xCOffset < ${i}) { - xTexelR${C}C${T} = getX(batch, xR, xCOffset, d1); + xTexelR${k}C${N} = getX(batch, xR, xCOffset, d1); } else { - xTexelR${C}C${T} = vec4(0.); + xTexelR${k}C${N} = vec4(0.); } - `),y+=` - xR${C}C${T+1} = vec4( - xTexelR${C}C${T}.zw, xTexelR${C}C${T+2}.xy); - `):y+=` - xCOffset = xC + ${R}; + `),x+=` + xR${k}C${N+1} = vec4( + xTexelR${k}C${N}.zw, xTexelR${k}C${N+2}.xy); + `):x+=` + xCOffset = xC + ${$}; if(xR >= 0 && xR < ${a} && xCOffset >= 0 && xCOffset < ${i}) { - xTexelR${C}C${T+2} = getX(batch, xR, xCOffset, d1); + xTexelR${k}C${N+2} = getX(batch, xR, xCOffset, d1); } - xR${C}C${T+1} = xTexelR${C}C${T+2}; - `}}else T= 0 && xR < ${a}) { - `,u%2==1?(y+=` + `,u%2==1?(x+=` xCOffset = xC + 1 - ${p}; if(xCOffset >= 0 && xCOffset < ${i}) { - xTexelR${C}C${T} = getX(batch, xR, xCOffset, d1); + xTexelR${k}C${N} = getX(batch, xR, xCOffset, d1); } else { - xTexelR${C}C${T} = vec4(0.); + xTexelR${k}C${N} = vec4(0.); } if(xC + 1 >= 0 && xC + 1 < ${i}) { - xTexelR${C}C${T+2} = getX(batch, xR, xC + 1, d1); + xTexelR${k}C${N+2} = getX(batch, xR, xC + 1, d1); } else { - xTexelR${C}C${T+2} = vec4(0.); + xTexelR${k}C${N+2} = vec4(0.); } - xR${C}C${T} = vec4( - xTexelR${C}C${T}.zw, xTexelR${C}C${T+2}.zw); - `,T+1= 0 && xCOffset < ${i}) { final = getX(batch, xR, xCOffset, d1); } - xR${C}C${T+1} = vec4(xTexelR${C}C${T+2}.xy, final.xy); - `)):(y+=` + xR${k}C${N+1} = vec4(xTexelR${k}C${N+2}.xy, final.xy); + `)):(x+=` if(xC >= 0 && xC < ${i}) { - xTexelR${C}C${T} = getX(batch, xR, xC, d1); + xTexelR${k}C${N} = getX(batch, xR, xC, d1); } else { - xTexelR${C}C${T} = vec4(0.); + xTexelR${k}C${N} = vec4(0.); } xCOffset = xC + ${p}; if(xCOffset >= 0 && xCOffset < ${i}) { - xTexelR${C}C${T+2} = getX(batch, xR, xCOffset, d1); + xTexelR${k}C${N+2} = getX(batch, xR, xCOffset, d1); } else { - xTexelR${C}C${T+2} = vec4(0.); + xTexelR${k}C${N+2} = vec4(0.); } - xR${C}C${T} = vec4( - xTexelR${C}C${T}.xy, xTexelR${C}C${T+2}.xy); - `,T+1`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${a} and dilations '${c}'`);let p=N.computeConv2DInfo(n.shape,s.shape,a,c,i,u,!0),m;return W().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels==1?m=new nh(p):m=new oh(p),t.runWebGLProgram(m,[n,s],"float32")}var UF={kernelName:tn,backendName:"webgl",kernelFunc:c7};var aC=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,o=e.strideWidth,n=e.padInfo.top,s=e.padInfo.left,a=e.outChannels/e.inChannels;this.userCode=` + `}};function F9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s}=e,{strides:a,pad:i,dilations:l,dimRoundingMode:u}=o,c=l;c==null&&(c=[1,1]),y.assert(S.eitherStridesOrDilationsAreOne(a,c),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${a} and dilations '${c}'`);let p=S.computeConv2DInfo(n.shape,s.shape,a,c,i,u,!0),m;return j().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels==1?m=new ah(p):m=new ih(p),t.runWebGLProgram(m,[n,s],"float32")}var WO={kernelName:tn,backendName:"webgl",kernelFunc:F9};var NC=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,o=e.strideWidth,n=e.padInfo.top,s=e.padInfo.left,a=e.outChannels/e.inChannels;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -2703,7 +2703,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam } setOutput(dotProd); } - `}},lC=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,o=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a=t-1-e.padInfo.top,i=o-1-e.padInfo.left,l=e.outChannels/e.inChannels;this.userCode=` + `}},SC=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,o=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a=t-1-e.padInfo.top,i=o-1-e.padInfo.left,l=e.outChannels/e.inChannels;this.userCode=` const ivec2 pads = ivec2(${a}, ${i}); void main() { @@ -2748,13 +2748,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam } setOutput(dotProd); } - `}};function p7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,dy:s}=e,{strides:a,dilations:i,pad:l,dimRoundingMode:u,filterShape:c}=o,p=N.computeConv2DInfo(n.shape,c,a,i,l,u,!0),m=new aC(p);return t.runWebGLProgram(m,[n,s],"float32")}var jF={kernelName:ql,backendName:"webgl",kernelFunc:p7};function m7(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,filter:s}=e,{strides:a,dilations:i,pad:l,dimRoundingMode:u,inputShape:c}=o,p=N.computeConv2DInfo(c,s.shape,a,i,l,u,!0),m=new lC(p);return t.runWebGLProgram(m,[n,s],"float32")}var HF={kernelName:Kl,backendName:"webgl",kernelFunc:m7};var uC=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` + `}};function O9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,dy:s}=e,{strides:a,dilations:i,pad:l,dimRoundingMode:u,filterShape:c}=o,p=S.computeConv2DInfo(n.shape,c,a,i,l,u,!0),m=new NC(p);return t.runWebGLProgram(m,[n,s],"float32")}var UO={kernelName:ql,backendName:"webgl",kernelFunc:O9};function P9(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,filter:s}=e,{strides:a,dilations:i,pad:l,dimRoundingMode:u,inputShape:c}=o,p=S.computeConv2DInfo(c,s.shape,a,i,l,u,!0),m=new SC(p);return t.runWebGLProgram(m,[n,s],"float32")}var jO={kernelName:Kl,backendName:"webgl",kernelFunc:P9};var TC=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` void main() { ivec2 coords = getOutputCoords(); float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; setOutput(val); } - `}};function f7(r){let{inputs:e,backend:t}=r,{x:o}=e,n=[...o.shape,...o.shape],s=x.sizeFromShape(o.shape),a=pe({inputs:{x:o},backend:t,attrs:{shape:[s]}}),i=new uC(s),l=t.runWebGLProgram(i,[a],a.dtype),u=pe({inputs:{x:l},backend:t,attrs:{shape:n}});return t.disposeIntermediateTensorInfo(a),t.disposeIntermediateTensorInfo(l),u}var qF={kernelName:Xl,backendName:"webgl",kernelFunc:f7};var cC=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:o,padInfo:n,strideHeight:s,strideWidth:a,filterHeight:i,filterWidth:l,dilationHeight:u,dilationWidth:c}=e,{top:p,left:m}=n;this.userCode=` + `}};function M9(r){let{inputs:e,backend:t}=r,{x:o}=e,n=[...o.shape,...o.shape],s=y.sizeFromShape(o.shape),a=pe({inputs:{x:o},backend:t,attrs:{shape:[s]}}),i=new TC(s),l=t.runWebGLProgram(i,[a],a.dtype),u=pe({inputs:{x:l},backend:t,attrs:{shape:n}});return t.disposeIntermediateTensorInfo(a),t.disposeIntermediateTensorInfo(l),u}var HO={kernelName:Xl,backendName:"webgl",kernelFunc:M9};var AC=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:o,padInfo:n,strideHeight:s,strideWidth:a,filterHeight:i,filterWidth:l,dilationHeight:u,dilationWidth:c}=e,{top:p,left:m}=n;this.userCode=` const ivec2 strides = ivec2(${s}, ${a}); const ivec2 pads = ivec2(${p}, ${m}); const float neg_infinity = -3.4e38; @@ -2792,7 +2792,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam float result = curVal; setOutput(result); } - `}};function d7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s}=e,{strides:a,pad:i,dilations:l}=o,u=N.computeDilation2DInfo(n.shape,s.shape,a,i,"NHWC",l),c,p=new cC(u);c=t.runWebGLProgram(p,[n,s],"float32");let m=pe({inputs:{x:c},backend:t,attrs:{shape:u.outShape}});return t.disposeIntermediateTensorInfo(c),m}var KF={kernelName:sa,backendName:"webgl",kernelFunc:d7};var h7="return (x >= 0.0) ? x : (exp(x) - 1.0);",g7=` + `}};function L9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s}=e,{strides:a,pad:i,dilations:l}=o,u=S.computeDilation2DInfo(n.shape,s.shape,a,i,"NHWC",l),c,p=new AC(u);c=t.runWebGLProgram(p,[n,s],"float32");let m=pe({inputs:{x:c},backend:t,attrs:{shape:u.outShape}});return t.disposeIntermediateTensorInfo(c),m}var qO={kernelName:sa,backendName:"webgl",kernelFunc:L9};var z9="return (x >= 0.0) ? x : (exp(x) - 1.0);",B9=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -2801,27 +2801,27 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,x7=_e({opSnippet:h7,packedOpSnippet:g7}),XF={kernelName:ti,backendName:"webgl",kernelFunc:x7};var y7="return (b >= 1.0) ? a : a * (b + 1.0);",b7=` +`,V9=_e({opSnippet:z9,packedOpSnippet:B9}),KO={kernelName:ri,backendName:"webgl",kernelFunc:V9};var G9="return (b >= 1.0) ? a : a * (b + 1.0);",W9=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); -`,w7=r=>{let{inputs:e,backend:t}=r,{dy:o,y:n}=e,s=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Vs(b7,o.shape,n.shape):new rs(y7,o.shape,n.shape);return t.runWebGLProgram(s,[o,n],o.dtype)},YF={kernelName:Yl,backendName:"webgl",kernelFunc:w7};var _7=` +`,U9=r=>{let{inputs:e,backend:t}=r,{dy:o,y:n}=e,s=j().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Gs(W9,o.shape,n.shape):new rs(G9,o.shape,n.shape);return t.runWebGLProgram(s,[o,n],o.dtype)},XO={kernelName:Yl,backendName:"webgl",kernelFunc:U9};var j9=` return vec4(equal(a, b)); -`,k7="return float(a == b);",v7=nt({opSnippet:k7,packedOpSnippet:_7,dtype:"bool"}),ZF={kernelName:oi,backendName:"webgl",kernelFunc:v7};var C7=` +`,H9="return float(a == b);",q9=nt({opSnippet:H9,packedOpSnippet:j9,dtype:"bool"}),YO={kernelName:ni,backendName:"webgl",kernelFunc:q9};var K9=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. - float p = ${N.ERF_P}; - float a1 = ${N.ERF_A1}; - float a2 = ${N.ERF_A2}; - float a3 = ${N.ERF_A3}; - float a4 = ${N.ERF_A4}; - float a5 = ${N.ERF_A5}; + float p = ${S.ERF_P}; + float a1 = ${S.ERF_A1}; + float a2 = ${S.ERF_A2}; + float a3 = ${S.ERF_A3}; + float a4 = ${S.ERF_A4}; + float a5 = ${S.ERF_A5}; float sign = sign(x); x = abs(x); float t = 1.0 / (1.0 + p * x); return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x)); -`,I7=_e({opSnippet:C7}),JF={kernelName:ri,backendName:"webgl",kernelFunc:I7};var QF="return exp(x);",pC=_e({opSnippet:QF,packedOpSnippet:QF,cpuKernelImpl:Y$}),eO={kernelName:on,backendName:"webgl",kernelFunc:pC};function Vx(r){let{inputs:e,attrs:t,backend:o}=r,{dim:n}=t,{input:s}=e,a=s.shape.length,i=s.shape.slice(),l=n;return n<0&&(x.assert(-(a+1)<=n,()=>`Axis must be in the interval [${-(a+1)}, ${a}]`),l=a+n+1),i.splice(l,0,1),pe({inputs:{x:s},backend:o,attrs:{shape:i}})}var tO={kernelName:us,backendName:"webgl",kernelFunc:Vx};var rO="return exp(x) - 1.0;",N7=_e({opSnippet:rO,packedOpSnippet:rO,cpuKernelImpl:Z$}),oO={kernelName:ni,backendName:"webgl",kernelFunc:N7};var Gx=class{constructor(e,t,o){this.variableNames=["real","imag"];let n=t[1];this.outputShape=t;let s=o?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,a=o?`${n}.0`:"1.0",i;if(e==="real")i="return real * expR - imag * expI;";else if(e==="imag")i="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` +`,X9=_e({opSnippet:K9}),ZO={kernelName:oi,backendName:"webgl",kernelFunc:X9};var JO="return exp(x);",EC=_e({opSnippet:JO,packedOpSnippet:JO,cpuKernelImpl:XR}),QO={kernelName:on,backendName:"webgl",kernelFunc:EC};function qx(r){let{inputs:e,attrs:t,backend:o}=r,{dim:n}=t,{input:s}=e,a=s.shape.length,i=s.shape.slice(),l=n;return n<0&&(y.assert(-(a+1)<=n,()=>`Axis must be in the interval [${-(a+1)}, ${a}]`),l=a+n+1),i.splice(l,0,1),pe({inputs:{x:s},backend:o,attrs:{shape:i}})}var eP={kernelName:us,backendName:"webgl",kernelFunc:qx};var tP="return exp(x) - 1.0;",Y9=_e({opSnippet:tP,packedOpSnippet:tP,cpuKernelImpl:YR}),rP={kernelName:si,backendName:"webgl",kernelFunc:Y9};var Kx=class{constructor(e,t,o){this.variableNames=["real","imag"];let n=t[1];this.outputShape=t;let s=o?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,a=o?`${n}.0`:"1.0",i;if(e==="real")i="return real * expR - imag * expI;";else if(e==="imag")i="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` const float exponentMultiplier = ${s}; float unaryOpComplex(float real, float expR, float imag, float expI) { @@ -2854,13 +2854,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}};function Wx(r,e,t){let o=t.texData.get(r.dataId),n=x.sizeFromShape(r.shape),s=r.shape[r.shape.length-1],a=n/s,i=pe({inputs:{x:r},backend:t,attrs:{shape:[a,s]}}),l=i.shape,u=new Gx("real",l,e),c=new Gx("imag",l,e),p=[{dataId:o.complexTensorInfos.real.dataId,dtype:o.complexTensorInfos.real.dtype,shape:l},{dataId:o.complexTensorInfos.imag.dataId,dtype:o.complexTensorInfos.imag.dtype,shape:l}],m=t.runWebGLProgram(u,p,"float32"),f=t.runWebGLProgram(c,p,"float32"),d=go({inputs:{real:m,imag:f},backend:t});t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(f);let h=pe({inputs:{x:d},backend:t,attrs:{shape:r.shape}});return t.disposeIntermediateTensorInfo(i),t.disposeIntermediateTensorInfo(d),h}function S7(r){let{inputs:e,backend:t}=r,{input:o}=e;return Wx(o,!1,t)}var nO={kernelName:Zl,backendName:"webgl",kernelFunc:S7};var mC=class{constructor(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode=` + `}};function Xx(r,e,t){let o=t.texData.get(r.dataId),n=y.sizeFromShape(r.shape),s=r.shape[r.shape.length-1],a=n/s,i=pe({inputs:{x:r},backend:t,attrs:{shape:[a,s]}}),l=i.shape,u=new Kx("real",l,e),c=new Kx("imag",l,e),p=[{dataId:o.complexTensorInfos.real.dataId,dtype:o.complexTensorInfos.real.dtype,shape:l},{dataId:o.complexTensorInfos.imag.dataId,dtype:o.complexTensorInfos.imag.dtype,shape:l}],m=t.runWebGLProgram(u,p,"float32"),f=t.runWebGLProgram(c,p,"float32"),d=go({inputs:{real:m,imag:f},backend:t});t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(f);let h=pe({inputs:{x:d},backend:t,attrs:{shape:r.shape}});return t.disposeIntermediateTensorInfo(i),t.disposeIntermediateTensorInfo(d),h}function Z9(r){let{inputs:e,backend:t}=r,{input:o}=e;return Xx(o,!1,t)}var oP={kernelName:Zl,backendName:"webgl",kernelFunc:Z9};var DC=class{constructor(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode=` uniform float value; void main() { // Input can be obtained from uniform value. setOutput(value); } - `}getCustomSetupFunc(e){return(t,o)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(o,"value")),t.gl.uniform1f(this.valueLoc,e)}}};function sh(r){let{backend:e,attrs:t}=r,{shape:o,value:n}=t,{dtype:s}=t;if(s=s||x.inferDtype(n),s==="string"){let a=x.getArrayFromDType(s,x.sizeFromShape(o));return a.fill(n),e.makeTensorInfo(o,s,a)}else{let a=new mC(o,n),i=a.getCustomSetupFunc(n);return e.runWebGLProgram(a,[],s,i)}}var sO={kernelName:ia,backendName:"webgl",kernelFunc:sh};var fC=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e){return(t,o)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(o,"value")),t.gl.uniform1f(this.valueLoc,e)}}};function lh(r){let{backend:e,attrs:t}=r,{shape:o,value:n}=t,{dtype:s}=t;if(s=s||y.inferDtype(n),s==="string"){let a=y.getArrayFromDType(s,y.sizeFromShape(o));return a.fill(n),e.makeTensorInfo(o,s,a)}else{let a=new DC(o,n),i=a.getCustomSetupFunc(n);return e.runWebGLProgram(a,[],s,i)}}var nP={kernelName:ia,backendName:"webgl",kernelFunc:lh};var $C=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int x = coords[2]; @@ -2874,7 +2874,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam } setOutput(outputValue); } - `}};var iO={kernelName:si,backendName:"webgl",kernelFunc:({inputs:r,backend:e})=>{let{image:t}=r,o=e,n=new fC(t.shape);return o.runWebGLProgram(n,[t],t.dtype)}};var aO="return floor(x);",T7=_e({opSnippet:aO,packedOpSnippet:aO,cpuKernelImpl:J$}),lO={kernelName:nn,backendName:"webgl",kernelFunc:T7};var A7=` + `}};var sP={kernelName:ii,backendName:"webgl",kernelFunc:({inputs:r,backend:e})=>{let{image:t}=r,o=e,n=new $C(t.shape);return o.runWebGLProgram(n,[t],t.dtype)}};var iP="return floor(x);",J9=_e({opSnippet:iP,packedOpSnippet:iP,cpuKernelImpl:ZR}),aP={kernelName:nn,backendName:"webgl",kernelFunc:J9};var Q9=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -2884,7 +2884,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam } else { return NAN; } -`,E7=` +`,eZ=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); @@ -2905,7 +2905,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,D7=nt({opSnippet:A7,packedOpSnippet:E7,dtype:"int32"}),uO={kernelName:sn,backendName:"webgl",kernelFunc:D7};var dC=class{constructor(e){this.variableNames=["A"];let t=Ot(),[o,n]=e;this.outputShape=e,this.userCode=` +`,tZ=nt({opSnippet:Q9,packedOpSnippet:eZ,dtype:"int32"}),lP={kernelName:sn,backendName:"webgl",kernelFunc:tZ};var RC=class{constructor(e){this.variableNames=["A"];let t=Pt(),[o,n]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -2927,7 +2927,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam setOutput(floor(value * 255.0 + 0.5)); } - `}};var hC=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=Ot(),[o,n]=e;this.outputShape=e,this.userCode=` + `}};var FC=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=Pt(),[o,n]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -2961,7 +2961,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam ${t.output} = result; } - `}};var cO={kernelName:$c,backendName:"webgl",kernelFunc:$7},Hp;function $7(r){let{inputs:e,backend:t,attrs:o}=r,{pixels:n}=e,{numChannels:s}=o,a=typeof HTMLVideoElement!="undefined"&&n instanceof HTMLVideoElement,i=typeof HTMLImageElement!="undefined"&&n instanceof HTMLImageElement,l=typeof ImageBitmap!="undefined"&&n instanceof ImageBitmap,[u,c]=a?[n.videoWidth,n.videoHeight]:[n.width,n.height],p=[c,u],m=[c,u,s];(i||a||l)&&(Hp==null&&(Hp=document.createElement("canvas").getContext("2d")),Hp.canvas.width=u,Hp.canvas.height=c,Hp.drawImage(n,0,0,u,c),n=Hp.canvas);let f=t.makeTensorInfo(p,"int32");t.texData.get(f.dataId).usage=Er.PIXELS,t.gpgpu.uploadPixelDataToTexture(t.getTexture(f.dataId),n);let d=W().getBool("WEBGL_PACK")?new hC(m):new dC(m),h=t.runWebGLProgram(d,[f],"int32");return t.disposeData(f.dataId),h}function R7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=o,h=N.convertConv2DDataFormat(c),g=N.computeConv2DInfo(n.shape,s.shape,l,p,u,m,!1,h),y,b=[];if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))y=Lx({x:n,filter:s,convInfo:g,backend:t,bias:a,activation:f,preluActivationWeights:i,leakyreluAlpha:d});else if(W().getBool("WEBGL_CONV_IM2COL")&&n.shape[0]===1)y=zx({x:n,filter:s,convInfo:g,backend:t,bias:a,activation:f,preluActivationWeights:i,leakyreluAlpha:d});else{let _=a!=null,C=i!=null,D=f==="leakyrelu",T=f?Tl(f,!1):null,R=new rh(g,_,T,C,D),P=[n,s];if(a&&P.push(a),i&&P.push(i),D){let B=t.makeTensorInfo([],"float32",x.createScalarValue(d,"float32"));P.push(B),b.push(B)}y=t.runWebGLProgram(R,P,"float32")}let w=pe({inputs:{x:y},backend:t,attrs:{shape:g.outShape}});return b.push(y),b.forEach(_=>t.disposeIntermediateTensorInfo(_)),w}var pO={kernelName:_s,backendName:"webgl",kernelFunc:R7};function F7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dilations:c,dimRoundingMode:p,activation:m,leakyreluAlpha:f}=o,d=[],h=c;h==null&&(h=[1,1]),x.assert(N.eitherStridesOrDilationsAreOne(l,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${h}'`);let g=N.computeConv2DInfo(n.shape,s.shape,l,h,u,p,!0),y=W().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels==1,b=m?Tl(m,y):null,w=[n,s],_=a!=null,C=i!=null,D=m==="leakyrelu";if(_&&w.push(a),C&&w.push(i),D){let P=t.makeTensorInfo([],"float32",x.createScalarValue(f,"float32"));w.push(P),d.push(P)}let T;y?T=new nh(g,_,b,C,D):T=new oh(g,_,b,C,D);let R=t.runWebGLProgram(T,w,"float32");return d.forEach(P=>t.disposeIntermediateTensorInfo(P)),R}var mO={kernelName:ks,backendName:"webgl",kernelFunc:F7};var gC=class{constructor(e,t,o){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=o;let n=Le(t.length),s=Le(o.length),a=this.sliceDim>1?"strides[j]":"strides";this.userCode=` + `}};var uP={kernelName:Pc,backendName:"webgl",kernelFunc:rZ},Xp;function rZ(r){let{inputs:e,backend:t,attrs:o}=r,{pixels:n}=e,{numChannels:s}=o,a=typeof HTMLVideoElement!="undefined"&&n instanceof HTMLVideoElement,i=typeof HTMLImageElement!="undefined"&&n instanceof HTMLImageElement,[l,u]=a?[n.videoWidth,n.videoHeight]:[n.width,n.height],c=[u,l],p=[u,l,s];(i||a)&&(Xp==null&&(Xp=document.createElement("canvas").getContext("2d")),Xp.canvas.width=l,Xp.canvas.height=u,Xp.drawImage(n,0,0,l,u),n=Xp.canvas);let m=t.makeTensorInfo(c,"int32");t.texData.get(m.dataId).usage=Dr.PIXELS,t.gpgpu.uploadPixelDataToTexture(t.getTexture(m.dataId),n);let f=j().getBool("WEBGL_PACK")?new FC(p):new RC(p),d=t.runWebGLProgram(f,[m],"int32");return t.disposeData(m.dataId),d}function oZ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=o,h=S.convertConv2DDataFormat(c),g=S.computeConv2DInfo(n.shape,s.shape,l,p,u,m,!1,h),x,w=[];if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))x=Ux({x:n,filter:s,convInfo:g,backend:t,bias:a,activation:f,preluActivationWeights:i,leakyreluAlpha:d});else if(j().getBool("WEBGL_CONV_IM2COL")&&n.shape[0]===1)x=jx({x:n,filter:s,convInfo:g,backend:t,bias:a,activation:f,preluActivationWeights:i,leakyreluAlpha:d});else{let _=a!=null,k=i!=null,A=f==="leakyrelu",N=f?Tl(f,!1):null,$=new sh(g,_,N,k,A),F=[n,s];if(a&&F.push(a),i&&F.push(i),A){let M=t.makeTensorInfo([],"float32",y.createScalarValue(d,"float32"));F.push(M),w.push(M)}x=t.runWebGLProgram($,F,"float32")}let b=pe({inputs:{x},backend:t,attrs:{shape:g.outShape}});return w.push(x),w.forEach(_=>t.disposeIntermediateTensorInfo(_)),b}var cP={kernelName:_s,backendName:"webgl",kernelFunc:oZ};function nZ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dilations:c,dimRoundingMode:p,activation:m,leakyreluAlpha:f}=o,d=[],h=c;h==null&&(h=[1,1]),y.assert(S.eitherStridesOrDilationsAreOne(l,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${h}'`);let g=S.computeConv2DInfo(n.shape,s.shape,l,h,u,p,!0),x=j().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels==1,w=m?Tl(m,x):null,b=[n,s],_=a!=null,k=i!=null,A=m==="leakyrelu";if(_&&b.push(a),k&&b.push(i),A){let F=t.makeTensorInfo([],"float32",y.createScalarValue(f,"float32"));b.push(F),d.push(F)}let N;x?N=new ah(g,_,w,k,A):N=new ih(g,_,w,k,A);let $=t.runWebGLProgram(N,b,"float32");return d.forEach(F=>t.disposeIntermediateTensorInfo(F)),$}var pP={kernelName:ks,backendName:"webgl",kernelFunc:nZ};var OC=class{constructor(e,t,o){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=o;let n=Le(t.length),s=Le(o.length),a=this.sliceDim>1?"strides[j]":"strides";this.userCode=` ${n} strides = ${n}(${this.strides}); void main() { ${s} coords = getOutputCoords(); @@ -2972,21 +2972,21 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam } setOutput(getX(flattenIndex, coords[1])); } - `}};function O7(r){let{inputs:e,backend:t}=r,{params:o,indices:n}=e,s=n.shape,a=s[s.length-1],[i,l,u,c]=N.prepareAndValidate(o,n),p=pe({inputs:{x:n},backend:t,attrs:{shape:[l,a]}}),m=pe({inputs:{x:o},backend:t,attrs:{shape:[x.sizeFromShape(o.shape)/u,u]}}),f=new gC(a,c,[l,u]),d=t.runWebGLProgram(f,[m,p],m.dtype),h=pe({inputs:{x:d},backend:t,attrs:{shape:i}});return t.disposeIntermediateTensorInfo(p),t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(d),h}var fO={kernelName:ii,backendName:"webgl",kernelFunc:O7};var xC=class{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;let o=Le(this.rank),n=P7(e,2);this.userCode=` + `}};function sZ(r){let{inputs:e,backend:t}=r,{params:o,indices:n}=e,s=n.shape,a=s[s.length-1],[i,l,u,c]=S.prepareAndValidate(o,n),p=pe({inputs:{x:n},backend:t,attrs:{shape:[l,a]}}),m=pe({inputs:{x:o},backend:t,attrs:{shape:[y.sizeFromShape(o.shape)/u,u]}}),f=new OC(a,c,[l,u]),d=t.runWebGLProgram(f,[m,p],m.dtype),h=pe({inputs:{x:d},backend:t,attrs:{shape:i}});return t.disposeIntermediateTensorInfo(p),t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(d),h}var mP={kernelName:ai,backendName:"webgl",kernelFunc:sZ};var PC=class{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;let o=Le(this.rank),n=iZ(e,2);this.userCode=` void main() { ${o} resRC = getOutputCoords(); setOutput(getA(${n})); } - `}};function P7(r,e){let t=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[];for(let n=0;nt.disposeIntermediateTensorInfo(C)),t.makeTensorInfo(u.outputShape,_.dtype,_.values)}let h=new xC(m.shape,d),g=t.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let y=pe({inputs:{x:g},backend:t,attrs:{shape:u.outputShape}});return p.forEach(b=>t.disposeIntermediateTensorInfo(b)),y}var dO={kernelName:cs,backendName:"webgl",kernelFunc:M7};var L7="return float(a > b);",z7=` + `}};function iZ(r,e){let t=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[];for(let n=0;nt.disposeIntermediateTensorInfo(k)),t.makeTensorInfo(u.outputShape,_.dtype,_.values)}let h=new PC(m.shape,d),g=t.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=pe({inputs:{x:g},backend:t,attrs:{shape:u.outputShape}});return p.forEach(w=>t.disposeIntermediateTensorInfo(w)),x}var fP={kernelName:cs,backendName:"webgl",kernelFunc:aZ};var lZ="return float(a > b);",uZ=` return vec4(greaterThan(a, b)); -`,B7=nt({opSnippet:L7,packedOpSnippet:z7,cpuKernelImpl:eR,dtype:"bool"}),hO={kernelName:ai,backendName:"webgl",kernelFunc:B7};var V7="return float(a >= b);",G7=` +`,cZ=nt({opSnippet:lZ,packedOpSnippet:uZ,cpuKernelImpl:QR,dtype:"bool"}),dP={kernelName:li,backendName:"webgl",kernelFunc:cZ};var pZ="return float(a >= b);",mZ=` return vec4(greaterThanEqual(a, b)); -`,W7=nt({opSnippet:V7,packedOpSnippet:G7,dtype:"bool"}),gO={kernelName:ln,backendName:"webgl",kernelFunc:W7};function U7(r){let{inputs:e,backend:t}=r,{input:o}=e;return Wx(o,!0,t)}var xO={kernelName:Jl,backendName:"webgl",kernelFunc:U7};var j7="return float(!isnan(x) && !isinf(x));",H7=_e({opSnippet:j7,dtype:"bool"}),yO={kernelName:li,backendName:"webgl",kernelFunc:H7};var q7="return float(isinf(x));",K7=_e({opSnippet:q7,dtype:"bool"}),bO={kernelName:ui,backendName:"webgl",kernelFunc:K7};var X7="return float(isnan(x));",Y7=_e({opSnippet:X7,dtype:"bool"}),wO={kernelName:ci,backendName:"webgl",kernelFunc:Y7};var Z7="return float(a < b);",J7=` +`,fZ=nt({opSnippet:pZ,packedOpSnippet:mZ,dtype:"bool"}),hP={kernelName:ln,backendName:"webgl",kernelFunc:fZ};function dZ(r){let{inputs:e,backend:t}=r,{input:o}=e;return Xx(o,!0,t)}var gP={kernelName:Jl,backendName:"webgl",kernelFunc:dZ};var hZ="return float(!isnan(x) && !isinf(x));",gZ=_e({opSnippet:hZ,dtype:"bool"}),xP={kernelName:ui,backendName:"webgl",kernelFunc:gZ};var xZ="return float(isinf(x));",yZ=_e({opSnippet:xZ,dtype:"bool"}),yP={kernelName:ci,backendName:"webgl",kernelFunc:yZ};var bZ="return float(isnan(x));",wZ=_e({opSnippet:bZ,dtype:"bool"}),bP={kernelName:pi,backendName:"webgl",kernelFunc:wZ};var _Z="return float(a < b);",kZ=` return vec4(lessThan(a, b)); -`,Q7=nt({opSnippet:Z7,packedOpSnippet:J7,cpuKernelImpl:tR,dtype:"bool"}),_O={kernelName:pi,backendName:"webgl",kernelFunc:Q7};var eZ="return float(a <= b);",tZ=` +`,vZ=nt({opSnippet:_Z,packedOpSnippet:kZ,cpuKernelImpl:eF,dtype:"bool"}),wP={kernelName:mi,backendName:"webgl",kernelFunc:vZ};var CZ="return float(a <= b);",IZ=` return vec4(lessThanEqual(a, b)); -`,rZ=nt({opSnippet:eZ,packedOpSnippet:tZ,dtype:"bool"}),kO={kernelName:mi,backendName:"webgl",kernelFunc:rZ};function oZ(r){let{backend:e,attrs:t}=r,{start:o,stop:n,num:s}=t,a=rR(o,n,s);return e.makeTensorInfo([a.length],"float32",a)}var vO={kernelName:eu,backendName:"webgl",kernelFunc:oZ};var nZ=`if (x < 0.0) return NAN; - return log(x);`,sZ=` +`,NZ=nt({opSnippet:CZ,packedOpSnippet:IZ,dtype:"bool"}),_P={kernelName:fi,backendName:"webgl",kernelFunc:NZ};function SZ(r){let{backend:e,attrs:t}=r,{start:o,stop:n,num:s}=t,a=tF(o,n,s);return e.makeTensorInfo([a.length],"float32",a)}var kP={kernelName:eu,backendName:"webgl",kernelFunc:SZ};var TZ=`if (x < 0.0) return NAN; + return log(x);`,AZ=` vec4 result = log(x); vec4 isNaN = vec4(lessThan(x, vec4(0.0))); result.r = isNaN.r == 1.0 ? NAN : result.r; @@ -2995,16 +2995,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam result.a = isNaN.a == 1.0 ? NAN : result.a; return result; -`,iZ=_e({opSnippet:nZ,packedOpSnippet:sZ,cpuKernelImpl:oR}),CO={kernelName:cn,backendName:"webgl",kernelFunc:iZ};var aZ="return log(1.0 + x);",lZ=_e({opSnippet:aZ}),IO={kernelName:fi,backendName:"webgl",kernelFunc:lZ};var uZ="return float(a >= 1.0 && b >= 1.0);",cZ=` +`,EZ=_e({opSnippet:TZ,packedOpSnippet:AZ,cpuKernelImpl:rF}),vP={kernelName:cn,backendName:"webgl",kernelFunc:EZ};var DZ="return log(1.0 + x);",$Z=_e({opSnippet:DZ}),CP={kernelName:di,backendName:"webgl",kernelFunc:$Z};var RZ="return float(a >= 1.0 && b >= 1.0);",FZ=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); -`,pZ=nt({opSnippet:uZ,packedOpSnippet:cZ,dtype:"bool"}),NO={kernelName:di,backendName:"webgl",kernelFunc:pZ};var mZ="return float(!(x >= 1.0));",fZ=_e({opSnippet:mZ}),SO={kernelName:Ya,backendName:"webgl",kernelFunc:fZ};var dZ="return float(a >= 1.0 || b >= 1.0);",hZ=` +`,OZ=nt({opSnippet:RZ,packedOpSnippet:FZ,dtype:"bool"}),IP={kernelName:hi,backendName:"webgl",kernelFunc:OZ};var PZ="return float(!(x >= 1.0));",MZ=_e({opSnippet:PZ}),NP={kernelName:Ya,backendName:"webgl",kernelFunc:MZ};var LZ="return float(a >= 1.0 || b >= 1.0);",zZ=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); -`,gZ=nt({opSnippet:dZ,packedOpSnippet:hZ,dtype:"bool"}),TO={kernelName:Za,backendName:"webgl",kernelFunc:gZ};var yC=class{constructor(e,t,o,n,s){this.variableNames=["x"],this.outputShape=[];let a=t,i=e[3]-1;this.outputShape=e;let l,u=`float(${o}) + float(${n}) * sum`;s===.5?l=`inversesqrt(${u})`:s===1?l=`1.0/(${u})`:l=`exp(log(${u}) * float(-${s}));`,this.userCode=` +`,BZ=nt({opSnippet:LZ,packedOpSnippet:zZ,dtype:"bool"}),SP={kernelName:Za,backendName:"webgl",kernelFunc:BZ};var MC=class{constructor(e,t,o,n,s){this.variableNames=["x"],this.outputShape=[];let a=t,i=e[3]-1;this.outputShape=e;let l,u=`float(${o}) + float(${n}) * sum`;s===.5?l=`inversesqrt(${u})`:s===1?l=`1.0/(${u})`:l=`exp(log(${u}) * float(-${s}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3023,7 +3023,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam float val = x * ${l}; setOutput(val); } - `}};var bC=class{constructor(e,t,o,n,s){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let a=t,i=e[3]-1;this.outputShape=e;let l,u=`float(${o}) + float(${n}) * sum`;s===.5?l=`inversesqrt(${u})`:s===1?l=`1.0/(${u})`:l=`exp(log(${u}) * float(-${s}));`,this.userCode=` + `}};var LC=class{constructor(e,t,o,n,s){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let a=t,i=e[3]-1;this.outputShape=e;let l,u=`float(${o}) + float(${n}) * sum`;s===.5?l=`inversesqrt(${u})`:s===1?l=`1.0/(${u})`:l=`exp(log(${u}) * float(-${s}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords.x; @@ -3085,7 +3085,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam vec4 result = xAtOutputCoords * ${l}; setOutput(result); } - `}};var xZ=r=>{let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{depthRadius:s,bias:a,alpha:i,beta:l}=o,u=W().getBool("WEBGL_PACK_NORMALIZATION")?new bC(n.shape,s,a,i,l):new yC(n.shape,s,a,i,l);return t.runWebGLProgram(u,[n],n.dtype)},AO={kernelName:aa,backendName:"webgl",kernelFunc:xZ};var wC=class{constructor(e,t,o,n,s){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=o,this.alpha=n,this.beta=s,this.userCode=` + `}};var VZ=r=>{let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{depthRadius:s,bias:a,alpha:i,beta:l}=o,u=j().getBool("WEBGL_PACK_NORMALIZATION")?new LC(n.shape,s,a,i,l):new MC(n.shape,s,a,i,l);return t.runWebGLProgram(u,[n],n.dtype)},TP={kernelName:aa,backendName:"webgl",kernelFunc:VZ};var zC=class{constructor(e,t,o,n,s){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=o,this.alpha=n,this.beta=s,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3140,14 +3140,14 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam } setOutput(result); } - `}};var yZ=r=>{let{inputs:e,backend:t,attrs:o}=r,{x:n,y:s,dy:a}=e,{depthRadius:i,bias:l,alpha:u,beta:c}=o,p=new wC(n.shape,i,l,u,c);return t.runWebGLProgram(p,[n,s,a],n.dtype)},EO={kernelName:tu,backendName:"webgl",kernelFunc:yZ};function DO(r,e,t,o){let n=x.sizeFromShape(e),a=x.sizeFromShape(r.shape)/n,i=pe({inputs:{x:r},attrs:{shape:[a,n]},backend:o}),l=To(i,r.dtype,"max",o),u=pe({inputs:{x:l},attrs:{shape:t},backend:o});return o.disposeIntermediateTensorInfo(i),o.disposeIntermediateTensorInfo(l),u}function _C(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{reductionIndices:s,keepDims:a}=o,i=n.shape.length,l=x.parseAxisParam(s,n.shape),u=l,c=N.getAxesPermutation(u,i),p=c!=null,m=t.shouldExecuteOnCPU([n]),f=n;if(p){if(m){let w=t.texData.get(f.dataId).values,_=new Array(i);for(let T=0;T<_.length;T++)_[T]=n.shape[c[T]];let C=Up(w,n.shape,n.dtype,c,_);f=t.makeTensorInfo(_,n.dtype);let D=t.texData.get(f.dataId);D.values=C}else f=Al(n,c,t);u=N.getInnerMostAxes(u.length,i)}N.assertAxesAreInnerMostDims("max",u,i);let[d,h]=N.computeOutAndReduceShapes(f.shape,u),g=d;a&&(g=N.expandShapeToKeepDim(d,l));let y;if(m){let w=t.texData.get(f.dataId).values,_=nR(w,x.sizeFromShape(h),g,n.dtype);y=t.makeTensorInfo(g,n.dtype);let C=t.texData.get(y.dataId);C.values=_}else y=DO(f,h,g,t);return p&&t.disposeIntermediateTensorInfo(f),y}var $O={kernelName:pn,backendName:"webgl",kernelFunc:_C};var bZ=Dx+` + `}};var GZ=r=>{let{inputs:e,backend:t,attrs:o}=r,{x:n,y:s,dy:a}=e,{depthRadius:i,bias:l,alpha:u,beta:c}=o,p=new zC(n.shape,i,l,u,c);return t.runWebGLProgram(p,[n,s,a],n.dtype)},AP={kernelName:tu,backendName:"webgl",kernelFunc:GZ};function EP(r,e,t,o){let n=y.sizeFromShape(e),a=y.sizeFromShape(r.shape)/n,i=pe({inputs:{x:r},attrs:{shape:[a,n]},backend:o}),l=To(i,r.dtype,"max",o),u=pe({inputs:{x:l},attrs:{shape:t},backend:o});return o.disposeIntermediateTensorInfo(i),o.disposeIntermediateTensorInfo(l),u}function BC(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{reductionIndices:s,keepDims:a}=o,i=n.shape.length,l=y.parseAxisParam(s,n.shape),u=l,c=S.getAxesPermutation(u,i),p=c!=null,m=t.shouldExecuteOnCPU([n]),f=n;if(p){if(m){let b=t.texData.get(f.dataId).values,_=new Array(i);for(let N=0;N<_.length;N++)_[N]=n.shape[c[N]];let k=qp(b,n.shape,n.dtype,c,_);f=t.makeTensorInfo(_,n.dtype);let A=t.texData.get(f.dataId);A.values=k}else f=Al(n,c,t);u=S.getInnerMostAxes(u.length,i)}S.assertAxesAreInnerMostDims("max",u,i);let[d,h]=S.computeOutAndReduceShapes(f.shape,u),g=d;a&&(g=S.expandShapeToKeepDim(d,l));let x;if(m){let b=t.texData.get(f.dataId).values,_=oF(b,y.sizeFromShape(h),g,n.dtype);x=t.makeTensorInfo(g,n.dtype);let k=t.texData.get(x.dataId);k.values=_}else x=EP(f,h,g,t);return p&&t.disposeIntermediateTensorInfo(f),x}var DP={kernelName:pn,backendName:"webgl",kernelFunc:BC};var WZ=Mx+` return max(a, b); -`,wZ=` +`,UZ=` vec4 result = vec4(max(a, b)); vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); `+Sl+` return result; -`,_Z=nt({opSnippet:bZ,packedOpSnippet:wZ,cpuKernelImpl:sR}),RO={kernelName:mn,backendName:"webgl",kernelFunc:_Z};function kZ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e;qi(n,"maxPool");let{filterSize:s,strides:a,pad:i,dimRoundingMode:l}=o,u=1;x.assert(N.eitherStridesOrDilationsAreOne(a,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);let c=N.computePool2DInfo(n.shape,s,a,u,i,l);if(c.filterWidth===1&&c.filterHeight===1&&x.arraysEqual(c.inShape,c.outShape))return jt({inputs:{x:n},backend:t});let p=new Ki(c,"max",!1);return t.runWebGLProgram(p,[n],n.dtype)}var FO={kernelName:fn,backendName:"webgl",kernelFunc:kZ};function vZ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{filterSize:s,strides:a,pad:i,dataFormat:l,dimRoundingMode:u}=o,c=[1,1,1],p=N.computePool3DInfo(n.shape,s,a,c,i,u,l),m=new ac(p,"max",!1);return t.runWebGLProgram(m,[n],n.dtype)}var OO={kernelName:la,backendName:"webgl",kernelFunc:vZ};var kC=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,o=e.strideWidth,n=e.dilationHeight,s=e.effectiveFilterHeight,a=e.effectiveFilterWidth,i=s-1-e.padInfo.top,l=a-1-e.padInfo.left,u=s*a-1;this.userCode=` +`,jZ=nt({opSnippet:WZ,packedOpSnippet:UZ,cpuKernelImpl:nF}),$P={kernelName:mn,backendName:"webgl",kernelFunc:jZ};function HZ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e;qi(n,"maxPool");let{filterSize:s,strides:a,pad:i,dimRoundingMode:l}=o,u=1;y.assert(S.eitherStridesOrDilationsAreOne(a,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);let c=S.computePool2DInfo(n.shape,s,a,u,i,l);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return Ht({inputs:{x:n},backend:t});let p=new Ki(c,"max",!1);return t.runWebGLProgram(p,[n],n.dtype)}var RP={kernelName:fn,backendName:"webgl",kernelFunc:HZ};function qZ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{filterSize:s,strides:a,pad:i,dataFormat:l,dimRoundingMode:u}=o,c=[1,1,1],p=S.computePool3DInfo(n.shape,s,a,c,i,u,l),m=new pc(p,"max",!1);return t.runWebGLProgram(m,[n],n.dtype)}var FP={kernelName:la,backendName:"webgl",kernelFunc:qZ};var VC=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,o=e.strideWidth,n=e.dilationHeight,s=e.effectiveFilterHeight,a=e.effectiveFilterWidth,i=s-1-e.padInfo.top,l=a-1-e.padInfo.left,u=s*a-1;this.userCode=` const ivec2 pads = ivec2(${i}, ${l}); void main() { @@ -3193,7 +3193,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam } setOutput(dotProd); } - `}},vC=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,o=e.strideHeight,n=e.strideWidth,s=e.dilationDepth,a=e.dilationHeight,i=e.dilationWidth,l=e.effectiveFilterDepth,u=e.effectiveFilterHeight,c=e.effectiveFilterWidth,p=l-1-e.padInfo.front,m=u-1-e.padInfo.top,f=c-1-e.padInfo.left,d=l*u*c-1;this.userCode=` + `}},GC=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,o=e.strideHeight,n=e.strideWidth,s=e.dilationDepth,a=e.dilationHeight,i=e.dilationWidth,l=e.effectiveFilterDepth,u=e.effectiveFilterHeight,c=e.effectiveFilterWidth,p=l-1-e.padInfo.front,m=u-1-e.padInfo.top,f=c-1-e.padInfo.left,d=l*u*c-1;this.userCode=` const ivec3 pads = ivec3(${p}, ${m}, ${f}); void main() { @@ -3257,14 +3257,14 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam } setOutput(dotProd); } - `}};function CZ(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,a=s,{filterSize:i,strides:l,pad:u,dimRoundingMode:c}=o,p=[1,1,1],m=N.computePool3DInfo(a.shape,i,l,p,u,c),f=new ac(m,"max",!0),d=t.runWebGLProgram(f,[a],a.dtype),h=new vC(m),g=t.runWebGLProgram(h,[n,d],a.dtype);return t.disposeIntermediateTensorInfo(d),g}var PO={kernelName:ou,backendName:"webgl",kernelFunc:CZ};function IZ(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s,output:a}=e,i=s;qi([s,a],"maxPoolGrad");let{filterSize:l,strides:u,pad:c,dimRoundingMode:p}=o,m=N.computePool2DInfo(i.shape,l,u,1,c,p),f=!0,d=new Ki(m,"max",f),h=t.runWebGLProgram(d,[i],i.dtype),g=new kC(m),y=t.runWebGLProgram(g,[n,h],i.dtype);return t.disposeIntermediateTensorInfo(h),y}var MO={kernelName:ru,backendName:"webgl",kernelFunc:IZ};function LO(r,e,t,o){let n=new Ki(t,"max",!1),s=o.runWebGLProgram(n,[r],"float32");n=new Ki(t,"max",!0,!0,e);let a=o.runWebGLProgram(n,[r],"float32");return[s,a]}var zO={kernelName:nu,backendName:"webgl",kernelFunc:({inputs:r,attrs:e,backend:t})=>{let{x:o}=r,{filterSize:n,strides:s,pad:a,includeBatchInIndex:i}=e,l=t;x.assert(o.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.shape.length}.`);let u=[1,1];x.assert(N.eitherStridesOrDilationsAreOne(s,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`);let c=N.computePool2DInfo(o.shape,n,s,u,a),[p,m]=LO(o,i,c,l);return[p,m]}};function BO(r,e,t,o){let n=x.sizeFromShape(e),a=x.sizeFromShape(r.shape)/n,i=pe({inputs:{x:r},attrs:{shape:[a,n]},backend:o}),l=To(i,"float32","mean",o),u=pe({inputs:{x:l},attrs:{shape:t},backend:o});return o.disposeIntermediateTensorInfo(i),o.disposeIntermediateTensorInfo(l),u}var VO={kernelName:dn,backendName:"webgl",kernelFunc:({inputs:r,attrs:e,backend:t})=>{let{x:o}=r,{keepDims:n,axis:s}=e,a=t,i=o.shape.length,l=x.parseAxisParam(s,o.shape),u=l,c=N.getAxesPermutation(u,i),p=c!=null,m=a.shouldExecuteOnCPU([o]),f=[],d=o;if(p){if(m){let _=a.texData.get(d.dataId).values,C=new Array(i);for(let R=0;R{let{x:o}=r,{filterSize:n,strides:s,pad:a,includeBatchInIndex:i}=e,l=t;y.assert(o.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.shape.length}.`);let u=[1,1];y.assert(S.eitherStridesOrDilationsAreOne(s,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`);let c=S.computePool2DInfo(o.shape,n,s,u,a),[p,m]=MP(o,i,c,l);return[p,m]}};function zP(r,e,t,o){let n=y.sizeFromShape(e),a=y.sizeFromShape(r.shape)/n,i=pe({inputs:{x:r},attrs:{shape:[a,n]},backend:o}),l=To(i,"float32","mean",o),u=pe({inputs:{x:l},attrs:{shape:t},backend:o});return o.disposeIntermediateTensorInfo(i),o.disposeIntermediateTensorInfo(l),u}var BP={kernelName:dn,backendName:"webgl",kernelFunc:({inputs:r,attrs:e,backend:t})=>{let{x:o}=r,{keepDims:n,axis:s}=e,a=t,i=o.shape.length,l=y.parseAxisParam(s,o.shape),u=l,c=S.getAxesPermutation(u,i),p=c!=null,m=a.shouldExecuteOnCPU([o]),f=[],d=o;if(p){if(m){let _=a.texData.get(d.dataId).values,k=new Array(i);for(let $=0;$c[0]+e[p]+c[1]);let n=e.length,s=Le(n),a=t.map(c=>c[0]).join(","),i=t.map((c,p)=>c[0]+e[p]).join(","),l=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,n),u=o==="reflect"?0:1;if(n===1){this.userCode=` +`,QZ=nt({opSnippet:ZZ,packedOpSnippet:JZ,cpuKernelImpl:sF}),GP={kernelName:gn,backendName:"webgl",kernelFunc:QZ};var WC=class{constructor(e,t,o){this.variableNames=["x"],this.outputShape=t.map((c,p)=>c[0]+e[p]+c[1]);let n=e.length,s=Le(n),a=t.map(c=>c[0]).join(","),i=t.map((c,p)=>c[0]+e[p]).join(","),l=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,n),u=o==="reflect"?0:1;if(n===1){this.userCode=` int start = ${a}; int end = ${i}; @@ -3293,7 +3293,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam ${s} coords = outC - start; setOutput(getX(${l})); } - `}};var IC=class{constructor(e,t,o){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((d,h)=>d[0]+e[h]+d[1]);let n=e.length,s=Le(n),a=t.map(d=>d[0]).join(","),i=t.map((d,h)=>d[0]+e[h]).join(","),l=Ut("rc",n),u=Ut("source",n),c=`${l[n-1]} < ${this.outputShape[n-1]}`,p=n===1?"source":`vec2(${u.slice(-2).join()})`,m=o==="reflect"?0:1,f="";if(n===1){let d=` + `}};var UC=class{constructor(e,t,o){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((d,h)=>d[0]+e[h]+d[1]);let n=e.length,s=Le(n),a=t.map(d=>d[0]).join(","),i=t.map((d,h)=>d[0]+e[h]).join(","),l=jt("rc",n),u=jt("source",n),c=`${l[n-1]} < ${this.outputShape[n-1]}`,p=n===1?"source":`vec2(${u.slice(-2).join()})`,m=o==="reflect"?0:1,f="";if(n===1){let d=` ${s} source = rc; if (source < start) { source = start * 2 - source - ${m}; @@ -3349,13 +3349,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam ${f} setOutput(result); } - `}};var EZ=({inputs:r,backend:e,attrs:t})=>{let{x:o}=r,{paddings:n,mode:s}=t,a=W().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new IC(o.shape,n,s):new CC(o.shape,n,s);return e.runWebGLProgram(a,[o],o.dtype)},UO={kernelName:ua,backendName:"webgl",kernelFunc:EZ};var DZ=`if (b == 0.0) return NAN; - return mod(a, b);`,$Z=` + `}};var eJ=({inputs:r,backend:e,attrs:t})=>{let{x:o}=r,{paddings:n,mode:s}=t,a=j().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new UC(o.shape,n,s):new WC(o.shape,n,s);return e.runWebGLProgram(a,[o],o.dtype)},WP={kernelName:ua,backendName:"webgl",kernelFunc:eJ};var tJ=`if (b == 0.0) return NAN; + return mod(a, b);`,rJ=` vec4 result = mod(a, b); vec4 isNaN = vec4(equal(b, vec4(0.0))); `+Sl+` return result; -`,RZ=nt({opSnippet:DZ,packedOpSnippet:$Z}),jO={kernelName:hi,backendName:"webgl",kernelFunc:RZ};var NC=class{constructor(e,t,o){this.variableNames=["probs"],this.outputShape=[e,o],this.userCode=` +`,oJ=nt({opSnippet:tJ,packedOpSnippet:rJ}),UP={kernelName:gi,backendName:"webgl",kernelFunc:oJ};var jC=class{constructor(e,t,o){this.variableNames=["probs"],this.outputShape=[e,o],this.userCode=` uniform float seed; void main() { @@ -3377,11 +3377,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,FY=_e({opSnippet:RY}),lF={kernelNam // If no other event happened, last event happened. setOutput(float(${t-1})); } - `}getCustomSetupFunc(e){return(t,o)=>{this.seedLoc==null&&(this.seedLoc=t.getUniformLocation(o,"seed")),t.gl.uniform1f(this.seedLoc,e)}}};var FZ=` + `}getCustomSetupFunc(e){return(t,o)=>{this.seedLoc==null&&(this.seedLoc=t.getUniformLocation(o,"seed")),t.gl.uniform1f(this.seedLoc,e)}}};var nJ=` if (a == b) { return 1.0; }; -return a / b;`,OZ=` +return a / b;`,sJ=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; @@ -3399,21 +3399,22 @@ return a / b;`,OZ=` } return result; -`,SC=nt({opSnippet:FZ,packedOpSnippet:OZ,checkOutOfBounds:!0}),HO={kernelName:rn,backendName:"webgl",kernelFunc:SC};var qO="return a - b;",TC=nt({opSnippet:qO,packedOpSnippet:qO,supportsComplex:!0,cpuKernelImpl:dR}),KO={kernelName:Fn,backendName:"webgl",kernelFunc:TC};function AC(r){let{inputs:e,backend:t,attrs:o}=r,{logits:n}=e,{dim:s}=o,a=x.parseAxisParam([s],n.shape),i=_C({inputs:{x:n},backend:t,attrs:{reductionIndices:a,keepDims:!1}}),l=N.expandShapeToKeepDim(i.shape,a),u=pe({inputs:{x:i},backend:t,attrs:{shape:l}}),c=TC({inputs:{a:n,b:u},backend:t}),p=pC({inputs:{x:c},backend:t}),m=th({inputs:{x:p},backend:t,attrs:{axis:a,keepDims:!1}}),f=pe({inputs:{x:m},backend:t,attrs:{shape:l}}),d=SC({inputs:{a:p,b:f},backend:t});return t.disposeIntermediateTensorInfo(i),t.disposeIntermediateTensorInfo(u),t.disposeIntermediateTensorInfo(c),t.disposeIntermediateTensorInfo(p),t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(f),d}var XO={kernelName:$n,backendName:"webgl",kernelFunc:AC};function PZ(r){let{inputs:e,backend:t,attrs:o}=r,{logits:n}=e,{numSamples:s,seed:a,normalized:i}=o,l=i?n:AC({inputs:{logits:n},backend:t,attrs:{dim:n.shape.length-1}}),u=l.shape[0],c=l.shape[1],p=new NC(u,c,s),m=p.getCustomSetupFunc(a),f=t.runWebGLProgram(p,[l],"int32",m);return i||t.disposeIntermediateTensorInfo(l),f}var YO={kernelName:su,backendName:"webgl",kernelFunc:PZ};var ZO="return -x;";function MZ(r){let{inputs:e,backend:t}=r,{x:o}=e;if(t.shouldExecuteOnCPU([o])){let s=t.texData.get(o.dataId),[a,i]=lR(s.values,o.shape,o.dtype);return t.makeTensorInfo(i,o.dtype,a)}let n;return W().getBool("WEBGL_PACK_UNARY_OPERATIONS")?n=new Bs(o.shape,ZO):n=new ho(o.shape,ZO),t.runWebGLProgram(n,[o],o.dtype)}var JO={kernelName:ps,backendName:"webgl",kernelFunc:MZ};var LZ=Tr.nonMaxSuppressionV3Impl;function zZ(r){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:e,backend:t,attrs:o}=r,{boxes:n,scores:s}=e,{maxOutputSize:a,iouThreshold:i,scoreThreshold:l}=o,u=t.readSync(n.dataId),c=t.readSync(s.dataId),{selectedIndices:p}=LZ(u,c,a,i,l);return t.makeTensorInfo([p.length],"int32",new Int32Array(p))}var QO={kernelName:xi,backendName:"webgl",kernelFunc:zZ};var BZ=Tr.nonMaxSuppressionV4Impl;function VZ(r){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:e,backend:t,attrs:o}=r,{boxes:n,scores:s}=e,{maxOutputSize:a,iouThreshold:i,scoreThreshold:l,padToMaxOutputSize:u}=o,c=t.readSync(n.dataId),p=t.readSync(s.dataId),{selectedIndices:m,validOutputs:f}=BZ(c,p,a,i,l,u);return[t.makeTensorInfo([m.length],"int32",new Int32Array(m)),t.makeTensorInfo([],"int32",new Int32Array([f]))]}var eP={kernelName:yi,backendName:"webgl",kernelFunc:VZ};var GZ=Tr.nonMaxSuppressionV5Impl;function WZ(r){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:e,backend:t,attrs:o}=r,{boxes:n,scores:s}=e,{maxOutputSize:a,iouThreshold:i,scoreThreshold:l,softNmsSigma:u}=o,c=t.readSync(n.dataId),p=t.readSync(s.dataId),m=a,f=i,d=l,h=u,{selectedIndices:g,selectedScores:y}=GZ(c,p,m,f,d,h);return[t.makeTensorInfo([g.length],"int32",new Int32Array(g)),t.makeTensorInfo([y.length],"float32",new Float32Array(y))]}var tP={kernelName:bi,backendName:"webgl",kernelFunc:WZ};var EC=class{constructor(e,t,o,n){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` +`,HC=nt({opSnippet:nJ,packedOpSnippet:sJ,checkOutOfBounds:!0}),jP={kernelName:rn,backendName:"webgl",kernelFunc:HC};var HP="return a - b;",qC=nt({opSnippet:HP,packedOpSnippet:HP,supportsComplex:!0,cpuKernelImpl:fF}),qP={kernelName:Fn,backendName:"webgl",kernelFunc:qC};function KC(r){let{inputs:e,backend:t,attrs:o}=r,{logits:n}=e,{dim:s}=o,a=y.parseAxisParam([s],n.shape),i=BC({inputs:{x:n},backend:t,attrs:{reductionIndices:a,keepDims:!1}}),l=S.expandShapeToKeepDim(i.shape,a),u=pe({inputs:{x:i},backend:t,attrs:{shape:l}}),c=qC({inputs:{a:n,b:u},backend:t}),p=EC({inputs:{x:c},backend:t}),m=nh({inputs:{x:p},backend:t,attrs:{axis:a,keepDims:!1}}),f=pe({inputs:{x:m},backend:t,attrs:{shape:l}}),d=HC({inputs:{a:p,b:f},backend:t});return t.disposeIntermediateTensorInfo(i),t.disposeIntermediateTensorInfo(u),t.disposeIntermediateTensorInfo(c),t.disposeIntermediateTensorInfo(p),t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(f),d}var KP={kernelName:$n,backendName:"webgl",kernelFunc:KC};function iJ(r){let{inputs:e,backend:t,attrs:o}=r,{logits:n}=e,{numSamples:s,seed:a,normalized:i}=o,l=i?n:KC({inputs:{logits:n},backend:t,attrs:{dim:n.shape.length-1}}),u=l.shape[0],c=l.shape[1],p=new jC(u,c,s),m=p.getCustomSetupFunc(a),f=t.runWebGLProgram(p,[l],"int32",m);return i||t.disposeIntermediateTensorInfo(l),f}var XP={kernelName:su,backendName:"webgl",kernelFunc:iJ};var YP="return -x;";function aJ(r){let{inputs:e,backend:t}=r,{x:o}=e;if(t.shouldExecuteOnCPU([o])){let s=t.texData.get(o.dataId),[a,i]=aF(s.values,o.shape,o.dtype);return t.makeTensorInfo(i,o.dtype,a)}let n;return j().getBool("WEBGL_PACK_UNARY_OPERATIONS")?n=new Vs(o.shape,YP):n=new ho(o.shape,YP),t.runWebGLProgram(n,[o],o.dtype)}var ZP={kernelName:ps,backendName:"webgl",kernelFunc:aJ};var lJ=Ar.nonMaxSuppressionV3Impl;function uJ(r){S.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:e,backend:t,attrs:o}=r,{boxes:n,scores:s}=e,{maxOutputSize:a,iouThreshold:i,scoreThreshold:l}=o,u=t.readSync(n.dataId),c=t.readSync(s.dataId),{selectedIndices:p}=lJ(u,c,a,i,l);return t.makeTensorInfo([p.length],"int32",new Int32Array(p))}var JP={kernelName:yi,backendName:"webgl",kernelFunc:uJ};var cJ=Ar.nonMaxSuppressionV4Impl;function pJ(r){S.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:e,backend:t,attrs:o}=r,{boxes:n,scores:s}=e,{maxOutputSize:a,iouThreshold:i,scoreThreshold:l,padToMaxOutputSize:u}=o,c=t.readSync(n.dataId),p=t.readSync(s.dataId),{selectedIndices:m,validOutputs:f}=cJ(c,p,a,i,l,u);return[t.makeTensorInfo([m.length],"int32",new Int32Array(m)),t.makeTensorInfo([],"int32",new Int32Array([f]))]}var QP={kernelName:bi,backendName:"webgl",kernelFunc:pJ};var mJ=Ar.nonMaxSuppressionV5Impl;function fJ(r){S.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:e,backend:t,attrs:o}=r,{boxes:n,scores:s}=e,{maxOutputSize:a,iouThreshold:i,scoreThreshold:l,softNmsSigma:u}=o,c=t.readSync(n.dataId),p=t.readSync(s.dataId),m=a,f=i,d=l,h=u,{selectedIndices:g,selectedScores:x}=mJ(c,p,m,f,d,h);return[t.makeTensorInfo([g.length],"int32",new Int32Array(g)),t.makeTensorInfo([x.length],"float32",new Float32Array(x))]}var eM={kernelName:wi,backendName:"webgl",kernelFunc:fJ};var XC=class{constructor(e,t,o,n){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int index = round(getIndices(coords.x)); setOutput(mix(float(${n}), float(${o}), float(index == coords.y))); } - `}};var UZ=r=>{let{inputs:e,backend:t,attrs:o}=r,{indices:n}=e,{depth:s,onValue:a,offValue:i}=o,l=x.sizeFromShape(n.shape),u=new EC(l,s,a,i),c=pe({inputs:{x:n},backend:t,attrs:{shape:[l]}}),p=t.runWebGLProgram(u,[c],n.dtype);t.disposeIntermediateTensorInfo(c);let m=[...n.shape,s],f=pe({inputs:{x:p},backend:t,attrs:{shape:m}});return t.disposeIntermediateTensorInfo(p),f},rP={kernelName:yn,backendName:"webgl",kernelFunc:UZ};function ih(r){let{inputs:e,backend:t}=r,{x:o}=e;if(o.dtype==="complex64"){let n=Ga({inputs:{input:o},backend:t}),s=ih({inputs:{x:n},backend:t}),a=lc({inputs:{input:o},backend:t}),i=ih({inputs:{x:a},backend:t}),l=go({inputs:{real:s,imag:i},backend:t});return t.disposeIntermediateTensorInfo(n),t.disposeIntermediateTensorInfo(s),t.disposeIntermediateTensorInfo(a),t.disposeIntermediateTensorInfo(i),l}else return sh({attrs:{shape:o.shape,dtype:o.dtype,value:o.dtype==="string"?"":0},backend:t})}var oP={kernelName:bs,backendName:"webgl",kernelFunc:ih};function nP(r){let{inputs:e,backend:t}=r,{x:o}=e;if(o.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(o.dtype==="complex64"){let n=Ga({inputs:{input:o},backend:t}),s=nP({inputs:{x:n},backend:t}),a=lc({inputs:{input:o},backend:t}),i=ih({inputs:{x:a},backend:t}),l=go({inputs:{real:s,imag:i},backend:t});return t.disposeIntermediateTensorInfo(n),t.disposeIntermediateTensorInfo(s),t.disposeIntermediateTensorInfo(a),t.disposeIntermediateTensorInfo(i),l}else return sh({attrs:{shape:o.shape,dtype:o.dtype,value:1},backend:t})}var sP={kernelName:ms,backendName:"webgl",kernelFunc:nP};function jZ(r){let{inputs:e,backend:t,attrs:o}=r,{axis:n}=o;if(e.length===1)return Vx({inputs:{input:e[0]},backend:t,attrs:{dim:n}});let s=e[0].shape,a=e[0].dtype;e.forEach(c=>{x.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),x.assert(a===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let i=[],l=e.map(c=>{let p=Vx({inputs:{input:c},backend:t,attrs:{dim:n}});return i.push(p),p}),u=Jv({inputs:l,backend:t,attrs:{axis:n}});return i.forEach(c=>t.disposeIntermediateTensorInfo(c)),u}var iP={kernelName:fs,backendName:"webgl",kernelFunc:jZ};var DC=class{constructor(e,t,o){this.variableNames=["x"],this.outputShape=t.map((u,c)=>u[0]+e[c]+u[1]);let n=e.length,s=Le(n),a=t.map(u=>u[0]).join(","),i=t.map((u,c)=>u[0]+e[c]).join(","),l=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,n);if(n===1){this.userCode=` + `}};var dJ=r=>{let{inputs:e,backend:t,attrs:o}=r,{indices:n}=e,{depth:s,onValue:a,offValue:i}=o,l=y.sizeFromShape(n.shape),u=new XC(l,s,a,i),c=pe({inputs:{x:n},backend:t,attrs:{shape:[l]}}),p=t.runWebGLProgram(u,[c],n.dtype);t.disposeIntermediateTensorInfo(c);let m=[...n.shape,s],f=pe({inputs:{x:p},backend:t,attrs:{shape:m}});return t.disposeIntermediateTensorInfo(p),f},tM={kernelName:yn,backendName:"webgl",kernelFunc:dJ};function uh(r){let{inputs:e,backend:t}=r,{x:o}=e;if(o.dtype==="complex64"){let n=Ga({inputs:{input:o},backend:t}),s=uh({inputs:{x:n},backend:t}),a=mc({inputs:{input:o},backend:t}),i=uh({inputs:{x:a},backend:t}),l=go({inputs:{real:s,imag:i},backend:t});return t.disposeIntermediateTensorInfo(n),t.disposeIntermediateTensorInfo(s),t.disposeIntermediateTensorInfo(a),t.disposeIntermediateTensorInfo(i),l}else return lh({attrs:{shape:o.shape,dtype:o.dtype,value:o.dtype==="string"?"":0},backend:t})}var rM={kernelName:bs,backendName:"webgl",kernelFunc:uh};function oM(r){let{inputs:e,backend:t}=r,{x:o}=e;if(o.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(o.dtype==="complex64"){let n=Ga({inputs:{input:o},backend:t}),s=oM({inputs:{x:n},backend:t}),a=mc({inputs:{input:o},backend:t}),i=uh({inputs:{x:a},backend:t}),l=go({inputs:{real:s,imag:i},backend:t});return t.disposeIntermediateTensorInfo(n),t.disposeIntermediateTensorInfo(s),t.disposeIntermediateTensorInfo(a),t.disposeIntermediateTensorInfo(i),l}else return lh({attrs:{shape:o.shape,dtype:o.dtype,value:1},backend:t})}var nM={kernelName:ms,backendName:"webgl",kernelFunc:oM};function hJ(r){let{inputs:e,backend:t,attrs:o}=r,{axis:n}=o;if(e.length===1)return qx({inputs:{input:e[0]},backend:t,attrs:{dim:n}});let s=e[0].shape,a=e[0].dtype;e.forEach(c=>{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(a===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let i=[],l=e.map(c=>{let p=qx({inputs:{input:c},backend:t,attrs:{dim:n}});return i.push(p),p}),u=xC({inputs:l,backend:t,attrs:{axis:n}});return i.forEach(c=>t.disposeIntermediateTensorInfo(c)),u}var sM={kernelName:fs,backendName:"webgl",kernelFunc:hJ};var YC=class{constructor(e,t,o){this.variableNames=["x"],this.outputShape=t.map((u,c)=>u[0]+e[c]+u[1]);let n=e.length,s=Le(n),a=t.map(u=>u[0]).join(","),i=t.map((u,c)=>u[0]+e[c]).join(","),l=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,n);if(n===1){this.userCode=` int start = ${a}; int end = ${i}; + uniform float value; void main() { int outC = getOutputCoords(); if (outC < start || outC >= end) { - setOutput(float(${o})); + setOutput(value); } else { setOutput(getX(outC - start)); } @@ -3421,17 +3422,18 @@ return a / b;`,OZ=` `;return}this.userCode=` ${s} start = ${s}(${a}); ${s} end = ${s}(${i}); + uniform float value; void main() { ${s} outC = getOutputCoords(); if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) { - setOutput(float(${o})); + setOutput(value); } else { ${s} coords = outC - start; setOutput(getX(${l})); } } - `}};var $C=class{constructor(e,t,o){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((h,g)=>h[0]+e[g]+h[1]);let n=e.length,s=Le(n),a=t.map(h=>h[0]).join(","),i=t.map((h,g)=>h[0]+e[g]).join(","),l=Ut("rc",n),u=Ut("source",n),c=`${l[n-1]} < ${this.outputShape[n-1]}`,p=n===1?"source":`vec2(${u.slice(-2).join()})`,m=[`${s} rc = outputLoc;`,`${l[n-1]} += 1; + `}getCustomSetupFunc(e){return(t,o)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(o,"value")),t.gl.uniform1f(this.valueLoc,e)}}};var ZC=class{constructor(e,t,o){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((h,g)=>h[0]+e[g]+h[1]);let n=e.length,s=Le(n),a=t.map(h=>h[0]).join(","),i=t.map((h,g)=>h[0]+e[g]).join(","),l=jt("rc",n),u=jt("source",n),c=`${l[n-1]} < ${this.outputShape[n-1]}`,p=n===1?"source":`vec2(${u.slice(-2).join()})`,m=[`${s} rc = outputLoc;`,`${l[n-1]} += 1; if(${c}) { `,n===1?"":`} rc = outputLoc; @@ -3440,7 +3442,7 @@ return a / b;`,OZ=` if(${c}) {`],f=n===1?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))",d="";for(let h=0,g=n===1?2:4;h{let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{paddings:s,constantValue:a}=o,i=W().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new $C(n.shape,s,a):new DC(n.shape,s,a);return t.runWebGLProgram(i,[n],n.dtype)},aP={kernelName:bn,backendName:"webgl",kernelFunc:RC};var HZ=` + `}getCustomSetupFunc(e){return(t,o)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(o,"value")),t.gl.uniform1f(this.valueLoc,e)}}};var JC=r=>{let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{paddings:s,constantValue:a}=o,i=j().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new ZC(n.shape,s,a):new YC(n.shape,s,a),l=i.getCustomSetupFunc(a);return t.runWebGLProgram(i,[n],n.dtype,l)},iM={kernelName:bn,backendName:"webgl",kernelFunc:JC};var gJ=` if(a < 0.0 && floor(b) < b){ return NAN; } @@ -3464,7 +3467,7 @@ return a / b;`,OZ=` } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); -`,qZ=` +`,xJ=` // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise. vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1))); vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1); @@ -3480,9 +3483,9 @@ return a / b;`,OZ=` vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b)); `+Sl+` return result; -`,KZ=nt({opSnippet:HZ,packedOpSnippet:qZ}),lP={kernelName:wn,backendName:"webgl",kernelFunc:KZ};function XZ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o,i=n.shape.length,l=[],u=x.parseAxisParam(s,n.shape),c=u,p=N.getAxesPermutation(c,i),m=n;p!=null&&(m=Mt({inputs:{x:n},backend:t,attrs:{perm:p}}),c=N.getInnerMostAxes(c.length,i),l.push(m)),N.assertAxesAreInnerMostDims("prod",c,i);let f;if(t.shouldExecuteOnCPU([m])){let d=t.texData.get(m.dataId).values,{outVals:h,outShape:g,outDtype:y}=uR(m.shape,m.dtype,d,c);f=t.makeTensorInfo(g,y,h)}else{let[d,h]=N.computeOutAndReduceShapes(m.shape,c),g=x.sizeFromShape(h),y=pe({inputs:{x:m},backend:t,attrs:{shape:[-1,g]}}),b=mu(n.dtype),w=To(y,b,"prod",t);f=pe({inputs:{x:w},backend:t,attrs:{shape:d}}),l.push(y),l.push(w)}if(a){l.push(f);let d=N.expandShapeToKeepDim(f.shape,u);f=pe({inputs:{x:f},backend:t,attrs:{shape:d}})}return l.forEach(d=>t.disposeIntermediateTensorInfo(d)),f}var uP={kernelName:wi,backendName:"webgl",kernelFunc:XZ};var FC=r=>{let{backend:e,attrs:t}=r,{start:o,stop:n,step:s,dtype:a}=t,i=cR(o,n,s,a);return e.makeTensorInfo([i.length],a,i)},cP={kernelName:ca,backendName:"webgl",kernelFunc:FC};var YZ="return 1.0 / x;",ZZ=_e({opSnippet:YZ}),pP={kernelName:_i,backendName:"webgl",kernelFunc:ZZ};var JZ=xr+` +`,yJ=nt({opSnippet:gJ,packedOpSnippet:xJ}),aM={kernelName:wn,backendName:"webgl",kernelFunc:yJ};function bJ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o,i=n.shape.length,l=[],u=y.parseAxisParam(s,n.shape),c=u,p=S.getAxesPermutation(c,i),m=n;p!=null&&(m=Lt({inputs:{x:n},backend:t,attrs:{perm:p}}),c=S.getInnerMostAxes(c.length,i),l.push(m)),S.assertAxesAreInnerMostDims("prod",c,i);let f;if(t.shouldExecuteOnCPU([m])){let d=t.texData.get(m.dataId).values,{outVals:h,outShape:g,outDtype:x}=lF(m.shape,m.dtype,d,c);f=t.makeTensorInfo(g,x,h)}else{let[d,h]=S.computeOutAndReduceShapes(m.shape,c),g=y.sizeFromShape(h),x=pe({inputs:{x:m},backend:t,attrs:{shape:[-1,g]}}),w=fu(n.dtype),b=To(x,w,"prod",t);f=pe({inputs:{x:b},backend:t,attrs:{shape:d}}),l.push(x),l.push(b)}if(a){l.push(f);let d=S.expandShapeToKeepDim(f.shape,u);f=pe({inputs:{x:f},backend:t,attrs:{shape:d}})}return l.forEach(d=>t.disposeIntermediateTensorInfo(d)),f}var lM={kernelName:_i,backendName:"webgl",kernelFunc:bJ};var QC=r=>{let{backend:e,attrs:t}=r,{start:o,stop:n,step:s,dtype:a}=t,i=uF(o,n,s,a);return e.makeTensorInfo([i.length],a,i)},uM={kernelName:ca,backendName:"webgl",kernelFunc:QC};var wJ="return 1.0 / x;",_J=_e({opSnippet:wJ}),cM={kernelName:ki,backendName:"webgl",kernelFunc:_J};var kJ=yr+` return (x < 0.0) ? 0.0 : x; -`,QZ=` +`,vJ=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -3492,9 +3495,9 @@ return a / b;`,OZ=` result.a = isNaN.a ? x.a : result.a; return result; -`,eJ=_e({opSnippet:JZ,packedOpSnippet:QZ}),mP={kernelName:kn,backendName:"webgl",kernelFunc:eJ};var tJ=xr+` +`,CJ=_e({opSnippet:kJ,packedOpSnippet:vJ}),pM={kernelName:kn,backendName:"webgl",kernelFunc:CJ};var IJ=yr+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,rJ=` +`,NJ=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -3504,7 +3507,7 @@ return a / b;`,OZ=` result.a = isNaN.a ? x.a : result.a; return result; -`,oJ=_e({opSnippet:tJ,packedOpSnippet:rJ}),fP={kernelName:Cn,backendName:"webgl",kernelFunc:oJ};var OC=class{constructor(e,t,o,n,s){this.variableNames=["A"],this.outputShape=[];let[a,i,l,u]=e;this.outputShape=[a,t,o,u];let c=[n&&t>1?i-1:i,n&&o>1?l-1:l],p=[n&&t>1?t-1:t,n&&o>1?o-1:o],m;s?m="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":m="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` +`,SJ=_e({opSnippet:IJ,packedOpSnippet:NJ}),mM={kernelName:Cn,backendName:"webgl",kernelFunc:SJ};var e0=class{constructor(e,t,o,n,s){this.variableNames=["A"],this.outputShape=[];let[a,i,l,u]=e;this.outputShape=[a,t,o,u];let c=[n&&t>1?i-1:i,n&&o>1?l-1:l],p=[n&&t>1?t-1:t,n&&o>1?o-1:o],m;s?m="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":m="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${c[0]/p[0]}, ${c[1]/p[1]}); @@ -3537,7 +3540,7 @@ return a / b;`,OZ=` setOutput(newValue); } - `}};var PC=class{constructor(e,t,o,n,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[a,i,l,u]=e;this.outputShape=[a,t,o,u];let c=[n&&t>1?i-1:i,n&&o>1?l-1:l],p=[n&&t>1?t-1:t,n&&o>1?o-1:o],m;s?m="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":m="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}};var t0=class{constructor(e,t,o,n,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[a,i,l,u]=e;this.outputShape=[a,t,o,u];let c=[n&&t>1?i-1:i,n&&o>1?l-1:l],p=[n&&t>1?t-1:t,n&&o>1?o-1:o],m;s?m="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":m="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${c[0]/p[0]}, ${c[1]/p[1]}, @@ -3614,7 +3617,7 @@ return a / b;`,OZ=` setOutput(newValue); } - `}};function nJ(r){let{inputs:e,backend:t,attrs:o}=r,{images:n}=e,{alignCorners:s,halfPixelCenters:a,size:i}=o,[l,u]=i,c=W().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new PC(n.shape,l,u,s,a):new OC(n.shape,l,u,s,a);return t.runWebGLProgram(c,[n],"float32")}var dP={kernelName:vn,backendName:"webgl",kernelFunc:nJ};var MC=class{constructor(e,t,o){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,n,s]=t,[,a,i]=e,l=[o&&a>1?n-1:n,o&&i>1?s-1:s],u=[o&&a>1?a-1:a,o&&i>1?i-1:i],c=l[0]/u[0],p=l[1]/u[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=` + `}};function TJ(r){let{inputs:e,backend:t,attrs:o}=r,{images:n}=e,{alignCorners:s,halfPixelCenters:a,size:i}=o,[l,u]=i,c=j().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new t0(n.shape,l,u,s,a):new e0(n.shape,l,u,s,a);return t.runWebGLProgram(c,[n],"float32")}var fM={kernelName:vn,backendName:"webgl",kernelFunc:TJ};var r0=class{constructor(e,t,o){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,n,s]=t,[,a,i]=e,l=[o&&a>1?n-1:n,o&&i>1?s-1:s],u=[o&&a>1?a-1:a,o&&i>1?i-1:i],c=l[0]/u[0],p=l[1]/u[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3695,7 +3698,7 @@ return a / b;`,OZ=` setOutput(accumulator); } - `}};function sJ(r){let{inputs:e,backend:t,attrs:o}=r,{images:n,dy:s}=e,{alignCorners:a}=o,i=new MC(s.shape,n.shape,a);return t.runWebGLProgram(i,[s],s.dtype)}var hP={kernelName:lu,backendName:"webgl",kernelFunc:sJ};var LC=class{constructor(e,t,o,n,s){this.variableNames=["A"],this.outputShape=[];let[a,i,l,u]=e;this.outputShape=[a,t,o,u];let c=[n&&t>1?i-1:i,n&&o>1?l-1:l],p=[n&&t>1?t-1:t,n&&o>1?o-1:o],m=n?"0.5":"0.0",f;s?f="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":f="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}};function AJ(r){let{inputs:e,backend:t,attrs:o}=r,{images:n,dy:s}=e,{alignCorners:a}=o,i=new r0(s.shape,n.shape,a);return t.runWebGLProgram(i,[s],s.dtype)}var dM={kernelName:lu,backendName:"webgl",kernelFunc:AJ};var o0=class{constructor(e,t,o,n,s){this.variableNames=["A"],this.outputShape=[];let[a,i,l,u]=e;this.outputShape=[a,t,o,u];let c=[n&&t>1?i-1:i,n&&o>1?l-1:l],p=[n&&t>1?t-1:t,n&&o>1?o-1:o],m=n?"0.5":"0.0",f;s?f="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":f="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${c[0]/p[0]}, ${c[1]/p[1]}); @@ -3717,7 +3720,7 @@ return a / b;`,OZ=` setOutput(newValue); } - `}};function iJ(r){let{inputs:e,backend:t,attrs:o}=r,{images:n}=e,{alignCorners:s,halfPixelCenters:a,size:i}=o,[l,u]=i,c=new LC(n.shape,l,u,s,a);return t.runWebGLProgram(c,[n],n.dtype)}var gP={kernelName:pa,backendName:"webgl",kernelFunc:iJ};var zC=class{constructor(e,t,o){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,n,s]=t,[,a,i]=e,l=[o&&a>1?n-1:n,o&&i>1?s-1:s],u=[o&&a>1?a-1:a,o&&i>1?i-1:i],c=l[0]/u[0],p=l[1]/u[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=` + `}};function EJ(r){let{inputs:e,backend:t,attrs:o}=r,{images:n}=e,{alignCorners:s,halfPixelCenters:a,size:i}=o,[l,u]=i,c=new o0(n.shape,l,u,s,a);return t.runWebGLProgram(c,[n],n.dtype)}var hM={kernelName:pa,backendName:"webgl",kernelFunc:EJ};var n0=class{constructor(e,t,o){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,n,s]=t,[,a,i]=e,l=[o&&a>1?n-1:n,o&&i>1?s-1:s],u=[o&&a>1?a-1:a,o&&i>1?i-1:i],c=l[0]/u[0],p=l[1]/u[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3787,7 +3790,7 @@ return a / b;`,OZ=` setOutput(accumulator); } - `}};function aJ(r){let{inputs:e,backend:t,attrs:o}=r,{images:n,dy:s}=e,{alignCorners:a}=o,i=new zC(s.shape,n.shape,a);return t.runWebGLProgram(i,[s],s.dtype)}var xP={kernelName:au,backendName:"webgl",kernelFunc:aJ};var BC=class{constructor(e,t){this.variableNames=["x"];let o=e.length;if(o>4)throw new Error(`WebGL backend: Reverse of rank-${o} tensor is not yet supported`);if(this.outputShape=e,o===1){this.userCode=` + `}};function DJ(r){let{inputs:e,backend:t,attrs:o}=r,{images:n,dy:s}=e,{alignCorners:a}=o,i=new n0(s.shape,n.shape,a);return t.runWebGLProgram(i,[s],s.dtype)}var gM={kernelName:au,backendName:"webgl",kernelFunc:DJ};var s0=class{constructor(e,t){this.variableNames=["x"];let o=e.length;if(o>4)throw new Error(`WebGL backend: Reverse of rank-${o} tensor is not yet supported`);if(this.outputShape=e,o===1){this.userCode=` void main() { int coord = getOutputCoords(); setOutput(getX(${e[0]} - coord - 1)); @@ -3797,7 +3800,7 @@ return a / b;`,OZ=` ${a} coords = getOutputCoords(); setOutput(getX(${s})); } - `}};var VC=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let o=e.length;if(o>4)throw new Error(`WebGL backend: Reverse of rank-${o} tensor is not yet supported`);this.outputShape=e;let n=Ut("rc",o),s=`${n[o-1]} + 1 < ${this.outputShape[o-1]}`,a=`${n[o-2]} + 1 < ${this.outputShape[o-2]}`,i=Le(o);o===1?this.userCode=` + `}};var i0=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let o=e.length;if(o>4)throw new Error(`WebGL backend: Reverse of rank-${o} tensor is not yet supported`);this.outputShape=e;let n=jt("rc",o),s=`${n[o-1]} + 1 < ${this.outputShape[o-1]}`,a=`${n[o-2]} + 1 < ${this.outputShape[o-2]}`,i=Le(o);o===1?this.userCode=` void main(){ int rc = getOutputCoords(); vec4 result = vec4(0.); @@ -3825,24 +3828,27 @@ return a / b;`,OZ=` } setOutput(result); } - `;function l(d){return m(d)}function u(d){return d[o-1]="("+d[o-1]+" + 1)",m(d)}function c(d){return d[o-2]="("+d[o-2]+" + 1)",m(d)}function p(d){return d[o-1]="("+d[o-1]+" + 1)",d[o-2]="("+d[o-2]+" + 1)",m(d)}function m(d){let h=e.map((b,w)=>f(w,d)),g=h.join(","),y=h.slice(-2).join(",");return`getChannel(getX(${g}), vec2(${y}))`}function f(d,h){return t.indexOf(d)!==-1&&e[d]!==1?`${e[d]} - ${h[d]} - 1`:`${h[d]}`}}};function lJ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{dims:s}=o,a=n.shape.length,i=x.parseAxisParam(s,n.shape);if(a===0)return jt({inputs:{x:n},backend:t});let l=W().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new VC(n.shape,i):new BC(n.shape,i);return t.runWebGLProgram(l,[n],n.dtype)}var yP={kernelName:In,backendName:"webgl",kernelFunc:lJ};var GC=class{constructor(e,t,o,n){this.variableNames=["Image"],this.outputShape=[];let s=e[1],a=e[2],i=Math.sin(t).toFixed(3),l=Math.cos(t).toFixed(3);this.outputShape=e;let[u,c]=N.getImageCenter(n,s,a),p=u.toFixed(3),m=c.toFixed(3),f="";typeof o=="number"?f=`float outputValue = ${o.toFixed(2)};`:f=` - vec3 fill = vec3(${o.join(",")}); + `;function l(d){return m(d)}function u(d){return d[o-1]="("+d[o-1]+" + 1)",m(d)}function c(d){return d[o-2]="("+d[o-2]+" + 1)",m(d)}function p(d){return d[o-1]="("+d[o-1]+" + 1)",d[o-2]="("+d[o-2]+" + 1)",m(d)}function m(d){let h=e.map((w,b)=>f(b,d)),g=h.join(","),x=h.slice(-2).join(",");return`getChannel(getX(${g}), vec2(${x}))`}function f(d,h){return t.indexOf(d)!==-1&&e[d]!==1?`${e[d]} - ${h[d]} - 1`:`${h[d]}`}}};function $J(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{dims:s}=o,a=n.shape.length,i=y.parseAxisParam(s,n.shape);if(a===0)return Ht({inputs:{x:n},backend:t});let l=j().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new i0(n.shape,i):new s0(n.shape,i);return t.runWebGLProgram(l,[n],n.dtype)}var xM={kernelName:In,backendName:"webgl",kernelFunc:$J};var a0=class{constructor(e,t){this.variableNames=["Image"],this.outputShape=[];let o=e[1],n=e[2];this.outputShape=e;let s="";typeof t=="number"?s=`float outputValue = ${t.toFixed(2)};`:s=` + vec3 fill = vec3(${t.join(",")}); float outputValue = fill[coords[3]];`,this.userCode=` + uniform vec4 params; void main() { ivec4 coords = getOutputCoords(); int x = coords[2]; int y = coords[1]; - float coordXFloat = (float(x) - ${p}) * ${l} - (float(y) - ${m}) * ${i}; - float coordYFloat = (float(x) - ${p}) * ${i} + (float(y) - ${m}) * ${l}; - int coordX = int(round(coordXFloat + ${p})); - int coordY = int(round(coordYFloat + ${m})); - ${f} - if(coordX >= 0 && coordX < ${a} && coordY >= 0 && coordY < ${s}) { + float coordXFloat = (float(x) - params[0]) * params[3] - + (float(y) - params[1]) * params[2]; + float coordYFloat = (float(x) - params[0]) * params[2] + + (float(y) - params[1]) * params[3]; + int coordX = int(round(coordXFloat + params[0])); + int coordY = int(round(coordYFloat + params[1])); + ${s} + if(coordX >= 0 && coordX < ${n} && coordY >= 0 && coordY < ${o}) { outputValue = getImage(coords[0], coordY, coordX, coords[3]); } setOutput(outputValue); } - `}};var bP={kernelName:Ei,backendName:"webgl",kernelFunc:({inputs:r,attrs:e,backend:t})=>{let{image:o}=r,{radians:n,fillValue:s,center:a}=e,i=t,l=new GC(o.shape,n,s,a);return i.runWebGLProgram(l,[o],o.dtype)}};var uJ=` + `}getCustomSetupFunc(e,t,o,n){return(s,a)=>{this.paramsLoc==null&&(this.paramsLoc=s.getUniformLocationNoThrow(a,"params")),s.gl.uniform4f(this.paramsLoc,e,t,o,n)}}};var yM={kernelName:Di,backendName:"webgl",kernelFunc:({inputs:r,attrs:e,backend:t})=>{let{image:o}=r,{radians:n,fillValue:s,center:a}=e,i=t,l=new a0(o.shape,s),[u,c]=S.getImageCenter(a,o.shape[1],o.shape[2]),p=l.getCustomSetupFunc(u,c,Math.sin(n),Math.cos(n));return i.runWebGLProgram(l,[o],o.dtype,p)}};var RJ=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); @@ -3857,7 +3863,7 @@ return a / b;`,OZ=` return base + 1.0; } } -`,cJ=_e({opSnippet:uJ}),wP={kernelName:Nn,backendName:"webgl",kernelFunc:cJ};var pJ="return inversesqrt(x);",mJ=_e({opSnippet:pJ,cpuKernelImpl:pR}),_P={kernelName:Sn,backendName:"webgl",kernelFunc:mJ};var ah=class{constructor(e,t,o,n,s,a,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=a;let l=Le(s.length),u=Le(a.length),c="";o===1?c="i":o===2&&(c="i, j");let p=`getIndices(${c})`,m="";n===1?m="i":n===2&&(m="i, coords[1]");let f=`getUpdates(${m})`,d=t>1?"strides[j]":"strides";this.userCode=` +`,FJ=_e({opSnippet:RJ}),bM={kernelName:Nn,backendName:"webgl",kernelFunc:FJ};var OJ="return inversesqrt(x);",PJ=_e({opSnippet:OJ,cpuKernelImpl:cF}),wM={kernelName:Sn,backendName:"webgl",kernelFunc:PJ};var ch=class{constructor(e,t,o,n,s,a,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=a;let l=Le(s.length),u=Le(a.length),c="";o===1?c="i":o===2&&(c="i, j");let p=`getIndices(${c})`,m="";n===1?m="i":n===2&&(m="i, coords[1]");let f=`getUpdates(${m})`,d=t>1?"strides[j]":"strides";this.userCode=` ${l} strides = ${l}(${s}); void main() { @@ -3877,7 +3883,7 @@ return a / b;`,OZ=` } setOutput(mix(getDefaultValue(), sum, float(found))); } - `}};function fJ(r){let{inputs:e,backend:t,attrs:o}=r,{indices:n,updates:s}=e,{shape:a}=o,{sliceRank:i,numUpdates:l,sliceSize:u,strides:c,outputSize:p}=N.calculateShapes(s,n,a),m=[p/u,u];if(p===0)return t.makeTensorInfo(a,n.dtype);let f=pe({inputs:{x:n},backend:t,attrs:{shape:[l,i]}}),d=pe({inputs:{x:s},backend:t,attrs:{shape:[l,u]}}),h=t.makeTensorInfo([],"float32",new Float32Array([0])),g=new ah(l,i,f.shape.length,d.shape.length,c,m),y=t.runWebGLProgram(g,[d,f,h],d.dtype),b=pe({inputs:{x:y},backend:t,attrs:{shape:a}});return t.disposeIntermediateTensorInfo(f),t.disposeIntermediateTensorInfo(d),t.disposeIntermediateTensorInfo(y),t.disposeIntermediateTensorInfo(h),b}var kP={kernelName:ki,backendName:"webgl",kernelFunc:fJ};var WC=class{constructor(e,t,o){this.variableNames=["c","a","b"],this.outputShape=t;let n,s;if(o>4)throw Error(`Where for rank ${o} is not yet supported`);if(o===1)s="resRC",n="resRC";else{let i=["resRC.x","resRC.y","resRC.z","resRC.w"],l=[],u=[];for(let c=0;c4)throw Error(`Where for rank ${o} is not yet supported`);if(o===1)s="resRC",n="resRC";else{let i=["resRC.x","resRC.y","resRC.z","resRC.w"],l=[],u=[];for(let c=0;c= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); -`,gJ=_e({opSnippet:hJ}),CP={kernelName:vi,backendName:"webgl",kernelFunc:gJ};var xJ="return 1.0 / (1.0 + exp(-1.0 * x));",yJ=_e({opSnippet:xJ}),IP={kernelName:An,backendName:"webgl",kernelFunc:yJ};var bJ=` +`,BJ=_e({opSnippet:zJ}),vM={kernelName:Ci,backendName:"webgl",kernelFunc:BJ};var VJ="return 1.0 / (1.0 + exp(-1.0 * x));",GJ=_e({opSnippet:VJ}),CM={kernelName:An,backendName:"webgl",kernelFunc:GJ};var WJ=` if (isnan(x)) { return 0.0; } return sign(x); -`,wJ=_e({opSnippet:bJ}),NP={kernelName:Ii,backendName:"webgl",kernelFunc:wJ};var _J=$x+` +`,UJ=_e({opSnippet:WJ}),IM={kernelName:Ni,backendName:"webgl",kernelFunc:UJ};var jJ=Lx+` return sin(x); -`,kJ=_e({opSnippet:_J}),SP={kernelName:Tn,backendName:"webgl",kernelFunc:kJ};var vJ=` +`,HJ=_e({opSnippet:jJ}),NM={kernelName:Tn,backendName:"webgl",kernelFunc:HJ};var qJ=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; -`,CJ=_e({opSnippet:vJ}),TP={kernelName:Ci,backendName:"webgl",kernelFunc:CJ};var IJ=` +`,KJ=_e({opSnippet:qJ}),SM={kernelName:Ii,backendName:"webgl",kernelFunc:KJ};var XJ=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; @@ -3921,9 +3927,9 @@ return a / b;`,OZ=` result = log(exp_x + 1.0); } return result; -`,NJ=_e({opSnippet:IJ}),AP={kernelName:Ni,backendName:"webgl",kernelFunc:NJ};var SJ=r=>{let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{blockShape:s,paddings:a}=o;x.assert(n.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let i=s.reduce((y,b)=>y*b),l=[[0,0]];l.push(...a);for(let y=1+s.length;yt.disposeIntermediateTensorInfo(y)),g},EP={kernelName:ma,backendName:"webgl",kernelFunc:SJ};function TJ(r){let{inputs:e,backend:t,attrs:o}=r,{sparseIndices:n,sparseValues:s,defaultValue:a}=e,{outputShape:i}=o,{sliceRank:l,numUpdates:u,strides:c,outputSize:p}=N.calculateShapes(s,n,i),m=!1,f=new ah(u,l,n.shape.length,s.shape.length,c,[p,1],m),d=t.runWebGLProgram(f,[s,n,a],s.dtype),h=pe({inputs:{x:d},backend:t,attrs:{shape:i}});return t.disposeIntermediateTensorInfo(d),h}var DP={kernelName:uu,backendName:"webgl",kernelFunc:TJ};function AJ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{numOrSizeSplits:s,axis:a}=o,i=x.parseAxisParam(a,n.shape)[0],l=N.prepareSplitSize(n,s,i),u=n.shape.length,c=new Array(u).fill(0),p=n.shape.slice();return l.map(m=>{let f=[...p];f[i]=m;let d=Va({inputs:{x:n},backend:t,attrs:{begin:c,size:f}});return c[i]+=m,d})}var $P={kernelName:xs,backendName:"webgl",kernelFunc:AJ};var EJ="return sqrt(x);",DJ=_e({opSnippet:EJ}),RP={kernelName:En,backendName:"webgl",kernelFunc:DJ};var $J="return x * x;",RJ=_e({opSnippet:$J}),FP={kernelName:fa,backendName:"webgl",kernelFunc:RJ};var OP="return (a - b) * (a - b);",FJ=nt({opSnippet:OP,packedOpSnippet:OP}),PP={kernelName:Rn,backendName:"webgl",kernelFunc:FJ};function OJ({inputs:r,attrs:e,backend:t}){let{x:o}=r,n=xr+` +`,YJ=_e({opSnippet:XJ}),TM={kernelName:Si,backendName:"webgl",kernelFunc:YJ};var ZJ=r=>{let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{blockShape:s,paddings:a}=o;y.assert(n.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let i=s.reduce((x,w)=>x*w),l=[[0,0]];l.push(...a);for(let x=1+s.length;xt.disposeIntermediateTensorInfo(x)),g},AM={kernelName:ma,backendName:"webgl",kernelFunc:ZJ};function JJ(r){let{inputs:e,backend:t,attrs:o}=r,{sparseIndices:n,sparseValues:s,defaultValue:a}=e,{outputShape:i}=o,{sliceRank:l,numUpdates:u,strides:c,outputSize:p}=S.calculateShapes(s,n,i),m=!1,f=new ch(u,l,n.shape.length,s.shape.length,c,[p,1],m),d=t.runWebGLProgram(f,[s,n,a],s.dtype),h=pe({inputs:{x:d},backend:t,attrs:{shape:i}});return t.disposeIntermediateTensorInfo(d),h}var EM={kernelName:uu,backendName:"webgl",kernelFunc:JJ};function QJ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{numOrSizeSplits:s,axis:a}=o,i=y.parseAxisParam(a,n.shape)[0],l=S.prepareSplitSize(n,s,i),u=n.shape.length,c=new Array(u).fill(0),p=n.shape.slice();return l.map(m=>{let f=[...p];f[i]=m;let d=Va({inputs:{x:n},backend:t,attrs:{begin:c,size:f}});return c[i]+=m,d})}var DM={kernelName:xs,backendName:"webgl",kernelFunc:QJ};var eQ="return sqrt(x);",tQ=_e({opSnippet:eQ}),$M={kernelName:En,backendName:"webgl",kernelFunc:tQ};var rQ="return x * x;",oQ=_e({opSnippet:rQ}),RM={kernelName:fa,backendName:"webgl",kernelFunc:oQ};var FM="return (a - b) * (a - b);",nQ=nt({opSnippet:FM,packedOpSnippet:FM}),OM={kernelName:Rn,backendName:"webgl",kernelFunc:nQ};function sQ({inputs:r,attrs:e,backend:t}){let{x:o}=r,n=yr+` return x > 0.0 ? 1.0 : float(${e.alpha}); - `,s=new ho(o.shape,n);return t.runWebGLProgram(s,[o],o.dtype)}var MP={kernelName:Fo,backendName:"webgl",kernelFunc:OJ};var UC=class{constructor(e,t,o){this.variableNames=["x"],this.outputShape=o;let n=o.length,s=Le(o.length),a=Le(o.length),i="";if(n===1)i="coords * strides + begin";else{let l=0;i=o.map((u,c)=>(l++,o.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${l-1}] * strides[${c}] + begin[${c}]`)).join(",")}this.userCode=` + `,s=new ho(o.shape,n);return t.runWebGLProgram(s,[o],o.dtype)}var PM={kernelName:Fo,backendName:"webgl",kernelFunc:sQ};var u0=class{constructor(e,t,o){this.variableNames=["x"],this.outputShape=o;let n=o.length,s=Le(o.length),a=Le(o.length),i="";if(n===1)i="coords * strides + begin";else{let l=0;i=o.map((u,c)=>(l++,o.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${l-1}] * strides[${c}] + begin[${c}]`)).join(",")}this.userCode=` ${s} begin = ${s}(${e}); ${s} strides = ${s}(${t}); @@ -3931,15 +3937,127 @@ return a / b;`,OZ=` ${a} coords = getOutputCoords(); setOutput(getX(${i})); } - `}};function PJ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{begin:s,end:a,strides:i,beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=o,{nonStrided:f,$begin:d,$strides:h,size:g,newShape:y,outShape:b}=nr.sliceInfo(n.shape,s,a,i,l,u,c,p,m),w=pe({inputs:{x:n},backend:t,attrs:{shape:y}}),_;if(f){let D=Va({inputs:{x:w},backend:t,attrs:{begin:d,size:g}});_=pe({inputs:{x:D},backend:t,attrs:{shape:b}}),t.disposeIntermediateTensorInfo(D)}else if(b.some(D=>D===0))_=t.makeTensorInfo(b,n.dtype,[]);else if(t.shouldExecuteOnCPU([w])){let R=t.texData.get(w.dataId).values,P=ve(w.shape,w.dtype,R),B=fR(b,P,h,d);_=t.makeTensorInfo(b,w.dtype,B.values)}else{let T=new UC(d,h,b);_=t.runWebGLProgram(T,[w],w.dtype)}let C=pe({inputs:{x:_},backend:t,attrs:{shape:b}});return t.disposeIntermediateTensorInfo(w),t.disposeIntermediateTensorInfo(_),C}var LP={kernelName:Si,backendName:"webgl",kernelFunc:PJ};var MJ="return tan(x);",LJ=_e({opSnippet:MJ}),zP={kernelName:Ti,backendName:"webgl",kernelFunc:LJ};var zJ=` + `}};function iQ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{begin:s,end:a,strides:i,beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=o,{nonStrided:f,$begin:d,$strides:h,size:g,newShape:x,outShape:w}=sr.sliceInfo(n.shape,s,a,i,l,u,c,p,m),b=pe({inputs:{x:n},backend:t,attrs:{shape:x}}),_;if(f){let A=Va({inputs:{x:b},backend:t,attrs:{begin:d,size:g}});_=pe({inputs:{x:A},backend:t,attrs:{shape:w}}),t.disposeIntermediateTensorInfo(A)}else if(w.some(A=>A===0))_=t.makeTensorInfo(w,n.dtype,[]);else if(t.shouldExecuteOnCPU([b])){let $=t.texData.get(b.dataId).values,F=ve(b.shape,b.dtype,$),M=mF(w,F,h,d);_=t.makeTensorInfo(w,b.dtype,M.values)}else{let N=new u0(d,h,w);_=t.runWebGLProgram(N,[b],b.dtype)}let k=pe({inputs:{x:_},backend:t,attrs:{shape:w}});return t.disposeIntermediateTensorInfo(b),t.disposeIntermediateTensorInfo(_),k}var MM={kernelName:Ti,backendName:"webgl",kernelFunc:iQ};var aQ="return tan(x);",lQ=_e({opSnippet:aQ}),LM={kernelName:Ai,backendName:"webgl",kernelFunc:lQ};var uQ=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); -`,BJ=_e({opSnippet:zJ}),BP={kernelName:On,backendName:"webgl",kernelFunc:BJ};var jC=class{constructor(e,t){this.variableNames=["A"];let o=new Array(e.length);for(let a=0;a5)throw Error(`Tile for rank ${e} is not yet supported`);if(e===1)return`imod(resRC, ${r[0]})`;let t=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],o=[];for(let n=0;nx.decodeString(m)),c=ve(n.shape,n.dtype,u),p=hR(c,s);return t.makeTensorInfo(p.shape,p.dtype,p.values)}let a=new jC(n.shape,s);return t.runWebGLProgram(a,[n],n.dtype)}var VP={kernelName:_o,backendName:"webgl",kernelFunc:HC};function GJ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{k:s,sorted:a}=o,i=t.readSync(n.dataId),[l,u]=gR(i,n.shape,n.dtype,s,a);return[t.makeTensorInfo(l.shape,l.dtype,l.values),t.makeTensorInfo(u.shape,u.dtype,u.values)]}var GP={kernelName:Ai,backendName:"webgl",kernelFunc:GJ};function WJ(r){let{inputs:e,attrs:t,backend:o}=r,{axis:n}=t,{x:s}=e;qi(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let a=o.readSync(s.dataId),{outputValues:i,outputShape:l,indices:u}=xR(a,n,s.shape,s.dtype);return[o.makeTensorInfo(l,s.dtype,i),o.makeTensorInfo([u.length],"int32",u)]}var WP={kernelName:cu,backendName:"webgl",kernelFunc:WJ};function UJ(r){let{inputs:e,backend:t,attrs:o}=r,{value:n}=e,{axis:s}=o;s<0&&(s+=n.shape.length);let a=n,i=a.shape.length,l=n.shape[s],u=new Array(i-1),c=0;for(let h=0;ht.disposeIntermediateTensorInfo(h)),d}var UP={kernelName:ys,backendName:"webgl",kernelFunc:UJ};var qC=class{constructor(e,t){this.variableNames=["x","segmentIds"];let o=e.windowSize,n=e.batchSize,s=e.inSize,a=e.numSegments,i=a*Math.ceil(s/o);this.outputShape=[n,i];let l="0.0",u="sumValue",c=Math.floor(o/4)*4,p=o%4,m=` + `}};function pQ(r){let e=r.length;if(e>5)throw Error(`Tile for rank ${e} is not yet supported`);if(e===1)return`imod(resRC, ${r[0]})`;let t=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],o=[];for(let n=0;ny.decodeString(m)),c=ve(n.shape,n.dtype,u),p=dF(c,s);return t.makeTensorInfo(p.shape,p.dtype,p.values)}let a=new c0(n.shape,s);return t.runWebGLProgram(a,[n],n.dtype)}var BM={kernelName:_o,backendName:"webgl",kernelFunc:p0};function mQ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{k:s,sorted:a}=o,i=t.readSync(n.dataId),[l,u]=hF(i,n.shape,n.dtype,s,a);return[t.makeTensorInfo(l.shape,l.dtype,l.values),t.makeTensorInfo(u.shape,u.dtype,u.values)]}var VM={kernelName:Ei,backendName:"webgl",kernelFunc:mQ};var m0=class{constructor(e,t,o,n,s,a){this.variableNames=["Image","Transforms"],this.outputShape=a;let i=o==="nearest"?1:2,l;switch(n){case"constant":l=1;break;case"reflect":l=2;break;case"wrap":l=3;break;case"nearest":l=4;break;default:l=1;break}this.userCode=` + float mapCoord(float outCoord, float len) { + float inCoord = outCoord; + if(${l} == 2) { + if (inCoord < 0.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz2 = 2.0 * len; + if (inCoord < sz2) { + inCoord = sz2 * float(int(float(-inCoord / sz2))) + + inCoord; + } + inCoord = inCoord < -len ? inCoord + sz2 : -inCoord - 1.0; + } + } else if (inCoord > len - 1.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz2 = 2.0 * len; + inCoord -= sz2 * float(int(float(inCoord / sz2))); + if (inCoord >= len) { + inCoord = sz2 - inCoord - 1.0; + } + } + } + return clamp(inCoord, 0.0, len - 1.0); + } else if (${l} == 3) { + if (inCoord < 0.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz = len - 1.0; + inCoord += len * (float(int(float(-inCoord / sz))) + 1.0); + } + } else if (inCoord > len - 1.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz = len - 1.0; + inCoord -= len * float(int(float(inCoord / sz))); + } + } + return clamp(inCoord, 0.0, len - 1.0); + } else if (${l} == 4) { + return clamp(outCoord, 0.0, len - 1.0); + } else { + return outCoord; + } + } + + float readWithFillValue(int batch, int coordY, int coordX, + int channel) { + float outputValue; + if (0 <= coordY && coordY < ${e} && 0 <= coordX && coordX < ${t}) { + outputValue = getImage(batch, coordY, coordX, channel); + } else { + outputValue = float(${s}); + } + return outputValue; + } + + void main() { + ivec4 coords = getOutputCoords(); + float outputValue; + int batch = coords[0]; + int x = coords[2]; + int y = coords[1]; + int channel = coords[3]; + float xf = float(x); + float yf = float(y); + float a1 = getTransforms(batch, 0); + float a2 = getTransforms(batch, 1); + float a3 = getTransforms(batch, 2); + float b1 = getTransforms(batch, 3); + float b2 = getTransforms(batch, 4); + float b3 = getTransforms(batch, 5); + float c1 = getTransforms(batch, 6); + float c2 = getTransforms(batch, 7); + float projection = c1 * xf + c2 * yf + 1.0; + if (projection == 0.0) { + outputValue = float(${s}); + } else { + float inX = (a1 * xf + a2 * yf + a3) / projection; + float inY = (b1 * xf + b2 * yf + b3) / projection; + float mapX = mapCoord(inX, float(${t})); + float mapY = mapCoord(inY, float(${e})); + + if (${i} == 1) { + int coordY = int(round(mapY)); + int coordX = int(round(mapX)); + outputValue = readWithFillValue(batch, coordY, coordX, + channel); + } else { + float yFloor = floor(mapY); + float xFloor = floor(mapX); + float yCeil = yFloor + 1.0; + float xCeil = xFloor + 1.0; + float valueYFloor = (xCeil - mapX) * + readWithFillValue(batch, int(yFloor), int(xFloor), channel) + + (mapX - xFloor) * + readWithFillValue(batch, int(yFloor), int(xCeil), channel); + float valueYCeil = (xCeil - mapX) * + readWithFillValue(batch, int(yCeil), int(xFloor), channel) + + (mapX - xFloor) * + readWithFillValue(batch, int(yCeil), int(xCeil), channel); + outputValue = (yCeil - mapY) * valueYFloor + + (mapY - yFloor) * valueYCeil; + } + } + setOutput(outputValue); + } + `}};function fQ(r){let{inputs:e,backend:t,attrs:o}=r,{image:n,transforms:s}=e,{interpolation:a,fillMode:i,fillValue:l,outputShape:u}=o,[c,p,m,f]=n.shape,[d,h]=u!=null?u:[p,m],g=[c,d,h,f],x=new m0(p,m,a,i,l,g);return t.runWebGLProgram(x,[n,s],"float32")}var GM={kernelName:cu,backendName:"webgl",kernelFunc:fQ};function dQ(r){let{inputs:e,attrs:t,backend:o}=r,{axis:n}=t,{x:s}=e;qi(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let a=o.readSync(s.dataId),{outputValues:i,outputShape:l,indices:u}=gF(a,n,s.shape,s.dtype);return[o.makeTensorInfo(l,s.dtype,i),o.makeTensorInfo([u.length],"int32",u)]}var WM={kernelName:pu,backendName:"webgl",kernelFunc:dQ};function hQ(r){let{inputs:e,backend:t,attrs:o}=r,{value:n}=e,{axis:s}=o;s<0&&(s+=n.shape.length);let a=n,i=a.shape.length,l=n.shape[s],u=new Array(i-1),c=0;for(let h=0;ht.disposeIntermediateTensorInfo(h)),d}var UM={kernelName:ys,backendName:"webgl",kernelFunc:hQ};var f0=class{constructor(e,t){this.variableNames=["x","segmentIds"];let o=e.windowSize,n=e.batchSize,s=e.inSize,a=e.numSegments,i=a*Math.ceil(s/o);this.outputShape=[n,i];let l="0.0",u="sumValue",c=Math.floor(o/4)*4,p=o%4,m=` sumValue += dot(values, segFilter); `,f="";s%o>0&&(f=` if (inIdx < 0 || inIdx >= ${s}) { @@ -4045,7 +4163,7 @@ return a / b;`,OZ=` } setOutput(${u}); } - `}};function jJ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,segmentIds:s}=e,{numSegments:a}=o,i=n.shape.length,l=[],u=0,c=N.getAxesPermutation([u],i),p=n;c!=null&&(p=Mt({inputs:{x:n},backend:t,attrs:{perm:c}}),l.push(p),u=N.getInnerMostAxes(1,i)[0]);let m=N.segment_util.computeOutShape(p.shape,u,a),f=x.sizeFromShape([p.shape[u]]),d=pe({inputs:{x:p},backend:t,attrs:{shape:[-1,f]}});l.push(d);let h=mu(n.dtype),g=(_,C,D,T,R)=>{let P=_.shape[0],B=_.shape[1],G=N.segment_util.segOpComputeOptimalWindowSize(B,R),U={windowSize:G,inSize:B,batchSize:P,numSegments:R},j=new qC(U,C),H=t.compileAndRun(j,[_,D],T);if(l.push(H),H.shape[1]===R)return H;let K=FC({backend:t,attrs:{start:0,stop:R,step:1,dtype:"float32"}}),X=HC({inputs:{x:K},backend:t,attrs:{reps:[B/G]}});return l.push(K),l.push(X),g(H,C,X,T,R)},y=g(d,"unsortedSegmentSum",s,h,a),b=pe({inputs:{x:y},backend:t,attrs:{shape:m}}),w=b;if(c!=null){l.push(b);let _=N.getUndoAxesPermutation(c);w=Mt({inputs:{x:w},backend:t,attrs:{perm:_}})}return l.forEach(_=>t.disposeIntermediateTensorInfo(_)),w}var jP={kernelName:da,backendName:"webgl",kernelFunc:jJ};var HJ=[AO,EO,UR,HR,qR,KR,YR,ZR,JR,QR,rF,oF,nF,sF,aF,iF,lF,cF,uF,pF,mF,fF,dF,gF,xF,_F,vF,CF,NF,$R,AF,DF,$F,EF,FF,OF,RF,PF,MF,LF,VF,GF,WF,jF,HF,UF,qF,KF,XF,YF,ZF,JF,eO,tO,oO,nO,sO,iO,lO,uO,cO,pO,mO,fO,dO,hO,gO,DR,xO,SF,yO,bO,wO,RR,_O,kO,vO,IO,CO,NO,SO,TO,$O,OO,FO,PO,MO,zO,RO,VO,GO,WO,UO,jO,YO,LR,JO,QO,eP,tP,yF,rP,sP,iP,aP,lP,FR,uP,cP,bF,HO,pP,fP,mP,BR,dP,hP,gP,xP,yP,bP,wP,_P,kP,vP,CP,IP,NP,SP,TP,hF,XO,AP,EP,DP,$P,RP,FP,PP,MP,LP,KO,GR,zP,BP,VP,GP,WR,WP,UP,jP,oP];for(let r of HJ)Ja(r);var HP="3.2.0";var qJ={"tfjs-core":Jb,"tfjs-backend-cpu":TE,"tfjs-backend-webgl":ER,"tfjs-data":gx,"tfjs-layers":dl,"tfjs-converter":ux,tfjs:HP};var Lt;(function(r){r[r.float32=0]="float32",r[r.int32=1]="int32",r[r.bool=2]="bool",r[r.string=3]="string",r[r.complex64=4]="complex64"})(Lt||(Lt={}));var El;(function(r){r[r.linear=0]="linear",r[r.relu=1]="relu",r[r.relu6=2]="relu6",r[r.prelu=3]="prelu",r[r.leakyrelu=4]="leakyrelu"})(El||(El={}));var qP;function KJ(r){qP=r.wasm.cwrap(ws,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function XJ(r){let{inputs:e,backend:t,attrs:o}=r,{a:n,b:s,bias:a,preluActivationWeights:i}=e;if(n.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:u,activation:c,leakyreluAlpha:p}=o,m=t.dataIdMap.get(n.dataId).id,f=t.dataIdMap.get(s.dataId).id,d=0;if(a!=null){let R=t.dataIdMap.get(a.dataId);if(R.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${R.shape.length}.`);d=R.id}let h=i==null?0:t.dataIdMap.get(i.dataId).id,g=El[c];if(g==null)throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);let y=l?n.shape[2]:n.shape[1],b=u?s.shape[1]:s.shape[2],w=n.shape[0],_=t.makeOutput([w,y,b],n.dtype),C=t.dataIdMap.get(_.dataId).id,D=new Uint8Array(new Int32Array(n.shape).buffer),T=new Uint8Array(new Int32Array(s.shape).buffer);return qP(m,D,n.shape.length,f,T,s.shape.length,l,u,g,d,h,p||0,C),_}var KP={kernelName:ws,backendName:"wasm",setupFunc:KJ,kernelFunc:XJ};function St(r){let e;function t(n){e=n.wasm.cwrap(r,null,["number","number"])}function o(n){let{backend:s,inputs:{x:a}}=n,i=s.dataIdMap.get(a.dataId).id,l=s.makeOutput(a.shape,a.dtype),u=s.dataIdMap.get(l.dataId).id;return x.sizeFromShape(l.shape)===0||e(i,u),l}return{kernelName:r,backendName:"wasm",setupFunc:t,kernelFunc:o}}var XP=St(as);function bt(r,e,t){let o;function n(a){o=a.wasm.cwrap(r,null,["number","array","number","number","array","number","number","number"])}function s(a){let{backend:i,inputs:l}=a,{a:u,b:c}=l,p=i.dataIdMap.get(u.dataId).id,m=i.dataIdMap.get(c.dataId).id,f=t!=null?t:u.dtype,d=N.assertAndGetBroadcastShape(u.shape,c.shape),h=i.makeOutput(d,f);if(x.sizeFromShape(d)===0)return h;let g=new Uint8Array(new Int32Array(u.shape).buffer),y=new Uint8Array(new Int32Array(c.shape).buffer),b=i.dataIdMap.get(h.dataId).id,w=()=>o(p,g,u.shape.length,m,y,c.shape.length,Lt[u.dtype],b);if(e&&u.dtype==="float32")return w(),h;let _=N.getBroadcastDims(u.shape,d),C=N.getBroadcastDims(c.shape,d),D=_.every((R,P)=>R===P),T=C.every((R,P)=>R===P);if(D&&T)return w(),h;throw new Error(`Broadcasting along outer dims is not yet supported for ${u.dtype} ${r}.`)}return{kernelName:r,backendName:"wasm",setupFunc:n,kernelFunc:s}}var YJ=!0,YP=bt(wo,YJ);var ZP;function ZJ(r){ZP=r.wasm.cwrap(Ho,null,["array","number","number","number"])}function JJ(r){let{inputs:e,backend:t}=r,o=t.makeOutput(e[0].shape,e[0].dtype);if(x.sizeFromShape(o.shape)===0)return o;let n=e.map(i=>t.dataIdMap.get(i.dataId).id),s=new Uint8Array(new Int32Array(n).buffer),a=t.dataIdMap.get(o.dataId).id;return ZP(s,n.length,Lt[o.dtype],a),o}var JP={kernelName:Ho,backendName:"wasm",setupFunc:ZJ,kernelFunc:JJ};function cc(r){let{inputs:{x:e},backend:t}=r,o=t.makeOutput(e.shape,e.dtype),n=t.typedArrayFromHeap(e);return t.typedArrayFromHeap(o).set(n),o}var QP={kernelName:Ro,backendName:"wasm",kernelFunc:cc};var eM;function QJ(r){eM=r.wasm.cwrap(Pn,null,["number","array","number","number","number","array","number"])}function qp(r){let{inputs:e,backend:t,attrs:o}=r,[n,s]=t9(e.x.shape,o.perm),a=!0;for(let d=0;d=n&&(s===-1||o[s]>o[a])&&(s=a);o[s]=n}return[t,o]}var tM={kernelName:Pn,backendName:"wasm",kernelFunc:qp,setupFunc:QJ};function os(r,e,t){let o=r.shape,n=r.shape.length,s=x.parseAxisParam(e,o),a=s,i=N.getAxesPermutation(a,n),l=null,u=!1;if(i!=null){let c=new Array(n);for(let f=0;f`new shape: ${a}, old shape: ${o.shape}. New shape and old shape must have the same number of elements.`),r.backend.incRef(o.dataId),{dataId:o.dataId,shape:a,dtype:o.dtype}}var iM={kernelName:ds,backendName:"wasm",kernelFunc:Br};var aM;function i9(r){aM=r.wasm.cwrap(Xo,null,["number","array","number","number","array","number","number","number","number"])}function a9(r){let{inputs:e,backend:t,attrs:o}=r,{a:n,b:s}=e,{transposeA:a,transposeB:i}=o;if(n.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=n.shape.length,u=s.shape.length,c=a?n.shape[l-2]:n.shape[l-1],p=i?s.shape[u-1]:s.shape[u-2],m=a?n.shape[l-1]:n.shape[l-2],f=i?s.shape[u-2]:s.shape[u-1],d=n.shape.slice(0,-2),h=s.shape.slice(0,-2),g=x.sizeFromShape(d),y=x.sizeFromShape(h),b=g===y||g===1||y===1;x.assert(l>=2&&u>=2&&b,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${d}) and (${h}).`);let _=(g>y?n.shape.slice(0,-2):s.shape.slice(0,-2)).concat([m,f]);x.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${n.shape} and ${s.shape} and transposeA=${a} and transposeB=${i} must match.`);let C=a?[g,c,m]:[g,m,c],D=i?[y,f,p]:[y,p,f],T=Br({inputs:{x:n},backend:t,attrs:{shape:C}}),R=Br({inputs:{x:s},backend:t,attrs:{shape:D}}),P=t.dataIdMap.get(T.dataId).id,B=t.dataIdMap.get(R.dataId).id,G=a?T.shape[2]:T.shape[1],U=i?R.shape[1]:R.shape[2],j=Math.max(g,y),H=t.makeOutput([j,G,U],T.dtype),K=t.dataIdMap.get(H.dataId).id,X=new Uint8Array(new Int32Array(T.shape).buffer),oe=new Uint8Array(new Int32Array(R.shape).buffer);return aM(P,X,T.shape.length,B,oe,R.shape.length,a,i,K),t.disposeData(T.dataId),t.disposeData(R.dataId),H.shape=_,H}var lM={kernelName:Xo,backendName:"wasm",setupFunc:i9,kernelFunc:a9};function pc(r){let{inputs:{x:e},attrs:{dtype:t},backend:o}=r,n=o.makeOutput(e.shape,t),s=o.typedArrayFromHeap(e);return o.typedArrayFromHeap(n).set(s),n}var uM={kernelName:Do,backendName:"wasm",kernelFunc:pc};var cM=St(Yo);var pM;function l9(r){pM=r.wasm.cwrap($o,null,["number","number","number","number"])}function u9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{clipValueMin:s,clipValueMax:a}=o,i=t.dataIdMap.get(n.dataId).id,l=t.makeOutput(n.shape,n.dtype),u=t.dataIdMap.get(l.dataId).id;return pM(i,s,a,u),l}var mM={kernelName:$o,backendName:"wasm",setupFunc:l9,kernelFunc:u9};function KC(r){let{inputs:e,backend:t}=r,o=x.parseAxisParam(r.attrs.axis,e[0].shape)[0],n=N.computeOutShape(e.map(f=>f.shape),o),s=e.filter(f=>x.sizeFromShape(f.shape)>0);if(s.length===1)return cc({inputs:{x:s[0]},backend:t});let a=t.makeOutput(n,e[0].dtype);if(x.sizeFromShape(n)===0)return a;let i=s.map(f=>f.shape);if(N.assertParamsConsistent(i,o),s[0].dtype==="string"){let f=s.map(w=>{let _=x.sizeFromShape(w.shape.slice(o));return Br({inputs:{x:w},backend:t,attrs:{shape:[-1,_]}})}),d=f.map(w=>({vals:t.readSync(w.dataId),shape:w.shape}));n=N.computeOutShape(f.map(w=>w.shape),1);let h=f[0].shape[0]===1,g=Ld(d,n,e[0].dtype,h),y=N.computeOutShape(s.map(w=>w.shape),o);a.shape=y;let b=t.dataIdMap.get(a.dataId);return b.stringBytes=N.fromStringArrayToUint8(g),f.forEach(w=>t.disposeData(w.dataId)),a}let l=x.sizeFromShape(s[0].shape.slice(0,o)),u=0,c=s.map(f=>{let d=x.sizeFromShape(f.shape.slice(o));return u+=d,d}),p=s.map(f=>t.typedArrayFromHeap(f)),m=t.typedArrayFromHeap(a);for(let f=0;f`cumsum does not support ${n.dtype} tensors in the WASM backend`);let u=N.getAxesPermutation([s],l),c=n;u!==null&&(c=qp({inputs:{x:n},attrs:{perm:u},backend:t}));let p=N.getInnerMostAxes(1,l)[0];N.assertAxesAreInnerMostDims("cumsum",[p],l);let m=t.makeOutput(c.shape,c.dtype),f=c.shape[p],d=t.dataIdMap.get(c.dataId).id,h=t.dataIdMap.get(m.dataId).id;_M(d,a?1:0,i?1:0,f,h,Lt[n.dtype]);let g=m;if(u!==null){let y=N.getUndoAxesPermutation(u);g=qp({inputs:{x:m},attrs:{perm:y},backend:t}),t.disposeData(c.dataId),t.disposeData(m.dataId)}return g}var kM={kernelName:en,backendName:"wasm",setupFunc:g9,kernelFunc:x9};var vM;function y9(r){vM=r.wasm.cwrap(ei,null,["number","number","number","array","number","array","array","number","number"])}function b9(r){let{backend:e,inputs:t,attrs:o}=r,{x:n}=t,{blockSize:s,dataFormat:a}=o;x.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let i=n.shape[0],l=a==="NHWC"?n.shape[1]:n.shape[2],u=a==="NHWC"?n.shape[2]:n.shape[3],c=a==="NHWC"?n.shape[3]:n.shape[1],p=l*s,m=u*s,f=c/(s*s),d=a==="NHWC"?[i,p,m,f]:[i,f,p,m],h=e.makeOutput(d,"float32"),y=e.dataIdMap.get(n.dataId).id,b=new Uint8Array(new Int32Array(x.computeStrides(n.shape)).buffer),w=new Uint8Array(new Int32Array(d).buffer),_=new Uint8Array(new Int32Array(x.computeStrides(d)).buffer),C=e.dataIdMap.get(h.dataId).id;return vM(y,s,a==="NHWC"?1:0,b,n.shape.length-1,w,_,d.length,C),h}var CM={kernelName:ei,backendName:"wasm",setupFunc:y9,kernelFunc:b9};var IM;function w9(r){IM=r.wasm.cwrap(tn,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function _9(r){let{inputs:e,attrs:t,backend:o}=r,{x:n,filter:s}=e,a=o.dataIdMap.get(n.dataId).id,i=o.dataIdMap.get(s.dataId).id,{strides:l,dilations:u,pad:c,dimRoundingMode:p}=t,m=u==null?[1,1]:u,f=N.computeConv2DInfo(n.shape,s.shape,l,m,c,p,!0),d=f.filterHeight,h=f.filterWidth,g=f.padInfo.top,y=f.padInfo.right,b=f.padInfo.bottom,w=f.padInfo.left,_=f.dilationHeight,C=f.dilationWidth,D=f.strideHeight,T=f.strideWidth,R=f.inChannels,P=f.outChannels,B=f.padInfo.type==="SAME"?1:0;if(f.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${f.dataFormat}'. Please use 'channelsLast'.`);let G=o.makeOutput(f.outShape,"float32"),U=o.dataIdMap.get(G.dataId).id;return IM(a,n.shape[0],n.shape[1],n.shape[2],i,d,h,g,y,b,w,B,_,C,D,T,R,P,U),G}var NM={kernelName:tn,backendName:"wasm",setupFunc:w9,kernelFunc:_9};var k9=!1,SM=bt(oi,k9,"bool");var TM=St(on);function Ux(r){let{inputs:e,attrs:t,backend:o}=r,{input:n}=e,{dim:s}=t,a=n.shape.length,i=n.shape.slice(),l=s;return s<0&&(x.assert(-(a+1)<=s,()=>`Axis must be in the interval [${-(a+1)}, ${a}]`),l=a+s+1),i.splice(l,0,1),Br({inputs:{x:n},backend:o,attrs:{shape:i}})}var AM={kernelName:us,backendName:"wasm",kernelFunc:Ux};function v9(r){let{attrs:{shape:e,value:t,dtype:o},backend:n}=r,s=n.makeOutput(e,o);return n.typedArrayFromHeap(s).fill(t),s}var EM={kernelName:ia,backendName:"wasm",kernelFunc:v9};var DM;function C9(r){DM=r.wasm.cwrap(si,null,["number","number","number","number","number","number"])}function I9(r){let{inputs:e,backend:t}=r,{image:o}=e,n=t.makeOutput(o.shape,o.dtype),s=t.dataIdMap.get(o.dataId).id,a=t.dataIdMap.get(n.dataId).id,[i,l,u,c]=o.shape;return DM(s,i,l,u,c,a),n}var $M={kernelName:si,backendName:"wasm",kernelFunc:I9,setupFunc:C9};var RM=St(nn);var N9=!1,FM=bt(sn,N9);var OM;function S9(r){OM=r.wasm.cwrap(an,null,["number","number","number","number","number","number","number"])}function T9(r){let{backend:e,inputs:t,attrs:o}=r,{varianceEpsilon:n}=o,{x:s,mean:a,variance:i,offset:l,scale:u}=t,c=e.dataIdMap.get(s.dataId).id,p=e.dataIdMap.get(a.dataId).id,m=e.dataIdMap.get(i.dataId).id,f=l!=null?e.dataIdMap.get(l.dataId).id:0,d=u!=null?e.dataIdMap.get(u.dataId).id:0,h=e.makeOutput(s.shape,s.dtype);if(x.sizeFromShape(s.shape)===0)return h;let g=e.dataIdMap.get(h.dataId).id;return OM(c,p,m,f,d,n,g),h}var PM={kernelName:an,backendName:"wasm",setupFunc:S9,kernelFunc:T9};var MM;function A9(r){MM=r.wasm.cwrap(_s,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function E9(r){let{inputs:e,attrs:t,backend:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=t,h=N.computeConv2DInfo(n.shape,s.shape,l,c,u,m),g=El[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedConv2D in the wasm backend.`);let y=o.dataIdMap.get(n.dataId).id,b=o.dataIdMap.get(s.dataId).id,w=h.outChannels,_=0;if(a!=null){let ae=o.dataIdMap.get(a.dataId);if(ae.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ae.shape.length}.`);if(ae.shape[0]!==w)throw new Error(`FusedConv2D bias shape (${ae.shape}) does not match the number of output channels (${w})`);_=ae.id}let C=h.filterHeight,D=h.filterWidth,T=h.padInfo.top,R=h.padInfo.right,P=h.padInfo.bottom,B=h.padInfo.left,G=h.dilationHeight,U=h.dilationWidth,j=h.strideHeight,H=h.strideWidth,K=h.inChannels,X=h.padInfo.type==="SAME"?1:0,oe=h.batchSize,Y=h.inHeight,re=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let te=o.makeOutput(h.outShape,"float32"),ie=o.dataIdMap.get(te.dataId).id,le=i==null?0:o.dataIdMap.get(i.dataId).id;return MM(y,oe,Y,re,b,C,D,_,T,R,P,B,X,G,U,j,H,K,w,g,le,d||0,ie),te}var LM={kernelName:_s,backendName:"wasm",setupFunc:A9,kernelFunc:E9};var zM;function D9(r){zM=r.wasm.cwrap(ks,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function $9(r){let{inputs:e,attrs:t,backend:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=t,h=N.computeConv2DInfo(n.shape,s.shape,l,c,u,m,!0),g=El[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let y=o.dataIdMap.get(n.dataId).id,b=o.dataIdMap.get(s.dataId).id,w=h.outChannels,_=0;if(a!=null){let ae=o.dataIdMap.get(a.dataId);if(ae.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ae.shape.length}.`);if(ae.shape[0]!==w)throw new Error(`FusedDepthwiseConv2D bias shape (${ae.shape}) does not match the number of output channels (${w})`);_=ae.id}let C=h.filterHeight,D=h.filterWidth,T=h.padInfo.top,R=h.padInfo.right,P=h.padInfo.bottom,B=h.padInfo.left,G=h.dilationHeight,U=h.dilationWidth,j=h.strideHeight,H=h.strideWidth,K=h.inChannels,X=h.padInfo.type==="SAME"?1:0,oe=h.batchSize,Y=h.inHeight,re=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let te=o.makeOutput(h.outShape,"float32"),ie=o.dataIdMap.get(te.dataId).id,le=i==null?0:o.dataIdMap.get(i.dataId).id;return zM(y,oe,Y,re,b,C,D,_,T,R,P,B,X,G,U,j,H,K,w,g,le,d||0,ie),te}var BM={kernelName:ks,backendName:"wasm",setupFunc:D9,kernelFunc:$9};var VM;function R9(r){VM=r.wasm.cwrap(ii,null,["number","number","number","number","number","number","array","number"])}function F9(r){let{backend:e,inputs:t}=r,{params:o,indices:n}=t,[s,a,i,l]=jh.prepareAndValidate(o,n),u=e.makeOutput(s,o.dtype);if(a===0)return u;let c=n.shape,p=c[c.length-1],f=e.dataIdMap.get(o.dataId).id,h=e.dataIdMap.get(n.dataId).id,g=new Uint8Array(new Int32Array(l).buffer),y=e.dataIdMap.get(u.dataId).id;return VM(f,Lt[o.dtype],h,a,p,i,g,y),u}var GM={kernelName:ii,backendName:"wasm",setupFunc:R9,kernelFunc:F9};var WM;function O9(r){WM=r.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function P9(r){let{backend:e,inputs:t,attrs:o}=r,{x:n,indices:s}=t,{axis:a,batchDims:i}=o,l=x.parseAxisParam(a,n.shape)[0],u=N.segment_util.collectGatherOpShapeInfo(n,s,l,i),c=Br({inputs:{x:n},attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]},backend:e}),p=x.sizeFromShape(s.shape),m=Br({inputs:{x:s},attrs:{shape:[u.batchSize,p/u.batchSize]},backend:e}),f=[u.batchSize,u.outerSize,p/u.batchSize,u.sliceSize],d=e.makeOutput(f,n.dtype);if(x.sizeFromShape(n.shape)===0)return d;let h=c.shape.length-1,y=e.dataIdMap.get(c.dataId).id,w=e.dataIdMap.get(m.dataId).id,_=e.dataIdMap.get(d.dataId).id,C=new Uint8Array(new Int32Array(x.computeStrides(c.shape)).buffer),D=new Uint8Array(new Int32Array(x.computeStrides(f)).buffer);return WM(y,Lt[n.dtype],C,h,w,u.batchSize,D,_),e.disposeData(c.dataId),e.disposeData(m.dataId),d.shape=u.outputShape,d}var UM={kernelName:cs,backendName:"wasm",setupFunc:O9,kernelFunc:P9};var M9=!1,jM=bt(ai,M9,"bool");var L9=!1,HM=bt(ln,L9,"bool");var qM;function z9(r){qM=r.wasm.cwrap(un,null,["number","number","number"])}function B9(r){let{inputs:{x:e},attrs:{alpha:t},backend:o}=r,n=o.dataIdMap.get(e.dataId).id,s=o.makeOutput(e.shape,e.dtype);if(x.sizeFromShape(e.shape)!==0){let a=o.dataIdMap.get(s.dataId).id;qM(n,t,a)}return s}var KM={kernelName:un,backendName:"wasm",setupFunc:z9,kernelFunc:B9};var V9=!1,XM=bt(pi,V9,"bool");var G9=!1,YM=bt(mi,G9,"bool");var ZM=St(cn);var W9=!1,JM=bt(di,W9,"bool");var QM;function U9(r){QM=r.wasm.cwrap(pn,null,["number, number, number"])}function j9(r){let{backend:e,inputs:t,attrs:o}=r,{reductionIndices:n,keepDims:s}=o,{x:a}=t,l=e.dataIdMap.get(a.dataId).id,u=a,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=os(a,n,e);if(f){let w=e.dataIdMap.get(c.dataId).id;u=c,l=w}let d=u.shape.length;N.assertAxesAreInnerMostDims("max",p,d);let[h,g]=N.computeOutAndReduceShapes(u.shape,p),y=x.sizeFromShape(g),b=e.makeOutput(h,a.dtype);if(x.sizeFromShape(u.shape)!==0){let w=e.dataIdMap.get(b.dataId).id;QM(l,y,w)}if(f&&e.disposeData(c.dataId),s){let w=N.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var eL={kernelName:pn,backendName:"wasm",setupFunc:U9,kernelFunc:j9};var H9=!1,tL=bt(mn,H9);var rL;function q9(r){rL=r.wasm.cwrap(fn,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function K9(r){let{inputs:e,attrs:t,backend:o}=r,n=e.x,s=o.dataIdMap.get(n.dataId).id,{filterSize:a,strides:i,pad:l,dimRoundingMode:u}=t,c=N.computePool2DInfo(n.shape,a,i,1,l,u),p=c.filterHeight,m=c.filterWidth,f=c.padInfo.top,d=c.padInfo.right,h=c.padInfo.bottom,g=c.padInfo.left,y=c.dilationHeight,b=c.dilationWidth,w=c.strideHeight,_=c.strideWidth,C=c.inChannels,D=c.outChannels;if(c.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let T=o.makeOutput(c.outShape,"float32"),R=o.dataIdMap.get(T.dataId).id;return rL(s,n.shape[0],n.shape[1],n.shape[2],p,m,f,d,h,g,y,b,w,_,C,D,R),T}var oL={kernelName:fn,backendName:"wasm",setupFunc:q9,kernelFunc:K9};var nL;function X9(r){nL=r.wasm.cwrap(dn,null,["number, number, number"])}function Y9(r){let{backend:e,inputs:t,attrs:o}=r,{axis:n,keepDims:s}=o,{x:a}=t,i=e.dataIdMap.get(a.dataId).id,l=i,u=a,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=os(a,n,e),d=p;if(f){let _=e.dataIdMap.get(c.dataId).id;_!==i&&(u=c,l=_,d=N.getInnerMostAxes(d.length,u.shape.length))}N.assertAxesAreInnerMostDims("mean",d,u.shape.length);let[h,g]=N.computeOutAndReduceShapes(u.shape,d),y=x.sizeFromShape(g),b=u;u.dtype!=="float32"&&(b=pc({backend:e,inputs:{x:u},attrs:{dtype:"float32"}}),l=e.dataIdMap.get(b.dataId).id);let w=e.makeOutput(h,"float32");if(x.sizeFromShape(u.shape)!==0){let _=e.dataIdMap.get(w.dataId).id;nL(l,y,_)}if(f&&e.disposeData(c.dataId),s){let _=N.expandShapeToKeepDim(w.shape,m);w.shape=_}return u.dtype!=="float32"&&e.disposeData(b.dataId),w}var sL={kernelName:dn,backendName:"wasm",setupFunc:X9,kernelFunc:Y9};var iL;function Z9(r){iL=r.wasm.cwrap(hn,null,["number, number, number"])}function J9(r){let{backend:e,inputs:t,attrs:o}=r,{axis:n,keepDims:s}=o,{x:a}=t,i=e.dataIdMap.get(a.dataId).id,l=i,u=a,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=os(a,n,e);if(f){let w=e.dataIdMap.get(c.dataId).id;w!==i&&(u=c,l=w)}let d=u.shape.length;N.assertAxesAreInnerMostDims("min",p,d);let[h,g]=N.computeOutAndReduceShapes(u.shape,p),y=x.sizeFromShape(g),b=e.makeOutput(h,u.dtype);if(x.sizeFromShape(u.shape)!==0){let w=e.dataIdMap.get(b.dataId).id;iL(l,y,w)}if(f&&e.disposeData(c.dataId),s){let w=N.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var aL={kernelName:hn,backendName:"wasm",setupFunc:Z9,kernelFunc:J9};var Q9=!1,lL=bt(gn,Q9);var eQ=!0,uL=bt(xn,eQ);var cL=St(ps);function Kp(r,e){let t=new Int32Array(r.wasm.HEAPU8.buffer,e,4),o=t[0],n=t[1],s=t[2],a=t[3];return r.wasm._free(e),{pSelectedIndices:o,selectedSize:n,pSelectedScores:s,pValidOutputs:a}}var pL;function tQ(r){pL=r.wasm.cwrap(xi,"number",["number","number","number","number","number"])}function rQ(r){let{backend:e,inputs:t,attrs:o}=r,{iouThreshold:n,maxOutputSize:s,scoreThreshold:a}=o,{boxes:i,scores:l}=t,u=e.dataIdMap.get(i.dataId).id,c=e.dataIdMap.get(l.dataId).id,p=pL(u,c,s,n,a),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Kp(e,p);return e.wasm._free(d),e.wasm._free(h),e.makeOutput([f],"int32",m)}var mL={kernelName:xi,backendName:"wasm",setupFunc:tQ,kernelFunc:rQ};var fL;function oQ(r){fL=r.wasm.cwrap(yi,"number",["number","number","number","number","number","bool"])}function nQ(r){let{backend:e,inputs:t,attrs:o}=r,{iouThreshold:n,maxOutputSize:s,scoreThreshold:a,padToMaxOutputSize:i}=o,{boxes:l,scores:u}=t,c=e.dataIdMap.get(l.dataId).id,p=e.dataIdMap.get(u.dataId).id,m=fL(c,p,s,n,a,i),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Kp(e,m);e.wasm._free(h);let y=e.makeOutput([d],"int32",f),b=e.makeOutput([],"int32",g);return[y,b]}var dL={kernelName:yi,backendName:"wasm",setupFunc:oQ,kernelFunc:nQ};var hL;function sQ(r){hL=r.wasm.cwrap(bi,"number",["number","number","number","number","number","number"])}function iQ(r){let{backend:e,inputs:t,attrs:o}=r,{iouThreshold:n,maxOutputSize:s,scoreThreshold:a,softNmsSigma:i}=o,{boxes:l,scores:u}=t,c=e.dataIdMap.get(l.dataId).id,p=e.dataIdMap.get(u.dataId).id,m=hL(c,p,s,n,a,i),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Kp(e,m);e.wasm._free(g);let y=e.makeOutput([d],"int32",f),b=e.makeOutput([d],"float32",h);return[y,b]}var gL={kernelName:bi,backendName:"wasm",setupFunc:sQ,kernelFunc:iQ};var aQ=!1,xL=bt(gi,aQ,"bool");var yL;function lQ(r){yL=r.wasm.cwrap(yn,null,["number","number","number","number","number"])}function uQ(r){let{inputs:e,backend:t,attrs:o}=r,{indices:n}=e,{depth:s,onValue:a,offValue:i}=o,l=t.makeOutput([...n.shape,s],"int32"),u=t.dataIdMap.get(l.dataId).id,p=t.dataIdMap.get(n.dataId).id;return yL(p,s,a,i,u),l}var bL={kernelName:yn,backendName:"wasm",setupFunc:lQ,kernelFunc:uQ};function cQ(r){let{inputs:{x:e},backend:t}=r,o=t.makeOutput(e.shape,e.dtype);return t.typedArrayFromHeap(o).fill(1),o}var wL={kernelName:ms,backendName:"wasm",kernelFunc:cQ};function pQ(r){let{inputs:e,backend:t,attrs:o}=r,{axis:n}=o;if(e.length===1)return Ux({inputs:{input:e[0]},backend:t,attrs:{dim:n}});let s=e[0].shape,a=e[0].dtype;e.forEach(c=>{x.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),x.assert(a===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let i=[],l=e.map(c=>{let p=Ux({inputs:{input:c},backend:t,attrs:{dim:n}});return i.push(p),p}),u=KC({inputs:l,backend:t,attrs:{axis:n}});return i.forEach(c=>t.disposeData(c.dataId)),u}var _L={kernelName:fs,backendName:"wasm",kernelFunc:pQ};var kL;function mQ(r){kL=r.wasm.cwrap(bn,null,["number","array","number","number","array","array","number","number"])}function fQ(r){let{inputs:{x:e},backend:t,attrs:{paddings:o,constantValue:n}}=r,s=o.map((d,h)=>d[0]+e.shape[h]+d[1]),a=t.dataIdMap.get(e.dataId).id,i=t.makeOutput(s,e.dtype),l=t.dataIdMap.get(i.dataId).id,u=new Uint8Array(new Int32Array(e.shape).buffer),c=o.map(d=>d[0]),p=o.map(d=>d[1]),m=new Uint8Array(new Int32Array(c).buffer),f=new Uint8Array(new Int32Array(p).buffer);return kL(a,u,e.shape.length,Lt[e.dtype],m,f,n,l),i}var vL={kernelName:bn,backendName:"wasm",kernelFunc:fQ,setupFunc:mQ};var dQ=!1,CL=bt(wn,dQ);var IL;function hQ(r){IL=r.wasm.cwrap(_n,null,["number","number","number"])}function gQ(r){let{inputs:e,backend:t}=r,{x:o,alpha:n}=e,s=t.dataIdMap.get(o.dataId).id,a=t.dataIdMap.get(n.dataId).id,i=t.makeOutput(o.shape,"float32"),l=t.dataIdMap.get(i.dataId).id;return IL(s,a,l),i}var NL={kernelName:_n,backendName:"wasm",setupFunc:hQ,kernelFunc:gQ};var SL;function xQ(r){SL=r.wasm.cwrap(wi,null,["number","number","number","number"])}function yQ(r){let{backend:e,inputs:t,attrs:o}=r,{axis:n,keepDims:s}=o,{x:a}=t,i=e.dataIdMap.get(a.dataId).id,l=i,u=a,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=os(a,n,e),d=p;if(f){let w=e.dataIdMap.get(c.dataId).id;w!==i&&(u=c,l=w,d=N.getInnerMostAxes(d.length,u.shape.length))}N.assertAxesAreInnerMostDims("prod",d,u.shape.length);let[h,g]=N.computeOutAndReduceShapes(u.shape,d),y=x.sizeFromShape(g),b=e.makeOutput(h,u.dtype);if(x.sizeFromShape(u.shape)!==0){let w=e.dataIdMap.get(b.dataId).id;SL(l,y,Lt[b.dtype],w)}if(f&&e.disposeData(c.dataId),s){let w=N.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var TL={kernelName:wi,backendName:"wasm",setupFunc:xQ,kernelFunc:yQ};var bQ=r=>{let{backend:e,attrs:t}=r,{start:o,stop:n,step:s,dtype:a}=t,i=Vd(o,n,s,a),l=e.makeOutput([i.length],a);return e.typedArrayFromHeap(l).set(i),l},AL={kernelName:ca,backendName:"wasm",kernelFunc:bQ};var wQ=!0,EL=bt(rn,wQ);var DL=St(kn);var $L=St(Cn);var RL;function _Q(r){RL=r.wasm.cwrap(vn,null,["number","number","number","number","number","number","number","number","number","number"])}function kQ(r){let{backend:e,inputs:t,attrs:o}=r,{images:n}=t,{alignCorners:s,halfPixelCenters:a,size:i}=o,[l,u]=i,[c,p,m,f]=n.shape,d=[c,l,u,f],h=e.dataIdMap.get(n.dataId),g;h.dtype!=="float32"&&(g=pc({backend:e,inputs:{x:n},attrs:{dtype:"float32"}}),h=e.dataIdMap.get(g.dataId));let y=h.id,b=e.makeOutput(d,"float32");if(x.sizeFromShape(n.shape)===0)return b;let w=e.dataIdMap.get(b.dataId).id;return RL(y,c,p,m,f,l,u,s?1:0,a?1:0,w),g!=null&&e.disposeData(g.dataId),b}var FL={kernelName:vn,backendName:"wasm",setupFunc:_Q,kernelFunc:kQ};var OL;function vQ(r){OL=r.wasm.cwrap(In,null,["number","array","number","array","number","number"])}function CQ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{dims:s}=o,a=x.parseAxisParam(s,n.shape);if(n.shape.length===0)return cc({inputs:{x:n},backend:t});let i=t.makeOutput(n.shape,n.dtype),l=t.dataIdMap.get(n.dataId).id,u=t.dataIdMap.get(i.dataId).id,c=new Uint8Array(new Int32Array(a).buffer),p=new Uint8Array(new Int32Array(n.shape).buffer);OL(l,c,a.length,p,n.shape.length,u);let m=Br({inputs:{x:i},attrs:{shape:n.shape},backend:t});return t.disposeData(i.dataId),m}var PL={kernelName:In,backendName:"wasm",kernelFunc:CQ,setupFunc:vQ};var ML;function IQ(r){ML=r.wasm.cwrap(Ei,null,["number","number","number","number","number","number","number","number","array","number","number"])}function NQ(r){let{inputs:e,backend:t,attrs:o}=r,{image:n}=e,{radians:s,fillValue:a,center:i}=o,l=t.makeOutput(n.shape,n.dtype),u=t.dataIdMap.get(n.dataId).id,c=t.dataIdMap.get(l.dataId).id,[p,m,f,d]=n.shape,[h,g]=N.getImageCenter(i,m,f),y=a===0,b=255,w=typeof a=="number"?[a,a,a,y?0:b]:[...a,b],_=new Uint8Array(new Int32Array(w).buffer);return ML(u,p,m,f,d,s,h,g,_,w.length,c),l}var LL={kernelName:Ei,backendName:"wasm",kernelFunc:NQ,setupFunc:IQ};var zL=St(Nn);var BL=St(Sn);var VL;function SQ(r){VL=r.wasm.cwrap(ki,null,["number","number","number","number","number","number","array","number","number"])}function TQ(r){let{backend:e,inputs:t,attrs:o}=r,{indices:n,updates:s}=t,{shape:a}=o,i=e.makeOutput(a,s.dtype);if(x.sizeFromShape(a)===0)return i;let{sliceRank:l,numUpdates:u,sliceSize:c,strides:p,outputSize:m}=Hh.calculateShapes(s,n,a),d=e.dataIdMap.get(n.dataId).id,g=e.dataIdMap.get(s.dataId).id,y=new Uint8Array(new Int32Array(p).buffer),b=e.dataIdMap.get(i.dataId).id;return VL(d,g,Lt[s.dtype],l,u,c,y,m,b),i}var GL={kernelName:ki,backendName:"wasm",setupFunc:SQ,kernelFunc:TQ};var WL;function AQ(r){WL=r.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function EQ(r){let{inputs:e,backend:t}=r,{condition:o,t:n,e:s}=e,a=t.dataIdMap.get(o.dataId).id,i=t.dataIdMap.get(n.dataId).id,l=t.dataIdMap.get(s.dataId).id,u=t.makeOutput(n.shape,n.dtype),c=t.dataIdMap.get(u.dataId).id,p=o.shape.length,m=n.shape.length,f=p===0||p>1||m===1?1:x.sizeFromShape(n.shape.slice(1));return WL(a,i,l,f,c),u}var UL={kernelName:hs,backendName:"wasm",kernelFunc:EQ,setupFunc:AQ};var jL;function DQ(r){jL=r.wasm.cwrap(An,null,["number","number"])}function $Q(r){let{backend:e,inputs:{x:t}}=r,o=e.dataIdMap.get(t.dataId).id,n=e.makeOutput(t.shape,t.dtype),s=e.dataIdMap.get(n.dataId).id;return x.sizeFromShape(n.shape)===0||jL(o,s),n}var HL={kernelName:"Sigmoid",backendName:"wasm",setupFunc:DQ,kernelFunc:$Q};var qL=St(Tn);function mc(r){let{inputs:{x:e},attrs:{begin:t,size:o},backend:n}=r,[s,a]=nr.parseSliceParams(e,t,o),i=nr.isSliceContinous(e.shape,s,a),l=n.readSync(e.dataId),u=n.makeOutput(a,e.dtype),c=x.computeStrides(e.shape),p=n.dataIdMap.get(u.dataId);if(i){let d=nr.computeFlatOffset(s,c);return e.dtype==="string"?p.stringBytes=l.slice(d,d+x.sizeFromShape(a)):n.typedArrayFromHeap(u).set(l.subarray(d,d+x.sizeFromShape(a))),u}if(e.dtype==="string"){let d=Gd(l,s,a,e.shape,e.dtype);return p.stringBytes=d,u}let m=n.typedArrayFromHeap(u),f=e.shape.length;if(f===2)RQ(l,c[0],m,s,a);else if(f===3)FQ(l,c[0],c[1],m,s,a);else if(f===4)OQ(l,c[0],c[1],c[2],m,s,a);else{let d=Gd(l,s,a,e.shape,e.dtype);m.set(d)}return u}function RQ(r,e,t,o,n){let s=0,a=o[0],i=o[1],l=a+n[0];for(let u=a;u{let m=[...c];m[i]=p;let f=mc({inputs:{x:n},attrs:{begin:u,size:m},backend:o});return u[i]+=p,f})}var ZL={kernelName:xs,backendName:"wasm",kernelFunc:LQ};var JL=St(En);var QL=St(fa);var zQ=!0,ez=bt(Rn,zQ);var tz;function BQ(r){tz=r.wasm.cwrap(Fo,null,["number","number","number"])}function VQ(r){let{backend:e,inputs:t,attrs:o}=r,{alpha:n}=o,{x:s}=t,a=e.dataIdMap.get(s.dataId).id,i=e.makeOutput(s.shape,s.dtype),l=e.dataIdMap.get(i.dataId).id;return tz(a,n,l),i}var rz={kernelName:Fo,backendName:"wasm",setupFunc:BQ,kernelFunc:VQ};var oz;function GQ(r){oz=r.wasm.cwrap(Si,null,["number","array","number","array","array","array","array","array","number","number"])}function WQ(r){let{backend:e,inputs:t,attrs:o}=r,{x:n}=t,{begin:s,end:a,strides:i}=o;i==null&&(i=new Array(s.length));let{beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=o,f=N.slice_util.maskToAxes(c);if(f.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(c!==0&&p!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(c!==0&&m!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let d=n.shape.length-s.length,h=N.slice_util.maskToAxes(p),g=n.shape.slice();h.forEach(G=>{s[G]=0,a[G]=1,g.splice(G,0,1)});let y=Br({inputs:{x:n},attrs:{shape:g},backend:e}),{begin:b,end:w,strides:_}=N.slice_util.getNormalizedAxes(y.shape,f,d,s,a,i,l,u,c);s=b,a=w,i=_;let C=N.slice_util.maskToAxes(m);C.forEach(G=>{a[G]=s[G]+1,i[G]=1});let D=N.slice_util.computeOutShape(s,a,i),T=D.filter((G,U)=>C.indexOf(U)===-1);if(i.every(G=>G===1)){let G=mc({inputs:{x:n},attrs:{begin:s,size:D},backend:e});e.disposeData(y.dataId);let U=Br({inputs:{x:G},attrs:{shape:T},backend:e});return e.disposeData(G.dataId),U}let P=e.makeOutput(T,"float32");if(!T.some(G=>G===0)){let G=e.dataIdMap.get(y.dataId).id,U=new Uint8Array(new Int32Array(x.computeStrides(y.shape)).buffer),j=new Uint8Array(new Int32Array(s).buffer),H=new Uint8Array(new Int32Array(a).buffer),K=new Uint8Array(new Int32Array(i).buffer),X=new Uint8Array(new Int32Array(T).buffer),oe=new Uint8Array(new Int32Array(x.computeStrides(T)).buffer),Y=e.dataIdMap.get(P.dataId).id;oz(G,U,y.shape.length,j,H,K,X,oe,T.length,Y)}e.disposeData(y.dataId);let B=Br({inputs:{x:P},attrs:{shape:T},backend:e});return e.disposeData(P.dataId),B}var nz={kernelName:Si,backendName:"wasm",setupFunc:GQ,kernelFunc:WQ};var UQ=!0,sz=bt(Fn,UQ);var iz;function jQ(r){iz=r.wasm.cwrap(Dn,null,["number, number, number"])}function HQ(r){let{backend:e,inputs:t,attrs:o}=r,{axis:n,keepDims:s}=o,{x:a}=t,i=e.dataIdMap.get(a.dataId).id,l=i,u=a,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=os(a,n,e),d=p;if(f){let w=e.dataIdMap.get(c.dataId).id;w!==i&&(u=c,l=w,d=N.getInnerMostAxes(d.length,u.shape.length))}N.assertAxesAreInnerMostDims("sum",d,u.shape.length);let[h,g]=N.computeOutAndReduceShapes(u.shape,d),y=x.sizeFromShape(g),b=e.makeOutput(h,u.dtype);if(x.sizeFromShape(u.shape)!==0){let w=e.dataIdMap.get(b.dataId).id;iz(l,y,w)}if(f&&e.disposeData(c.dataId),s){let w=N.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var az={kernelName:Dn,backendName:"wasm",setupFunc:jQ,kernelFunc:HQ};var lz=St(On);var uz;function qQ(r){uz=r.wasm.cwrap(_o,null,["number","array","number","array","number","number"])}function KQ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,s=t.dataIdMap.get(n.dataId).id,{reps:a}=o,i=new Array(n.shape.length);for(let m=0;m{let{x:o}=r,{k:n,sorted:s}=t,a=e.dataIdMap.get(o.dataId).id,i=new Uint8Array(new Int32Array(o.shape).buffer),l=o.shape.slice();l[l.length-1]=n;let u=e.makeOutput(l,o.dtype),c=e.dataIdMap.get(u.dataId).id,p=e.makeOutput(l,"int32"),m=e.dataIdMap.get(p.dataId).id;return pz(a,i,o.shape.length,Lt[o.dtype],n,s,c,m),[u,p]},mz={kernelName:Ai,backendName:"wasm",setupFunc:XQ,kernelFunc:YQ};function ZQ(r){let{inputs:e,backend:t,attrs:o}=r,{value:n}=e,{axis:s}=o;s<0&&(s+=n.shape.length);let a=n.shape[s],i=n.shape.length,l=new Array(i-1),u=0;for(let f=0;f({dataId:f,dtype:d,shape:l}))}var fz={kernelName:ys,backendName:"wasm",kernelFunc:ZQ};function JQ(r){let{inputs:{x:e},backend:t}=r,o=t.makeOutput(e.shape,e.dtype);return t.typedArrayFromHeap(o).fill(0),o}var dz={kernelName:bs,backendName:"wasm",kernelFunc:JQ};var QQ=[XP,YP,JP,oM,sM,lM,uM,cM,mM,fM,hM,xM,yM,wM,kM,CM,NM,SM,TM,AM,EM,$M,RM,FM,KP,PM,LM,BM,GM,UM,jM,HM,QP,KM,XM,YM,ZM,JM,eL,tL,oL,sL,aL,lL,uL,cL,mL,dL,gL,xL,bL,wL,_L,vL,CL,NL,TL,AL,EL,DL,$L,iM,FL,PL,LL,BL,zL,GL,UL,HL,qL,KL,YL,ZL,JL,QL,ez,rz,nz,sz,az,lz,cz,mz,tM,fz,dz];for(let r of QQ)Ja(r);var YC=W();YC.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11])));YC.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(YC.get("IS_NODE"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(r){return!1}});var tI=Ic(xz());var yz='var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);Module["wasmModule"]=null;receiveInstance(instance);return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance;moduleLoaded()})}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["_emscripten_tls_init"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].setThreadStatus(Module["_pthread_self"](),1);try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(!Module["getNoExitRuntime"]())Module["PThread"].threadExit(result)}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["getNoExitRuntime"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}}';var wz=Ic(bz());var qx=class extends Gs{constructor(e){super();this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new Xa(this,Po())}write(e,t,o){let n={id:this.dataIdNextNumber++};return this.move(n,e,t,o,1),n}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=x.now();return e(),{kernelMs:x.now()-t}}move(e,t,o,n,s){let a=this.dataIdNextNumber++;if(n==="string"){let c=t;this.dataIdMap.set(e,{id:a,stringBytes:c,shape:o,dtype:n,memoryOffset:null,refCount:s});return}let i=x.sizeFromShape(o),l=i*x.bytesPerElement(n),u=this.wasm._malloc(l);this.dataIdMap.set(e,{id:a,memoryOffset:u,shape:o,dtype:n,refCount:s}),this.wasm.tfjs.registerTensor(a,i,u),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,l),u)}async read(e){return this.readSync(e)}readSync(e){let{memoryOffset:t,dtype:o,shape:n,stringBytes:s}=this.dataIdMap.get(e);if(o==="string")return s;let a=this.wasm.HEAPU8.slice(t,t+x.sizeFromShape(n)*x.bytesPerElement(o));return eee(a.buffer,o)}disposeData(e,t=!1){if(this.dataIdMap.has(e)){let o=this.dataIdMap.get(e);if(o.refCount--,!t&&o.refCount>0)return!1;this.wasm._free(o.memoryOffset),this.wasm.tfjs.disposeData(o.id),this.dataIdMap.delete(e)}return!0}refCount(e){return this.dataIdMap.has(e)?this.dataIdMap.get(e).refCount:0}incRef(e){let t=this.dataIdMap.get(e);t!=null&&t.refCount++}floatPrecision(){return 32}getMemoryOffset(e){return this.dataIdMap.get(e).memoryOffset}dispose(){this.wasm.tfjs.dispose(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,o){let n;if(o==null)n=this.write(null,e,t);else{let s=this.dataIdNextNumber++;n={id:s},this.dataIdMap.set(n,{id:s,memoryOffset:o,shape:e,dtype:t,refCount:1});let a=x.sizeFromShape(e);this.wasm.tfjs.registerTensor(s,a,o)}return{dataId:n,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:o}){let n=this.wasm.HEAPU8.buffer,{memoryOffset:s}=this.dataIdMap.get(o),a=x.sizeFromShape(e);switch(t){case"float32":return new Float32Array(n,s,a);case"int32":return new Int32Array(n,s,a);case"bool":return new Uint8Array(n,s,a);default:throw new Error(`Unknown dtype ${t}`)}}};function tee(r){return(e,t)=>(x.fetch(r,{credentials:"same-origin"}).then(o=>{o.ok||e.env.a(`failed to load wasm binary file at '${r}'`),o.arrayBuffer().then(n=>{WebAssembly.instantiate(n,e).then(s=>{t(s.instance)})})}),{})}function _z(r,e,t){if(Kx!=null)return Kx;let o="tfjs-backend-wasm.wasm";return r&&e?o="tfjs-backend-wasm-threaded-simd.wasm":r&&(o="tfjs-backend-wasm-simd.wasm"),lh!=null&&lh[o]!=null?lh[o]:t+o}async function kz(){let[r,e]=await Promise.all([W().getAsync("WASM_HAS_SIMD_SUPPORT"),W().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((t,o)=>{let n={};n.locateFile=(i,l)=>{if(i.endsWith(".worker.js")){let u=yz,c=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(c)}return i.endsWith(".wasm")?_z(r,e,uh!=null?uh:l):l+i},rI&&(n.instantiateWasm=tee(_z(r,e,uh!=null?uh:"")));let s=!1;n.onAbort=()=>{if(s||ch)return;ch=!0,o({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"})};let a;e&&r&&Kx==null?(n.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+tI.default.toString()],{type:"text/javascript"}),a=(0,tI.default)(n)):a=(0,wz.default)(n),a.then(i=>{s=!0,ch=!1;let l=null;i.tfjs={init:i.cwrap("init",null,[]),registerTensor:i.cwrap("register_tensor",null,["number","number","number"]),disposeData:i.cwrap("dispose_data",l,["number"]),dispose:i.cwrap("dispose",l,[])},t({wasm:i})})})}function eee(r,e){switch(e){case"float32":return new Float32Array(r);case"int32":return new Int32Array(r);case"bool":return new Uint8Array(r);default:throw new Error(`Unknown dtype ${e}`)}}var ree=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],Kx=null,uh=null,lh={},ch=!1,rI=!1;function oee(r,e=!1){if(Yh("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),ch)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");Kx=r,rI=e}function nee(r,e=!1){if(ch)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof r=="string")uh=r;else{lh=r;let t=ree.filter(o=>lh[o]==null);if(t.length>0)throw new Error(`There were no entries found for the following binaries: ${t.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}rI=e}var see="3.2.0";var iee=2;hu("wasm",async()=>{let{wasm:r}=await kz();return new qx(r)},iee);export{as as Abs,js as Acos,Hs as Acosh,Qc as AdadeltaOptimizer,ep as AdagradOptimizer,tp as AdamOptimizer,rp as AdamaxOptimizer,wo as Add,Ho as AddN,Ml as All,Ll as Any,qo as ArgMax,ea as ArgMin,qs as Asin,Ks as Asinh,Xs as Atan,Zs as Atan2,Ys as Atanh,Ko as AvgPool,ta as AvgPool3D,Bl as AvgPool3DGrad,zl as AvgPoolGrad,qx as BackendWasm,Xo as BatchMatMul,ra as BatchToSpaceND,Vl as Bincount,yb as BroadcastTo,Ug as Callback,Ng as CallbackList,Do as Cast,Yo as Ceil,$o as ClipByValue,Gl as Complex,oa as ComplexAbs,ls as Concat,Zo as Conv2D,Wl as Conv2DBackpropFilter,Jo as Conv2DBackpropInput,na as Conv3D,Ul as Conv3DBackpropFilterV2,jl as Conv3DBackpropInputV2,Qo as Cos,Js as Cosh,Qs as CropAndResize,en as Cumsum,Tg as CustomCallback,Xa as DataStorage,Hl as DenseBincount,ei as DepthToSpace,tn as DepthwiseConv2dNative,ql as DepthwiseConv2dNativeBackpropFilter,Kl as DepthwiseConv2dNativeBackpropInput,Xl as Diag,sa as Dilation2D,Dc as Dilation2DBackpropFilter,Ec as Dilation2DBackpropInput,hb as ENV,Hg as EarlyStopping,ti as Elu,Yl as EluGrad,Fh as Environment,oi as Equal,ri as Erf,on as Exp,us as ExpandDims,ni as Expm1,Zl as FFT,ia as Fill,si as FlipLeftRight,nn as Floor,sn as FloorDiv,$c as FromPixels,an as FusedBatchNorm,_s as FusedConv2D,ks as FusedDepthwiseConv2D,ii as GatherNd,cs as GatherV2,lx as GraphModel,ai as Greater,ln as GreaterEqual,Sg as History,Jl as IFFT,Ro as Identity,Ql as Imag,Nt as InputSpec,li as IsFinite,ui as IsInf,ci as IsNan,Gs as KernelBackend,aa as LRN,tu as LRNGrad,gf as LayerVariable,No as LayersModel,un as LeakyRelu,pi as Less,mi as LessEqual,eu as LinSpace,cn as Log,fi as Log1p,bb as LogSoftmax,di as LogicalAnd,Ya as LogicalNot,Za as LogicalOr,pn as Max,fn as MaxPool,la as MaxPool3D,ou as MaxPool3DGrad,ru as MaxPoolGrad,nu as MaxPoolWithArgmax,mn as Maximum,dn as Mean,hn as Min,gn as Minimum,ua as MirrorPad,hi as Mod,op as MomentumOptimizer,su as Multinomial,xn as Multiply,ps as Neg,xi as NonMaxSuppressionV3,yi as NonMaxSuppressionV4,bi as NonMaxSuppressionV5,gi as NotEqual,RI as OP_SCOPE_SUFFIX,yn as OneHot,ms as OnesLike,Or as Optimizer,fs as Pack,bn as PadV2,WB as Pool,wn as Pow,_n as Prelu,wi as Prod,np as RMSPropOptimizer,mo as RNN,ca as Range,Cb as Rank,iu as Real,rn as RealDiv,_i as Reciprocal,Gt as Reduction,kn as Relu,Cn as Relu6,ds as Reshape,vn as ResizeBilinear,lu as ResizeBilinearGrad,pa as ResizeNearestNeighbor,au as ResizeNearestNeighborGrad,In as Reverse,Ei as RotateWithOffset,Nn as Round,Sn as Rsqrt,al as SGDOptimizer,ki as ScatterNd,hs as Select,vi as Selu,Wi as Sequential,An as Sigmoid,Ii as Sign,Tn as Sin,Ci as Sinh,gs as Slice,$n as Softmax,Ni as Softplus,ma as SpaceToBatchND,uu as SparseToDense,xs as SplitV,En as Sqrt,fa as Square,Rn as SquaredDifference,Fo as Step,Si as StridedSlice,Fn as Sub,Dn as Sum,zr as SymbolicTensor,Ti as Tan,On as Tanh,Ve as Tensor,lt as TensorBuffer,_o as Tile,Ai as TopK,Pn as Transpose,cu as Unique,ys as Unpack,da as UnsortedSegmentSum,el as Variable,bs as ZerosLike,ws as _FusedMatMul,It as abs,xm as acos,ym as acosh,Q as add,ew as addN,xu as all,ol as any,nl as argMax,bm as argMin,wm as asin,_m as asinh,km as atan,vm as atan2,Cm as atanh,wa as avgPool,Im as avgPool3d,Qb as backend,N as backend_util,VV as basicLSTMCell,Ln as batchNorm,nw as batchNorm2d,sw as batchNorm3d,iw as batchNorm4d,_a as batchToSpaceND,aw as bincount,XU as booleanMaskAsync,sl as broadcastTo,Uh as browser,ve as buffer,N1 as callbacks,ne as cast,Nm as ceil,sr as clipByValue,Oo as clone,ko as complex,Ye as concat,lw as concat1d,uw as concat2d,cw as concat3d,pw as concat4d,r_ as constraints,wu as conv1d,Kr as conv2d,_u as conv2dTranspose,Sm as conv3d,lG as conv3dTranspose,HB as copyRegisteredKernels,ka as cos,ku as cosh,Jm as cosineWindow,vu as cumsum,Xr as customGrad,Ek as data,mw as denseBincount,Yh as deprecationWarn,Tm as depthToSpace,Cs as depthwiseConv2d,A1 as deregisterOp,Lc as device_util,gG as diag,Am as dilation2d,eV as disableDeprecationWarnings,Te as dispose,tV as disposeVariables,me as div,Em as divNoNan,fw as dot,zw as dropout,Is as elu,Q3 as enableDebugMode,J3 as enableProdMode,Bw as enclosingPowerOfTwo,Po as engine,W as env,vo as equal,Dm as erf,Yt as exp,ir as expandDims,$m as expm1,Hc as eye,Ea as fft,va as fill,aV as findBackend,lV as findBackendFactory,Ns as floor,gu as floorDiv,Gn as fused,zn as gather,Lw as gatherND,jh as gather_util,sV as getBackend,Oh as getGradient,Fc as getKernel,pm as getKernelsForBackend,jG as grad,HG as grads,Qt as greater,io as greaterEqual,Pi as ifft,Cu as imag,Ds as image,n4 as inTopKAsync,a_ as initializers,Gg as input,Cr as io,Pu as irfft,dw as isFinite,hw as isInf,gw as isNaN,Et as keep,Tr as kernel_impls,W_ as layers,Ca as leakyRelu,Iu as less,zo as lessEqual,jw as linalg,xw as linspace,nA as loadGraphModel,f1 as loadLayersModel,Rm as localResponseNormalization,ar as log,Nu as log1p,yw as logSigmoid,Su as logSoftmax,Om as logSumExp,dr as logicalAnd,Ia as logicalNot,Tu as logicalOr,kw as logicalXor,Y4 as losses,We as matMul,cN as math,lr as max,Na as maxPool,Pm as maxPool3d,vw as maxPoolWithArgmax,Yr as maximum,dt as mean,Wc as memory,q_ as metrics,Oi as min,Ts as minimum,Mm as mirrorPad,Lm as mod,p1 as model,K_ as models,qc as moments,JU as movingAverage,O as mul,_W as multiRNNCell,Cw as multinomial,He as neg,Qm as nextFrame,zu as norm,Vn as notEqual,vs as oneHot,Ir as ones,er as onesLike,S as op,NW as outerProduct,Rr as pad,AW as pad1d,DW as pad2d,RW as pad3d,OW as pad4d,Iw as pool,Fr as pow,Ta as prelu,Gb as print,Au as prod,rV as profile,UW as rand,JW as randomGamma,og as randomNormal,As as randomUniform,Xc as range,nV as ready,il as real,Bm as reciprocal,hu as registerBackend,d1 as registerCallbackConstructor,_b as registerGradient,Ja as registerKernel,T1 as registerOp,X_ as regularizers,Nr as relu,Du as relu6,iV as removeBackend,M as reshape,Ht as reverse,aU as reverse1d,uU as reverse2d,pU as reverse3d,fU as reverse4d,Da as rfft,Vm as round,$u as rsqrt,ue as scalar,Mw as scatterND,Hh as scatter_util,Ru as selu,Gm as separableConv2d,m1 as sequential,J as serialization,NN as setBackend,uV as setPlatform,oee as setWasmPath,nee as setWasmPaths,Fw as setdiff1dAsync,qr as sigmoid,Wm as sign,X4 as signal,Fu as sin,Ou as sinh,Re as slice,Um as slice1d,ng as slice2d,jm as slice3d,Yc as slice4d,nr as slice_util,Aa as softmax,Ss as softplus,Sa as spaceToBatchND,Zm as sparseToDense,K4 as spectral,ur as split,gt as sqrt,Oe as square,Mu as squaredDifference,Co as squeeze,Bt as stack,Es as step,Hm as stridedSlice,ce as sub,ge as sum,mu as sumOutType,qm as tan,Fi as tanh,$r as tensor,Vt as tensor1d,Mi as tensor2d,Hb as tensor3d,zU as tensor4d,BU as tensor5d,VU as tensor6d,Mn as tensor_util,vN as test_util,V as tidy,Lo as tile,oV as time,Km as topk,ll as train,je as transpose,Lu as truncatedNormal,Zc as unique,jB as unregisterGradient,UB as unregisterKernel,Xm as unsortedSegmentSum,cr as unstack,fr as upcastType,x as util,qG as valueAndGrad,KG as valueAndGrads,Ow as variable,eg as variableGrads,qJ as version,ux as version_converter,Jb as version_core,dl as version_layers,see as version_wasm,Dt as where,Ym as whereAsync,ht as zeros,Ce as zerosLike}; + `}};function gQ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,segmentIds:s}=e,{numSegments:a}=o,i=n.shape.length,l=[],u=0,c=S.getAxesPermutation([u],i),p=n;c!=null&&(p=Lt({inputs:{x:n},backend:t,attrs:{perm:c}}),l.push(p),u=S.getInnerMostAxes(1,i)[0]);let m=S.segment_util.computeOutShape(p.shape,u,a),f=y.sizeFromShape([p.shape[u]]),d=pe({inputs:{x:p},backend:t,attrs:{shape:[-1,f]}});l.push(d);let h=fu(n.dtype),g=(_,k,A,N,$)=>{let F=_.shape[0],M=_.shape[1],V=S.segment_util.segOpComputeOptimalWindowSize(M,$),W={windowSize:V,inSize:M,batchSize:F,numSegments:$},U=new f0(W,k),H=t.compileAndRun(U,[_,A],N);if(l.push(H),H.shape[1]===$)return H;let q=QC({backend:t,attrs:{start:0,stop:$,step:1,dtype:"float32"}}),X=p0({inputs:{x:q},backend:t,attrs:{reps:[M/V]}});return l.push(q),l.push(X),g(H,k,X,N,$)},x=g(d,"unsortedSegmentSum",s,h,a),w=pe({inputs:{x},backend:t,attrs:{shape:m}}),b=w;if(c!=null){l.push(w);let _=S.getUndoAxesPermutation(c);b=Lt({inputs:{x:b},backend:t,attrs:{perm:_}})}return l.forEach(_=>t.disposeIntermediateTensorInfo(_)),b}var jM={kernelName:da,backendName:"webgl",kernelFunc:gQ};var xQ=[TP,AP,WF,jF,HF,qF,XF,YF,ZF,JF,tO,rO,oO,nO,iO,sO,aO,uO,lO,cO,pO,mO,fO,hO,gO,wO,kO,vO,IO,DF,TO,EO,DO,AO,RO,FO,$O,OO,PO,MO,BO,VO,GO,UO,jO,WO,HO,qO,KO,XO,YO,ZO,QO,eP,rP,oP,nP,sP,aP,lP,uP,cP,pP,mP,fP,dP,hP,EF,gP,NO,xP,yP,bP,$F,wP,_P,kP,CP,vP,IP,NP,SP,DP,FP,RP,OP,PP,LP,$P,BP,VP,GP,WP,UP,XP,MF,ZP,JP,QP,eM,xO,tM,nM,sM,iM,aM,RF,lM,uM,yO,jP,cM,mM,pM,zF,fM,dM,hM,gM,xM,yM,bM,wM,_M,kM,vM,CM,IM,NM,SM,dO,KP,TM,AM,EM,DM,$M,RM,OM,PM,MM,qP,VF,LM,zM,BM,VM,GM,GF,WM,UM,jM,rM];for(let r of xQ)Ja(r);var HM="3.3.0";var yQ={"tfjs-core":nw,"tfjs-backend-cpu":c2,"tfjs-backend-webgl":AF,"tfjs-data":_x,"tfjs-layers":dl,"tfjs-converter":fx,tfjs:HM};var zt;(function(r){r[r.float32=0]="float32",r[r.int32=1]="int32",r[r.bool=2]="bool",r[r.string=3]="string",r[r.complex64=4]="complex64"})(zt||(zt={}));var El;(function(r){r[r.linear=0]="linear",r[r.relu=1]="relu",r[r.relu6=2]="relu6",r[r.prelu=3]="prelu",r[r.leakyrelu=4]="leakyrelu"})(El||(El={}));var qM;function bQ(r){qM=r.wasm.cwrap(ws,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function wQ(r){let{inputs:e,backend:t,attrs:o}=r,{a:n,b:s,bias:a,preluActivationWeights:i}=e;if(n.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:u,activation:c,leakyreluAlpha:p}=o,m=t.dataIdMap.get(n.dataId).id,f=t.dataIdMap.get(s.dataId).id,d=0;if(a!=null){let $=t.dataIdMap.get(a.dataId);if($.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${$.shape.length}.`);d=$.id}let h=i==null?0:t.dataIdMap.get(i.dataId).id,g=El[c];if(g==null)throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);let x=l?n.shape[2]:n.shape[1],w=u?s.shape[1]:s.shape[2],b=n.shape[0],_=t.makeOutput([b,x,w],n.dtype),k=t.dataIdMap.get(_.dataId).id,A=new Uint8Array(new Int32Array(n.shape).buffer),N=new Uint8Array(new Int32Array(s.shape).buffer);return qM(m,A,n.shape.length,f,N,s.shape.length,l,u,g,d,h,p||0,k),_}var KM={kernelName:ws,backendName:"wasm",setupFunc:bQ,kernelFunc:wQ};function Tt(r){let e;function t(n){e=n.wasm.cwrap(r,null,["number","number"])}function o(n){let{backend:s,inputs:{x:a}}=n,i=s.dataIdMap.get(a.dataId).id,l=s.makeOutput(a.shape,a.dtype),u=s.dataIdMap.get(l.dataId).id;return y.sizeFromShape(l.shape)===0||e(i,u),l}return{kernelName:r,backendName:"wasm",setupFunc:t,kernelFunc:o}}var XM=Tt(as);function wt(r,e,t){let o;function n(a){o=a.wasm.cwrap(r,null,["number","array","number","number","array","number","number","number"])}function s(a){let{backend:i,inputs:l}=a,{a:u,b:c}=l,p=i.dataIdMap.get(u.dataId).id,m=i.dataIdMap.get(c.dataId).id,f=t!=null?t:u.dtype,d=S.assertAndGetBroadcastShape(u.shape,c.shape),h=i.makeOutput(d,f);if(y.sizeFromShape(d)===0)return h;let g=new Uint8Array(new Int32Array(u.shape).buffer),x=new Uint8Array(new Int32Array(c.shape).buffer),w=i.dataIdMap.get(h.dataId).id,b=()=>o(p,g,u.shape.length,m,x,c.shape.length,zt[u.dtype],w);if(e&&u.dtype==="float32")return b(),h;let _=S.getBroadcastDims(u.shape,d),k=S.getBroadcastDims(c.shape,d),A=_.every(($,F)=>$===F),N=k.every(($,F)=>$===F);if(A&&N)return b(),h;throw new Error(`Broadcasting along outer dims is not yet supported for ${u.dtype} ${r}.`)}return{kernelName:r,backendName:"wasm",setupFunc:n,kernelFunc:s}}var _Q=!0,YM=wt(wo,_Q);var ZM;function kQ(r){ZM=r.wasm.cwrap(Ho,null,["array","number","number","number"])}function vQ(r){let{inputs:e,backend:t}=r,o=t.makeOutput(e[0].shape,e[0].dtype);if(y.sizeFromShape(o.shape)===0)return o;let n=e.map(i=>t.dataIdMap.get(i.dataId).id),s=new Uint8Array(new Int32Array(n).buffer),a=t.dataIdMap.get(o.dataId).id;return ZM(s,n.length,zt[o.dtype],a),o}var JM={kernelName:Ho,backendName:"wasm",setupFunc:kQ,kernelFunc:vQ};function dc(r){let{inputs:{x:e},backend:t}=r,o=t.makeOutput(e.shape,e.dtype),n=t.typedArrayFromHeap(e);return t.typedArrayFromHeap(o).set(n),o}var QM={kernelName:Ro,backendName:"wasm",kernelFunc:dc};var eL;function CQ(r){eL=r.wasm.cwrap(Pn,null,["number","array","number","number","number","array","number"])}function Yp(r){let{inputs:e,backend:t,attrs:o}=r,[n,s]=NQ(e.x.shape,o.perm),a=!0;for(let d=0;d=n&&(s===-1||o[s]>o[a])&&(s=a);o[s]=n}return[t,o]}var tL={kernelName:Pn,backendName:"wasm",kernelFunc:Yp,setupFunc:CQ};function os(r,e,t){let o=r.shape,n=r.shape.length,s=y.parseAxisParam(e,o),a=s,i=S.getAxesPermutation(a,n),l=null,u=!1;if(i!=null){let c=new Array(n);for(let f=0;f`new shape: ${a}, old shape: ${o.shape}. New shape and old shape must have the same number of elements.`),r.backend.incRef(o.dataId),{dataId:o.dataId,shape:a,dtype:o.dtype}}var iL={kernelName:ds,backendName:"wasm",kernelFunc:Vr};var aL;function DQ(r){aL=r.wasm.cwrap(Xo,null,["number","array","number","number","array","number","number","number","number"])}function $Q(r){let{inputs:e,backend:t,attrs:o}=r,{a:n,b:s}=e,{transposeA:a,transposeB:i}=o;if(n.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=n.shape.length,u=s.shape.length,c=a?n.shape[l-2]:n.shape[l-1],p=i?s.shape[u-1]:s.shape[u-2],m=a?n.shape[l-1]:n.shape[l-2],f=i?s.shape[u-2]:s.shape[u-1],d=n.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=g===x||g===1||x===1;y.assert(l>=2&&u>=2&&w,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${d}) and (${h}).`);let _=(g>x?n.shape.slice(0,-2):s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${n.shape} and ${s.shape} and transposeA=${a} and transposeB=${i} must match.`);let k=a?[g,c,m]:[g,m,c],A=i?[x,f,p]:[x,p,f],N=Vr({inputs:{x:n},backend:t,attrs:{shape:k}}),$=Vr({inputs:{x:s},backend:t,attrs:{shape:A}}),F=t.dataIdMap.get(N.dataId).id,M=t.dataIdMap.get($.dataId).id,V=a?N.shape[2]:N.shape[1],W=i?$.shape[1]:$.shape[2],U=Math.max(g,x),H=t.makeOutput([U,V,W],N.dtype),q=t.dataIdMap.get(H.dataId).id,X=new Uint8Array(new Int32Array(N.shape).buffer),oe=new Uint8Array(new Int32Array($.shape).buffer);return aL(F,X,N.shape.length,M,oe,$.shape.length,a,i,q),t.disposeData(N.dataId),t.disposeData($.dataId),H.shape=_,H}var lL={kernelName:Xo,backendName:"wasm",setupFunc:DQ,kernelFunc:$Q};function hc(r){let{inputs:{x:e},attrs:{dtype:t},backend:o}=r,n=o.makeOutput(e.shape,t),s=o.typedArrayFromHeap(e);return o.typedArrayFromHeap(n).set(s),n}var uL={kernelName:Do,backendName:"wasm",kernelFunc:hc};var cL=Tt(Yo);var pL;function RQ(r){pL=r.wasm.cwrap($o,null,["number","number","number","number"])}function FQ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{clipValueMin:s,clipValueMax:a}=o,i=t.dataIdMap.get(n.dataId).id,l=t.makeOutput(n.shape,n.dtype),u=t.dataIdMap.get(l.dataId).id;return pL(i,s,a,u),l}var mL={kernelName:$o,backendName:"wasm",setupFunc:RQ,kernelFunc:FQ};function d0(r){let{inputs:e,backend:t}=r,o=y.parseAxisParam(r.attrs.axis,e[0].shape)[0],n=S.computeOutShape(e.map(f=>f.shape),o),s=e.filter(f=>y.sizeFromShape(f.shape)>0);if(s.length===1)return dc({inputs:{x:s[0]},backend:t});let a=t.makeOutput(n,e[0].dtype);if(y.sizeFromShape(n)===0)return a;let i=s.map(f=>f.shape);if(S.assertParamsConsistent(i,o),s[0].dtype==="string"){let f=s.map(b=>{let _=y.sizeFromShape(b.shape.slice(o));return Vr({inputs:{x:b},backend:t,attrs:{shape:[-1,_]}})}),d=f.map(b=>({vals:t.readSync(b.dataId),shape:b.shape}));n=S.computeOutShape(f.map(b=>b.shape),1);let h=f[0].shape[0]===1,g=Bd(d,n,e[0].dtype,h),x=S.computeOutShape(s.map(b=>b.shape),o);a.shape=x;let w=t.dataIdMap.get(a.dataId);return w.stringBytes=S.fromStringArrayToUint8(g),f.forEach(b=>t.disposeData(b.dataId)),a}let l=y.sizeFromShape(s[0].shape.slice(0,o)),u=0,c=s.map(f=>{let d=y.sizeFromShape(f.shape.slice(o));return u+=d,d}),p=s.map(f=>t.typedArrayFromHeap(f)),m=t.typedArrayFromHeap(a);for(let f=0;f`cumsum does not support ${n.dtype} tensors in the WASM backend`);let u=S.getAxesPermutation([s],l),c=n;u!==null&&(c=Yp({inputs:{x:n},attrs:{perm:u},backend:t}));let p=S.getInnerMostAxes(1,l)[0];S.assertAxesAreInnerMostDims("cumsum",[p],l);let m=t.makeOutput(c.shape,c.dtype),f=c.shape[p],d=t.dataIdMap.get(c.dataId).id,h=t.dataIdMap.get(m.dataId).id;_L(d,a?1:0,i?1:0,f,h,zt[n.dtype]);let g=m;if(u!==null){let x=S.getUndoAxesPermutation(u);g=Yp({inputs:{x:m},attrs:{perm:x},backend:t}),t.disposeData(c.dataId),t.disposeData(m.dataId)}return g}var kL={kernelName:en,backendName:"wasm",setupFunc:VQ,kernelFunc:GQ};var vL;function WQ(r){vL=r.wasm.cwrap(ti,null,["number","number","number","array","number","array","array","number","number"])}function UQ(r){let{backend:e,inputs:t,attrs:o}=r,{x:n}=t,{blockSize:s,dataFormat:a}=o;y.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let i=n.shape[0],l=a==="NHWC"?n.shape[1]:n.shape[2],u=a==="NHWC"?n.shape[2]:n.shape[3],c=a==="NHWC"?n.shape[3]:n.shape[1],p=l*s,m=u*s,f=c/(s*s),d=a==="NHWC"?[i,p,m,f]:[i,f,p,m],h=e.makeOutput(d,"float32"),x=e.dataIdMap.get(n.dataId).id,w=new Uint8Array(new Int32Array(y.computeStrides(n.shape)).buffer),b=new Uint8Array(new Int32Array(d).buffer),_=new Uint8Array(new Int32Array(y.computeStrides(d)).buffer),k=e.dataIdMap.get(h.dataId).id;return vL(x,s,a==="NHWC"?1:0,w,n.shape.length-1,b,_,d.length,k),h}var CL={kernelName:ti,backendName:"wasm",setupFunc:WQ,kernelFunc:UQ};var IL;function jQ(r){IL=r.wasm.cwrap(tn,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function HQ(r){let{inputs:e,attrs:t,backend:o}=r,{x:n,filter:s}=e,a=o.dataIdMap.get(n.dataId).id,i=o.dataIdMap.get(s.dataId).id,{strides:l,dilations:u,pad:c,dimRoundingMode:p}=t,m=u==null?[1,1]:u,f=S.computeConv2DInfo(n.shape,s.shape,l,m,c,p,!0),d=f.filterHeight,h=f.filterWidth,g=f.padInfo.top,x=f.padInfo.right,w=f.padInfo.bottom,b=f.padInfo.left,_=f.dilationHeight,k=f.dilationWidth,A=f.strideHeight,N=f.strideWidth,$=f.inChannels,F=f.outChannels,M=f.padInfo.type==="SAME"?1:0;if(f.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${f.dataFormat}'. Please use 'channelsLast'.`);let V=o.makeOutput(f.outShape,"float32"),W=o.dataIdMap.get(V.dataId).id;return IL(a,n.shape[0],n.shape[1],n.shape[2],i,d,h,g,x,w,b,M,_,k,A,N,$,F,W),V}var NL={kernelName:tn,backendName:"wasm",setupFunc:jQ,kernelFunc:HQ};var qQ=!1,SL=wt(ni,qQ,"bool");var TL=Tt(on);function Yx(r){let{inputs:e,attrs:t,backend:o}=r,{input:n}=e,{dim:s}=t,a=n.shape.length,i=n.shape.slice(),l=s;return s<0&&(y.assert(-(a+1)<=s,()=>`Axis must be in the interval [${-(a+1)}, ${a}]`),l=a+s+1),i.splice(l,0,1),Vr({inputs:{x:n},backend:o,attrs:{shape:i}})}var AL={kernelName:us,backendName:"wasm",kernelFunc:Yx};function KQ(r){let{attrs:{shape:e,value:t,dtype:o},backend:n}=r,s=n.makeOutput(e,o);return n.typedArrayFromHeap(s).fill(t),s}var EL={kernelName:ia,backendName:"wasm",kernelFunc:KQ};var DL;function XQ(r){DL=r.wasm.cwrap(ii,null,["number","number","number","number","number","number"])}function YQ(r){let{inputs:e,backend:t}=r,{image:o}=e,n=t.makeOutput(o.shape,o.dtype),s=t.dataIdMap.get(o.dataId).id,a=t.dataIdMap.get(n.dataId).id,[i,l,u,c]=o.shape;return DL(s,i,l,u,c,a),n}var $L={kernelName:ii,backendName:"wasm",kernelFunc:YQ,setupFunc:XQ};var RL=Tt(nn);var ZQ=!1,FL=wt(sn,ZQ);var OL;function JQ(r){OL=r.wasm.cwrap(an,null,["number","number","number","number","number","number","number"])}function QQ(r){let{backend:e,inputs:t,attrs:o}=r,{varianceEpsilon:n}=o,{x:s,mean:a,variance:i,offset:l,scale:u}=t,c=e.dataIdMap.get(s.dataId).id,p=e.dataIdMap.get(a.dataId).id,m=e.dataIdMap.get(i.dataId).id,f=l!=null?e.dataIdMap.get(l.dataId).id:0,d=u!=null?e.dataIdMap.get(u.dataId).id:0,h=e.makeOutput(s.shape,s.dtype);if(y.sizeFromShape(s.shape)===0)return h;let g=e.dataIdMap.get(h.dataId).id;return OL(c,p,m,f,d,n,g),h}var PL={kernelName:an,backendName:"wasm",setupFunc:JQ,kernelFunc:QQ};var ML;function eee(r){ML=r.wasm.cwrap(_s,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function tee(r){let{inputs:e,attrs:t,backend:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=t,h=S.computeConv2DInfo(n.shape,s.shape,l,c,u,m),g=El[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedConv2D in the wasm backend.`);let x=o.dataIdMap.get(n.dataId).id,w=o.dataIdMap.get(s.dataId).id,b=h.outChannels,_=0;if(a!=null){let ae=o.dataIdMap.get(a.dataId);if(ae.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ae.shape.length}.`);if(ae.shape[0]!==b)throw new Error(`FusedConv2D bias shape (${ae.shape}) does not match the number of output channels (${b})`);_=ae.id}let k=h.filterHeight,A=h.filterWidth,N=h.padInfo.top,$=h.padInfo.right,F=h.padInfo.bottom,M=h.padInfo.left,V=h.dilationHeight,W=h.dilationWidth,U=h.strideHeight,H=h.strideWidth,q=h.inChannels,X=h.padInfo.type==="SAME"?1:0,oe=h.batchSize,Y=h.inHeight,re=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let J=o.makeOutput(h.outShape,"float32"),ie=o.dataIdMap.get(J.dataId).id,ue=i==null?0:o.dataIdMap.get(i.dataId).id;return ML(x,oe,Y,re,w,k,A,_,N,$,F,M,X,V,W,U,H,q,b,g,ue,d||0,ie),J}var LL={kernelName:_s,backendName:"wasm",setupFunc:eee,kernelFunc:tee};var zL;function ree(r){zL=r.wasm.cwrap(ks,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function oee(r){let{inputs:e,attrs:t,backend:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=t,h=S.computeConv2DInfo(n.shape,s.shape,l,c,u,m,!0),g=El[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let x=o.dataIdMap.get(n.dataId).id,w=o.dataIdMap.get(s.dataId).id,b=h.outChannels,_=0;if(a!=null){let ae=o.dataIdMap.get(a.dataId);if(ae.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ae.shape.length}.`);if(ae.shape[0]!==b)throw new Error(`FusedDepthwiseConv2D bias shape (${ae.shape}) does not match the number of output channels (${b})`);_=ae.id}let k=h.filterHeight,A=h.filterWidth,N=h.padInfo.top,$=h.padInfo.right,F=h.padInfo.bottom,M=h.padInfo.left,V=h.dilationHeight,W=h.dilationWidth,U=h.strideHeight,H=h.strideWidth,q=h.inChannels,X=h.padInfo.type==="SAME"?1:0,oe=h.batchSize,Y=h.inHeight,re=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let J=o.makeOutput(h.outShape,"float32"),ie=o.dataIdMap.get(J.dataId).id,ue=i==null?0:o.dataIdMap.get(i.dataId).id;return zL(x,oe,Y,re,w,k,A,_,N,$,F,M,X,V,W,U,H,q,b,g,ue,d||0,ie),J}var BL={kernelName:ks,backendName:"wasm",setupFunc:ree,kernelFunc:oee};var VL;function nee(r){VL=r.wasm.cwrap(ai,null,["number","number","number","number","number","number","array","number"])}function see(r){let{backend:e,inputs:t}=r,{params:o,indices:n}=t,[s,a,i,l]=Kh.prepareAndValidate(o,n),u=e.makeOutput(s,o.dtype);if(a===0)return u;let c=n.shape,p=c[c.length-1],f=e.dataIdMap.get(o.dataId).id,h=e.dataIdMap.get(n.dataId).id,g=new Uint8Array(new Int32Array(l).buffer),x=e.dataIdMap.get(u.dataId).id;return VL(f,zt[o.dtype],h,a,p,i,g,x),u}var GL={kernelName:ai,backendName:"wasm",setupFunc:nee,kernelFunc:see};var WL;function iee(r){WL=r.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function aee(r){let{backend:e,inputs:t,attrs:o}=r,{x:n,indices:s}=t,{axis:a,batchDims:i}=o,l=y.parseAxisParam(a,n.shape)[0],u=S.segment_util.collectGatherOpShapeInfo(n,s,l,i),c=Vr({inputs:{x:n},attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]},backend:e}),p=y.sizeFromShape(s.shape),m=Vr({inputs:{x:s},attrs:{shape:[u.batchSize,p/u.batchSize]},backend:e}),f=[u.batchSize,u.outerSize,p/u.batchSize,u.sliceSize],d=e.makeOutput(f,n.dtype);if(y.sizeFromShape(n.shape)===0)return d;let h=c.shape.length-1,x=e.dataIdMap.get(c.dataId).id,b=e.dataIdMap.get(m.dataId).id,_=e.dataIdMap.get(d.dataId).id,k=new Uint8Array(new Int32Array(y.computeStrides(c.shape)).buffer),A=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer);return WL(x,zt[n.dtype],k,h,b,u.batchSize,A,_),e.disposeData(c.dataId),e.disposeData(m.dataId),d.shape=u.outputShape,d}var UL={kernelName:cs,backendName:"wasm",setupFunc:iee,kernelFunc:aee};var lee=!1,jL=wt(li,lee,"bool");var uee=!1,HL=wt(ln,uee,"bool");var qL;function cee(r){qL=r.wasm.cwrap(un,null,["number","number","number"])}function pee(r){let{inputs:{x:e},attrs:{alpha:t},backend:o}=r,n=o.dataIdMap.get(e.dataId).id,s=o.makeOutput(e.shape,e.dtype);if(y.sizeFromShape(e.shape)!==0){let a=o.dataIdMap.get(s.dataId).id;qL(n,t,a)}return s}var KL={kernelName:un,backendName:"wasm",setupFunc:cee,kernelFunc:pee};var mee=!1,XL=wt(mi,mee,"bool");var fee=!1,YL=wt(fi,fee,"bool");var ZL=Tt(cn);var dee=!1,JL=wt(hi,dee,"bool");var QL;function hee(r){QL=r.wasm.cwrap(pn,null,["number, number, number"])}function gee(r){let{backend:e,inputs:t,attrs:o}=r,{reductionIndices:n,keepDims:s}=o,{x:a}=t,l=e.dataIdMap.get(a.dataId).id,u=a,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=os(a,n,e);if(f){let b=e.dataIdMap.get(c.dataId).id;u=c,l=b}let d=u.shape.length;S.assertAxesAreInnerMostDims("max",p,d);let[h,g]=S.computeOutAndReduceShapes(u.shape,p),x=y.sizeFromShape(g),w=e.makeOutput(h,a.dtype);if(y.sizeFromShape(u.shape)!==0){let b=e.dataIdMap.get(w.dataId).id;QL(l,x,b)}if(f&&e.disposeData(c.dataId),s){let b=S.expandShapeToKeepDim(w.shape,m);w.shape=b}return w}var ez={kernelName:pn,backendName:"wasm",setupFunc:hee,kernelFunc:gee};var xee=!1,tz=wt(mn,xee);var rz;function yee(r){rz=r.wasm.cwrap(fn,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function bee(r){let{inputs:e,attrs:t,backend:o}=r,n=e.x,s=o.dataIdMap.get(n.dataId).id,{filterSize:a,strides:i,pad:l,dimRoundingMode:u}=t,c=S.computePool2DInfo(n.shape,a,i,1,l,u),p=c.filterHeight,m=c.filterWidth,f=c.padInfo.top,d=c.padInfo.right,h=c.padInfo.bottom,g=c.padInfo.left,x=c.dilationHeight,w=c.dilationWidth,b=c.strideHeight,_=c.strideWidth,k=c.inChannels,A=c.outChannels;if(c.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let N=o.makeOutput(c.outShape,"float32"),$=o.dataIdMap.get(N.dataId).id;return rz(s,n.shape[0],n.shape[1],n.shape[2],p,m,f,d,h,g,x,w,b,_,k,A,$),N}var oz={kernelName:fn,backendName:"wasm",setupFunc:yee,kernelFunc:bee};var nz;function wee(r){nz=r.wasm.cwrap(dn,null,["number, number, number"])}function _ee(r){let{backend:e,inputs:t,attrs:o}=r,{axis:n,keepDims:s}=o,{x:a}=t,i=e.dataIdMap.get(a.dataId).id,l=i,u=a,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=os(a,n,e),d=p;if(f){let _=e.dataIdMap.get(c.dataId).id;_!==i&&(u=c,l=_,d=S.getInnerMostAxes(d.length,u.shape.length))}S.assertAxesAreInnerMostDims("mean",d,u.shape.length);let[h,g]=S.computeOutAndReduceShapes(u.shape,d),x=y.sizeFromShape(g),w=u;u.dtype!=="float32"&&(w=hc({backend:e,inputs:{x:u},attrs:{dtype:"float32"}}),l=e.dataIdMap.get(w.dataId).id);let b=e.makeOutput(h,"float32");if(y.sizeFromShape(u.shape)!==0){let _=e.dataIdMap.get(b.dataId).id;nz(l,x,_)}if(f&&e.disposeData(c.dataId),s){let _=S.expandShapeToKeepDim(b.shape,m);b.shape=_}return u.dtype!=="float32"&&e.disposeData(w.dataId),b}var sz={kernelName:dn,backendName:"wasm",setupFunc:wee,kernelFunc:_ee};var iz;function kee(r){iz=r.wasm.cwrap(hn,null,["number, number, number"])}function vee(r){let{backend:e,inputs:t,attrs:o}=r,{axis:n,keepDims:s}=o,{x:a}=t,i=e.dataIdMap.get(a.dataId).id,l=i,u=a,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=os(a,n,e);if(f){let b=e.dataIdMap.get(c.dataId).id;b!==i&&(u=c,l=b)}let d=u.shape.length;S.assertAxesAreInnerMostDims("min",p,d);let[h,g]=S.computeOutAndReduceShapes(u.shape,p),x=y.sizeFromShape(g),w=e.makeOutput(h,u.dtype);if(y.sizeFromShape(u.shape)!==0){let b=e.dataIdMap.get(w.dataId).id;iz(l,x,b)}if(f&&e.disposeData(c.dataId),s){let b=S.expandShapeToKeepDim(w.shape,m);w.shape=b}return w}var az={kernelName:hn,backendName:"wasm",setupFunc:kee,kernelFunc:vee};var Cee=!1,lz=wt(gn,Cee);var Iee=!0,uz=wt(xn,Iee);var cz=Tt(ps);function Zp(r,e){let t=new Int32Array(r.wasm.HEAPU8.buffer,e,4),o=t[0],n=t[1],s=t[2],a=t[3];return r.wasm._free(e),{pSelectedIndices:o,selectedSize:n,pSelectedScores:s,pValidOutputs:a}}var pz;function Nee(r){pz=r.wasm.cwrap(yi,"number",["number","number","number","number","number"])}function See(r){let{backend:e,inputs:t,attrs:o}=r,{iouThreshold:n,maxOutputSize:s,scoreThreshold:a}=o,{boxes:i,scores:l}=t,u=e.dataIdMap.get(i.dataId).id,c=e.dataIdMap.get(l.dataId).id,p=pz(u,c,s,n,a),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Zp(e,p);return e.wasm._free(d),e.wasm._free(h),e.makeOutput([f],"int32",m)}var mz={kernelName:yi,backendName:"wasm",setupFunc:Nee,kernelFunc:See};var fz;function Tee(r){fz=r.wasm.cwrap(bi,"number",["number","number","number","number","number","bool"])}function Aee(r){let{backend:e,inputs:t,attrs:o}=r,{iouThreshold:n,maxOutputSize:s,scoreThreshold:a,padToMaxOutputSize:i}=o,{boxes:l,scores:u}=t,c=e.dataIdMap.get(l.dataId).id,p=e.dataIdMap.get(u.dataId).id,m=fz(c,p,s,n,a,i),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Zp(e,m);e.wasm._free(h);let x=e.makeOutput([d],"int32",f),w=e.makeOutput([],"int32",g);return[x,w]}var dz={kernelName:bi,backendName:"wasm",setupFunc:Tee,kernelFunc:Aee};var hz;function Eee(r){hz=r.wasm.cwrap(wi,"number",["number","number","number","number","number","number"])}function Dee(r){let{backend:e,inputs:t,attrs:o}=r,{iouThreshold:n,maxOutputSize:s,scoreThreshold:a,softNmsSigma:i}=o,{boxes:l,scores:u}=t,c=e.dataIdMap.get(l.dataId).id,p=e.dataIdMap.get(u.dataId).id,m=hz(c,p,s,n,a,i),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Zp(e,m);e.wasm._free(g);let x=e.makeOutput([d],"int32",f),w=e.makeOutput([d],"float32",h);return[x,w]}var gz={kernelName:wi,backendName:"wasm",setupFunc:Eee,kernelFunc:Dee};var $ee=!1,xz=wt(xi,$ee,"bool");var yz;function Ree(r){yz=r.wasm.cwrap(yn,null,["number","number","number","number","number"])}function Fee(r){let{inputs:e,backend:t,attrs:o}=r,{indices:n}=e,{depth:s,onValue:a,offValue:i}=o,l=t.makeOutput([...n.shape,s],"int32"),u=t.dataIdMap.get(l.dataId).id,p=t.dataIdMap.get(n.dataId).id;return yz(p,s,a,i,u),l}var bz={kernelName:yn,backendName:"wasm",setupFunc:Ree,kernelFunc:Fee};function Oee(r){let{inputs:{x:e},backend:t}=r,o=t.makeOutput(e.shape,e.dtype);return t.typedArrayFromHeap(o).fill(1),o}var wz={kernelName:ms,backendName:"wasm",kernelFunc:Oee};function Pee(r){let{inputs:e,backend:t,attrs:o}=r,{axis:n}=o;if(e.length===1)return Yx({inputs:{input:e[0]},backend:t,attrs:{dim:n}});let s=e[0].shape,a=e[0].dtype;e.forEach(c=>{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(a===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let i=[],l=e.map(c=>{let p=Yx({inputs:{input:c},backend:t,attrs:{dim:n}});return i.push(p),p}),u=d0({inputs:l,backend:t,attrs:{axis:n}});return i.forEach(c=>t.disposeData(c.dataId)),u}var _z={kernelName:fs,backendName:"wasm",kernelFunc:Pee};var kz;function Mee(r){kz=r.wasm.cwrap(bn,null,["number","array","number","number","array","array","number","number"])}function Lee(r){let{inputs:{x:e},backend:t,attrs:{paddings:o,constantValue:n}}=r,s=o.map((d,h)=>d[0]+e.shape[h]+d[1]),a=t.dataIdMap.get(e.dataId).id,i=t.makeOutput(s,e.dtype),l=t.dataIdMap.get(i.dataId).id,u=new Uint8Array(new Int32Array(e.shape).buffer),c=o.map(d=>d[0]),p=o.map(d=>d[1]),m=new Uint8Array(new Int32Array(c).buffer),f=new Uint8Array(new Int32Array(p).buffer);return kz(a,u,e.shape.length,zt[e.dtype],m,f,n,l),i}var vz={kernelName:bn,backendName:"wasm",kernelFunc:Lee,setupFunc:Mee};var zee=!1,Cz=wt(wn,zee);var Iz;function Bee(r){Iz=r.wasm.cwrap(_n,null,["number","number","number"])}function Vee(r){let{inputs:e,backend:t}=r,{x:o,alpha:n}=e,s=t.dataIdMap.get(o.dataId).id,a=t.dataIdMap.get(n.dataId).id,i=t.makeOutput(o.shape,"float32"),l=t.dataIdMap.get(i.dataId).id;return Iz(s,a,l),i}var Nz={kernelName:_n,backendName:"wasm",setupFunc:Bee,kernelFunc:Vee};var Sz;function Gee(r){Sz=r.wasm.cwrap(_i,null,["number","number","number","number"])}function Wee(r){let{backend:e,inputs:t,attrs:o}=r,{axis:n,keepDims:s}=o,{x:a}=t,i=e.dataIdMap.get(a.dataId).id,l=i,u=a,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=os(a,n,e),d=p;if(f){let b=e.dataIdMap.get(c.dataId).id;b!==i&&(u=c,l=b,d=S.getInnerMostAxes(d.length,u.shape.length))}S.assertAxesAreInnerMostDims("prod",d,u.shape.length);let[h,g]=S.computeOutAndReduceShapes(u.shape,d),x=y.sizeFromShape(g),w=e.makeOutput(h,u.dtype);if(y.sizeFromShape(u.shape)!==0){let b=e.dataIdMap.get(w.dataId).id;Sz(l,x,zt[w.dtype],b)}if(f&&e.disposeData(c.dataId),s){let b=S.expandShapeToKeepDim(w.shape,m);w.shape=b}return w}var Tz={kernelName:_i,backendName:"wasm",setupFunc:Gee,kernelFunc:Wee};var Uee=r=>{let{backend:e,attrs:t}=r,{start:o,stop:n,step:s,dtype:a}=t,i=Wd(o,n,s,a),l=e.makeOutput([i.length],a);return e.typedArrayFromHeap(l).set(i),l},Az={kernelName:ca,backendName:"wasm",kernelFunc:Uee};var jee=!0,Ez=wt(rn,jee);var Dz=Tt(kn);var $z=Tt(Cn);var Rz;function Hee(r){Rz=r.wasm.cwrap(vn,null,["number","number","number","number","number","number","number","number","number","number"])}function qee(r){let{backend:e,inputs:t,attrs:o}=r,{images:n}=t,{alignCorners:s,halfPixelCenters:a,size:i}=o,[l,u]=i,[c,p,m,f]=n.shape,d=[c,l,u,f],h=e.dataIdMap.get(n.dataId),g;h.dtype!=="float32"&&(g=hc({backend:e,inputs:{x:n},attrs:{dtype:"float32"}}),h=e.dataIdMap.get(g.dataId));let x=h.id,w=e.makeOutput(d,"float32");if(y.sizeFromShape(n.shape)===0)return w;let b=e.dataIdMap.get(w.dataId).id;return Rz(x,c,p,m,f,l,u,s?1:0,a?1:0,b),g!=null&&e.disposeData(g.dataId),w}var Fz={kernelName:vn,backendName:"wasm",setupFunc:Hee,kernelFunc:qee};var Oz;function Kee(r){Oz=r.wasm.cwrap(In,null,["number","array","number","array","number","number"])}function Xee(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{dims:s}=o,a=y.parseAxisParam(s,n.shape);if(n.shape.length===0)return dc({inputs:{x:n},backend:t});let i=t.makeOutput(n.shape,n.dtype),l=t.dataIdMap.get(n.dataId).id,u=t.dataIdMap.get(i.dataId).id,c=new Uint8Array(new Int32Array(a).buffer),p=new Uint8Array(new Int32Array(n.shape).buffer);Oz(l,c,a.length,p,n.shape.length,u);let m=Vr({inputs:{x:i},attrs:{shape:n.shape},backend:t});return t.disposeData(i.dataId),m}var Pz={kernelName:In,backendName:"wasm",kernelFunc:Xee,setupFunc:Kee};var Mz;function Yee(r){Mz=r.wasm.cwrap(Di,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Zee(r){let{inputs:e,backend:t,attrs:o}=r,{image:n}=e,{radians:s,fillValue:a,center:i}=o,l=t.makeOutput(n.shape,n.dtype),u=t.dataIdMap.get(n.dataId).id,c=t.dataIdMap.get(l.dataId).id,[p,m,f,d]=n.shape,[h,g]=S.getImageCenter(i,m,f),x=a===0,w=255,b=typeof a=="number"?[a,a,a,x?0:w]:[...a,w],_=new Uint8Array(new Int32Array(b).buffer);return Mz(u,p,m,f,d,s,h,g,_,b.length,c),l}var Lz={kernelName:Di,backendName:"wasm",kernelFunc:Zee,setupFunc:Yee};var zz=Tt(Nn);var Bz=Tt(Sn);var Vz;function Jee(r){Vz=r.wasm.cwrap(vi,null,["number","number","number","number","number","number","array","number","number"])}function Qee(r){let{backend:e,inputs:t,attrs:o}=r,{indices:n,updates:s}=t,{shape:a}=o,i=e.makeOutput(a,s.dtype);if(y.sizeFromShape(a)===0)return i;let{sliceRank:l,numUpdates:u,sliceSize:c,strides:p,outputSize:m}=Xh.calculateShapes(s,n,a),d=e.dataIdMap.get(n.dataId).id,g=e.dataIdMap.get(s.dataId).id,x=new Uint8Array(new Int32Array(p).buffer),w=e.dataIdMap.get(i.dataId).id;return Vz(d,g,zt[s.dtype],l,u,c,x,m,w),i}var Gz={kernelName:vi,backendName:"wasm",setupFunc:Jee,kernelFunc:Qee};var Wz;function ete(r){Wz=r.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function tte(r){let{inputs:e,backend:t}=r,{condition:o,t:n,e:s}=e,a=t.dataIdMap.get(o.dataId).id,i=t.dataIdMap.get(n.dataId).id,l=t.dataIdMap.get(s.dataId).id,u=t.makeOutput(n.shape,n.dtype),c=t.dataIdMap.get(u.dataId).id,p=o.shape.length,m=n.shape.length,f=p===0||p>1||m===1?1:y.sizeFromShape(n.shape.slice(1));return Wz(a,i,l,f,c),u}var Uz={kernelName:hs,backendName:"wasm",kernelFunc:tte,setupFunc:ete};var jz;function rte(r){jz=r.wasm.cwrap(An,null,["number","number"])}function ote(r){let{backend:e,inputs:{x:t}}=r,o=e.dataIdMap.get(t.dataId).id,n=e.makeOutput(t.shape,t.dtype),s=e.dataIdMap.get(n.dataId).id;return y.sizeFromShape(n.shape)===0||jz(o,s),n}var Hz={kernelName:"Sigmoid",backendName:"wasm",setupFunc:rte,kernelFunc:ote};var qz=Tt(Tn);function gc(r){let{inputs:{x:e},attrs:{begin:t,size:o},backend:n}=r,[s,a]=sr.parseSliceParams(e,t,o),i=sr.isSliceContinous(e.shape,s,a),l=n.readSync(e.dataId),u=n.makeOutput(a,e.dtype),c=y.computeStrides(e.shape),p=n.dataIdMap.get(u.dataId);if(i){let d=sr.computeFlatOffset(s,c);return e.dtype==="string"?p.stringBytes=l.slice(d,d+y.sizeFromShape(a)):n.typedArrayFromHeap(u).set(l.subarray(d,d+y.sizeFromShape(a))),u}if(e.dtype==="string"){let d=Ud(l,s,a,e.shape,e.dtype);return p.stringBytes=d,u}let m=n.typedArrayFromHeap(u),f=e.shape.length;if(f===2)nte(l,c[0],m,s,a);else if(f===3)ste(l,c[0],c[1],m,s,a);else if(f===4)ite(l,c[0],c[1],c[2],m,s,a);else{let d=Ud(l,s,a,e.shape,e.dtype);m.set(d)}return u}function nte(r,e,t,o,n){let s=0,a=o[0],i=o[1],l=a+n[0];for(let u=a;u{let m=[...c];m[i]=p;let f=gc({inputs:{x:n},attrs:{begin:u,size:m},backend:o});return u[i]+=p,f})}var Zz={kernelName:xs,backendName:"wasm",kernelFunc:ute};var Jz=Tt(En);var Qz=Tt(fa);var cte=!0,eB=wt(Rn,cte);var tB;function pte(r){tB=r.wasm.cwrap(Fo,null,["number","number","number"])}function mte(r){let{backend:e,inputs:t,attrs:o}=r,{alpha:n}=o,{x:s}=t,a=e.dataIdMap.get(s.dataId).id,i=e.makeOutput(s.shape,s.dtype),l=e.dataIdMap.get(i.dataId).id;return tB(a,n,l),i}var rB={kernelName:Fo,backendName:"wasm",setupFunc:pte,kernelFunc:mte};var oB;function fte(r){oB=r.wasm.cwrap(Ti,null,["number","array","number","array","array","array","array","array","number","number"])}function dte(r){let{backend:e,inputs:t,attrs:o}=r,{x:n}=t,{begin:s,end:a,strides:i}=o;i==null&&(i=new Array(s.length));let{beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=o,f=S.slice_util.maskToAxes(c);if(f.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(c!==0&&p!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(c!==0&&m!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let d=n.shape.length-s.length,h=S.slice_util.maskToAxes(p),g=n.shape.slice();h.forEach(V=>{s[V]=0,a[V]=1,g.splice(V,0,1)});let x=Vr({inputs:{x:n},attrs:{shape:g},backend:e}),{begin:w,end:b,strides:_}=S.slice_util.getNormalizedAxes(x.shape,f,d,s,a,i,l,u,c);s=w,a=b,i=_;let k=S.slice_util.maskToAxes(m);k.forEach(V=>{a[V]=s[V]+1,i[V]=1});let A=S.slice_util.computeOutShape(s,a,i),N=A.filter((V,W)=>k.indexOf(W)===-1);if(i.every(V=>V===1)){let V=gc({inputs:{x},attrs:{begin:s,size:A},backend:e});e.disposeData(x.dataId);let W=Vr({inputs:{x:V},attrs:{shape:N},backend:e});return e.disposeData(V.dataId),W}let F=e.makeOutput(N,"float32");if(!N.some(V=>V===0)){let V=e.dataIdMap.get(x.dataId).id,W=new Uint8Array(new Int32Array(y.computeStrides(x.shape)).buffer),U=new Uint8Array(new Int32Array(s).buffer),H=new Uint8Array(new Int32Array(a).buffer),q=new Uint8Array(new Int32Array(i).buffer),X=new Uint8Array(new Int32Array(N).buffer),oe=new Uint8Array(new Int32Array(y.computeStrides(N)).buffer),Y=e.dataIdMap.get(F.dataId).id;oB(V,W,x.shape.length,U,H,q,X,oe,N.length,Y)}e.disposeData(x.dataId);let M=Vr({inputs:{x:F},attrs:{shape:N},backend:e});return e.disposeData(F.dataId),M}var nB={kernelName:Ti,backendName:"wasm",setupFunc:fte,kernelFunc:dte};var hte=!0,sB=wt(Fn,hte);var iB;function gte(r){iB=r.wasm.cwrap(Dn,null,["number, number, number"])}function xte(r){let{backend:e,inputs:t,attrs:o}=r,{axis:n,keepDims:s}=o,{x:a}=t,i=e.dataIdMap.get(a.dataId).id,l=i,u=a,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=os(a,n,e),d=p;if(f){let b=e.dataIdMap.get(c.dataId).id;b!==i&&(u=c,l=b,d=S.getInnerMostAxes(d.length,u.shape.length))}S.assertAxesAreInnerMostDims("sum",d,u.shape.length);let[h,g]=S.computeOutAndReduceShapes(u.shape,d),x=y.sizeFromShape(g),w=e.makeOutput(h,u.dtype);if(y.sizeFromShape(u.shape)!==0){let b=e.dataIdMap.get(w.dataId).id;iB(l,x,b)}if(f&&e.disposeData(c.dataId),s){let b=S.expandShapeToKeepDim(w.shape,m);w.shape=b}return w}var aB={kernelName:Dn,backendName:"wasm",setupFunc:gte,kernelFunc:xte};var lB=Tt(On);var uB;function yte(r){uB=r.wasm.cwrap(_o,null,["number","array","number","array","number","number"])}function bte(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,s=t.dataIdMap.get(n.dataId).id,{reps:a}=o,i=new Array(n.shape.length);for(let m=0;m{let{x:o}=r,{k:n,sorted:s}=t,a=e.dataIdMap.get(o.dataId).id,i=new Uint8Array(new Int32Array(o.shape).buffer),l=o.shape.slice();l[l.length-1]=n;let u=e.makeOutput(l,o.dtype),c=e.dataIdMap.get(u.dataId).id,p=e.makeOutput(l,"int32"),m=e.dataIdMap.get(p.dataId).id;return pB(a,i,o.shape.length,zt[o.dtype],n,s,c,m),[u,p]},mB={kernelName:Ei,backendName:"wasm",setupFunc:wte,kernelFunc:_te};function kte(r){let{inputs:e,backend:t,attrs:o}=r,{value:n}=e,{axis:s}=o;s<0&&(s+=n.shape.length);let a=n.shape[s],i=n.shape.length,l=new Array(i-1),u=0;for(let f=0;f({dataId:f,dtype:d,shape:l}))}var fB={kernelName:ys,backendName:"wasm",kernelFunc:kte};function vte(r){let{inputs:{x:e},backend:t}=r,o=t.makeOutput(e.shape,e.dtype);return t.typedArrayFromHeap(o).fill(0),o}var dB={kernelName:bs,backendName:"wasm",kernelFunc:vte};var Cte=[XM,YM,JM,oL,sL,lL,uL,cL,mL,fL,hL,xL,yL,wL,kL,CL,NL,SL,TL,AL,EL,$L,RL,FL,KM,PL,LL,BL,GL,UL,jL,HL,QM,KL,XL,YL,ZL,JL,ez,tz,oz,sz,az,lz,uz,cz,mz,dz,gz,xz,bz,wz,_z,vz,Cz,Nz,Tz,Az,Ez,Dz,$z,iL,Fz,Pz,Lz,Bz,zz,Gz,Uz,Hz,qz,Kz,Yz,Zz,Jz,Qz,eB,rB,nB,sB,aB,lB,cB,mB,tL,fB,dB];for(let r of Cte)Ja(r);var g0=j();g0.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11])));g0.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(g0.get("IS_NODE"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(r){return!1}});var _0=Ac(xB());var yB='var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);Module["wasmModule"]=null;receiveInstance(instance);return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance;moduleLoaded()})}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["_emscripten_tls_init"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].setThreadStatus(Module["_pthread_self"](),1);try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(!Module["getNoExitRuntime"]())Module["PThread"].threadExit(result)}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["getNoExitRuntime"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}}';var wB=Ac(bB());var Qx=class extends Ws{constructor(e){super();this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new Xa(this,Po())}write(e,t,o){let n={id:this.dataIdNextNumber++};return this.move(n,e,t,o,1),n}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=y.now();return e(),{kernelMs:y.now()-t}}move(e,t,o,n,s){let a=this.dataIdNextNumber++;if(n==="string"){let c=t;this.dataIdMap.set(e,{id:a,stringBytes:c,shape:o,dtype:n,memoryOffset:null,refCount:s});return}let i=y.sizeFromShape(o),l=i*y.bytesPerElement(n),u=this.wasm._malloc(l);this.dataIdMap.set(e,{id:a,memoryOffset:u,shape:o,dtype:n,refCount:s}),this.wasm.tfjs.registerTensor(a,i,u),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,l),u)}async read(e){return this.readSync(e)}readSync(e){let{memoryOffset:t,dtype:o,shape:n,stringBytes:s}=this.dataIdMap.get(e);if(o==="string")return s;let a=this.wasm.HEAPU8.slice(t,t+y.sizeFromShape(n)*y.bytesPerElement(o));return Ite(a.buffer,o)}disposeData(e,t=!1){if(this.dataIdMap.has(e)){let o=this.dataIdMap.get(e);if(o.refCount--,!t&&o.refCount>0)return!1;this.wasm._free(o.memoryOffset),this.wasm.tfjs.disposeData(o.id),this.dataIdMap.delete(e)}return!0}refCount(e){return this.dataIdMap.has(e)?this.dataIdMap.get(e).refCount:0}incRef(e){let t=this.dataIdMap.get(e);t!=null&&t.refCount++}floatPrecision(){return 32}getMemoryOffset(e){return this.dataIdMap.get(e).memoryOffset}dispose(){this.wasm.tfjs.dispose(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,o){let n;if(o==null)n=this.write(null,e,t);else{let s=this.dataIdNextNumber++;n={id:s},this.dataIdMap.set(n,{id:s,memoryOffset:o,shape:e,dtype:t,refCount:1});let a=y.sizeFromShape(e);this.wasm.tfjs.registerTensor(s,a,o)}return{dataId:n,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:o}){let n=this.wasm.HEAPU8.buffer,{memoryOffset:s}=this.dataIdMap.get(o),a=y.sizeFromShape(e);switch(t){case"float32":return new Float32Array(n,s,a);case"int32":return new Int32Array(n,s,a);case"bool":return new Uint8Array(n,s,a);default:throw new Error(`Unknown dtype ${t}`)}}};function Nte(r){return(e,t)=>(y.fetch(r,{credentials:"same-origin"}).then(o=>{o.ok||e.env.a(`failed to load wasm binary file at '${r}'`),o.arrayBuffer().then(n=>{WebAssembly.instantiate(n,e).then(s=>{t(s.instance)})})}),{})}function _B(r,e,t){if(ey!=null)return ey;let o="tfjs-backend-wasm.wasm";return r&&e?o="tfjs-backend-wasm-threaded-simd.wasm":r&&(o="tfjs-backend-wasm-simd.wasm"),ph!=null&&ph[o]!=null?ph[o]:t+o}async function kB(){let[r,e]=await Promise.all([j().getAsync("WASM_HAS_SIMD_SUPPORT"),j().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((t,o)=>{let n={};n.locateFile=(i,l)=>{if(i.endsWith(".worker.js")){let u=yB,c=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(c)}return i.endsWith(".wasm")?_B(r,e,mh!=null?mh:l):l+i},k0&&(n.instantiateWasm=Nte(_B(r,e,mh!=null?mh:"")));let s=!1;n.onAbort=()=>{if(s||fh)return;fh=!0,o({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"})};let a;e&&r&&ey==null?(n.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+_0.default.toString()],{type:"text/javascript"}),a=(0,_0.default)(n)):a=(0,wB.default)(n),a.then(i=>{s=!0,fh=!1;let l=null;i.tfjs={init:i.cwrap("init",null,[]),registerTensor:i.cwrap("register_tensor",null,["number","number","number"]),disposeData:i.cwrap("dispose_data",l,["number"]),dispose:i.cwrap("dispose",l,[])},t({wasm:i})})})}function Ite(r,e){switch(e){case"float32":return new Float32Array(r);case"int32":return new Int32Array(r);case"bool":return new Uint8Array(r);default:throw new Error(`Unknown dtype ${e}`)}}var Ste=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],ey=null,mh=null,ph={},fh=!1,k0=!1;function Tte(r,e=!1){if(Qh("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),fh)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");ey=r,k0=e}function Ate(r,e=!1){if(fh)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof r=="string")mh=r;else{ph=r;let t=Ste.filter(o=>ph[o]==null);if(t.length>0)throw new Error(`There were no entries found for the following binaries: ${t.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}k0=e}var Ete="3.3.0";var Dte=2;xu("wasm",async()=>{let{wasm:r}=await kB();return new Qx(r)},Dte);export{as as Abs,Hs as Acos,qs as Acosh,rp as AdadeltaOptimizer,op as AdagradOptimizer,np as AdamOptimizer,sp as AdamaxOptimizer,wo as Add,Ho as AddN,Ml as All,Ll as Any,qo as ArgMax,ea as ArgMin,Ks as Asin,Xs as Asinh,Ys as Atan,Js as Atan2,Zs as Atanh,Ko as AvgPool,ta as AvgPool3D,Bl as AvgPool3DGrad,zl as AvgPoolGrad,Qx as BackendWasm,Xo as BatchMatMul,ra as BatchToSpaceND,Vl as Bincount,Cb as BroadcastTo,Kg as Callback,Eg as CallbackList,Do as Cast,Yo as Ceil,$o as ClipByValue,Gl as Complex,oa as ComplexAbs,ls as Concat,Zo as Conv2D,Wl as Conv2DBackpropFilter,Jo as Conv2DBackpropInput,na as Conv3D,Ul as Conv3DBackpropFilterV2,jl as Conv3DBackpropInputV2,Qo as Cos,Qs as Cosh,ei as CropAndResize,en as Cumsum,$g as CustomCallback,Xa as DataStorage,Hl as DenseBincount,ti as DepthToSpace,tn as DepthwiseConv2dNative,ql as DepthwiseConv2dNativeBackpropFilter,Kl as DepthwiseConv2dNativeBackpropInput,Xl as Diag,sa as Dilation2D,Oc as Dilation2DBackpropFilter,Fc as Dilation2DBackpropInput,_b as ENV,Yg as EarlyStopping,ri as Elu,Yl as EluGrad,Mh as Environment,ni as Equal,oi as Erf,on as Exp,us as ExpandDims,si as Expm1,Zl as FFT,ia as Fill,ii as FlipLeftRight,nn as Floor,sn as FloorDiv,Pc as FromPixels,an as FusedBatchNorm,_s as FusedConv2D,ks as FusedDepthwiseConv2D,ai as GatherNd,cs as GatherV2,mx as GraphModel,li as Greater,ln as GreaterEqual,Dg as History,Jl as IFFT,Ro as Identity,Ql as Imag,St as InputSpec,ui as IsFinite,ci as IsInf,pi as IsNan,Ws as KernelBackend,aa as LRN,tu as LRNGrad,yf as LayerVariable,No as LayersModel,un as LeakyRelu,mi as Less,fi as LessEqual,eu as LinSpace,cn as Log,di as Log1p,Ib as LogSoftmax,hi as LogicalAnd,Ya as LogicalNot,Za as LogicalOr,pn as Max,fn as MaxPool,la as MaxPool3D,ou as MaxPool3DGrad,ru as MaxPoolGrad,nu as MaxPoolWithArgmax,mn as Maximum,dn as Mean,hn as Min,gn as Minimum,ua as MirrorPad,gi as Mod,ip as MomentumOptimizer,su as Multinomial,xn as Multiply,ps as Neg,yi as NonMaxSuppressionV3,bi as NonMaxSuppressionV4,wi as NonMaxSuppressionV5,xi as NotEqual,Q0 as OP_SCOPE_SUFFIX,yn as OneHot,ms as OnesLike,Pr as Optimizer,fs as Pack,bn as PadV2,W3 as Pool,wn as Pow,_n as Prelu,_i as Prod,ap as RMSPropOptimizer,mo as RNN,ca as Range,Eb as Rank,iu as Real,rn as RealDiv,ki as Reciprocal,Wt as Reduction,kn as Relu,Cn as Relu6,ds as Reshape,vn as ResizeBilinear,lu as ResizeBilinearGrad,pa as ResizeNearestNeighbor,au as ResizeNearestNeighborGrad,In as Reverse,Di as RotateWithOffset,Nn as Round,Sn as Rsqrt,al as SGDOptimizer,vi as ScatterNd,hs as Select,Ci as Selu,Wi as Sequential,An as Sigmoid,Ni as Sign,Tn as Sin,Ii as Sinh,gs as Slice,$n as Softmax,Si as Softplus,ma as SpaceToBatchND,uu as SparseToDense,xs as SplitV,En as Sqrt,fa as Square,Rn as SquaredDifference,Fo as Step,Ti as StridedSlice,Fn as Sub,Dn as Sum,Br as SymbolicTensor,Ai as Tan,On as Tanh,Ve as Tensor,lt as TensorBuffer,_o as Tile,Ei as TopK,cu as Transform,Pn as Transpose,pu as Unique,ys as Unpack,da as UnsortedSegmentSum,el as Variable,bs as ZerosLike,ws as _FusedMatMul,Nt as abs,wm as acos,_m as acosh,ee as add,iw as addN,bu as all,ol as any,nl as argMax,km as argMin,vm as asin,Cm as asinh,Im as atan,Nm as atan2,Sm as atanh,wa as avgPool,Tm as avgPool3d,sw as backend,S as backend_util,jG as basicLSTMCell,Ln as batchNorm,cw as batchNorm2d,pw as batchNorm3d,mw as batchNorm4d,_a as batchToSpaceND,fw as bincount,QU as booleanMaskAsync,sl as broadcastTo,qh as browser,ve as buffer,K1 as callbacks,ne as cast,Am as ceil,ir as clipByValue,Oo as clone,ko as complex,Ye as concat,dw as concat1d,hw as concat2d,gw as concat3d,xw as concat4d,l_ as constraints,ku as conv1d,Kr as conv2d,vu as conv2dTranspose,Em as conv3d,mW as conv3dTranspose,H3 as copyRegisteredKernels,ka as cos,Cu as cosh,ef as cosineWindow,Iu as cumsum,Xr as customGrad,Wk as data,yw as denseBincount,Qh as deprecationWarn,Dm as depthToSpace,Is as depthwiseConv2d,Z1 as deregisterOp,hu as device_util,wW as diag,$m as dilation2d,nG as disableDeprecationWarnings,Te as dispose,sG as disposeVariables,me as div,Rm as divNoNan,bw as dot,jw as dropout,Ns as elu,oG as enableDebugMode,rG as enableProdMode,Hw as enclosingPowerOfTwo,Po as engine,j as env,vo as equal,Fm as erf,Zt as exp,ar as expandDims,Om as expm1,Xc as eye,Ea as fft,va as fill,pG as findBackend,mG as findBackendFactory,Ss as floor,yu as floorDiv,Gn as fused,zn as gather,Uw as gatherND,Kh as gather_util,uG as getBackend,Lh as getGradient,Lc as getKernel,dm as getKernelsForBackend,XW as grad,YW as grads,er as greater,io as greaterEqual,Pi as ifft,Nu as imag,$s as image,lj as inTopKAsync,f_ as initializers,Hg as input,Ir as io,Lu as irfft,ww as isFinite,_w as isInf,kw as isNaN,Dt as keep,Ar as kernel_impls,X_ as layers,Ca as leakyRelu,Su as less,zo as lessEqual,Zw as linalg,vw as linspace,NA as loadGraphModel,O1 as loadLayersModel,Pm as localResponseNormalization,lr as log,Tu as log1p,Cw as logSigmoid,Au as logSoftmax,Lm as logSumExp,hr as logicalAnd,Ia as logicalNot,Eu as logicalOr,Tw as logicalXor,tH as losses,We as matMul,EI as math,ur as max,Na as maxPool,zm as maxPool3d,Aw as maxPoolWithArgmax,Yr as maximum,ht as mean,Hc as memory,Q_ as metrics,Oi as min,As as minimum,Bm as mirrorPad,Vm as mod,R1 as model,ek as models,Yc as moments,rj as movingAverage,P as mul,I4 as multiRNNCell,Ew as multinomial,He as neg,tf as nextFrame,Vu as norm,Vn as notEqual,Cs as oneHot,Nr as ones,tr as onesLike,T as op,E4 as outerProduct,Fr as pad,R4 as pad1d,O4 as pad2d,M4 as pad3d,z4 as pad4d,Dw as pool,Or as pow,Ta as prelu,Kb as print,Du as prod,iG as profile,K4 as rand,rU as randomGamma,ag as randomNormal,Es as randomUniform,Jc as range,lG as ready,il as real,Gm as reciprocal,xu as registerBackend,P1 as registerCallbackConstructor,Sb as registerGradient,Ja as registerKernel,Y1 as registerOp,tk as regularizers,Sr as relu,Ru as relu6,cG as removeBackend,L as reshape,qt as reverse,pU as reverse1d,fU as reverse2d,hU as reverse3d,xU as reverse4d,Da as rfft,Wm as round,Fu as rsqrt,le as scalar,Ww as scatterND,Xh as scatter_util,Ou as selu,Um as separableConv2d,F1 as sequential,Q as serialization,qI as setBackend,fG as setPlatform,Tte as setWasmPath,Ate as setWasmPaths,Bw as setdiff1dAsync,qr as sigmoid,jm as sign,eH as signal,Pu as sin,Mu as sinh,Re as slice,Hm as slice1d,lg as slice2d,qm as slice3d,Qc as slice4d,sr as slice_util,Aa as softmax,Ts as softplus,Sa as spaceToBatchND,Qm as sparseToDense,Qj as spectral,cr as split,xt as sqrt,Oe as square,zu as squaredDifference,Co as squeeze,Vt as stack,Ds as step,Km as stridedSlice,ce as sub,ge as sum,fu as sumOutType,Xm as tan,Fi as tanh,Rr as tensor,Gt as tensor1d,Mi as tensor2d,Jb as tensor3d,WU as tensor4d,UU as tensor5d,jU as tensor6d,Mn as tensor_util,UI as test_util,G as tidy,Lo as tile,aG as time,Ym as topk,ll as train,je as transpose,Bu as truncatedNormal,ep as unique,j3 as unregisterGradient,U3 as unregisterKernel,Zm as unsortedSegmentSum,pr as unstack,dr as upcastType,y as util,ZW as valueAndGrad,JW as valueAndGrads,Vw as variable,og as variableGrads,yQ as version,fx as version_converter,nw as version_core,dl as version_layers,Ete as version_wasm,$t as where,Jm as whereAsync,gt as zeros,Ce as zerosLike}; /** * @license * Copyright 2017 Google LLC. All Rights Reserved. diff --git a/dist/tfjs.esm.js.map b/dist/tfjs.esm.js.map index 0c4e4d6..5ed4804 100644 --- a/dist/tfjs.esm.js.map +++ b/dist/tfjs.esm.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../node_modules/node-fetch/browser.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "(disabled):crypto", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "../node_modules/string_decoder/lib/string_decoder.js", "(disabled):path", "(disabled):worker_threads", "(disabled):perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dense_bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ComplexAbs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ExpandDims_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LeakyRelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mean_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Neg_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/RealDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Select_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/zeros_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Scatter_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/arg_min_max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/dilation_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts"], - "sourcesContent": ["", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(typeof _scriptDir !== \"undefined\" && _scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){global.performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_MEMORY/65536,\"maximum\":2147483648/65536,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"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\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmTable=Module[\"asm\"][\"F\"];wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var ASM_CONSTS={8991:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! killThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in killThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cancelThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cancelThread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cleanupThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cleanupThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=tb;var headPtr=tb+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),tb+100>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],setThreadStatus:function(){},runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+56>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();var tb=_pthread_self();Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){spawnThread(e.data)}else if(cmd===\"cleanupThread\"){cleanupThread(d[\"thread\"])}else if(cmd===\"killThread\"){killThread(d[\"thread\"])}else if(cmd===\"cancelThread\"){cancelThread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"exitProcess\"){try{exit(d[\"returnCode\"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){if(ENVIRONMENT_IS_NODE)return require(\"os\").cpus().length;return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>=2;while(ch=GROWABLE_HEAP_U8()[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?GROWABLE_HEAP_F64()[buf++>>1]:GROWABLE_HEAP_I32()[buf]);++buf}return readAsmConstArgsArray}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension(\"WEBGL_multi_draw\"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(ext.indexOf(\"lose_context\")<0&&ext.indexOf(\"debug\")<0){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];var contextAttributes={\"alpha\":!!GROWABLE_HEAP_I32()[a+(0>>2)],\"depth\":!!GROWABLE_HEAP_I32()[a+(4>>2)],\"stencil\":!!GROWABLE_HEAP_I32()[a+(8>>2)],\"antialias\":!!GROWABLE_HEAP_I32()[a+(12>>2)],\"premultipliedAlpha\":!!GROWABLE_HEAP_I32()[a+(16>>2)],\"preserveDrawingBuffer\":!!GROWABLE_HEAP_I32()[a+(20>>2)],\"powerPreference\":__emscripten_webgl_power_preferences[powerPreference],\"failIfMajorPerformanceCaveat\":!!GROWABLE_HEAP_I32()[a+(28>>2)],majorVersion:GROWABLE_HEAP_I32()[a+(32>>2)],minorVersion:GROWABLE_HEAP_I32()[a+(36>>2)],enableExtensionsByDefault:GROWABLE_HEAP_I32()[a+(40>>2)],explicitSwapControl:GROWABLE_HEAP_I32()[a+(44>>2)],proxyContextToMainThread:GROWABLE_HEAP_I32()[a+(48>>2)],renderViaOffscreenBackBuffer:GROWABLE_HEAP_I32()[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.threadExitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! spawnThread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(64>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(100>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(76>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(172>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{spawnThread(threadParams)}return 0}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"x\":__emscripten_notify_thread_queue,\"b\":_abort,\"y\":_emscripten_asm_const_int,\"j\":_emscripten_conditional_set_current_thread_status,\"c\":_emscripten_futex_wait,\"d\":_emscripten_futex_wake,\"f\":_emscripten_get_now,\"p\":_emscripten_memcpy_big,\"z\":_emscripten_num_logical_cores,\"u\":_emscripten_receive_on_main_thread_js,\"q\":_emscripten_resize_heap,\"v\":_emscripten_set_canvas_element_size,\"i\":_emscripten_set_current_thread_status,\"t\":_emscripten_set_thread_name,\"w\":_emscripten_webgl_create_context,\"m\":_fd_close,\"n\":_fd_seek,\"g\":_fd_write,\"o\":initPthreadsJS,\"a\":wasmMemory||Module[\"wasmMemory\"],\"k\":_pthread_cleanup_pop,\"l\":_pthread_cleanup_push,\"h\":_pthread_create,\"s\":_sysconf};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _pthread_self=Module[\"_pthread_self\"]=function(){return(_pthread_self=Module[\"_pthread_self\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=function(){return(__emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var __emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=function(){return(__emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var __emscripten_thread_init=Module[\"__emscripten_thread_init\"]=function(){return(__emscripten_thread_init=Module[\"__emscripten_thread_init\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=function(){return(_emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module[\"__emscripten_allow_main_runtime_queued_calls\"]=9880;var __emscripten_main_thread_futex=Module[\"__emscripten_main_thread_futex\"]=11368;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){readyPromiseResolve(Module);postMessage({\"cmd\":\"loaded\"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exitProcess\",\"returnCode\":status});throw new ExitStatus(status)}else{}}if(noExitRuntime){}else{PThread.terminateAllThreads();EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run();\n\n\n return WasmBackendModuleThreadedSimd.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"g\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"m\"];removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _abort(){abort()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_size(){return HEAPU8.length}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}var asmLibraryArg={\"a\":_abort,\"d\":_emscripten_memcpy_big,\"e\":_emscripten_resize_heap,\"f\":_fd_close,\"c\":_fd_seek,\"b\":_fd_write};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"h\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"i\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"j\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"k\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"l\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"n\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"o\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"p\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"q\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"r\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"s\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"t\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"u\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"v\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"w\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"x\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"y\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"z\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};Module[\"cwrap\"]=cwrap;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n return WasmBackendModule.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:Module[\"_pthread_self\"]()})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance;moduleLoaded()})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;Module[\"__emscripten_thread_init\"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){if(ex instanceof Module[\"ExitStatus\"]){if(Module[\"getNoExitRuntime\"]()){}else{Module[\"PThread\"].threadExit(ex.status)}}else{Module[\"PThread\"].threadExit(-2);throw ex}}}}else if(e.data.cmd===\"cancel\"){if(Module[\"_pthread_self\"]()){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(Module[\"_pthread_self\"]()){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null], - "mappings": "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,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAgB,IACzB,GAAe,GC7UjB,ACAA,AAiBA,GAAM,IAAmD,GAEnD,GAA2C,CAC/C,MAAO,GACP,UAAW,GACX,mBAAoB,GACpB,sBAAuB,GACvB,MAAO,GACP,QAAS,GACT,6BAA8B,IAO1B,YACF,EAAsB,EAAyB,CACjD,GAAS,GAAgB,EAGrB,YAA0B,EAAoB,CAClD,GAAI,CAAE,KAAgB,KAAW,CAC/B,GAAM,GAAS,GAAyB,GACxC,GAAI,IAAW,KACb,GAAS,GAAgB,MAEzB,gBAAQ,IAAI,0CAA2C,GAChD,KAGX,GAAM,GAAK,GAAS,GACpB,MAAI,GAAG,gBACL,OAAO,IAAS,GACT,GAAgB,IAGzB,GAAG,QAAQ,EAAG,YACd,EAAG,QAAQ,EAAG,cACd,EAAG,QAAQ,EAAG,OACd,EAAG,QAAQ,EAAG,QACd,EAAG,QAAQ,EAAG,qBACd,EAAG,QAAQ,EAAG,iBACd,EAAG,OAAO,EAAG,cACb,EAAG,OAAO,EAAG,WACb,EAAG,SAAS,EAAG,MAER,GAAS,IA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IAIrD,EAAc,EAChB,EAAK,qBAAsB,EAAY,EAAa,GAElD,EACF,GAAQ,CAAC,OAAQ,CAAC,EAAG,GAAc,UAAS,MAAO,CAAC,MAAO,KAE3D,EAAS,EACb,GAAI,GAAe,KAAM,CACvB,EAAU,KAAK,GACf,GAAM,GAAO,EAAa,uBAAuB,GACjD,EAAS,GAAU,CAAC,OAAQ,CAAC,EAAG,GAAS,UAAS,MAAO,CAAC,UAG5D,SAAU,QAAQ,GAAK,EAAQ,8BAA8B,IACtD,EAGF,GAAM,IAAyC,CACpD,WAAY,GACZ,YAAa,QACb,WAAY,IChHd,AA4KA,GAAM,IAAgC,CACpC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAgB,IACzB,GAAe,GCxUjB,ACAA,AAGA,GAAM,IAAU,QCHhB,AA4CO,GAAM,IAAU,CACrB,YAAa,GACb,mBAAoB,G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", + "sources": ["../node_modules/node-fetch/browser.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/tychei.js", "(disabled):crypto", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/index.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "../node_modules/string_decoder/lib/string_decoder.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/tychei.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/index.js", "(disabled):path", "(disabled):worker_threads", "(disabled):perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dense_bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/transform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ComplexAbs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ExpandDims_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LeakyRelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mean_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Neg_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/RealDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Select_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/zeros_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Scatter_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transform.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/arg_min_max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/dilation_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transform_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transform.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts"], + "sourcesContent": ["", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\n// Detect the global object, even if operating in strict mode.\n// http://stackoverflow.com/a/14387057/265298\nvar global = (0, eval)('this'),\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(typeof _scriptDir !== \"undefined\" && _scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){global.performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_MEMORY/65536,\"maximum\":2147483648/65536,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"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\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmTable=Module[\"asm\"][\"F\"];wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var ASM_CONSTS={8991:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! killThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in killThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cancelThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cancelThread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cleanupThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cleanupThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=tb;var headPtr=tb+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),tb+100>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],setThreadStatus:function(){},runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+56>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();var tb=_pthread_self();Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){spawnThread(e.data)}else if(cmd===\"cleanupThread\"){cleanupThread(d[\"thread\"])}else if(cmd===\"killThread\"){killThread(d[\"thread\"])}else if(cmd===\"cancelThread\"){cancelThread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"exitProcess\"){try{exit(d[\"returnCode\"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){if(ENVIRONMENT_IS_NODE)return require(\"os\").cpus().length;return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>=2;while(ch=GROWABLE_HEAP_U8()[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?GROWABLE_HEAP_F64()[buf++>>1]:GROWABLE_HEAP_I32()[buf]);++buf}return readAsmConstArgsArray}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension(\"WEBGL_multi_draw\"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(ext.indexOf(\"lose_context\")<0&&ext.indexOf(\"debug\")<0){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];var contextAttributes={\"alpha\":!!GROWABLE_HEAP_I32()[a+(0>>2)],\"depth\":!!GROWABLE_HEAP_I32()[a+(4>>2)],\"stencil\":!!GROWABLE_HEAP_I32()[a+(8>>2)],\"antialias\":!!GROWABLE_HEAP_I32()[a+(12>>2)],\"premultipliedAlpha\":!!GROWABLE_HEAP_I32()[a+(16>>2)],\"preserveDrawingBuffer\":!!GROWABLE_HEAP_I32()[a+(20>>2)],\"powerPreference\":__emscripten_webgl_power_preferences[powerPreference],\"failIfMajorPerformanceCaveat\":!!GROWABLE_HEAP_I32()[a+(28>>2)],majorVersion:GROWABLE_HEAP_I32()[a+(32>>2)],minorVersion:GROWABLE_HEAP_I32()[a+(36>>2)],enableExtensionsByDefault:GROWABLE_HEAP_I32()[a+(40>>2)],explicitSwapControl:GROWABLE_HEAP_I32()[a+(44>>2)],proxyContextToMainThread:GROWABLE_HEAP_I32()[a+(48>>2)],renderViaOffscreenBackBuffer:GROWABLE_HEAP_I32()[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.threadExitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! spawnThread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(64>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(100>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(76>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(172>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{spawnThread(threadParams)}return 0}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"x\":__emscripten_notify_thread_queue,\"b\":_abort,\"y\":_emscripten_asm_const_int,\"j\":_emscripten_conditional_set_current_thread_status,\"c\":_emscripten_futex_wait,\"d\":_emscripten_futex_wake,\"f\":_emscripten_get_now,\"p\":_emscripten_memcpy_big,\"z\":_emscripten_num_logical_cores,\"u\":_emscripten_receive_on_main_thread_js,\"q\":_emscripten_resize_heap,\"v\":_emscripten_set_canvas_element_size,\"i\":_emscripten_set_current_thread_status,\"t\":_emscripten_set_thread_name,\"w\":_emscripten_webgl_create_context,\"m\":_fd_close,\"n\":_fd_seek,\"g\":_fd_write,\"o\":initPthreadsJS,\"a\":wasmMemory||Module[\"wasmMemory\"],\"k\":_pthread_cleanup_pop,\"l\":_pthread_cleanup_push,\"h\":_pthread_create,\"s\":_sysconf};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _pthread_self=Module[\"_pthread_self\"]=function(){return(_pthread_self=Module[\"_pthread_self\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=function(){return(__emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var __emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=function(){return(__emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var __emscripten_thread_init=Module[\"__emscripten_thread_init\"]=function(){return(__emscripten_thread_init=Module[\"__emscripten_thread_init\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=function(){return(_emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module[\"__emscripten_allow_main_runtime_queued_calls\"]=9880;var __emscripten_main_thread_futex=Module[\"__emscripten_main_thread_futex\"]=11368;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){readyPromiseResolve(Module);postMessage({\"cmd\":\"loaded\"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exitProcess\",\"returnCode\":status});throw new ExitStatus(status)}else{}}if(noExitRuntime){}else{PThread.terminateAllThreads();EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run();\n\n\n return WasmBackendModuleThreadedSimd.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"g\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"m\"];removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _abort(){abort()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_size(){return HEAPU8.length}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}var asmLibraryArg={\"a\":_abort,\"d\":_emscripten_memcpy_big,\"e\":_emscripten_resize_heap,\"f\":_fd_close,\"c\":_fd_seek,\"b\":_fd_write};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"h\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"i\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"j\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"k\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"l\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"n\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"o\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"p\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"q\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"r\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"s\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"t\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"u\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"v\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"w\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"x\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"y\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"z\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};Module[\"cwrap\"]=cwrap;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n return WasmBackendModule.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:Module[\"_pthread_self\"]()})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance;moduleLoaded()})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;Module[\"__emscripten_thread_init\"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){if(ex instanceof Module[\"ExitStatus\"]){if(Module[\"getNoExitRuntime\"]()){}else{Module[\"PThread\"].threadExit(ex.status)}}else{Module[\"PThread\"].threadExit(-2);throw ex}}}}else if(e.data.cmd===\"cancel\"){if(Module[\"_pthread_self\"]()){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(Module[\"_pthread_self\"]()){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null], + "mappings": ";;;;;;;gpBAAA,kBCAA,oBA2BA,AAAC,UAAS,EAAQ,EAAQ,EAAQ,CAElC,WAAc,EAAM,CAClB,GAAI,GAAK,KAAM,EAAO,IAEtB,EAAG,KAAO,UAAW,CACnB,GAAI,GAAI,QAAU,EAAG,GAAK,EAAG,EAAI,sBACjC,SAAG,GAAK,EAAG,GACX,EAAG,GAAK,EAAG,GACJ,EAAG,GAAK,EAAK,GAAG,EAAI,EAAI,IAIjC,EAAG,EAAI,EACP,EAAG,GAAK,EAAK,KACb,EAAG,GAAK,EAAK,KACb,EAAG,GAAK,EAAK,KACb,EAAG,IAAM,EAAK,GACV,EAAG,GAAK,GAAK,GAAG,IAAM,GAC1B,EAAG,IAAM,EAAK,GACV,EAAG,GAAK,GAAK,GAAG,IAAM,GAC1B,EAAG,IAAM,EAAK,GACV,EAAG,GAAK,GAAK,GAAG,IAAM,GAC1B,EAAO,KAGT,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EACR,EAAE,GAAK,EAAE,GACT,EAAE,GAAK,EAAE,GACT,EAAE,GAAK,EAAE,GACF,EAGT,WAAc,EAAM,EAAM,CACxB,GAAI,GAAK,GAAI,GAAK,GACd,EAAQ,GAAQ,EAAK,MACrB,EAAO,EAAG,KACd,SAAK,MAAQ,UAAW,CAAE,MAAQ,GAAG,OAAS,WAAe,GAC7D,EAAK,OAAS,UAAW,CACvB,MAAO,KAAU,KAAS,QAAW,GAAK,uBAE5C,EAAK,MAAQ,EACT,GACE,OAAO,IAAU,UAAU,EAAK,EAAO,GAC3C,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAI,MAErC,EAGT,YAAgB,CACd,GAAI,GAAI,WAEJ,EAAO,SAAS,EAAM,CACxB,EAAO,EAAK,WACZ,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CACpC,GAAK,EAAK,WAAW,GACrB,GAAI,GAAI,mBAAsB,EAC9B,EAAI,IAAM,EACV,GAAK,EACL,GAAK,EACL,EAAI,IAAM,EACV,GAAK,EACL,GAAK,EAAI,WAEX,MAAQ,KAAM,GAAK,uBAGrB,MAAO,GAIT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,UAAW,CAAE,MAAO,KAE3B,KAAK,KAAO,IAIZ,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UC9GnC,oBAGA,AAAC,UAAS,EAAQ,EAAQ,EAAQ,CAElC,WAAgB,EAAM,CACpB,GAAI,GAAK,KAAM,EAAU,GAEzB,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EAGP,EAAG,KAAO,UAAW,CACnB,GAAI,GAAI,EAAG,EAAK,EAAG,GAAK,GACxB,SAAG,EAAI,EAAG,EACV,EAAG,EAAI,EAAG,EACV,EAAG,EAAI,EAAG,EACH,EAAG,GAAM,EAAG,IAAM,GAAM,EAAK,IAAM,GAG5C,AAAI,IAAU,GAAO,GAEnB,EAAG,EAAI,EAGP,GAAW,EAIb,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAS,GAAI,IACvC,EAAG,GAAK,EAAQ,WAAW,GAAK,EAChC,EAAG,OAIP,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,WAAc,EAAM,EAAM,CACxB,GAAI,GAAK,GAAI,GAAO,GAChB,EAAQ,GAAQ,EAAK,MACrB,EAAO,UAAW,CAAE,MAAQ,GAAG,SAAW,GAAK,YACnD,SAAK,OAAS,UAAW,CACvB,EACE,IAAI,GAAM,EAAG,SAAW,GACpB,EAAO,GAAG,SAAW,GAAK,WAC1B,EAAU,GAAM,GAAQ,IAAK,UAC1B,IAAW,GACpB,MAAO,IAET,EAAK,MAAQ,EAAG,KAChB,EAAK,MAAQ,EACT,GACE,OAAO,IAAU,UAAU,EAAK,EAAO,GAC3C,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAI,MAErC,EAGT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,UAAW,CAAE,MAAO,KAE3B,KAAK,OAAS,IAId,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UC7EnC,oBAGA,AAAC,UAAS,EAAQ,EAAQ,EAAQ,CAElC,WAAgB,EAAM,CACpB,GAAI,GAAK,KAAM,EAAU,GAGzB,EAAG,KAAO,UAAW,CACnB,GAAI,GAAK,EAAG,EAAK,EAAG,IAAM,EAC1B,SAAG,EAAI,EAAG,EAAG,EAAG,EAAI,EAAG,EAAG,EAAG,EAAI,EAAG,EAAG,EAAG,EAAI,EAAG,EACzC,GAAG,EAAK,EAAG,EAAI,OAAS,GAC5B,GAAG,EAAK,EAAG,EAAK,EAAG,GAAK,EAAO,GAAK,GAAK,IAAO,GAGtD,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EAEP,AAAI,IAAU,GAAO,GAEnB,EAAG,EAAI,EAGP,GAAW,EAIb,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAS,GAAI,IACvC,EAAG,GAAK,EAAQ,WAAW,GAAK,EAC5B,GAAK,EAAQ,QACf,GAAG,EAAI,EAAG,GAAK,GAAK,EAAG,IAAM,GAE/B,EAAG,OAIP,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,WAAc,EAAM,EAAM,CACxB,GAAI,GAAK,GAAI,GAAO,GAChB,EAAQ,GAAQ,EAAK,MACrB,EAAO,UAAW,CAAE,MAAQ,GAAG,SAAW,GAAK,YACnD,SAAK,OAAS,UAAW,CACvB,EACE,IAAI,GAAM,EAAG,SAAW,GACpB,EAAO,GAAG,SAAW,GAAK,WAC1B,EAAU,GAAM,GAAQ,IAAK,UAC1B,IAAW,GACpB,MAAO,IAET,EAAK,MAAQ,EAAG,KAChB,EAAK,MAAQ,EACT,GACE,OAAO,IAAU,UAAU,EAAK,EAAO,GAC3C,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAI,MAErC,EAGT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,UAAW,CAAE,MAAO,KAE3B,KAAK,OAAS,IAId,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UClFnC,oBAKA,AAAC,UAAS,EAAQ,EAAQ,EAAQ,CAElC,WAAgB,EAAM,CACpB,GAAI,GAAK,KAGT,EAAG,KAAO,UAAW,CAEnB,GAAI,GAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAG,EAAG,EAC9B,SAAI,EAAE,GAAI,GAAM,IAAM,EAAI,EAAI,EAAK,GAAK,GACxC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,IAAM,GACpC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,IAAM,EACpC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,GAAK,EACnC,EAAI,EAAG,EAAI,EAAK,GAAI,EAAI,EAAK,GAAK,GAAK,GAAK,EAAK,GAAK,EACtD,EAAE,GAAK,EACP,EAAG,EAAK,EAAI,EAAK,EACV,GAGT,WAAc,EAAI,EAAM,CACtB,GAAI,GAAG,EAAG,EAAI,GAEd,GAAI,IAAU,GAAO,GAEnB,EAAI,EAAE,GAAK,MAIX,KADA,EAAO,GAAK,EACP,EAAI,EAAG,EAAI,EAAK,OAAQ,EAAE,EAC7B,EAAE,EAAI,GAAM,EAAE,EAAI,IAAM,GACnB,EAAK,WAAW,GAAK,EAAG,EAAI,EAAK,IAAM,GAIhD,KAAO,EAAE,OAAS,GAAG,EAAE,KAAK,GAC5B,IAAK,EAAI,EAAG,EAAI,GAAK,EAAE,KAAO,EAAG,EAAE,EAAE,CAOrC,IANA,AAAI,GAAK,EAAG,EAAI,EAAE,GAAK,GAAS,EAAI,EAAE,GAEtC,EAAG,EAAI,EACP,EAAG,EAAI,EAGF,EAAI,IAAK,EAAI,EAAG,EAAE,EACrB,EAAG,OAIP,EAAK,EAAI,GAGX,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EAAE,QACV,EAAE,EAAI,EAAE,EACD,EAGT,WAAc,EAAM,EAAM,CACxB,AAAI,GAAQ,MAAM,GAAO,CAAE,GAAI,OAC/B,GAAI,GAAK,GAAI,GAAO,GAChB,EAAQ,GAAQ,EAAK,MACrB,EAAO,UAAW,CAAE,MAAQ,GAAG,SAAW,GAAK,YACnD,SAAK,OAAS,UAAW,CACvB,EACE,IAAI,GAAM,EAAG,SAAW,GACpB,EAAO,GAAG,SAAW,GAAK,WAC1B,EAAU,GAAM,GAAQ,IAAK,UAC1B,IAAW,GACpB,MAAO,IAET,EAAK,MAAQ,EAAG,KAChB,EAAK,MAAQ,EACT,GACE,GAAM,GAAG,EAAK,EAAO,GACzB,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAI,MAErC,EAGT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,UAAW,CAAE,MAAO,KAE3B,KAAK,UAAY,IAIjB,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UC9FnC,oBAyBA,AAAC,UAAS,EAAQ,EAAQ,EAAQ,CAElC,WAAgB,EAAM,CACpB,GAAI,GAAK,KAGT,EAAG,KAAO,UAAW,CACnB,GAAI,GAAI,EAAG,EACP,EAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAG,EAE3B,SAAG,EAAI,EAAK,EAAI,WAAc,EAE9B,EAAI,EAAG,EAAI,GAAM,KACjB,EAAI,EAAE,EAAM,EAAI,EAAK,KACrB,GAAK,GAAK,GACV,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,IAAM,GAEX,EAAI,EAAE,GAAK,EAAI,EACf,EAAG,EAAI,EAEC,EAAK,GAAK,IAAM,IAAQ,GAGlC,WAAc,EAAI,EAAM,CACtB,GAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAI,GAAI,EAAQ,IAYnC,IAXA,AAAI,IAAU,GAAO,GAEnB,GAAI,EACJ,EAAO,MAGP,GAAO,EAAO,KACd,EAAI,EACJ,EAAQ,KAAK,IAAI,EAAO,EAAK,SAG1B,EAAI,EAAG,EAAI,IAAK,EAAI,EAAO,EAAE,EAEhC,AAAI,GAAM,IAAK,EAAK,WAAY,GAAI,IAAM,EAAK,SAE3C,IAAM,GAAG,GAAI,GACjB,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,GAAK,EACV,GAAK,IAAM,GACP,GAAK,GACP,GAAK,EAAI,WAAc,EACvB,EAAK,EAAE,EAAI,MAAS,EAAI,EACxB,EAAK,AAAK,GAAL,EAAU,EAAI,EAAI,GAW3B,IAPI,GAAK,KACP,GAAG,IAAQ,EAAK,QAAU,GAAK,KAAO,IAKxC,EAAI,IACC,EAAI,EAAI,IAAK,EAAI,EAAG,EAAE,EACzB,EAAI,EAAG,EAAI,GAAM,KACjB,EAAI,EAAE,EAAM,EAAI,EAAK,KACrB,GAAK,GAAK,GACV,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,IAAM,GACX,EAAE,GAAK,EAAI,EAGb,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EAGT,EAAK,EAAI,GAGX,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EAAE,QACH,EAGT,WAAc,EAAM,EAAM,CACxB,AAAI,GAAQ,MAAM,GAAO,CAAE,GAAI,OAC/B,GAAI,GAAK,GAAI,GAAO,GAChB,EAAQ,GAAQ,EAAK,MACrB,EAAO,UAAW,CAAE,MAAQ,GAAG,SAAW,GAAK,YACnD,SAAK,OAAS,UAAW,CACvB,EACE,IAAI,GAAM,EAAG,SAAW,GACpB,EAAO,GAAG,SAAW,GAAK,WAC1B,EAAU,GAAM,GAAQ,IAAK,UAC1B,IAAW,GACpB,MAAO,IAET,EAAK,MAAQ,EAAG,KAChB,EAAK,MAAQ,EACT,GACE,GAAM,GAAG,EAAK,EAAO,GACzB,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAI,MAErC,EAGT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,UAAW,CAAE,MAAO,KAE3B,KAAK,QAAU,IAIf,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UChJnC,oBAIA,AAAC,UAAS,EAAQ,EAAQ,EAAQ,CAElC,WAAgB,EAAM,CACpB,GAAI,GAAK,KAAM,EAAU,GAGzB,EAAG,KAAO,UAAW,CACnB,GAAI,GAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAI,EAAG,EACzC,SAAK,GAAK,GAAO,IAAM,EAAK,EAC5B,EAAK,EAAI,EAAK,EACd,EAAK,GAAK,GAAO,IAAM,EAAK,EAC5B,EAAK,EAAI,EAAK,EACd,EAAG,EAAI,EAAK,GAAK,GAAO,IAAM,GAAM,EACpC,EAAG,EAAI,EAAK,EAAI,EAAK,EACrB,EAAG,EAAK,GAAK,GAAO,IAAM,GAAM,EACzB,EAAG,EAAK,EAAI,EAAK,GAmB1B,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,WAAa,EACpB,EAAG,EAAI,WAEP,AAAI,IAAS,KAAK,MAAM,GAEtB,GAAG,EAAK,EAAO,WAAe,EAC9B,EAAG,EAAI,EAAO,GAGd,GAAW,EAIb,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAS,GAAI,IACvC,EAAG,GAAK,EAAQ,WAAW,GAAK,EAChC,EAAG,OAIP,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,WAAc,EAAM,EAAM,CACxB,GAAI,GAAK,GAAI,GAAO,GAChB,EAAQ,GAAQ,EAAK,MACrB,EAAO,UAAW,CAAE,MAAQ,GAAG,SAAW,GAAK,YACnD,SAAK,OAAS,UAAW,CACvB,EACE,IAAI,GAAM,EAAG,SAAW,GACpB,EAAO,GAAG,SAAW,GAAK,WAC1B,EAAU,GAAM,GAAQ,IAAK,UAC1B,IAAW,GACpB,MAAO,IAET,EAAK,MAAQ,EAAG,KAChB,EAAK,MAAQ,EACT,GACE,OAAO,IAAU,UAAU,EAAK,EAAO,GAC3C,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAI,MAErC,EAGT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,UAAW,CAAE,MAAO,KAE3B,KAAK,OAAS,IAId,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UCnGnC,kBCAA,qBAwBA,AAAC,UAAU,EAAM,EAAM,CAIvB,GAAI,GAAS,KACT,EAAQ,IACR,EAAS,EACT,EAAS,GACT,EAAU,SACV,EAAa,EAAK,IAAI,EAAO,GAC7B,EAAe,EAAK,IAAI,EAAG,GAC3B,EAAW,EAAe,EAC1B,EAAO,EAAQ,EACf,EAMJ,WAAoB,EAAM,EAAS,EAAU,CAC3C,GAAI,GAAM,GACV,EAAW,GAAW,GAAQ,CAAE,QAAS,IAAU,GAAW,GAG9D,GAAI,GAAY,EAAO,EACrB,EAAQ,QAAU,CAAC,EAAM,EAAS,IACjC,GAAQ,KAAQ,IAAa,EAAM,GAAI,GAGtC,EAAO,GAAI,GAAK,GAIhB,EAAO,UAAW,CAIpB,OAHI,GAAI,EAAK,EAAE,GACX,EAAI,EACJ,EAAI,EACD,EAAI,GACT,EAAK,GAAI,GAAK,EACd,GAAK,EACL,EAAI,EAAK,EAAE,GAEb,KAAO,GAAK,GACV,GAAK,EACL,GAAK,EACL,KAAO,EAET,MAAQ,GAAI,GAAK,GAGnB,SAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAE,GAAK,GAC7C,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAE,GAAK,YAC7C,EAAK,OAAS,EAGd,EAAO,EAAS,EAAK,GAAI,GAGjB,GAAQ,MAAQ,GACpB,SAAS,EAAM,EAAM,EAAc,EAAO,CAUxC,MATI,IAEE,GAAM,GAAK,EAAK,EAAO,GAE3B,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAM,MAK1C,EAAgB,GAAK,GAAW,EAAa,GAIrC,IAElB,EACA,EACA,UAAY,GAAU,EAAQ,OAAU,MAAQ,EAChD,EAAQ,OAEV,EAAK,OAAS,GAAW,EAYzB,WAAc,EAAK,CACjB,GAAI,GAAG,EAAS,EAAI,OAChB,EAAK,KAAM,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,GAMtD,IAHK,GAAU,GAAM,CAAC,MAGf,EAAI,GACT,EAAE,GAAK,IAET,IAAK,EAAI,EAAG,EAAI,EAAO,IACrB,EAAE,GAAK,EAAE,EAAI,EAAQ,EAAI,EAAI,EAAI,GAAW,GAAI,EAAE,KAClD,EAAE,GAAK,EAIT,AAAC,GAAG,EAAI,SAAS,EAAO,CAItB,OAFI,GAAG,EAAI,EACP,EAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAI,EAAG,EACxB,KACL,EAAI,EAAE,EAAI,EAAQ,EAAI,GACtB,EAAI,EAAI,EAAQ,EAAE,EAAS,GAAE,GAAK,EAAE,EAAI,EAAQ,EAAI,IAAQ,GAAE,GAAK,IAErE,SAAG,EAAI,EAAG,EAAG,EAAI,EACV,IAIN,GAOL,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EAAE,QACH,EAOT,WAAiB,EAAK,EAAO,CAC3B,GAAI,GAAS,GAAI,EAAO,MAAO,GAAM,EACrC,GAAI,GAAS,GAAO,SAClB,IAAK,IAAQ,GACX,GAAI,CAAE,EAAO,KAAK,EAAQ,EAAI,GAAO,EAAQ,UAAc,EAAP,EAGxD,MAAQ,GAAO,OAAS,EAAS,GAAO,SAAW,EAAM,EAAM,KAQjE,WAAgB,EAAM,EAAK,CAEzB,OADI,GAAa,EAAO,GAAI,EAAO,EAAI,EAChC,EAAI,EAAW,QACpB,EAAI,EAAO,GACT,EAAS,IAAS,EAAI,EAAO,GAAK,IAAM,EAAW,WAAW,KAElE,MAAO,GAAS,GAQlB,YAAoB,CAClB,GAAI,CACF,GAAI,GACJ,MAAI,IAAe,GAAM,EAAW,aAElC,EAAM,EAAI,GAEV,GAAM,GAAI,YAAW,GACpB,GAAO,QAAU,EAAO,UAAU,gBAAgB,IAE9C,EAAS,SACT,EAAP,CACA,GAAI,GAAU,EAAO,UACjB,EAAU,GAAW,EAAQ,QACjC,MAAO,CAAC,CAAC,GAAI,MAAM,EAAQ,EAAS,EAAO,OAAQ,EAAS,KAQhE,WAAkB,EAAG,CACnB,MAAO,QAAO,aAAa,MAAM,EAAG,GAgBtC,GANA,EAAO,EAAK,SAAU,GAMjB,MAAO,KAAW,UAAY,GAAO,QAAS,CACjD,GAAO,QAAU,EAEjB,GAAI,CACF,EAAqB,WACd,EAAP,OACG,AAAK,OAAO,SAAW,YAAc,OAAO,KACjD,OAAO,UAAW,CAAE,MAAO,OAK3B,GACA,QCrPF,qBAYA,GAAI,IAAe,KAKf,GAAiB,KAKjB,GAAiB,KAQjB,GAAoB,KASpB,GAAkB,KAOlB,GAAiB,KAIjB,GAAa,KAEjB,GAAG,KAAO,GACV,GAAG,OAAS,GACZ,GAAG,OAAS,GACZ,GAAG,UAAY,GACf,GAAG,QAAU,GACb,GAAG,OAAS,GAEZ,GAAO,QAAU,KC3DjB,oBA2BA,AAAC,UAAS,EAAQ,EAAQ,EAAQ,CAElC,WAAc,EAAM,CAClB,GAAI,GAAK,KAAM,EAAO,IAEtB,EAAG,KAAO,UAAW,CACnB,GAAI,GAAI,QAAU,EAAG,GAAK,EAAG,EAAI,sBACjC,SAAG,GAAK,EAAG,GACX,EAAG,GAAK,EAAG,GACJ,EAAG,GAAK,EAAK,GAAG,EAAI,EAAI,IAIjC,EAAG,EAAI,EACP,EAAG,GAAK,EAAK,KACb,EAAG,GAAK,EAAK,KACb,EAAG,GAAK,EAAK,KACb,EAAG,IAAM,EAAK,GACV,EAAG,GAAK,GAAK,GAAG,IAAM,GAC1B,EAAG,IAAM,EAAK,GACV,EAAG,GAAK,GAAK,GAAG,IAAM,GAC1B,EAAG,IAAM,EAAK,GACV,EAAG,GAAK,GAAK,GAAG,IAAM,GAC1B,EAAO,KAGT,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EACR,EAAE,GAAK,EAAE,GACT,EAAE,GAAK,EAAE,GACT,EAAE,GAAK,EAAE,GACF,EAGT,WAAc,EAAM,EAAM,CACxB,GAAI,GAAK,GAAI,GAAK,GACd,EAAQ,GAAQ,EAAK,MACrB,EAAO,EAAG,KACd,SAAK,MAAQ,UAAW,CAAE,MAAQ,GAAG,OAAS,WAAe,GAC7D,EAAK,OAAS,UAAW,CACvB,MAAO,KAAU,KAAS,QAAW,GAAK,uBAE5C,EAAK,MAAQ,EACT,GACE,OAAO,IAAU,UAAU,EAAK,EAAO,GAC3C,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAI,MAErC,EAGT,YAAgB,CACd,GAAI,GAAI,WAEJ,EAAO,SAAS,EAAM,CACxB,EAAO,EAAK,WACZ,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CACpC,GAAK,EAAK,WAAW,GACrB,GAAI,GAAI,mBAAsB,EAC9B,EAAI,IAAM,EACV,GAAK,EACL,GAAK,EACL,EAAI,IAAM,EACV,GAAK,EACL,GAAK,EAAI,WAEX,MAAQ,KAAM,GAAK,uBAGrB,MAAO,GAIT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,UAAW,CAAE,MAAO,KAE3B,KAAK,KAAO,IAIZ,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UC9GnC,oBAGA,AAAC,UAAS,EAAQ,EAAQ,EAAQ,CAElC,WAAgB,EAAM,CACpB,GAAI,GAAK,KAAM,EAAU,GAEzB,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EAGP,EAAG,KAAO,UAAW,CACnB,GAAI,GAAI,EAAG,EAAK,EAAG,GAAK,GACxB,SAAG,EAAI,EAAG,EACV,EAAG,EAAI,EAAG,EACV,EAAG,EAAI,EAAG,EACH,EAAG,GAAM,EAAG,IAAM,GAAM,EAAK,IAAM,GAG5C,AAAI,IAAU,GAAO,GAEnB,EAAG,EAAI,EAGP,GAAW,EAIb,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAS,GAAI,IACvC,EAAG,GAAK,EAAQ,WAAW,GAAK,EAChC,EAAG,OAIP,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,WAAc,EAAM,EAAM,CACxB,GAAI,GAAK,GAAI,GAAO,GAChB,EAAQ,GAAQ,EAAK,MACrB,EAAO,UAAW,CAAE,MAAQ,GAAG,SAAW,GAAK,YACnD,SAAK,OAAS,UAAW,CACvB,EACE,IAAI,GAAM,EAAG,SAAW,GACpB,EAAO,GAAG,SAAW,GAAK,WAC1B,EAAU,GAAM,GAAQ,IAAK,UAC1B,IAAW,GACpB,MAAO,IAET,EAAK,MAAQ,EAAG,KAChB,EAAK,MAAQ,EACT,GACE,OAAO,IAAU,UAAU,EAAK,EAAO,GAC3C,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAI,MAErC,EAGT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,UAAW,CAAE,MAAO,KAE3B,KAAK,OAAS,IAId,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UC7EnC,oBAGA,AAAC,UAAS,EAAQ,EAAQ,EAAQ,CAElC,WAAgB,EAAM,CACpB,GAAI,GAAK,KAAM,EAAU,GAGzB,EAAG,KAAO,UAAW,CACnB,GAAI,GAAK,EAAG,EAAK,EAAG,IAAM,EAC1B,SAAG,EAAI,EAAG,EAAG,EAAG,EAAI,EAAG,EAAG,EAAG,EAAI,EAAG,EAAG,EAAG,EAAI,EAAG,EACzC,GAAG,EAAK,EAAG,EAAI,OAAS,GAC5B,GAAG,EAAK,EAAG,EAAK,EAAG,GAAK,EAAO,GAAK,GAAK,IAAO,GAGtD,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EAEP,AAAI,IAAU,GAAO,GAEnB,EAAG,EAAI,EAGP,GAAW,EAIb,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAS,GAAI,IACvC,EAAG,GAAK,EAAQ,WAAW,GAAK,EAC5B,GAAK,EAAQ,QACf,GAAG,EAAI,EAAG,GAAK,GAAK,EAAG,IAAM,GAE/B,EAAG,OAIP,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,WAAc,EAAM,EAAM,CACxB,GAAI,GAAK,GAAI,GAAO,GAChB,EAAQ,GAAQ,EAAK,MACrB,EAAO,UAAW,CAAE,MAAQ,GAAG,SAAW,GAAK,YACnD,SAAK,OAAS,UAAW,CACvB,EACE,IAAI,GAAM,EAAG,SAAW,GACpB,EAAO,GAAG,SAAW,GAAK,WAC1B,EAAU,GAAM,GAAQ,IAAK,UAC1B,IAAW,GACpB,MAAO,IAET,EAAK,MAAQ,EAAG,KAChB,EAAK,MAAQ,EACT,GACE,OAAO,IAAU,UAAU,EAAK,EAAO,GAC3C,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAI,MAErC,EAGT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,UAAW,CAAE,MAAO,KAE3B,KAAK,OAAS,IAId,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UClFnC,oBAKA,AAAC,UAAS,EAAQ,EAAQ,EAAQ,CAElC,WAAgB,EAAM,CACpB,GAAI,GAAK,KAGT,EAAG,KAAO,UAAW,CAEnB,GAAI,GAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAG,EAAG,EAC9B,SAAI,EAAE,GAAI,GAAM,IAAM,EAAI,EAAI,EAAK,GAAK,GACxC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,IAAM,GACpC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,IAAM,EACpC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,GAAK,EACnC,EAAI,EAAG,EAAI,EAAK,GAAI,EAAI,EAAK,GAAK,GAAK,GAAK,EAAK,GAAK,EACtD,EAAE,GAAK,EACP,EAAG,EAAK,EAAI,EAAK,EACV,GAGT,WAAc,EAAI,EAAM,CACtB,GAAI,GAAG,EAAG,EAAI,GAEd,GAAI,IAAU,GAAO,GAEnB,EAAI,EAAE,GAAK,MAIX,KADA,EAAO,GAAK,EACP,EAAI,EAAG,EAAI,EAAK,OAAQ,EAAE,EAC7B,EAAE,EAAI,GAAM,EAAE,EAAI,IAAM,GACnB,EAAK,WAAW,GAAK,EAAG,EAAI,EAAK,IAAM,GAIhD,KAAO,EAAE,OAAS,GAAG,EAAE,KAAK,GAC5B,IAAK,EAAI,EAAG,EAAI,GAAK,EAAE,KAAO,EAAG,EAAE,EAAE,CAOrC,IANA,AAAI,GAAK,EAAG,EAAI,EAAE,GAAK,GAAS,EAAI,EAAE,GAEtC,EAAG,EAAI,EACP,EAAG,EAAI,EAGF,EAAI,IAAK,EAAI,EAAG,EAAE,EACrB,EAAG,OAIP,EAAK,EAAI,GAGX,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EAAE,QACV,EAAE,EAAI,EAAE,EACD,EAGT,WAAc,EAAM,EAAM,CACxB,AAAI,GAAQ,MAAM,GAAO,CAAE,GAAI,OAC/B,GAAI,GAAK,GAAI,GAAO,GAChB,EAAQ,GAAQ,EAAK,MACrB,EAAO,UAAW,CAAE,MAAQ,GAAG,SAAW,GAAK,YACnD,SAAK,OAAS,UAAW,CACvB,EACE,IAAI,GAAM,EAAG,SAAW,GACpB,EAAO,GAAG,SAAW,GAAK,WAC1B,EAAU,GAAM,GAAQ,IAAK,UAC1B,IAAW,GACpB,MAAO,IAET,EAAK,MAAQ,EAAG,KAChB,EAAK,MAAQ,EACT,GACE,GAAM,GAAG,EAAK,EAAO,GACzB,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAI,MAErC,EAGT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,UAAW,CAAE,MAAO,KAE3B,KAAK,UAAY,IAIjB,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UC9FnC,oBAyBA,AAAC,UAAS,EAAQ,EAAQ,EAAQ,CAElC,WAAgB,EAAM,CACpB,GAAI,GAAK,KAGT,EAAG,KAAO,UAAW,CACnB,GAAI,GAAI,EAAG,EACP,EAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAG,EAE3B,SAAG,EAAI,EAAK,EAAI,WAAc,EAE9B,EAAI,EAAG,EAAI,GAAM,KACjB,EAAI,EAAE,EAAM,EAAI,EAAK,KACrB,GAAK,GAAK,GACV,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,IAAM,GAEX,EAAI,EAAE,GAAK,EAAI,EACf,EAAG,EAAI,EAEC,EAAK,GAAK,IAAM,IAAQ,GAGlC,WAAc,EAAI,EAAM,CACtB,GAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAI,GAAI,EAAQ,IAYnC,IAXA,AAAI,IAAU,GAAO,GAEnB,GAAI,EACJ,EAAO,MAGP,GAAO,EAAO,KACd,EAAI,EACJ,EAAQ,KAAK,IAAI,EAAO,EAAK,SAG1B,EAAI,EAAG,EAAI,IAAK,EAAI,EAAO,EAAE,EAEhC,AAAI,GAAM,IAAK,EAAK,WAAY,GAAI,IAAM,EAAK,SAE3C,IAAM,GAAG,GAAI,GACjB,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,GAAK,EACV,GAAK,IAAM,GACP,GAAK,GACP,GAAK,EAAI,WAAc,EACvB,EAAK,EAAE,EAAI,MAAS,EAAI,EACxB,EAAK,AAAK,GAAL,EAAU,EAAI,EAAI,GAW3B,IAPI,GAAK,KACP,GAAG,IAAQ,EAAK,QAAU,GAAK,KAAO,IAKxC,EAAI,IACC,EAAI,EAAI,IAAK,EAAI,EAAG,EAAE,EACzB,EAAI,EAAG,EAAI,GAAM,KACjB,EAAI,EAAE,EAAM,EAAI,EAAK,KACrB,GAAK,GAAK,GACV,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,IAAM,GACX,EAAE,GAAK,EAAI,EAGb,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EAGT,EAAK,EAAI,GAGX,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EAAE,QACH,EAGT,WAAc,EAAM,EAAM,CACxB,AAAI,GAAQ,MAAM,GAAO,CAAE,GAAI,OAC/B,GAAI,GAAK,GAAI,GAAO,GAChB,EAAQ,GAAQ,EAAK,MACrB,EAAO,UAAW,CAAE,MAAQ,GAAG,SAAW,GAAK,YACnD,SAAK,OAAS,UAAW,CACvB,EACE,IAAI,GAAM,EAAG,SAAW,GACpB,EAAO,GAAG,SAAW,GAAK,WAC1B,EAAU,GAAM,GAAQ,IAAK,UAC1B,IAAW,GACpB,MAAO,IAET,EAAK,MAAQ,EAAG,KAChB,EAAK,MAAQ,EACT,GACE,GAAM,GAAG,EAAK,EAAO,GACzB,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAI,MAErC,EAGT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,UAAW,CAAE,MAAO,KAE3B,KAAK,QAAU,IAIf,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UChJnC,oBAIA,AAAC,UAAS,EAAQ,EAAQ,EAAQ,CAElC,WAAgB,EAAM,CACpB,GAAI,GAAK,KAAM,EAAU,GAGzB,EAAG,KAAO,UAAW,CACnB,GAAI,GAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAI,EAAG,EACzC,SAAK,GAAK,GAAO,IAAM,EAAK,EAC5B,EAAK,EAAI,EAAK,EACd,EAAK,GAAK,GAAO,IAAM,EAAK,EAC5B,EAAK,EAAI,EAAK,EACd,EAAG,EAAI,EAAK,GAAK,GAAO,IAAM,GAAM,EACpC,EAAG,EAAI,EAAK,EAAI,EAAK,EACrB,EAAG,EAAK,GAAK,GAAO,IAAM,GAAM,EACzB,EAAG,EAAK,EAAI,EAAK,GAmB1B,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,WAAa,EACpB,EAAG,EAAI,WAEP,AAAI,IAAS,KAAK,MAAM,GAEtB,GAAG,EAAK,EAAO,WAAe,EAC9B,EAAG,EAAI,EAAO,GAGd,GAAW,EAIb,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAS,GAAI,IACvC,EAAG,GAAK,EAAQ,WAAW,GAAK,EAChC,EAAG,OAIP,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,WAAc,EAAM,EAAM,CACxB,GAAI,GAAK,GAAI,GAAO,GAChB,EAAQ,GAAQ,EAAK,MACrB,EAAO,UAAW,CAAE,MAAQ,GAAG,SAAW,GAAK,YACnD,SAAK,OAAS,UAAW,CACvB,EACE,IAAI,GAAM,EAAG,SAAW,GACpB,EAAO,GAAG,SAAW,GAAK,WAC1B,EAAU,GAAM,GAAQ,IAAK,UAC1B,IAAW,GACpB,MAAO,IAET,EAAK,MAAQ,EAAG,KAChB,EAAK,MAAQ,EACT,GACE,OAAO,IAAU,UAAU,EAAK,EAAO,GAC3C,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAI,MAErC,EAGT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,UAAW,CAAE,MAAO,KAE3B,KAAK,OAAS,IAId,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UCnGnC,qBAwBA,AAAC,UAAU,EAAM,EAAM,CAOvB,GAAI,GAAU,GAAG,MAAM,QACnB,EAAQ,IACR,EAAS,EACT,EAAS,GACT,EAAU,SACV,EAAa,EAAK,IAAI,EAAO,GAC7B,EAAe,EAAK,IAAI,EAAG,GAC3B,EAAW,EAAe,EAC1B,EAAO,EAAQ,EACf,EAMJ,WAAoB,EAAM,EAAS,EAAU,CAC3C,GAAI,GAAM,GACV,EAAW,GAAW,GAAQ,CAAE,QAAS,IAAU,GAAW,GAG9D,GAAI,GAAY,EAAO,EACrB,EAAQ,QAAU,CAAC,EAAM,EAAS,IACjC,GAAQ,KAAQ,IAAa,EAAM,GAAI,GAGtC,EAAO,GAAI,GAAK,GAIhB,EAAO,UAAW,CAIpB,OAHI,GAAI,EAAK,EAAE,GACX,EAAI,EACJ,EAAI,EACD,EAAI,GACT,EAAK,GAAI,GAAK,EACd,GAAK,EACL,EAAI,EAAK,EAAE,GAEb,KAAO,GAAK,GACV,GAAK,EACL,GAAK,EACL,KAAO,EAET,MAAQ,GAAI,GAAK,GAGnB,SAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAE,GAAK,GAC7C,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAE,GAAK,YAC7C,EAAK,OAAS,EAGd,EAAO,EAAS,EAAK,GAAI,GAGjB,GAAQ,MAAQ,GACpB,SAAS,EAAM,EAAM,EAAc,EAAO,CAUxC,MATI,IAEE,GAAM,GAAK,EAAK,EAAO,GAE3B,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAM,MAK1C,EAAgB,GAAK,GAAW,EAAa,GAIrC,IAElB,EACA,EACA,UAAY,GAAU,EAAQ,OAAU,MAAQ,EAChD,EAAQ,OAEV,EAAK,OAAS,GAAW,EAYzB,WAAc,EAAK,CACjB,GAAI,GAAG,EAAS,EAAI,OAChB,EAAK,KAAM,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,GAMtD,IAHK,GAAU,GAAM,CAAC,MAGf,EAAI,GACT,EAAE,GAAK,IAET,IAAK,EAAI,EAAG,EAAI,EAAO,IACrB,EAAE,GAAK,EAAE,EAAI,EAAQ,EAAI,EAAI,EAAI,GAAW,GAAI,EAAE,KAClD,EAAE,GAAK,EAIT,AAAC,GAAG,EAAI,SAAS,EAAO,CAItB,OAFI,GAAG,EAAI,EACP,EAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAI,EAAG,EACxB,KACL,EAAI,EAAE,EAAI,EAAQ,EAAI,GACtB,EAAI,EAAI,EAAQ,EAAE,EAAS,GAAE,GAAK,EAAE,EAAI,EAAQ,EAAI,IAAQ,GAAE,GAAK,IAErE,SAAG,EAAI,EAAG,EAAG,EAAI,EACV,IAIN,GAOL,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EAAE,QACH,EAOT,WAAiB,EAAK,EAAO,CAC3B,GAAI,GAAS,GAAI,EAAO,MAAO,GAAM,EACrC,GAAI,GAAS,GAAO,SAClB,IAAK,IAAQ,GACX,GAAI,CAAE,EAAO,KAAK,EAAQ,EAAI,GAAO,EAAQ,UAAc,EAAP,EAGxD,MAAQ,GAAO,OAAS,EAAS,GAAO,SAAW,EAAM,EAAM,KAQjE,WAAgB,EAAM,EAAK,CAEzB,OADI,GAAa,EAAO,GAAI,EAAO,EAAI,EAChC,EAAI,EAAW,QACpB,EAAI,EAAO,GACT,EAAS,IAAS,EAAI,EAAO,GAAK,IAAM,EAAW,WAAW,KAElE,MAAO,GAAS,GAQlB,YAAoB,CAClB,GAAI,CACF,GAAI,GACJ,MAAI,IAAe,GAAM,EAAW,aAElC,EAAM,EAAI,GAEV,GAAM,GAAI,YAAW,GACpB,GAAO,QAAU,EAAO,UAAU,gBAAgB,IAE9C,EAAS,SACT,EAAP,CACA,GAAI,GAAU,EAAO,UACjB,EAAU,GAAW,EAAQ,QACjC,MAAO,CAAC,CAAC,GAAI,MAAM,EAAQ,EAAS,EAAO,OAAQ,EAAS,KAQhE,WAAkB,EAAG,CACnB,MAAO,QAAO,aAAa,MAAM,EAAG,GAgBtC,GANA,EAAO,EAAK,SAAU,GAMjB,MAAO,KAAW,UAAY,GAAO,QAAS,CACjD,GAAO,QAAU,EAEjB,GAAI,CACF,EAAqB,WACd,EAAP,OACG,AAAK,OAAO,SAAW,YAAc,OAAO,KACjD,OAAO,UAAW,CAAE,MAAO,OAK3B,GACA,QCxPF,qBAYA,GAAI,IAAe,KAKf,GAAiB,KAKjB,GAAiB,KAQjB,GAAoB,KASpB,GAAkB,KAOlB,GAAiB,KAIjB,GAAa,KAEjB,GAAG,KAAO,GACV,GAAG,OAAS,GACZ,GAAG,OAAS,GACZ,GAAG,UAAY,GACf,GAAG,QAAU,GACb,GAAG,OAAS,GAEZ,GAAO,QAAU,KC3DjB,kBCAA,oBA2BA,AAAC,UAAS,EAAQ,EAAQ,EAAQ,CAElC,WAAc,EAAM,CAClB,GAAI,GAAK,KAAM,EAAO,IAEtB,EAAG,KAAO,UAAW,CACnB,GAAI,GAAI,QAAU,EAAG,GAAK,EAAG,EAAI,sBACjC,SAAG,GAAK,EAAG,GACX,EAAG,GAAK,EAAG,GACJ,EAAG,GAAK,EAAK,GAAG,EAAI,EAAI,IAIjC,EAAG,EAAI,EACP,EAAG,GAAK,EAAK,KACb,EAAG,GAAK,EAAK,KACb,EAAG,GAAK,EAAK,KACb,EAAG,IAAM,EAAK,GACV,EAAG,GAAK,GAAK,GAAG,IAAM,GAC1B,EAAG,IAAM,EAAK,GACV,EAAG,GAAK,GAAK,GAAG,IAAM,GAC1B,EAAG,IAAM,EAAK,GACV,EAAG,GAAK,GAAK,GAAG,IAAM,GAC1B,EAAO,KAGT,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EACR,EAAE,GAAK,EAAE,GACT,EAAE,GAAK,EAAE,GACT,EAAE,GAAK,EAAE,GACF,EAGT,WAAc,EAAM,EAAM,CACxB,GAAI,GAAK,GAAI,GAAK,GACd,EAAQ,GAAQ,EAAK,MACrB,EAAO,EAAG,KACd,SAAK,MAAQ,UAAW,CAAE,MAAQ,GAAG,OAAS,WAAe,GAC7D,EAAK,OAAS,UAAW,CACvB,MAAO,KAAU,KAAS,QAAW,GAAK,uBAE5C,EAAK,MAAQ,EACT,GACE,OAAO,IAAU,UAAU,EAAK,EAAO,GAC3C,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAI,MAErC,EAGT,YAAgB,CACd,GAAI,GAAI,WAEJ,EAAO,SAAS,EAAM,CACxB,EAAO,EAAK,WACZ,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CACpC,GAAK,EAAK,WAAW,GACrB,GAAI,GAAI,mBAAsB,EAC9B,EAAI,IAAM,EACV,GAAK,EACL,GAAK,EACL,EAAI,IAAM,EACV,GAAK,EACL,GAAK,EAAI,WAEX,MAAQ,KAAM,GAAK,uBAGrB,MAAO,GAIT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,UAAW,CAAE,MAAO,KAE3B,KAAK,KAAO,IAIZ,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UC9GnC,oBAGA,AAAC,UAAS,EAAQ,EAAQ,EAAQ,CAElC,WAAgB,EAAM,CACpB,GAAI,GAAK,KAAM,EAAU,GAEzB,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EAGP,EAAG,KAAO,UAAW,CACnB,GAAI,GAAI,EAAG,EAAK,EAAG,GAAK,GACxB,SAAG,EAAI,EAAG,EACV,EAAG,EAAI,EAAG,EACV,EAAG,EAAI,EAAG,EACH,EAAG,GAAM,EAAG,IAAM,GAAM,EAAK,IAAM,GAG5C,AAAI,IAAU,GAAO,GAEnB,EAAG,EAAI,EAGP,GAAW,EAIb,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAS,GAAI,IACvC,EAAG,GAAK,EAAQ,WAAW,GAAK,EAChC,EAAG,OAIP,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,WAAc,EAAM,EAAM,CACxB,GAAI,GAAK,GAAI,GAAO,GAChB,EAAQ,GAAQ,EAAK,MACrB,EAAO,UAAW,CAAE,MAAQ,GAAG,SAAW,GAAK,YACnD,SAAK,OAAS,UAAW,CACvB,EACE,IAAI,GAAM,EAAG,SAAW,GACpB,EAAO,GAAG,SAAW,GAAK,WAC1B,EAAU,GAAM,GAAQ,IAAK,UAC1B,IAAW,GACpB,MAAO,IAET,EAAK,MAAQ,EAAG,KAChB,EAAK,MAAQ,EACT,GACE,OAAO,IAAU,UAAU,EAAK,EAAO,GAC3C,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAI,MAErC,EAGT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,UAAW,CAAE,MAAO,KAE3B,KAAK,OAAS,IAId,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UC7EnC,oBAGA,AAAC,UAAS,EAAQ,EAAQ,EAAQ,CAElC,WAAgB,EAAM,CACpB,GAAI,GAAK,KAAM,EAAU,GAGzB,EAAG,KAAO,UAAW,CACnB,GAAI,GAAK,EAAG,EAAK,EAAG,IAAM,EAC1B,SAAG,EAAI,EAAG,EAAG,EAAG,EAAI,EAAG,EAAG,EAAG,EAAI,EAAG,EAAG,EAAG,EAAI,EAAG,EACzC,GAAG,EAAK,EAAG,EAAI,OAAS,GAC5B,GAAG,EAAK,EAAG,EAAK,EAAG,GAAK,EAAO,GAAK,GAAK,IAAO,GAGtD,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EAEP,AAAI,IAAU,GAAO,GAEnB,EAAG,EAAI,EAGP,GAAW,EAIb,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAS,GAAI,IACvC,EAAG,GAAK,EAAQ,WAAW,GAAK,EAC5B,GAAK,EAAQ,QACf,GAAG,EAAI,EAAG,GAAK,GAAK,EAAG,IAAM,GAE/B,EAAG,OAIP,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,WAAc,EAAM,EAAM,CACxB,GAAI,GAAK,GAAI,GAAO,GAChB,EAAQ,GAAQ,EAAK,MACrB,EAAO,UAAW,CAAE,MAAQ,GAAG,SAAW,GAAK,YACnD,SAAK,OAAS,UAAW,CACvB,EACE,IAAI,GAAM,EAAG,SAAW,GACpB,EAAO,GAAG,SAAW,GAAK,WAC1B,EAAU,GAAM,GAAQ,IAAK,UAC1B,IAAW,GACpB,MAAO,IAET,EAAK,MAAQ,EAAG,KAChB,EAAK,MAAQ,EACT,GACE,OAAO,IAAU,UAAU,EAAK,EAAO,GAC3C,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAI,MAErC,EAGT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,UAAW,CAAE,MAAO,KAE3B,KAAK,OAAS,IAId,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UClFnC,oBAKA,AAAC,UAAS,EAAQ,EAAQ,EAAQ,CAElC,WAAgB,EAAM,CACpB,GAAI,GAAK,KAGT,EAAG,KAAO,UAAW,CAEnB,GAAI,GAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAG,EAAG,EAC9B,SAAI,EAAE,GAAI,GAAM,IAAM,EAAI,EAAI,EAAK,GAAK,GACxC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,IAAM,GACpC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,IAAM,EACpC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,GAAK,EACnC,EAAI,EAAG,EAAI,EAAK,GAAI,EAAI,EAAK,GAAK,GAAK,GAAK,EAAK,GAAK,EACtD,EAAE,GAAK,EACP,EAAG,EAAK,EAAI,EAAK,EACV,GAGT,WAAc,EAAI,EAAM,CACtB,GAAI,GAAG,EAAG,EAAI,GAEd,GAAI,IAAU,GAAO,GAEnB,EAAI,EAAE,GAAK,MAIX,KADA,EAAO,GAAK,EACP,EAAI,EAAG,EAAI,EAAK,OAAQ,EAAE,EAC7B,EAAE,EAAI,GAAM,EAAE,EAAI,IAAM,GACnB,EAAK,WAAW,GAAK,EAAG,EAAI,EAAK,IAAM,GAIhD,KAAO,EAAE,OAAS,GAAG,EAAE,KAAK,GAC5B,IAAK,EAAI,EAAG,EAAI,GAAK,EAAE,KAAO,EAAG,EAAE,EAAE,CAOrC,IANA,AAAI,GAAK,EAAG,EAAI,EAAE,GAAK,GAAS,EAAI,EAAE,GAEtC,EAAG,EAAI,EACP,EAAG,EAAI,EAGF,EAAI,IAAK,EAAI,EAAG,EAAE,EACrB,EAAG,OAIP,EAAK,EAAI,GAGX,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EAAE,QACV,EAAE,EAAI,EAAE,EACD,EAGT,WAAc,EAAM,EAAM,CACxB,AAAI,GAAQ,MAAM,GAAO,CAAE,GAAI,OAC/B,GAAI,GAAK,GAAI,GAAO,GAChB,EAAQ,GAAQ,EAAK,MACrB,EAAO,UAAW,CAAE,MAAQ,GAAG,SAAW,GAAK,YACnD,SAAK,OAAS,UAAW,CACvB,EACE,IAAI,GAAM,EAAG,SAAW,GACpB,EAAO,GAAG,SAAW,GAAK,WAC1B,EAAU,GAAM,GAAQ,IAAK,UAC1B,IAAW,GACpB,MAAO,IAET,EAAK,MAAQ,EAAG,KAChB,EAAK,MAAQ,EACT,GACE,GAAM,GAAG,EAAK,EAAO,GACzB,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAI,MAErC,EAGT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,UAAW,CAAE,MAAO,KAE3B,KAAK,UAAY,IAIjB,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UC9FnC,oBAyBA,AAAC,UAAS,EAAQ,EAAQ,EAAQ,CAElC,WAAgB,EAAM,CACpB,GAAI,GAAK,KAGT,EAAG,KAAO,UAAW,CACnB,GAAI,GAAI,EAAG,EACP,EAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAG,EAE3B,SAAG,EAAI,EAAK,EAAI,WAAc,EAE9B,EAAI,EAAG,EAAI,GAAM,KACjB,EAAI,EAAE,EAAM,EAAI,EAAK,KACrB,GAAK,GAAK,GACV,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,IAAM,GAEX,EAAI,EAAE,GAAK,EAAI,EACf,EAAG,EAAI,EAEC,EAAK,GAAK,IAAM,IAAQ,GAGlC,WAAc,EAAI,EAAM,CACtB,GAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAI,GAAI,EAAQ,IAYnC,IAXA,AAAI,IAAU,GAAO,GAEnB,GAAI,EACJ,EAAO,MAGP,GAAO,EAAO,KACd,EAAI,EACJ,EAAQ,KAAK,IAAI,EAAO,EAAK,SAG1B,EAAI,EAAG,EAAI,IAAK,EAAI,EAAO,EAAE,EAEhC,AAAI,GAAM,IAAK,EAAK,WAAY,GAAI,IAAM,EAAK,SAE3C,IAAM,GAAG,GAAI,GACjB,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,GAAK,EACV,GAAK,IAAM,GACP,GAAK,GACP,GAAK,EAAI,WAAc,EACvB,EAAK,EAAE,EAAI,MAAS,EAAI,EACxB,EAAK,AAAK,GAAL,EAAU,EAAI,EAAI,GAW3B,IAPI,GAAK,KACP,GAAG,IAAQ,EAAK,QAAU,GAAK,KAAO,IAKxC,EAAI,IACC,EAAI,EAAI,IAAK,EAAI,EAAG,EAAE,EACzB,EAAI,EAAG,EAAI,GAAM,KACjB,EAAI,EAAE,EAAM,EAAI,EAAK,KACrB,GAAK,GAAK,GACV,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,IAAM,GACX,EAAE,GAAK,EAAI,EAGb,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EAGT,EAAK,EAAI,GAGX,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EAAE,QACH,EAGT,WAAc,EAAM,EAAM,CACxB,AAAI,GAAQ,MAAM,GAAO,CAAE,GAAI,OAC/B,GAAI,GAAK,GAAI,GAAO,GAChB,EAAQ,GAAQ,EAAK,MACrB,EAAO,UAAW,CAAE,MAAQ,GAAG,SAAW,GAAK,YACnD,SAAK,OAAS,UAAW,CACvB,EACE,IAAI,GAAM,EAAG,SAAW,GACpB,EAAO,GAAG,SAAW,GAAK,WAC1B,EAAU,GAAM,GAAQ,IAAK,UAC1B,IAAW,GACpB,MAAO,IAET,EAAK,MAAQ,EAAG,KAChB,EAAK,MAAQ,EACT,GACE,GAAM,GAAG,EAAK,EAAO,GACzB,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAI,MAErC,EAGT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,UAAW,CAAE,MAAO,KAE3B,KAAK,QAAU,IAIf,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UChJnC,oBAIA,AAAC,UAAS,EAAQ,EAAQ,EAAQ,CAElC,WAAgB,EAAM,CACpB,GAAI,GAAK,KAAM,EAAU,GAGzB,EAAG,KAAO,UAAW,CACnB,GAAI,GAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAI,EAAG,EACzC,SAAK,GAAK,GAAO,IAAM,EAAK,EAC5B,EAAK,EAAI,EAAK,EACd,EAAK,GAAK,GAAO,IAAM,EAAK,EAC5B,EAAK,EAAI,EAAK,EACd,EAAG,EAAI,EAAK,GAAK,GAAO,IAAM,GAAM,EACpC,EAAG,EAAI,EAAK,EAAI,EAAK,EACrB,EAAG,EAAK,GAAK,GAAO,IAAM,GAAM,EACzB,EAAG,EAAK,EAAI,EAAK,GAmB1B,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,WAAa,EACpB,EAAG,EAAI,WAEP,AAAI,IAAS,KAAK,MAAM,GAEtB,GAAG,EAAK,EAAO,WAAe,EAC9B,EAAG,EAAI,EAAO,GAGd,GAAW,EAIb,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAS,GAAI,IACvC,EAAG,GAAK,EAAQ,WAAW,GAAK,EAChC,EAAG,OAIP,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,WAAc,EAAM,EAAM,CACxB,GAAI,GAAK,GAAI,GAAO,GAChB,EAAQ,GAAQ,EAAK,MACrB,EAAO,UAAW,CAAE,MAAQ,GAAG,SAAW,GAAK,YACnD,SAAK,OAAS,UAAW,CACvB,EACE,IAAI,GAAM,EAAG,SAAW,GACpB,EAAO,GAAG,SAAW,GAAK,WAC1B,EAAU,GAAM,GAAQ,IAAK,UAC1B,IAAW,GACpB,MAAO,IAET,EAAK,MAAQ,EAAG,KAChB,EAAK,MAAQ,EACT,GACE,OAAO,IAAU,UAAU,EAAK,EAAO,GAC3C,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAI,MAErC,EAGT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,UAAW,CAAE,MAAO,KAE3B,KAAK,OAAS,IAId,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UCnGnC,qBAwBA,AAAC,UAAU,EAAM,EAAM,CAIvB,GAAI,GAAS,KACT,EAAQ,IACR,EAAS,EACT,EAAS,GACT,EAAU,SACV,EAAa,EAAK,IAAI,EAAO,GAC7B,EAAe,EAAK,IAAI,EAAG,GAC3B,EAAW,EAAe,EAC1B,EAAO,EAAQ,EACf,EAMJ,WAAoB,EAAM,EAAS,EAAU,CAC3C,GAAI,GAAM,GACV,EAAW,GAAW,GAAQ,CAAE,QAAS,IAAU,GAAW,GAG9D,GAAI,GAAY,EAAO,EACrB,EAAQ,QAAU,CAAC,EAAM,EAAS,IACjC,GAAQ,KAAQ,IAAa,EAAM,GAAI,GAGtC,EAAO,GAAI,GAAK,GAIhB,EAAO,UAAW,CAIpB,OAHI,GAAI,EAAK,EAAE,GACX,EAAI,EACJ,EAAI,EACD,EAAI,GACT,EAAK,GAAI,GAAK,EACd,GAAK,EACL,EAAI,EAAK,EAAE,GAEb,KAAO,GAAK,GACV,GAAK,EACL,GAAK,EACL,KAAO,EAET,MAAQ,GAAI,GAAK,GAGnB,SAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAE,GAAK,GAC7C,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAE,GAAK,YAC7C,EAAK,OAAS,EAGd,EAAO,EAAS,EAAK,GAAI,GAGjB,GAAQ,MAAQ,GACpB,SAAS,EAAM,EAAM,EAAc,EAAO,CAUxC,MATI,IAEE,GAAM,GAAK,EAAK,EAAO,GAE3B,EAAK,MAAQ,UAAW,CAAE,MAAO,GAAK,EAAM,MAK1C,EAAgB,GAAK,GAAW,EAAa,GAIrC,IAElB,EACA,EACA,UAAY,GAAU,EAAQ,OAAU,MAAQ,EAChD,EAAQ,OAEV,EAAK,OAAS,GAAW,EAYzB,WAAc,EAAK,CACjB,GAAI,GAAG,EAAS,EAAI,OAChB,EAAK,KAAM,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,GAMtD,IAHK,GAAU,GAAM,CAAC,MAGf,EAAI,GACT,EAAE,GAAK,IAET,IAAK,EAAI,EAAG,EAAI,EAAO,IACrB,EAAE,GAAK,EAAE,EAAI,EAAQ,EAAI,EAAI,EAAI,GAAW,GAAI,EAAE,KAClD,EAAE,GAAK,EAIT,AAAC,GAAG,EAAI,SAAS,EAAO,CAItB,OAFI,GAAG,EAAI,EACP,EAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAI,EAAG,EACxB,KACL,EAAI,EAAE,EAAI,EAAQ,EAAI,GACtB,EAAI,EAAI,EAAQ,EAAE,EAAS,GAAE,GAAK,EAAE,EAAI,EAAQ,EAAI,IAAQ,GAAE,GAAK,IAErE,SAAG,EAAI,EAAG,EAAG,EAAI,EACV,IAIN,GAOL,WAAc,EAAG,EAAG,CAClB,SAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EAAE,QACH,EAOT,WAAiB,EAAK,EAAO,CAC3B,GAAI,GAAS,GAAI,EAAO,MAAO,GAAM,EACrC,GAAI,GAAS,GAAO,SAClB,IAAK,IAAQ,GACX,GAAI,CAAE,EAAO,KAAK,EAAQ,EAAI,GAAO,EAAQ,UAAc,EAAP,EAGxD,MAAQ,GAAO,OAAS,EAAS,GAAO,SAAW,EAAM,EAAM,KAQjE,WAAgB,EAAM,EAAK,CAEzB,OADI,GAAa,EAAO,GAAI,EAAO,EAAI,EAChC,EAAI,EAAW,QACpB,EAAI,EAAO,GACT,EAAS,IAAS,EAAI,EAAO,GAAK,IAAM,EAAW,WAAW,KAElE,MAAO,GAAS,GAQlB,YAAoB,CAClB,GAAI,CACF,GAAI,GACJ,MAAI,IAAe,GAAM,EAAW,aAElC,EAAM,EAAI,GAEV,GAAM,GAAI,YAAW,GACpB,GAAO,QAAU,EAAO,UAAU,gBAAgB,IAE9C,EAAS,SACT,EAAP,CACA,GAAI,GAAU,EAAO,UACjB,EAAU,GAAW,EAAQ,QACjC,MAAO,CAAC,CAAC,GAAI,MAAM,EAAQ,EAAS,EAAO,OAAQ,EAAS,KAQhE,WAAkB,EAAG,CACnB,MAAO,QAAO,aAAa,MAAM,EAAG,GAgBtC,GANA,EAAO,EAAK,SAAU,GAMjB,MAAO,KAAW,UAAY,GAAO,QAAS,CACjD,GAAO,QAAU,EAEjB,GAAI,CACF,EAAqB,WACd,EAAP,OACG,AAAK,OAAO,SAAW,YAAc,OAAO,KACjD,OAAO,UAAW,CAAE,MAAO,OAK3B,GACA,QCrPF,qBAYA,GAAI,IAAe,KAKf,GAAiB,KAKjB,GAAiB,KAQjB,GAAoB,KASpB,GAAkB,KAOlB,GAAiB,KAIjB,GAAa,KAEjB,GAAG,KAAO,GACV,GAAG,OAAS,GACZ,GAAG,OAAS,GACZ,GAAG,UAAY,GACf,GAAG,QAAU,GACb,GAAG,OAAS,GAEZ,GAAO,QAAU,KC3DjB,kBCAA,kBCAA,kBCAA,oBACA,GAAI,IAAiC,UAAW,CAC9C,GAAI,GAAa,MAAO,WAAa,aAAe,SAAS,cAAgB,SAAS,cAAc,IAAM,OAC1G,MAAI,OAAO,aAAe,aAAa,GAAa,GAAc,YAEpE,SAAS,EAA+B,CACtC,EAAgC,GAAiC,GAEnE,YAA2B,CAAC,MAAG,GAAW,QAAQ,IAAQ,GAA2B,EAAW,QAAe,GAAM,YAA2B,CAAC,MAAG,GAAW,QAAQ,IAAQ,GAA2B,EAAW,QAAe,GAAO,YAA4B,CAAC,MAAG,GAAW,QAAQ,IAAQ,GAA2B,EAAW,QAAe,GAAO,YAA4B,CAAC,MAAG,GAAW,QAAQ,IAAQ,GAA2B,EAAW,QAAe,GAAQ,YAA4B,CAAC,MAAG,GAAW,QAAQ,IAAQ,GAA2B,EAAW,QAAe,GAAQ,GAAI,GAAO,MAAO,IAAgC,YAAY,EAA8B,GAAO,EAAoB,EAAmB,EAAO,MAAS,GAAI,SAAQ,SAAS,EAAQ,EAAO,CAAC,EAAoB,EAAQ,EAAmB,IAAS,GAAI,GAAgB,GAAO,EAAI,IAAI,IAAO,GAAQ,AAAG,EAAO,eAAe,IAAM,GAAgB,GAAK,EAAO,IAAM,GAAI,GAAW,GAAO,EAAY,iBAAqB,EAAM,SAAS,EAAO,EAAQ,CAAC,KAAM,IAAa,EAAmB,GAAU,EAAsB,GAAU,EAAoB,GAAU,EAAqB,GAAM,EAAmB,MAAO,SAAS,SAAS,EAAsB,MAAO,gBAAgB,WAAW,EAAoB,MAAO,UAAU,UAAU,MAAO,SAAQ,UAAW,UAAU,MAAO,SAAQ,SAAS,MAAO,SAAS,EAAqB,CAAC,GAAoB,CAAC,GAAqB,CAAC,EAAsB,GAAI,GAAuB,EAAO,wBAA2B,GAAM,AAAG,GAAwB,IAAO,EAAO,QAAU,GAAI,GAAgB,GAAG,WAAoB,EAAK,CAAC,MAAG,GAAO,WAAsB,EAAO,WAAc,EAAK,GAAwB,EAAgB,EAAK,GAAI,GAAM,EAAU,EAAW,EAAmB,EAAW,EAAS,GAAG,EAAoB,CAAC,AAAG,EAAuB,EAAgB,AAAQ,KAAQ,QAAQ,GAAiB,IAAS,EAAgB,UAAU,IAAI,EAAM,SAAoB,EAAS,EAAO,CAAC,MAAI,IAAO,GAAe,eAAU,GAAS,GAAiB,MAAQ,EAAS,EAAS,UAAa,GAAiB,EAAO,aAAgB,EAAS,EAAO,KAAK,SAAS,EAAW,SAAoB,EAAS,CAAC,GAAI,GAAI,EAAM,EAAS,IAAM,MAAI,GAAI,QAAQ,GAAI,GAAI,YAAW,IAAK,GAAO,EAAI,QAAe,GAAQ,QAAQ,KAAQ,OAAO,GAAG,GAAY,QAAQ,KAAQ,GAAG,QAAQ,MAAM,MAAK,EAAW,QAAQ,KAAQ,MAAM,GAAG,QAAQ,GAAM,oBAAoB,SAAS,EAAG,CAAC,GAAG,CAAE,aAAc,KAAa,KAAM,KAAM,QAAQ,GAAM,qBAAqB,IAAO,EAAM,SAAS,EAAO,CAAC,QAAQ,KAAQ,IAAS,EAAO,QAAW,UAAU,CAAC,MAAM,8BAA8B,GAAI,GAAkB,GAAG,CAAC,EAA0B,WAAwB,EAAN,CAAS,cAAQ,MAAM,2GAAiH,EAAE,OAAO,OAAO,EAAkB,WAAY,AAAG,GAAyB,OAAO,OAAM,aAAa,GAAM,SAAoB,EAAE,CAAC,MAAO,MAAK,KAAI,EAAW,SAAoB,EAAE,CAAC,GAAI,GAAK,MAAG,OAAO,aAAa,WAAmB,GAAI,YAAW,WAAW,IAAI,GAAK,KAAK,EAAE,UAAU,GAAO,MAAO,IAAO,UAAiB,IAAM,AAAG,MAAO,aAAY,YAAa,EAAW,WAAmB,MAAO,YAAW,aAAa,GAAW,WAAa,MAAO,OAAO,YAAY,GAAM,SAAS,EAAO,CAAC,KAAK,KAAY,MAAO,QAAQ,aAAgB,OAAO,UAAU,aAAY,SAAQ,IAAG,QAAQ,IAAI,MAAM,QAAQ,KAAK,QAAQ,MAAM,MAAO,WAAW,YAAY,SAAS,QAAe,IAAoB,IAAuB,CAAG,EAAuB,EAAgB,KAAK,SAAS,KAAa,MAAO,WAAW,aAAa,SAAS,eAAe,GAAgB,SAAS,cAAc,KAAO,MAAO,IAAe,aAAe,GAAY,GAAgB,GAAW,AAAG,EAAgB,QAAQ,WAAW,EAAG,EAAgB,EAAgB,OAAO,EAAE,EAAgB,YAAY,KAAK,GAAQ,EAAgB,GAAG,AAAG,EAAqB,GAAM,SAAoB,EAAS,EAAO,CAAC,MAAI,IAAO,GAAe,eAAU,GAAS,GAAiB,MAAQ,EAAS,EAAS,UAAa,GAAiB,EAAO,aAAgB,EAAS,EAAO,KAAK,SAAS,EAAW,SAAoB,EAAS,CAAC,GAAI,GAAI,EAAM,EAAS,IAAM,MAAI,GAAI,QAAQ,GAAI,GAAI,YAAW,IAAK,GAAO,EAAI,QAAe,IAAU,GAAM,SAAS,EAAI,CAAC,GAAI,GAAI,GAAI,gBAAe,SAAI,KAAK,MAAM,EAAI,IAAO,EAAI,KAAK,MAAa,EAAI,cAAiB,GAAuB,GAAW,SAAS,EAAI,CAAC,GAAI,GAAI,GAAI,gBAAe,SAAI,KAAK,MAAM,EAAI,IAAO,EAAI,aAAa,cAAc,EAAI,KAAK,MAAa,GAAI,YAAW,EAAI,YAAW,EAAU,SAAS,EAAI,EAAO,EAAQ,CAAC,GAAI,GAAI,GAAI,gBAAe,EAAI,KAAK,MAAM,EAAI,IAAM,EAAI,aAAa,cAAc,EAAI,OAAO,UAAU,CAAC,GAAG,EAAI,QAAQ,KAAK,EAAI,QAAQ,GAAG,EAAI,SAAS,CAAC,EAAO,EAAI,UAAU,OAAO,KAAW,EAAI,QAAQ,EAAQ,EAAI,KAAK,QAAO,EAAe,SAAS,EAAM,CAAC,SAAS,MAAM,IAAa,AAAG,GAAwB,MAAO,cAAc,aAAa,QAAO,YAAY,AAAQ,KAAc,aAAa,GAAI,GAAI,EAAO,OAAU,QAAQ,IAAI,KAAK,SAAa,EAAI,EAAO,UAAa,QAAQ,KAAK,KAAK,SAAS,IAAI,IAAO,GAAiB,AAAG,EAAgB,eAAe,IAAM,GAAO,GAAK,EAAgB,IAAM,EAAgB,KAAQ,EAAO,WAAa,GAAW,EAAO,WAAgB,EAAO,aAAe,GAAY,EAAO,aAAkB,EAAO,MAAQ,GAAM,EAAO,MAAQ,GAAI,GAAa,QAAQ,KAAS,EAAc,QAAQ,MAAU,GAAwB,QAAQ,gBAAoB,EAAW,AAAG,EAAO,YAAc,GAAW,EAAO,YAAc,GAAI,IAAc,EAAO,eAAkB,GAAK,AAAG,MAAO,cAAc,UAAU,GAAM,mCAAmC,GAAI,GAAe,GAAe,GAAM,GAAU,GAAW,YAAgB,EAAU,EAAK,CAAC,AAAI,GAAW,GAAM,qBAAqB,GAAO,YAAkB,EAAM,CAAC,GAAI,GAAK,EAAO,IAAI,GAAO,UAAO,EAAK,gCAAgC,EAAM,8BAAqC,EAAK,YAAe,EAAM,EAAW,EAAS,EAAK,GAAK,CAAC,GAAI,IAAI,CAAC,OAAS,SAAS,GAAI,CAAC,GAAI,IAAI,EAAE,GAAG,IAAM,MAAuB,KAAM,EAAE,CAAC,GAAI,IAAK,IAAI,QAAQ,GAAG,EAAE,GAAI,GAAW,IAAK,GAAa,GAAI,GAAI,IAAK,MAAO,KAAK,MAAQ,SAAS,GAAI,CAAC,GAAI,IAAI,GAAW,GAAI,QAAQ,UAAmB,GAAI,IAAY,KAAM,YAA4B,GAAI,CAAC,MAAG,KAAa,SAAgB,GAAa,IAAQ,IAAa,UAAiB,QAAQ,IAAY,GAAI,GAAI,IAAK,GAAS,GAAW,GAAM,GAAO,GAAM,EAAE,GAAG,EAAM,OAAQ,IAAE,EAAE,GAAE,EAAK,OAAO,KAAI,CAAC,GAAI,IAAU,GAAI,EAAS,KAAI,AAAG,GAAc,MAAQ,GAAE,IAAM,MAAY,GAAM,IAAG,GAAU,EAAK,MAAS,GAAM,IAAG,EAAK,IAAK,GAAI,IAAI,GAAK,MAAM,KAAK,IAAO,UAAI,GAAmB,IAAQ,KAAQ,GAAE,GAAa,IAAc,GAAI,YAAe,EAAM,EAAW,EAAS,EAAK,CAAC,EAAS,GAAU,GAAG,GAAI,IAAY,EAAS,MAAM,SAAS,GAAK,CAAC,MAAO,MAAO,WAAe,GAAW,IAAa,SAAS,MAAG,KAAY,IAAa,CAAC,EAAa,GAAS,GAAc,UAAU,CAAC,MAAO,IAAM,EAAM,EAAW,EAAS,UAAU,IAAO,YAA2B,EAAK,EAAI,EAAe,CAA0C,OAArC,GAAO,EAAI,EAAmB,GAAI,GAAS,CAAE,IAAK,IAAQ,CAAC,GAAI,IAAG,EAAK,KAAO,GAAG,CAAC,GAAG,MAAO,IAAI,GAAG,CAAE,IAAG,KAAK,CAAC,IAAK,OAAO,aAAa,IAAI,SAAS,GAAI,IAAG,EAAK,KAAO,GAAG,GAAI,IAAG,MAAM,IAAI,CAAC,IAAK,OAAO,aAAc,IAAG,KAAK,EAAE,IAAI,SAAS,GAAI,IAAG,EAAK,KAAO,GAA4F,GAAzF,AAAI,IAAG,MAAM,IAAK,GAAI,IAAG,KAAK,GAAG,IAAI,EAAE,GAAQ,GAAI,IAAG,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,EAAK,KAAO,GAAM,GAAG,MAAO,IAAK,OAAO,aAAa,QAAQ,CAAC,GAAI,IAAG,GAAG,MAAM,IAAK,OAAO,aAAa,MAAM,IAAI,GAAG,MAAM,GAAG,OAAO,MAAO,IAAI,YAAsB,EAAI,EAAe,CAAC,MAAO,GAAI,GAAkB,IAAmB,EAAI,GAAgB,GAAG,YAA2B,EAAI,EAAK,EAAO,EAAgB,CAAC,GAAG,CAAE,GAAgB,GAAG,MAAO,GAA0D,OAApD,IAAS,EAAW,GAAO,EAAO,EAAgB,EAAU,GAAE,EAAE,GAAE,EAAI,OAAO,EAAE,GAAE,CAAC,GAAI,IAAE,EAAI,WAAW,IAAG,GAAG,IAAG,OAAO,IAAG,MAAM,CAAC,GAAI,IAAG,EAAI,WAAW,EAAE,IAAG,GAAE,MAAQ,KAAE,OAAO,IAAI,GAAG,KAAK,GAAG,IAAG,IAAI,CAAC,GAAG,GAAQ,GAAO,MAAM,EAAK,KAAU,WAAU,IAAG,KAAK,CAAC,GAAG,EAAO,GAAG,GAAO,MAAM,EAAK,KAAU,IAAI,IAAG,EAAE,EAAK,KAAU,IAAI,GAAE,WAAW,IAAG,MAAM,CAAC,GAAG,EAAO,GAAG,GAAO,MAAM,EAAK,KAAU,IAAI,IAAG,GAAG,EAAK,KAAU,IAAI,IAAG,EAAE,GAAG,EAAK,KAAU,IAAI,GAAE,OAAO,CAAC,GAAG,EAAO,GAAG,GAAO,MAAM,EAAK,KAAU,IAAI,IAAG,GAAG,EAAK,KAAU,IAAI,IAAG,GAAG,GAAG,EAAK,KAAU,IAAI,IAAG,EAAE,GAAG,EAAK,KAAU,IAAI,GAAE,IAAI,SAAK,GAAQ,EAAS,EAAO,GAAS,YAAsB,EAAI,EAAO,EAAgB,CAAC,MAAO,IAAkB,EAAI,IAAmB,EAAO,GAAiB,YAAyB,EAAI,CAAW,OAAN,GAAI,EAAU,EAAE,EAAE,EAAE,EAAI,OAAO,EAAE,EAAE,CAAC,GAAI,GAAE,EAAI,WAAW,GAAG,AAAG,GAAG,OAAO,GAAG,OAAM,GAAE,MAAQ,IAAE,OAAO,IAAI,EAAI,WAAW,EAAE,GAAG,MAAK,AAAG,GAAG,IAAI,EAAE,EAAS,AAAG,GAAG,KAAK,GAAK,EAAO,AAAG,GAAG,MAAM,GAAK,EAAO,GAAK,EAAE,MAAO,GAAI,YAA4B,EAAM,EAAO,CAAC,IAAmB,IAAI,EAAM,GAAQ,YAAiB,EAAE,EAAS,CAAC,MAAG,GAAE,EAAS,GAAG,IAAG,EAAS,EAAE,GAAgB,EAAE,GAAI,IAAO,GAAM,GAAO,GAAO,GAAQ,GAAO,GAAQ,GAAQ,GAAQ,YAAoC,EAAI,CAAC,GAAO,EAAI,EAAO,MAAS,GAAM,GAAI,WAAU,GAAK,EAAO,OAAU,GAAO,GAAI,YAAW,GAAK,EAAO,OAAU,GAAO,GAAI,YAAW,GAAK,EAAO,OAAU,GAAO,GAAI,YAAW,GAAK,EAAO,QAAW,GAAQ,GAAI,aAAY,GAAK,EAAO,QAAW,GAAQ,GAAI,aAAY,GAAK,EAAO,QAAW,GAAQ,GAAI,cAAa,GAAK,EAAO,QAAW,GAAQ,GAAI,cAAa,GAAK,GAAI,IAAe,EAAO,gBAAmB,SAAS,GAAG,EAAwB,EAAW,EAAO,WAAc,GAAO,EAAO,eAAkB,EAAO,WAAe,EAAW,EAAO,mBAAmB,EAAW,GAAI,aAAY,OAAO,CAAC,QAAU,GAAe,MAAM,QAAU,WAAW,MAAM,OAAS,KAAU,CAAE,GAAW,iBAAkB,oBAAoB,QAAI,+NAAkO,GAAqB,QAAQ,IAAI,qHAA2H,MAAM,cAAgB,AAAG,GAAY,IAAO,EAAW,QAAO,GAAe,GAAO,WAAW,GAA2B,IAAQ,GAAI,IAAc,GAAa,GAAO,GAAW,GAAO,GAAW,GAAO,GAAW,GAAO,GAAc,GAAO,GAAmB,GAAU,GAAc,GAAM,AAAI,GAAuB,GAAW,KAAK,CAAC,KAAK,UAAU,CAAC,QAA2B,GAAuB,IAAmB,IAAK,aAAiB,CAAC,GAAG,GAA8B,IAAG,EAAO,OAAsF,IAAxE,MAAO,GAAO,QAAW,YAAW,GAAO,OAAU,CAAC,EAAO,SAAiB,EAAO,OAAU,QAAQ,GAAY,EAAO,OAAU,SAAU,GAAqB,KAAc,aAAsB,CAAC,GAAmB,GAAK,GAAqB,IAAY,aAAkB,CAAC,AAAG,GAA8B,GAAqB,IAAY,aAAsB,CAAC,AAAG,GAA8B,IAAc,IAAK,aAAkB,CAAC,GAAG,GAA8B,IAAG,EAAO,QAA0F,IAA3E,MAAO,GAAO,SAAY,YAAW,GAAO,QAAW,CAAC,EAAO,UAAkB,EAAO,QAAW,QAAQ,GAAa,EAAO,QAAW,SAAU,GAAqB,KAAe,YAAqB,EAAG,CAAC,GAAa,QAAQ,GAAI,YAAsB,EAAG,CAAC,GAAc,QAAQ,GAAI,GAAI,IAAgB,EAAM,GAAqB,KAAS,GAAsB,KAAK,YAA0B,EAAG,CAAC,GAAO,CAAC,EAAuB,uDAAuD,KAAqB,EAAO,wBAA2B,EAAO,uBAA0B,IAAkB,YAA6B,EAAG,CAA0G,GAAzG,KAAqB,EAAO,wBAA2B,EAAO,uBAA0B,IAAoB,IAAiB,GAAM,MAAuB,MAAM,eAAc,IAAsB,GAAqB,MAAQ,IAAsB,CAAC,GAAI,GAAS,GAAsB,GAAsB,KAAK,KAAa,EAAO,gBAAmB,GAAG,EAAO,gBAAmB,GAAG,YAAe,EAAK,CAAC,AAAG,EAAO,SAAY,EAAO,QAAW,GAAS,GAAuB,QAAQ,MAAM,uBAAwB,GAAI,SAAO,OAAO,GAAM,GAAG,EAAI,GAAM,GAAM,GAAK,GAAW,EAAE,EAAK,SAAS,EAAK,+CAA+C,GAAI,GAAE,GAAI,aAAY,aAAa,GAAM,QAAmB,GAAS,EAAE,YAAmB,EAAI,EAAO,CAAC,MAAO,QAAO,UAAU,WAAW,EAAI,WAAW,GAAQ,EAAI,QAAQ,KAAU,EAAE,GAAI,IAAc,wCAAwC,YAAmB,EAAS,CAAC,MAAO,IAAU,EAAS,IAAe,GAAI,IAAc,UAAU,YAAmB,EAAS,CAAC,MAAO,IAAU,EAAS,IAAe,GAAI,IAAe,uCAAuC,AAAI,GAAU,KAAiB,IAAe,EAAW,KAAgB,YAAmB,EAAK,CAAC,GAAG,CAAC,GAAG,GAAM,IAAgB,EAAY,MAAO,IAAI,YAAW,GAAY,GAAG,EAAY,MAAO,GAAW,GAAW,KAAK,wDAAyD,EAAN,CAAW,GAAM,IAAM,aAA2B,CAAC,GAAG,CAAC,GAAa,IAAoB,GAAuB,CAAC,GAAG,MAAO,QAAQ,YAAY,CAAC,GAAU,IAAiB,MAAO,OAAM,GAAe,CAAC,YAAY,gBAAgB,KAAK,SAAS,EAAS,CAAC,GAAG,CAAC,EAAS,GAAO,KAAK,uCAAuC,GAAe,IAAI,MAAO,GAAS,gBAAmB,MAAM,UAAU,CAAC,MAAO,IAAU,MAAuB,GAAG,EAAW,MAAO,IAAI,SAAQ,SAAS,EAAQ,EAAO,CAAC,EAAU,GAAe,SAAS,EAAS,CAAC,EAAQ,GAAI,YAAW,KAAY,KAAY,MAAO,SAAQ,UAAU,KAAK,UAAU,CAAC,MAAO,IAAU,MAAkB,aAAqB,CAAC,GAAI,GAAK,CAAC,EAAI,IAAe,WAAyB,GAAS,GAAO,CAAC,GAAI,IAAQ,GAAS,QAA6E,GAArE,EAAO,IAAO,GAAQ,GAAU,EAAO,IAAO,EAAK,GAAW,GAAU,CAAC,EAAuB,CAAC,GAAI,IAAiB,GAAQ,cAAc,OAAO,GAAQ,cAAc,QAAQ,SAAS,GAAE,CAAC,GAAQ,uBAAuB,GAAE,UAAU,CAAC,AAAI,EAAE,IAAiB,GAAoB,yBAAyB,AAAI,GAAwB,GAAiB,oBAAoB,WAAmC,GAAO,CAAC,EAAgB,GAAO,SAAY,GAAO,QAAW,WAAgC,GAAS,CAAC,MAAO,MAAmB,KAAK,SAAS,GAAO,CAAC,MAAO,aAAY,YAAY,GAAO,KAAQ,KAAK,GAAS,SAAS,GAAO,CAAC,EAAI,0CAA0C,IAAQ,GAAM,MAAU,aAA2B,CAAC,MAAG,CAAC,GAAY,MAAO,aAAY,sBAAuB,YAAY,CAAC,GAAU,KAAiB,CAAC,GAAU,KAAiB,MAAO,QAAQ,WAAmB,MAAM,GAAe,CAAC,YAAY,gBAAgB,KAAK,SAAS,GAAS,CAAC,GAAI,IAAO,YAAY,qBAAqB,GAAS,GAAM,MAAO,IAAO,KAAK,EAA0B,SAAS,GAAO,CAAC,SAAI,kCAAkC,IAAQ,EAAI,6CAAoD,EAAuB,OAA2C,EAAuB,GAA4B,GAAG,EAAO,gBAAoB,GAAG,CAAC,GAAI,IAAQ,EAAO,gBAAmB,EAAK,GAAiB,MAAO,UAAc,GAAN,CAAS,SAAI,sDAAsD,IAAU,GAAO,YAAmB,MAAM,GAA0B,GAAG,GAAI,IAAW,CAAC,KAAK,SAAS,EAAG,EAAG,CAAC,WAAW,UAAU,CAAC,GAAmC,EAAG,IAAK,KAAK,aAAyB,CAAC,GAAQ,cAAc,YAA8B,EAAU,CAAC,KAAM,EAAU,OAAO,GAAE,CAAC,GAAI,GAAS,EAAU,QAAQ,GAAG,MAAO,IAAU,WAAW,CAAC,EAAS,GAAQ,SAAS,GAAI,GAAK,EAAS,KAAK,AAAG,MAAO,IAAO,SAAU,AAAG,EAAS,MAAM,OAAW,GAAU,IAAI,KAAa,GAAU,IAAI,GAAM,EAAS,KAAW,EAAK,EAAS,MAAM,OAAU,KAAK,EAAS,MAAO,YAAgC,EAAK,EAAM,CAAC,GAAG,GAAM,GAAG,EAAK,IAAmB,QAAQ,EAAK,IAAM,EAAM,EAAE,MAAM,IAAI,GAAG,GAAO,EAAE,MAAO,GAAE,AAAG,GAAO,YAAW,GAAM,UAAS,GAAI,GAAsB,QAAQ,KAAK,IAAoB,IAAgC,GAAO,EAAgB,EAAE,GAAG,GAAuB,EAAK,CAAC,GAAI,IAAW,QAAQ,gBAAgB,IAAoB,IAAgC,EAAE,EAAsB,GAAG,GAAG,IAAY,GAAuB,GAAE,EAAM,EAAgB,EAAK,GAAO,GAAE,MAAO,GAAG,GAAI,IAAI,QAAQ,OAAO,IAAoB,GAAM,EAAE,GAAO,GAAG,IAAK,EAAE,MAAO,IAAI,EAAgB,KAAK,+CAA+C,GAAI,EAAO,uBAA0B,GAAuB,YAAoB,EAAY,CAAC,GAAG,EAAuB,KAAK,qFAAqF,GAAG,CAAC,EAAY,KAAK,kDAAkD,IAAoB,EAAY,IAAI,GAAG,EAAE,GAAI,GAAQ,GAAQ,SAAS,GAAa,EAAQ,OAAO,YAAY,GAAQ,eAAe,GAAS,GAAQ,eAAe,OAAO,GAAQ,eAAe,QAAQ,EAAQ,QAAQ,GAAG,EAAQ,OAAO,QAAQ,OAAU,YAAsB,EAAY,CAAC,GAAG,EAAuB,KAAK,uFAAuF,GAAG,CAAC,EAAY,KAAK,oDAAoD,GAAI,GAAQ,GAAQ,SAAS,GAAa,EAAQ,OAAO,YAAY,CAAC,IAAM,WAAW,YAAuB,EAAY,CAAC,GAAG,EAAuB,KAAK,wFAAwF,GAAG,CAAC,EAAY,KAAK,qDAAqD,IAAoB,EAAY,IAAI,GAAG,EAAE,GAAI,GAAQ,GAAQ,SAAS,GAAa,GAAG,EAAQ,CAAC,GAAI,GAAO,EAAQ,OAAO,GAAQ,mBAAmB,IAAS,GAAI,IAAQ,CAAC,cAAc,GAAG,eAAe,GAAG,oBAAoB,UAAU,CAAuB,OAAlB,GAAgB,EAAU,EAAE,EAAE,EAAE,EAAgB,EAAE,EAAG,GAAQ,wBAAyB,YAAY,UAAU,CAAqB,OAAhB,GAAG,GAAQ,KAAa,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAoB,EAAG,EAAE,GAAG,EAAE,IAAoB,EAAG,IAAI,GAAG,EAAG,GAAI,GAAQ,EAAG,IAAI,IAAoB,GAAS,GAAG,EAAmC,OAAvB,GAAU,GAAQ,KAAa,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAoB,EAAU,EAAE,GAAG,EAAE,QAAQ,MAAM,IAAoB,EAAG,KAAK,EAAE,GAAW,QAAQ,MAAM,IAAoB,EAAG,IAAI,EAAE,GAAI,GAAyB,EAAG,CAAC,EAAsB,GAAG,GAA4C,IAAK,WAAW,UAAU,GAAG,SAAS,GAAG,mBAAmB,GAAG,gBAAgB,UAAU,GAAG,gBAAgB,UAAU,CAAC,KAAM,GAAQ,mBAAmB,OAAO,GAAG,GAAQ,mBAAmB,QAAQ,AAAG,GAAwB,MAAgB,MAA4B,WAAW,SAAS,EAAS,CAAC,GAAI,GAAG,KAAgB,AAAG,GAAI,SAAQ,MAAM,IAAoB,EAAG,GAAG,EAAE,GAAU,QAAQ,MAAM,IAAoB,EAAG,GAAG,EAAE,GAAG,QAAQ,MAAM,IAAoB,EAAG,IAAI,EAAE,GAAG,QAAQ,MAAM,IAAoB,EAAG,IAAI,EAAE,GAAG,GAAQ,kBAAkB,GAAuB,EAAG,EAAE,YAAY,GAAyB,EAAE,EAAE,GAAM,GAAwB,YAAY,CAAC,IAAM,WAAY,aAAa,UAAU,CAAC,GAAQ,kBAAkB,GAAI,GAAG,KAAgB,QAAQ,MAAM,IAAoB,EAAG,GAAG,EAAE,IAAI,QAAQ,MAAM,IAAoB,EAAG,GAAG,EAAE,GAAG,GAAuB,EAAG,EAAE,YAAY,GAAyB,EAAE,EAAE,GAAG,YAAY,CAAC,IAAM,gBAAgB,oBAAoB,UAAU,CAAC,OAAQ,KAAK,IAAQ,SAAS,CAAC,GAAI,GAAQ,GAAQ,SAAS,GAAG,AAAG,GAAS,EAAQ,QAAQ,GAAQ,mBAAmB,EAAQ,QAAS,GAAQ,SAAS,GAAG,OAAQ,GAAE,EAAE,EAAE,GAAQ,cAAc,OAAO,EAAE,EAAE,CAAC,GAAI,GAAO,GAAQ,cAAc,GAAG,EAAO,YAAY,GAAQ,cAAc,GAAG,OAAQ,GAAE,EAAE,EAAE,GAAQ,eAAe,OAAO,EAAE,EAAE,CAAC,GAAI,GAAO,GAAQ,eAAe,GAAO,EAAQ,EAAO,QAAQ,GAAQ,eAAe,GAAS,EAAO,YAAY,GAAQ,eAAe,IAAI,eAAe,SAAS,EAAQ,CAAC,GAAG,EAAC,EAAe,IAAG,EAAQ,iBAAiB,CAAC,GAAI,GAAU,IAAoB,EAAQ,iBAAiB,KAAK,GAAG,IAAoB,EAAQ,iBAAiB,KAAK,GAAG,EAAE,GAAM,GAAW,GAAM,EAAQ,kBAAkB,EAAQ,iBAAiB,EAAK,EAAQ,mBAAmB,EAAQ,WAAU,GAAM,EAAQ,WAAW,EAAQ,UAAU,EAAK,EAAQ,QAAO,GAAQ,OAAO,QAAQ,QAAM,mBAAmB,SAAS,EAAO,CAAC,GAAQ,gCAAgC,UAAU,CAAC,MAAO,IAAQ,SAAS,EAAO,QAAQ,kBAAkB,GAAQ,cAAc,KAAK,GAAQ,GAAQ,eAAe,OAAO,GAAQ,eAAe,QAAQ,GAAQ,GAAG,GAAQ,eAAe,EAAO,SAAS,EAAO,QAAQ,UAAa,gCAAgC,SAAS,EAAK,CAAC,IAAoB,IAA8C,GAAG,EAAE,GAAG,CAAC,WAAO,CAAQ,IAAoB,IAA8C,GAAG,IAAI,sBAAsB,SAAS,EAAK,GAAG,uBAAuB,SAAS,EAAO,EAAkB,CAAC,EAAO,UAAU,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,KAAY,GAAI,EAAE,IAAqG,GAA3F,EAAO,SAAQ,IAAQ,oCAAoC,EAAO,QAAQ,kBAAoB,EAAE,cAAiB,EAAE,cAAiB,KAAgB,CAAC,GAAI,IAAO,GAAQ,SAAS,EAAE,cAAc,AAAG,GAAQ,GAAO,OAAO,YAAY,EAAE,KAAK,EAAE,cAAsB,QAAQ,MAAM,0CAA0C,GAAI,uBAAuB,EAAE,aAAgB,uCAAuC,GAAQ,oCAAoC,OAAU,OAAO,GAAG,KAAM,8BAA+B,aAAuD,KAAM,cAAe,GAAY,EAAE,cAAc,KAAM,gBAAiB,GAAc,EAAE,gBAAmB,KAAM,aAAc,GAAW,EAAE,gBAAmB,KAAM,eAAgB,GAAa,EAAE,gBAAmB,KAAM,SAAU,EAAO,OAAO,GAAQ,GAAkB,EAAkB,GAAW,EAAO,YAAY,GAAO,aAAa,MAAO,GAAO,oBAAoB,KAAM,QAAS,EAAI,UAAU,EAAE,SAAY,KAAK,EAAE,cAAiB,KAAM,WAAY,EAAI,UAAU,EAAE,SAAY,KAAK,EAAE,cAAiB,KAAM,QAAS,MAAM,UAAU,EAAE,SAAY,KAAK,EAAE,cAAiB,KAAM,OAAO,CAAC,GAAI,IAAS,EAAO,SAAS,QAAQ,KAAK,IAAoB,EAAO,QAAQ,iBAAiB,IAAI,GAAG,AAAG,IAAU,GAAQ,mBAAmB,WAAiB,KAAM,cAAe,GAAG,CAAC,GAAK,EAAE,kBAAqB,GAAN,CAAS,GAAG,aAAa,IAAW,OAAO,KAAM,QAAQ,AAAG,MAAM,aAAc,GAAQ,mBAAmB,GAAa,AAAG,KAAM,iBAAkB,GAAQ,sBAAsB,EAAE,MAAW,AAAG,EAAE,KAAK,SAAS,eAAgB,EAAO,YAAY,EAAE,MAAW,EAAI,kCAAkC,IAAK,GAAQ,oCAAoC,QAAW,EAAO,QAAQ,SAAS,EAAE,CAAC,EAAI,0BAA0B,EAAE,SAAS,IAAI,EAAE,OAAO,KAAK,EAAE,UAAa,GAAqB,GAAO,GAAG,UAAU,SAAS,EAAK,CAAC,EAAO,UAAU,CAAC,KAAK,MAAS,EAAO,GAAG,QAAQ,SAAS,EAAK,CAAC,EAAO,QAAQ,KAAQ,EAAO,GAAG,OAAO,SAAS,EAAK,KAAI,EAAO,YAAY,CAAC,IAAM,OAAO,UAAY,EAAO,qBAAwB,EAAW,WAAa,EAAW,WAAa,MAAc,qBAAqB,UAAU,CAAC,GAAI,GAAc,EAAW,6CAA6C,GAAQ,cAAc,KAAK,GAAI,QAAO,KAAiB,aAAa,UAAU,CAA6H,MAAzH,IAAQ,cAAc,QAAQ,GAAG,IAAQ,uBAAuB,GAAQ,uBAAuB,GAAQ,cAAc,KAAO,GAAQ,cAAc,OAAO,EAAS,GAAQ,cAAc,MAAkB,MAAM,aAAa,SAAS,EAAM,CAA+B,OAA1B,GAAE,YAAY,MAAM,EAAY,YAAY,MAAM,GAAE,IAAK,YAA6B,EAAS,EAAS,CAAC,GAA6B,EAAS,GAAU,GAAa,GAAU,EAAO,oBAAuB,GAAoB,aAA2B,CAAC,MAAO,IAAc,EAAO,iBAAoB,GAAiB,YAA0B,EAAI,EAAI,CAAC,MAAO,IAAU,IAAI,GAAK,GAAK,EAAO,iBAAoB,GAAiB,YAAwB,EAAU,EAAS,EAAK,EAAK,CAAC,GAAM,qBAAqB,GAAa,GAAW,SAAS,CAAC,EAAS,GAAa,GAAU,mBAAmB,EAAK,EAAK,GAAa,GAAM,qBAAqB,YAAsB,EAAK,EAAK,CAAC,GAAI,GAAW,MAAM,EAAK,GAAM,GAAI,IAAoB,AAAG,EAAqB,GAAoB,UAAU,CAAC,GAAI,GAAE,QAAQ,SAAY,MAAO,GAAE,GAAG,IAAI,EAAE,GAAG,KAAU,AAAG,EAAwB,GAAoB,UAAU,CAAC,MAAO,aAAY,MAAM,EAAO,+BAAuC,AAAG,MAAO,UAAU,YAAa,GAAoB,QAAa,GAAoB,UAAU,CAAC,MAAO,aAAY,OAAO,YAAkB,EAAM,CAAC,WAAoB,MAAqB,GAAG,EAAa,EAAM,YAAiB,EAAK,EAAI,CAAC,GAAG,EAAuB,MAAO,IAAoC,EAAE,EAAE,EAAK,GAAK,YAA0C,EAAe,EAAa,CAAC,GAAG,GAAgB,EAAc,YAAY,CAAC,IAAM,wCAAwC,EAAwB,YAAY,CAAC,aAAe,EAAe,IAAM,2BAA2B,CAAC,GAAI,GAAQ,GAAQ,SAAS,GAAoB,EAAO,GAAS,EAAQ,OAAO,GAAG,CAAC,EAAQ,OAAO,EAAO,YAAY,CAAC,IAAM,uBAAuB,MAAO,GAAE,aAAiB,CAAC,KAAQ,YAAmC,EAAK,EAAO,EAAO,CAAC,GAAI,GAAK,GAAiB,EAAO,GAAQ,MAAO,IAAW,GAAM,MAAM,KAAK,GAAM,YAA2D,EAAe,EAAU,EAAE,YAAgC,EAAK,EAAI,EAAQ,CAAC,GAAG,GAAM,GAAG,EAAK,IAAmB,QAAQ,EAAK,GAAK,MAAM,IAAI,GAAI,EAAgO,CAAC,GAAG,QAAQ,KAAK,IAAoB,GAAM,IAAI,EAAK,MAAM,GAA8I,OAAvI,IAAK,YAAY,MAAU,GAAK,GAAK,EAAY,GAAS,QAAQ,SAAS,IAAoB,IAAgC,EAAE,KAAc,CAAwB,GAAvB,GAAK,YAAY,MAAS,GAAK,GAAM,UAAS,QAAQ,SAAS,IAAoB,IAAgC,EAAE,GAAS,IAAuF,GAAnF,GAAS,QAAQ,SAAS,IAAoB,IAAgC,EAAE,GAAM,IAAU,EAAG,MAAqD,GAA/C,KAAkD,QAAQ,KAAK,IAAoB,GAAM,IAAI,EAAK,MAAM,GAAG,GAAS,QAAQ,SAAS,IAAoB,IAAgC,EAAE,GAAM,MAAO,OAAj1B,CAAC,GAAI,GAAI,QAAQ,KAAK,IAAoB,GAAM,EAAE,EAAI,GAAS,GAAG,IAAM,YAAY,MAAM,IAAI,GAAG,IAAM,YAAY,MAAM,GAAG,GAAG,IAAM,KAAK,MAAO,GAAE,KAAK,6CAA6C,GAA+oB,YAAgC,EAAK,EAAI,EAAI,CAAC,IAAmB,WAAW,EAAK,EAAI,EAAI,GAAK,aAAwC,CAAC,MAAG,GAA2B,AAAQ,cAAM,OAAO,OAAc,UAAU,oBAAuB,YAA6C,EAAM,EAAK,CAA2J,OAAtJ,GAAY,UAAU,OAAO,EAAM,EAAM,KAAgB,GAAsB,EAAgB,GAAK,GAAW,GAAsB,GAAO,GAAE,IAAM,EAAU,GAAE,EAAE,GAAE,EAAY,KAAI,CAAC,GAAI,IAAI,UAAU,EAAE,IAAG,IAAoB,GAAE,IAAG,GAAI,GAAI,IAAI,GAA0C,EAAM,GAAsB,GAAK,GAAM,UAAa,GAAc,GAAI,GAAI,IAA+C,GAAO,GAAsB,GAAG,YAA0B,EAAO,EAAI,CAAC,GAAsB,OAAO,EAAE,GAAI,GAAW,IAAR,IAAM,EAAQ,EAAG,IAAmB,MAAU,CAAC,GAAI,GAAO,EAAG,IAAI,AAAG,GAAQ,EAAI,GAAE,IAAM,GAAsB,KAAK,EAAO,IAAoB,KAAO,GAAG,IAAoB,IAAM,EAAE,EAAI,MAAO,IAAsB,YAA+C,EAAM,EAAY,EAAK,CAAC,GAA+C,OAAO,EAA0B,OAAV,GAAE,GAAM,EAAU,GAAE,EAAE,GAAE,EAAY,KAAK,GAA+C,IAAG,IAAoB,EAAE,IAAG,GAAI,IAAa,EAAM,EAAM,GAAK,AAAC,GAAyC,GAAW,CAAC,EAAM,GAA9C,GAAqB,GAA4B,MAAO,IAAK,MAAM,KAAK,IAAgD,aAAoC,CAAC,MAAO,KAAmB,OAAO,YAAmC,EAAK,CAAC,GAAG,CAAC,SAAW,KAAK,EAAK,GAAO,WAAW,QAAQ,IAAI,GAA2B,EAAW,QAAe,QAAQ,EAAN,GAAW,YAAiC,EAAc,CAAC,GAAI,GAAQ,KAA4B,GAAG,GAAe,EAAS,MAAO,GAAM,GAAI,GAAY,WAAW,GAAG,EAAc,EAAa,MAAO,GAAM,OAAQ,GAAQ,EAAE,GAAS,EAAE,GAAS,EAAE,CAAC,GAAI,IAAkB,EAAS,GAAE,GAAG,GAAS,GAAkB,KAAK,IAAI,GAAkB,EAAc,WAAW,GAAI,IAAQ,KAAK,IAAI,EAAY,GAAQ,KAAK,IAAI,EAAc,IAAmB,QAAY,GAAY,GAA0B,IAAS,GAAG,GAAa,MAAO,GAAM,MAAO,GAAM,GAAI,IAAS,CAAC,eAAe,EAAE,wBAAwB,UAAU,CAAC,OAAQ,GAAE,GAAS,cAAc,OAAO,EAAE,GAAG,EAAE,EAAE,EAAG,GAAS,eAAe,GAAG,GAAS,cAAc,GAAG,GAAS,cAAc,IAAI,6BAA6B,UAAU,CAAC,AAAI,GAAS,gCAAgC,IAAW,KAAK,GAAS,yBAAyB,GAAS,+BAA+B,KAAO,cAAc,GAAG,UAAU,SAAS,EAAe,EAAW,EAAS,CAAC,WAAgC,GAAK,GAAK,CAAC,GAAG,GAAK,QAAQ,GAAK,OAAO,MAAO,GAAM,OAAQ,MAAK,IAAM,GAAG,GAAK,KAAI,GAAK,IAAG,MAAO,GAAM,MAAO,GAAK,OAAQ,MAAK,IAAS,cAAc,CAAC,GAAI,IAAK,GAAS,cAAc,IAAG,GAAG,GAAK,gBAAgB,GAAgB,EAAuB,GAAK,SAAS,GAAW,OAAQ,GAAS,cAAc,KAAK,CAAC,eAAe,EAAe,WAAW,EAAW,SAAS,IAAW,GAAS,cAAc,KAAK,SAAS,GAAE,GAAE,CAAC,MAAO,IAAE,WAAW,GAAE,cAAc,oBAAoB,SAAS,EAAe,CAAC,OAAQ,GAAE,EAAE,EAAE,GAAS,cAAc,OAAO,EAAE,EAAG,AAAG,GAAS,cAAc,GAAG,gBAAgB,GAAgB,IAAS,cAAc,OAAO,EAAE,GAAG,EAAE,IAAK,+BAA+B,UAAU,CAAC,MAAO,IAAS,gBAAgB,GAAS,oBAAoB,qBAAqB,iBAAiB,UAAU,CAAC,GAAG,EAAC,GAAS,iCAAyC,OAAQ,GAAE,EAAE,EAAE,GAAS,cAAc,OAAO,EAAE,EAAE,CAAC,GAAI,GAAK,GAAS,cAAc,GAAG,GAAS,cAAc,OAAO,EAAE,GAAG,EAAE,EAAE,EAAK,eAAe,MAAM,KAAK,EAAK,YAAY,cAAc,GAAG,0BAA0B,SAAS,EAAO,EAAgB,CAAC,OAAQ,GAAE,EAAE,EAAE,GAAS,cAAc,OAAO,EAAE,EAAG,AAAG,GAAS,cAAc,GAAG,QAAQ,GAAS,EAAC,GAAiB,GAAiB,GAAS,cAAc,GAAG,kBAAkB,GAAS,eAAe,MAAQ,eAAe,SAAS,EAAE,CAAC,GAAI,GAAE,GAAS,cAAc,GAAG,EAAE,OAAO,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,GAAS,cAAc,OAAO,EAAE,IAAI,wBAAwB,SAAS,EAAa,CAAC,GAAI,GAAe,SAAwB,GAAM,CAAC,EAAE,GAAS,eAAe,GAAS,oBAAoB,EAAa,GAAS,mBAAmB,EAAa,YAAY,IAAO,GAAS,mBAAmB,EAAE,GAAS,gBAAgB,GAAG,EAAa,aAAc,EAAa,kBAAkB,EAAe,EAAa,OAAO,iBAAiB,EAAa,gBAAgB,EAAe,EAAa,YAAY,GAAS,cAAc,KAAK,GAAc,GAAS,mCAAoC,QAAQ,GAAE,EAAE,EAAE,GAAS,cAAc,OAAO,EAAE,EAAG,AAAG,GAAS,cAAc,GAAG,QAAQ,EAAa,QAAQ,GAAS,cAAc,GAAG,iBAAiB,EAAa,iBAAiB,GAAS,eAAe,MAAS,+BAA+B,SAAS,EAAa,EAAiB,EAAY,EAAU,GAAS,CAAC,GAAI,IAAS,KAAgB,GAAQ,GAAW,IAAI,IAAoB,IAAS,GAAG,EAAY,IAAoB,GAAQ,GAAG,GAAG,EAAU,IAAoB,GAAQ,GAAG,GAAG,GAAS,GAA4B,EAAE,EAAa,UAAU,EAAiB,EAAU,IAAS,GAAa,KAAW,gCAAgC,SAAS,EAAa,CAAC,OAAO,OAAmB,GAAE,MAAO,OAAO,GAAE,MAAO,IAAQ,4CAA4C,MAAO,KAAe,qBAAqB,SAAS,EAAO,CAAC,MAAI,GAAmB,GAAQ,OAAa,UAAa,GAAQ,OAAa,UAAiB,GAAQ,EAAO,SAAS,EAAO,SAAS,GAAtH,IAA0H,kBAAkB,UAAU,CAAC,MAAO,UAAS,mBAAmB,SAAS,0BAA0B,YAAyB,EAAS,CAAC,GAAI,GAAO,GAAgB,GAAU,EAAM,EAAQ,GAAQ,GAAQ,UAAa,EAAS,EAAQ,GAAe,EAAQ,YAAkE,EAAa,EAAa,EAAM,EAAO,CAAC,GAAI,IAAS,KAAgB,GAAQ,GAAW,IAAQ,GAAgB,EAAE,AAAG,GAAc,IAAgB,GAAgB,IAAc,IAAoB,IAAS,GAAG,GAAgB,IAAoB,GAAQ,GAAG,GAAG,EAAM,IAAoB,GAAQ,GAAG,GAAG,EAAO,GAA4B,EAAE,EAAa,UAAU,EAAE,GAAgB,IAAS,GAAa,IAAU,YAA+D,EAAa,EAAa,EAAM,EAAO,CAAC,EAAa,EAAa,GAAa,GAAc,GAAG,GAAyD,EAAa,EAAa,EAAM,GAAQ,YAAgC,EAAQ,CAAC,MAAO,GAAQ,EAAE,GAAa,GAAS,EAAQ,GAAI,IAAmB,CAAC,EAAE,MAAO,WAAW,YAAY,SAAS,EAAE,MAAO,SAAS,YAAY,OAAO,GAAG,YAAyB,EAAO,CAAC,EAAO,GAAuB,GAAQ,GAAI,GAAW,GAAmB,IAAU,OAAO,WAAW,YAAY,SAAS,cAAc,GAAQ,QAAW,MAAO,GAAW,YAA+B,EAAO,CAAC,MAAO,IAAgB,GAAQ,YAA4D,EAAO,EAAM,EAAO,CAAC,GAAI,GAAO,GAAsB,GAAQ,GAAG,CAAC,EAAO,MAAM,GAA2I,GAArI,EAAO,iBAAiB,KAAoB,EAAO,iBAAiB,GAAG,EAAM,IAAoB,EAAO,gBAAgB,GAAG,GAAG,GAAU,EAAO,iBAAiB,CAAC,EAAO,4BAA4B,CAAC,AAAG,EAAO,iBAAgB,GAAO,EAAO,iBAAgB,GAAI,IAAmB,GAAM,GAAG,EAAO,aAAa,EAAO,YAAY,MAAM,CAAC,GAAI,IAAa,EAAO,YAAY,MAAM,aAAa,MAAM,GAAmB,GAAa,KAAK,GAAG,GAAa,KAAK,GAAG,GAAa,KAAK,EAAO,OAAO,GAAa,KAAK,EAAO,OAAO,EAAO,MAAM,EAAM,EAAO,OAAO,EAAU,IAAoB,EAAO,YAAY,MAAM,SAAS,EAAE,EAAE,EAAM,WAAiB,EAAO,gBAAgB,CAAC,GAAI,IAAa,IAAoB,EAAO,gBAAgB,GAAG,GAAG,UAAsD,GAAa,EAAO,EAAM,GAAe,MAAO,OAAM,GAAG,MAAO,GAAE,YAAyD,EAAO,EAAM,EAAO,CAAC,MAAG,GAA8B,GAAoC,EAAE,EAAE,EAAO,EAAM,GAAe,GAAmD,EAAO,EAAM,GAAQ,YAA6C,EAAO,EAAM,EAAO,CAAC,GAAI,GAAO,GAAsB,GAAQ,MAAG,GAAe,GAAmD,EAAO,EAAM,GAAoB,GAAgD,EAAO,EAAM,GAAS,YAA+C,EAAU,EAAE,YAAqC,EAAS,EAAK,EAAE,YAA+C,EAAI,CAAC,GAAI,GAAI,EAAI,aAAa,0BAA0B,GAAG,EAAK,SAAI,oBAAuB,SAAS,EAAM,EAAQ,CAAC,EAAI,yBAA4B,EAAM,IAAU,EAAI,oBAAuB,SAAS,EAAK,EAAM,GAAM,GAAU,CAAC,EAAI,yBAA4B,EAAK,EAAM,GAAM,KAAY,EAAI,sBAAyB,SAAS,EAAK,EAAM,GAAK,GAAQ,GAAU,CAAC,EAAI,2BAA8B,EAAK,EAAM,GAAK,GAAQ,KAAmB,EAAG,YAAgD,EAAI,CAAC,GAAI,GAAI,EAAI,aAAa,2BAA2B,GAAG,EAAK,SAAI,kBAAqB,UAAU,CAAC,MAAO,GAAI,wBAA2B,EAAI,kBAAqB,SAAS,EAAI,CAAC,EAAI,qBAAwB,IAAM,EAAI,gBAAmB,SAAS,EAAI,CAAC,EAAI,mBAAsB,IAAM,EAAI,cAAiB,SAAS,EAAI,CAAC,MAAO,GAAI,iBAAoB,IAAa,EAAG,YAA2C,EAAI,CAAC,GAAI,GAAI,EAAI,aAAa,sBAAsB,GAAG,EAAK,SAAI,YAAe,SAAS,EAAE,EAAK,CAAC,EAAI,iBAAoB,EAAE,IAAc,EAAG,YAAyC,EAAI,CAAC,MAAM,CAAC,CAAE,GAAI,eAAe,EAAI,aAAa,qBAAqB,GAAI,IAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,aAAa,GAAG,YAAY,GAAG,gBAAgB,EAAE,YAAY,SAAqB,EAAU,CAAC,AAAI,GAAG,WAAW,IAAG,UAAU,IAAY,SAAS,SAAS,EAAM,CAAsB,OAAjB,GAAI,GAAG,UAAkB,EAAE,EAAM,OAAO,EAAE,EAAI,IAAK,EAAM,GAAG,KAAK,MAAO,IAAK,UAAU,SAAS,EAAO,EAAM,EAAO,EAAO,CAAe,OAAV,IAAO,GAAW,GAAE,EAAE,GAAE,EAAM,EAAE,GAAE,CAAC,GAAI,IAAI,EAAO,IAAoB,EAAO,GAAE,GAAG,GAAG,GAAG,IAAQ,GAAa,IAAoB,EAAO,GAAE,GAAG,GAAG,GAAI,EAAE,OAAU,IAAK,MAAO,KAAQ,cAAc,SAAS,EAAO,EAAuB,CAAC,GAAI,GAAI,EAAO,WAAW,QAAQ,GAAwB,GAAG,CAAC,EAAI,MAAO,GAAE,GAAI,GAAO,GAAG,gBAAgB,EAAI,GAAwB,MAAO,IAAQ,gBAAgB,SAAS,EAAI,EAAuB,CAAC,GAAI,GAAO,GAAQ,GAAG,IAAoB,EAAO,GAAG,GAAG,KAAgB,GAAI,GAAQ,CAAC,OAAO,EAAO,WAAW,EAAuB,QAAQ,EAAuB,aAAa,MAAM,GAAK,MAAG,GAAI,QAAO,GAAI,OAAO,YAAY,GAAQ,GAAG,SAAS,GAAQ,EAAW,OAAO,GAAuB,2BAA4B,aAAa,EAAuB,4BAA2B,GAAG,eAAe,GAAgB,GAAQ,mBAAmB,SAAS,EAAc,CAAC,UAAG,eAAe,GAAG,SAAS,GAAe,EAAO,IAAI,GAAM,GAAG,gBAAgB,GAAG,eAAe,MAAY,CAAE,IAAe,CAAC,KAAQ,WAAW,SAAS,EAAc,CAAC,MAAO,IAAG,SAAS,IAAgB,cAAc,SAAS,EAAc,CAAC,AAAG,GAAG,iBAAiB,GAAG,SAAS,IAAe,IAAG,eAAe,MAAQ,MAAO,KAAW,UAAS,GAAS,0BAA0B,GAAG,SAAS,GAAe,MAAM,QAAW,GAAG,SAAS,IAAgB,GAAG,SAAS,GAAe,MAAM,QAAO,IAAG,SAAS,GAAe,MAAM,OAAO,YAAY,QAAU,GAAM,GAAG,SAAS,GAAe,QAAQ,GAAG,SAAS,GAAe,MAAM,eAAe,SAAS,EAAQ,CAAuC,GAAlC,GAAQ,GAAQ,GAAG,gBAAkB,GAAQ,mBAA0B,GAAQ,mBAAmB,GAAK,GAAI,GAAM,EAAQ,MAAM,GAAsC,GAAO,GAAuC,GAAO,GAAkC,GAAO,EAAM,sBAAsB,EAAM,aAAa,4BAA4B,GAAgC,GAAO,GAAI,GAAK,EAAM,0BAA0B,GAAG,EAAK,QAAQ,SAAS,EAAI,CAAC,AAAG,EAAI,QAAQ,gBAAgB,GAAG,EAAI,QAAQ,SAAS,GAAG,EAAM,aAAa,OAAS,qBAAqB,SAAS,EAAQ,CAAkO,OAA7N,GAAE,GAAG,SAAS,GAAa,EAAO,GAAG,aAAa,GAAS,CAAC,SAAS,GAAG,iBAAiB,EAAE,mBAAmB,GAAG,0BAA0B,IAAQ,EAAO,EAAO,SAAa,GAAY,GAAM,oBAAoB,EAAE,OAAe,GAAE,EAAE,GAAE,GAAY,EAAE,GAAE,CAAC,GAAI,IAAE,GAAM,iBAAiB,EAAE,IAAO,GAAK,GAAE,KAAK,EAAO,iBAAiB,KAAK,IAAI,EAAO,iBAAiB,GAAK,OAAO,GAAM,GAAK,MAAM,KAAK,KAAK,IAAK,GAAK,MAAM,EAAE,GAAK,YAAY,OAAM,GAAI,IAAI,GAAM,mBAAmB,EAAE,IAAM,GAAG,GAAI,CAAC,GAAI,IAAG,GAAG,SAAS,GAAG,UAAU,EAAO,IAAM,CAAC,GAAE,KAAK,IAAI,GAAG,SAAS,IAAI,GAAI,OAAQ,IAAE,EAAE,GAAE,GAAE,KAAK,EAAE,GAAE,CAAC,GAAI,IAAE,GAAK,IAAI,GAAE,IAAI,GAAI,GAAM,mBAAmB,EAAE,IAAG,GAAG,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,IAAI,QAAa,GAAqC,CAAC,UAAU,YAAY,oBAAoB,YAA6C,EAAO,EAAW,CAAC,GAAI,GAAE,GAAY,EAAM,EAAgB,IAAoB,EAAG,KAAI,IAAQ,GAAkB,CAAC,MAAQ,CAAC,CAAC,IAAoB,EAAG,IAAG,IAAI,MAAQ,CAAC,CAAC,IAAoB,EAAG,IAAG,IAAI,QAAU,CAAC,CAAC,IAAoB,EAAG,IAAG,IAAI,UAAY,CAAC,CAAC,IAAoB,EAAG,KAAI,IAAI,mBAAqB,CAAC,CAAC,IAAoB,EAAG,KAAI,IAAI,sBAAwB,CAAC,CAAC,IAAoB,EAAG,KAAI,IAAI,gBAAkB,GAAqC,GAAiB,6BAA+B,CAAC,CAAC,IAAoB,EAAG,KAAI,IAAI,aAAa,IAAoB,EAAG,KAAI,IAAI,aAAa,IAAoB,EAAG,KAAI,IAAI,0BAA0B,IAAoB,EAAG,KAAI,IAAI,oBAAoB,IAAoB,EAAG,KAAI,IAAI,yBAAyB,IAAoB,EAAG,KAAI,IAAI,6BAA6B,IAAoB,EAAG,KAAI,KAAS,GAAO,GAAsB,GAA6B,GAAlB,CAAC,IAAoB,GAAkB,oBAAqB,MAAO,GAAE,GAAI,IAAc,GAAG,cAAc,GAAO,IAAmB,MAAO,IAAc,YAA0C,EAAG,EAAG,CAAC,MAAO,IAAoC,EAAG,GAAI,GAAI,IAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,KAAK,GAAG,IAAI,UAAU,SAAS,EAAO,EAAK,CAAC,GAAI,GAAO,GAAS,QAAQ,GAAQ,AAAG,IAAO,GAAG,IAAO,GAAK,MAAS,EAAE,EAAI,GAAK,GAAkB,EAAO,IAAI,EAAO,OAAO,GAAO,EAAO,KAAK,IAAQ,QAAQ,OAAU,IAAI,UAAU,CAAC,GAAS,SAAS,EAAE,GAAI,GAAI,IAAoB,GAAS,QAAQ,GAAG,GAAG,MAAO,IAAK,OAAO,SAAS,EAAI,CAAC,GAAI,GAAI,GAAa,GAAK,MAAO,IAAK,MAAM,SAAS,EAAI,EAAK,CAAC,MAAO,KAAM,YAAmB,EAAG,CAAC,MAAG,GAA8B,GAAoC,EAAE,EAAE,GAAW,EAAE,YAAkB,EAAG,EAAW,EAAY,EAAO,GAAU,CAAC,GAAG,EAAuB,MAAO,IAAoC,EAAE,EAAE,EAAG,EAAW,EAAY,EAAO,IAAW,YAAmB,EAAG,EAAI,EAAO,EAAK,CAAC,GAAG,EAAuB,MAAO,IAAoC,EAAE,EAAE,EAAG,EAAI,EAAO,GAAgB,OAAN,IAAI,EAAU,GAAE,EAAE,GAAE,EAAO,KAAI,CAAqF,OAAhF,IAAI,IAAoB,EAAI,GAAE,GAAG,GAAO,GAAI,IAAoB,EAAK,IAAE,EAAE,IAAI,GAAW,GAAE,EAAE,GAAE,GAAI,KAAK,GAAS,UAAU,EAAG,IAAmB,GAAI,KAAI,IAAK,GAAI,WAAoB,GAAM,GAAG,GAAW,EAAE,YAA8B,EAAQ,CAAC,GAAI,GAAQ,GAAQ,mBAAmB,MAAM,AAAG,GAAQ,IAAU,YAA+B,EAAQ,EAAI,CAAC,GAAQ,mBAAmB,KAAK,UAAU,CAAC,GAAU,IAAI,GAAS,KAAO,YAAqB,EAAa,CAAC,GAAG,EAAuB,KAAK,sFAAsF,GAAI,GAAO,GAAQ,eAAe,GAAG,EAAO,UAAU,OAAU,KAAK,kBAAkB,GAAG,CAAC,EAAa,YAAY,KAAK,kCAAkC,GAAQ,eAAe,KAAK,GAAqC,OAAzB,GAAU,GAAQ,IAAI,GAAW,EAAE,EAAE,EAAE,IAAI,EAAE,EAAG,IAAoB,EAAU,EAAE,GAAG,GAAG,EAAE,GAAI,IAAU,EAAa,UAAU,EAAa,UAAc,GAAQ,GAAQ,SAAS,EAAa,aAAa,CAAC,OAAO,EAAO,UAAU,EAAa,UAAU,UAAU,EAAa,UAAU,kBAAkB,EAAa,kBAAkB,iBAAiB,EAAa,aAAiB,GAAI,GAAQ,kBAAkB,EAAE,QAAQ,MAAM,IAAoB,GAAK,KAAI,GAAG,EAAa,UAAU,QAAQ,MAAM,IAAoB,GAAK,MAAK,GAAG,GAAW,QAAQ,MAAM,IAAoB,GAAK,KAAI,GAAG,GAAQ,kBAAkB,QAAQ,MAAM,IAAoB,GAAK,KAAI,GAAG,EAAa,WAAW,QAAQ,MAAM,IAAoB,GAAK,KAAI,GAAG,IAAW,QAAQ,MAAM,IAAoB,GAAK,MAAK,GAAG,EAAa,WAAW,QAAQ,MAAM,IAAoB,GAAK,KAAI,GAAG,GAAG,IAAW,QAAQ,MAAM,IAAoB,GAAK,KAAI,IAAI,GAAG,EAAa,UAAU,GAAI,IAAY,KAAkC,GAAc,GAAY,GAAG,QAAQ,MAAM,IAAoB,GAAK,MAAK,GAAG,IAAe,EAAO,QAAQ,GAAQ,GAAI,IAAI,CAAC,IAAM,MAAM,cAAgB,EAAa,aAAa,IAAM,EAAa,IAAI,iBAAmB,EAAa,YAAY,UAAY,EAAa,UAAU,UAAY,EAAa,WAAW,EAAO,WAAW,UAAU,CAAC,GAAI,KAAK,YAAY,MAAM,EAAO,YAAY,GAAI,EAAa,eAAkB,EAAO,QAAQ,GAAO,aAAa,MAAO,GAAO,YAAY,YAAyB,EAAY,EAAK,EAAc,EAAI,CAAC,GAAG,MAAO,oBAAoB,YAAa,SAAI,uFAA8F,EAAE,GAAG,CAAC,EAAa,SAAI,qDAA4D,GAAG,GAAI,IAAa,GAAO,GAAM,EAAE,GAAG,GAAyB,IAAa,SAAS,GAAG,IAAQ,MAAO,IAAsC,UAAU,EAAY,EAAK,EAAc,GAAK,GAAG,GAAM,MAAO,IAAM,GAAI,IAAU,EAAM,GAAU,EAAM,GAAS,EAAE,AAAG,GAAM,GAAM,GAAI,IAAU,IAAoB,GAAM,GAAG,IAAW,MAAM,GAAU,IAAoB,EAAK,GAAG,GAAG,GAAS,IAAoB,EAAK,IAAI,KAAK,GAAO,GAAU,QAAQ,GAAI,IAAkB,IAAW,EAAE,AAAG,GAAmB,GAAU,GAAU,GAAG,IAAgB,KAAW,GAAU,GAAO,GAAU,IAAqC,OAA9B,IAAiB,GAAQ,KAAa,GAAE,EAAE,GAAE,KAAK,EAAE,EAAE,GAAE,IAAqB,KAAkB,GAAG,IAAG,EAAE,IAAoB,GAAa,GAAG,GAAiB,IAAoB,GAAiB,IAAI,GAAG,GAAiB,GAAI,IAAQ,GAAiB,IAAI,IAAoB,IAAS,GAAG,GAAQ,GAAI,IAAa,CAAC,UAAU,GAAU,UAAU,GAAU,kBAAkB,GAAkB,SAAS,GAAS,aAAa,EAAc,YAAY,GAAiB,IAAI,EAAI,aAAa,IAAc,MAAG,GAAwB,IAAa,IAAI,cAAc,YAAY,GAAa,KAAmB,GAAY,IAAqB,EAAE,YAAkB,EAAK,CAAC,GAAG,EAAuB,MAAO,IAAoC,EAAE,EAAE,GAAM,OAAO,OAAW,IAAG,MAAO,WAAW,IAAG,GAAI,GAAY,WAAW,MAAO,GAAY,UAAW,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,QAAQ,SAAS,SAAS,OAAO,QAAQ,QAAQ,SAAS,SAAS,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,IAAG,MAAO,YAAY,QAAQ,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,QAAQ,QAAQ,IAAG,MAAM,OAAQ,SAAS,SAAS,OAAO,SAAS,OAAO,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,QAAQ,IAAG,MAAO,OAAO,QAAQ,QAAQ,QAAQ,QAAQ,GAAE,MAAO,UAAU,QAAQ,QAAQ,IAAG,MAAO,QAAQ,QAAQ,QAAQ,IAAG,MAAO,gBAAgB,QAAQ,GAAE,MAAO,WAAW,QAAQ,IAAG,MAAO,QAAQ,QAAQ,IAAG,MAAO,UAAU,GAAE,MAAO,aAAa,GAAE,MAAO,WAAW,IAAG,MAAO,WAAW,IAAG,MAAO,WAAW,IAAG,MAAO,WAAW,IAAG,MAAO,SAAS,IAAG,MAAO,SAAS,IAAG,MAAO,SAAS,IAAG,MAAO,SAAS,GAAE,MAAO,SAAS,KAAI,MAAO,QAAQ,IAAG,MAAO,QAAQ,GAAE,MAAO,QAAQ,GAAE,MAAO,OAAO,IAAG,MAAO,OAAO,IAAI,MAAG,OAAO,YAAY,UAAgB,UAAU,qBAAwB,EAAY,UAAS,IAAU,GAAG,AAAI,GAAuB,GAAQ,sBAAsB,GAAI,IAAU,GAAqB,CAAC,KAAK,GAAQ,GAAgD,GAAU,GAAS,GAAU,IAAc,GAAc,CAAC,EAAI,GAAe,EAAI,GAAa,EAAI,GAAiC,EAAI,GAAO,EAAI,GAA0B,EAAI,GAAkD,EAAI,GAAuB,EAAI,GAAuB,EAAI,GAAoB,EAAI,GAAuB,EAAI,GAA8B,EAAI,GAAsC,EAAI,GAAwB,EAAI,GAAoC,EAAI,GAAsC,EAAI,GAA4B,EAAI,GAAiC,EAAI,GAAU,EAAI,GAAS,EAAI,GAAU,EAAI,GAAe,EAAI,GAAY,EAAO,WAAc,EAAI,GAAqB,EAAI,GAAsB,EAAI,GAAgB,EAAI,IAAc,GAAI,KAAiB,GAAmB,EAAO,mBAAsB,UAAU,CAAC,MAAO,IAAmB,EAAO,mBAAsB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAiB,EAAO,iBAAoB,UAAU,CAAC,MAAO,IAAiB,EAAO,iBAAoB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAc,EAAO,cAAiB,UAAU,CAAC,MAAO,IAAc,EAAO,cAAiB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAS,EAAO,SAAY,UAAU,CAAC,MAAO,IAAS,EAAO,SAAY,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAQ,EAAO,QAAW,UAAU,CAAC,MAAO,IAAQ,EAAO,QAAW,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAS,EAAO,SAAY,UAAU,CAAC,MAAO,IAAS,EAAO,SAAY,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAa,EAAO,aAAgB,UAAU,CAAC,MAAO,IAAa,EAAO,aAAgB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAa,EAAO,aAAgB,UAAU,CAAC,MAAO,IAAa,EAAO,aAAgB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAQ,EAAO,QAAW,UAAU,CAAC,MAAO,IAAQ,EAAO,QAAW,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAqB,EAAO,qBAAwB,UAAU,CAAC,MAAO,IAAqB,EAAO,qBAAwB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAe,EAAO,eAAkB,UAAU,CAAC,MAAO,IAAe,EAAO,eAAkB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAQ,EAAO,QAAW,UAAU,CAAC,MAAO,IAAQ,EAAO,QAAW,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAc,EAAO,cAAiB,UAAU,CAAC,MAAO,IAAc,EAAO,cAAiB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAuB,EAAO,uBAA0B,UAAU,CAAC,MAAO,IAAuB,EAAO,uBAA0B,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,EAAO,EAAO,OAAU,UAAU,CAAC,MAAO,GAAO,EAAO,OAAU,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAe,EAAO,eAAkB,UAAU,CAAC,MAAO,IAAe,EAAO,eAAkB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAO,EAAO,OAAU,UAAU,CAAC,MAAO,IAAO,EAAO,OAAU,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAU,EAAO,UAAa,UAAU,CAAC,MAAO,IAAU,EAAO,UAAa,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAgB,EAAO,gBAAmB,UAAU,CAAC,MAAO,IAAgB,EAAO,gBAAmB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAa,EAAO,aAAgB,UAAU,CAAC,MAAO,IAAa,EAAO,aAAgB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAsB,EAAO,sBAAyB,UAAU,CAAC,MAAO,IAAsB,EAAO,sBAAyB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAQ,EAAO,QAAW,UAAU,CAAC,MAAO,IAAQ,EAAO,QAAW,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAU,EAAO,UAAa,UAAU,CAAC,MAAO,IAAU,EAAO,UAAa,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAS,EAAO,SAAY,UAAU,CAAC,MAAO,IAAS,EAAO,SAAY,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAc,EAAO,cAAiB,UAAU,CAAC,MAAO,IAAc,EAAO,cAAiB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAW,EAAO,WAAc,UAAU,CAAC,MAAO,IAAW,EAAO,WAAc,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAW,EAAO,WAAc,UAAU,CAAC,MAAO,IAAW,EAAO,WAAc,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAY,EAAO,YAAe,UAAU,CAAC,MAAO,IAAY,EAAO,YAAe,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAS,EAAO,SAAY,UAAU,CAAC,MAAO,IAAS,EAAO,SAAY,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAS,EAAO,SAAY,UAAU,CAAC,MAAO,IAAS,EAAO,SAAY,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAS,EAAO,SAAY,UAAU,CAAC,MAAO,IAAS,EAAO,SAAY,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAU,EAAO,UAAa,UAAU,CAAC,MAAO,IAAU,EAAO,UAAa,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAqB,EAAO,qBAAwB,UAAU,CAAC,MAAO,IAAqB,EAAO,qBAAwB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAqB,EAAO,qBAAwB,UAAU,CAAC,MAAO,IAAqB,EAAO,qBAAwB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAqB,EAAO,qBAAwB,UAAU,CAAC,MAAO,IAAqB,EAAO,qBAAwB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAU,EAAO,UAAa,UAAU,CAAC,MAAO,IAAU,EAAO,UAAa,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAQ,EAAO,QAAW,UAAU,CAAC,MAAO,IAAQ,EAAO,QAAW,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAO,EAAO,OAAU,UAAU,CAAC,MAAO,IAAO,EAAO,OAAU,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAO,EAAO,OAAU,UAAU,CAAC,MAAO,IAAO,EAAO,OAAU,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAS,EAAO,SAAY,UAAU,CAAC,MAAO,IAAS,EAAO,SAAY,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAO,EAAO,OAAU,UAAU,CAAC,MAAO,IAAO,EAAO,OAAU,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAgB,EAAO,gBAAmB,UAAU,CAAC,MAAO,IAAgB,EAAO,gBAAmB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAS,EAAO,SAAY,UAAU,CAAC,MAAO,IAAS,EAAO,SAAY,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAkB,EAAO,kBAAqB,UAAU,CAAC,MAAO,IAAkB,EAAO,kBAAqB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAO,EAAO,OAAU,UAAU,CAAC,MAAO,IAAO,EAAO,OAAU,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAO,EAAO,OAAU,UAAU,CAAC,MAAO,IAAO,EAAO,OAAU,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAW,EAAO,WAAc,UAAU,CAAC,MAAO,IAAW,EAAO,WAAc,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAU,EAAO,UAAa,UAAU,CAAC,MAAO,IAAU,EAAO,UAAa,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAS,EAAO,SAAY,UAAU,CAAC,MAAO,IAAS,EAAO,SAAY,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAS,EAAO,SAAY,UAAU,CAAC,MAAO,IAAS,EAAO,SAAY,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAQ,EAAO,QAAW,UAAU,CAAC,MAAO,IAAQ,EAAO,QAAW,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAmB,EAAO,mBAAsB,UAAU,CAAC,MAAO,IAAmB,EAAO,mBAAsB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAc,EAAO,cAAiB,UAAU,CAAC,MAAO,IAAc,EAAO,cAAiB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAW,EAAO,WAAc,UAAU,CAAC,MAAO,IAAW,EAAO,WAAc,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAc,EAAO,cAAiB,UAAU,CAAC,MAAO,IAAc,EAAO,cAAiB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAQ,EAAO,QAAW,UAAU,CAAC,MAAO,IAAQ,EAAO,QAAW,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAkB,EAAO,kBAAqB,UAAU,CAAC,MAAO,IAAkB,EAAO,kBAAqB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAA4B,EAAO,4BAA+B,UAAU,CAAC,MAAO,IAA4B,EAAO,4BAA+B,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAc,EAAO,cAAiB,UAAU,CAAC,MAAO,IAAc,EAAO,cAAiB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAyB,EAAO,yBAA4B,UAAU,CAAC,MAAO,IAAyB,EAAO,yBAA4B,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAA6C,EAAO,6CAAgD,UAAU,CAAC,MAAO,IAA6C,EAAO,6CAAgD,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAgD,EAAO,gDAAmD,UAAU,CAAC,MAAO,IAAgD,EAAO,gDAAmD,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAA4C,EAAO,4CAA+C,UAAU,CAAC,MAAO,IAA4C,EAAO,4CAA+C,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAmC,EAAO,mCAAsC,UAAU,CAAC,MAAO,IAAmC,EAAO,mCAAsC,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAsC,EAAO,sCAAyC,UAAU,CAAC,MAAO,IAAsC,EAAO,sCAAyC,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAA0C,EAAO,0CAA6C,UAAU,CAAC,MAAO,IAA0C,EAAO,0CAA6C,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAA4B,EAAO,4BAA+B,UAAU,CAAC,MAAO,IAA4B,EAAO,4BAA+B,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAqB,EAAO,qBAAwB,UAAU,CAAC,MAAO,IAAqB,EAAO,qBAAwB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAyB,EAAO,yBAA4B,UAAU,CAAC,MAAO,IAAyB,EAAO,yBAA4B,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAU,EAAO,UAAa,UAAU,CAAC,MAAO,IAAU,EAAO,UAAa,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAa,EAAO,aAAgB,UAAU,CAAC,MAAO,IAAa,EAAO,aAAgB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAW,EAAO,WAAc,UAAU,CAAC,MAAO,IAAW,EAAO,WAAc,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAA6B,EAAO,6BAAgC,UAAU,CAAC,MAAO,IAA6B,EAAO,6BAAgC,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAU,EAAO,UAAa,UAAU,CAAC,MAAO,IAAU,EAAO,UAAa,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAA6C,EAAO,6CAAgD,KAAS,GAA+B,EAAO,+BAAkC,MAAM,EAAO,MAAS,GAAM,EAAO,QAAW,GAAQ,EAAO,QAAW,GAAQ,EAAO,WAAc,EAAW,EAAO,WAAc,GAAW,GAAI,IAAU,YAAoB,EAAO,CAAC,KAAK,KAAK,aAAa,KAAK,QAAQ,gCAAgC,EAAO,IAAI,KAAK,OAAO,EAAO,GAAsB,YAAoB,CAAC,AAAI,IAAU,KAAU,IAAU,IAAsB,IAAW,YAAa,EAAK,CAAuB,GAAtB,EAAK,GAAM,EAAc,GAAgB,EAAG,OAAO,GAAG,EAAuB,CAAC,EAAoB,GAAQ,YAAY,CAAC,IAAM,WAAW,OAAgB,GAAT,KAAY,GAAgB,EAAG,OAAO,YAAgB,CAAC,AAAG,IAAiB,IAAU,GAAK,EAAO,UAAa,GAAQ,KAAa,MAAc,KAAU,EAAoB,GAAW,EAAO,sBAAwB,EAAO,uBAA0B,OAAU,AAAG,EAAO,UAAc,GAAO,UAAa,cAAc,WAAW,UAAU,CAAC,WAAW,UAAU,CAAC,EAAO,UAAa,KAAK,GAAG,KAAS,IAAQ,IAAS,EAAO,IAAO,GAAI,YAAc,EAAO,EAAS,CAAC,GAAG,KAAU,IAAe,IAAS,GAAU,IAAG,CAAC,GAAa,EAAwB,kBAAY,CAAC,IAAM,cAAc,WAAa,IAAe,GAAI,IAAW,GAAe,AAAG,IAAqB,IAAQ,sBAAsB,GAAW,EAAO,KAAiB,EAAO,QAAU,EAAO,OAAU,GAAQ,GAAM,IAAK,EAAM,EAAO,GAAI,IAAW,KAAS,GAAG,EAAO,QAA0F,IAA3E,MAAO,GAAO,SAAY,YAAW,GAAO,QAAW,CAAC,EAAO,UAAkB,EAAO,QAAW,OAAO,GAAG,EAAO,QAAW,QAAS,MAAG,IAAwB,IAAc,GAAM,GAAQ,cAAa,KAGj+8D,EAA8B,UAIvC,AAAI,MAAO,KAAY,UAAY,MAAO,KAAW,SACnD,GAAO,QAAU,GACd,AAAI,MAAO,SAAW,YAAc,OAAO,IAC9C,OAAO,GAAI,UAAW,CAAE,MAAO,MACxB,MAAO,KAAY,UAC1B,IAAQ,8BAAmC,MCpB7C,oBACA,GAAI,IAAqB,UAAW,CAClC,GAAI,GAAa,MAAO,WAAa,aAAe,SAAS,cAAgB,SAAS,cAAc,IAAM,OAC1G,MAAI,OAAO,aAAe,aAAa,GAAa,GAAc,YAEpE,SAAS,EAAmB,CAC1B,EAAoB,GAAqB,GAE3C,GAAI,GAAO,MAAO,IAAoB,YAAY,EAAkB,GAAO,EAAoB,EAAmB,EAAO,MAAS,GAAI,SAAQ,SAAS,EAAQ,GAAO,CAAC,EAAoB,EAAQ,EAAmB,KAAS,GAAI,GAAgB,GAAO,EAAI,IAAI,IAAO,GAAQ,AAAG,EAAO,eAAe,IAAM,GAAgB,GAAK,EAAO,IAAM,GAAI,GAAW,GAAO,EAAY,iBAAqB,EAAM,SAAS,EAAO,GAAQ,CAAC,KAAM,KAAa,EAAmB,GAAU,EAAsB,GAAU,EAAoB,GAAU,EAAqB,GAAM,EAAmB,MAAO,SAAS,SAAS,EAAsB,MAAO,gBAAgB,WAAW,EAAoB,MAAO,UAAU,UAAU,MAAO,SAAQ,UAAW,UAAU,MAAO,SAAQ,SAAS,MAAO,SAAS,EAAqB,CAAC,GAAoB,CAAC,GAAqB,CAAC,EAAsB,GAAI,GAAgB,GAAG,WAAoB,EAAK,CAAC,MAAG,GAAO,WAAsB,EAAO,WAAc,EAAK,GAAwB,EAAgB,EAAK,GAAI,GAAM,EAAU,EAAW,EAAmB,EAAW,EAAS,AAAG,EAAqB,CAAG,EAAuB,EAAgB,AAAQ,KAAQ,QAAQ,GAAiB,IAAS,EAAgB,UAAU,IAAI,EAAM,SAAoB,GAAS,GAAO,CAAC,MAAI,IAAO,GAAe,eAAU,GAAS,GAAiB,MAAQ,GAAS,EAAS,UAAa,IAAiB,EAAO,aAAgB,GAAS,GAAO,KAAK,SAAS,EAAW,SAAoB,GAAS,CAAC,GAAI,IAAI,EAAM,GAAS,IAAM,MAAI,IAAI,QAAQ,IAAI,GAAI,YAAW,KAAK,EAAO,GAAI,QAAe,IAAQ,QAAQ,KAAQ,OAAO,GAAG,GAAY,QAAQ,KAAQ,GAAG,QAAQ,MAAM,MAAK,EAAW,QAAQ,KAAQ,MAAM,GAAG,QAAQ,GAAM,oBAAoB,SAAS,EAAG,CAAC,GAAG,CAAE,aAAc,KAAa,KAAM,KAAM,QAAQ,GAAM,qBAAqB,IAAO,EAAM,SAAS,EAAO,CAAC,QAAQ,KAAQ,IAAS,EAAO,QAAW,UAAU,CAAC,MAAM,+BAAmC,AAAG,EAAyB,OAAO,OAAM,aAAa,GAAM,SAAoB,GAAE,CAAC,MAAO,MAAK,MAAI,EAAW,SAAoB,GAAE,CAAC,GAAI,IAAK,MAAG,OAAO,aAAa,WAAmB,GAAI,YAAW,WAAW,KAAI,IAAK,KAAK,GAAE,UAAU,EAAO,MAAO,KAAO,UAAiB,KAAM,AAAG,MAAO,aAAY,YAAa,EAAW,WAAmB,MAAO,YAAW,aAAa,GAAW,WAAa,MAAO,OAAO,YAAY,GAAM,SAAS,EAAO,CAAC,KAAK,KAAY,MAAO,QAAQ,aAAgB,OAAO,UAAU,aAAY,SAAQ,IAAG,QAAQ,IAAI,MAAM,QAAQ,KAAK,QAAQ,MAAM,MAAO,WAAW,YAAY,SAAS,QAAe,IAAoB,IAAuB,CAAG,EAAuB,EAAgB,KAAK,SAAS,KAAa,MAAO,WAAW,aAAa,SAAS,eAAe,GAAgB,SAAS,cAAc,KAAO,GAAY,GAAgB,GAAW,AAAG,EAAgB,QAAQ,WAAW,EAAG,EAAgB,EAAgB,OAAO,EAAE,EAAgB,YAAY,KAAK,GAAQ,EAAgB,GAAI,EAAM,SAAS,EAAI,CAAC,GAAI,IAAI,GAAI,gBAAe,UAAI,KAAK,MAAM,EAAI,IAAO,GAAI,KAAK,MAAa,GAAI,cAAiB,GAAuB,GAAW,SAAS,EAAI,CAAC,GAAI,IAAI,GAAI,gBAAe,UAAI,KAAK,MAAM,EAAI,IAAO,GAAI,aAAa,cAAc,GAAI,KAAK,MAAa,GAAI,YAAW,GAAI,YAAW,EAAU,SAAS,EAAI,GAAO,GAAQ,CAAC,GAAI,IAAI,GAAI,gBAAe,GAAI,KAAK,MAAM,EAAI,IAAM,GAAI,aAAa,cAAc,GAAI,OAAO,UAAU,CAAC,GAAG,GAAI,QAAQ,KAAK,GAAI,QAAQ,GAAG,GAAI,SAAS,CAAC,GAAO,GAAI,UAAU,OAAO,MAAW,GAAI,QAAQ,GAAQ,GAAI,KAAK,OAAO,EAAe,SAAS,EAAM,CAAC,SAAS,MAAM,IAAa,GAAI,GAAI,EAAO,OAAU,QAAQ,IAAI,KAAK,SAAa,EAAI,EAAO,UAAa,QAAQ,KAAK,KAAK,SAAS,IAAI,IAAO,GAAiB,AAAG,EAAgB,eAAe,IAAM,GAAO,GAAK,EAAgB,IAAM,EAAgB,KAAQ,EAAO,WAAa,GAAW,EAAO,WAAgB,EAAO,aAAe,GAAY,EAAO,aAAkB,EAAO,MAAQ,GAAM,EAAO,MAAQ,GAAI,GAAW,AAAG,EAAO,YAAc,GAAW,EAAO,YAAc,GAAI,GAAc,EAAO,eAAkB,GAAK,AAAG,MAAO,cAAc,UAAU,GAAM,mCAAmC,GAAI,GAAe,EAAM,GAAU,EAAW,WAAgB,EAAU,GAAK,CAAC,AAAI,GAAW,GAAM,qBAAqB,IAAO,WAAkB,EAAM,CAAC,GAAI,IAAK,EAAO,IAAI,GAAO,SAAO,GAAK,gCAAgC,EAAM,8BAAqC,GAAK,WAAe,EAAM,GAAW,GAAS,GAAK,GAAK,CAAC,GAAI,IAAI,CAAC,OAAS,SAAS,GAAI,CAAC,GAAI,IAAI,EAAE,GAAG,IAAM,MAAuB,KAAM,EAAE,CAAC,GAAI,IAAK,IAAI,QAAQ,GAAG,EAAE,GAAI,GAAW,IAAK,GAAa,GAAI,GAAI,IAAK,MAAO,KAAK,MAAQ,SAAS,GAAI,CAAC,GAAI,IAAI,GAAW,GAAI,QAAQ,UAAmB,GAAI,IAAY,KAAM,YAA4B,GAAI,CAAC,MAAG,MAAa,SAAgB,GAAa,IAAQ,KAAa,UAAiB,QAAQ,IAAY,GAAI,GAAI,IAAK,EAAS,GAAW,GAAM,GAAO,GAAM,EAAE,GAAG,GAAM,OAAQ,IAAE,EAAE,GAAE,GAAK,OAAO,KAAI,CAAC,GAAI,IAAU,GAAI,GAAS,KAAI,AAAG,GAAc,MAAQ,GAAE,IAAM,MAAY,GAAM,IAAG,GAAU,GAAK,MAAS,GAAM,IAAG,GAAK,IAAK,GAAI,IAAI,GAAK,MAAM,KAAK,IAAO,UAAI,GAAmB,IAAQ,KAAQ,GAAE,GAAa,IAAc,GAAI,WAAe,EAAM,GAAW,GAAS,GAAK,CAAC,GAAS,IAAU,GAAG,GAAI,IAAY,GAAS,MAAM,SAAS,GAAK,CAAC,MAAO,MAAO,WAAe,GAAW,KAAa,SAAS,MAAG,KAAY,IAAa,CAAC,GAAa,EAAS,GAAc,UAAU,CAAC,MAAO,GAAM,EAAM,GAAW,GAAS,UAAU,KAAO,GAAI,IAAY,MAAO,cAAc,YAAY,GAAI,aAAY,QAAQ,OAAU,WAA2B,EAAK,GAAI,GAAe,CAA8C,OAAzC,IAAO,GAAI,GAAmB,GAAO,GAAU,EAAK,KAAS,CAAE,KAAQ,KAAQ,EAAE,GAAO,GAAG,GAAO,GAAI,IAAI,EAAK,UAAU,GAAa,MAAO,IAAY,OAAO,EAAK,SAAS,GAAI,KAAyB,OAAP,IAAI,GAAS,GAAI,IAAO,CAAC,GAAI,IAAG,EAAK,MAAO,GAAG,CAAE,IAAG,KAAK,CAAC,IAAK,OAAO,aAAa,IAAI,SAAS,GAAI,IAAG,EAAK,MAAO,GAAG,GAAI,IAAG,MAAM,IAAI,CAAC,IAAK,OAAO,aAAc,IAAG,KAAK,EAAE,IAAI,SAAS,GAAI,IAAG,EAAK,MAAO,GAA4F,GAAzF,AAAI,IAAG,MAAM,IAAK,GAAI,IAAG,KAAK,GAAG,IAAI,EAAE,GAAQ,GAAI,IAAG,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,EAAK,MAAO,GAAM,GAAG,MAAO,IAAK,OAAO,aAAa,QAAQ,CAAC,GAAI,IAAG,GAAG,MAAM,IAAK,OAAO,aAAa,MAAM,IAAI,GAAG,MAAM,GAAG,OAAQ,MAAO,IAAI,YAAsB,EAAI,GAAe,CAAC,MAAO,GAAI,EAAkB,GAAO,EAAI,IAAgB,GAAG,WAA2B,EAAI,GAAK,GAAO,GAAgB,CAAC,GAAG,CAAE,IAAgB,GAAG,MAAO,GAA0D,OAApD,IAAS,GAAW,GAAO,GAAO,GAAgB,EAAU,GAAE,EAAE,GAAE,EAAI,OAAO,EAAE,GAAE,CAAC,GAAI,IAAE,EAAI,WAAW,IAAG,GAAG,IAAG,OAAO,IAAG,MAAM,CAAC,GAAI,IAAG,EAAI,WAAW,EAAE,IAAG,GAAE,MAAQ,KAAE,OAAO,IAAI,GAAG,KAAK,GAAG,IAAG,IAAI,CAAC,GAAG,IAAQ,GAAO,MAAM,GAAK,MAAU,WAAU,IAAG,KAAK,CAAC,GAAG,GAAO,GAAG,GAAO,MAAM,GAAK,MAAU,IAAI,IAAG,EAAE,GAAK,MAAU,IAAI,GAAE,WAAW,IAAG,MAAM,CAAC,GAAG,GAAO,GAAG,GAAO,MAAM,GAAK,MAAU,IAAI,IAAG,GAAG,GAAK,MAAU,IAAI,IAAG,EAAE,GAAG,GAAK,MAAU,IAAI,GAAE,OAAO,CAAC,GAAG,GAAO,GAAG,GAAO,MAAM,GAAK,MAAU,IAAI,IAAG,GAAG,GAAK,MAAU,IAAI,IAAG,GAAG,GAAG,GAAK,MAAU,IAAI,IAAG,EAAE,GAAG,GAAK,MAAU,IAAI,GAAE,IAAI,UAAK,IAAQ,EAAS,GAAO,GAAS,YAAsB,EAAI,GAAO,GAAgB,CAAC,MAAO,GAAkB,EAAI,GAAO,GAAO,IAAiB,YAA4B,EAAM,GAAO,CAAC,GAAM,IAAI,EAAM,IAAQ,YAAiB,EAAE,GAAS,CAAC,MAAG,GAAE,GAAS,GAAG,IAAG,GAAS,EAAE,IAAgB,EAAE,GAAI,IAAO,GAAM,GAAO,GAAO,GAAQ,GAAO,GAAQ,GAAQ,GAAQ,YAAoC,EAAI,CAAC,GAAO,EAAI,EAAO,MAAS,GAAM,GAAI,WAAU,GAAK,EAAO,OAAU,GAAO,GAAI,YAAW,GAAK,EAAO,OAAU,GAAO,GAAI,YAAW,GAAK,EAAO,OAAU,GAAO,GAAI,YAAW,GAAK,EAAO,QAAW,GAAQ,GAAI,aAAY,GAAK,EAAO,QAAW,GAAQ,GAAI,aAAY,GAAK,EAAO,QAAW,GAAQ,GAAI,cAAa,GAAK,EAAO,QAAW,GAAQ,GAAI,cAAa,GAAK,GAAI,IAAe,EAAO,gBAAmB,SAAa,GAAc,GAAa,GAAO,GAAW,GAAO,GAAW,GAAO,GAAc,GAAO,GAAmB,GAAM,GAAW,KAAK,CAAC,KAAK,UAAU,CAAC,QAAwB,aAAiB,CAAC,GAAG,EAAO,OAAsF,IAAxE,MAAO,GAAO,QAAW,YAAW,GAAO,OAAU,CAAC,EAAO,SAAiB,EAAO,OAAU,QAAQ,GAAY,EAAO,OAAU,SAAU,GAAqB,IAAc,aAAsB,CAAC,GAAmB,GAAK,GAAqB,IAAY,aAAkB,CAAC,GAAqB,IAAY,aAAkB,CAAC,GAAG,EAAO,QAA0F,IAA3E,MAAO,GAAO,SAAY,YAAW,GAAO,QAAW,CAAC,EAAO,UAAkB,EAAO,QAAW,QAAQ,GAAa,EAAO,QAAW,SAAU,GAAqB,IAAe,YAAqB,EAAG,CAAC,GAAa,QAAQ,GAAI,YAAsB,EAAG,CAAC,GAAc,QAAQ,GAAI,GAAI,IAAgB,EAAM,GAAqB,KAAS,GAAsB,KAAK,YAA0B,EAAG,CAAC,KAAqB,EAAO,wBAA2B,EAAO,uBAA0B,IAAkB,YAA6B,EAAG,CAA0G,GAAzG,KAAqB,EAAO,wBAA2B,EAAO,uBAA0B,IAAoB,IAAiB,GAAM,MAAuB,MAAM,eAAc,IAAsB,GAAqB,MAAQ,IAAsB,CAAC,GAAI,IAAS,GAAsB,GAAsB,KAAK,MAAa,EAAO,gBAAmB,GAAG,EAAO,gBAAmB,GAAG,YAAe,EAAK,CAAC,AAAG,EAAO,SAAY,EAAO,QAAW,GAAM,GAAM,GAAG,EAAI,GAAM,EAAM,GAAK,EAAW,EAAE,EAAK,SAAS,EAAK,+CAA+C,GAAI,IAAE,GAAI,aAAY,aAAa,GAAM,QAAmB,IAAS,GAAE,YAAmB,EAAI,GAAO,CAAC,MAAO,QAAO,UAAU,WAAW,EAAI,WAAW,IAAQ,EAAI,QAAQ,MAAU,EAAE,GAAI,IAAc,wCAAwC,YAAmB,EAAS,CAAC,MAAO,IAAU,EAAS,IAAe,GAAI,IAAc,UAAU,YAAmB,EAAS,CAAC,MAAO,IAAU,EAAS,IAAe,GAAI,IAAe,yBAAyB,AAAI,GAAU,KAAiB,IAAe,EAAW,KAAgB,YAAmB,EAAK,CAAC,GAAG,CAAC,GAAG,GAAM,IAAgB,EAAY,MAAO,IAAI,YAAW,GAAY,GAAG,EAAY,MAAO,GAAW,GAAW,KAAK,wDAAyD,GAAN,CAAW,GAAM,KAAM,aAA2B,CAAC,GAAG,CAAC,GAAa,IAAoB,GAAuB,CAAC,GAAG,MAAO,QAAQ,YAAY,CAAC,GAAU,IAAiB,MAAO,OAAM,GAAe,CAAC,YAAY,gBAAgB,KAAK,SAAS,EAAS,CAAC,GAAG,CAAC,EAAS,GAAO,KAAK,uCAAuC,GAAe,IAAI,MAAO,GAAS,gBAAmB,MAAM,UAAU,CAAC,MAAO,IAAU,MAAuB,GAAG,EAAW,MAAO,IAAI,SAAQ,SAAS,EAAQ,GAAO,CAAC,EAAU,GAAe,SAAS,GAAS,CAAC,EAAQ,GAAI,YAAW,MAAY,MAAY,MAAO,SAAQ,UAAU,KAAK,UAAU,CAAC,MAAO,IAAU,MAAkB,aAAqB,CAAC,GAAI,GAAK,CAAC,EAAI,IAAe,YAAyB,GAAS,GAAO,CAAC,GAAI,IAAQ,GAAS,QAAQ,EAAO,IAAO,GAAQ,EAAW,EAAO,IAAO,EAAK,GAA2B,EAAW,QAAQ,GAAU,EAAO,IAAO,EAAK,GAAoB,oBAAoB,GAAiB,oBAAoB,YAAmC,GAAO,CAAC,GAAgB,GAAO,UAAa,YAAgC,GAAS,CAAC,MAAO,MAAmB,KAAK,SAAS,GAAO,CAAC,MAAO,aAAY,YAAY,GAAO,KAAQ,KAAK,GAAS,SAAS,GAAO,CAAC,EAAI,0CAA0C,IAAQ,GAAM,MAAU,aAA2B,CAAC,MAAG,CAAC,GAAY,MAAO,aAAY,sBAAuB,YAAY,CAAC,GAAU,KAAiB,CAAC,GAAU,KAAiB,MAAO,QAAQ,WAAmB,MAAM,GAAe,CAAC,YAAY,gBAAgB,KAAK,SAAS,GAAS,CAAC,GAAI,IAAO,YAAY,qBAAqB,GAAS,GAAM,MAAO,IAAO,KAAK,GAA0B,SAAS,GAAO,CAAC,SAAI,kCAAkC,IAAQ,EAAI,6CAAoD,GAAuB,QAA2C,GAAuB,IAA4B,GAAG,EAAO,gBAAoB,GAAG,CAAC,GAAI,IAAQ,EAAO,gBAAmB,EAAK,IAAiB,MAAO,UAAc,GAAN,CAAS,SAAI,sDAAsD,IAAU,GAAO,YAAmB,MAAM,GAA0B,GAAG,YAA8B,EAAU,CAAC,KAAM,EAAU,OAAO,GAAE,CAAC,GAAI,IAAS,EAAU,QAAQ,GAAG,MAAO,KAAU,WAAW,CAAC,GAAS,GAAQ,SAAS,GAAI,IAAK,GAAS,KAAK,AAAG,MAAO,KAAO,SAAU,AAAG,GAAS,MAAM,OAAW,GAAU,IAAI,MAAa,GAAU,IAAI,IAAM,GAAS,KAAW,GAAK,GAAS,MAAM,OAAU,KAAK,GAAS,MAAO,aAAiB,CAAC,KAAQ,YAAgC,EAAK,GAAI,GAAI,CAAC,GAAO,WAAW,EAAK,GAAI,GAAI,IAAK,aAAoC,CAAC,MAAO,IAAO,OAAO,YAAmC,EAAK,CAAC,GAAG,CAAC,SAAW,KAAK,EAAK,GAAO,WAAW,QAAQ,IAAI,GAA2B,EAAW,QAAe,QAAQ,GAAN,GAAW,YAAiC,EAAc,CAAC,GAAI,IAAQ,KAAgC,GAAY,WAAW,GAAG,EAAc,GAAa,MAAO,GAAM,OAAQ,IAAQ,EAAE,IAAS,EAAE,IAAS,EAAE,CAAC,GAAI,IAAkB,GAAS,GAAE,GAAG,IAAS,GAAkB,KAAK,IAAI,GAAkB,EAAc,WAAW,GAAI,IAAQ,KAAK,IAAI,GAAY,GAAQ,KAAK,IAAI,EAAc,IAAmB,QAAY,GAAY,GAA0B,IAAS,GAAG,GAAa,MAAO,GAAM,MAAO,GAAM,GAAI,IAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,KAAK,GAAG,IAAI,UAAU,SAAS,EAAO,GAAK,CAAC,GAAI,IAAO,GAAS,QAAQ,GAAQ,AAAG,KAAO,GAAG,KAAO,GAAK,MAAS,EAAE,EAAI,GAAK,EAAkB,GAAO,IAAI,GAAO,OAAO,GAAO,GAAO,KAAK,KAAQ,QAAQ,OAAU,IAAI,UAAU,CAAC,GAAS,SAAS,EAAE,GAAI,GAAI,GAAO,GAAS,QAAQ,GAAG,GAAG,MAAO,IAAK,OAAO,SAAS,EAAI,CAAC,GAAI,IAAI,GAAa,GAAK,MAAO,KAAK,MAAM,SAAS,EAAI,GAAK,CAAC,MAAO,KAAM,YAAmB,EAAG,CAAC,MAAO,GAAE,YAAkB,EAAG,GAAW,GAAY,GAAO,GAAU,EAAE,YAAmB,EAAG,GAAI,GAAO,GAAK,CAAW,OAAN,IAAI,EAAU,GAAE,EAAE,GAAE,GAAO,KAAI,CAA2D,OAAtD,IAAI,GAAO,GAAI,GAAE,GAAG,GAAO,GAAI,GAAO,GAAK,IAAE,EAAE,IAAI,GAAW,GAAE,EAAE,GAAE,GAAI,KAAK,GAAS,UAAU,EAAG,GAAO,GAAI,KAAI,IAAK,GAAI,UAAO,IAAM,GAAG,GAAW,EAAE,GAAI,IAAc,CAAC,EAAI,GAAO,EAAI,GAAuB,EAAI,GAAwB,EAAI,GAAU,EAAI,GAAS,EAAI,IAAe,GAAI,KAAiB,GAAmB,EAAO,mBAAsB,UAAU,CAAC,MAAO,IAAmB,EAAO,mBAAsB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAiB,EAAO,iBAAoB,UAAU,CAAC,MAAO,IAAiB,EAAO,iBAAoB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAc,EAAO,cAAiB,UAAU,CAAC,MAAO,IAAc,EAAO,cAAiB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAS,EAAO,SAAY,UAAU,CAAC,MAAO,IAAS,EAAO,SAAY,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAQ,EAAO,QAAW,UAAU,CAAC,MAAO,IAAQ,EAAO,QAAW,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAS,EAAO,SAAY,UAAU,CAAC,MAAO,IAAS,EAAO,SAAY,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAa,EAAO,aAAgB,UAAU,CAAC,MAAO,IAAa,EAAO,aAAgB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAa,EAAO,aAAgB,UAAU,CAAC,MAAO,IAAa,EAAO,aAAgB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAQ,EAAO,QAAW,UAAU,CAAC,MAAO,IAAQ,EAAO,QAAW,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAqB,EAAO,qBAAwB,UAAU,CAAC,MAAO,IAAqB,EAAO,qBAAwB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAe,EAAO,eAAkB,UAAU,CAAC,MAAO,IAAe,EAAO,eAAkB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAQ,EAAO,QAAW,UAAU,CAAC,MAAO,IAAQ,EAAO,QAAW,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAc,EAAO,cAAiB,UAAU,CAAC,MAAO,IAAc,EAAO,cAAiB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAuB,EAAO,uBAA0B,UAAU,CAAC,MAAO,IAAuB,EAAO,uBAA0B,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAO,EAAO,OAAU,UAAU,CAAC,MAAO,IAAO,EAAO,OAAU,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAe,EAAO,eAAkB,UAAU,CAAC,MAAO,IAAe,EAAO,eAAkB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAO,EAAO,OAAU,UAAU,CAAC,MAAO,IAAO,EAAO,OAAU,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAU,EAAO,UAAa,UAAU,CAAC,MAAO,IAAU,EAAO,UAAa,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAgB,EAAO,gBAAmB,UAAU,CAAC,MAAO,IAAgB,EAAO,gBAAmB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAa,EAAO,aAAgB,UAAU,CAAC,MAAO,IAAa,EAAO,aAAgB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAsB,EAAO,sBAAyB,UAAU,CAAC,MAAO,IAAsB,EAAO,sBAAyB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAQ,EAAO,QAAW,UAAU,CAAC,MAAO,IAAQ,EAAO,QAAW,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAU,EAAO,UAAa,UAAU,CAAC,MAAO,IAAU,EAAO,UAAa,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAS,EAAO,SAAY,UAAU,CAAC,MAAO,IAAS,EAAO,SAAY,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAc,EAAO,cAAiB,UAAU,CAAC,MAAO,IAAc,EAAO,cAAiB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAW,EAAO,WAAc,UAAU,CAAC,MAAO,IAAW,EAAO,WAAc,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAW,EAAO,WAAc,UAAU,CAAC,MAAO,IAAW,EAAO,WAAc,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAY,EAAO,YAAe,UAAU,CAAC,MAAO,IAAY,EAAO,YAAe,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAS,EAAO,SAAY,UAAU,CAAC,MAAO,IAAS,EAAO,SAAY,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAS,EAAO,SAAY,UAAU,CAAC,MAAO,IAAS,EAAO,SAAY,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAS,EAAO,SAAY,UAAU,CAAC,MAAO,IAAS,EAAO,SAAY,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAU,EAAO,UAAa,UAAU,CAAC,MAAO,IAAU,EAAO,UAAa,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAqB,EAAO,qBAAwB,UAAU,CAAC,MAAO,IAAqB,EAAO,qBAAwB,EAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,GAAqB,EAAO,qBAAwB,UAAU,CAAC,MAAO,IAAqB,EAAO,qBAAwB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAqB,EAAO,qBAAwB,UAAU,CAAC,MAAO,IAAqB,EAAO,qBAAwB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAU,EAAO,UAAa,UAAU,CAAC,MAAO,IAAU,EAAO,UAAa,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAQ,EAAO,QAAW,UAAU,CAAC,MAAO,IAAQ,EAAO,QAAW,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAO,EAAO,OAAU,UAAU,CAAC,MAAO,IAAO,EAAO,OAAU,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAO,EAAO,OAAU,UAAU,CAAC,MAAO,IAAO,EAAO,OAAU,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAS,EAAO,SAAY,UAAU,CAAC,MAAO,IAAS,EAAO,SAAY,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAO,EAAO,OAAU,UAAU,CAAC,MAAO,IAAO,EAAO,OAAU,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAgB,EAAO,gBAAmB,UAAU,CAAC,MAAO,IAAgB,EAAO,gBAAmB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAS,EAAO,SAAY,UAAU,CAAC,MAAO,IAAS,EAAO,SAAY,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAkB,EAAO,kBAAqB,UAAU,CAAC,MAAO,IAAkB,EAAO,kBAAqB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAO,EAAO,OAAU,UAAU,CAAC,MAAO,IAAO,EAAO,OAAU,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAO,EAAO,OAAU,UAAU,CAAC,MAAO,IAAO,EAAO,OAAU,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAW,EAAO,WAAc,UAAU,CAAC,MAAO,IAAW,EAAO,WAAc,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAU,EAAO,UAAa,UAAU,CAAC,MAAO,IAAU,EAAO,UAAa,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAS,EAAO,SAAY,UAAU,CAAC,MAAO,IAAS,EAAO,SAAY,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAS,EAAO,SAAY,UAAU,CAAC,MAAO,IAAS,EAAO,SAAY,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAQ,EAAO,QAAW,UAAU,CAAC,MAAO,IAAQ,EAAO,QAAW,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAmB,EAAO,mBAAsB,UAAU,CAAC,MAAO,IAAmB,EAAO,mBAAsB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAc,EAAO,cAAiB,UAAU,CAAC,MAAO,IAAc,EAAO,cAAiB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAK,EAAO,KAAQ,UAAU,CAAC,MAAO,IAAK,EAAO,KAAQ,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAW,EAAO,WAAc,UAAU,CAAC,MAAO,IAAW,EAAO,WAAc,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAc,EAAO,cAAiB,UAAU,CAAC,MAAO,IAAc,EAAO,cAAiB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAQ,EAAO,QAAW,UAAU,CAAC,MAAO,IAAQ,EAAO,QAAW,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAM,EAAO,MAAS,UAAU,CAAC,MAAO,IAAM,EAAO,MAAS,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAU,EAAO,UAAa,UAAU,CAAC,MAAO,IAAU,EAAO,UAAa,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAa,EAAO,aAAgB,UAAU,CAAC,MAAO,IAAa,EAAO,aAAgB,EAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,GAAW,EAAO,WAAc,UAAU,CAAC,MAAO,IAAW,EAAO,WAAc,EAAO,IAAO,IAAO,MAAM,KAAK,YAAY,EAAO,MAAS,EAAM,GAAI,IAAU,YAAoB,EAAO,CAAC,KAAK,KAAK,aAAa,KAAK,QAAQ,gCAAgC,EAAO,IAAI,KAAK,OAAO,EAAO,GAAsB,YAAoB,CAAC,AAAI,IAAU,KAAU,IAAU,IAAsB,IAAW,YAAa,EAAK,CAA6D,GAA5D,EAAK,GAAM,EAAc,GAAgB,GAAU,MAAY,GAAgB,GAAG,OAAO,aAAgB,CAAC,AAAG,IAAiB,IAAU,GAAK,EAAO,UAAa,GAAQ,IAAa,MAAc,KAAU,EAAoB,GAAW,EAAO,sBAAwB,EAAO,uBAA0B,OAAU,AAAG,EAAO,UAAc,GAAO,UAAa,cAAc,WAAW,UAAU,CAAC,WAAW,UAAU,CAAC,EAAO,UAAa,KAAK,GAAG,MAAS,IAAQ,KAA2B,GAAlB,EAAO,IAAO,GAAO,EAAO,QAA0F,IAA3E,MAAO,GAAO,SAAY,YAAW,GAAO,QAAW,CAAC,EAAO,UAAkB,EAAO,QAAW,OAAO,GAAG,EAAO,QAAW,QAAS,YAG/6yB,EAAkB,UAI3B,AAAI,MAAO,KAAY,UAAY,MAAO,KAAW,SACnD,GAAO,QAAU,GACd,AAAI,MAAO,SAAW,YAAc,OAAO,IAC9C,OAAO,GAAI,UAAW,CAAE,MAAO,MACxB,MAAO,KAAY,UAC1B,IAAQ,kBAAuB,MCpBjC,AAoBO,GAAM,IAAkB,KAClB,GAAkB,KAwBzB,QAAkB,CAItB,YAAoB,EAAgC,EAAoB,CAApD,KAAA,QAAA,EAAgC,KAAA,UAAA,EAH5C,KAAA,KAAO,GAAI,SACX,KAAA,aAAe,EAIvB,IAAI,EAAc,CAChB,MAAK,MAAK,KAAK,IAAI,IACjB,KAAK,UAAU,SAAS,KAAK,QAAS,GAEjC,KAAK,KAAK,IAAI,GAGvB,IAAI,EAAgB,EAAQ,CAC1B,KAAK,eACL,KAAK,KAAK,IAAI,EAAQ,GAGxB,IAAI,EAAc,CAChB,MAAO,MAAK,KAAK,IAAI,GAGvB,OAAO,EAAc,CACnB,YAAK,eACE,KAAK,KAAK,OAAO,GAG1B,YAAU,CACR,MAAO,MAAK,eAyBV,QAAoB,CACxB,SAAS,EAAc,CACrB,MAAO,IAAkB,YAE3B,OAAO,EAAc,CACnB,MAAO,IAAkB,UAE3B,gBAAc,CACZ,MAAO,GAET,KAAK,EAAa,CAChB,MAAO,IAAkB,QAE3B,KAAK,EAAc,CACjB,MAAO,IAAkB,QAE3B,SAAS,EAAc,CACrB,MAAO,IAAkB,YAE3B,YAAU,CACR,MAAO,IAAkB,cAE3B,YAAY,EAAgB,EAAe,CACzC,MAAO,IAAkB,eAE3B,MAAM,EAAuB,EAAiB,EAAe,CAC3D,MAAO,IAAkB,SAE3B,KACI,EAAgB,EAAuB,EAAiB,EACxD,EAAgB,CAClB,MAAO,IAAkB,QAE3B,QAAM,CACJ,MAAO,IAAkB,UAG3B,gBAAc,CACZ,MAAO,IAAkB,kBAG3B,SAAO,CACL,MAAO,MAAK,mBAAqB,GAAK,GAAkB,GAE1D,SAAO,CACL,MAAO,IAAkB,aAI7B,YAA2B,EAAkB,CAC3C,KAAM,IAAI,OACN,IAAI,6HCrJV,AAiCM,YAAkB,EACY,CAClC,GAAI,GAAU,EAAM,OAChB,EAAO,EACP,EAAQ,EAEZ,KAAO,EAAU,GAEf,EAAS,KAAK,SAAW,EAAW,EAEpC,IAEA,EAAO,EAAM,GACb,EAAM,GAAW,EAAM,GACvB,EAAM,GAAS,EAqBb,YAAuB,EAEP,EAAiD,CAErE,GAAI,EAAM,SAAW,EAAO,OAC1B,KAAM,IAAI,OACR,yEAC0B,EAAM,iCACL,EAAO,UAEtC,GAAI,GAAU,EAAM,OAChB,EAAM,EACN,EAAQ,EAEZ,KAAO,EAAU,GAEf,EAAS,KAAK,SAAW,EAAW,EAEpC,IAEA,EAAO,EAAM,GACb,EAAQ,EAAO,GACf,EAAM,GAAW,EAAM,GACvB,EAAO,GAAW,EAAO,GACzB,EAAM,GAAS,EACf,EAAO,GAAS,EAKd,YAAgB,EAAa,EAAW,EAAW,CACvD,MAAO,MAAK,IAAI,EAAK,KAAK,IAAI,EAAG,IAG7B,YAA4B,EAAW,CAC3C,MAAO,GAAM,GAAM,EAAI,EAAM,EAAM,EAG/B,YAAc,EAAa,CAC/B,GAAI,GAAM,EACV,OAAS,GAAI,EAAG,EAAI,EAAI,OAAQ,IAC9B,GAAO,EAAI,GAEb,MAAO,GAUH,YAAsB,EAAW,EAAS,CAC9C,GAAM,GAAI,KAAK,SACf,MAAQ,GAAI,EAAM,GAAI,GAAK,EAIvB,YAAsB,EAAe,EAAa,CACtD,GAAI,GAAS,EACb,OAAS,GAAI,EAAG,EAAI,EAAE,OAAQ,IAAK,CACjC,GAAM,GAAO,OAAO,EAAE,IAAM,OAAO,EAAE,IACrC,GAAU,EAAO,EAEnB,MAAO,GAkBH,WAAiB,EAAe,EAAiB,CACrD,GAAI,CAAC,EACH,KAAM,IAAI,OAAM,MAAO,IAAQ,SAAW,EAAM,KAI9C,YACF,EAAkB,EAAkB,EAAqB,GAAE,CAC7D,EACI,GAAY,EAAQ,GACpB,IAAM,EAAqB,WAAW,SAAc,gBAGpD,YAAwB,EAAa,CACzC,EACI,GAAK,KACL,IAAM,iEAsBN,YAEF,EAA0B,EAAc,GAAI,EAAiB,GAAK,CAIpE,GAHI,GAAU,MACZ,GAAS,IAEP,MAAM,QAAQ,IAAQ,GAAa,IAAQ,CAAC,EAC9C,OAAS,GAAI,EAAG,EAAI,EAAI,OAAQ,EAAE,EAChC,GAAQ,EAAI,GAAI,EAAQ,OAG1B,GAAO,KAAK,GAEd,MAAO,GAcH,YAAwB,EAAe,CAC3C,GAAI,EAAM,SAAW,EAEnB,MAAO,GAET,GAAI,GAAO,EAAM,GACjB,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,IAChC,GAAQ,EAAM,GAEhB,MAAO,GAGH,YAAwB,EAAe,CAC3C,MAAO,GAAM,SAAW,EAGpB,YAAsB,EAAgB,EAAc,CACxD,GAAI,IAAO,EACT,MAAO,GAMT,GAJI,GAAM,MAAQ,GAAM,MAIpB,EAAG,SAAW,EAAG,OACnB,MAAO,GAET,OAAS,GAAI,EAAG,EAAI,EAAG,OAAQ,IAC7B,GAAI,EAAG,KAAO,EAAG,GACf,MAAO,GAGX,MAAO,GAGH,YAAgB,EAAS,CAC7B,MAAO,GAAI,GAAM,EAGb,YAAe,EAAS,CAE5B,GAAK,KAAa,MAAQ,KAExB,MAAQ,MAAa,KAAK,GAE5B,GAAI,IAAM,SACR,MAAO,GACF,GAAI,IAAM,UACf,MAAO,GACF,CACL,GAAM,GAAM,KAAK,IAAI,EAAI,GACzB,MAAQ,GAAM,GAAM,GAAM,IAIxB,YAA8B,EAAY,CAC9C,GAAM,GAAQ,KAAK,KAAK,KAAK,KAAK,IAClC,MAAO,CAAC,EAAO,KAAK,KAAK,EAAO,IAe5B,YAAgC,EAAS,CAC7C,GAAM,GAAkB,GAAI,aAAY,GACxC,OAAS,GAAI,EAAG,EAAI,EAAG,EAAE,EACvB,EAAgB,GAAK,EAEvB,UAAQ,GACD,EAGH,YAAmB,EAAW,EAAY,CAC9C,MAAI,IAAQ,EAAE,OACL,EAEF,EAAI,IAAI,OAAO,EAAO,EAAE,QAG3B,YACF,EAAwB,EAAU,AAAC,GAAoB,EACvD,EAAmB,CACrB,MAAO,IAAI,SAAc,CAAC,EAAS,IAAU,CAC3C,GAAI,GAAW,EAET,EAAQ,IAAK,CACjB,GAAI,IAAW,CACb,IACA,OAGF,IAEA,GAAM,GAAc,EAAQ,GAE5B,GAAI,GAAc,MAAQ,GAAY,EAAY,CAChD,IACA,OAEF,WAAW,EAAO,IAGpB,MAaE,YACF,EAAiB,EAAY,CAC/B,GAAI,GAAY,EACZ,EAAc,GAElB,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,EAAE,EAClC,GAAI,EAAM,IAAM,EACd,GAAa,EAAM,WACV,EAAM,KAAO,GAAI,CAC1B,GAAI,IAAgB,GAClB,KAAM,OACF,yDACmB,aAAuB,KAEhD,EAAc,UACL,EAAM,GAAK,EACpB,KAAM,OAAM,gCAAgC,EAAM,aAAa,KAInE,GAAI,IAAgB,GAAI,CACtB,GAAI,EAAO,GAAK,IAAS,EACvB,KAAM,OAAM,QAAQ,sCAAyC,KAE/D,MAAO,GAGT,GAAI,IAAc,EAChB,KAAM,OACF,qCAAqC,gCAG3C,GAAI,EAAO,GAAc,EACvB,KAAM,OACF,wDACO,OAAU,KAGvB,GAAM,GAAW,EAAM,QACvB,SAAS,GAAe,EAAO,EACxB,EAGH,YACF,EAAuB,EAAe,CACxC,GAAM,GAAO,EAAM,OAGnB,SAAO,GAAQ,KAAO,EAAM,IAAI,CAAC,EAAG,IAAM,GAAK,GAAG,OAAO,GAGzD,EACI,EAAK,MAAM,GAAM,GAAM,CAAC,GAAQ,EAAK,GACrC,IACI,+CAA+C,MAAS,mBAC5C,KAGpB,EACI,EAAK,MAAM,GAAM,GAAM,IACvB,IAAM,0DACU,KAGb,EAAK,IAAI,GAAK,EAAI,EAAI,EAAO,EAAI,GAIpC,YAAuB,EAAiB,EAAe,CAE3D,GAAM,GAAqB,GACrB,EAAqB,GACrB,EAAe,GAAQ,MAAQ,MAAM,QAAQ,IAAS,EAAK,SAAW,EACtE,EAAQ,GAAQ,MAAQ,EAC1B,KACA,GAAe,EAAM,GAAO,OAC5B,EAAI,EACR,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,EAAE,EAAG,CACrC,GAAI,GAAQ,KAAM,CAChB,GAAI,EAAK,KAAO,GAAK,EAAM,KAAO,EAChC,KAAM,IAAI,OACN,sBAAsB,oBAAoB,EAAM,gBAEtD,AAAK,GAAK,IAAM,MAAQ,EAAK,GAAK,IAAM,EAAM,KAAO,GACnD,GAAS,KAAK,EAAM,IACpB,EAAS,KAAK,IAEZ,EAAK,IAAM,GACb,IAGJ,AAAI,EAAM,KAAO,GACf,GAAS,KAAK,EAAM,IACpB,EAAS,KAAK,IAGlB,MAAO,CAAC,WAAU,YAGd,YACF,EAAU,EAAY,CACxB,GAAI,GAAS,KACb,GAAI,GAAS,MAAQ,IAAU,UAC7B,EAAS,GAAI,cAAa,WACjB,IAAU,QACnB,EAAS,GAAI,YAAW,WACf,IAAU,OACnB,EAAS,GAAI,YAAW,OAExB,MAAM,IAAI,OAAM,qBAAqB,KAEvC,MAAO,GAGH,YACF,EAAU,EAAY,CACxB,GAAI,GAAS,KACb,GAAI,GAAS,MAAQ,IAAU,UAC7B,EAAS,GAAI,cAAa,WACjB,IAAU,QACnB,EAAS,GAAI,YAAW,WACf,IAAU,OACnB,EAAS,GAAI,YAAW,WACf,IAAU,SACnB,EAAS,GAAI,OAAgB,OAE7B,MAAM,IAAI,OAAM,qBAAqB,KAEvC,MAAO,GAGH,YACF,EAA+B,EAAQ,CACzC,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CACpC,GAAM,GAAM,EAAK,GACjB,GAAI,MAAM,IAAQ,CAAC,SAAS,GAC1B,KAAM,OAAM,oBAAoB,6BAAiC,OAMjE,YAAuB,EAAe,CAC1C,MAAO,KAAU,QAAU,IAAU,aAAe,IAAU,WAC1D,IAAU,SAAW,IAAU,SAO/B,YAA0B,EAAmB,EAAiB,CAUlE,MATI,MAAY,aAGZ,IAAY,WAAa,IAAY,aAGrC,IAAY,SAAW,IAAY,WAAa,IAAY,aAG5D,IAAY,QAAU,IAAY,QAMlC,YAAuB,EAAK,CAChC,MAAO,aAAa,eAAgB,YAAa,aAC7C,YAAa,YAGb,YAA0B,EAAe,CAC7C,GAAI,IAAU,WAAa,IAAU,QACnC,MAAO,GACF,GAAI,IAAU,YACnB,MAAO,GACF,GAAI,IAAU,OACnB,MAAO,GAEP,KAAM,IAAI,OAAM,iBAAiB,KAU/B,YAA+B,EAAiB,CACpD,GAAI,GAAO,KACT,MAAO,GAET,GAAI,GAAQ,EACZ,SAAI,QAAQ,GAAK,GAAS,EAAE,QACrB,EAIH,YAAmB,EAAS,CAChC,MAAO,OAAO,IAAU,UAAY,YAAiB,QAGjD,YAAoB,EAAS,CACjC,MAAO,OAAO,IAAU,UAGpB,YAAmB,EAAS,CAChC,MAAO,OAAO,IAAU,SAGpB,YAAqB,EAAkB,CAC3C,MAAI,OAAM,QAAQ,GACT,GAAW,EAAO,IAEvB,YAAkB,cACb,UACE,YAAkB,aAAc,YAAkB,YACpD,QACE,GAAS,GACX,UACE,GAAS,GACX,SACE,GAAU,GACZ,OAEF,UAGH,YAAqB,EAAW,CACpC,MAAO,CAAC,CAAE,IAAK,EAAE,aAAe,EAAE,MAAQ,EAAE,OAGxC,YAAyB,EAAc,EAAa,CACxD,OAAS,GAAI,EAAO,EAAI,EAAM,EAAE,EAC9B,GAAI,EAAO,GAAM,EACf,MAAO,GAGX,MAAO,GAGH,YAAyB,EAAe,CAC5C,GAAM,GAAO,EAAM,OACnB,GAAI,EAAO,EACT,MAAO,GAKT,GAAM,GAAU,GAAI,OAAM,EAAO,GACjC,EAAQ,EAAO,GAAK,EAAM,EAAO,GACjC,OAAS,GAAI,EAAO,EAAG,GAAK,EAAG,EAAE,EAC/B,EAAQ,GAAK,EAAQ,EAAI,GAAK,EAAM,EAAI,GAE1C,MAAO,GAGT,YAA2B,EAAgB,EAAiB,EAAa,CACvE,GAAM,GAAM,GAAI,OAChB,GAAI,EAAM,SAAW,EAAG,CACtB,GAAM,GAAI,EAAM,GAChB,OAAS,GAAI,EAAG,EAAI,EAAG,IACrB,EAAI,GAAK,EAAE,EAAS,OAEjB,CACL,GAAM,GAAI,EAAM,GACV,EAAO,EAAM,MAAM,GACnB,EAAM,EAAK,OAAO,CAAC,EAAK,IAAM,EAAM,GAC1C,OAAS,GAAI,EAAG,EAAI,EAAG,IACrB,EAAI,GAAK,GAAkB,EAAS,EAAI,EAAK,EAAM,GAGvD,MAAO,GAIH,YAAwB,EAAiB,EAAa,CAC1D,GAAI,EAAM,SAAW,EAEnB,MAAO,GAAE,GAEX,GAAM,GAAO,EAAM,OAAO,CAAC,EAAK,IAAM,EAAM,GAC5C,GAAI,IAAS,EAEX,MAAO,GAET,GAAI,IAAS,EAAE,OACb,KAAM,IAAI,OAAM,IAAI,oCAAwC,EAAE,WAGhE,MAAO,IAAkB,EAAG,EAAO,GAG/B,YACF,EAAc,EAAQ,CACxB,GAAM,GAAQ,GAAoB,EAAM,GACxC,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,IAChC,EAAM,GAAK,EAEb,MAAO,GAGH,YACF,EAAc,EAAQ,CACxB,GAAI,GAAS,MAAQ,IAAU,WAAa,IAAU,YACpD,MAAO,IAAI,cAAa,GACnB,GAAI,IAAU,QACnB,MAAO,IAAI,YAAW,GACjB,GAAI,IAAU,OACnB,MAAO,IAAI,YAAW,GAEtB,KAAM,IAAI,OAAM,qBAAqB,KASnC,YACF,EAAiB,EAAQ,CAC3B,GAAM,GAAO,EAAM,OAAO,CAAC,EAAM,IAAS,EAAO,EAAM,GACvD,GAAI,GAAS,MAAQ,IAAU,UAC7B,MAAO,IAAc,EAAO,GAAI,cAAa,IACxC,GAAI,IAAU,QACnB,MAAO,IAAc,EAAO,GAAI,YAAW,IACtC,GAAI,IAAU,OACnB,MAAO,IAAc,EAAO,GAAI,YAAW,IAE3C,KAAM,IAAI,OAAM,qBAAqB,KAInC,YAA6C,EAAe,CAChE,EAAM,QAAQ,GAAU,CACtB,EACI,OAAO,UAAU,IAAY,GAAW,EACxC,IACI,0EACU,SAYhB,YACF,EAAgB,EAAc,EAAiB,CACjD,GAAI,IAAS,EACX,MAAO,GACF,GAAI,IAAS,EAClB,MAAO,GAAK,GAEd,GAAI,GAAQ,EAAK,EAAK,OAAS,GAC/B,OAAS,GAAI,EAAG,EAAI,EAAK,OAAS,EAAG,EAAE,EACrC,GAAS,EAAQ,GAAK,EAAK,GAE7B,MAAO,GAWH,YACF,EAAe,EAAc,EAAiB,CAChD,GAAI,IAAS,EACX,MAAO,GACF,GAAI,IAAS,EAClB,MAAO,CAAC,GAEV,GAAM,GAAiB,GAAI,OAAM,GACjC,OAAS,GAAI,EAAG,EAAI,EAAK,OAAS,EAAG,EAAE,EACrC,EAAK,GAAK,KAAK,MAAM,EAAQ,EAAQ,IACrC,GAAS,EAAK,GAAK,EAAQ,GAE7B,SAAK,EAAK,OAAS,GAAK,EACjB,EAQH,YAAoB,EAAW,CAOnC,MAAO,IAAU,EAAO,MAAQ,MAAO,GAAO,MAAS,WCxuBzD,AAqBA,GAAM,IAA4B,YAmB5B,QAAkB,CAUtB,YAAmB,EAAW,CAAX,KAAA,OAAA,EATX,KAAA,MAAe,GACf,KAAA,aAAwD,GAExD,KAAA,SAAkB,GAOxB,KAAK,mBAGP,YAAY,EAAsB,EAAkB,CAClD,AAAI,KAAK,UAAY,MACnB,QAAQ,KACJ,YAAY,KAAK,oEACgB,MAEvC,KAAK,aAAe,EACpB,KAAK,SAAW,EAGlB,aACI,EAAkB,EAClB,EAAoC,CAKtC,GAJA,KAAK,aAAa,GAAY,CAAC,eAAc,WAIzC,KAAK,SAAS,IAAa,KAAM,CACnC,GAAM,GAAY,KAAK,SAAS,GAChC,QAAQ,KACJ,qCAAqC,MAAa,MACtD,KAAK,IAAI,EAAU,SAIjB,UAAS,EAAgB,CAC7B,MAAI,KAAY,MAAK,MACZ,KAAK,MAAM,GAGpB,MAAK,MAAM,GAAY,KAAM,MAAK,aAAa,GACxC,KAAK,MAAM,IAGpB,IAAI,EAAgB,CAClB,GAAI,IAAY,MAAK,MACnB,MAAO,MAAK,MAAM,GAGpB,GAAM,GAAY,KAAK,aAAa,GACpC,GAAI,GAAU,GACZ,KAAM,IAAI,OACN,QAAQ,uEAId,YAAK,MAAM,GAAY,EAEhB,KAAK,MAAM,GAGpB,UAAU,EAAgB,CACxB,MAAO,MAAK,IAAI,GAGlB,QAAQ,EAAgB,CACtB,MAAO,MAAK,IAAI,GAGlB,UAAQ,CACN,MAAO,MAAK,SAGV,WAAQ,CACV,MAAO,MAAK,MAGd,IAAI,EAAkB,EAAgB,CACpC,GAAI,KAAK,aAAa,IAAa,KACjC,KAAM,IAAI,OACN,mBAAmB,oCAEzB,KAAK,MAAM,GAAY,EACnB,KAAK,aAAa,GAAU,SAAW,MACzC,KAAK,aAAa,GAAU,QAAQ,GAIhC,aAAa,EAAgB,CACnC,GAAI,KAAK,aAAa,IAAa,KACjC,KAAM,IAAI,OACN,yBAAyB,qCAE/B,MAAO,MAAK,aAAa,GAAU,eAGrC,SAAS,EAAY,CACnB,KAAK,MAAQ,OAAO,OAAO,GAAI,GAGjC,OAAK,CACH,KAAK,MAAQ,GACb,KAAK,SAAW,GAChB,KAAK,mBAGC,kBAAgB,CACtB,GAAI,MAAO,MAAK,QAAW,aACvB,MAAO,MAAK,OAAO,UAAa,aAChC,MAAO,MAAK,OAAO,SAAS,QAAW,YACzC,OAGF,GAAM,GAAY,GAAe,KAAK,OAAO,SAAS,QACtD,AAAI,KAA6B,IAE/B,AADkB,EAAU,IAA2B,MAAM,KACnD,QAAQ,GAAW,CAC3B,GAAM,CAAC,EAAK,GAAS,EAAS,MAAM,KACpC,KAAK,SAAS,GAAO,GAAW,EAAK,OAMvC,YAAyB,EAAmB,CAChD,GAAM,GAAS,GACf,SAAY,QAAQ,8BAA+B,CAAC,KAAM,IACxD,IAAY,EAAQ,EAAE,GAAI,EAAE,IACrB,EAAE,KAAK,OAET,EAGT,YACI,EAAiC,EAAc,EAAc,CAC/D,EAAO,mBAAmB,IAAS,mBAAmB,GAAS,IAGjE,YAAoB,EAAkB,EAAa,CAEjD,GADA,EAAQ,EAAM,cACV,IAAU,QAAU,IAAU,QAChC,MAAO,KAAU,OACZ,GAAI,GAAG,CAAE,MAAY,EAC1B,MAAO,CAAC,EAEV,KAAM,IAAI,OACN,oCAAoC,cAAkB,MAWtD,YAAa,CACjB,MAAO,IAGF,GAAI,IAAmB,KACxB,YAA+B,EAAwB,CAC3D,GAAM,EC/MR,AAqBA,GAAI,IAEE,aAA4B,CAChC,GAAI,IAAmB,KAAM,CAE3B,GAAI,GACJ,GAAI,MAAQ,SAAY,YACtB,EAAK,eACI,MAAQ,SAAY,YAC7B,EAAK,eACI,MAAQ,UAAa,YAC9B,EAAK,gBACI,MAAQ,OAAU,YAC3B,EAAK,SAEL,MAAM,IAAI,OAAM,kCAElB,GAAkB,EAEpB,MAAO,IAIT,aAAqB,CACnB,GAAM,GAAK,KACX,MAAI,GAAG,YAAc,MACnB,GAAG,WAAa,GAAI,MAEf,EAAG,WAUN,YAAuB,EAAa,EAAa,CACrD,GAAM,GAAY,KAClB,GAAI,EAAU,IAAI,GAChB,MAAO,GAAU,IAAI,GAChB,CACL,GAAM,GAAY,IAClB,SAAU,IAAI,EAAK,GACZ,EAAU,IAAI,ICzClB,GAAM,IAAM,MAGN,GAAO,OAGP,GAAQ,QAGR,GAAM,MAGN,GAAO,OAGP,GAAM,MAON,GAAM,MAON,GAAS,SAMT,GAAS,SAMT,GAAO,OAGP,GAAQ,QAGR,GAAO,OAGP,GAAQ,QAGR,GAAQ,QAGR,GAAU,UASV,GAAc,cAQd,GAAY,YAUZ,GAAgB,gBAShB,GAAc,cAOd,GAAiB,iBASjB,GAAW,WAMX,GAAc,cAOd,GAAO,OAMP,GAAO,OAGP,GAAc,cAOd,GAAU,UAGV,GAAa,aAGb,GAAS,SAMT,GAAS,SAUT,GAAuB,uBAUvB,GAAsB,sBAUtB,GAAS,SAST,GAAyB,yBASzB,GAAwB,wBASxB,GAAM,MAGN,GAAO,OAGP,GAAS,SAQT,GAAgB,gBAShB,GAAgB,gBAOhB,GAAe,eAOf,GAAwB,wBAWxB,GACT,sCAWS,GACT,qCAWS,GAAO,OAGP,GAAa,aAQb,GAA0B,0BAI1B,GAA2B,2BAI3B,GAAU,UAGV,GAAM,MAGN,GAAU,UAGV,GAAM,MAGN,GAAQ,QAGR,GAAM,MAGN,GAAa,aAMb,GAAQ,QAGR,GAAM,MAGN,GAAO,OAOP,GAAgB,gBAGhB,GAAQ,QAGR,GAAW,WAGX,GAAiB,iBAOjB,GAAW,WAOX,GAAW,WAGX,GAAU,UAGV,GAAe,eAGf,GAAW,WAGX,GAAO,OAGP,GAAO,OAGP,GAAW,WAGX,GAAQ,QAGR,GAAQ,QAGR,GAAY,YAMZ,GAAO,OAGP,GAAY,YAGZ,GAAW,WAMX,GAAM,MAGN,GAAQ,QAGR,GAAa,aAGb,GAAa,aAGb,GAAY,YAGZ,GAAa,aAMb,GAAM,MASN,GAAU,UASV,GAAM,MAON,GAAU,UAGV,GAAU,UASV,GAAc,cASd,GAAY,YAUZ,GAAgB,gBAUhB,GAAoB,oBASpB,GAAO,OAOP,GAAM,MAON,GAAU,UAGV,GAAY,YAOZ,GAAM,MAGN,GAAc,cAQd,GAAW,WAGX,GAAM,MAGN,GAAW,WAGX,GAAsB,sBAStB,GAAsB,sBAUtB,GAAsB,sBAUtB,GAAW,WAGX,GAAS,SAQT,GAAO,OAMP,GAAQ,QAOR,GAAO,OAGP,GAAM,MAGN,GAAQ,QAGR,GAAO,OAOP,GAAQ,QAQR,GAAO,OAGP,GAAa,aAGb,GAAO,OAGP,GAAU,UAMV,GAAwB,wBAQxB,GAA4B,4BAK5B,GAAiB,iBAQjB,GAAqB,qBAIrB,GAAQ,QAGR,GAAU,UAMV,GAAQ,QAGR,GAAQ,QAGR,GAAY,YAMZ,GAAS,SAGT,GAAO,OAGP,GAAQ,QAMR,GAAM,MAGN,GAAO,OAGP,GAAO,OAGP,GAAU,UAGV,GAAW,WAGX,GAAO,OAGP,GAAM,MAON,GAAiB,iBAOjB,GAAS,SAOT,GAAU,UAMV,GAAoB,oBAGpB,GAAS,SAGT,GAAM,MAGN,GAAgB,gBAOhB,GAAe,eAaf,GAAM,MAGN,GAAO,OAGP,GAAO,OAMP,GAAO,OAOP,GAAY,YASZ,GAAY,YAMZ,GAAS,SAQT,GAAS,SAMT,GAAqB,qBAOrB,GAAY,YAMZ,GAAO,OAMP,GAAa,aASb,GAAmB,mBAQnB,GAAe,eAgBf,GAAc,cAiBd,GAAuB,uBC54BpC,AAuBA,GAAM,IACF,GAAU,iBAAkB,IAAM,GAAI,MACpC,GACF,GAAU,eAAgB,IAAM,GAAI,MAoElC,YACF,EAAoB,EAAmB,CACzC,GAAM,GAAM,GAAQ,EAAY,GAChC,MAAO,IAAe,IAAI,GAOtB,YAAsB,EAAkB,CAC5C,MAAO,IAAa,IAAI,GAGpB,YAA+B,EAAmB,CACtD,GAAM,GAAK,GAAe,UACpB,EAAyB,GAE/B,OAAa,CACX,GAAM,CAAC,OAAM,SAAS,EAAG,OACzB,GAAI,EACF,MAEF,GAAM,CAAC,EAAK,GAAU,EAChB,CAAC,GAAa,EAAI,MAAM,KAC9B,AAAI,IAAY,GACd,EAAO,KAAK,GAGhB,MAAO,GAcH,YAAyB,EAAoB,CACjD,GAAM,CAAC,aAAY,eAAe,EAC5B,EAAM,GAAQ,EAAY,GAChC,AAAI,GAAe,IAAI,IACrB,QAAQ,KACJ,eAAe,mBACX,4BAEV,GAAe,IAAI,EAAK,GAWpB,YAA2B,EAAkB,CACjD,GAAM,CAAC,cAAc,EAErB,AAAI,GAAa,IAAI,IAGf,IAAM,QAAQ,UAChB,QAAQ,KAAK,gCAAgC,MAGjD,GAAa,IAAI,EAAY,GAUzB,YACF,EAAoB,EAAmB,CACzC,GAAM,GAAM,GAAQ,EAAY,GAChC,GAAI,CAAC,GAAe,IAAI,GACtB,KAAM,IAAI,OACN,eAAe,mBACX,wBAEV,GAAe,OAAO,GAIlB,YAA6B,EAAkB,CACnD,GAAI,CAAC,GAAa,IAAI,GACpB,KAAM,IAAI,OACN,iBAAiB,oCAEvB,GAAa,OAAO,GAShB,YACF,EAA+B,EAAsB,CAEvD,AADgB,GAAqB,GAC7B,QAAQ,GAAe,CAC7B,GAAM,GACF,OAAO,OAAO,GAAI,EAAc,CAAC,YAAa,IAClD,GAAe,KAInB,YAAiB,EAAoB,EAAmB,CACtD,MAAO,GAAG,KAAe,ICrN3B,+kCAAA,AAyBM,YACF,EAAiB,EAAe,CAClC,MAAI,KAAU,SACL,GAAa,GAGf,GAAa,CAAC,GAAQ,GAG/B,YAA4B,EAAe,EAAe,CACxD,MAAQ,aAAa,eAAgB,IAAU,WAC1C,YAAa,aAAc,IAAU,SACrC,YAAa,aAAc,IAAU,OAGtC,YAAuB,EAAe,EAAe,CACzD,GAAI,IAAU,SACZ,KAAM,IAAI,OAAM,6CASlB,GAPI,MAAM,QAAQ,IAChB,GAAI,AAAK,GAAQ,IAGf,IAAM,QAAQ,UAChB,AAAK,GAAyB,EAAe,GAE3C,GAAmB,EAAG,GACxB,MAAO,GAET,GAAI,GAAS,MAAQ,IAAU,WAAa,IAAU,YACpD,MAAO,IAAI,cAAa,GACnB,GAAI,IAAU,QACnB,MAAO,IAAI,YAAW,GACjB,GAAI,IAAU,OAAQ,CAC3B,GAAM,GAAO,GAAI,YAAY,EAAe,QAC5C,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,EAAE,EACjC,AAAI,KAAK,MAAO,EAAe,MAAQ,GACrC,GAAK,GAAK,GAGd,MAAO,OAEP,MAAM,IAAI,OAAM,qBAAqB,KAenC,aAAa,CACjB,MAAO,KAAM,SAAS,MAmBlB,YACF,EAAc,EAA0B,CAC1C,MAAO,KAAM,SAAS,MAAM,EAAM,GAW9B,YAAuB,EAAW,EAAW,QAAO,CACxD,SAAW,GAAY,QAChB,IAAM,SAAS,OAAO,EAAG,GAW5B,YAAuB,EAAmB,EAAW,QAAO,CAChE,SAAW,GAAY,QAChB,IAAM,SAAS,OAAO,EAAO,GClItC,AAgCM,YAAe,CACnB,YAAoB,EAAoC,EAAe,CAAnD,KAAA,aAAA,EAAoC,KAAA,OAAA,EAClD,GAAU,MACZ,MAAK,OAAS,GAAI,KAItB,cAAc,EAAoB,EAAwB,EAAiB,CAEzE,GAAI,GACE,EAAsB,IAAK,CAC/B,EAAU,KAER,EACE,EAAQ,AAAK,KACnB,GAAI,KAAK,aAAa,iBACpB,EAAQ,KAAK,aAAa,KAAK,OAC1B,CACL,IACA,OAAW,KAAU,GACnB,EAAO,WAET,EAAQ,QAAQ,QAAQ,CAAC,SAAU,AAAK,KAAQ,IAElD,GAAI,IAAM,QAAQ,gCAChB,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,CACvC,GAAM,GAAS,EAAQ,GAGvB,EAAO,OAAO,KAAK,GAAa,CAC9B,GAA0B,EAAY,EAAO,MAAO,KAe1D,MAVsB,CACpB,aACA,UACA,SACA,OAAQ,EAAM,KAAK,GAAU,EAAO,UACpC,UAAW,EAAM,KACb,GAAU,EAAO,qBAAuB,KACpC,EAAO,sBACP,KAKZ,iBAAiB,EAA4B,CAC3C,GAAM,CAAC,aAAY,UAAS,SAAQ,SAAQ,aAAa,EAEzD,EAAQ,QAAQ,GAAS,CACvB,QAAQ,IAAI,CAAC,EAAO,OAAQ,EAAQ,IAAY,KAAK,GAAiB,CACpE,KAAK,OAAO,iBACR,EAAY,EAAQ,EAAe,GAAI,EAAe,GAAI,EAC1D,EAAe,UAMrB,YACF,EAAsB,EAAU,EAAkB,CACpD,GAAI,IAAU,UAEZ,MAAO,GAET,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CACpC,GAAM,GAAM,EAAK,GACjB,GAAI,MAAM,IAAQ,CAAC,SAAS,GAE1B,eAAQ,KAAK,SAAS,uBAAyB,MACxC,GAGX,MAAO,GAGH,YAAa,CACjB,iBACI,EAAc,EAAgB,EAC9B,EAAgC,EAChC,EAAkB,CACpB,GAAM,GAAO,MAAO,IAAW,SAAW,AAAK,GAAS,GAAG,MAAY,GAC7B,EAAO,MAC3C,EAAa,AAAK,GAAS,EAAM,IACjC,EAAO,EAAO,KACd,EAAO,EAAO,KACd,EAAQ,AAAK,GAAS,EAAO,MAAM,WAAY,IACjD,EAAyB,GAE7B,OAAW,KAAQ,GAAQ,CACzB,GAAM,GAAQ,EAAO,GACrB,GAAI,GAAS,KAAM,CAGjB,GAAM,GAAa,EAAM,OAAS,EAAO,MACnC,EAAY,EAAW,OAC7B,GACI,GAAG,MAAS,MAAc,EAAY,EAAI,EAAa,OAI/D,QAAQ,IACJ,KAAK,OAAiB,OAAW,MAAS,OAAY,OAClD,OAA6B,IACjC,mBAAoB,YAAa,aAAc,gBAC/C,eAAgB,sBC3IxB,AA2CM,YACF,EAAkB,EAAc,EAAS,CAG3C,GAAM,GAA8C,GAC9C,EAA0C,GAChD,OAAS,GAAI,EAAG,EAAI,EAAG,OAAQ,IAC7B,EAAa,EAAG,GAAG,IAAM,GAG3B,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CACpC,GAAM,GAAO,EAAK,GACZ,EAAa,EAAK,OACxB,OAAW,KAAa,GAAY,CAClC,GAAM,GAAQ,EAAW,GAErB,EAAgB,GACpB,OAAS,GAAI,EAAG,EAAI,EAAG,OAAQ,IAC7B,GAAI,EAAa,EAAM,IAAK,CAC1B,EAAK,QAAQ,QAAQ,GAAU,EAAa,EAAO,IAAM,IACzD,EAAgB,GAChB,EAAW,EAAK,IAAM,GACtB,MAIJ,GAAI,EACF,OAMN,GAAM,GAAgD,GACtD,EAAe,EAAE,IAAM,GACvB,GAAM,GAAwC,GAE9C,OAAS,GAAI,EAAK,OAAS,EAAG,GAAK,EAAG,IAAK,CACzC,GAAM,GAAO,EAAK,GACZ,EAAa,EAAK,OAGxB,OAAS,GAAI,EAAG,EAAI,EAAK,QAAQ,OAAQ,IACvC,GAAI,EAAe,EAAK,QAAQ,GAAG,IAAK,CACtC,OAAW,KAAa,GACtB,EAAe,EAAW,GAAW,IAAM,GAC3C,EAAS,EAAK,IAAM,GAEtB,OAMN,GAAM,GAA2B,GACjC,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CACpC,GAAM,GAAO,EAAK,GAElB,GAAI,EAAW,EAAK,KAAO,EAAS,EAAK,IAAK,CAE5C,GAAM,GAA8C,GACpD,OAAW,KAAa,GAAK,OAAQ,CACnC,GAAM,GAAY,EAAK,OAAO,GAC9B,AAAI,EAAa,EAAU,KACzB,GAAa,GAAa,GAK9B,GAAM,GAAa,OAAO,OAAO,GAAI,GACrC,EAAW,OAAS,EACpB,EAAW,QAAU,EAAK,QAE1B,EAAa,KAAK,IAItB,MAAO,GAUH,YACF,EACA,EAA0B,EAC1B,EAAqC,CAEvC,OAAS,GAAI,EAAa,OAAS,EAAG,GAAK,EAAG,IAAK,CACjD,GAAM,GAAO,EAAa,GAEpB,EAAgB,GAYtB,GAXA,EAAK,QAAQ,QAAQ,GAAI,CACvB,GAAM,GAAa,EAA6B,EAAE,IAClD,AAAI,GAAc,KAChB,EAAI,KAAK,GAIT,EAAI,KAAK,QAIT,EAAK,UAAY,KACnB,KAAM,IAAI,OACN,4DACO,EAAK,eAIlB,GAAM,GAAiB,EAAK,SAAS,GAErC,OAAW,KAAa,GAAK,OAAQ,CACnC,GAAI,CAAE,KAAa,IACjB,KAAM,IAAI,OACN,iCAAiC,iCACH,OAAO,KAAK,OAIhD,GAAM,GAAK,EAAK,IAAM,EAAe,MACrC,GAAI,EAAG,QAAU,UACf,KAAM,IAAI,OACN,4BACI,EAAK,qCACN,yCAAiD,EAAG,UAE7D,GAAM,GAAI,EAAK,OAAO,GACtB,GAAI,CAAC,AAAK,GAAY,EAAG,MAAO,EAAE,OAChC,KAAM,IAAI,OACN,4BACI,EAAK,sCACL,iBAAyB,EAAG,wDACL,EAAE,UAGnC,GAAI,EAA6B,EAAE,KAAO,KACxC,EAA6B,EAAE,IAAM,MAChC,CACL,GAAM,GAAc,EAA6B,EAAE,IACnD,EAA6B,EAAE,IAAM,EAAI,EAAa,GACtD,EAAY,aC5LpB,AAqBA,GAAM,IAAwB,GAExB,GAA6B,EAE7B,GAAwB,EAExB,YACF,EAA2B,EAAiB,EAC5C,EAAgB,CAClB,GAAM,GAAU,GAAe,GACzB,EAAY,GAAwB,EAAM,EAAO,EAAO,GACxD,EAAO,EAAM,OACb,EAAY,GAAkB,EAAM,EAAO,EAAO,EAAS,GAC3D,EAAQ,CAAC,UACf,MAAI,IACF,GAAM,KAAK,YAAY,KACvB,EAAM,KAAK,WAAW,KACtB,EAAM,KAAK,aAAa,MACxB,EAAM,KAAK,cAEb,EAAM,KAAK,EAAU,IAAI,GAAK,OAAS,GAAG,KAAK;IACxC,EAAM,KAAK;GAGpB,YACI,EAA2B,EAAiB,EAC5C,EAAiB,CACnB,GAAM,GAAI,GAAc,GAClB,EAAU,EAAQ,EAAQ,OAAS,GACnC,EAAY,GAAI,OAAM,GAAS,KAAK,GACpC,EAAO,EAAM,OACb,EACF,IAAU,YAAc,GAAoB,GAAQ,EAExD,GAAI,EAAO,EACT,OAAS,GAAM,EAAG,EAAM,EAAI,EAAS,IAAO,CAC1C,GAAM,GAAS,EAAM,EACrB,OAAS,GAAI,EAAG,EAAI,EAAS,IAC3B,EAAU,GAAK,KAAK,IAChB,EAAU,GACV,GAAY,EAAe,EAAS,GAAI,EAAG,GAAO,QAI5D,MAAO,GAGT,YACI,EAAqC,EAAa,EAAe,CACnE,GAAI,GACJ,MAAI,OAAM,QAAQ,GAChB,EAAS,GAAG,WAAW,EAAI,GAAG,QAAQ,UAC/B,WAAW,EAAI,GAAG,QAAQ,QAC5B,AAAI,GAAS,GAClB,EAAS,IAAI,KACR,AAAI,IAAU,OACnB,EAAS,GAAgB,GAEzB,EAAS,WAAW,EAAI,QAAQ,KAAwB,WAGnD,GAAS,EAAQ,GAG1B,YAAyB,EAAS,CAChC,MAAO,KAAM,EAAI,QAAU,OAG7B,YACI,EAA2B,EAAiB,EAC5C,EAAmB,EAAqB,EAAS,GAAI,CACvD,GAAM,GAAoB,IAAU,YAAc,EAAI,EAEhD,EAAO,EAAM,GACb,EAAO,EAAM,OACnB,GAAI,IAAS,EAAG,CACd,GAAI,IAAU,YAAa,CACzB,GAAM,GAAe,GAAoB,GACzC,MAAO,CAAC,GAAY,EAAa,GAAI,EAAG,IAE1C,MAAI,KAAU,OACL,CAAC,GAAgB,EAAK,KAExB,CAAC,EAAK,GAAG,YAGlB,GAAI,IAAS,EAAG,CACd,GAAI,EAAO,GAAuB,CAChC,GAAM,GAAgB,GAA6B,EAE/C,EAAY,MAAM,KAClB,EAAK,MAAM,EAAG,IACd,EAAW,MAAM,KAAqC,EAAK,MAC1D,GAAO,IAA8B,EACtC,EAAO,IACX,MAAI,KAAU,aACZ,GAAY,GAAoB,GAChC,EAAW,GAAoB,IAE1B,CACL,IACA,EAAU,IAAI,CAAC,EAAG,IAAM,GAAY,EAAG,EAAU,GAAI,IAChD,KAAK,MACV,UACA,EACK,IACG,CAAC,EAAG,IAAM,GACN,EAAG,EAAU,EAAO,GAA6B,GAAI,IAC5D,KAAK,MACV,KAGJ,GAAM,GACF,IAAU,YAAc,GAAoB,GACpB,MAAM,KAAoB,GAEtD,MAAO,CACL,IACA,EAAY,IAAI,CAAC,EAAG,IAAM,GAAY,EAAG,EAAU,GAAI,IAClD,KAAK,MACV,KAKJ,GAAM,GAAW,EAAM,MAAM,GACvB,EAAa,EAAQ,MAAM,GAC3B,EAAS,EAAQ,GAAK,EACtB,EAAkB,GACxB,GAAI,EAAO,GAAuB,CAChC,OAAS,GAAI,EAAG,EAAI,GAA4B,IAAK,CACnD,GAAM,GAAQ,EAAI,EACZ,EAAM,EAAQ,EACpB,EAAM,KAAK,GAAG,GACV,EAAK,MAAM,EAAO,GAAM,EAAU,EAAO,EAAY,EACrD,KAEN,EAAM,KAAK,OACX,OAAS,GAAI,EAAO,GAA4B,EAAI,EAAM,IAAK,CAC7D,GAAM,GAAQ,EAAI,EACZ,EAAM,EAAQ,EACpB,EAAM,KAAK,GAAG,GACV,EAAK,MAAM,EAAO,GAAM,EAAU,EAAO,EAAY,EACrD,IAAM,EAAO,SAGnB,QAAS,GAAI,EAAG,EAAI,EAAM,IAAK,CAC7B,GAAM,GAAQ,EAAI,EACZ,EAAM,EAAQ,EACpB,EAAM,KAAK,GAAG,GACV,EAAK,MAAM,EAAO,GAAM,EAAU,EAAO,EAAY,EACrD,IAAM,EAAO,IAGrB,GAAM,GAAM,IAAS,EAAI,IAAM,GAC/B,EAAM,GAAK,IAAM,EAAM,GAAK,EAC5B,OAAS,GAAI,EAAG,EAAI,EAAM,OAAS,EAAG,IACpC,EAAM,GAAK,IAAM,EAAM,GAAK,EAE9B,GAAI,GAAa;EACjB,OAAS,GAAI,EAAG,EAAI,EAAM,IACxB,GAAc;EAEhB,SAAM,EAAM,OAAS,GACjB,IAAM,EAAM,EAAM,OAAS,GAAK,IAAO,GAAS,GAAK,GAClD,EAGT,YAA6B,EACU,CACrC,GAAM,GAAyC,GAC/C,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,GAAK,EACpC,EAAc,KAAK,CAAC,EAAK,GAAI,EAAK,EAAI,KAExC,MAAO,GCnMT,AAwCM,YAAmB,CAMvB,YAAY,EAA2B,EAAU,EAAuB,CAItE,GAJqC,KAAA,MAAA,EACrC,KAAK,MAAQ,EAAM,QACnB,KAAK,KAAO,AAAK,GAAc,GAE3B,GAAU,KAAM,CAClB,GAAM,GAAI,EAAO,OACjB,AAAK,EACD,IAAM,KAAK,KACX,IAAM,qBAAqB,qDACG,KAAK,UAEzC,GAAI,IAAU,YACZ,KAAM,IAAI,OACN,8JAIN,KAAK,OAAS,GAAU,AAAK,GAAkB,EAAO,KAAK,MAC3D,KAAK,QAAU,GAAe,GAWhC,IAAI,KAA6B,EAAc,CAC7C,AAAI,EAAK,SAAW,GAClB,GAAO,CAAC,IAEV,AAAK,EACD,EAAK,SAAW,KAAK,KACrB,IAAM,uCAAuC,EAAK,gCAC3B,KAAK,SAEhC,GAAM,GAAQ,KAAK,WAAW,GAC9B,KAAK,OAAO,GAAS,EAUvB,OAAO,EAAc,CACnB,AAAI,EAAK,SAAW,GAClB,GAAO,CAAC,IAEV,GAAI,GAAI,EACR,OAAW,KAAO,GAAM,CACtB,GAAI,EAAM,GAAK,GAAO,KAAK,MAAM,GAAI,CACnC,GAAM,GAAM,qCAAqC,qBAC3B,KAAK,QAC3B,KAAM,IAAI,OAAM,GAElB,IAEF,GAAI,GAAQ,EAAK,EAAK,OAAS,GAC/B,OAAS,GAAI,EAAG,EAAI,EAAK,OAAS,EAAG,EAAE,EACrC,GAAS,KAAK,QAAQ,GAAK,EAAK,GAElC,MAAO,MAAK,OAAO,GAGrB,WAAW,EAAc,CACvB,GAAI,KAAK,OAAS,EAChB,MAAO,GACF,GAAI,KAAK,OAAS,EACvB,MAAO,GAAK,GAEd,GAAI,GAAQ,EAAK,EAAK,OAAS,GAC/B,OAAS,GAAI,EAAG,EAAI,EAAK,OAAS,EAAG,EAAE,EACrC,GAAS,KAAK,QAAQ,GAAK,EAAK,GAElC,MAAO,GAGT,WAAW,EAAa,CACtB,GAAI,KAAK,OAAS,EAChB,MAAO,GACF,GAAI,KAAK,OAAS,EACvB,MAAO,CAAC,GAEV,GAAM,GAAiB,GAAI,OAAM,KAAK,MAAM,QAC5C,OAAS,GAAI,EAAG,EAAI,EAAK,OAAS,EAAG,EAAE,EACrC,EAAK,GAAK,KAAK,MAAM,EAAQ,KAAK,QAAQ,IAC1C,GAAS,EAAK,GAAK,KAAK,QAAQ,GAElC,SAAK,EAAK,OAAS,GAAK,EACjB,KAGL,OAAI,CACN,MAAO,MAAK,MAAM,OAQpB,UAAQ,CACN,MAAO,MAAY,WAAW,KAAK,OAAQ,KAAK,MAAO,KAAK,SAiC5D,GAAiC,KAEjC,GAAuB,KAEvB,GAA8C,KAW5C,YAA2B,EAAuB,CACtD,GAAY,EAQR,YAAuB,EAAkB,CAC7C,GAAY,EAOR,YAAkC,EAAyB,CAC/D,GAAuB,EAuBnB,YAAa,CA6BjB,YAAY,EAAoB,EAAiB,EAAgB,EAAU,CAX3E,KAAA,KAAO,GAoIG,KAAA,mBAAqB,GAxH7B,KAAK,MAAQ,EAAM,QACnB,KAAK,MAAQ,GAAS,UACtB,KAAK,KAAO,AAAK,GAAc,GAC/B,KAAK,QAAU,GAAe,GAC9B,KAAK,OAAS,EACd,KAAK,GAAK,EACV,KAAK,SAAY,KAAK,KAAO,EAAI,KAAK,KAAK,WAAa,YAGtD,OAAI,CACN,MAAO,MAAK,MAAM,YAQd,SAAM,CACV,GAAM,GAAO,KAAM,MAAK,OACxB,MAAO,IAAU,OAAO,KAAK,MAAO,KAAK,MAAY,GAOvD,YAAU,CACR,MAAO,IAAU,OAAO,KAAK,MAAO,KAAK,MAAY,KAAK,iBAStD,QAAK,CACT,GAAM,GAAO,KAAM,MAAK,OACxB,MAAO,IAAc,KAAK,MAAO,GASnC,WAAS,CACP,MAAO,IAAc,KAAK,MAAO,KAAK,iBASlC,OAAI,CACR,KAAK,kBACL,GAAM,GAAO,KAAY,KAAK,KAAK,QACnC,GAAI,KAAK,QAAU,SAAU,CAC3B,GAAM,GAAQ,KAAM,GACpB,GAAI,CACF,MAAO,GAAM,IAAI,GAAK,AAAK,GAAa,UACxC,EAAA,CACA,KAAM,IAAI,OACN,kGAIR,MAAO,GAST,UAAQ,CACN,KAAK,kBACL,GAAM,GAAO,KAAY,SAAS,KAAK,QACvC,GAAI,KAAK,QAAU,SACjB,GAAI,CACF,MAAQ,GAAsB,IAAI,GAAK,AAAK,GAAa,UAEzD,EAAA,CACA,KAAM,IAAI,OACN,iGAIR,MAAO,QAIH,QAAK,CACT,KAAK,kBACL,GAAM,GAAO,KAAM,MAAY,KAAK,KAAK,QACzC,MAAI,MAAK,QAAU,SACV,EAEA,GAAI,YAAY,EAAoB,QAS/C,SAAO,CACL,AAAI,KAAK,YAGT,MAAY,cAAc,MAC1B,KAAK,mBAAqB,OAIxB,aAAU,CACZ,MAAO,MAAK,mBAGd,iBAAe,CACb,GAAI,KAAK,WACP,KAAM,IAAI,OAAM,uBAYpB,MAAM,EAAU,GAAK,CACnB,MAAO,IAAU,MAAM,KAAM,GAO/B,OAAK,CACH,YAAK,kBACE,GAAU,MAAM,MAQzB,SAAS,EAAU,GAAK,CACtB,GAAM,GAAO,KAAK,WAClB,MAAO,IAAe,EAAM,KAAK,MAAO,KAAK,MAAO,GAGtD,KAAqB,EAAe,CAClC,YAAK,kBACE,GAAU,KAAK,KAAW,GAEnC,SAAS,EAAY,GAAM,EAAe,EAAgB,CACxD,YAAK,kBACE,KAAY,aAAa,KAAM,EAAW,EAAM,KAI3D,OAAO,eAAe,GAAQ,OAAO,YAAa,CAChD,MAAO,AAAC,GAMC,CAAC,CAAC,GAAY,EAAS,MAAQ,MAAQ,EAAS,UAAY,MAC/D,EAAS,iBAAmB,OAI9B,YAA8B,CAIlC,MAAO,IAAU,SAAU,IAClB,IAKX,IAkCM,oBAA+C,GAAS,CAG5D,YACI,EAAgC,EAAoB,EACpD,EAAgB,CAClB,MACI,EAAa,MAAO,EAAa,MAAO,EAAa,OAAQ,GAH/B,KAAA,UAAA,EAIlC,KAAK,KAAO,EAWd,OAAO,EAAmB,CACxB,GAAI,EAAS,QAAU,KAAK,MAC1B,KAAM,IAAI,OACN,2BAA2B,EAAS,8BACjB,KAAK,qBAE9B,GAAI,CAAC,AAAK,GAAY,EAAS,MAAO,KAAK,OACzC,KAAM,IAAI,OACN,2BAA2B,EAAS,8BACjB,KAAK,qBAE9B,KAAY,cAAc,MAC1B,KAAK,OAAS,EAAS,OACvB,KAAY,OAAO,KAAM,MAG3B,SAAO,CACL,KAAY,gBAAgB,MAC5B,KAAK,mBAAqB,KAI9B,OAAO,eAAe,GAAU,OAAO,YAAa,CAClD,MAAO,AAAC,GACC,YAAoB,KAAU,EAAS,QAAU,MACpD,EAAS,iBAAkB,YChiBnC,oHCAA,AAgEA,GAAY,IAAZ,AAAA,UAAY,EAAI,CACd,EAAA,GAAA,KACA,EAAA,GAAA,KACA,EAAA,GAAA,KACA,EAAA,GAAA,KACA,EAAA,GAAA,KACA,EAAA,GAAA,KACA,EAAA,GAAA,OAPU,IAAA,IAAI,KAqBhB,GAAK,IAAL,AAAA,UAAK,EAAiB,CACpB,EAAA,QAAA,UACA,EAAA,MAAA,QACA,EAAA,KAAA,QACA,EAAA,UAAA,cAJG,IAAA,IAAiB,KAOtB,GAAK,IAAL,AAAA,UAAK,EAAgB,CACnB,EAAA,QAAA,UACA,EAAA,MAAA,QACA,EAAA,KAAA,OACA,EAAA,UAAA,cAJG,IAAA,IAAgB,KAOrB,GAAK,IAAL,AAAA,UAAK,EAAmB,CACtB,EAAA,QAAA,UACA,EAAA,MAAA,UACA,EAAA,KAAA,UACA,EAAA,UAAA,cAJG,IAAA,IAAmB,KAOxB,GAAK,IAAL,AAAA,UAAK,EAAqB,CACxB,EAAA,QAAA,YACA,EAAA,MAAA,YACA,EAAA,KAAA,YACA,EAAA,UAAA,cAJG,IAAA,IAAqB,KAO1B,GAAM,IAAgB,CACpB,QAAW,GACX,MAAS,GACT,KAAQ,GACR,UAAa,IAGT,YAAqB,EAAiB,EAAe,CACzD,GAAI,IAAU,UAAY,IAAU,SAAU,CAC5C,GAAI,IAAU,UAAY,IAAU,SAClC,MAAO,SAET,KAAM,IAAI,OAAM,kBAAkB,UAAc,KAElD,MAAO,IAAc,GAAO,GAIxB,YAAqB,EAAc,CACvC,MAAO,IAAW,EAAM,SDpI1B,AAsBM,YAA2C,EAAM,EAAI,CACzD,GAAI,EAAE,QAAU,EAAE,MAChB,MAAO,CAAC,EAAG,GAEb,GAAM,GAAQ,GAAW,EAAE,MAAO,EAAE,OACpC,MAAO,CAAC,EAAE,KAAK,GAAQ,EAAE,KAAK,IAG1B,YAA2B,EAAW,EAAS,CACnD,EACI,EAAE,QAAU,EAAE,MACd,IAAM,2BAA2B,EAAE,qBACpB,EAAE,2BAGjB,YAAyB,EAAgB,EAAoB,CACjE,MAAO,GAAW,KAAK,GAAK,EAAE,KAAO,EAAO,IAexC,YAAgC,EAAuB,CAC3D,GAAM,GAAiB,GACjB,EAAO,GAAI,KACjB,UAAoB,EAAQ,EAAM,GAC3B,EAGT,YACI,EAA4B,EAAgB,EAAkB,CAChE,GAAI,GAAa,KACf,OAEF,GAAI,YAAqB,IAAQ,CAC/B,EAAK,KAAK,GACV,OAEF,GAAI,CAAC,GAAW,GACd,OAGF,GAAM,GAAW,EACjB,OAAW,KAAK,GAAU,CACxB,GAAM,GAAM,EAAS,GACrB,AAAK,EAAK,IAAI,IACZ,GAAK,IAAI,GACT,GAAoB,EAAK,EAAM,KAMrC,YAAoB,EAAQ,CAC1B,MAAO,OAAM,QAAQ,IAAQ,MAAO,IAAQ,SErF9C,AAoGA,YAEI,EACgC,CAElC,MAAQ,GAAmD,YAAc,KAG3E,YAAiB,CAAjB,aAAA,CAEE,KAAA,oBAAwC,GAExC,KAAA,eAAiB,EACjB,KAAA,SAAW,EACX,KAAA,WAAa,EACb,KAAA,iBAAmB,EACnB,KAAA,eAAiB,EAMjB,KAAA,cAAgB,EAGhB,KAAA,YAAc,EAId,KAAA,WAA2B,GAK3B,KAAA,kBAA8B,GAC9B,KAAA,YAAc,EAEd,KAAA,WAAa,GAAI,SAOjB,KAAA,UAAY,GACZ,KAAA,cAA6B,CAC3B,SAAU,EACV,WAAY,EACZ,UAAW,EACX,QAAS,GACT,OAAQ,QACJ,cAAW,CAET,MAAO,OAAM,KAAK,GAAI,KAAI,KAAK,QAAQ,IAAI,GAAK,EAAE,UAI1D,SAAO,CACL,OAAW,KAAgB,MAAK,oBAC9B,KAAK,oBAAoB,GAAc,YAKvC,QAAa,CAgBjB,YAAmB,EAAgB,CAAhB,KAAA,IAAA,EAbnB,KAAA,SAA0C,GAC1C,KAAA,gBAKI,GAKI,KAAA,qBAAuB,EAG7B,KAAK,MAAQ,GAAI,SAGb,QAAK,CACT,GAAI,KAAK,oBAAsB,KAC7B,MAAO,MAAK,mBAAmB,KAAK,IAAK,IAE3C,GAAI,KAAK,iBAAmB,KAC1B,OAEF,GAAM,GAAiB,KAAK,oBAE5B,OAAS,GAAI,EAAG,EAAI,EAAe,OAAQ,IAAK,CAC9C,GAAM,GAAc,EAAe,GAEnC,GADgB,KAAM,MAAK,kBAAkB,GAAa,QAC7C,CACX,KAAM,MAAK,WAAW,GACtB,QAIJ,KAAM,IAAI,OACN,6EAIF,UAAO,CACT,GAAI,KAAK,oBAAsB,KAC7B,KAAM,IAAI,OACN,YAAY,KAAK,kIAIvB,GAAI,KAAK,iBAAmB,KAAM,CAChC,GAAM,CAAC,OAAM,aAAa,KAAK,kCAC/B,GAAI,EACF,KAAM,IAAI,OACN,iCAAiC,wHAIvC,KAAK,WAAW,GAElB,MAAO,MAAK,gBAGd,cAAY,CACV,MAAO,QAAO,KAAK,KAAK,iBAG1B,YAAY,EAAmB,CAC7B,GAAI,CAAE,KAAe,MAAK,UAGxB,GAAI,IAAe,MAAK,gBAAiB,CACvC,GAAM,CAAC,aAAa,KAAK,kBAAkB,GAC3C,GAAI,EAEF,MAAO,UAGT,OAAO,MAGX,MAAO,MAAK,SAAS,GAGvB,mBAAmB,EAAmB,CAEpC,MAAM,KAAe,MAAK,gBAGnB,KAAK,gBAAgB,GAAa,QAFhC,KAKX,gBACI,EACA,EACA,EAAW,EAAC,CACd,MAAI,KAAe,MAAK,gBACtB,SAAQ,KACJ,GAAG,uEAEA,IAET,MAAK,gBAAgB,GAAe,CAAC,UAAS,YACvC,SAGH,YAAW,EAAmB,CAClC,GAAI,KAAK,gBAAgB,IAAgB,KACvC,KAAM,IAAI,OAAM,iBAAiB,4BAGnC,GADA,KAAK,YAAc,EACf,KAAK,SAAS,IAAgB,KAAM,CACtC,KAAK,gBAAkB,KACvB,GAAM,CAAC,UAAS,aAAa,KAAK,kBAAkB,GAEpD,GAAI,CADW,GAAY,KAAM,GAAU,GAEzC,MAAO,GAGX,YAAK,gBAAkB,KAAK,SAAS,GACrC,KAAK,yBAEL,KAAK,SAAW,GAAI,IAAS,KAAK,iBAE3B,GAGD,wBAAsB,CAE5B,AADgB,GAAqB,KAAK,aAClC,QAAQ,GAAS,CACvB,AAAI,EAAO,WAAa,MACtB,EAAO,UAAU,KAAK,mBAKpB,yBAAyB,EAAmB,CAElD,AADgB,GAAqB,GAC7B,QAAQ,GAAS,CACvB,AAAI,EAAO,aAAe,MACxB,EAAO,YAAY,KAAK,SAAS,MAW/B,kBAAkB,EAAmB,CAE3C,GAAM,GAAuB,KAAK,gBAAgB,GAClD,GAAI,GAAwB,KAC1B,KAAM,IAAI,OACN,6BAA6B,6BAGnC,GAAI,CACF,GAAM,GAAU,EAAqB,UAMrC,GAAI,GAAW,CAAE,aAAmB,MAChC,MAAO,GAAQ,MAAS,WAAY,CACtC,GAAM,GAAY,EAAE,KAAK,qBACnB,EACF,EACK,KAAK,GAEA,EAAY,KAAK,qBACZ,GAET,MAAK,SAAS,GAAe,EAC7B,KAAK,mBAAqB,KACnB,KAER,MAAM,GAED,GAAY,KAAK,sBAGrB,MAAK,mBAAqB,KAC1B,QAAQ,KACJ,6BAA6B,YACjC,QAAQ,KAAK,EAAI,OAAS,EAAI,UACvB,KAEjB,YAAK,mBAAqB,EACnB,CAAC,UAAS,UAAW,QAE5B,aAAK,SAAS,GAAe,EACtB,CAAC,QAAS,GAAM,UAAW,UAE7B,EAAP,CACA,eAAQ,KAAK,6BAA6B,YAC1C,QAAQ,KAAK,EAAI,OAAS,EAAI,SACvB,CAAC,QAAS,GAAO,UAAW,KAIvC,cAAc,EAAmB,CAC/B,GAAI,CAAE,KAAe,MAAK,iBACxB,KAAM,IAAI,OAAM,GAAG,mCAErB,AAAI,KAAK,cAAgB,GAAe,KAAK,oBAAsB,MAGjE,KAAK,uBAGH,IAAe,MAAK,UACtB,MAAK,yBAAyB,GAC9B,KAAK,SAAS,GAAa,UAC3B,MAAO,MAAK,SAAS,IAGvB,MAAO,MAAK,gBAAgB,GAGxB,KAAK,cAAgB,GACvB,MAAK,mBAAqB,KAC1B,KAAK,YAAc,KACnB,KAAK,gBAAkB,MAInB,mBAAiB,CACvB,GAAI,OAAO,KAAK,KAAK,iBAAiB,SAAW,EAC/C,KAAM,IAAI,OAAM,iCAElB,MAAO,QAAO,KAAK,KAAK,iBAAiB,KAAK,CAAC,EAAW,IAEjD,KAAK,gBAAgB,GAAG,SAC3B,KAAK,gBAAgB,GAAG,UAIxB,iCAA+B,CAErC,GAAM,GAAiB,KAAK,oBAE5B,OAAS,GAAI,EAAG,EAAI,EAAe,OAAQ,IAAK,CAC9C,GAAM,GAAc,EAAe,GAC7B,CAAC,UAAS,aAAa,KAAK,kBAAkB,GACpD,GAAI,GAAa,EACf,MAAO,CAAC,KAAM,EAAa,aAG/B,KAAM,IAAI,OACN,0EAIN,SAAS,EAAwB,EAAc,CAC7C,GAAM,GAAO,KAAK,MAAM,WAAW,IAAI,GACjC,EAAa,EAAK,QAClB,EAAS,KAAK,SAAS,GACvB,EAAW,EAAW,SAAS,GAGrC,EAAW,YAAY,EAAQ,IAC/B,EAAK,QAAU,EACf,EAAQ,KAAK,EAAQ,EAAQ,EAAK,MAAO,EAAK,MAAO,GACjD,KAAK,0BAGP,KAAK,MAAM,kBAAkB,KAAK,MAAM,kBAAkB,OAAS,KAIvE,KAAgC,EAA6B,EAAe,CAE1E,GAAI,GAAe,KACnB,GAAI,GAAM,KAAM,CAEd,GAAI,MAAO,IAAa,WACtB,KAAM,IAAI,OAAM,uCAElB,EAAK,MACA,CAEL,GAAI,MAAO,IAAa,UAAY,CAAE,aAAoB,SACxD,KAAM,IAAI,OACN,kFAGN,GAAI,MAAO,IAAO,WAChB,KAAM,IAAI,OACN,kFAGN,EAAO,EAIT,GAAI,GACJ,MAAO,MAAK,UACR,IAAM,KAAK,WAAW,GAAO,IAAM,KAAK,SAAS,GAAS,IACxD,GAAS,IACL,YAAkB,UACpB,QAAQ,MAAM,2CAET,IAIP,UAAa,EAAmB,EAAiB,EAAU,CACjE,IACA,GAAI,CACF,GAAM,GAAM,IACZ,WACO,QACA,EAAP,CACA,UACM,GAKF,cAAY,CAClB,MAAO,IAAO,eAIR,gBAAc,CACpB,MAAO,IAAO,iBASR,MAAM,EAAS,CACrB,GAAM,GAAY,EAAO,UAAU,GAAU,CAAC,MACxC,EAAS,CAAC,KACV,EAAO,AAAC,GAAgB,EAC5B,EAAG,IAAK,CACN,GAAM,GAAQ,UACR,EAAa,CAAC,EAAG,GACjB,EAAQ,CAAC,SAEf,MAAO,GAAO,UACH,GAAM,EAEN,MAGT,EAAkB,GACxB,YAAK,YAAY,KAAK,MAAM,YAAY,KAAM,EAAQ,CAAC,GAAI,EAAM,EAAO,IACjE,EAgBT,UACI,EAAoB,EAAwB,EAAoB,CAElE,GAAI,CADc,IAAU,EAAY,KAAK,cAAgB,MAE3D,KAAM,IAAI,OAAM,WAAW,kCACvB,KAAK,gBAEX,MAAO,MAAK,cAAc,CAAC,aAAY,SAAQ,UAGzC,wBAAsB,CAC5B,MAAO,MAAK,IAAI,QAAQ,WAGlB,sBACJ,EAAoB,EACpB,EAAsB,CACxB,GAAM,GAAkB,KAAK,QAAQ,aAGjC,EAAmB,EACvB,EAAS,QAAQ,GAAO,CAGtB,GAAqB,EAAK,QAAU,YAAc,EAAI,IAQxD,GAAM,GACF,KAAK,MAAM,kBAAkB,KAAK,MAAM,kBAAkB,OAAS,GACjE,EACF,EAAkB,EAAmB,EAAmB,EAC5D,GAAI,EAAgB,EAClB,KAAM,IAAI,OACN,YAAY,KAAK,6CACb,8BAA0C,MAS9C,cACJ,EACgC,CAClC,GAAI,GACA,EAAkB,GAChB,EAAW,KAAK,WAEhB,EAAoB,KAAK,MAAM,SAC/B,EAAqB,KAAK,MAAM,WAEtC,AAAI,KAAK,0BACP,KAAK,MAAM,kBAAkB,KAAK,GAGpC,GAAI,GACJ,AAAI,KAAK,aAAe,MAMtB,KAAK,QAGP,GAAI,GAEE,EAAoB,GAA6B,GACnD,EAAa,WACb,KAAK,MAAM,aAAe,KAAO,KAAK,MAAM,YAAY,KAAO,GAMnE,GAAI,GAA6B,GAAe,CAC9C,GAAM,CAAC,aAAY,SAAQ,SAAS,EACpC,AAAI,KAAK,aAAe,MAMtB,KAAK,QAEP,GAAM,GAAS,GAAU,EAAY,KAAK,aAC1C,AAAK,EACD,GAAU,KACV,IAAM,kCAAkC,mBACpC,KAAK,gBAEb,EAAa,IAAK,CAChB,GAAM,GAAmB,KAAK,QAAQ,aACtC,EAAM,EAAO,WAAW,CAAC,SAAQ,QAAO,QAAS,KAAK,UACtD,GAAM,GAAW,MAAM,QAAQ,GAAO,EAAM,CAAC,GAC7C,AAAI,KAAK,0BACP,KAAK,sBAAsB,EAAY,EAAkB,GAG3D,GAAM,GAAa,EAAS,IAAI,AAAC,GAA8B,CAI7D,GAAK,EAAmB,MAAQ,KAC9B,MAAO,GAET,GAAM,CAAC,SAAQ,QAAO,SAAS,EAC/B,MAAO,MAAK,qBAAqB,EAAQ,EAAO,KAQlD,GAAI,EAAU,CACZ,GAAM,GACF,KAAK,sBAAsB,EAAY,EAAQ,GACnD,EAAQ,KAAK,2BAA2B,GAE1C,MAAO,QAEJ,CACL,GAAM,CAAC,eAAe,EAEhB,EAAyB,AAAC,GAAW,CAIzC,AAAI,CAAC,GAGL,GAAQ,EAAQ,IAAI,GAAU,KAAK,KAAK,KAAK,MAAM,OAGrD,EAAa,IAAK,CAChB,GAAM,GAAmB,KAAK,QAAQ,aACtC,EAAM,KAAK,KAAK,IAAM,EAAY,KAAK,QAAS,IAChD,GAAM,GAAQ,MAAM,QAAQ,GAAO,EAAM,CAAC,GAC1C,MAAI,MAAK,0BAEP,KAAK,sBAAsB,EAAmB,EAAkB,GAE3D,GAOX,GAAM,CAAC,SAAQ,SAAS,EAClB,EAAgB,GAA6B,GAC/C,KACA,EAAa,cAEb,EACJ,YAAK,UAED,IAAM,KAAK,MAAM,cAAe,IAAM,KAAK,MAAM,cAAe,IAAK,CACnE,AAAI,CAAC,KAAK,IAAI,QAAQ,UAAY,CAAC,KAAK,MAAM,UAC5C,EAAU,IAEV,GAAgB,KAAK,SAAS,cAC1B,EAAmB,EAAQ,IAAM,KACjC,KAAK,IAAI,QAAQ,UACnB,KAAK,SAAS,iBAAiB,GAEjC,EAAU,EAAc,WAI5B,GACF,KAAK,YACD,EAAmB,EAAQ,EAAS,EAAe,EAAO,GAG5D,KAAK,MAAM,WACb,KAAK,MAAM,cAAc,QAAQ,KAAK,CACpC,KAAM,EACN,WAAY,KAAK,MAAM,SAAW,EAClC,mBAAoB,KAAK,MAAM,SAC/B,aAAc,KAAK,MAAM,WAAa,EACtC,qBAAsB,KAAK,MAAM,WACjC,YAAa,OAAO,KAAK,GAAQ,IAC7B,GAAO,EAAO,IAAQ,KAAO,EAAO,GAAK,MAAQ,MACrD,aAAc,EAAQ,IAAI,GAAQ,EAAK,OACvC,aAAc,EAAc,OAC5B,UAAW,EAAc,YAGrB,MAAM,QAAQ,GAAO,EAAU,EAAQ,GAQzC,2BAA2B,EAAiB,CAElD,MADc,GAAQ,IAAI,GAAU,KAAK,KAAK,KAAK,MAAM,KAWnD,sBACJ,EAAoB,EACpB,EAAiB,CACnB,GAAM,GAAa,GAAY,GAC/B,GAAI,GAAc,KAAM,CACtB,GAAM,GAAyB,EAAW,cAAgB,GACpD,EAA2B,EAAW,eAAiB,GAIzD,EACJ,AAAI,EAAW,cACb,CAAK,EACD,MAAM,QAAQ,GACd,IAAM,0DAEV,EAAqB,OAAO,KAAK,GAAQ,IAAI,AAAC,GAAQ,EAAO,KAE7D,EAAqB,EAAa,IAAI,AAAC,GAAc,EAAO,IAG9D,GAAM,GACF,EAAQ,OAAO,CAAC,EAAG,IAAM,EAAc,IAE3C,MAAO,GAAmB,OAAO,GAQnC,MAAO,GAQT,WACI,EAAoB,EAAiB,EACrC,EAAuB,CACzB,GAAI,GAAU,KACZ,KAAM,IAAI,OAAM,iDAElB,EAAQ,GAAS,UACjB,EAAU,GAAW,KAAK,QAC1B,GAAI,GAAc,EAClB,AAAI,IAAU,UAAY,AAAK,GAAS,EAAO,KAC7C,GAAe,EAAoB,IAAI,GAAK,AAAK,GAAa,KAEhE,GAAM,GAAS,EAAQ,MAAM,EAAa,EAAO,GAC3C,EAAI,GAAI,IAAO,EAAO,EAAO,EAAQ,KAAK,gBAIhD,GAHA,KAAK,YAAY,EAAG,GAGhB,IAAU,SAAU,CACtB,GAAM,GAAO,KAAK,MAAM,WAAW,IAAI,GACjC,EAAW,GAAqB,GACtC,KAAK,MAAM,UAAY,EAAW,EAAK,MACvC,EAAK,MAAQ,EAEf,MAAO,GAQT,qBACI,EAAgB,EAAiB,EACjC,EAAuB,CACzB,EAAQ,GAAS,UACjB,GAAM,GAAI,GAAI,IAAO,EAAO,EAAO,EAAQ,KAAK,gBAChD,YAAK,YAAY,EAAG,GACb,EAGT,aACI,EAAsB,EAAY,GAAM,EACxC,EAAgB,CAClB,EAAO,GAAQ,KAAK,iBAAiB,WACjC,GAAS,MAAQ,IAAU,EAAa,OAC1C,GAAe,EAAa,KAAK,IAEnC,GAAM,GAAI,GAAI,IAAS,EAAc,EAAW,EAAM,KAAK,gBAC3D,GAAI,KAAK,MAAM,oBAAoB,EAAE,OAAS,KAC5C,KAAM,IAAI,OAAM,sBAAsB,EAAE,+BAE1C,YAAK,MAAM,oBAAoB,EAAE,MAAQ,EACzC,KAAK,OAAO,EAAG,KAAK,SACb,EAGT,YAAY,EAAW,EAAsB,CAC3C,KAAK,MAAM,aACP,EAAE,QAAU,UACd,KAAK,MAAM,mBAIb,GAAI,GAAQ,EACZ,AAAI,EAAE,QAAU,aAAe,EAAE,QAAU,UACzC,GAAQ,EAAE,KAAO,AAAK,GAAgB,EAAE,QAE1C,KAAK,MAAM,UAAY,EAElB,KAAK,MAAM,WAAW,IAAI,EAAE,SAC/B,MAAK,MAAM,iBACX,KAAK,MAAM,WAAW,IAAI,EAAE,OAAQ,CAClC,QAAS,GAAW,KAAK,QACzB,MAAO,EAAE,MACT,MAAO,EAAE,MACT,WAIE,YAAa,KACjB,KAAK,MAAM,GASf,OAAO,EAAW,EAAsB,CACtC,KAAK,YAAY,EAAG,GACpB,KAAK,QAAQ,OAAO,EAAE,QAGxB,aAAa,EAAgB,EAAsB,CACjD,AAAI,KAAK,MAAM,WAAW,IAAI,IAC1B,KAAK,MAAM,WAAW,IAAI,GAAQ,UAAY,GAChD,MAAK,MAAM,WAAW,OAAO,GAC7B,KAAK,MAAM,kBAGf,cAAc,EAAS,CACrB,GAAI,CAAC,KAAK,MAAM,WAAW,IAAI,EAAE,QAC/B,OAEF,GAAM,GAAO,KAAK,MAAM,WAAW,IAAI,EAAE,QASzC,GAPA,KAAK,MAAM,aACP,EAAE,QAAU,UACd,MAAK,MAAM,mBACX,KAAK,MAAM,UAAY,EAAK,OAI1B,EAAE,QAAU,aAAe,EAAE,QAAU,SAAU,CACnD,GAAM,GAAQ,EAAE,KAAO,AAAK,GAAgB,EAAE,OAC9C,KAAK,MAAM,UAAY,EAIzB,AAAI,EAAK,QAAQ,YAAY,EAAE,SAC7B,KAAK,aAAa,EAAE,OAAQ,EAAK,SAQrC,kBAAgB,CACd,OAAW,KAAW,MAAK,MAAM,oBAAqB,CACpD,GAAM,GAAI,KAAK,MAAM,oBAAoB,GACzC,KAAK,gBAAgB,IAIzB,gBAAgB,EAAW,CACzB,KAAK,cAAc,GACf,KAAK,MAAM,oBAAoB,EAAE,OAAS,MAC5C,MAAO,MAAK,MAAM,oBAAoB,EAAE,MAI5C,QAAM,CACJ,GAAM,GAAO,KAAK,QAAQ,SAC1B,SAAK,WAAa,KAAK,MAAM,WAC7B,EAAK,eAAiB,KAAK,MAAM,eACjC,EAAK,SAAW,KAAK,MAAM,SACvB,KAAK,MAAM,iBAAmB,GAChC,GAAK,WAAa,GACd,EAAK,SAAW,MAClB,GAAK,QAAU,IAEjB,EAAK,QAAQ,KACT,0EAGC,OAGH,SAAQ,EAAyD,CAErE,KAAK,MAAM,UAAY,GAEvB,GAAM,GAAa,KAAK,MAAM,SACxB,EAAkB,KAAK,MAAM,WAEnC,KAAK,MAAM,cAAc,QAAU,GACnC,KAAK,MAAM,cAAc,OAAS,KAAM,KAExC,KAAK,MAAM,UAAY,GAEvB,KAAK,MAAM,cAAc,UAAY,KAAK,IACtC,GAAG,KAAK,MAAM,cAAc,QAAQ,IAAI,GAAK,EAAE,qBACnD,KAAK,MAAM,cAAc,SAAW,KAAK,MAAM,SAAW,EAC1D,KAAK,MAAM,cAAc,WACrB,KAAK,MAAM,WAAa,EAC5B,OAAW,KAAU,MAAK,MAAM,cAAc,QAC5C,EAAO,aAAe,KAAM,GAAO,aACnC,EAAO,UAAY,KAAM,GAAO,UAElC,MAAO,MAAK,MAAM,cAGpB,UAAQ,CACN,MAAO,MAAK,MAAM,cAAgB,GAAK,KAAK,MAAM,cAAgB,EAG5D,YACJ,EAAoB,EAAwB,EAC5C,EAAyB,EAAiB,EAAmB,CAC/D,GAAM,GACF,CAAC,GAAI,KAAK,MAAM,iBAAkB,aAAY,SAAQ,UAAS,SAE7D,EAAa,GAAY,GAC/B,AAAI,GAAc,MAChB,GAAgB,EAAW,UAEzB,GAAiB,MACnB,GAAS,SAAW,AAAC,GAGnB,GAAM,EAAI,IAAI,CAAC,EAAI,IAAK,CACtB,GAAI,GAAM,KAAM,CACd,GAAM,GAAS,EAAQ,GACjB,EAAO,AAAK,GAAoB,EAAO,KAAM,EAAO,OAC1D,MAAO,MAAK,WAAW,EAAM,EAAO,MAAO,EAAO,OAEpD,MAAO,KAIF,EAAc,EAAI,OAAS,EAAI,EAAM,EAAI,GAAI,EAAO,KAG/D,KAAK,MAAM,WAAW,KAAK,GAG7B,KAAuB,EAAS,CAC9B,SAAO,KAAO,GACP,EAGD,WAAS,CACf,AAAI,KAAK,MAAM,gBAAkB,GAC/B,MAAK,MAAM,WAAa,IAE1B,KAAK,MAAM,gBAGL,SAAO,CACb,KAAK,MAAM,gBAOb,WAAW,EAAa,CACtB,GAAM,GAAwB,CAC5B,MAAO,GACP,KAAM,gBACN,GAAI,KAAK,MAAM,eAEjB,AAAI,GACF,GAAU,KAAO,GAEnB,KAAK,MAAM,WAAW,KAAK,GAC3B,KAAK,MAAM,YAAc,EAO3B,SAAS,EAAwB,CAC/B,GAAM,GAAyB,GAAsB,GAC/C,EACF,GAAI,KAAI,EAAuB,IAAI,GAAK,EAAE,KAG9C,OAAS,GAAI,EAAG,EAAI,KAAK,MAAM,YAAY,MAAM,OAAQ,IAAK,CAC5D,GAAM,GAAS,KAAK,MAAM,YAAY,MAAM,GAC5C,AAAI,CAAC,EAAO,MAAQ,CAAC,EAA0B,IAAI,EAAO,KACxD,EAAO,UAIX,GAAM,GAAW,KAAK,MAAM,WAAW,MACvC,KAAK,MAAM,YAAc,KAAK,MAAM,WAAW,SAAW,EACtD,KACA,KAAK,MAAM,WAAW,KAAK,MAAM,WAAW,OAAS,GAGzD,EAAuB,QAAQ,GAAS,CAGtC,AAAI,CAAC,EAAO,MAAQ,EAAO,UAAY,EAAS,IAC9C,KAAK,MAAM,KAWjB,UACI,EAAY,EAAc,EAC1B,EAAmB,GAAK,CAG1B,GAFA,AAAK,EACD,EAAG,OAAS,EAAG,IAAM,6CACrB,GAAM,MAAQ,EAAG,QAAU,UAC7B,KAAM,IAAI,OAAM,0CAA0C,EAAG,UAG/D,GAAM,GAAI,KAAK,UACX,IAAM,KAAK,YAAa,IAAM,KAAK,UACnC,IAAM,KAAK,KAAK,UAAW,IAE/B,AAAK,EACD,YAAa,IACb,IAAM,kDAEV,GAAM,GAAe,GAAqB,KAAK,MAAM,WAAY,EAAI,GACrE,GAAI,CAAC,GAAoB,EAAa,SAAW,GAAK,EAAG,OAAS,EAChE,KAAM,IAAI,OACN,uIAKN,MAAO,MAAK,KAAK,WAAY,IAAK,CAChC,GAAM,GAAuD,GAC7D,EAAuB,EAAE,IAAO,GAAM,KAAQ,GAAK,EAAE,OAAS,EAG9D,GACI,EAAwB,EAExB,GAAK,KAAK,KAAK,GAEf,IACJ,GAAM,GAAQ,EAAG,IAAI,GAAK,EAAuB,EAAE,KAEnD,MAAI,MAAK,MAAM,gBAAkB,GAG/B,MAAK,MAAM,WAAW,QAAQ,GAAO,CACnC,OAAW,KAAU,GAAK,MACxB,EAAO,YAGX,KAAK,MAAM,WAAa,MAEnB,CAAC,MAAO,EAAG,WAItB,WAA6B,EAAwB,CAEnD,MAAK,GACD,AAAK,GAAW,GAChB,IAAM,qDACH,IAAI,IAAuB,CAChC,AAAK,EACD,EAAO,MAAM,GAAK,YAAa,KAC/B,IAAM,oEAGV,GAAI,GAIE,EAA2B,GACjC,EAAO,QAAQ,CAAC,EAAO,IAAK,CAC1B,EAAS,GAAK,IAGhB,GAAM,GAA8B,CAAC,EAAG,IACtC,GAAM,EAAM,GAAG,EAAQ,GACvB,AAAK,EACD,EAAI,gBAAiB,IACrB,IAAM,8FAEV,AAAK,EACD,AAAK,GAAW,EAAI,UACpB,IAAM,oGAEH,EAAI,OAGP,EAAgB,CAAC,EAAO,IAAmB,CAC/C,GAAM,GAAU,EAAI,SAAS,EAAI,GAC3B,EAAkB,MAAM,QAAQ,GAAW,EAAU,CAAC,GAC5D,AAAK,EACD,EAAM,SAAW,EAAO,OACxB,IAAM,uKAGV,AAAK,EACD,EAAM,MAAM,GAAK,YAAa,KAC9B,IAAM,wIAGV,GAAM,GAAyC,GAC/C,SAAM,QAAQ,CAAC,EAAM,IAAK,CACxB,EAAQ,GAAK,IAAM,IAEd,GAGT,MAAO,MAAK,cAAc,CACxB,cACA,gBACA,OAAQ,KAKd,SAAS,EAAc,CAGrB,MAAO,AADM,MAAK,MAAM,WAAW,IAAI,GAC3B,QAAQ,SAAS,GAE/B,KAAK,EAAc,CAGjB,MAAO,AADM,MAAK,MAAM,WAAW,IAAI,GAC3B,QAAQ,KAAK,QAGrB,MAAK,EAAiB,CAC1B,GAAM,GAAQ,KACR,EAAa,KAAM,MAAK,QAAQ,KAAK,GAC3C,SAAW,OAAS,KAAQ,EACrB,EASD,MAAwB,EAAS,CACvC,MAAI,MAAK,MAAM,aAAe,MAC5B,GAAO,QAAU,KAAK,MAAM,YAAY,GACxC,KAAK,MAAM,YAAY,MAAM,KAAK,IAG7B,KAGL,sBAAmB,CACrB,MAAO,MAAK,MAAM,oBAOpB,OAAK,CAEH,KAAK,uBAEL,KAAK,MAAM,UACX,KAAK,IAAI,QACT,KAAK,MAAQ,GAAI,IAEjB,OAAW,KAAe,MAAK,SAC7B,KAAK,yBAAyB,GAC9B,KAAK,SAAS,GAAa,UAC3B,MAAO,MAAK,SAAS,GAEvB,KAAK,YAAc,KACnB,KAAK,gBAAkB,KACvB,KAAK,mBAAqB,OA5vBb,GAAA,aAAe,EAKf,GAAA,eAAiB,EA2vBlC,YAAc,EAAe,CAC3B,GAAM,GAAS,GAAmB,GAAc,GAAQ,WACxD,MAAO,GAAO,WAAW,EAAQ,EAAO,WAGpC,aAAyB,CAC7B,GAAM,GAAK,KACX,GAAI,EAAG,WAAa,KAAM,CACxB,GAAM,GAAc,GAAI,IAAY,GACpC,EAAG,UAAY,GAAI,IAAO,GAE5B,UAAqB,EAAG,UAAU,KAIlC,GAAiB,IAAM,EAAG,WACnB,EAAG,UAGL,GAAM,GAAS,KAQhB,YAAc,EAAW,EAAS,CAEtC,GAAM,GAAS,CAAC,IAAG,KACnB,MAAO,GAAO,UAAU,GAAK,GCpwC/B,oDAAA,AAkBA,aAA4B,CAC1B,MAAO,OAAO,YAAc,aAAe,WAAa,KAGpD,aAAkB,CACtB,GAAI,KAAuB,CAEzB,GAAM,GAAI,UAAU,WAAa,UAAU,QAAW,OAAe,MAErE,MAAO,2TACK,KAAK,IAEb,0kDACK,KAAK,EAAE,OAAO,EAAG,IAE5B,MAAO,GAGH,aAAmB,CACvB,MAAQ,OAAO,SAAW,aAAe,OAAO,UAAY,MAEvD,MAAO,oBAAsB,YCvCpC,AAqBA,GAAM,IAAM,IAOZ,GAAI,aAAa,QAAS,IAAM,GAAO,GAAa,CAClD,AAAI,GACF,QAAQ,KACJ,iJAOR,GAAI,aAAa,aAAc,IAAM,AAAY,MAGjD,GAAI,aACA,UACA,IAAO,MAAO,UAAY,aACrB,MAAO,SAAQ,UAAa,aAC5B,MAAO,SAAQ,SAAS,MAAS,aAG1C,GAAI,aACA,YACA,IAAM,MAAO,YAAc,aAAe,WAAa,MACnD,UAAU,WAAa,MAAQ,SAAS,KAAK,UAAU,YACvD,aAAa,KAAK,UAAU,SAMpC,GAAI,aAAa,OAAQ,IAAM,IAM/B,GAAI,aACA,qCAAsC,IAAM,GAAI,QAAQ,UAG5D,GAAI,aAAa,+BAAgC,IAAM,IAGvD,GAAI,aAAa,UAAW,IAAM,IAGlC,GAAI,aAAa,+BAAgC,IAAM,IAGvD,GAAI,aAAa,sBAAuB,IAAM,IC7E9C,AAuBM,YAAqB,EAAiB,EAAgB,CAC1D,GAAI,GAAwB,EAE5B,GAAI,GAAa,GACf,MAAO,KAAU,SAAW,GAAK,CAAC,EAAI,QAExC,GAAI,CAAC,MAAM,QAAQ,GACjB,MAAO,GAET,GAAM,GAAkB,GAExB,KAAO,MAAM,QAAQ,IACd,GAAa,IAAc,IAAU,UAC1C,EAAM,KAAK,EAAU,QACrB,EAAY,EAAU,GAExB,MAAI,OAAM,QAAQ,IACd,IAAM,QAAQ,uCAChB,GAA2B,EAAK,EAAO,IAGlC,EAGT,YACI,EAAiB,EAAiB,EAAiB,CAErD,GADA,EAAU,GAAW,GACjB,CAAE,MAAM,QAAQ,IAAS,CAAC,GAAa,GAAM,CAC/C,EACI,EAAM,SAAW,EACjB,IAAM,eAAe,EAAQ,KAAK,+DACU,EAAM,eACtD,OAEF,EACI,EAAM,OAAS,EACf,IAAM,eAAe,EAAQ,KAAK,oDACR,EAAI,mBAClC,EACI,EAAI,SAAW,EAAM,GACrB,IAAM,eAAe,EAAQ,KAAK,sBAAsB,EAAM,wBACrC,EAAI,mBACjC,GAAM,GAAW,EAAM,MAAM,GAC7B,OAAS,GAAI,EAAG,EAAI,EAAI,OAAQ,EAAE,EAChC,GAA2B,EAAI,GAAI,EAAU,EAAQ,OAAO,IAIhE,YACI,EACA,EAAuB,EAAiB,EAAoB,CAC9D,GAAI,IAAkB,oBAGtB,IAAI,GAAiB,KACnB,KAAM,IAAI,OAAM,kCAElB,GAAI,IAAkB,WAAa,IAAkB,GACjD,IAAkB,WAAa,IAAgB,SACjD,KAAM,IAAI,OACN,aAAa,iBAAuB,cAC9B,qBAAiC,aAIzC,WACF,EAAiB,EAAiB,EAClC,EAAuD,UAAS,CAClE,GAAI,YAAa,IACf,UAAY,EAAc,EAAE,MAAO,EAAS,GACrC,EAET,GAAI,GAAgB,GAAW,GAS/B,GANI,IAAkB,UAClB,CAAC,OAAQ,QAAS,WAAW,QAAQ,IAAiB,GACxD,GAAgB,GAElB,GAAY,EAAc,EAAe,EAAS,GAE7C,GAAK,MACL,CAAC,GAAa,IAAM,CAAC,MAAM,QAAQ,IAAM,MAAO,IAAM,UACtD,MAAO,IAAM,WAAa,MAAO,IAAM,SAAW,CACrD,GAAM,GAAO,GAAK,KAAO,OAAU,EAAS,YAAY,KACxD,KAAM,IAAI,OACN,aAAa,iBAAuB,+CACF,MAExC,GAAM,GAAgB,GAAW,EAAG,GACpC,AAAI,CAAC,GAAa,IAAM,CAAC,MAAM,QAAQ,IACrC,GAAI,CAAC,IAGP,GAAM,GAAS,IAAkB,SAC7B,GAAa,EAAG,GAChB,GAAQ,EAAe,GAHJ,IAIvB,MAAO,GAAO,WAAW,EAAQ,EAAe,GAG5C,YACF,EAA0B,EAAiB,EAC3C,EAAuD,UAAS,CAClE,GAAI,CAAC,MAAM,QAAQ,GACjB,KAAM,IAAI,OACN,YAAY,eAAqB,gDAIvC,MAAO,AADS,GACD,IACX,CAAC,EAAG,IACA,EAAgB,EAAG,GAAG,KAAW,KAAM,EAAc,ICtI/D,AAmBO,GAAM,IAAkB,OAOzB,WAAiC,EAAsB,CAC3D,GAAM,GAAO,OAAO,KAAK,GACzB,GAAI,EAAK,SAAW,EAClB,KAAM,IAAI,OACN,yGAEG,EAAK,gBAGd,GAAI,GAAS,EAAK,GACZ,EAAK,EAAE,GAGb,AAAI,EAAO,SAAS,MAClB,GAAS,EAAO,UAAU,EAAG,EAAO,OAAS,IAI/C,EAAS,EAAS,GAGlB,GAAM,GAAK,IAAI,IAAe,CAC5B,EAAO,WAAW,GAClB,GAAI,CACF,GAAM,GAAS,EAAG,GAAG,GACrB,MAAI,IAAU,IACZ,QAAQ,MAAM,2CAEhB,EAAO,SAAS,GACT,QACA,EAAP,CACA,QAAO,SAAS,MACV,IAGV,cAAO,eAAe,EAAI,OAAQ,CAAC,MAAO,EAAQ,aAAc,KAGzD,EChET,AA8CA,YAAoC,EAAoB,EAAkB,CACxE,GAAM,GAAQ,EAAgB,EAAM,OAAQ,WACtC,EAAQ,EAAgB,EAAM,OAAQ,WAC5C,AAAK,GACD,EAAM,MAAO,EAAM,MACnB,yBAAyB,EAAM,aAAa,EAAM,8CAGtD,GAAM,GAAwB,CAAC,KAAM,EAAO,KAAM,GAClD,MAAO,GAAO,UAAU,GAAS,GAG5B,GAAM,IAAU,EAAG,CAAC,cC1D3B,AAwBM,YACF,EAAoB,EAAiB,EACrC,EAAgB,CAIlB,GAHI,GAAS,MACX,GAAQ,GAAW,IAEjB,IAAU,YACZ,KAAM,IAAI,OACN,oFAGN,GAAI,CAAC,GAAa,IAAW,CAAC,MAAM,QAAQ,IACxC,MAAO,IAAW,UAAY,MAAO,IAAW,WAChD,MAAO,IAAW,SACpB,KAAM,IAAI,OACN,4HAGN,GAAI,GAAS,KAAM,CACjB,GAAmC,GAEnC,GAAM,GAAe,GAAc,GAC7B,EAAe,GAAc,GACnC,EACI,IAAiB,EACjB,IACI,iCAAiC,8BAC9B,oBAA+B,KAE1C,OAAS,GAAI,EAAG,EAAI,EAAc,OAAQ,EAAE,EAAG,CAC7C,GAAM,GAAW,EAAc,GACzB,EAAoB,IAAM,EAAc,OAAS,EACnD,IAAa,GAAc,EAAM,MAAM,IACvC,GACJ,EACI,EAAc,KAAO,EAAM,IAAM,CAAC,EAClC,IAAM,gDACE,yCACM,SAItB,MAAI,CAAC,GAAa,IAAW,CAAC,MAAM,QAAQ,IAC1C,GAAS,CAAC,IAGZ,EAAQ,GAAS,EACjB,EAAS,IAAU,SACf,GAAa,EAAQ,GACrB,GAAQ,EAAoB,GAAI,IAC7B,EAAO,WAAW,EAAsB,EAAO,GC1ExD,AAoDM,YACF,EAAoB,EAAqB,EAAgB,CAC3D,GAAM,GAAgB,GAAW,EAAQ,GACzC,MAAO,IAAW,EAAQ,EAAO,EAAe,GCvDlD,AAsBO,GAAM,IAAkD,CAC7D,QAAW,EACX,QAAW,EACX,MAAS,EACT,OAAU,EACV,MAAS,EACT,KAAQ,EACR,UAAa,GC7Bf,AA2BA,GAAM,IAA0B,EAmBhC,kBACI,EAAuC,EAAmB,CAG5D,GAAM,GAAgC,GAChC,EAA2C,GAE3C,EAAkB,MAAM,QAAQ,GAClC,EAAQ,IAAI,GAAU,EAAO,MAC7B,OAAO,KAAK,GAEhB,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,EAAE,EAAG,CACrC,GAAM,GAAO,EAAM,GACb,EAAI,MAAM,QAAQ,GAAW,EAAQ,GAAG,OAAS,EAAQ,GAC/D,GAAI,EAAE,QAAU,WAAa,EAAE,QAAU,SAAW,EAAE,QAAU,QAC5D,EAAE,QAAU,UAAY,EAAE,QAAU,YACtC,KAAM,IAAI,OAAM,gCAAgC,OAAU,EAAE,SAE9D,GAAM,GAA6B,CAAC,OAAM,MAAO,EAAE,MAAO,MAAO,EAAE,OACnE,GAAI,EAAE,QAAU,SAAU,CACxB,GAAM,GAAY,GAAI,SAAoB,KAAM,IAAU,CACxD,GAAM,GAAO,KAAM,GAAE,QACf,EAAgB,EAAK,OAAO,CAAC,EAAG,IAAM,EAAI,EAAE,OAAQ,GACtD,GAA0B,EAAK,OAC7B,EAAQ,GAAI,YAAW,GACzB,EAAS,EACb,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CACpC,GAAM,GAAM,EAAK,GACX,EACF,GAAI,YAAW,GAAI,aAAY,CAAC,EAAI,SAAS,QACjD,EAAM,IAAI,EAAe,GACzB,GAAU,GACV,EAAM,IAAI,EAAK,GACf,GAAU,EAAI,OAEhB,EAAQ,KAEV,EAAa,KAAK,OAElB,GAAa,KAAK,EAAE,QAEtB,AAAI,GAAS,MACX,GAAK,MAAQ,GAEf,EAAM,KAAK,GAGb,GAAM,GAAe,KAAM,SAAQ,IAAI,GACvC,MAAO,CAAC,KAAM,GAAuB,GAAe,SAkBhD,YACF,EAAqB,EAA6B,CAEpD,GAAM,GAAsB,GACxB,EACA,EAAS,EACb,OAAW,KAAQ,GAAO,CACxB,GAAM,GAAO,EAAK,KACZ,EAAQ,EAAK,MACb,EAAQ,EAAK,MACb,EAAO,GAAc,GACvB,EAEJ,GAAI,gBAAkB,GAAM,CAC1B,GAAM,GAAe,EAAK,aAC1B,GAAI,EAAa,QAAU,SAAW,EAAa,QAAU,UAC3D,GAAI,CAAE,QAAS,IAAgB,SAAW,IACxC,KAAM,IAAI,OACN,UAAU,EAAK,0BAA0B,EAAa,oEAGnD,EAAa,QAAU,WAChC,GAAI,IAAU,UACZ,KAAM,IAAI,OACN,UAAU,EAAK,0BAA0B,EAAa,yDACH,UAGzD,MAAM,IAAI,OACN,UAAU,EAAK,uCACO,EAAa,+EAIzC,GAAM,GAAyB,GAAqB,EAAa,OAC3D,EACF,EAAO,MAAM,EAAQ,EAAS,EAAO,GACnC,EAAkB,EAAa,QAAU,QAC3C,GAAI,YAAW,GACf,GAAI,aAAY,GACpB,GAAI,IAAU,UACZ,GAAI,EAAa,QAAU,SAAW,EAAa,QAAU,SAAU,CACrE,EAAS,GAAI,cAAa,EAAe,QACzC,OAAS,GAAI,EAAG,EAAI,EAAe,OAAQ,IAAK,CAC9C,GAAM,GAAI,EAAe,GACzB,EAAO,GAAK,EAAI,EAAa,MAAQ,EAAa,aAE3C,EAAa,QAAU,UAChC,AAAI,IAAkB,QACpB,GAAgB,MAElB,EAAS,EAAc,OAEvB,MAAM,IAAI,OACN,iCAAiC,EAAa,0CAG3C,IAAU,QAAS,CAC5B,GAAI,EAAa,QAAU,SAAW,EAAa,QAAU,SAC3D,KAAM,IAAI,OACN,iCAAiC,EAAa,gCAGpD,EAAS,GAAI,YAAW,EAAe,QACvC,OAAS,GAAI,EAAG,EAAI,EAAe,OAAQ,IAAK,CAC9C,GAAM,GAAI,EAAe,GACzB,EAAO,GAAK,KAAK,MAAM,EAAI,EAAa,MAAQ,EAAa,UAG/D,MAAM,IAAI,OAAM,gCAAgC,OAAU,KAE5D,GAAU,EAAO,UACR,IAAU,SAAU,CAC7B,GAAM,GAAO,GAAc,EAAK,OAChC,EAAS,GACT,OAAS,GAAI,EAAG,EAAI,EAAM,IAAK,CAC7B,GAAM,GAAa,GAAI,aACnB,EAAO,MAAM,EAAQ,EAAS,KAA0B,GAC5D,GAAU,GACV,GAAM,GAAQ,GAAI,YAAW,EAAO,MAAM,EAAQ,EAAS,IAC1D,EAAwB,KAAK,GAC9B,GAAU,OAEP,CACL,GAAM,GAAc,GAAqB,GACnC,EAAa,EAAO,MAAM,EAAQ,EAAS,EAAO,GAExD,GAAI,IAAU,UACZ,EAAS,GAAI,cAAa,WACjB,IAAU,QACnB,EAAS,GAAI,YAAW,WACf,IAAU,OACnB,EAAS,GAAI,YAAW,WACf,IAAU,YAAa,CAChC,EAAS,GAAI,cAAa,GAC1B,GAAM,GAAO,GAAI,cAAa,EAAO,OAAS,GACxC,EAAQ,GAAI,cAAa,EAAO,OAAS,GAC/C,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAC/B,EAAK,GAAK,EAAO,EAAI,GACrB,EAAM,GAAK,EAAO,EAAI,EAAI,GAE5B,GAAM,GAAa,GAAO,EAAM,EAAO,WACjC,EAAc,GAAO,EAAO,EAAO,WACzC,EAAI,GAAQ,GAAQ,EAAY,GAChC,EAAW,UACX,EAAY,cAEZ,MAAM,IAAI,OAAM,gCAAgC,OAAU,KAE5D,GAAU,EAAO,EAEnB,AAAI,IAAU,aACZ,GAAI,GAAQ,GAAO,EAAQ,EAAO,IAGtC,MAAO,GAMH,YAAiC,EAAgB,CAErD,GAAI,IAAO,KACT,KAAM,IAAI,OAAM,wBAAwB,KAAK,UAAU,MAGzD,GAAI,GAAkB,EAShB,EAA6B,GACnC,EAAG,QAAQ,AAAC,GAAiB,CAM3B,GALA,GAAmB,EAAE,WAErB,EAAa,KACT,EAAE,aAAe,EAAE,OAAO,WAAa,EACA,GAAK,GAAE,YAAoB,IAClE,CAAE,aAAoB,eAAgB,YAAoB,aACxD,YAAoB,aACxB,KAAM,IAAI,OAAM,mCAAmC,EAAE,YAAY,UAKrE,GAAM,GAAI,GAAI,YAAW,GACrB,EAAS,EACb,SAAa,QAAQ,AAAC,GAAiB,CACrC,EAAE,IAAI,GAAI,YAAW,EAAE,QAAS,GAChC,GAAU,EAAE,aAGP,EAAE,OAIX,GAAM,IAAgB,MAAO,SAAW,aACnC,OAAO,OAAS,aAAe,MAAO,OAAS,aAC/C,MAAO,OAAS,aAWf,YAA2B,EAAW,CAC1C,MAAI,IACK,OAAO,WAAW,GAEpB,GAAI,MAAK,CAAC,IAAM,KASnB,YAAoC,EAAmB,CAC3D,GAAI,GACF,MAAO,QAAO,KAAK,GAAQ,SAAS,UAEtC,GAAM,GAAM,GAAI,YAAW,GACvB,EAAI,GACR,OAAS,GAAI,EAAG,EAAI,EAAI,OAAQ,EAAI,EAAG,IACrC,GAAK,OAAO,aAAa,EAAI,IAE/B,MAAO,MAAK,GASR,YAAoC,EAAW,CACnD,GAAI,GAAe,CACjB,GAAM,GAAM,OAAO,KAAK,EAAK,UAC7B,MAAO,GAAI,OAAO,MAAM,EAAI,WAAY,EAAI,WAAa,EAAI,YAE/D,GAAM,GAAI,KAAK,GACT,EAAS,GAAI,YAAW,EAAE,QAChC,OAAS,GAAI,EAAG,EAAI,EAAE,OAAQ,EAAE,EAC9B,EAAO,IAAI,CAAC,EAAE,WAAW,IAAK,GAEhC,MAAO,GAAO,OASV,YAAkC,EAAsB,CAC5D,GAAI,EAAQ,SAAW,EACrB,MAAO,GAAQ,GAGjB,GAAI,GAAkB,EACtB,EAAQ,QAAQ,AAAC,GAAuB,CACtC,GAAmB,EAAO,aAG5B,GAAM,GAAO,GAAI,YAAW,GACxB,EAAS,EACb,SAAQ,QAAQ,AAAC,GAAuB,CACtC,EAAK,IAAI,GAAI,YAAW,GAAS,GACjC,GAAU,EAAO,aAEZ,EAAK,OAUR,YAAmB,EAAY,CACnC,GAAM,GAAY,IAElB,IADA,EAAO,EAAK,OACL,EAAK,SAAS,IACnB,EAAO,EAAK,MAAM,EAAG,EAAK,OAAS,GAErC,GAAM,GAAQ,EAAK,MAAM,GACzB,MAAO,GAAM,EAAM,OAAS,GAQxB,YAAuC,EAA8B,CAEzE,GAAI,EAAe,wBAAyB,aAC1C,KAAM,IAAI,OAAM,uDAGlB,MAAO,CACL,UAAW,GAAI,MACf,kBAAmB,OACnB,mBAAoB,EAAe,eAAiB,KAChD,EACA,GAAiB,KAAK,UAAU,EAAe,gBACnD,iBAAkB,EAAe,aAAe,KAC5C,EACA,GAAiB,KAAK,UAAU,EAAe,cACnD,gBAAiB,EAAe,YAAc,KAC1C,EACA,EAAe,WAAW,YAUlC,aAAmC,CACjC,GAAM,GAAkB,AAAC,GAAqB,CAC5C,GAAI,GAAI,GAAK,GACT,EAAI,EAER,KAAQ,GAAI,UAAgB,GAC1B,GAAK,QACL,IAAM,EAER,UAAK,CAAC,QACN,GAAK,UAEE,EAAI,GAGP,EAAe,GAAI,aAAY,MAErC,EAAa,GAAK,EAClB,OAAS,GAAI,EAAG,EAAI,KAAM,IACxB,EAAa,GAAK,EAAgB,GAEpC,OAAS,GAAI,KAAM,EAAI,KAAM,IAC3B,EAAa,GAAK,UAAe,GAAI,MAAS,IAGhD,MAAO,GAST,aAAoC,CAClC,GAAM,GAAgB,GAAI,aAAY,IAEtC,EAAc,GAAK,EACnB,EAAc,IAAM,WACpB,EAAc,IAAM,WACpB,EAAc,IAAM,WACpB,OAAS,GAAI,EAAG,EAAI,GAAI,IACtB,EAAc,GAAK,GAAK,GAE1B,OAAS,GAAI,GAAI,EAAI,GAAI,IACvB,EAAc,GAAK,WAAe,GAAI,IAAO,IAG/C,MAAO,GAST,aAAkC,CAChC,GAAM,GAAc,GAAI,aAAY,IAEpC,OAAS,GAAI,EAAG,EAAI,GAAI,IACtB,EAAY,GAAK,KAEnB,SAAY,GAAK,EAAY,IAAM,EAE5B,EAUH,aAA2B,CAK/B,GAAM,GAAe,KACf,EAAgB,KAChB,EAAc,KAEpB,MAAO,AAAC,IAA+B,CACrC,GAAM,GAAS,GAAI,aAAY,EAAI,EAAe,QAC5C,EAAmB,GAAI,aAAY,GACzC,OAAS,GAAQ,EAAG,EAAQ,EAAe,OAAQ,IAAS,CAC1D,GAAM,GAAc,EAAe,GAC7B,EACF,EAAa,EAAY,GAAe,IAAO,GAAc,OAC7D,EAAc,GAAe,IACjC,EAAiB,GAAS,EAE5B,MAAO,IAAI,cAAa,IClf5B,AAsBM,YAAuB,CAO3B,aAAA,CACE,KAAK,YAAc,GACnB,KAAK,YAAc,SAGN,cAAW,CACxB,MAAI,IAAiB,UAAY,MAC/B,IAAiB,SAAW,GAAI,KAE3B,GAAiB,eASnB,oBAAmB,EAAoB,CAC5C,GAAiB,cAAc,YAAY,KAAK,SAS3C,oBAAmB,EAAoB,CAC5C,GAAiB,cAAc,YAAY,KAAK,SAW3C,iBAAgB,EAAoB,CACzC,MAAO,IAAiB,YAAY,EAAK,cAWpC,iBAAgB,EAAsB,EAAyB,CAEpE,MAAO,IAAiB,YAAY,EAAK,OAAQ,SAGpC,aACX,EAAsB,EACtB,EAAyB,CAC3B,GAAM,GAA6B,GAInC,MAHgB,KAAgB,OAC5B,GAAiB,cAAc,YAC/B,GAAiB,cAAc,aAC3B,QAAQ,GAAS,CACvB,GAAM,GAAU,EAAO,EAAK,GAC5B,AAAI,IAAY,MACd,EAAc,KAAK,KAGhB,IAIE,GAAqB,AAAC,GAC/B,GAAiB,mBAAmB,GAC3B,GAAqB,AAAC,GAC/B,GAAiB,mBAAmB,GAC3B,GAAkB,AAAC,GAC5B,GAAiB,gBAAgB,GACxB,GACT,CAAC,EAAsB,IACnB,GAAiB,gBAAgB,EAAK,GC/G9C,AAyBA,GAAM,IAAgB,eAChB,GAAmB,EAKnB,GAAmB,eAInB,GAAkB,mBAexB,aAA4B,CAC1B,GAAI,CAAC,IAAM,QAAQ,cAIjB,KAAM,IAAI,OACN,2FAIN,GAAM,GAAiB,MAAO,SAAW,YAAc,KAAO,OACxD,EAAU,EAAU,WAAa,EAAU,cAC7C,EAAU,iBAAmB,EAAU,aACvC,EAAU,cACd,GAAI,GAAW,KACb,KAAM,IAAI,OACN,6DAEN,MAAO,GAGT,YAAuB,EAAuB,CAC5C,GAAM,GAAK,EAAY,OACvB,EAAG,kBAAkB,GAAkB,CAAC,QAAS,cACjD,EAAG,kBAAkB,GAAiB,CAAC,QAAS,cAQ5C,YAAuB,CAM3B,YAAY,EAAiB,CAG3B,GAFA,KAAK,UAAY,KAEb,GAAa,MAAQ,CAAC,EACxB,KAAM,IAAI,OACN,kEAEN,KAAK,UAAY,OAGb,MAAK,EAA8B,CAEvC,GAAI,EAAe,wBAAyB,aAC1C,KAAM,IAAI,OACN,4FAIN,MAAO,MAAK,eAAe,KAAK,UAAW,QAIvC,OAAI,CACR,MAAO,MAAK,eAAe,KAAK,WAiB1B,eAAe,EAAmB,EAA+B,CAEvE,MAAO,IAAI,SAAmC,CAAC,EAAS,IAAU,CAChE,GAAM,GAAc,KAAK,UAAU,KAAK,GAAe,IACvD,EAAY,gBAAkB,IAAM,GAAc,GAElD,EAAY,UAAY,IAAK,CAC3B,GAAM,GAAK,EAAY,OAEvB,GAAI,GAAkB,KAAM,CAE1B,GAAM,GAAU,EAAG,YAAY,GAAkB,YAE3C,EAAa,AADA,EAAQ,YAAY,IACT,IAAI,KAAK,WACvC,EAAW,UAAY,IAAK,CAC1B,GAAI,EAAW,QAAU,KACvB,SAAG,QACI,EAAO,GAAI,OACd,gCAAgC,KAAK,6BAGzC,EAAQ,EAAW,OAAO,iBAG9B,EAAW,QAAU,GACnB,GAAG,QACI,EAAO,EAAW,QAE3B,EAAQ,WAAa,IAAM,EAAG,YACzB,CAEL,GAAM,GACF,GAA6B,GAE3B,EAAS,EAAG,YAAY,GAAiB,aAC3C,EAAY,EAAO,YAAY,IAC7B,EACF,EAAU,IAAI,CAAC,UAAW,KAAK,UAAW,uBAC1C,EACJ,EAAe,UAAY,IAAK,CAE9B,EAAU,EAAG,YAAY,GAAkB,aAE3C,GAAM,GAAkB,AADL,EAAQ,YAAY,IACJ,IAAI,CACrC,UAAW,KAAK,UAChB,iBACA,uBAEF,EAAgB,UAAY,IAAM,EAAQ,CAAC,uBAC3C,EAAgB,QAAU,GAAQ,CAGhC,EAAY,EAAO,YAAY,IAC/B,GAAM,GAAoB,EAAU,OAAO,KAAK,WAChD,EAAkB,UAAY,IAC5B,GAAG,QACI,EAAO,EAAgB,QAEhC,EAAkB,QAAU,GAC1B,GAAG,QACI,EAAO,EAAgB,UAIpC,EAAe,QAAU,GACvB,GAAG,QACI,EAAO,EAAe,QAE/B,EAAO,WAAa,IAAK,CACvB,AAAI,GAAW,KACb,EAAG,QAEH,EAAQ,WAAa,IAAM,EAAG,WAKtC,EAAY,QAAU,GAAS,EAAO,EAAY,WAvHtC,GAAA,WAAa,eA4HxB,GAAM,IAA4B,AAAC,GACnC,IAAM,QAAQ,eAGb,CAAC,MAAM,QAAQ,IAAQ,EAAI,WAAW,GAAiB,YAClD,GAAiB,EAAI,MAAM,GAAiB,WAAW,SAHzD,KASX,GAAiB,mBAAmB,IACpC,GAAiB,mBAAmB,IAmB9B,YAA2B,EAAiB,CAChD,MAAO,IAAI,IAAiB,GAG9B,YAA0B,EAAW,CACnC,MAAO,GAAI,WAAW,GAAiB,YACnC,EAAI,MAAM,GAAiB,WAAW,QACtC,EAGA,YAA8B,CAGlC,aAAA,CACE,KAAK,UAAY,UAGb,aAAU,CACd,MAAO,IAAI,SACP,CAAC,EAAS,IAAU,CAClB,GAAM,GACF,KAAK,UAAU,KAAK,GAAe,IACvC,EAAY,gBAAkB,IAAM,GAAc,GAElD,EAAY,UAAY,IAAK,CAC3B,GAAM,GAAK,EAAY,OACjB,EAAK,EAAG,YAAY,GAAiB,YAUrC,EAAqB,AATb,EAAG,YAAY,IASY,SACzC,EAAkB,UAAY,IAAK,CACjC,GAAM,GAA4C,GAClD,OAAW,KAAQ,GAAkB,OACnC,EAAI,EAAK,WAAa,EAAK,mBAE7B,EAAQ,IAEV,EAAkB,QAAU,GAC1B,GAAG,QACI,EAAO,EAAkB,QAElC,EAAG,WAAa,IAAM,EAAG,SAE3B,EAAY,QAAU,GAAS,EAAO,EAAY,cAIpD,aAAY,EAAY,CAC5B,SAAO,GAAiB,GACjB,GAAI,SAA4B,CAAC,EAAS,IAAU,CACzD,GAAM,GAAc,KAAK,UAAU,KAAK,GAAe,IACvD,EAAY,gBAAkB,IAAM,GAAc,GAElD,EAAY,UAAY,IAAK,CAC3B,GAAM,GAAK,EAAY,OACjB,EAAS,EAAG,YAAY,GAAiB,aACzC,EAAY,EAAO,YAAY,IAE/B,EAAiB,EAAU,IAAI,GACjC,EACJ,EAAe,UAAY,IAAK,CAC9B,GAAI,EAAe,QAAU,KAC3B,SAAG,QACI,EAAO,GAAI,OACd,gCAAgC,qBAE/B,CAEL,GAAM,GAAoB,EAAU,OAAO,GACrC,EAAkB,IAAK,CAE3B,EAAU,EAAG,YAAY,GAAkB,aAE3C,GAAM,GAAqB,AADR,EAAQ,YAAY,IACD,OAAO,GAC7C,EAAmB,UAAY,IAC3B,EAAQ,EAAe,OAAO,oBAClC,EAAmB,QAAU,GACzB,EAAO,EAAe,QAI5B,EAAkB,UAAY,EAC9B,EAAkB,QAAU,GAC1B,KACA,EAAG,QACI,EAAO,EAAe,UAInC,EAAe,QAAU,GACvB,GAAG,QACI,EAAO,EAAe,QAG/B,EAAO,WAAa,IAAK,CACvB,AAAI,GAAW,KACb,EAAG,QAEH,EAAQ,WAAa,IAAM,EAAG,UAIpC,EAAY,QAAU,GAAS,EAAO,EAAY,WC9VxD,AAyBA,GAAM,IAAiB,IACjB,GAAc,sBACd,GAAc,OACd,GAAwB,iBACxB,GAAsB,eACtB,GAAqB,cACrB,GAAwB,iBA8B9B,YAAsB,EAAY,CAOhC,MAAO,CACL,KAAM,CAAC,GAAa,EAAM,IAAa,KAAK,IAC5C,SAAU,CAAC,GAAa,EAAM,IAAuB,KAAK,IAC1D,YAAa,CAAC,GAAa,EAAM,IAAqB,KAAK,IAC3D,WAAY,CAAC,GAAa,EAAM,IAAoB,KAAK,IACzD,cACI,CAAC,GAAa,EAAM,IAAuB,KAAK,KAWxD,YAA6B,EAAW,CACtC,GAAM,GAAQ,EAAI,MAAM,IACxB,GAAI,EAAM,OAAS,EACjB,KAAM,IAAI,OAAM,uBAAuB,KAEzC,MAAO,GAAM,MAAM,EAAG,EAAM,OAAS,GAAG,KAAK,IAG/C,YAA0B,EAAW,CACnC,MAAO,GAAI,WAAW,GAAoB,YACtC,EAAI,MAAM,GAAoB,WAAW,QACzC,EAgBA,YAA0B,CAO9B,YAAY,EAAiB,CAC3B,GAAI,CAAC,IAAM,QAAQ,eAAiB,MAAO,SAAW,aAClD,MAAO,QAAO,cAAiB,YAKjC,KAAM,IAAI,OACN,2DAIN,GAFA,KAAK,GAAK,OAAO,aAEb,GAAa,MAAQ,CAAC,EACxB,KAAM,IAAI,OACN,sEAEN,KAAK,UAAY,EACjB,KAAK,KAAO,GAAa,KAAK,gBAY1B,MAAK,EAA8B,CACvC,GAAI,EAAe,wBAAyB,aAC1C,KAAM,IAAI,OACN,4FAEC,CACL,GAAM,GAAW,KAAK,UAAU,EAAe,eACzC,EAAc,KAAK,UAAU,EAAe,aAE5C,EACF,GAA6B,GAEjC,GAAI,CACF,KAAK,GAAG,QAAQ,KAAK,KAAK,KAAM,KAAK,UAAU,IAC/C,KAAK,GAAG,QAAQ,KAAK,KAAK,SAAU,GACpC,KAAK,GAAG,QAAQ,KAAK,KAAK,YAAa,GACvC,KAAK,GAAG,QACJ,KAAK,KAAK,WACV,GAA0B,EAAe,aAC7C,GAAM,GAAyB,CAC7B,OAAQ,EAAe,OACvB,YAAa,EAAe,YAC5B,YAAa,EAAe,aAE9B,MAAI,GAAe,WAAa,MAC9B,GAAO,UAAY,EAAe,WAEhC,EAAe,qBAAuB,MACxC,GAAO,oBAAsB,EAAe,qBAE1C,EAAe,kBAAoB,MACrC,GAAO,iBAAmB,EAAe,kBAE3C,KAAK,GAAG,QAAQ,KAAK,KAAK,cAAe,KAAK,UAAU,IAEjD,CAAC,4BACD,EAAP,CAEA,WAAK,GAAG,WAAW,KAAK,KAAK,MAC7B,KAAK,GAAG,WAAW,KAAK,KAAK,UAC7B,KAAK,GAAG,WAAW,KAAK,KAAK,aAC7B,KAAK,GAAG,WAAW,KAAK,KAAK,YAC7B,KAAK,GAAG,WAAW,KAAK,KAAK,eAEvB,GAAI,OACN,yBAAyB,KAAK,kHAER,EAAmB,wCACrB,EAAmB,qCACpB,EAAmB,2BAa1C,OAAI,CACR,GAAM,GACF,KAAK,MAAM,KAAK,GAAG,QAAQ,KAAK,KAAK,OACzC,GAAI,GAAQ,KACV,KAAM,IAAI,OACN,kDAAkD,KAAK,cAG7D,GAAI,EAAK,oBAAsB,OAC7B,KAAM,IAAI,OACN,6EAIN,GAAM,GAAsB,GAGtB,EAAW,KAAK,MAAM,KAAK,GAAG,QAAQ,KAAK,KAAK,WACtD,GAAI,GAAY,KACd,KAAM,IAAI,OACN,4CAA4C,KAAK,0BAGvD,EAAI,cAAgB,EAGpB,GAAM,GAAc,KAAK,MAAM,KAAK,GAAG,QAAQ,KAAK,KAAK,cACzD,GAAI,GAAe,KACjB,KAAM,IAAI,OACN,gDAAgD,KAAK,2BAG3D,EAAI,YAAc,EAGlB,GAAM,GAAiB,KAAK,GAAG,QAAQ,KAAK,KAAK,eACjD,GAAI,GAAkB,KAAM,CAC1B,GAAM,GAAW,KAAK,MAAM,GAC5B,EAAI,OAAS,EAAS,OACtB,EAAI,YAAc,EAAS,YAC3B,EAAI,YAAc,EAAS,YACvB,EAAS,WAAgB,MAC3B,GAAI,UAAY,EAAS,WAEvB,EAAS,qBAA0B,MACrC,GAAI,oBAAsB,EAAS,qBAEjC,EAAS,kBAAuB,MAClC,GAAI,iBAAmB,EAAS,kBAKpC,GAAM,GAAmB,KAAK,GAAG,QAAQ,KAAK,KAAK,YACnD,GAAI,GAAoB,KACtB,KAAM,IAAI,OACN,wDACI,KAAK,2BAEf,SAAI,WAAa,GAA0B,GAEpC,IA1JO,GAAA,WAAa,kBA8JxB,GAAM,IAA+B,AAAC,GACtC,IAAM,QAAQ,eAGb,CAAC,MAAM,QAAQ,IAAQ,EAAI,WAAW,GAAoB,YACrD,GACH,EAAI,MAAM,GAAoB,WAAW,SAJxC,KAUX,GAAiB,mBAAmB,IACpC,GAAiB,mBAAmB,IA0B9B,YAA8B,EAAiB,CACnD,MAAO,IAAI,IAAoB,GAG3B,YAAiC,CAGrC,aAAA,CACE,EACI,IAAM,QAAQ,cACd,IAAM,4CACV,EACI,MAAO,SAAW,aACd,MAAO,QAAO,cAAiB,YACnC,IAAM,2DACV,KAAK,GAAK,OAAO,kBAGb,aAAU,CACd,GAAM,GAA4C,GAC5C,EAAS,GAAc,GACvB,EAAS,GAAiB,GAChC,OAAS,GAAI,EAAG,EAAI,KAAK,GAAG,OAAQ,EAAE,EAAG,CACvC,GAAM,GAAM,KAAK,GAAG,IAAI,GACxB,GAAI,EAAI,WAAW,IAAW,EAAI,SAAS,GAAS,CAClD,GAAM,GAAY,GAAoB,GACtC,EAAI,GAAa,KAAK,MAAM,KAAK,GAAG,QAAQ,KAGhD,MAAO,QAGH,aAAY,EAAY,CAC5B,EAAO,GAAiB,GACxB,GAAM,GAAO,GAAa,GAC1B,GAAI,KAAK,GAAG,QAAQ,EAAK,OAAS,KAChC,KAAM,IAAI,OAAM,8BAA8B,MAEhD,GAAM,GAAO,KAAK,MAAM,KAAK,GAAG,QAAQ,EAAK,OAE7C,YAAK,GAAG,WAAW,EAAK,MACxB,KAAK,GAAG,WAAW,EAAK,UACxB,KAAK,GAAG,WAAW,EAAK,aACxB,KAAK,GAAG,WAAW,EAAK,YACjB,ICtWX,AAiCA,GAAM,IAAoB,MAEpB,QAAgC,CAMpC,aAAA,CACE,KAAK,SAAW,SAGH,cAAW,CACxB,MAAI,IAA0B,UAAY,MACxC,IAA0B,SAAW,GAAI,KAEpC,GAA0B,eAS5B,iBAAgB,EAAgB,EAA0B,CAC/D,EAAO,GAAU,KAAM,IAAM,yCACzB,EAAO,SAAS,KAClB,GAAS,EAAO,MAAM,EAAG,EAAO,QAAQ,MAE1C,EAAO,EAAO,OAAS,EAAG,IAAM,uCAChC,GAAM,GAAW,GAA0B,cAC3C,EACI,EAAS,SAAS,IAAW,KAC7B,IAAM,2DACF,OACR,EAAS,SAAS,GAAU,QAGvB,YAAW,EAAc,CAC9B,GAAM,GAAU,KAAK,cAAc,SAAS,GAC5C,GAAI,GAAW,KACb,KAAM,IAAI,OAAM,yCAAyC,MAE3D,MAAO,SAGF,aAAU,CACf,MAAO,QAAO,KAAK,KAAK,cAAc,YAY1C,YAAkB,EAAW,CAC3B,GAAI,EAAI,QAAQ,MAAuB,GACrC,KAAM,IAAI,OACN,6EAEG,GAA0B,aAAa,KAAK,QAErD,MAAO,CACL,OAAQ,EAAI,MAAM,IAAmB,GACrC,KAAM,EAAI,MAAM,IAAmB,IAIvC,kBACI,EAAmB,EACnB,EAAe,GAAK,CACtB,EACI,IAAc,EACd,IAAM,wCAAwC,MAElD,GAAM,GAAe,GAAiB,gBAAgB,GACtD,EACI,EAAa,OAAS,EACtB,IAAM,kEACF,MACR,EACI,EAAa,OAAS,EACtB,IAAM,yCAAyC,EAAa,wCACxB,MACxC,GAAM,GAAc,EAAa,GAE3B,EAAe,GAAiB,gBAAgB,GACtD,EACI,EAAa,OAAS,EACtB,IAAM,uEACK,MACf,EACI,EAAa,OAAS,EACtB,IAAM,yCAAyC,EAAa,6CACnB,MAC7C,GAAM,GAAc,EAAa,GAE3B,EAAe,GAAS,GAAW,OACnC,EAAa,GAAS,GAAW,KACjC,EAAa,IAAiB,GAAS,GAAW,OAElD,EAAiB,KAAM,GAAY,OAKzC,AAAI,GAAgB,GAClB,KAAM,IAA0B,WAAW,GACtC,YAAY,GAGnB,GAAM,GAAa,KAAM,GAAY,KAAK,GAK1C,MAAI,IAAgB,CAAC,GACnB,KAAM,IAA0B,WAAW,GACtC,YAAY,GAGZ,EAAW,mBAsCpB,mBAAyB,CACvB,GAAM,GAAU,GAA0B,aACpC,EAA2C,GACjD,OAAW,KAAU,GAAS,CAC5B,GAAM,GACF,KAAM,IAA0B,WAAW,GAAQ,aACvD,OAAW,KAAQ,GAAW,CAC5B,GAAM,GAAM,EAAS,GAAoB,EACzC,EAAI,GAAO,EAAU,IAGzB,MAAO,GAoCT,kBAA2B,EAAW,CACpC,GAAM,GAAgB,GAAS,GAE/B,MAAO,AADS,IAA0B,WAAW,EAAc,QACpD,YAAY,EAAc,MAkD3C,kBACI,EAAmB,EAAe,CAEpC,MAAO,IAAmB,EAAW,EADhB,IAkDvB,kBACI,EAAmB,EAAe,CAEpC,MAAO,IAAmB,EAAW,EADhB,IC/VvB,AA0BM,YAAsB,CAK1B,MAAM,EAAc,EAAkB,CACpC,MAAO,OAAM,EAAM,GAGrB,KAAG,CACD,MAAO,aAAY,MAGrB,OAAO,EAAc,EAAgB,CACnC,GAAI,IAAa,SAAW,IAAa,OACvC,KAAM,IAAI,OACN,kDAAkD,KAExD,MAAI,MAAK,aAAe,MACtB,MAAK,YAAc,GAAI,cAElB,KAAK,YAAY,OAAO,GAEjC,OAAO,EAAmB,EAAgB,CACxC,MAAO,IAAI,aAAY,GAAU,OAAO,KAI5C,GAAI,IAAM,IAAI,cAAe,CAC3B,IAAM,YAAY,UAAW,GAAI,KAGjC,GAAI,CACF,GAA0B,gBACtB,GAAoB,WAAY,GAAI,WACjC,EAAP,EAIF,GAAI,CACF,GAA0B,gBACtB,GAAiB,WAAY,GAAI,WAC9B,EAAP,GCpEJ,AAqBO,GAAM,IAAe,CAE1B,YAAa,IAAc,MAIzB,GAaE,YAAmB,CAKvB,aAAA,CAEE,KAAK,KAAe,gBAGpB,KAAK,YAAc,GAAI,MAAK,KAAK,YAGnC,MAAM,EAAc,EAA0B,CAC5C,MAAI,KAAM,OAAO,OAAS,KACjB,IAAM,OAAO,MAAM,EAAM,GAG9B,KAAe,MACjB,IAAc,GAAa,eAEtB,GAAY,EAAM,IAG3B,KAAG,CACD,GAAM,GAAO,QAAQ,SACrB,MAAO,GAAK,GAAK,IAAO,EAAK,GAAK,IAGpC,OAAO,EAAc,EAAgB,CACnC,GAAI,IAAa,SAAW,IAAa,OACvC,KAAM,IAAI,OACN,sDAAsD,KAE5D,MAAO,MAAK,YAAY,OAAO,GAEjC,OAAO,EAAmB,EAAgB,CACxC,MAAI,GAAM,SAAW,EACZ,GAEF,GAAI,MAAK,KAAK,YAAY,GAAU,OAAO,KAItD,AAAI,IAAM,IAAI,YACZ,IAAM,YAAY,OAAQ,GAAI,KCrFhC,AA+CM,YACF,EAAoB,EAAW,UAC/B,EAAuB,CACzB,SAAQ,GAAS,UACjB,AAAK,GAAmC,GACjC,GAAI,IAAmB,EAAO,EAAO,GCpD9C,AAuCA,YAAiC,EAAiB,EAAe,CAC/D,GAAM,GAAK,EAAgB,EAAG,IAAK,QAGnC,GAAI,CAAC,AAAK,GAAa,GACrB,KAAM,IAAI,OAAM,mCAAmC,KAErD,GAAI,IAAU,UAAY,EAAG,QAAU,UACnC,IAAU,UAAY,EAAG,QAAU,SACrC,KAAM,IAAI,OAAM,yCAGlB,GAAM,GAAqB,CAAC,EAAG,GACzB,EAAmB,CAAC,SAE1B,MAAO,GAAO,UACV,GAAM,EAAgC,GAGrC,GAAM,IAAO,EAAG,CAAC,WC1DxB,AAwCA,YAAkC,EAAe,CAE/C,GAAM,GAAyB,CAAC,EADrB,EAAgB,EAAG,IAAK,QAAS,sBAK5C,MAAO,GAAO,UAAU,GAAU,GAG7B,GAAM,IAAQ,EAAG,CAAC,YCjDzB,AAgCM,YAAkC,EAAM,EAAU,GAAK,CAC3D,QAAQ,IAAI,EAAE,SAAS,ICjCzB,AAqBA,KAcA,GAAM,IAAuB,CAC3B,UACA,QACA,SACA,UAEF,GAAa,ICzCb,+cCAA,AA6BA,GAAM,IAA2B,QAC3B,GAA8B,QAC9B,GAAqC,eAE3C,YAAkB,EAAU,CAC1B,MAAO,IAAI,SAAQ,GAAW,WAAW,IAAU,KAAK,GAGpD,YAAuB,CAQ3B,YAAY,EAAuB,CACjC,GAAI,CAAC,IAAM,QAAQ,cAGjB,KAAM,IAAI,OACN,uFAIN,AAAI,EAAe,WAAW,GAAiB,aAC7C,GAAiB,EAAe,MAAM,GAAiB,WAAW,SAEhE,IAAkB,MAAQ,EAAe,SAAW,IACtD,GAAiB,IAGnB,KAAK,sBAAwB,EAAiB,GAC9C,KAAK,mBACD,EAAiB,QAGjB,MAAK,EAA8B,CACvC,GAAI,MAAQ,WAAc,YACxB,KAAM,IAAI,OACN,2FAGN,GAAM,GAAa,OAAO,IAAI,gBAAgB,GAAI,MAC9C,CAAC,EAAe,YAAa,CAAC,KAAM,8BAExC,GAAI,EAAe,wBAAyB,aAC1C,KAAM,IAAI,OACN,yFAEC,CACL,GAAM,GAAyC,CAAC,CAC9C,MAAO,CAAC,KAAO,KAAK,oBACpB,QAAS,EAAe,cAEpB,EAA4C,CAChD,cAAe,EAAe,cAC9B,OAAQ,EAAe,OACvB,YAAa,EAAe,YAC5B,YAAa,EAAe,YAC5B,mBAEF,AAAI,EAAe,WAAa,MAC9B,GAA+B,UAAY,EAAe,WAExD,EAAe,qBAAuB,MACxC,GAA+B,oBAC3B,EAAe,qBAEjB,EAAe,kBAAoB,MACrC,GAA+B,iBAC3B,EAAe,kBAErB,GAAM,GACF,OAAO,IAAI,gBAAgB,GAAI,MAC3B,CAAC,KAAK,UAAU,IAChB,CAAC,KAAM,sBAIT,EAAa,KAAK,YAAc,KAAO,SAAS,cAAc,KACvB,KAAK,WAQlD,GAPA,EAAW,SAAW,KAAK,sBAC3B,EAAW,KAAO,EAIlB,KAAM,IAAM,IAAM,EAAW,cAAc,GAAI,YAAW,WAEtD,EAAe,YAAc,KAAM,CACrC,GAAM,GAAmB,KAAK,kBAAoB,KAC9C,SAAS,cAAc,KACvB,KAAK,iBACT,EAAiB,SAAW,KAAK,mBACjC,EAAiB,KAAO,EACxB,KAAM,IACF,IAAM,EAAiB,cAAc,GAAI,YAAW,WAG1D,MAAO,CAAC,mBAAoB,GAA6B,OArF7C,GAAA,WAAa,eA0F/B,YAAkB,CAGhB,YAAY,EAAa,CACvB,GAAI,GAAS,MAAQ,EAAM,OAAS,EAClC,KAAM,IAAI,OACN,wEACgB,KAEtB,KAAK,MAAQ,OAGT,OAAI,CACR,GAAM,GAAW,KAAK,MAAM,GACtB,EAAc,KAAK,MAAM,MAAM,GAErC,MAAO,IAAI,SAAwB,CAAC,EAAS,IAAU,CACrD,GAAM,GAAa,GAAI,YACvB,EAAW,OAAS,AAAC,GAAgB,CAEnC,GAAM,GAAY,KAAK,MAAO,EAAM,OAAe,QAC7C,EAAgB,EAAU,cAChC,GAAI,GAAiB,KAAM,CACzB,EAAO,GAAI,OACP,4CAA4C,EAAS,SACzD,OAGF,AAAI,EAAY,SAAW,GACzB,EAAQ,CAAC,kBAGX,GAAM,GAAkB,EAAU,gBAClC,GAAI,GAAmB,KAAM,CAC3B,EAAO,GAAI,OACP,6CAA6C,EAAS,SAC1D,OAGF,GAAI,GACJ,GAAI,CACF,EACI,KAAK,4BAA4B,EAAiB,SAC/C,EAAP,CACA,EAAO,GACP,OAGF,GAAM,GAAsC,GACtC,EAAkB,GAClB,EAAgC,GACtC,EAAgB,QAAQ,GAAe,CACrC,EAAa,MAAM,QAAQ,GAAO,CAChC,EAAM,KAAK,GACX,EAAe,KAAK,QAEtB,EAAY,KAAK,GAAG,EAAa,WAGnC,EAAgB,QAAQ,GAAe,CACrC,EAAa,MAAM,QAAQ,GAAO,CAChC,GAAM,GAAmB,GAAI,YAC7B,EAAiB,OAAS,AAAC,GAAgB,CAEzC,GAAM,GAAc,EAAM,OAAe,OACnC,EAAQ,EAAM,QAAQ,GAE5B,GADA,EAAe,GAAS,EACpB,EAAe,QAAQ,QAAU,GAAI,CACvC,GAAM,GAAyB,CAC7B,gBACA,cACA,WAAY,GAAwB,GACpC,OAAQ,EAAU,OAClB,YAAa,EAAU,YACvB,YAAa,EAAU,aAEzB,AAAI,EAAU,WAAa,MACzB,GAAO,UAAY,EAAU,WAE3B,EAAU,qBAAuB,MACnC,GAAO,oBAAsB,EAAU,qBAErC,EAAU,kBAAoB,MAChC,GAAO,iBAAmB,EAAU,kBAEtC,EAAQ,KAGZ,EAAiB,QAAU,GACvB,EAAO,6CAA6C,OACxD,EAAiB,kBAAkB,EAAW,SAIpD,EAAW,QAAU,GAAS,EAC1B,sEACc,EAAS,6EAE3B,EAAW,WAAW,KAOlB,4BACJ,EAAiC,EAAa,CAChD,GAAM,GAAsB,GACtB,EAAY,EAAM,IAAI,GAAQ,GAAS,EAAK,OAC5C,EAAqC,GAC3C,OAAW,KAAS,GAClB,EAAM,MAAM,QAAQ,GAAO,CACzB,GAAM,GAAe,GAAS,GAC9B,GAAI,EAAU,QAAQ,KAAkB,GACtC,KAAM,IAAI,OACN,uDACI,MAGV,GADA,EAAU,KAAK,GACX,EAAU,QAAQ,KAAkB,GACtC,KAAM,IAAI,OACN,8BAA8B,uBAElC,EAAW,GAAQ,EAAM,EAAU,QAAQ,MAKjD,GAAI,EAAU,SAAW,EAAM,OAC7B,KAAM,IAAI,OACN,wDACI,EAAU,oDACV,EAAM,YAEhB,MAAO,KAIE,GAAmC,AAAC,GAC1C,IAAM,QAAQ,eAGb,CAAC,MAAM,QAAQ,IAAQ,EAAI,WAAW,GAAiB,YAClD,GAAiB,EAAI,MAAM,GAAiB,WAAW,SAHzD,KASX,GAAiB,mBAAmB,IAyC9B,YAA2B,EAAiB,QAAO,CACvD,MAAO,IAAI,IAAiB,GA2CxB,YAAuB,EAAa,CACxC,MAAO,IAAI,IAAa,GChX1B,AA6BM,YACF,EAAmC,EACnC,EAAwB,EAAoB,CAC9C,EAAc,GACd,EAAgB,GAAiB,KAAO,EAAI,EAC5C,EAAc,GAAe,KAAO,EAAI,EACxC,EAAc,EAAe,GAC7B,GAAI,GAAkB,EAEhB,EAAkB,AAAC,GACvB,GAAQ,KAAK,GAAQ,CACnB,GAAM,GAAW,EACb,GAAE,EAAkB,EAAS,OAAU,GAAc,GAEzD,SAAW,GACJ,IAEF,GAGT,WAAuB,EAAiC,CACtD,EACI,GAAY,MAAQ,MAAM,QAAQ,IAAa,EAAS,OAAS,EACjE,IAAM,uCAGZ,WAAuB,EAAuB,EAAmB,CAC/D,EACI,GAAiB,GAAK,GAAiB,EACvC,IAAM,oEACmB,KAC7B,EACI,GAAe,GAAK,GAAe,EACnC,IAAM,kEACiB,KAC3B,EACI,GAAe,EACf,IAAM,yEACmB,qBAClB,KAGb,MAAO,SAAQ,IAAI,EAAS,IAAI,ICvElC,AAoCA,kBACI,EAAqB,EAAyB,CAChD,AAAI,GAAe,MACjB,GAAc,IAGhB,GAAM,GAAY,EAAY,WAAa,KAAO,IAAM,SAAS,MACf,EAAY,UAGxD,EAAW,EAAU,IACvB,GACI,EAAU,EAAU,EAAY,YAAa,CAAC,SAAU,MAE1D,EAAqB,EACrB,EAAmB,GAQnB,EAAiB,AANL,GAAY,YAAc,KACxC,KAAM,SAAQ,IAAI,GAClB,KAAM,IACF,EAAU,EAAY,WAAY,EAClC,IAEyB,IAAI,GAAY,EAAS,eAEpD,EAAsB,GACtB,EAAoB,EAO1B,MALgB,GAAY,YAAc,KACtC,KAAM,SAAQ,IAAI,GAClB,KAAM,IACF,EAAgB,EAAY,WAAY,EACxC,GAaV,kBACI,EAAiC,EAAiB,GAClD,EACA,EAAyB,CAW3B,MAAO,AAFa,IAFC,AAAC,GAClB,GAAyB,EAAW,CAAC,iBAGtB,EAAU,EAAgB,GA2BzC,YACF,EAAqE,CAGvE,MAAO,OACI,EAAiC,EAAiB,GAClD,IAAmD,CAG5D,GAAM,GAAyB,EAAS,IAAI,IAAM,IAC5C,EAKF,GACE,EACF,GAAe,KAAO,EAAY,IAAI,IAAM,IAAS,GACnD,EAAmC,GAwCzC,GAvCA,EAAS,QAAQ,CAAC,EAAqB,IAAc,CACnD,GAAI,GAAc,EAClB,EAAoB,QAAQ,QAAQ,GAAe,CACjD,GAAM,GAAY,gBAAkB,GAChC,EAAa,aAAa,MAC1B,EAAa,MAEX,EAAe,GAAqB,GACtC,AAAK,GAAc,EAAa,OAE9B,EAA8B,IAAK,CACvC,EAAuB,GAAc,GACjC,EAAoB,IAAe,MACrC,GAAoB,GAAc,IAGpC,EAAoB,GAAY,KAAK,CACnC,cAAe,EACf,cACA,UAAW,KAIf,AAAI,GAAe,KACjB,EAAY,QAAQ,CAAC,EAAY,IAAe,CAC9C,AAAI,IAAe,EAAa,MAC9B,KACA,EAAa,GAAe,MAIhC,IAGF,EAAuB,KAAK,EAAa,MACzC,GAAe,MAIf,CAAC,EAAa,MAAM,GAAS,GAAQ,CACvC,GAAM,GAAkB,EAAY,OAAO,CAAC,EAAG,IAAM,CAAC,EAAa,IACnE,KAAM,IAAI,OACN,kDACG,EAAgB,KAAK;wCAErB,EAAuB,KAAK,UAKrC,GAAM,GACF,EAAuB,OAAO,CAAC,EAAa,EAAa,IACnD,IACF,EAAY,KAAK,GAEZ,GACN,IAED,EAAsB,GAC5B,EAAoB,QAAQ,GAAI,CAC9B,EAAS,GAAG,MAAM,QAAQ,GAAW,CACnC,GAAM,GAAW,EACZ,CAAC,EAAe,SAAS,KAAa,GAAN,KAAY,EACjD,EAAU,KAAK,OAGnB,GAAM,GAAU,KAAM,GAAqB,GAErC,EAAmC,GACrC,EAAoB,EACxB,SAAoB,QAAQ,GAAI,CAC9B,GAAM,GAAa,EAAS,GAAG,MAAM,OAEjC,EAAa,EACjB,OAAS,GAAI,EAAG,EAAI,EAAY,IAC9B,GAAc,EAAQ,EAAoB,GAAG,WAI/C,GAAM,GAAc,GAAI,aAAY,GAC9B,EAAkB,GAAI,YAAW,GACnC,EAAoB,EACxB,OAAS,GAAI,EAAG,EAAI,EAAY,IAAK,CACnC,GAAM,GAAS,GAAI,YAAW,EAAQ,EAAoB,IAC1D,EAAgB,IAAI,EAAQ,GAC5B,GAAqB,EAAO,WAI9B,AADuB,EAAoB,GAC5B,QAAQ,GAAe,CACpC,GAAM,GAAa,EAAY,MAC3B,EAAa,YACb,EAAa,YAAc,EAAa,WACtC,EACF,GAAc,EAAY,CAAC,EAAa,gBAC5C,OAAW,KAAQ,GACjB,EAAiB,GAAQ,EAAgB,KAI7C,GAAqB,IAGhB,GCpPX,AA+BA,GAAM,IAAyB,2BACzB,GAAY,mBACZ,QAAkB,CActB,YAAY,EAAc,EAAyB,CAgCjD,GAvCO,KAAA,eAAiB,OAQpB,GAAe,MACjB,GAAc,IAEhB,KAAK,iBAAmB,EAAY,iBACpC,KAAK,WAAa,EAAY,WAC9B,KAAK,mBAAqB,EAAY,mBAEtC,AAAI,EAAY,WAAa,KAC3B,GACI,MAAO,GAAY,WAAc,WACjC,IAAM,+HAGV,KAAK,MAAQ,EAAY,WAEzB,KAAK,MAAQ,IAAM,SAAS,MAG9B,EACI,GAAQ,MAAQ,EAAK,OAAS,EAC9B,IAAM,2DAGN,MAAM,QAAQ,IAChB,EACI,EAAK,SAAW,EAChB,IAAM,iEACmB,EAAK,YAEpC,KAAK,KAAO,EAER,EAAY,aAAe,MAC3B,EAAY,YAAY,MAAQ,KAClC,KAAM,IAAI,OACN,sEAEN,KAAK,YAAc,EAAY,aAAe,QAG1C,MAAK,EAA8B,CACvC,GAAI,EAAe,wBAAyB,aAC1C,KAAM,IAAI,OACN,2FAIN,GAAM,GAAO,OAAO,OAAO,CAAC,OAAQ,KAAK,gBAAiB,KAAK,aAC/D,EAAK,KAAO,GAAI,UAEhB,GAAM,GAAyC,CAAC,CAC9C,MAAO,CAAC,uBACR,QAAS,EAAe,cAEpB,EAA4C,CAChD,cAAe,EAAe,cAC9B,OAAQ,EAAe,OACvB,YAAa,EAAe,YAC5B,YAAa,EAAe,YAC5B,mBAEF,AAAI,EAAe,WAAa,MAC9B,GAA+B,UAAY,EAAe,WAExD,EAAe,qBAAuB,MACxC,GAA+B,oBAC3B,EAAe,qBAEjB,EAAe,kBAAoB,MACrC,GAA+B,iBAC3B,EAAe,kBAGrB,EAAK,KAAK,OACN,aACA,GAAI,MACA,CAAC,KAAK,UAAU,IAChB,CAAC,KAAM,KACX,cAEA,EAAe,YAAc,MAC/B,EAAK,KAAK,OACN,oBACA,GAAI,MAAK,CAAC,EAAe,YAAa,CAAC,KAAM,KAC7C,qBAGN,GAAM,GAAW,KAAM,MAAK,MAAM,KAAK,KAAM,GAE7C,GAAI,EAAS,GACX,MAAO,CACL,mBAAoB,GAA6B,GACjD,UAAW,CAAC,IAGd,KAAM,IAAI,OACN,gEACG,EAAS,gBAYd,OAAI,CACR,GAAM,GAAqB,KAAM,MAAK,MAAM,KAAK,KAAM,KAAK,aAE5D,GAAI,CAAC,EAAmB,GACtB,KAAM,IAAI,OACN,cAAc,KAAK,gCAChB,EAAmB,iFAG5B,GAAI,GACJ,GAAI,CACF,EAAc,KAAM,GAAmB,aAChC,EAAP,CACA,GAAI,GAAU,+CAA+C,KAAK,QAGlE,KAAI,MAAK,KAAK,SAAS,OACrB,GAAW,+UAOX,GAAW,uEAGP,GAAI,OAAM,GAElB,GAAM,GAAgB,EAAY,cAC5B,EAAkB,EAAY,gBAC9B,EAAc,EAAY,YAC1B,EAAc,EAAY,YAC1B,EAAS,EAAY,OACrB,EAAY,EAAY,UACxB,EAAsB,EAAY,oBAGxC,GAAI,GAAiB,MAAQ,GAAmB,KAC9C,KAAM,IAAI,OACN,2BAA2B,KAAK,iEAItC,GAAI,GACA,EACJ,AAAI,GAAmB,MAErB,EAAC,EAAa,GADE,KAAM,MAAK,YAAY,IAIzC,GAAM,GAA4B,CAChC,gBACA,cACA,aACA,cACA,cACA,UAGF,AAAI,GAAa,MACf,GAAU,UAAY,GAEpB,GAAuB,MACzB,GAAU,oBAAsB,GAGlC,GAAM,GAAc,EAAY,iBAChC,MAAI,IACF,GAAU,iBAAmB,GAGxB,OAGK,aAAY,EAAsC,CAE9D,GAAM,GAAa,MAAM,QAAQ,KAAK,MAAQ,KAAK,KAAK,GAAK,KAAK,KAC5D,CAAC,EAAQ,GAAU,GAAS,GAC5B,EAAa,KAAK,kBAAoB,EAEtC,EAAc,GACpB,OAAW,KAAS,GAClB,EAAY,KAAK,GAAG,EAAM,SAG5B,GAAM,GAAsB,GACtB,EAAsC,GAC5C,OAAW,KAAgB,GACzB,OAAW,KAAQ,GAAa,MAC9B,AAAI,KAAK,oBAAsB,KAC7B,EAAY,KAAK,KAAK,mBAAmB,IAEzC,EAAU,KAAK,EAAa,EAAO,GAKzC,AAAI,KAAK,oBACP,EAAU,KAAK,GAAG,KAAM,SAAQ,IAAI,IAGtC,GAAM,GAAU,KAAM,IAAyB,EAAW,CACxD,YAAa,KAAK,YAClB,UAAW,KAAK,MAChB,WAAY,KAAK,aAEnB,MAAO,CAAC,EAAa,GAAwB,MA7N/B,GAAA,iBAAmB,eA4O/B,YAAmB,EAAW,CAClC,GAAM,GAAY,EAAI,YAAY,KAC5B,EAAkB,EAAI,YAAY,KAClC,EAAS,EAAI,UAAU,EAAG,GAC1B,EACF,EAAkB,EAAY,EAAI,UAAU,GAAmB,GACnE,MAAO,CAAC,EAAS,IAAK,GAGlB,YAAuB,EAAW,CACtC,MAAO,GAAI,MAAM,GAAY,mBAAqB,KAG7C,GAAM,IACT,CAAC,EAAa,IAA6B,CACzC,GAAI,MAAO,QAAU,aAChB,IAAe,MAAQ,EAAY,WAAa,MAInD,MAAO,MACF,CACL,GAAI,GAAS,GAMb,GALA,AAAI,MAAM,QAAQ,GAChB,EAAS,EAAI,MAAM,GAAW,GAAa,IAE3C,EAAS,GAAa,GAEpB,EACF,MAAO,IAAK,EAAK,GAGrB,MAAO,OAEb,GAAiB,mBAAmB,IACpC,GAAiB,mBAAmB,IAwE9B,YAAe,EAAc,EAAyB,CAC1D,MAAO,IAAI,IAAY,EAAM,GAQzB,YACF,EAAc,EAAyB,CACzC,MAAO,IAAK,EAAM,GC5YpB,AAuBA,YAAuB,CACrB,YAA6B,EAA+B,CAA/B,KAAA,eAAA,OAEvB,OAAI,CACR,MAAO,MAAK,iBAIhB,QAAsB,CACpB,YACqB,EACqC,CADrC,KAAA,YAAA,OAGf,MAAK,EAA8B,CACvC,MAAO,MAAK,YAAY,KAyBtB,YACF,EAAmC,EACnC,EAA0B,EAA+B,CAC3D,MAAI,WAAU,SAAW,EAElB,EAAkC,eAAiB,MACnD,EAAkC,aAAe,KAE7C,GAAI,IAAkB,GAI7B,SAAQ,KACJ,yNAIG,GAAI,IAAkB,CAAC,cAAe,KAK/C,SAAQ,KACJ,yNAIG,GAAI,IAAkB,CAC3B,cAAe,EACf,cACA,aACA,oBAoBA,YACF,EACuB,CACzB,MAAO,IAAI,IAAiB,GLpH9B,AMAA,0CCAA,AA2CA,YACI,EAAsB,EAAsB,EAAa,GACzD,EAAa,GAAK,CACpB,GAAI,GAAK,EAAgB,EAAG,IAAK,UAC7B,EAAK,EAAgB,EAAG,IAAK,UACjC,CAAC,EAAI,GAAM,GAAe,EAAI,GAE9B,GAAM,GAA4B,CAAC,EAAG,EAAI,EAAG,GACvC,EAA0B,CAAC,aAAY,cAE7C,MAAO,GAAO,UACV,GAAa,EAAgC,GAG5C,GAAM,IAAS,EAAG,CAAC,aCzD1B,AA8CA,YACI,EAA4B,EAAe,EAAU,EACrD,EAAW,EAAC,CACd,GAAI,EAAQ,EACV,KAAM,IAAI,OAAM,iDAAiD,KAInE,GAAM,GAAuB,CAAC,QAFb,EAAgB,EAAS,UAAW,SAAU,UAGzD,EAAqB,CAAC,QAAO,UAAS,YAE5C,MAAO,GAAO,UACV,GAAQ,EACR,GAGC,GAAM,IAAS,EAAG,CAAC,aC9D1B,AA+CA,YAAsC,EAAiB,EAAe,CACpE,GAAM,GAAK,EAAgB,EAAG,IAAK,aAgBnC,GAdI,GAAQ,MACV,GAAO,EAAG,MAAM,IAAI,CAAC,EAAG,IAAM,GAAG,WAEnC,AAAK,EACD,EAAG,OAAS,EAAK,OACjB,IAAM,qCAAqC,EAAG,kCACb,MACrC,EAAK,QAAQ,GAAO,CAClB,AAAK,EACD,GAAQ,GAAK,EAAO,EAAG,KACvB,IAAM,+CAA+C,EAAG,KAAO,aAC/C,OAGlB,EAAG,MAAQ,EACb,MAAO,GAAG,QAGZ,GAAM,GAA0B,CAAC,EAAG,GAC9B,EAAwB,CAAC,QAE/B,MAAO,GAAO,UACV,GAAW,EAAgC,GAG1C,GAAM,IAAY,EAAG,CAAC,gBC3E7B,AAyDM,YACF,EAA6B,EAC7B,EAAkB,CACpB,GAAM,GAAU,EAAgB,EAAQ,SAAU,mBAC5C,EACF,EAAgB,EAAa,cAAe,mBAEhD,AAAK,EACD,GAAc,MAAQ,EAAa,GAAK,OAAO,UAAU,GACzD,IAAM,+DACS,KACnB,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,gDAAgD,EAAQ,QAClE,AAAK,EACD,EAAa,OAAS,EACtB,IAAM,qDACS,EAAa,QAChC,AAAK,EACD,EAAQ,MAAM,KAAO,EAAa,MAAM,GACxC,IAAM,uCACC,EAAQ,MAAM,UAAU,EAAa,MAAM,uEAEtD,AAAK,EACD,EAAa,GAAK,OAAO,UAAU,GACnC,IAAM,4DACC,KAIX,GAAM,GAAe,GAAO,GAAK,EAAS,SAAU,GAC9C,EACF,GAAO,GAAK,EAAc,SAAU,GAClC,EAA0B,GAAU,GACpC,EAAoB,GAAO,EAAe,GAChD,MAAO,IAAK,EAAS,SAGhB,GAAM,IAAkB,EAAG,CAAC,sBJ/FnC,AKAA,4ECAA,AA+CM,YACF,EAAsB,EACtB,EAAgB,CAElB,GADA,GAAc,GACV,GAAS,MAAQ,EAAM,SAAW,EACpC,KAAM,IAAI,OAAM,mDAElB,GAAM,GAAgB,GAAW,EAAQ,GACzC,GAAI,EAAc,SAAW,GAAK,EAAc,SAAW,EACzD,KAAM,IAAI,OACN,oEAEN,GAAI,EAAc,SAAW,GAAK,GAAS,KACzC,KAAM,IAAI,OACN,2EAGN,MAAO,IAAW,EAAQ,EAAO,EAAe,GDhElD,AA8BA,GAAI,IA2BJ,YACI,EAEA,EAAc,EAAC,CAEjB,GAAI,EAAc,EAChB,KAAM,IAAI,OACN,kEAEN,GAAI,GAAU,KACZ,KAAM,IAAI,OAAM,4DAElB,GAAI,GAAc,GACd,EAAc,GACd,EAAU,GACV,EAAU,GACV,EAAe,GACf,EAAgB,GACpB,GAAK,EAAqB,eAAgB,YACxC,EAAc,WAEZ,MAAQ,YAAe,aAAe,YAAkB,WAC1D,EAAc,WAEZ,MAAQ,mBAAsB,aAC9B,YAAkB,kBACpB,EAAU,WAER,MAAQ,mBAAsB,aAC9B,YAAkB,kBACpB,EAAU,WAEA,EAAe,YAAc,KACvC,EAAe,WAEb,MAAQ,cAAiB,aAAe,YAAkB,aAC5D,EAAgB,OAEhB,MAAM,IAAI,OACN,qPAIY,EAAc,YAAY,QAE5C,GAAI,EAAS,CACX,GAAM,GAAgC,EACtC,GAAI,GACC,EAA4B,WACzB,EACN,KAAM,IAAI,OACN,yGAOR,GAAI,AADW,GAAU,GAAY,EAAO,cAC9B,KAAM,CAClB,GAAM,GAA2B,CAAC,UAC5B,EAAyB,CAAC,eAChC,MAAO,GAAO,UACV,GAAY,EACZ,GAGN,GAAM,CAAC,EAAO,GAAU,EACpB,CACG,EAA4B,WAC5B,EAA4B,aAE/B,CAAC,EAAO,MAAO,EAAO,QACtB,EAEJ,AAAI,EACF,EAEK,EAAe,WAAW,MAAM,aAAa,EAAG,EAAG,EAAO,GAAQ,KAClE,AAAI,GAAe,EACxB,EAAQ,EAAiC,KAChC,IAAW,GAAW,IAC3B,KAAuB,MACzB,IAAsB,SAAS,cAAc,UAAU,WAAW,OAEpE,GAAoB,OAAO,MAAQ,EACnC,GAAoB,OAAO,OAAS,EACpC,GAAoB,UAChB,EAA4B,EAAG,EAAG,EAAO,GAC7C,EAAO,GAAoB,aAAa,EAAG,EAAG,EAAO,GAAQ,MAE/D,GAAI,GACJ,GAAI,IAAgB,EAClB,EAAS,GAAI,YAAW,OACnB,CACL,GAAM,GAAY,EAAQ,EAC1B,EAAS,GAAI,YAAW,EAAY,GACpC,OAAS,GAAI,EAAG,EAAI,EAAW,IAC7B,OAAS,GAAU,EAAG,EAAU,EAAa,EAAE,EAC7C,EAAO,EAAI,EAAc,GAAW,EAAK,EAAI,EAAI,GAKvD,MAAO,IAAS,EAD2B,CAAC,EAAQ,EAAO,GACzB,SAKpC,YAAqB,EAEW,CAC9B,MAAQ,IAAU,MAAW,EAAqB,eAAgB,YAGpE,aAAoC,CAClC,MAAO,OAAO,SAAW,aACrB,MAAQ,cAAiB,aACzB,OAAO,eAAe,qBAG5B,YAA0B,EAC8C,CACtE,MAAO,IAAU,MAAQ,EAAO,QAAU,GAAK,EAAO,SAAW,EAGnE,YAAoC,EAE4B,CAC9D,MAAO,OAAiC,CAAE,aAAkB,eACxD,GAAiB,IAAW,CAAC,GAAY,GA6B/C,kBACI,EAEA,EAAc,EAAC,CACjB,GAAI,GAC+B,KAInC,GAAI,IAAM,QAAQ,wBACd,GAA2B,GAAS,CAGtC,GAAI,GAEJ,GAAI,CAKF,EAAc,KAAO,mBACjB,EAA6B,CAAC,iBAAkB,eAC7C,EAAP,CACA,EAAc,KAShB,AAAI,GAAe,MAAQ,EAAY,QAAU,EAAO,OACpD,EAAY,SAAW,EAAO,OAChC,EAAS,EAET,EAAS,MAGX,GAAS,EAGX,MAAO,IAAY,EAAQ,GAuB7B,kBACI,EACA,EAA0B,CAC5B,GAAI,GAAO,EAAgB,EAAK,MAAO,YACvC,GAAI,CAAE,aAAe,KAAS,CAE5B,GAAM,GAAoB,EAC1B,EAAO,GAAK,EAAmB,SAC/B,EAAkB,UAEpB,GAAI,EAAK,OAAS,GAAK,EAAK,OAAS,EACnC,KAAM,IAAI,OACN,wDAAwD,EAAK,SAEnE,GAAM,CAAC,EAAQ,GAAS,EAAK,MAAM,MAAM,EAAG,GACtC,EAAQ,EAAK,OAAS,EAAI,EAAI,EAAK,MAAM,GAE/C,GAAI,EAAQ,GAAK,IAAU,EACzB,KAAM,IAAI,OACN,0DACqB,KAG3B,GAAI,EAAK,QAAU,WAAa,EAAK,QAAU,QAC7C,KAAM,IAAI,OACN,kCAAkC,EAAK,+CAI7C,GAAM,GAAO,KAAM,GAAK,OAClB,EAAa,EAAK,QAAU,UAAY,IAAM,EAC9C,EAAQ,GAAI,mBAAkB,EAAQ,EAAS,GAErD,OAAS,GAAI,EAAG,EAAI,EAAS,EAAO,EAAE,EAAG,CACvC,GAAM,GAAO,CAAC,EAAG,EAAG,EAAG,KAEvB,OAAS,GAAI,EAAG,EAAI,EAAO,IAAK,CAC9B,GAAM,GAAQ,EAAK,EAAI,EAAQ,GAE/B,GAAI,EAAK,QAAU,WACjB,GAAI,EAAQ,GAAK,EAAQ,EACvB,KAAM,IAAI,OACN,mFACiC,cAE9B,EAAK,QAAU,SACpB,GAAQ,GAAK,EAAQ,KACvB,KAAM,IAAI,OACN,mFACmC,MAI3C,AAAI,IAAU,EACZ,GAAK,GAAK,EAAQ,EAClB,EAAK,GAAK,EAAQ,EAClB,EAAK,GAAK,EAAQ,GAElB,EAAK,GAAK,EAAQ,EAItB,GAAM,GAAI,EAAI,EACd,EAAM,EAAI,GAAK,KAAK,MAAM,EAAK,IAC/B,EAAM,EAAI,GAAK,KAAK,MAAM,EAAK,IAC/B,EAAM,EAAI,GAAK,KAAK,MAAM,EAAK,IAC/B,EAAM,EAAI,GAAK,KAAK,MAAM,EAAK,IAGjC,GAAI,GAAU,KAAM,CAClB,EAAO,MAAQ,EACf,EAAO,OAAS,EAChB,GAAM,GAAM,EAAO,WAAW,MACxB,EAAY,GAAI,WAAU,EAAO,EAAO,GAC9C,EAAI,aAAa,EAAW,EAAG,GAEjC,MAAI,KAAS,GACX,EAAK,UAEA,EAGF,GAAM,IAAa,EAAG,CAAC,iBEzV9B,6CAUM,YAA6B,EAAoB,EAAmB,CAExE,GAAM,GAAa,EAAO,MAAM,OAC1B,EAAc,EAAQ,MAAM,OAClC,GAAI,EAAa,EACf,KAAM,IAAI,OACN,4EACqB,MAE3B,GAAI,EAAc,EAChB,KAAM,IAAI,OACN,8EACqB,MAE3B,GAAI,EAAQ,QAAU,QACpB,KAAM,IAAI,OACN,yEACsB,EAAQ,UAEpC,GAAI,EAAQ,MAAM,EAAc,GAAK,EACnC,KAAM,IAAI,OACN,iEACG,EAAQ,MAAM,EAAc,UAAU,KAG/C,GAAI,GAAc,EAAO,SAAW,EAClC,KAAM,IAAI,OACN,mEACiB,EAAO,UAG9B,GAAM,GAAe,EAAQ,MACvB,EAAY,EAAa,EAAa,OAAS,GAIjD,EAAU,EACd,OAAS,GAAI,EAAG,EAAI,EAAa,OAAS,EAAG,EAAE,EAC7C,GAAW,EAAa,GAG1B,GAAM,GAAa,EAAO,MAEpB,EAAc,EAAa,QACjC,EAAY,MAEZ,GAAI,GAAY,EAChB,OAAS,GAAI,EAAW,EAAI,EAAY,EAAE,EACxC,GAAa,EAAW,GACxB,EAAY,KAAK,EAAW,IAG9B,GAAM,GACF,CAAC,GAAG,GAAe,EAAO,OAAO,IAAI,GAAU,EAAS,GACvD,GAAG,MAAM,EAAG,GAEjB,MAAO,CAAC,EAAa,EAAS,EAAW,GCjE3C,0FAQM,YACF,EAAiB,EAAiB,EAAe,CACnD,GAAM,GAAY,EAAQ,KAAO,EAAK,EAAQ,MAAM,EAAQ,KAAO,GAAK,EAClE,EAAY,EAAQ,KAAO,EAAK,EAAQ,KAAO,EAAI,EAEnD,EAAa,6FACyB,EAAQ,yBAC5B,EAAQ,iBAAiB,gBAC9B,oBAA2B,KAE9C,GAAI,EAAQ,KAAO,EACjB,KAAM,IAAI,OAAM,EAAa,kBAAkB,OAEjD,GAAI,EAAM,OAAS,EAAY,GAAQ,KAAO,GAC5C,KAAM,IAAI,OACN,EACA,0BAA0B,EAAY,GAAQ,KAAO,MAE3D,GAAI,EAAQ,OAAS,EAAW,EAAM,OAAS,EAC7C,KAAM,IAAI,OACN,EAAa,mBAAmB,EAAW,EAAM,OAAS,KAEhE,OAAS,GAAI,EAAG,EAAI,EAAU,EAAE,EAC9B,GAAI,EAAQ,MAAM,KAAO,EAAQ,MAAM,GACrC,KAAM,IAAI,OACN,EACA,kBAAkB,OAAO,EAAQ,MAAM,wBAAwB,OAC3D,EAAQ,MAAM,QAG1B,OAAS,GAAI,EAAG,EAAI,EAAQ,KAAO,EAAU,EAAE,EAC7C,GAAI,EAAQ,MAAM,EAAI,KAAc,EAAM,EAAI,GAC5C,KAAM,IAAI,OACN,EACA,kBAAkB,EAAI,OAClB,EAAQ,MAAM,EAAI,gBAAuB,EAAI,OAC7C,EAAM,EAAI,OAmBlB,YACF,EAAiB,EAAiB,EAAe,CACnD,GAAI,EAAQ,KAAO,EACjB,KAAM,IAAI,OACN,+EACqB,EAAQ,SAEnC,GAAI,EAAQ,KAAO,EACjB,KAAM,IAAI,OACN,+EACqB,EAAQ,SAEnC,GAAI,EAAQ,QAAU,QACpB,KAAM,IAAI,OAAM,0DACZ,EAAQ,SAEd,GAAI,EAAM,OAAS,EACjB,KAAM,IAAI,OACN,6DAA6D,KAGnE,GAAI,EAAM,SAAW,EAAG,CACtB,GAAI,EAAQ,OAAS,EACnB,KAAM,IAAI,OAAM,sDACZ,EAAQ,SAEd,GAAI,EAAQ,OAAS,EACnB,KAAM,IAAI,OAAM,sDACZ,EAAQ,SAIhB,GAAoB,EAAO,EAAS,GAYhC,YACF,EAAqB,EACrB,EAAe,CAEjB,GAAM,GAAc,EAAQ,MAAM,OAC5B,EAAa,EAAc,EAAK,EAAQ,MAAM,EAAc,GAAK,EAKjE,EAAU,EAAM,OAElB,EAAY,EAChB,OAAS,GAAI,EAAW,EAAI,EAAS,EAAE,EACrC,GAAa,EAAM,GAGrB,GAAM,GAAgB,EAAY,EAAK,EAAI,EACrC,EAAa,GAAc,EAAQ,OAAS,EAE5C,EAAU,CAAC,GAAG,GAAe,EAAM,MAAM,EAAG,IAAa,GACzD,EAAa,GAAc,GACjC,MAAO,CAAC,YAAW,aAAY,YAAW,UAAS,cCnJrD,qWAAA,AA8BM,YACF,EAAmB,EAAiB,EAAc,CACpD,GAAM,GAAY,EAAM,MAAM,OAC9B,AAAK,EACD,IAAc,EAAM,OACpB,IAAM,iBAAiB,uBAA+B,uCAClB,OACxC,AAAK,EACD,IAAc,EAAK,OACnB,IAAM,iBAAiB,sBAA8B,uCACjB,OAExC,OAAS,GAAI,EAAG,EAAI,EAAW,EAAE,EAC/B,AAAK,EACD,EAAM,GAAK,EAAK,IAAM,EAAM,MAAM,GAClC,IAAM,iBAAiB,aAAqB,aAAa,OACjD,EAAM,GAAK,EAAK,kCAAkC,OAChD,EAAM,MAAM,OAKxB,YAAqB,EAAY,CACrC,GAAM,GAAO,GACT,EAAO,EACX,KAAO,EAAO,GACZ,AAAI,EAAO,GACT,EAAK,KAAK,GAEZ,GAAQ,EACR,IAEF,MAAO,GAIH,YACF,EAAiB,EAAe,EAAiB,CACnD,GAAM,GAAO,GACb,OAAS,GAAO,EAAG,EAAO,EAAM,OAAQ,IACtC,EAAK,GAAQ,KAAK,KAAM,GAAI,GAAQ,EAAM,IAAS,EAAQ,IAE7D,MAAO,GAKH,YACF,EAAmB,EAAgC,EACnD,EAAoB,CACtB,GAAM,GAAa,CAAC,GAAG,GACvB,OAAS,GAAI,EAAW,OAAQ,EAAI,EAAW,OAAQ,IACrD,EAAW,KAAK,GAElB,OAAS,GAAI,EAAG,EAAI,EAAe,IACjC,AAAI,IAAM,EACR,EAAW,GAA0B,EAErC,GAAW,OACP,EAAwB,EACxB,GACJ,EAAW,OAGf,MAAO,GAGT,YACI,EAAgC,EAChC,EAAsB,CACxB,MAAI,IAAkB,EACb,EAGF,EAAkB,GAAgB,GAG3C,YAAuB,EAAuB,EAA8B,CAC1E,GAAM,GAAa,GACnB,OAAS,GAAI,EAAG,EAAI,EAAe,IACjC,EAAW,KAAK,EAAyB,GAE3C,MAAO,GAIH,YACF,EAAsB,EAAwB,EAC9C,EAAiB,EAAe,EAAmB,EACnD,EACA,EAAoB,CACtB,GAAM,GAAY,EAAW,OACzB,EAAkB,GAAI,OAAM,GAC5B,EAAgB,GAAI,OAAM,GAC1B,EAAoB,GAAI,OAAM,GAClC,GAAI,EAAa,QAAU,EAAsB,EAAG,CAClD,GAAM,GAAY,EAAa,GAIzB,EAAgB,EAAsB,EAC5C,EAAkB,GACd,EAAW,EAAW,EAAe,EAAO,GAChD,EAAgB,GACZ,EAAS,EAAW,EAAe,EAAK,GAC5C,EACI,GAAsB,EAAS,EAAW,EAAe,OAE7D,QAAS,GAAO,EAAG,EAAO,EAAW,IACnC,EAAgB,GAAQ,GACpB,EAAW,EAAO,EAAS,EAAY,EAAM,GACjD,EAAc,GACV,GAAY,EAAS,EAAK,EAAS,EAAY,EAAM,GACzD,EAAkB,GAAQ,GAAe,EAAS,EAAM,GAI5D,MAAO,CACL,MAAO,EACP,IAAK,EACL,QAAS,GAMP,YACF,EAAmB,EAAgC,EACnD,EAAyB,EAAoB,CAC/C,GAAM,GAAa,CAAC,GAAG,GACjB,EAAa,GAAc,EAAe,GAEhD,OAAS,GAAO,EAAG,EAAO,EAAW,OAAQ,IAC3C,GAAI,EAAW,QAAQ,GAAQ,GAC7B,EAAW,GAAQ,MACd,CACL,GAAM,GACF,GAAgB,EAAwB,EAAe,GACvD,EAAgB,EAAc,GAClC,AAAI,EAAY,GAAK,GACnB,GAAgB,GAGlB,EAAW,GAAQ,EAGvB,MAAO,GAKH,YACF,EAAiB,EAAgC,EACjD,EAAuB,EAAoB,CAC7C,GAAM,GAAa,CAAC,GAAG,GACjB,EAAa,GAAc,EAAe,GAEhD,OAAS,GAAO,EAAG,EAAO,EAAW,OAAQ,IAC3C,GAAI,EAAW,QAAQ,GAAQ,GAC7B,EAAW,GAAQ,OAAO,qBACrB,CACL,GAAM,GACF,GAAgB,EAAwB,EAAe,GACvD,EAAgB,EAAY,GAChC,AAAI,EAAU,GAAK,GACjB,GAAgB,OAAO,kBAEzB,EAAW,GAAQ,EAIvB,OAAS,GAAI,EAAG,EAAI,EAAW,OAAQ,IAAK,CAE1C,GAAM,GAAW,EAAW,GAC5B,AAAI,EAAW,GAAK,GAClB,GAAW,IAAM,GAEnB,EAAW,GAAK,AAAK,GAAM,EAAG,EAAW,GAAI,EAAW,IAE1D,MAAO,GAGH,YACF,EAAmB,EAAc,EAAoB,CACvD,GAAI,GAAS,EAAQ,GACrB,MAAI,GAAgB,GAAK,GAAS,GAAU,OAC1C,GAAS,GAGJ,EAGH,YACF,EAAmB,EAAwB,EAC3C,EAAsB,EAAc,EAAoB,CAE1D,GAAI,GAAQ,EAAa,GACnB,EAAS,EAAQ,IAAS,EAIhC,AAAI,GAAY,GAAK,GAAQ,EAAe,GAAK,GAAQ,GAAS,OAChE,CAAI,EAAS,EAIX,EAAQ,OAAO,iBAGf,EAAQ,OAAO,kBAKnB,GAAM,GAAW,EAAW,GAC5B,MAAI,GAAQ,GACV,IAAS,GAIX,EAAQ,AAAK,GAAM,EAAG,EAAO,EAAW,GAEjC,EAGH,YACF,EAAiB,EAAuB,EACxC,EAAsB,EAAc,EAAoB,CAE1D,GAAI,GAAO,EAAY,GACjB,EAAS,EAAQ,IAAS,EAIhC,AAAI,GAAW,GAAK,GAAS,EAAgB,GAAK,GAAS,GAAQ,OACjE,CAAI,EAAS,EAGX,EAAO,OAAO,iBAGd,EAAO,OAAO,kBAKlB,GAAM,GAAW,EAAW,GAC5B,MAAI,GAAO,GACT,IAAQ,GAMV,AAAI,EAAS,EAEX,EAAO,AAAK,GAAM,EAAG,EAAM,GAG3B,EAAO,AAAK,GAAM,GAAI,EAAM,EAAW,GAGlC,EAOH,YACF,EAAiB,EAAiB,EAAc,CAElD,GAAI,GAAkB,EAAK,OAC3B,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAC/B,GAAI,EAAK,GAAK,EAAG,CACf,EAAkB,EAClB,MAIJ,OAAS,GAAI,EAAkB,EAAG,EAAI,EAAK,OAAQ,IACjD,GAAI,EAAM,GAAK,GAAK,EAAK,KAAO,EAAM,GACpC,MAAO,GAGX,MAAO,GAGH,YAA4B,EAAiB,EAAiB,CAClE,GAAI,GAAa,EAAM,OAAS,EAAI,EAAM,EAAM,OAAS,GAAK,EAC9D,OAAS,GAAI,EAAG,EAAI,EAAM,OAAS,EAAG,IACpC,GAAc,EAAM,GAAK,EAAQ,GAEnC,MAAO,GAGH,YACF,EAAe,EAAwB,EAAsB,CAE/D,GAAI,GACE,EAAQ,EAAE,MAAM,OACtB,AAAI,MAAO,IAAU,SACnB,EAAS,CAAC,EAAO,GAAG,GAAI,OAAM,EAAQ,GAAG,KAAK,IACzC,AAAI,EAAM,OAAS,EACxB,EAAS,EAAM,OAAO,GAAI,OAAM,EAAQ,EAAM,QAAQ,KAAK,IAE3D,EAAS,EAAM,QAEjB,EAAO,QAAQ,GAAI,CACjB,AAAK,EACD,IAAM,GAAI,IAAM,uDAEtB,GAAI,GACJ,MAAI,IAAQ,KACV,EAAQ,GAAI,OAAM,GAAO,KAAK,IACzB,AAAI,MAAO,IAAS,SACzB,EAAQ,CAAC,EAAM,GAAG,GAAI,OAAM,EAAQ,GAAG,KAAK,KACvC,AAAI,EAAK,OAAS,EACvB,EAAQ,EAAK,OAAO,GAAI,OAAM,EAAQ,EAAK,QAAQ,KAAK,KAExD,EAAQ,EAEV,EAAQ,EAAM,IAAI,CAAC,EAAG,IAChB,GAAK,EACA,EAEP,CAAK,EACD,IAAM,GACN,IAAM,qDACC,mCAAmC,MACvC,EAAE,MAAM,GAAK,EAAO,KAGxB,CAAC,EAAQ,GAGZ,YACF,EAAkB,EAAiB,EAAe,EAClD,EAAmB,EAAiB,EACpC,EAAqB,EAAsB,CAE7C,GAAI,GAAS,EAAM,QACf,EAAO,EAAI,QACX,EAAW,EAEf,AAAI,GAAW,MACb,GAAW,GAAI,OAAM,EAAO,SAG9B,GAAM,GAAe,GAAW,GAChC,GAAI,EAAa,OAAS,EACxB,KAAM,IAAI,OAAM,8CAGlB,GAAI,IAAiB,GAAK,IAAgB,EACxC,KAAM,IAAI,OACN,iEAGN,GAAI,IAAiB,GAAK,IAAmB,EAC3C,KAAM,IAAI,OACN,oEAGN,GAAM,GAAsB,EAAO,OAAS,EAAO,OAG7C,EAAa,GAAW,GACxB,EAAW,EAAO,QACxB,EAAW,QAAQ,GAAO,CACxB,EAAO,GAAQ,EACf,EAAK,GAAQ,EACb,EAAS,OAAO,EAAM,EAAG,KAG3B,GAAM,CACJ,MAAO,EACP,IAAK,EACL,QAAS,GAEP,GACI,EAAU,EAAc,EAAqB,EAAQ,EAAM,EAC3D,EAAW,EAAS,GAC5B,EAAS,EACT,EAAO,EACP,EAAW,EAEX,GAAM,GAAa,GAAW,GAE9B,EAAW,QAAQ,GAAO,CACxB,EAAK,GAAQ,EAAO,GAAQ,EAC5B,EAAS,GAAQ,IAInB,GAAM,GAAO,GAAgB,EAAQ,EAAM,GAErC,EAAW,EAAK,OAAO,CAAC,EAAG,IAAS,EAAW,QAAQ,KAAU,IAIvE,MAAO,CAAC,WAFW,EAAS,MAAM,GAAK,IAAM,GAEzB,SAAQ,OAAM,WAAU,OAAM,WAAU,YC/a9D,kFAAA,AA8DM,YAA4B,CAYhC,cAAY,CACV,MAAQ,MAAK,YACR,gBAiBA,YACH,EAAiC,EAAkB,CACrD,MAAO,IAAI,GAAI,KAWb,QAAuB,CAO3B,aAAA,CACE,KAAK,aAAe,SAMf,SAAM,CACX,MAAI,IAAiB,UAAY,MAC/B,IAAiB,SAAW,GAAI,KAE3B,GAAiB,eAMnB,UAAiC,EAA+B,CACrE,GAAiB,SAAS,aAAa,EAAI,WACvC,CAAC,EAAK,EAAI,cA4BZ,YACF,EAA+B,CACjC,EACI,EAAI,WAAa,KACjB,IAAM,+EAEV,EACI,MAAO,GAAI,WAAc,SACzB,IAAM,sDACF,MAAO,GAAI,WACnB,EACI,EAAI,UAAU,OAAS,EACvB,IAAM,qFAGV,GAAiB,SAAS,GC/K5B,wPAAA,AAsBA,GAAM,IAAuB,KAChB,GAAuB,GAE9B,YACF,EACA,EAAoD,EAAgB,CACtE,MAAI,IAAW,MACb,GAAU,MAEL,GACH,EAAQ,EAAU,CAAC,EAAG,IAAM,GAAS,EAAa,EAAa,IAG/D,aAAqB,CACzB,MAAO,GAAO,QAAQ,mBAAqB,GAAK,GACA,GAGlD,YACI,EAAoB,EACpB,EAAoC,CACtC,GAAI,GAAiB,GAOrB,GANI,IAAa,IAAW,GAAa,KACvC,GAAiB,IAEf,GAAa,IAAW,GAAa,IACvC,GAAiB,IAEf,EAAgB,CAClB,GAAM,GAAQ,EAAO,YAAY,KAC3B,EAAQ,EAAS,YAAY,KAEnC,GAAI,IAAU,EACZ,KAAM,IAAI,OACN,yCAAyC,gBAC5B,KAIrB,GAAI,MAAM,QAAQ,IAAW,MAAM,QAAQ,GAAW,CACpD,GAAM,GAAc,GAAW,GACzB,EAAgB,GAAW,GACjC,GAAI,CAAC,GAAY,EAAa,GAC5B,KAAM,IAAI,OACN,0CACY,kBAA4B,MAIhD,GAAM,GACF,GAAa,GAAU,EAAS,GAAQ,GACtC,EAAe,GAAa,GAC9B,EACA,GAAQ,GAEZ,GAAI,EAAW,SAAW,EAAa,OACrC,KAAM,IAAI,OACN,yCAAyC,EAAW,uBACvC,EAAa;YACb;YACA,MAEnB,OAAS,GAAI,EAAG,EAAI,EAAa,OAAQ,EAAE,EAAG,CAC5C,GAAM,GAAI,EAAW,GACf,EAAI,EAAa,GAEvB,GAAI,CAAC,EAAU,EAAG,GAChB,KAAM,IAAI,OACN,yBAAyB,QAAQ,eAAe,QAAQ;YAC3C;YACA,OAUjB,YAA8B,EAAuB,EAAY,CACrE,IAAK,KAAK,IAAM,EAAK,OAAQ,IAAM,KAG/B,YAA4B,EAAoB,EAAoB,CACxE,GAAM,GAAM,MAAO,IAAa,UAAY,MAAO,IAAa,UACxD,MAAO,IAAa,UACxB,CAAC,GACD,EACJ,MAAI,IAAS,IAAW,GAAU,EAAoB,KAClD,GAAS,IAAa,GAAU,EAAsB,IAEjD,GAAsB,EAAQ,EAAK,CAAC,EAAG,IAAM,GAAK,GAEpD,GACH,EAAQ,EAAU,CAAC,EAAG,IAAM,GAAS,EAAa,EAAa,IAG/D,YAA6B,EAAW,EAAW,EAAgB,CAIvE,GAHI,GAAW,MACb,GAAU,MAER,CAAC,GAAS,EAAG,EAAG,GAClB,KAAM,IAAI,OAAM,8BAA8B,mBAAmB,KAIrE,YAAkB,EAAW,EAAW,EAAe,CACrD,MAAI,CAAC,SAAS,IAAM,CAAC,SAAS,GACrB,GAEL,QAAM,IAAM,MAAM,IAAM,KAAK,IAAI,EAAI,GAAK,GAM1C,YACF,EAA6B,EAAa,EAAY,CACxD,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,IACjC,GAAI,EAAO,GAAK,GAAO,EAAO,GAAK,EACjC,KAAM,IAAI,OACN,sBAAsB,EAAO,WAAW,YAAc,KAK1D,YACF,EAAqB,EAAqB,CAG5C,OAAO,GAAI,cAAa,IAAS,QAAQ,GAAI,cAAa,IAItD,YAAwB,EAAqB,CAEjD,OAAS,GAAI,EAAG,EAAK,EAAgB,OAAQ,IAAK,CAChD,GAAM,GAAM,EAAE,GACd,AAAI,MAAM,QAAQ,GAChB,GAAc,GAEd,EAAE,GAAK,GAAa,GAGxB,MAAO,GCvKT,AAGA,GAAM,IAAU,QCHhB,AAgCM,aAAwB,CAC5B,IAAM,IAAI,OAAQ,IAiBd,aAAyB,CAC7B,IAAM,IAAI,QAAS,IAIf,aAAoC,CACxC,IAAM,IAAI,+BAAgC,IAC1C,QAAQ,KAAK,0DAIT,YAA0B,EAAW,CACzC,AAAI,IAAM,QAAQ,iCAChB,QAAQ,KACJ,EAAM,+EAId,GAAwB,IAOlB,aAA0B,CAC9B,EAAO,mBAQH,aAAgB,CACpB,MAAO,GAwBH,aAAgB,CACpB,MAAO,GAAO,SAkCV,YAAkB,EAAqD,CAE3E,MAAO,GAAO,QAAQ,GA2ClB,WACF,EAA6B,EAAe,CAC9C,MAAO,GAAO,KAAK,EAAU,GAczB,YAAkB,EAA0B,CAEhD,AADgB,GAAsB,GAC9B,QAAQ,GAAU,EAAO,WAmC7B,YAAiC,EAAS,CAC9C,MAAO,GAAO,KAAK,GA4Bf,YAAe,EAAa,CAChC,MAAO,GAAO,KAAK,GAkBf,YAAqB,EAAmB,CAC5C,MAAO,GAAO,WAAW,GAUrB,aAAe,CACnB,MAAO,GAAO,QASV,aAAoB,CACxB,MAAO,GAAO,YAQV,YAAwB,EAAY,CACxC,EAAO,cAAc,GAOjB,YAAsB,EAAY,CACtC,MAAO,GAAO,YAAY,GAQtB,YAA6B,EAAY,CAE7C,MAAO,GAAO,mBAAmB,GAkB7B,YACF,EAAc,EACd,EAAW,EAAC,CACd,MAAO,GAAO,gBAAgB,EAAM,EAAS,GAWzC,aAAiB,CACrB,MAAO,GAAO,QASV,YAAsB,EAAsB,EAAkB,CAClE,IAAM,YAAY,EAAc,GC9XlC,AAiDA,YAAgC,EAAsB,EAAoB,CACxE,GAAI,GAAK,EAAgB,EAAG,IAAK,OAC7B,EAAK,EAAgB,EAAG,IAAK,OACjC,CAAC,EAAI,GAAM,GAAe,EAAI,GAE9B,GAAM,GAAoB,CAAC,EAAG,EAAI,EAAG,GAErC,MAAO,GAAO,UAAU,GAAK,GAGxB,GAAM,IAAM,EAAG,CAAC,UC3DvB,AAqDA,YACI,EAAsB,EAAoB,CAC5C,GAAI,GAAK,EAAgB,EAAG,IAAK,YAC7B,EAAK,EAAgB,EAAG,IAAK,YACjC,CAAC,EAAI,GAAM,GAAe,EAAI,GAE9B,GAAM,GAAyB,CAAC,EAAG,EAAI,EAAG,GAE1C,MAAO,GAAO,UAAU,GAAU,GAG7B,GAAM,IAAW,EAAG,CAAC,eChE5B,AAoDA,YAAgC,EAAsB,EAAoB,CACxE,GAAI,GAAK,EAAgB,EAAG,IAAK,OAC7B,EAAK,EAAgB,EAAG,IAAK,OAGjC,GAFA,CAAC,EAAI,GAAM,GAAe,EAAI,GAE1B,EAAG,QAAU,SAAW,EAAG,QAAU,QACvC,MAAO,IAAS,EAAI,GAGtB,GAAM,GAAwB,CAAC,EAAG,EAAI,EAAG,GACnC,EAAQ,GAGd,MAAO,GAAO,UAAU,GAAS,EAAgC,GAG5D,GAAM,IAAM,EAAG,CAAC,UCpEvB,AAoDA,YAAgC,EAAsB,EAAoB,CACxE,GAAI,GAAK,EAAgB,EAAG,IAAK,OAC7B,EAAK,EAAgB,EAAG,IAAK,OACjC,CAAC,EAAI,GAAM,GAAe,EAAI,GAE9B,GAAM,GAAyB,CAAC,EAAG,EAAI,EAAG,GAE1C,MAAO,GAAO,UAAU,GAAU,GAE7B,GAAM,GAAM,EAAG,CAAC,UC7DvB,AAsCA,YAAgC,EAAe,CAC7C,GAAM,GAAK,EAAgB,EAAG,IAAK,OAEnC,GAAI,EAAG,QAAU,YAAa,CAC5B,GAAM,GAA2B,CAAC,EAAG,GACrC,MAAO,GAAO,UAAU,GAAY,OAC/B,CACL,GAAM,GAAoB,CAAC,EAAG,GAC9B,MAAO,GAAO,UAAU,GAAK,IAI1B,GAAM,IAAM,EAAG,CAAC,UClDvB,AAoCA,YAAiC,EAAe,CAE9C,GAAM,GAAqB,CAAC,EADjB,EAAgB,EAAG,IAAK,SAGnC,MAAO,GAAO,UAAU,GAAM,GAEzB,GAAM,IAAO,EAAG,CAAC,WC1CxB,AAuCA,YAAkC,EAAe,CAE/C,GAAM,GAAsB,CAAC,EADlB,EAAgB,EAAG,IAAK,UAGnC,MAAO,GAAO,UAAU,GAAO,GAE1B,GAAM,IAAQ,EAAG,CAAC,YC7CzB,AAuCA,YAAiC,EAA4B,CAC3D,AAAK,EACD,MAAM,QAAQ,GACd,IAAM,8DACV,AAAK,EACD,EAAQ,QAAU,EAClB,IAAM,uDACC,EAAQ,UAEnB,GAAM,GACF,EAAQ,IAAI,CAAC,EAAG,IAAM,EAAgB,EAAG,UAAU,IAAK,SAEtD,EAAc,EAAS,GAC7B,EAAS,QAAQ,GAAI,CACnB,GAAI,EAAE,QAAU,EAAY,MAC1B,KAAM,IAAI,OACN,8DAIR,EAAS,QAAQ,GAAI,CACnB,GAAI,CAAC,AAAK,GAAY,EAAE,MAAO,EAAY,OACzC,KAAM,IAAI,OACN,8DAIR,GAAM,GAAqB,EAE3B,MAAO,GAAO,UAAU,GAAM,GAGzB,GAAM,IAAO,EAAG,CAAC,WCvExB,AAwDA,YACI,EAAsB,EAAwB,KAAM,EAAW,GAAK,CAGtE,GAAM,GAAoB,CAAC,EAFhB,EAAgB,EAAG,IAAK,MAAO,SAGpC,EAAkB,CAAC,OAAM,YAE/B,MAAO,GAAO,UACV,GAAK,EAAgC,GAGpC,GAAM,IAAM,EAAG,CAAC,UCnEvB,AAwDA,YACI,EAAsB,EAAwB,KAAM,EAAW,GAAK,CAGtE,GAAM,GAAoB,CAAC,EAFhB,EAAgB,EAAG,IAAK,MAAO,SAGpC,EAAkB,CAAC,OAAM,YAE/B,MAAO,GAAO,UACV,GAAK,EAAgC,GAIpC,GAAM,IAAM,EAAG,CAAC,UCpEvB,AAmDA,YAAmC,EAAsB,EAAO,EAAC,CAG/D,GAAM,GAAuB,CAAC,EAFnB,EAAgB,EAAG,IAAK,WAG7B,EAAqB,CAAC,QAE5B,MAAO,GAAO,UACV,GAAQ,EAAgC,GAGvC,GAAM,IAAS,EAAG,CAAC,aC7D1B,AAmDA,YAAmC,EAAsB,EAAO,EAAC,CAG/D,GAAM,GAAuB,CAAC,EAFnB,EAAgB,EAAG,IAAK,WAG7B,EAAqB,CAAC,QAE5B,MAAO,GAAO,UACV,GAAQ,EAAgC,GAGvC,GAAM,IAAS,EAAG,CAAC,aC7D1B,AAqCA,YAAiC,EAAe,CAE9C,GAAM,GAAqB,CAAC,EADjB,EAAgB,EAAG,IAAK,SAGnC,MAAO,GAAO,UAAU,GAAM,GAEzB,GAAM,IAAO,EAAG,CAAC,WC3CxB,AAuCA,YAAkC,EAAe,CAG/C,GAAM,GAAsB,CAAC,EAFlB,EAAgB,EAAG,IAAK,UAInC,MAAO,GAAO,UAAU,GAAO,GAE1B,GAAM,IAAQ,EAAG,CAAC,YC9CzB,AAsCA,YAAiC,EAAe,CAG9C,GAAM,GAAqB,CAAC,EAFjB,EAAgB,EAAG,IAAK,SAInC,MAAO,GAAO,UAAU,GAAM,GAEzB,GAAM,IAAO,EAAG,CAAC,WC7CxB,AA2CA,YACI,EAAsB,EAAoB,CAC5C,GAAI,GAAK,EAAgB,EAAG,IAAK,SAC7B,EAAK,EAAgB,EAAG,IAAK,SACjC,CAAC,EAAI,GAAM,GAAe,EAAI,GAE9B,GAAM,GAAsB,CAAC,EAAG,EAAI,EAAG,GAEvC,MAAO,GAAO,UAAU,GAAO,GAG1B,GAAM,IAAQ,EAAG,CAAC,YCtDzB,AAuCA,YAAkC,EAAe,CAG/C,GAAM,GAAsB,CAAC,EAFlB,EAAgB,EAAG,IAAK,UAInC,MAAO,GAAO,UAAU,GAAO,GAE1B,GAAM,IAAQ,EAAG,CAAC,YC9CzB,AAiGM,YACF,EACA,EAAuC,EACvC,EAA4B,EAAqB,OACjD,EAAkC,CAKpC,GAAM,GAAgB,EAAW,GAC3B,EACF,CAAC,GAAG,EAAa,GACf,EAAc,GAAwB,GAE5C,MAAO,IACH,EAAY,EAAc,EAAS,EAAW,EAC9C,KAAyB,KAAsB,GAG/C,YACF,EACA,EAAqC,EACrC,EAAoC,EACpC,EACA,EAA6C,eAAc,CAC7D,GAAM,CAAC,EAAc,GAAe,GAAgB,GAEhD,EACJ,GAAI,IAAe,eACjB,EAAc,CAAC,EAAc,EAAa,EAAQ,GAAI,EAAQ,YACrD,IAAe,gBACxB,EAAc,CAAC,EAAc,EAAa,EAAQ,GAAI,EAAQ,QAE9D,MAAM,IAAI,OAAM,sBAAsB,KAGxC,MAAO,IACH,EAAS,EAAa,EAAS,EAAW,EAAK,EAAc,GAC7D,GAMA,YACF,EACA,EACA,EACA,EAA4C,EAC5C,EACA,EAA8B,QAAO,CACvC,GAAM,CAAC,EAAa,EAAc,GAAe,GAAiB,GAE9D,EACA,EACJ,GAAI,IAAe,QACjB,EAAc,eACd,EACI,CAAC,EAAa,EAAc,EAAa,EAAQ,GAAI,EAAQ,YACxD,IAAe,QACxB,EAAc,gBACd,EACI,CAAC,EAAa,EAAc,EAAa,EAAQ,GAAI,EAAQ,QAEjE,MAAM,IAAI,OAAM,sBAAsB,KAGxC,MAAO,IACH,EAAS,EAAa,EAAS,EAAW,EAAK,GAAO,EACtD,GAOA,YACF,EACA,EACA,EAAkC,EAClC,EACA,EAAuC,EAAY,GACnD,EAA6C,eAAc,CAC7D,GAAI,CAAC,EAAW,EAAU,EAAS,GAAc,CAAC,GAAI,GAAI,GAAI,IAC9D,GAAI,IAAe,eACjB,CAAC,EAAW,EAAU,EAAS,GAAc,UACpC,IAAe,gBACxB,CAAC,EAAW,EAAY,EAAU,GAAW,MAE7C,MAAM,IAAI,OAAM,sBAAsB,KAGxC,GAAM,CAAC,EAAc,EAAY,CAAG,GAAkB,EAChD,CAAC,EAAc,GAAe,GAAgB,GAC9C,CAAC,EAAgB,GAAiB,GAAgB,GAElD,EACF,GAAuB,EAAc,GACnC,EACF,GAAuB,EAAa,GAClC,CAAC,UAAS,YAAW,YAAY,GACnC,EAAK,EAAU,EAAS,EAAc,EAAa,EACnD,EAAsB,EAAc,GAElC,EAAc,EAAY,EAAiB,EAAa,EAE1D,EACJ,MAAI,KAAe,gBACjB,EAAW,CAAC,EAAW,EAAa,EAAW,GACtC,IAAe,gBACxB,GAAW,CAAC,EAAW,EAAW,EAAU,IAGvC,CACL,YACA,aACA,WACA,UACA,aACA,YACA,WACA,cACA,UACA,eACA,cACA,eACA,cACA,wBACA,uBACA,iBACA,gBACA,UACA,WACA,eA0CE,YACF,EACA,EACA,EACA,EAA4C,EAC5C,EAAY,GACZ,EAA6C,eAC7C,EAAqC,CACvC,GAAI,CAAC,EAAW,EAAS,EAAU,EAAS,GACxC,CAAC,GAAI,GAAI,GAAI,GAAI,IACrB,GAAI,IAAe,eACjB,CAAC,EAAW,EAAS,EAAU,EAAS,GAAc,UAC7C,IAAe,gBACxB,CAAC,EAAW,EAAY,EAAS,EAAU,GAAW,MAEtD,MAAM,IAAI,OAAM,sBAAsB,KAGxC,GAAM,CAAC,EAAa,EAAc,EAAY,CAAG,GAC7C,EACE,CAAC,EAAa,EAAc,GAAe,GAAiB,GAC5D,CAAC,EAAe,EAAgB,GAClC,GAAiB,GAEf,EACF,GAAuB,EAAa,GAClC,EACF,GAAuB,EAAc,GACnC,EACF,GAAuB,EAAa,GAClC,CAAC,UAAS,WAAU,YAAW,YAAY,GAC7C,EAAK,EAAS,EAAU,EAAS,EAAa,EAAc,EAC5D,EAAsB,EAAuB,EAC7C,GAEE,EAAc,EAAY,EAAiB,EAAa,EAE1D,EACJ,MAAI,KAAe,gBACjB,EAAW,CAAC,EAAW,EAAa,EAAU,EAAW,GAChD,IAAe,gBACxB,GAAW,CAAC,EAAW,EAAU,EAAW,EAAU,IAGjD,CACL,YACA,aACA,UACA,WACA,UACA,aACA,WACA,YACA,WACA,cACA,UACA,cACA,eACA,cACA,cACA,eACA,cACA,uBACA,wBACA,uBACA,gBACA,iBACA,gBACA,UACA,WACA,eAIJ,YACI,EAA2B,EAAmB,EAC9C,EAAkB,EAAqC,CACzD,AAAI,GAAW,MACb,GAAU,GAAkB,EAAS,EAAW,IAElD,GAAM,GAAY,EAAQ,GACpB,EAAY,EAAQ,GAEpB,EACF,GAAO,GAAY,EAAY,EAAI,GAAW,EAAS,EAAG,GACxD,EACF,GAAO,GAAY,EAAY,EAAI,GAAW,EAAS,EAAG,GAE9D,MAAO,CAAC,EAAY,GAGtB,YACI,EAA2C,EAC3C,EAAqB,EAAgB,EACrC,EAAqC,CACvC,AAAI,GAAW,MACb,GAAU,GAAkB,EAAS,EAAW,IAElD,GAAM,GAAa,EAAQ,GACrB,EAAY,EAAQ,GACpB,EAAY,EAAQ,GAEpB,EACF,GAAO,GAAa,EAAY,EAAI,GAAW,EAAS,EAAG,GACzD,EACF,GAAO,GAAY,EAAY,EAAI,GAAW,EAAS,EAAG,GACxD,EACF,GAAO,GAAY,EAAY,EAAI,GAAW,EAAS,EAAG,GAE9D,MAAO,CAAC,EAAc,EAAY,EAAY,GAG1C,YACF,EACA,EAAmB,EAAgB,EAAW,EAAC,CACjD,GAAM,GAAqB,GAAuB,EAAW,GAC7D,MAAO,MAAK,MACP,GAAW,GAAM,GAAS,GAAK,EAAS,GAAsB,GAGrE,YAAyB,EAAsB,CAC7C,MAAI,OAAO,IAAU,SACZ,CAAC,EAAO,EAAO,GAEpB,EAAM,SAAW,EACZ,CAAC,EAAM,GAAI,EAAM,GAAI,GAEvB,EAGT,YAA0B,EAAsC,CAE9D,MAAO,OAAO,IAAU,SAAW,CAAC,EAAO,EAAO,GAAS,EAc7D,YAAgC,EAAoB,EAAgB,CAClE,MAAI,IAAY,EACP,EAGF,EAAc,GAAa,GAAM,GAAW,GAGrD,YACI,EAA4C,EAC5C,EAAiB,EAAsB,EACvC,EAAsB,EACtB,EACA,EACc,CAChB,GAAI,GACA,EACA,EAEJ,GAAI,MAAO,IAAQ,SAAU,CAE3B,EAAU,CAAC,IAAK,EAAK,OAAQ,EAAK,KAAM,EAAK,MAAO,EAAK,KADxC,IAAQ,EAAK,QAAU,UAExC,GAAM,GAAW,GACb,CAAC,EAAU,GAAU,EAAc,EAAc,EAAK,GAC1D,EAAY,EAAS,GACrB,EAAW,EAAS,WACX,IAAQ,OAAQ,CACzB,EAAY,KAAK,KAAK,EAAW,GACjC,EAAW,KAAK,KAAK,EAAU,GAC/B,GAAM,GACF,KAAK,IAAI,EAAI,GAAY,GAAK,EAAe,EAAe,GAC1D,EACF,KAAK,IAAI,EAAI,GAAW,GAAK,EAAc,EAAc,GACvD,EAAM,KAAK,MAAM,EAAiB,GAClC,EAAS,EAAiB,EAC1B,EAAO,KAAK,MAAM,EAAgB,GAClC,EAAQ,EAAgB,EAC9B,EAAU,CAAC,MAAK,SAAQ,OAAM,QAAO,KAAM,gBAClC,IAAQ,QACjB,EAAU,CAAC,IAAK,EAAG,OAAQ,EAAG,KAAM,EAAG,MAAO,EAAG,KAAM,SACvD,EAAY,KAAK,KAAM,GAAW,EAAe,GAAK,GACtD,EAAW,KAAK,KAAM,GAAU,EAAc,GAAK,WAC1C,MAAO,IAAQ,SAAU,CAClC,GAAM,GAAM,IAAe,eAAiB,EAAI,GAAG,GAAK,EAAI,GAAG,GACzD,EAAS,IAAe,eAAiB,EAAI,GAAG,GAAK,EAAI,GAAG,GAC5D,EAAO,IAAe,eAAiB,EAAI,GAAG,GAAK,EAAI,GAAG,GAC1D,EAAQ,IAAe,eAAiB,EAAI,GAAG,GAAK,EAAI,GAAG,GAIjE,EAAU,CAAC,MAAK,SAAQ,OAAM,QAAO,KAHpB,IAAQ,GAAK,IAAW,GAAK,IAAS,GAAK,IAAU,EAClE,QACA,YAEJ,EAAY,GACP,GAAW,EAAe,EAAM,GAAU,EAAe,EAC1D,GACJ,EAAW,GACN,GAAU,EAAc,EAAO,GAAS,EAAc,EAAG,OAE9D,MAAM,OAAM,8BAA8B,KAE5C,MAAO,CAAC,UAAS,YAAW,YAG9B,YACI,EAA4B,EAAiB,EAC7C,EAAiB,EAAqB,EACtC,EAAqB,EAAqB,EAC1C,EAAqB,EAAqC,CAM5D,GAAI,GACA,EACA,EACA,EAEJ,GAAI,MAAO,IAAQ,SAAU,CAE3B,EAAU,CACR,IAAK,EACL,OAAQ,EACR,KAAM,EACN,MAAO,EACP,MAAO,EACP,KAAM,EACN,KARe,IAAQ,EAAK,QAAU,UAUxC,GAAM,GAAW,GACb,CAAC,EAAS,EAAU,EAAS,GAAI,EAAa,EAAG,EAAa,EAC9D,GACJ,EAAW,EAAS,GACpB,EAAY,EAAS,GACrB,EAAW,EAAS,WACX,IAAQ,OAAQ,CACzB,EAAW,KAAK,KAAK,EAAU,GAC/B,EAAY,KAAK,KAAK,EAAW,GACjC,EAAW,KAAK,KAAK,EAAU,GAC/B,GAAM,GAAiB,GAAW,GAAK,EAAc,EAAc,EAC7D,EACD,GAAY,GAAK,EAAe,EAAe,EAC9C,EAAiB,GAAW,GAAK,EAAc,EAAc,EAC7D,EAAQ,KAAK,MAAM,EAAgB,GACnC,EAAO,EAAgB,EACvB,EAAM,KAAK,MAAM,EAAiB,GAClC,EAAS,EAAiB,EAC1B,EAAO,KAAK,MAAM,EAAgB,GAClC,EAAQ,EAAgB,EAE9B,EAAU,CAAC,MAAK,SAAQ,OAAM,QAAO,QAAO,OAAM,KAAM,gBAC/C,IAAQ,QACjB,EAAU,CACR,IAAK,EACL,OAAQ,EACR,KAAM,EACN,MAAO,EACP,MAAO,EACP,KAAM,EACN,KAAM,SAER,EAAW,KAAK,KAAM,GAAU,EAAc,GAAK,GACnD,EAAY,KAAK,KAAM,GAAW,EAAe,GAAK,GACtD,EAAW,KAAK,KAAM,GAAU,EAAc,GAAK,OAEnD,MAAM,OAAM,8BAA8B,KAE5C,MAAO,CAAC,UAAS,WAAU,YAAW,YASxC,YAAe,EAAe,EAAqC,CACjE,GAAI,CAAC,EACH,MAAO,MAAK,MAAM,GAEpB,OAAQ,OACD,QAEH,MAAO,MAAK,MAAM,OACf,OAEH,MAAO,MAAK,KAAK,OACd,QACH,MAAO,MAAK,MAAM,WAElB,KAAM,IAAI,OAAM,wBAAwB,MAIxC,YAA4B,EAAsB,CACtD,GAAM,CAAC,EAAM,EAAM,GAAQ,GAAgB,GAC3C,MAAO,KAAS,GAAK,IAAS,GAAK,IAAS,EAGxC,YACF,EAA0B,EAA0B,CACtD,MAAO,IAAkB,IAAY,GAAkB,GAUnD,YAAkC,EAAyB,CAE/D,GAAI,IAAe,OACjB,MAAO,eACF,GAAI,IAAe,OACxB,MAAO,gBAEP,KAAM,IAAI,OAAM,sBAAsB,KCnlB1C,AAqDA,YACI,EAAsB,EAAkB,CAG1C,GAAM,GAAwB,CAAC,EAFpB,EAAgB,EAAG,IAAK,UAAW,sBAGxC,EAAsB,CAAC,SAC7B,MAAO,GAAO,UACV,GAAS,EAAgC,GAExC,GAAM,GAAU,EAAG,CAAC,cC9D3B,AAmDA,YACI,EAAiB,EACjB,EAAkC,EAClC,EAAwC,CAC1C,GAAM,GAAK,EAAgB,EAAG,IAAK,UAAW,WACxC,EAAY,EAElB,AAAK,EACD,AAAU,GAA+B,EAAS,GAClD,IAAM,wEACa,oBAA0B,MAEjD,GAAI,GAAM,EACN,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAG3D,AAAK,EACD,EAAI,OAAS,EACb,IAAM,mDAAmD,EAAI,SAE7D,GAAmB,MACrB,AAAK,EACD,AAAK,GAAM,GACX,IAAM,wEACiB,iBAA+B,MAG5D,GAAM,GAAwB,CAAC,EAAG,GAE5B,EAAsB,CAAC,aAAY,UAAS,MAAK,mBAGnD,EAAM,EAAO,UACH,GAAS,EACT,GAId,MAFA,GAAM,GAAK,EAAK,EAAG,OAEf,EACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAGtD,EAGF,GAAM,IAAU,EAAG,CAAC,cCnG3B,AAkEA,YACI,EAAiB,EACjB,EAA0C,EAC1C,EACA,EAA8B,QAAO,CACvC,GAAM,GAAK,EAAgB,EAAG,IAAK,YAAa,WAE5C,EAAM,EACN,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAGxE,AAAK,EACD,EAAI,OAAS,EACb,IAAM,qDAAqD,EAAI,SACnE,AAAK,EACD,IAAe,QACf,IAAM,gFACuB,KAE7B,GAAmB,MACrB,AAAK,EACD,AAAK,GAAM,GACX,IAAM,0EACiB,iBAA+B,MAG5D,GAAM,GAA0B,CAAC,EAAG,GAE9B,EACe,CAAC,aAAY,UAAS,MAAK,kBAAiB,cAG7D,EAAM,EAAO,UACH,GAAW,EACX,GAId,MAFA,GAAM,GAAK,EAAK,EAAI,OAEhB,EACK,EACI,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAIhE,EAGF,GAAM,IAAY,EAAG,CAAC,gBCpH7B,AAoEA,YAAmC,EAA8B,EAAO,EAAC,CACvE,EAAO,EAAQ,QAAU,EAAG,IAAM,sCAElC,GAAM,GACF,GAAqB,EAAS,UAAW,SAAU,qBAWvD,GATI,EAAS,GAAG,QAAU,aACxB,EAAS,QAAQ,GAAS,CACxB,GAAI,EAAO,QAAU,YACnB,KAAM,IAAI,OAAM;uBACD,EAAO,aAKxB,EAAS,SAAW,EACtB,MAAO,IAAM,EAAS,IAGxB,GAAM,GAAuB,EACvB,EAAoB,CAAC,QAE3B,MAAO,GAAO,UACV,GAAQ,EAAgC,GAGvC,GAAM,IAAS,EAAG,CAAC,aC9F1B,AAsCA,YAAoC,EAAe,CAGjD,GAAM,GAAwB,CAAC,EAFpB,EAAgB,EAAG,IAAK,YAInC,MAAO,GAAO,UAAU,GAAS,GAE5B,GAAM,IAAU,EAAG,CAAC,cC7C3B,AA6DA,YACI,EAAiB,EAAwB,EAAsB,CACjE,GAAM,GAAK,EAAgB,EAAG,IAAK,QAAS,qBAE5C,GAAI,EAAG,OAAS,EACd,KAAM,IAAI,OAAM,kCAGlB,GAAM,GAAsB,CAAC,EAAG,GAC1B,EAAoB,CAAC,QAAO,QAElC,MAAO,GAAO,UACV,GAAO,EAAgC,GAGtC,GAAM,IAAQ,EAAG,CAAC,YC5EzB,AAsCA,YAAiC,EAAe,CAG9C,GAAM,GAAqB,CAAC,EAFjB,EAAgB,EAAG,IAAK,SAInC,MAAO,GAAO,UAAU,GAAM,GAEzB,GAAM,IAAO,EAAG,CAAC,WC7CxB,AA8CA,YACI,EAA+B,EAC/B,EAA+B,EAC/B,EAAwB,EAAsB,CAChD,GAAM,GACF,EAAgB,EAAY,aAAc,iBACxC,EACF,EAAgB,EAAY,aAAc,iBACxC,EAAY,EAAgB,EAAU,WAAY,iBAClD,EAAQ,EAAgB,EAAM,OAAQ,iBACtC,EAAK,EAAgB,EAAG,IAAK,iBAC7B,EAAK,EAAgB,EAAG,IAAK,iBAE7B,EAAW,GAAO,CAAC,EAAO,GAAK,GAC/B,EAAW,GAAO,EAAU,GAC5B,EAAgB,GAAI,EAAU,GAG9B,EAAY,EAAI,MAAM,GACtB,EAAY,EAAI,MAAM,GAAK,EAC3B,EAA8B,CAAC,EAAW,GAC1C,EAAI,GAAM,EAAK,CAAC,EAAG,GAAI,GACvB,EAAI,GAAM,EAAK,CAAC,EAAG,GAAY,GAC/B,EAAI,GAAM,EAAK,CAAC,EAAG,EAAY,GAAI,GACnC,EAAI,GAAM,EAAK,CAAC,EAAG,EAAY,GAAI,GAEnC,EACF,GAAI,EAAI,GAAQ,GAAI,GAAK,IACrB,EAAI,EAAI,GAAQ,GAAI,EAAa,MACnC,EAAiB,EAAI,GAAK,GAAO,GAAQ,IAC/C,MAAO,CAAC,EAAM,GAGT,GAAM,IAAgB,EAAG,CAAC,oBC/EjC,AA4EA,YACI,EAAiB,EAAsB,EAAiB,CAC1D,GAAM,GAAK,EAAgB,EAAG,IAAK,kBAC7B,EAAO,EAAW,OAAO,CAAC,EAAG,IAAM,EAAI,GAE7C,AAAK,EACD,EAAG,MAAQ,EAAI,EAAW,OAC1B,IAAM,iBAAiB,EAAG,+CACtB,EAAW,UAEnB,AAAK,EACD,EAAM,SAAW,EAAW,OAC5B,IAAM,mBACF,EAAM,oDACN,EAAW,UAEnB,AAAK,EACD,EAAG,MAAM,GAAK,GAAS,EACvB,IAAM,yBACI,EAAG,MAAM,wEACe,EAAW,KAAK,cAAc,KAEpE,GAAM,GAA+B,CAAC,EAAG,GACnC,EAA6B,CAAC,aAAY,SAEhD,MAAO,GAAO,UACV,GAAgB,EAChB,GAGC,GAAM,IAAiB,EAAG,CAAC,qBCtF5B,YAAgC,EAAY,CAChD,GAAI,GACJ,MAAI,GAAE,OAAS,GAAK,EAAE,OAAS,EAC7B,EAAM,EAAQ,EAAG,CAAC,EAAG,EAAG,EAAG,EAAE,OACxB,AAAI,EAAE,OAAS,EACpB,EAAM,EAAQ,EAAG,CAAC,EAAG,EAAG,EAAE,MAAM,GAAI,EAAE,MAAM,KACvC,AAAI,EAAE,OAAS,EACpB,EAAM,EAAQ,EAAG,CAAC,EAAG,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,KAErD,EAAM,EAGD,EChCT,AAwDA,YACI,EAAyB,EACzB,EACA,EACA,EACA,EAAwB,CAC1B,AAAI,GAAmB,MACrB,GAAkB,MAEpB,GAAM,GAAK,EAAgB,EAAG,IAAK,aAC7B,EAAQ,EAAgB,EAAM,OAAQ,aACtC,EAAY,EAAgB,EAAU,WAAY,aACpD,EACJ,AAAI,GAAS,MACX,GAAS,EAAgB,EAAO,QAAS,cAE3C,GAAI,GACJ,AAAI,GAAU,MACZ,GAAU,EAAgB,EAAQ,SAAU,cAG9C,AAAK,EACD,EAAM,OAAS,EAAU,KACzB,IAAM,gFAEV,AAAK,EACD,GAAW,MAAQ,EAAM,OAAS,EAAQ,KAC1C,IAAM,8EAEV,AAAK,EACD,GAAU,MAAQ,EAAM,OAAS,EAAO,KACxC,IAAM,6EAKV,GAAM,GAA+B,CACnC,EAHoB,GAAM,GAI1B,MAAO,EACP,OAAQ,EACR,KAAM,EACN,SAAU,GAGN,EAA6B,CAAC,mBAG9B,EAAM,EAAO,UACH,GAAgB,EAChB,GAEhB,MAAO,GAAQ,EAAK,EAAG,OAGlB,GAAM,IAAY,EAAG,CAAC,gBC3E7B,YACI,EAAwB,EACxB,EACA,EAAuC,EACvC,EAAwB,CAC1B,GAAM,GAAK,EAAgB,EAAG,IAAK,aAC7B,EAAQ,EAAgB,EAAM,OAAQ,aACtC,EAAY,EAAgB,EAAU,WAAY,aACpD,EACJ,AAAI,GAAS,MACX,GAAS,EAAgB,EAAO,QAAS,cAE3C,GAAI,GACJ,MAAI,IAAU,MACZ,GAAU,EAAgB,EAAQ,SAAU,cAE9C,AAAK,EACD,EAAG,OAAS,EACZ,IAAM,uDACC,EAAG,SACd,AAAK,EACD,EAAM,OAAS,GAAK,EAAM,OAAS,EACnC,IAAM,oEACU,EAAM,SAC1B,AAAK,EACD,EAAU,OAAS,GAAK,EAAU,OAAS,EAC3C,IAAM,wEACc,EAAU,SAC9B,GAAU,MACZ,AAAK,EACD,EAAO,OAAS,GAAK,EAAO,OAAS,EACrC,IAAM,qEACc,EAAO,SAE7B,GAAW,MACb,AAAK,EACD,EAAQ,OAAS,GAAK,EAAQ,OAAS,EACvC,IAAM,sEACc,EAAQ,SAG3B,GAAU,EAAI,EAAO,EAAW,EAAS,EAAQ,GAGnD,GAAM,IAAc,EAAG,CAAC,kBC5C/B,YACI,EAAwB,EACxB,EACA,EAAuC,EACvC,EAAwB,CAC1B,GAAM,GAAK,EAAgB,EAAG,IAAK,aAC7B,EAAQ,EAAgB,EAAM,OAAQ,aACtC,EAAY,EAAgB,EAAU,WAAY,aACpD,EACJ,AAAI,GAAS,MACX,GAAS,EAAgB,EAAO,QAAS,cAE3C,GAAI,GACJ,MAAI,IAAU,MACZ,GAAU,EAAgB,EAAQ,SAAU,cAE9C,AAAK,EACD,EAAG,OAAS,EACZ,IAAM,uDACC,EAAG,SACd,AAAK,EACD,EAAM,OAAS,GAAK,EAAM,OAAS,EACnC,IAAM,oEACU,EAAM,SAC1B,AAAK,EACD,EAAU,OAAS,GAAK,EAAU,OAAS,EAC3C,IAAM,wEACc,EAAU,SAC9B,GAAU,MACZ,AAAK,EACD,EAAO,OAAS,GAAK,EAAO,OAAS,EACrC,IAAM,qEACc,EAAO,SAE7B,GAAW,MACb,AAAK,EACD,EAAQ,OAAS,GAAK,EAAQ,OAAS,EACvC,IAAM,sEACc,EAAQ,SAG3B,GAAU,EAAI,EAAO,EAAW,EAAS,EAAQ,GAGnD,GAAM,IAAc,EAAG,CAAC,kBC5C/B,YACI,EAAwB,EACxB,EACA,EAAuC,EACvC,EAAwB,CAC1B,GAAM,GAAK,EAAgB,EAAG,IAAK,aAC7B,EAAQ,EAAgB,EAAM,OAAQ,aACtC,EAAY,EAAgB,EAAU,WAAY,aACpD,EACJ,AAAI,GAAS,MACX,GAAS,EAAgB,EAAO,QAAS,cAE3C,GAAI,GACJ,MAAI,IAAU,MACZ,GAAU,EAAgB,EAAQ,SAAU,cAE9C,AAAK,EACD,EAAG,OAAS,EACZ,IAAM,uDACC,EAAG,SACd,AAAK,EACD,EAAM,OAAS,GAAK,EAAM,OAAS,EACnC,IAAM,oEACU,EAAM,SAC1B,AAAK,EACD,EAAU,OAAS,GAAK,EAAU,OAAS,EAC3C,IAAM,wEACc,EAAU,SAC9B,GAAU,MACZ,AAAK,EACD,EAAO,OAAS,GAAK,EAAO,OAAS,EACrC,IAAM,qEACc,EAAO,SAE7B,GAAW,MACb,AAAK,EACD,EAAQ,OAAS,GAAK,EAAQ,OAAS,EACvC,IAAM,sEACc,EAAQ,SAE3B,GAAU,EAAI,EAAO,EAAW,EAAS,EAAQ,GAGnD,GAAM,IAAc,EAAG,CAAC,kBC9E/B,AA6CA,YACI,EAAiB,EAAuB,EAAY,CACtD,GAAM,GAAK,EAAgB,EAAG,IAAK,YAC7B,EAAW,EAAgB,EAAS,UAAW,YAErD,AAAK,EACD,EAAG,QAAU,QACb,IAAM,yDAC8B,EAAG,SAC3C,AAAK,EAAO,GAAQ,EAAG,IAAM,sCAAsC,MACnE,AAAK,EACD,EAAS,OAAS,EAAG,MAAQ,EAAS,OAAS,EAC/C,IAAM,gGACgC,EAAG,yBAClC,EAAS,UAEpB,GAAM,GAAyB,CAAC,EAAG,EAAI,QAAS,GAC1C,EAAuB,CAAC,QAE9B,MAAO,GAAO,UACV,GAAU,EAAgC,GAGzC,GAAM,IAAW,EAAG,CAAC,eCpE5B,AA2CA,YACI,EAAsB,EAAkB,CAC1C,GAAI,GAAQ,EAAgB,EAAG,cAAe,KACxC,EAAS,EAAM,MAErB,GAAI,EAAM,KAAK,GAAK,CAAE,GAAI,IAAM,EAAI,GAAM,GACxC,KAAM,IAAI,OAAM,2CAA2C,OAG7D,GAAI,EAAM,OAAS,EAAM,KACvB,KAAM,IAAI,OAAM,+BAA+B,EAAM,uBACjD,EAAM,SAGZ,GAAI,EAAM,OAAS,EAAM,KAAM,CAC7B,GAAM,GAAW,EAAM,MAAM,QAC7B,KAAO,EAAS,OAAS,EAAM,QAC7B,EAAS,QAAQ,GAEnB,EAAQ,EAAQ,EAAO,GAGzB,GAAM,GAAa,EAAM,MACnB,EAAiB,MAAM,KAAK,GAClC,OAAS,GAAI,EAAM,OAAS,EAAG,GAAK,EAAG,IACrC,GAAI,EAAW,KAAO,EAAM,GAC1B,EAAK,GAAK,UACD,EAAM,MAAM,KAAO,EAC5B,KAAM,IAAI,OACN,mBAAmB,8BAAmC,OAK9D,GAAI,AAFS,EAAK,IAAI,CAAC,EAAG,IAAM,EAAI,EAAI,EAAI,IAAI,OAAO,GAAK,GAAK,GAExD,SAAW,EAClB,MAAO,IAAM,GAIf,GAAM,GAAqB,CAAC,EAAG,GACzB,EAAmB,CAAC,QAC1B,MAAO,GAAO,UACV,GAAM,EAAgC,GAGrC,GAAM,IAAc,EAAG,CAAC,kBCxF/B,AAsCA,YAAiC,EAAe,CAG9C,GAAM,GAAqB,CAAC,EAFjB,EAAgB,EAAG,IAAK,SAGnC,MAAO,GAAO,UAAU,GAAM,GAEzB,GAAM,IAAO,EAAG,CAAC,WC5CxB,AAyCA,YACI,EAAiB,EAAsB,EAAoB,CAC7D,GAAM,GAAK,EAAgB,EAAG,IAAK,eACnC,AAAK,EACA,GAAgB,EACjB,IAAM,uBAAuB,yCACK,OAEtC,GAAM,GAA4B,CAAC,EAAG,GAChC,EAA0B,CAAC,eAAc,gBAE/C,MAAO,GAAO,UACV,GAAa,EAAgC,GAG5C,GAAM,IAAc,EAAG,CAAC,kBCvB/B,YAAmB,EAAmC,CACpD,MAAO,IAAO,EAAS,GAGlB,GAAM,IAAW,EAAG,CAAC,eCY5B,YACI,EAAqC,EAAY,CACnD,MAAO,IAAO,EAAS,GAGlB,GAAM,IAAW,EAAG,CAAC,eCD5B,YACI,EAAqC,EAAY,CACnD,MAAO,IAAO,EAAS,GAGlB,GAAM,IAAW,EAAG,CAAC,eC5B5B,YACI,EAAqC,EAAY,CACnD,MAAO,IAAO,EAAS,GAGlB,GAAM,IAAW,EAAG,CAAC,eCnC5B,AA6DA,YACI,EAAiB,EACjB,EACA,EACA,EAA4B,OAC5B,EAAqC,CAAC,EAAG,GACzC,EAAwC,CAC1C,GAAM,GAAK,EAAgB,EAAG,IAAK,UAC7B,EAAU,EAAgB,EAAQ,SAAU,UAE9C,EAAM,EACN,EAAe,GAEnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAG3D,AAAK,EACD,EAAI,OAAS,EACb,IAAM,uDAAuD,EAAI,SACrE,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,wDACC,EAAQ,SACf,GAAmB,MACrB,AAAK,EACD,AAAK,GAAM,GACX,IAAM,uEACiB,iBAA+B,MAG5D,GAAM,GAAU,IAAe,OAAS,EAAI,MAAM,GAAK,EAAI,MAAM,GACjE,AAAK,EACD,IAAY,EAAQ,MAAM,GAC1B,IAAM,oCAAoC,wCACZ,EAAQ,MAAM,OAChD,AAAK,EACD,AAAU,GAA+B,EAAS,GAClD,IAAM,uEACa,oBAA0B,MAEjD,GAAM,GAAuB,CAAC,EAAG,EAAK,OAAQ,GACxC,EACY,CAAC,UAAS,MAAK,aAAY,YAAW,mBAGlD,EAAM,EAAO,UACH,GAAQ,EACR,GAEhB,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAEtD,EAGF,GAAM,IAAS,EAAG,CAAC,aChE1B,YACI,EAAiB,EAA6B,EAC9C,EACA,EAA0B,MAAO,EAAW,EAC5C,EAAwC,CAC1C,GAAM,GAAK,EAAgB,EAAG,IAAK,UAC7B,EAAU,EAAgB,EAAQ,SAAU,UAE9C,EAAM,EACN,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,MAG9C,AAAK,EACD,EAAI,OAAS,EACb,IAAM,uDAAuD,EAAI,SACrE,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,wDACC,EAAQ,SACf,GAAmB,MACrB,AAAK,EACD,AAAK,GAAM,GACX,IAAM,uEACiB,iBAA+B,MAG5D,AAAK,EACD,EAAI,MAAM,KAAO,EAAQ,MAAM,GAC/B,IAAM,oCAAoC,EAAI,MAAM,yCACtB,EAAQ,MAAM,OAChD,AAAK,EACD,AAAU,GAA+B,EAAQ,GACjD,IAAM,oEACY,mBAAwB,MAC9C,AAAK,EACD,IAAe,MACf,IAAM,sCACF,0CAER,GAAM,GAAW,EACb,EAAS,CAAC,EAAG,EAAQ,MAAM,GAAI,EAAQ,MAAM,GAAI,EAAQ,MAAM,KAC7D,EAAU,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAG,EAAI,MAAM,GAAI,EAAI,MAAM,KAMjE,EAAM,GACP,EAAuB,EANM,CAAC,EAAG,GAMsB,EAHnC,OAFW,CAAC,EAAG,GAMP,GAEjC,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,KAGxC,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAGtD,GAAM,IAAS,EAAG,CAAC,aCnH1B,AAmDA,YACI,EAAmE,EACnE,EAAkB,EAClB,EACA,EAA4B,OAC5B,EAAwC,CAC1C,AAAK,EACD,EAAO,SAAW,EAAG,KACrB,IAAM,sBACE,EAAO,2BAA2B,EAAG,oBAEjD,GAAI,GAAW,EACX,EAAO,EACP,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAO,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,KAC1D,EAAW,CAAC,EAAG,EAAO,GAAI,EAAO,GAAI,EAAO,KAG9C,AAAK,EACD,EAAS,SAAW,EACpB,IACI,qEACG,EAAS,WACpB,AAAK,EACD,EAAK,OAAS,EACd,IAAM,4DACM,EAAK,QACrB,AAAK,EACD,EAAO,OAAS,EAChB,IAAM,gEACM,EAAO,QACvB,GAAM,GAAU,IAAe,OAAS,EAAS,GAAK,EAAS,GACzD,EAAW,IAAe,OAAS,EAAK,MAAM,GAAK,EAAK,MAAM,GACpE,AAAK,EACD,IAAY,EAAO,MAAM,GACzB,IAAM,4CAA4C,wCACd,EAAO,MAAM,OACrD,AAAK,EACD,IAAa,EAAO,MAAM,GAC1B,IAAM,6CAA6C,yCACd,EAAO,MAAM,OAClD,GAAmB,MACrB,AAAK,EACD,AAAK,GAAM,GACX,IAAM,+EACiB,iBAA+B,MAG5D,GAAM,GAAoC,CAAC,GAAI,EAAM,UAE/C,EACF,CAAC,UAAS,MAAK,aAAY,kBAAiB,WAAY,GAGtD,EAAM,EAAO,UACH,GAAqB,EACrB,GAEhB,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAEtD,EAGF,GAAM,IAAsB,EAAG,CAAC,0BC1EvC,YACI,EAAiB,EACjB,EACA,EAAkC,EAClC,EAAwC,CAC1C,GAAM,GAAK,EAAgB,EAAG,IAAK,mBAC7B,EAAU,EAAgB,EAAQ,SAAU,mBAElD,MAAO,IACH,EAAa,EAAI,EAAS,EAAS,EAAK,OAAQ,GAG/C,GAAM,IAAkB,EAAG,CAAC,sBCvDnC,AA6DA,YACI,EAAiB,EACjB,EAA0C,EAC1C,EAA8B,QAC9B,EAA6C,CAAC,EAAG,EAAG,GAAE,CACxD,GAAM,GAAK,EAAgB,EAAG,IAAK,UAC7B,EAAU,EAAgB,EAAQ,SAAU,UAE9C,EAAM,EACN,EAAe,GAEnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAExE,AAAK,EACD,EAAI,OAAS,EACb,IAAM,uDAAuD,EAAI,SACrE,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,wDACC,EAAQ,SACnB,AAAK,EACD,EAAI,MAAM,KAAO,EAAQ,MAAM,GAC/B,IAAM,oCAAoC,EAAI,MAAM,yCACtB,EAAQ,MAAM,OAChD,AAAK,EACD,GAA+B,EAAS,GACxC,IAAM,uEACa,oBAA0B,MACjD,AAAK,EACD,IAAe,QACf,IAAM,sCACF,4CAER,GAAM,GAAuB,CAAC,EAAG,EAAK,OAAQ,GAExC,EAAqB,CAAC,UAAS,MAAK,aAAY,aAGhD,EAAM,EAAO,UACH,GAAQ,EACR,GAEhB,MAAI,GACK,EACI,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAGhE,EAGF,GAAM,IAAS,EAAG,CAAC,aCjH1B,AA4CA,YACI,EAGA,EAAO,EAAkB,EACzB,EAAmB,CACrB,AAAK,EACD,EAAO,SAAW,EAAG,KACrB,IAAM,sBACE,EAAO,2BAA2B,EAAG,oBAEjD,GAAI,GAAW,EACX,EAAO,EACP,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAO,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,KACvE,EAAW,CAAC,EAAG,EAAO,GAAI,EAAO,GAAI,EAAO,GAAI,EAAO,KAGzD,GAAM,GAAU,EAAS,GACnB,EAAW,EAAK,MAAM,GAC5B,AAAK,EACD,EAAS,SAAW,EACpB,IACI,qEACG,EAAS,WACpB,AAAK,EACD,EAAK,OAAS,EACd,IAAM,4DACM,EAAK,QACrB,AAAK,EACD,EAAO,OAAS,EAChB,IAAM,gEACM,EAAO,QACvB,AAAK,EACD,IAAY,EAAO,MAAM,GACzB,IAAM,4CAA4C,wCACd,EAAO,MAAM,OACrD,AAAK,EACD,IAAa,EAAO,MAAM,GAC1B,IAAM,6CAA6C,yCACd,EAAO,MAAM,OAEtD,GAAM,GAAsC,CAAC,GAAI,EAAM,UAEjD,EAC2B,CAAC,MAAK,UAAS,WAAY,GAGtD,EAAM,EAAO,UACH,GAAuB,EACvB,GAEhB,MAAI,GACK,EACI,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAGhE,EAGF,GAAM,IAAsB,EAAG,CAAC,0BChEvC,YACI,EAAiB,EACjB,EAGA,EAA0C,EAAmB,CAC/D,GAAM,GAAK,EAAgB,EAAG,IAAK,mBAC7B,EAAU,EAAgB,EAAQ,SAAU,mBAElD,MAAO,IAAoB,EAAa,EAAI,EAAS,EAAS,GAGzD,GAAM,IAAkB,EAAG,CAAC,sBCtDnC,AAsCA,YAAgC,EAAe,CAG7C,GAAM,GAAoB,CAAC,EAFhB,EAAgB,EAAG,IAAK,QAInC,MAAO,GAAO,UAAU,GAAK,GAExB,GAAM,IAAM,EAAG,CAAC,UC7CvB,AAsCA,YAAiC,EAAe,CAE9C,GAAM,GAAqB,CAAC,EADjB,EAAgB,EAAG,IAAK,SAGnC,MAAO,GAAO,UAAU,GAAM,GAEzB,GAAM,IAAO,EAAG,CAAC,WC5CxB,AAkDA,YACI,EAAsB,EAAO,EAAG,EAAY,GAAO,EAAU,GAAK,CAGpE,GAAM,GAAuB,CAAC,EAFnB,EAAgB,EAAG,IAAK,WAG7B,EAAqB,CAAC,OAAM,YAAW,WAE7C,MAAO,GAAO,UACV,GAAQ,EAAgC,GAGvC,GAAM,IAAS,EAAG,CAAC,aC7D1B,AA+CA,YACI,EAAiB,EAAuB,EACxC,EAAe,GAAK,CACtB,GAAM,GAAK,EAAgB,EAAG,IAAK,iBAC7B,EAAW,EAAgB,EAAS,UAAW,iBAErD,AAAK,EACD,EAAG,QAAU,QACb,IAAM,8DAC8B,EAAG,SAC3C,AAAK,EACD,EAAG,MAAQ,EACX,IAAM,sEACM,EAAG,SACnB,AAAK,EAAO,GAAQ,EAAG,IAAM,sCAAsC,MACnE,AAAK,EACD,EAAS,OAAS,EAAG,MAAQ,EAAS,OAAS,EAC/C,IACI,+FAC8B,EAAG,yBAC9B,EAAS,UAEpB,GAAM,GAA8B,CAAC,EAAG,EAAI,QAAS,GAC/C,EAA4B,CAAC,OAAM,gBAEzC,MAAO,GAAO,UACV,GAAe,EACf,GAGC,GAAM,IAAgB,EAAG,CAAC,oBC7EjC,AAiEA,YACI,EAA0B,EAC1B,EAA4B,OAAM,CACpC,GAAM,GAAK,EAAgB,EAAG,IAAK,gBAE7B,EAAe,IAAe,OAAU,EAAG,MAAM,GAAK,EAAG,MAAM,GAC/D,EAAc,IAAe,OAAU,EAAG,MAAM,GAAK,EAAG,MAAM,GAC9D,EAAc,IAAe,OAAU,EAAG,MAAM,GAAK,EAAG,MAAM,GAEpE,AAAK,EACD,EAAc,GAAa,EAC3B,IAAM;MACN,SAAmB;MACnB,EAAG,SAEP,AAAK,EACD,EAAa,GAAa,EAC1B,IAAM;MACN,SAAkB;UACd,EAAG,SAEX,AAAK,EACA,EAAc,GAAY,IAAe,EAC1C,IAAM,8CACF,EAAY,YACZ,uCAAgD,EAAG,SAE3D,GAAM,GAA6B,CAAC,EAAG,GACjC,EAA2B,CAAC,YAAW,cAE7C,MAAO,GAAO,UACV,GAAc,EACd,GAGC,GAAM,IAAe,EAAG,CAAC,mBCpGhC,AAyEA,YACI,EAAiB,EACjB,EAAkC,EAClC,EAA4B,OAC5B,EAAqC,CAAC,EAAG,GACzC,EAAwC,CAC1C,GAAM,GAAK,EAAgB,EAAG,IAAK,mBAC7B,EAAU,EAAgB,EAAQ,SAAU,mBAE9C,EAAM,EACN,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAE3D,AAAK,EACD,EAAI,OAAS,EACb,IAAM,gEACM,EAAI,SACpB,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,iEACC,EAAQ,SACnB,AAAK,EACD,EAAI,MAAM,KAAO,EAAQ,MAAM,GAC/B,IAAM,uDACE,EAAI,MAAM,qDACJ,EAAQ,MAAM,OAE5B,GAAmB,MACrB,AAAK,EACD,AAAK,GAAM,GACX,IAAM,gFACiB,iBAA+B,MAG5D,GAAM,GAAsC,CAAC,EAAG,EAAK,OAAQ,GACvD,EACF,CAAC,UAAS,MAAK,aAAY,YAAW,mBAGpC,EAAM,EAAO,UACH,GAAuB,EACvB,GAEhB,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAEtD,EAGF,GAAM,IAAkB,EAAG,CAAC,sBC5HnC,AA8CA,YAAe,EAAS,CAGtB,GAAM,GAAqB,CAAC,EAFjB,EAAgB,EAAG,IAAK,SAInC,MAAO,GAAO,UAAU,GAAM,GAGzB,GAAM,IAAO,EAAG,CAAC,WCtDxB,AA4DA,YACI,EAAiB,EACjB,EAAkC,EAClC,EAAqC,CAAC,EAAG,GACzC,EAAqB,OAAM,CAC7B,GAAM,GAAK,EAAgB,EAAG,IAAK,cAC7B,EAAU,EAAgB,EAAQ,SAAU,cAElD,AAAK,EACD,EAAG,OAAS,GAAK,EAAG,OAAS,EAC7B,IAAM,gEACC,EAAG,SACd,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,4DACC,EAAQ,SACnB,AAAK,EACD,IAAe,OACf,IAAM,gFACuB,KAEjC,GAAI,GAAM,EACN,EAAe,GAEnB,AAAI,EAAG,OAAS,GACd,GAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,KACzD,EAAe,IAGjB,GAAM,GAA2B,CAAC,EAAG,EAAK,OAAQ,GAC5C,EAAyB,CAAC,UAAS,MAAK,aAGxC,EAAM,EAAO,UACH,GAAY,EACZ,GAEhB,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAGtD,EAGF,GAAM,IAAa,EAAG,CAAC,iBCxG9B,AA0BM,YACF,EAAmB,EAAkB,CACvC,GAAM,GAAS,EAAQ,OACjB,EAAiB,GACvB,OAAS,GAAI,EAAG,EAAI,EAAQ,IAAK,CAC/B,GAAM,GAAM,EAAS,EAAI,EACnB,EAAI,EAAQ,IAAQ,EAE1B,AAAI,AADM,GAAS,EAAS,OAAS,EAAI,IAAM,GACvC,GAAK,IAAM,GACjB,EAAK,QAAQ,GAGjB,MAAO,GAOH,YACF,EAAmB,EAAkB,CACvC,GAAM,GAAmB,GACzB,OAAS,GAAI,EAAG,EAAI,EAAS,OAAQ,IAAK,CACxC,GAAM,GAAQ,EAAQ,EAAQ,OAAS,EAAI,GACrC,EAAU,EAAS,OAAS,EAAI,EAChC,EAAS,EAAS,GACxB,AAAI,IAAS,MAAS,IAAU,GAAK,EAAS,IAC5C,EAAO,QAAQ,GAGnB,MAAO,GAGH,YACF,EAAkB,EAAgB,CACpC,GAAM,GAAmB,GACnB,EAAI,KAAK,IAAI,EAAO,OAAQ,EAAO,QAEzC,OAAS,GAAI,EAAG,EAAI,EAAG,IAAK,CAC1B,GAAI,GAAI,EAAO,EAAO,OAAS,EAAI,GACnC,AAAI,GAAK,MACP,GAAI,GAEN,GAAI,GAAI,EAAO,EAAO,OAAS,EAAI,GAInC,GAHI,GAAK,MACP,GAAI,GAEF,IAAM,EACR,EAAO,QAAQ,WACN,IAAM,EACf,EAAO,QAAQ,WACN,IAAM,EAAG,CAClB,GAAM,GAAS,wDACR,SAAc,KACrB,KAAM,OAAM,OAEZ,GAAO,QAAQ,GAGnB,MAAO,GCrFT,AA0CA,YACI,EAAsB,EAAoB,CAC5C,GAAI,GAAK,EAAgB,EAAG,IAAK,SAC7B,EAAK,EAAgB,EAAG,IAAK,SACjC,CAAC,EAAI,GAAM,GAAe,EAAI,GAE9B,GAA2B,EAAG,MAAO,EAAG,OAExC,GAAM,GAAsB,CAAC,EAAG,EAAI,EAAG,GAEvC,MAAO,GAAO,UAAU,GAAO,GAG1B,GAAM,IAAQ,EAAG,CAAC,YCvDzB,AAoDA,YACI,EAA8B,EAAiB,EAAe,CAChE,GAAM,GAAK,EAAgB,EAAG,IAAK,SAC7B,EAAK,EAAgB,EAAG,IAAK,SAC7B,EAAa,EAAgB,EAAW,YAAa,QAAS,QAI9D,EAAiB,GAA2B,EAAG,MAAO,EAAG,OACzD,EAAgB,GAAY,EAAI,GAChC,EAAgB,GAAY,EAAI,GACtC,AAAI,EAAW,OAAS,GAGtB,EACI,EAAW,MAAM,KAAO,EAAG,MAAM,GACjC,IAAM,kEAGR,EAAW,OAAS,GAEtB,GACI,EAAW,MAAO,EAAc,MAAO,oBAG7C,GAAM,GAAuB,CAC3B,UAAW,EACX,EAAG,EACH,EAAG,GAEL,MAAO,GAAO,UAAU,GAAQ,GAG3B,GAAM,IAAQ,EAAG,CAAC,YCrFzB,AAuCA,YAAsC,EAAe,CAEnD,GAAM,GAA0B,CAAC,EADtB,EAAgB,EAAG,IAAK,cAEnC,MAAO,GAAO,UAAU,GAAW,GAE9B,GAAM,IAAY,EAAG,CAAC,gBC5C7B,AA0DA,YACI,EAAsB,EAAoB,CAE5C,GAAI,GAAK,EAAgB,EAAG,IAAK,OAC7B,EAAK,EAAgB,EAAG,IAAK,OACjC,CAAC,EAAI,GAAM,GAAe,EAAI,GAE9B,GAAM,GAAY,GAAI,EAAI,GACpB,EAAQ,GAAU,GAClB,EAAc,GAAM,EAAI,GAC9B,MAAO,IAAM,EAAa,EAAO,GAG5B,GAAM,IAAW,EAAG,CAAC,eCvE5B,AA2CA,YAAc,EAAuB,EAAqB,CACxD,GAAM,GAAM,EAAgB,EAAI,KAAM,OAChC,EAAM,EAAgB,EAAI,KAAM,OAEtC,AAAK,EACA,GAAI,OAAS,GAAK,EAAI,OAAS,IAAO,GAAI,OAAS,GAAK,EAAI,OAAS,GACtE,IAAM,+DACC,EAAI,YAAY,EAAI,SAE/B,GAAM,GAAW,EAAI,OAAS,EAAI,EAAI,KAAO,EAAI,MAAM,GACjD,EAAW,EAAI,OAAS,EAAI,EAAI,KAAO,EAAI,MAAM,GAOvD,GALA,AAAK,EACD,IAAY,EACZ,IAAM,gEACC,SAAe,MAEtB,EAAI,OAAS,GAAK,EAAI,OAAS,EAAG,CACpC,GAAM,GAAO,EAAQ,EAAK,CAAC,EAAG,KACxB,EAAO,EAAQ,EAAK,CAAC,GAAI,IACzB,EAAO,GAAO,EAAM,GAC1B,MAAO,GAAQ,EAAM,YACZ,EAAI,OAAS,GAAK,EAAI,OAAS,EAAG,CAC3C,GAAM,GAAO,EAAQ,EAAK,CAAC,EAAG,KACxB,EAAO,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,KAC7C,EAAO,GAAO,EAAM,GAC1B,MAAO,GAAQ,EAAM,CAAC,EAAK,eAClB,EAAI,OAAS,GAAK,EAAI,OAAS,EAAG,CAC3C,GAAM,GAAO,EAAQ,EAAK,CAAC,GAAI,IACzB,EAAO,GAAO,EAAK,GACzB,MAAO,GAAQ,EAAM,CAAC,EAAK,WACtB,CACL,GAAM,GAAO,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,KAEnD,MADa,IAAO,EAAK,IAKtB,GAAM,IAAM,EAAG,CAAC,UCjFvB,AAsCA,YAAgC,EAAe,CAG7C,GAAM,GAAoB,CAAC,EAFhB,EAAgB,EAAG,IAAK,QAInC,MAAO,GAAO,UAAU,GAAK,GAGxB,GAAM,IAAM,EAAG,CAAC,UC9CvB,AAyCA,YAAgC,EAAe,CAC7C,GAAI,GAAK,EAAgB,EAAG,IAAK,OACjC,AAAK,EACD,EAAG,QAAU,SAAW,EAAG,QAAU,UACrC,IAAM,6CAEN,EAAG,QAAU,SACf,GAAK,GAAK,EAAI,YAGhB,GAAM,GAAoB,CAAC,EAAG,GAC9B,MAAO,GAAO,UAAU,GAAK,GAExB,GAAM,IAAM,EAAG,CAAC,UCtDvB,AAsCA,YAAgC,EAAe,CAG7C,GAAM,GAAoB,CAAC,EAFhB,EAAgB,EAAG,IAAK,QAGnC,MAAO,GAAO,UAAU,GAAK,GAExB,GAAM,IAAM,EAAG,CAAC,UC5CvB,AA4CA,YAAuC,EAAsB,EAAO,EAAC,CACnE,GAAM,GAAK,EAAgB,EAAG,IAAK,aAAc,qBAEjD,AAAK,EAAO,GAAQ,EAAG,KAAM,IAAM,sCAEnC,GAAM,GAA2B,CAAC,MAAO,GACnC,EAAyB,CAAC,IAAK,GAErC,MAAO,GAAO,UACV,GAAY,EAAgC,GAG3C,GAAM,IAAa,EAAG,CAAC,iBCxD9B,AAuCA,YAAkC,EAAe,CAG/C,GAAM,GAAsB,CAAC,EAFlB,EAAgB,EAAG,IAAK,UAGnC,MAAO,GAAO,UAAU,GAAO,GAE1B,GAAM,IAAQ,EAAG,CAAC,YC7CzB,AAqDA,YAAiC,EAAiB,EAAc,CAC9D,GAAM,GAAK,EAAgB,EAAG,IAAK,OAAQ,qBAC3C,AAAK,EACD,EAAG,OAAS,EAAK,OACjB,IAAM,qCAAqC,EAAG,kCACb,MAErC,GAAM,GAAqB,CAAC,EAAG,GACzB,EAAmB,CAAC,QAE1B,MAAO,GAAO,UACV,GAAM,EACN,GAGC,GAAM,IAAO,EAAG,CAAC,WCpExB,AAwCA,YACI,EAAiB,EACjB,EAKA,EAAkB,UAAS,CAC7B,AAAI,GAAc,MAChB,GAAa,GAEf,GAAM,GAAO,GAAO,CAAC,EAAS,GAAa,GACrC,EAAI,GAAW,EAAa,EAAU,EAC5C,OAAS,GAAI,EAAG,EAAI,EAAG,EAAE,EACvB,EAAK,IAAI,EAAG,EAAG,GAEjB,GAAM,GAAgB,EAAQ,EAAK,WAAY,CAAC,EAAS,IACzD,GAAI,GAAc,KAChB,MAAO,GAEP,GAAI,EAAW,SAAW,EACxB,MAAO,IAAK,GAAW,EAAK,GAAI,CAAC,EAAW,GAAI,EAAG,IAC9C,GAAI,EAAW,SAAW,EAE/B,MAAO,IACI,GAAW,GAAW,EAAK,GAAI,GAC/B,CAAC,EAAW,GAAI,EAAW,GAAI,EAAG,IACxC,GAAI,EAAW,SAAW,EAE/B,MAAO,IAAK,GAAW,GAAW,GAAW,EAAK,GAAI,GAAI,GAAI,CACrD,EAAW,GAAI,EAAW,GAAI,EAAW,GAAI,EAAG,IAGzD,KAAM,IAAI,OACN,qEAE8B,EAAmB,YAKpD,GAAM,IAAM,EAAG,CAAC,UCjFvB,AAqCA,YACI,EAAoB,EAAsB,EAAgB,CAC5D,GAAM,GAAmB,CAAC,QAAO,QAAO,SAExC,MAAO,GAAO,UAAU,GAAM,GAAI,GCzCpC,AAqCA,YAAkC,EAAe,CAG/C,GAAM,GAAsB,CAAC,EAFlB,EAAgB,EAAG,IAAK,UAGnC,MAAO,GAAO,UAAU,GAAO,GAE1B,GAAM,IAAQ,EAAG,CAAC,YC3CzB,AAqDA,YACI,EAAiB,EAA4B,EAAO,EAAG,EAAY,EAAC,CACtE,GAAM,GAAK,EAAgB,EAAG,IAAK,UAC7B,EAAW,EAAgB,EAAS,UAAW,SAAU,SAEzD,EAAyB,CAAC,EAAG,EAAI,QAAS,GAC1C,EAAuB,CAAC,OAAM,aAEpC,MAAO,GAAO,UACV,GAAU,EAAgC,GAGzC,GAAM,IAAS,EAAG,CAAC,aCjE1B,AA0CA,YACI,EAAsB,EAAoB,CAC5C,GAAI,GAAK,EAAgB,EAAG,IAAK,WAC7B,EAAK,EAAgB,EAAG,IAAK,WACjC,CAAC,EAAI,GAAM,GAAe,EAAI,GAE9B,GAA2B,EAAG,MAAO,EAAG,OAExC,GAAM,GAAwB,CAAC,EAAG,EAAI,EAAG,GAEzC,MAAO,GAAO,UAAU,GAAS,GAG5B,GAAM,IAAU,EAAG,CAAC,cCvD3B,AA0CA,YACI,EAAsB,EAAoB,CAC5C,GAAI,GAAK,EAAgB,EAAG,IAAK,gBAC7B,EAAK,EAAgB,EAAG,IAAK,gBACjC,CAAC,EAAI,GAAM,GAAe,EAAI,GAE9B,GAA2B,EAAG,MAAO,EAAG,OAExC,GAAM,GAA6B,CAAC,EAAG,EAAI,EAAG,GAE9C,MAAO,GAAO,UAAU,GAAc,GAGjC,GAAM,IAAe,EAAG,CAAC,mBCvDhC,AAsCA,YAAiC,EAAmB,CAGlD,GAAM,GAAqB,CAAC,MAFb,EAAgB,EAAO,QAAS,SAG/C,MAAO,GAAO,UAAU,GAAM,GAGzB,GAAM,IAAO,EAAG,CAAC,WC7CxB,AAsCA,YAAqC,EAAe,CAGlD,GAAM,GAAyB,CAAC,EAFrB,EAAgB,EAAG,IAAK,aAInC,MAAO,GAAO,UAAU,GAAU,GAE7B,GAAM,IAAW,EAAG,CAAC,eC7C5B,AAsCA,YAAkC,EAAe,CAG/C,GAAM,GAAsB,CAAC,EAFlB,EAAgB,EAAG,IAAK,UAInC,MAAO,GAAO,UAAU,GAAO,GAE1B,GAAM,IAAQ,EAAG,CAAC,YC7CzB,AAsCA,YAAkC,EAAe,CAE/C,GAAM,GAAsB,CAAC,EADlB,EAAgB,EAAG,IAAK,UAGnC,MAAO,GAAO,UAAU,GAAO,GAE1B,GAAM,IAAQ,EAAG,CAAC,YC5CzB,AA4CA,YAAsC,EAAiB,EAAQ,GAAG,CAGhE,GAAM,GAA0B,CAAC,EAFtB,EAAgB,EAAG,IAAK,cAG7B,EAAwB,CAAC,SAE/B,MAAO,GAAO,UACV,GAAW,EAAgC,GAG1C,GAAM,IAAY,EAAG,CAAC,gBCtD7B,AAyCA,YACI,EAAsB,EAAoB,CAC5C,GAAI,GAAK,EAAgB,EAAG,IAAK,QAC7B,EAAK,EAAgB,EAAG,IAAK,QACjC,CAAC,EAAI,GAAM,GAAe,EAAI,GAE9B,GAA2B,EAAG,MAAO,EAAG,OAExC,GAAM,GAAqB,CAAC,EAAG,EAAI,EAAG,GAEtC,MAAO,GAAO,UAAU,GAAM,GAGzB,GAAM,IAAO,EAAG,CAAC,WCtDxB,AA0CA,YACI,EAAsB,EAAoB,CAC5C,GAAI,GAAK,EAAgB,EAAG,IAAK,aAC7B,EAAK,EAAgB,EAAG,IAAK,aACjC,CAAC,EAAI,GAAM,GAAe,EAAI,GAE9B,GAA2B,EAAG,MAAO,EAAG,OAExC,GAAM,GAA0B,CAAC,EAAG,EAAI,EAAG,GAE3C,MAAO,GAAO,UAAU,GAAW,GAG9B,GAAM,IAAY,EAAG,CAAC,gBCvD7B,AAkCM,YAAmB,EAAe,EAAc,EAAW,CAC/D,GAAI,GAAO,EACT,KAAM,IAAI,OAAM,4CAGlB,GAAM,GAAuB,CAAC,QAAO,OAAM,OAC3C,MAAO,GAAO,UAAU,GAAU,GAAI,GCxCxC,AA4CA,YACI,EAAiB,EAAc,EAAG,EAAO,EAAG,EAAQ,EAAG,EAAO,GAAG,CACnE,GAAM,GAAK,EAAgB,EAAG,IAAK,8BACnC,AAAK,EACD,EAAG,OAAS,GAAK,EAAG,OAAS,EAC7B,IAAM;sBACU,EAAG,SACvB,AAAK,EACD,AAAK,GAAM,GACX,IAAM,2FAC6B,MAEvC,GAAI,GAAM,EACN,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAG3D,GAAM,GAAoB,CAAC,EAAG,GAExB,EAAkB,CAAC,cAAa,OAAM,QAAO,QAG7C,EAAM,EAAO,UACH,GAAK,EACL,GAEhB,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAEpD,EAIJ,GAAM,IAA6B,EAAG,CAAC,iCC/E9C,AAsCA,YAAgC,EAAe,CAG7C,GAAM,GAAoB,CAAC,EAFhB,EAAgB,EAAG,IAAK,QAGnC,MAAO,GAAO,UAAU,GAAK,GAExB,GAAM,IAAM,EAAG,CAAC,UC5CvB,AAuCA,YAAkC,EAAe,CAG/C,GAAM,GAAsB,CAAC,EAFlB,EAAgB,EAAG,IAAK,UAGnC,MAAO,GAAO,UAAU,GAAO,GAE1B,GAAM,IAAQ,EAAG,CAAC,YC7CzB,AA0DA,YAAc,EAAwB,CAEpC,MAAK,GACD,AAAK,GAAW,GAAI,IAAM,8CACvB,CAAC,EAAsB,IAAkC,CAE9D,GAAM,GAAK,EAAgB,EAAG,IAAK,UAAW,qBACxC,EACD,GAAM,KAAQ,EAAgB,EAAI,KAAM,WAAa,KAC1D,MAAO,GAAO,KAAK,IAAK,CACtB,GAAM,CAAC,QAAO,SAAS,EAAO,UAAU,IAAM,EAAE,GAAK,CAAC,GAAK,GAC3D,MAAI,IAAO,MACT,AAAK,GACD,EAAM,MAAO,EAAI,MACjB,kFAGN,GAAW,GACJ,EAAM,MAkCnB,YAAe,EAAgC,CAE7C,MAAK,GACD,AAAK,GAAW,GAAI,IAAM,+CACvB,CAAC,EAAgC,IAAoC,CAC1E,AAAK,EACD,MAAM,QAAQ,GACd,IAAM,oFAGV,GAAM,GACF,GAAqB,EAAM,OAAQ,WAAY,qBAC7C,EACD,GAAM,KAAQ,EAAgB,EAAI,KAAM,YAAc,KAC3D,MAAO,GAAO,KAAK,IAAK,CACtB,GAAM,CAAC,QAAO,SAAS,EAAO,UAAU,IAAM,EAAE,GAAG,GAAQ,EAAO,GAClE,MAAI,IAAO,MACT,AAAK,GACD,EAAM,MAAO,EAAI,MACjB,iGAGN,GAAW,GACJ,KA8Bb,YAA0D,EAAc,CAKtE,MAAK,GACD,AAAK,GAAW,GAChB,IAAM,sDACH,CAAC,EAAM,IAAU,CACtB,AAAK,EACD,YAAa,IACb,IAAM,uDACV,AAAK,EACD,GAAM,MAAQ,YAAc,IAC5B,IAAM,4DACV,GAAM,CAAC,QAAO,SAAS,EAAO,UAAU,IAAM,EAAE,GAAI,CAAC,GAAI,GACzD,UAAW,GACJ,CAAC,KAAM,EAAM,GAAS,UAmCjC,YAAyC,EAA2B,CAKlE,MAAK,GACD,AAAK,GAAW,GAChB,IAAM,uDACH,CAAC,EAAgB,IAAU,CAChC,AAAK,EACD,MAAM,QAAQ,IAAS,EAAK,MAAM,GAAO,YAAe,KACxD,IAAM,sEAEV,AAAK,EACD,GAAM,MAAQ,YAAc,IAC5B,IAAM,gEACV,GAAM,GAAM,EAAO,UAAU,IAAM,EAAE,GAAG,GAAO,EAAM,GACrD,MAAI,IAAM,MACR,AAAK,GACD,EAAI,MAAM,MAAO,EAAG,MACpB,yGAGN,GAAW,EAAI,OACR,GAkCX,YAAuB,EAAiB,EAAoB,CAE1D,AAAK,EACD,AAAK,GAAW,GAChB,IAAM,uDACV,AAAK,EACD,GAAW,MACP,MAAM,QAAQ,IAAY,EAAQ,MAAM,GAAK,YAAa,KAC9D,IACI,iFAGR,GAAM,GAAmB,GAAW,KACpC,GAAI,CAAC,EAAkB,CAErB,EAAU,GACV,OAAW,KAAW,GAAO,oBAC3B,EAAQ,KAAK,EAAO,oBAAoB,IAI5C,GAAM,GACF,EAAmB,EAAQ,OAAO,GAAY,CAAC,EAAS,WAAa,KAGnE,EAAmB,EAAQ,OACjC,EAAU,EAAQ,OAAO,GAAY,EAAS,WAC9C,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,gGAC+B,6BAGzC,GAAM,GAAmB,GACnB,CAAC,QAAO,SAAS,EAAO,UAAU,EAAG,EAAS,KAAM,GAE1D,AAAK,EACD,EAAM,KAAK,GAAK,GAAK,MACrB,IAAM,gMAGV,AAAK,EACD,EAAM,OAAS,EACf,IAAM,iFACiB,EAAM,eAEjC,GAAM,GAA6B,GACnC,SAAQ,QAAQ,CAAC,EAAG,IAAK,CACvB,AAAI,EAAM,IAAM,MACd,GAAW,EAAE,MAAQ,EAAM,MAG3B,GAAyB,MAG3B,EAAsB,QAAQ,GAAK,EAAW,EAAE,MAAQ,MAEnD,CAAC,QAAO,MAAO,GA2CxB,YAAsC,EAAwB,CAE5D,MAAO,GAAO,WAAW,GAG3B,YAAoB,EAAe,CAEjC,GAAI,AADqB,EAAM,OAAO,GAAK,GAAK,MAAM,OAC/B,EACrB,KAAM,IAAI,OACN;sEC9XR,AAuCA,YAAgC,EAAe,CAG7C,GAAM,GAAoB,CAAC,EAFhB,EAAgB,EAAG,IAAK,QAGnC,MAAO,GAAO,UAAU,GAAK,GAExB,GAAM,IAAM,EAAG,CAAC,UC7CvB,AAsCA,YAAqC,EAAe,CAGlD,GAAM,GAAyB,CAAC,EAFrB,EAAgB,EAAG,IAAK,aAGnC,MAAO,GAAO,UAAU,GAAU,GAE7B,GAAM,IAAW,EAAG,CAAC,eC5C5B,AAyCA,YAAuC,EAAe,CACpD,GAAM,GAAK,EAAgB,EAAG,IAAK,cAkBnC,MAAO,AAbU,IAAW,AAAC,GAUpB,EAAC,MANM,GAAI,GAAS,GAAI,KAMhB,SAJE,AAAC,GACH,EAAI,EAAI,GAAQ,GAAI,QAMrB,GAEX,GAAM,IAAa,EAAG,CAAC,iBC9D9B,AAwDA,YACI,EAAsB,EAAwB,KAAM,EAAW,GAAK,CAGtE,GAAM,GAAoB,CAAC,EAFhB,EAAgB,EAAG,IAAK,QAG7B,EAAkB,CAAC,iBAAkB,EAAM,YAEjD,MAAO,GAAO,UACV,GAAK,EAAgC,GAGpC,GAAM,IAAM,EAAG,CAAC,UCnEvB,AAiDA,YAAgC,EAAsB,EAAoB,CACxE,GAAI,GAAK,EAAgB,EAAG,IAAK,OAC7B,EAAK,EAAgB,EAAG,IAAK,OACjC,CAAC,EAAI,GAAM,GAAe,EAAI,GAE9B,GAAM,GAAoB,CAAC,EAAG,EAAI,EAAG,GAErC,MAAO,GAAO,UAAU,GAAK,GAGxB,GAAM,IAAM,EAAG,CAAC,UC3DvB,AAyDA,YACI,EAAsB,EAAwB,KAAM,EAAW,GAAK,CACtE,GAAI,GAAK,EAAgB,EAAG,IAAK,OACjC,AAAI,EAAG,QAAU,QACf,GAAK,GAAK,EAAI,UAGhB,GAAM,GAAoB,CAAC,EAAG,GACxB,EAAkB,CAAC,OAAM,YAE/B,MAAO,GAAO,UACV,GAAK,EAAgC,GAGpC,GAAM,IAAM,EAAG,CAAC,UCvEvB,AAsDA,YAAuC,EAAsB,EAAO,GAAE,CACpE,GAAM,GAAU,EAAgB,EAAQ,SAAU,cAKlD,GAHI,IAAS,IACX,GAAO,EAAQ,KAAO,GAEpB,IAAS,EAAQ,KAAO,EAC1B,KAAM,OACF,gFACmB,EAAQ,qBAAqB,KAgCtD,MAAO,AAjBU,IAAW,CAAC,EAAgB,IAAsB,CACjE,GAAM,GAAW,GACX,EAAO,GAAI,EAAQ,EAAM,IACzB,EAAU,GAAI,EAAQ,GACtB,EACF,GAAI,GAAK,EAAS,WAAY,GAAI,GAAI,GAAI,GAAU,EAAM,KAC9D,SAAK,CAAC,IAQC,CAAC,QAAO,SANE,CAAC,EAAY,IAAmB,CAC/C,GAAM,CAAC,GAAS,EACV,EAAW,GACX,EAAU,GAAI,GACpB,MAAO,IAAI,EAAI,EAAI,GAAI,EAAI,EAAM,GAAW,QAKhC,GAUX,GAAM,IAAa,EAAG,CAAC,iBCzG9B,AAuBM,YAA+B,EAAgB,EAAY,CAC/D,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,EAAE,EACjC,GAAI,EAAK,EAAK,OAAS,EAAI,KAAO,EAAO,EAAI,EAC3C,MAAO,GAGX,MAAO,GAGH,YACF,EAAqB,EAAqB,EAAc,CAC1D,GAAM,GAAO,EAAU,OAAS,EAAU,OACpC,EAAM,GACR,EAAS,EACT,EAAY,EACd,OAAS,GAAM,EAAG,EAAM,EAAM,IAC9B,AAAI,EAAK,QAAQ,KAAS,GACxB,EAAI,KAAK,EAAU,MAEnB,EAAI,KAAK,EAAU,MAGvB,MAAO,GAGH,YACF,EAAkB,EAAc,CAClC,GAAM,GAAW,GACX,EAAO,EAAO,OACpB,OAAS,GAAM,EAAG,EAAM,EAAM,IAC5B,AAAI,EAAK,QAAQ,KAAS,IACxB,EAAS,KAAK,EAAO,IAGzB,GAAM,GAAc,EAAK,IAAI,GAAO,EAAO,IAC3C,MAAO,CAAC,EAAU,GAGd,YACF,EAAiB,EAAc,CACjC,GAAM,GAAiB,EAAK,IAAI,GAAK,GACrC,MAAO,IAAiB,EAAO,EAAgB,GAG3C,YACF,EAAa,EAAgB,EAAY,CAC3C,AAAK,EACD,GAAqB,EAAM,GAC3B,IAAM,GAAG,qDACO,cAAiB,YAQjC,YAA6B,EAAgB,EAAY,CAE7D,GAAI,GAAqB,EAAM,GAC7B,MAAO,MAET,GAAM,GAAmB,GACzB,OAAS,GAAI,EAAG,EAAI,EAAM,EAAE,EAC1B,AAAI,EAAK,QAAQ,KAAO,IACtB,EAAO,KAAK,GAGhB,SAAK,QAAQ,GAAQ,EAAO,KAAK,IAC1B,EAIH,YAAiC,EAAc,CACnD,MAAO,GAAK,IAAI,CAAC,EAAM,IAAM,CAAC,EAAG,IAC5B,KAAK,CAAC,EAAG,IAAM,EAAE,GAAK,EAAE,IACxB,IAAI,GAAK,EAAE,IAGZ,YAA2B,EAAiB,EAAY,CAC5D,GAAM,GAAgB,GACtB,OAAS,GAAI,EAAO,EAAS,EAAI,EAAM,EAAE,EACvC,EAAI,KAAK,GAEX,MAAO,GC3GT,AA6DA,YACI,EAAsB,EAAwB,KAAM,EAAW,GAAK,CACtE,GAAM,GAAK,EAAgB,EAAG,IAAK,aAE7B,EAAO,GAAe,EAAM,EAAG,OAC/B,EAAO,GAAI,EAAI,EAAM,IACrB,EAAI,GAAI,EAAI,GACZ,EAAI,GAAI,GACR,EAAI,GAAI,EAAG,GACX,EAAI,GAAI,GACR,EAAM,GAAI,EAAQ,EAAM,EAAE,OAAQ,GAExC,GAAI,EAAU,CACZ,GAAM,GAAW,GAAqB,EAAI,MAAO,GACjD,MAAO,GAAQ,EAAK,GAEtB,MAAO,GAGF,GAAM,IAAY,EAAG,CAAC,gBChF7B,AAyCA,YACI,EAAsB,EAAoB,CAC5C,GAAM,GAAK,EAAgB,EAAG,IAAK,aAAc,QAC3C,EAAK,EAAgB,EAAG,IAAK,aAAc,QACjD,GAA2B,EAAG,MAAO,EAAG,OAExC,GAAM,GAA2B,CAAC,EAAG,EAAI,EAAG,GAE5C,MAAO,GAAO,UAAU,GAAY,GAG/B,GAAM,IAAa,EAAG,CAAC,iBCpD9B,AAsCA,YAAuC,EAAe,CAEpD,GAAM,GAA2B,CAAC,EADvB,EAAgB,EAAG,IAAK,aAAc,SAEjD,MAAO,GAAO,UAAU,GAAY,GAG/B,GAAM,IAAa,EAAG,CAAC,iBC5C9B,AAwCA,YACI,EAAsB,EAAoB,CAC5C,GAAM,GAAK,EAAgB,EAAG,IAAK,YAAa,QAC1C,EAAK,EAAgB,EAAG,IAAK,YAAa,QAChD,GAA2B,EAAG,MAAO,EAAG,OAExC,GAAM,GAA0B,CAAC,EAAG,EAAI,EAAG,GAC3C,MAAO,GAAO,UAAU,GAAW,GAE9B,GAAM,IAAY,EAAG,CAAC,gBCjD7B,AA0CA,YACI,EAAsB,EAAoB,CAC5C,GAAM,GAAK,EAAgB,EAAG,IAAK,aAAc,QAC3C,EAAK,EAAgB,EAAG,IAAK,aAAc,QACjD,UAA2B,EAAG,MAAO,EAAG,OAGjC,GAAW,GAAU,EAAG,GAAI,GAAW,GAAW,EAAG,KAGvD,GAAM,IAAa,EAAG,CAAC,iBCpD9B,AAuDA,YACI,EAAiB,EACjB,EAAkC,EAClC,EAAwC,CAC1C,GAAM,GAAK,EAAgB,EAAG,IAAK,WAC7B,EAAY,EAEd,EAAM,EACN,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAG3D,AAAK,EACD,EAAI,OAAS,EACb,IAAM,uDAAuD,EAAI,SACrE,AAAK,EACD,AAAU,GAA+B,EAAS,GAClD,IAAM,wEACa,oBAA0B,MAC7C,GAAmB,MACrB,AAAK,EACD,AAAK,GAAM,GACX,IAAM,wEACiB,iBAA+B,MAG5D,GAAM,GAAwB,CAAC,EAAG,GAE5B,EAAsB,CAAC,aAAY,UAAS,MAAK,mBAGjD,EAAM,EAAO,UACH,GAAS,EACT,GAEhB,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAEtD,EAGF,GAAM,IAAU,EAAG,CAAC,cClG3B,AAgEA,YACI,EAAiB,EAA8C,CAAC,EAAG,EAAG,GACtE,EAA0C,EAC1C,EACA,EAA8B,QAAO,CACvC,GAAM,GAAK,EAAgB,EAAG,IAAK,aAE/B,EAAM,EACN,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAGxE,AAAK,EACD,EAAI,OAAS,EACb,IAAM,qDAAqD,EAAI,SACnE,AAAK,EACD,IAAe,QACf,IAAM,gFACuB,KAC7B,GAAmB,MACrB,AAAK,EACD,AAAK,GAAM,GACX,IAAM,0EACiB,iBAA+B,MAG5D,GAAM,GAA0B,CAAC,EAAG,GAE9B,EACe,CAAC,aAAY,UAAS,MAAK,kBAAiB,cAG3D,EAAM,EAAO,UACH,GAAW,EACX,GAEhB,MAAI,GACK,EACI,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAIhE,EAGF,GAAM,IAAY,EAAG,CAAC,gBC/G7B,AA4DA,YACI,EAAiB,EACjB,EAAkC,EAClC,EAAsB,GAAK,CAG7B,GAAM,GAAkC,CAAC,EAF9B,EAAgB,EAAG,IAAK,sBAG7B,EACuB,CAAC,aAAY,UAAS,MAAK,uBAGlD,EAAS,EAAO,UACH,GAAmB,EACnB,GAEnB,MAAO,CAAC,OAAQ,EAAO,GAAI,QAAS,EAAO,IAGtC,GAAM,IAAoB,EAAG,CAAC,wBC9ErC,AAwDA,YACI,EAAsB,EAAoB,CAC5C,GAAI,GAAK,EAAgB,EAAG,IAAK,WAC7B,EAAK,EAAgB,EAAG,IAAK,WACjC,CAAC,EAAI,GAAM,GAAe,EAAI,GAE1B,EAAG,QAAU,QACf,GAAK,GAAK,EAAI,SACd,EAAK,GAAK,EAAI,UAEhB,GAA2B,EAAG,MAAO,EAAG,OAExC,GAAM,GAAwB,CAAC,EAAG,EAAI,EAAG,GAEzC,MAAO,GAAO,UAAU,GAAS,GAG5B,GAAM,IAAU,EAAG,CAAC,cCzE3B,AAwDA,YACI,EAAsB,EAAwB,KAAM,EAAW,GAAK,CAGtE,GAAM,GAAqB,CAAC,EAFjB,EAAgB,EAAG,IAAK,SAG7B,EAAmB,CAAC,OAAM,YAEhC,MAAO,GAAO,UACV,GAAM,EAAgC,GAGrC,GAAM,IAAO,EAAG,CAAC,WCnExB,AAuDA,YACI,EAAsB,EAAwB,KAAM,EAAW,GAAK,CAGtE,GAAM,GAAoB,CAAC,EAFhB,EAAgB,EAAG,IAAK,QAG7B,EAAkB,CAAC,OAAM,YAG/B,MAAO,GAAO,UACH,GAAK,EACL,GAGN,GAAM,IAAM,EAAG,CAAC,UCpEvB,AAwDA,YACI,EAAsB,EAAoB,CAC5C,GAAI,GAAK,EAAgB,EAAG,IAAK,WAC7B,EAAK,EAAgB,EAAG,IAAK,WACjC,CAAC,EAAI,GAAM,GAAe,EAAI,GAE1B,EAAG,QAAU,QACf,GAAK,GAAK,EAAI,SACd,EAAK,GAAK,EAAI,UAGhB,GAA2B,EAAG,MAAO,EAAG,OAExC,GAAM,GAAwB,CAAC,EAAG,EAAI,EAAG,GAEzC,MAAO,GAAO,UAAU,GAAS,GAG5B,GAAM,IAAU,EAAG,CAAC,cC1E3B,AAqDA,YACI,EAAiB,EACjB,EAA2B,CAC7B,AAAK,EACD,IAAS,WAAa,IAAS,YAC/B,IAAM,+DACK,MAEf,GAAM,GAAK,EAAgB,EAAG,IAAK,aACnC,GAAI,EAAG,OAAS,EACd,KAAM,IAAI,OACN,kEAGN,AAAK,EACD,EAAS,SAAW,EAAG,KACvB,IAAM,wCAAwC,EAAG,aACtC,EAAS,WACxB,GAAM,GAAc,IAAS,UAAY,EAAI,EAC7C,OAAS,GAAI,EAAG,EAAI,EAAG,KAAM,IAC3B,AAAK,EACD,EAAS,GAAG,SAAW,EACvB,IAAM,yDACV,AAAK,EACD,EAAS,GAAG,IAAM,GAAK,EAAS,GAAG,IAAM,EAAG,MAAM,GAAK,GACnD,EAAS,GAAG,IAAM,GAAK,EAAS,GAAG,IAAM,EAAG,MAAM,GAAK,EAC3D,IAAM,wBAAwB,wCACpB,EAAG,MAAM,GAAK,uCACX,EAAG,SAGtB,GAAM,GAAwB,CAAC,WAAU,QACnC,EAA0B,CAAC,EAAG,GACpC,MAAO,GAAO,UACV,GAAW,EAAgC,GAG1C,GAAM,IAAY,EAAG,CAAC,gBC1F7B,AAuDA,YAAgC,EAAsB,EAAoB,CACxE,GAAI,GAAK,EAAgB,EAAG,IAAK,OAC7B,EAAK,EAAgB,EAAG,IAAK,OACjC,CAAC,EAAI,GAAM,GAAe,EAAI,GAE9B,GAAM,GAAoB,CAAC,EAAG,EAAI,EAAG,GAErC,MAAO,GAAO,UAAU,GAAK,GAGxB,GAAM,IAAM,EAAG,CAAC,UCjEvB,AAmCA,YAAmC,EAAe,CAChD,GAAM,GAAK,EAAgB,EAAG,IAAK,UAC7B,EAAQ,GACd,MAAO,GAAO,UAAU,SAAU,CAAC,EAAG,GAAK,GAGtC,GAAM,IAAS,EAAG,CAAC,aCzC1B,AA4CA,YACI,EAAsB,EAAwB,KAC9C,EAAW,GAAK,CAClB,EAAI,EAAgB,EAAG,IAAK,WAC5B,GAAM,GAAO,GAAe,EAAM,EAAE,OAC9B,EAAQ,GAAK,EAAG,EAAM,GACxB,EAAgB,EAAM,MAC1B,AAAK,GACH,GAAgB,GAAqB,EAAM,MAAO,IAEpD,GAAM,GACF,GAAO,GAAI,GAAK,EAAG,WAAY,EAAQ,EAAO,KAC5C,EAAW,GAAK,EAAY,EAAM,GACxC,MAAO,CAAC,KAAM,EAAO,YAGhB,GAAM,IAAU,EAAG,CAAC,cChB3B,YACI,EAA2B,EAC3B,EACA,EAA6B,CAC/B,GAAM,GAAQ,EAAgB,EAAM,OAAQ,gBACtC,EAAK,GAAqB,EAAG,IAAK,gBAClC,EAAK,GAAqB,EAAG,IAAK,gBAEpC,EAAQ,EACN,EAAY,GAClB,OAAS,GAAI,EAAG,EAAI,EAAU,OAAQ,IAAK,CACzC,GAAM,GAAS,EAAU,GAAG,EAAO,EAAG,GAAI,EAAG,IAC7C,EAAU,KAAK,EAAO,IACtB,EAAU,KAAK,EAAO,IACtB,EAAQ,EAAO,GAEjB,GAAM,GAAmB,GACnB,EAAmB,GACzB,OAAS,GAAI,EAAG,EAAI,EAAU,OAAQ,GAAK,EACzC,EAAK,KAAK,EAAU,IACpB,EAAK,KAAK,EAAU,EAAI,IAE1B,MAAO,CAAC,EAAM,GAET,GAAM,IAAe,EAAG,CAAC,mBCpEhC,AAgDA,YACI,EAAsC,EAAoB,EAC1D,EAAa,GAAK,CACpB,GAAM,GAAU,EAAgB,EAAQ,SAAU,eAC5C,EAAc,EAAQ,KACtB,EAAW,EAAQ,KACzB,GAAI,EAAc,EAChB,KAAM,IAAI,OACN,+DACG,MAET,GAAI,EAAW,EACb,KAAM,IAAI,OAAM,gDAAgD,KAIlE,EAAO,GAAQ,KAAK,SAMpB,GAAM,GAA4B,CAAC,OAF/B,IAAa,EAAI,EAAQ,EAAS,CAAC,EAAG,KAAO,GAG3C,EAA0B,CAAC,aAAY,OAAM,cAG7C,EAAM,EAAO,UACH,GAAa,EACb,GAGhB,MAAO,KAAa,EAAI,EAAQ,EAAK,CAAC,EAAI,OAAqB,EAG1D,GAAM,IAAc,EAAG,CAAC,kBClF/B,AAyCA,YACI,EAAsB,EAAoB,CAC5C,GAAI,GAAK,EAAgB,EAAG,IAAK,YAC7B,EAAK,EAAgB,EAAG,IAAK,YACjC,CAAC,EAAI,GAAM,GAAe,EAAI,GAE9B,GAA2B,EAAG,MAAO,EAAG,OAExC,GAAM,GAAyB,CAAC,EAAG,EAAI,EAAG,GAE1C,MAAO,GAAO,UAAU,GAAU,GAG7B,GAAM,IAAW,EAAG,CAAC,eCtD5B,AAqCM,YACF,EAAoB,EAAkB,UAAS,CACjD,GAAI,IAAU,YAAa,CACzB,GAAM,GAAO,GAAM,EAAO,WACpB,EAAO,GAAM,EAAO,WAC1B,MAAO,IAAQ,EAAM,GAEvB,GAAM,GAAS,GAAoB,GAAc,GAAQ,GACzD,MAAO,GAAO,WAAW,EAAQ,EAAO,GC7C1C,AAsCM,YACF,EAAoB,EAAkB,UAAS,CACjD,GAAI,IAAU,YAAa,CACzB,GAAM,GAAO,GAAK,EAAO,WACnB,EAAO,GAAM,EAAO,WAC1B,MAAO,IAAQ,EAAM,GAEvB,GAAM,GAAS,GAAmB,GAAc,GAAQ,GACxD,MAAO,GAAO,WAAW,EAAQ,EAAO,GC9C1C,AAsCA,YAAqC,EAAe,CAGlD,GAAM,GAAyB,CAAC,EAFrB,EAAgB,EAAG,IAAK,aAGnC,MAAO,GAAO,UAAU,GAAU,GAG7B,GAAM,IAAW,EAAG,CAAC,eCN5B,YACI,EAAyB,EAAuB,CAClD,GAAM,GAAM,EAAgB,EAAI,KAAM,gBAChC,EAAM,EAAgB,EAAI,KAAM,gBAEtC,AAAK,EACD,EAAI,OAAS,GAAK,EAAI,OAAS,EAC/B,IAAM,+DACC,EAAI,YAAY,EAAI,SAE/B,GAAM,GAAO,EAAQ,EAAK,CAAC,GAAI,IACzB,EAAO,EAAQ,EAAK,CAAC,EAAG,KAC9B,MAAO,IAAO,EAAM,GAGf,GAAM,IAAe,EAAG,CAAC,mBCtDhC,AAoDA,YACI,EAAiB,EAAmC,EAAgB,EAAC,CACvE,GAAM,GAAK,EAAgB,EAAG,IAAK,OACnC,GAAI,EAAG,OAAS,EACd,KAAM,IAAI,OAAM,sDAGlB,GAAM,GAAoB,CAAC,WAAU,iBAC/B,EAAsB,CAAC,EAAG,GAChC,MAAO,GAAO,UACV,GAAO,EACP,GAGC,GAAM,IAAM,EAAG,CAAC,UCzCvB,YACI,EAAwB,EACxB,EAAgB,EAAC,CACnB,SACI,EAAS,SAAW,EACpB,IAAM,oDACH,GAAI,EAAG,CAAC,GAAW,GAGrB,GAAM,IAAQ,EAAG,CAAC,YCTzB,YACI,EAAwB,EACxB,EAAgB,EAAC,CACnB,SACI,EAAS,SAAW,GAAK,EAAS,GAAG,SAAW,GAC5C,EAAS,GAAG,SAAW,EAC3B,IAAM,yDACH,GAAI,EAAG,EAAU,GAGnB,GAAM,IAAQ,EAAG,CAAC,YCVzB,YACI,EACA,EACA,EAAgB,EAAC,CACnB,SACI,EAAS,SAAW,GAAK,EAAS,GAAG,SAAW,GAC5C,EAAS,GAAG,SAAW,GAAK,EAAS,GAAG,SAAW,EACvD,IAAM,yDACH,GAAI,EAAG,EAAU,GAGnB,GAAM,IAAQ,EAAG,CAAC,YCXzB,YACI,EACA,EAIA,EAAgB,EAAC,CACnB,SACI,EAAS,SAAW,GAAK,EAAS,GAAG,SAAW,GAC5C,EAAS,GAAG,SAAW,GAAK,EAAS,GAAG,SAAW,GACnD,EAAS,GAAG,SAAW,EAC3B,IAAM,yDACH,GAAI,EAAG,EAAU,GAGnB,GAAM,IAAQ,EAAG,CAAC,YCxCzB,AA4EA,YACI,EAAiB,EAAsB,EAAoB,CAC7D,GAAM,GAAK,EAAgB,EAAG,IAAK,kBAEnC,AAAK,EACD,EAAG,MAAQ,EAAI,EAAW,OAC1B,IAAM,cAAc,EAAG,sCACnB,EAAW,UAEnB,AAAK,EACD,EAAS,SAAW,EAAW,OAC/B,IAAM,qBACF,EAAS,wCAAwC,EAAW,UAEpE,AAAK,EACD,EAAG,MAAM,OACL,CAAC,EAAG,EAAG,IACD,EAAI,GAAK,GAAK,EAAW,OACpB,GACD,GAAI,EAAS,EAAI,GAAG,GAAK,EAAS,EAAI,GAAG,IACtC,EAAW,EAAI,IACnB,EAEA,EAET,IACJ,IAAM,4BAA4B,EAAG,MAAM,MAAM,oBAC7C,EAAS,+CACT,EAAW,cAEnB,GAAM,GAA+B,CAAC,EAAG,GACnC,EAA6B,CAAC,aAAY,YAEhD,MAAO,GAAO,UACV,GAAgB,EAChB,GAGC,GAAM,IAAiB,EAAG,CAAC,qBClHlC,AAwDA,YACI,EAAqB,EACrB,EAA0B,EAC1B,EAAqC,EAAiC,CACxE,AAAI,GAAa,MACf,GAAY,CAAC,EAAG,IAEd,GAAW,MACb,GAAU,GAER,IAAQ,GACV,GAAM,SAGR,GAAM,GAAK,EAAgB,EAAO,IAAK,WACnC,EAAM,EACN,EAAe,GAEnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAG3D,AAAK,EACD,AAAU,GAA+B,EAAS,GAClD,IAAM,qEACa,oBAA0B,MAEjD,GAAM,GAAW,AAAU,GACvB,EAAI,MAAO,EAAa,EAAS,EAAW,GAC1C,EACF,CAAC,EAAS,eAAgB,EAAS,eAOnC,EACJ,AAAI,IAAQ,OACV,EAAc,GACV,CAAC,EAAS,aAAc,EAAS,aAAc,GAEnD,EAAc,CAAC,CAAC,EAAG,GAAI,CAAC,EAAG,IAG7B,GAAM,GAAgB,EAAS,KAAO,GAAK,EAAS,KAAO,EACrD,CAAC,EAAiB,GAAiB,GACrC,CAAC,EAAS,SAAU,EAAS,SAAU,EAAU,GAC/C,EAAe,EAAgB,EAAM,QACrC,EACF,EAAgB,EAAM,GAAe,EAAK,EAAU,GAKlD,EAAI,AAHQ,KAAgB,MAC9B,IAAM,GAAQ,EAAY,EAAa,EAAS,GAChD,IAAM,GAAQ,EAAY,EAAa,EAAS,MAG9C,EAAM,EAAgB,EAAI,GAAe,EAAG,EAAU,GAE5D,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAGtD,EAMT,YACI,EAA8B,EAC9B,EAAuB,CACzB,GAAM,GAAW,EAAY,IAAI,GAAK,EAAE,IAClC,EAAa,EAAY,IAAI,GAAK,EAAE,IACpC,EAAiB,EAAW,OAAO,EAAU,GAC7C,EAAc,EAAW,IAAI,CAAC,EAAG,IAAO,GAAI,EAAe,GAAK,GAAK,GACrE,EAAS,EAAW,IAAI,CAAC,EAAG,IAAM,EAAI,EAAY,IAClD,EAAW,EAAW,IAAI,CAAC,EAAG,IAAM,CAAC,EAAS,GAAI,EAAO,KACzD,EAAQ,EAAW,IAAI,CAAC,EAAG,IAAM,CAAC,EAAG,EAAY,KACvD,MAAO,CAAC,EAAU,GAMpB,YACI,EAA+B,EAA0B,CAM3D,GAAM,GAAgB,AAHK,EAAY,IAAI,CAAC,EAAG,IACtC,EAAK,GAAI,GAAM,GAAS,GAAK,IAEG,IAAI,GAAK,EAAI,GAIhD,EAAgB,EAAc,IAAI,GAAK,KAAK,MAAM,EAAI,IACtD,EAAc,EAAc,IAAI,CAAC,EAAG,IAAM,EAAI,EAAc,IAClE,MAAO,GAAc,IAAI,CAAC,EAAG,IACpB,CAAC,EAAc,GAAI,EAAY,KAInC,GAAM,IAAO,EAAG,CAAC,WChKxB,AAsDA,YACI,EAAyB,EAAsB,CACjD,GAAI,GAAQ,EAAgB,EAAM,OAAQ,OACtC,EAAO,EAAgB,EAAK,MAAO,OACvC,CAAC,EAAO,GAAQ,GAAe,EAAO,GAEtC,GAAM,GAAoB,CAAC,EAAG,EAAO,EAAG,GAExC,MAAO,GAAO,UAAU,GAAK,GAGxB,GAAM,IAAM,EAAG,CAAC,UCjEvB,AA0CA,YAAkC,EAAiB,EAAmB,CACpE,GAAM,GAAK,EAAgB,EAAG,IAAK,SAC7B,EAAS,EAAgB,EAAO,QAAS,SAEzC,EAAsB,CAAC,EAAG,EAAI,MAAO,GAC3C,MAAO,GAAO,UAAU,GAAO,GAG1B,GAAM,IAAQ,EAAG,CAAC,YClDzB,AA0DA,YACI,EAAsB,EAAwB,KAAM,EAAW,GAAK,CACtE,GAAI,GAAK,EAAgB,EAAG,IAAK,QAEjC,AAAI,EAAG,QAAU,QAEf,GAAK,GAAK,EAAI,UAGhB,GAAM,GAAqB,CAAC,EAAG,GACzB,EAAmB,CAAC,OAAM,YAEhC,MAAO,GAAO,UACV,GAAM,EAAgC,GAGrC,GAAM,IAAO,EAAG,CAAC,WC1ExB,AAiCA,YACI,EAAoB,EACpB,EAAgB,CAClB,GAAM,GAAO,GAAc,GACvB,EAAS,KACb,GAAI,GAAS,MAAQ,IAAU,UAC7B,EAAS,GAAI,cAAa,WACjB,IAAU,QACnB,EAAS,GAAI,YAAW,WACf,IAAU,OACnB,EAAS,GAAI,YAAW,OAExB,MAAM,IAAI,OAAM,qBAAqB,KAEvC,OAAS,GAAI,EAAG,EAAI,EAAM,IACxB,EAAO,GAAK,IAEd,MAAO,GAAO,WAAW,EAAQ,EAAO,GAGnC,GAAM,IAAO,EAAG,CAAC,WCpCxB,OAA4B,SAjB5B,AAyCM,YAAkB,CAUtB,YACI,EAAc,EAAsB,EACpC,EAAqB,EAAa,CACpC,KAAK,KAAO,EACZ,KAAK,OAAS,EACd,KAAK,MAAQ,EACb,KAAK,QAAU,IACf,KAAK,UAAY,EACb,KAAK,WACP,MAAK,MAAQ,KAAK,KAAO,KAAK,OAAS,EACvC,KAAK,MAAQ,KAAK,KAAO,KAAK,OAAS,GAEzC,GAAM,GAAY,GAAc,KAAK,SACrC,KAAK,OAAS,AAAW,QAAK,EAAU,YAInC,WAAS,CACd,GAAI,CAAC,MAAM,KAAK,SAAU,CACxB,GAAM,GAAQ,KAAK,QACnB,YAAK,QAAU,IACR,EAGT,GAAI,GAAiB,EACjB,EAAU,GACd,KAAO,CAAC,GAAS,CACf,GAAI,GAAY,EAAY,EAC5B,EACE,GAAK,EAAI,KAAK,SAAW,EACzB,EAAK,EAAI,KAAK,SAAW,EACzB,EAAI,EAAK,EAAK,EAAK,QACZ,GAAK,GAAK,IAAM,GAEzB,GAAM,GAAM,KAAK,KAAK,GAAO,KAAK,IAAI,GAAK,GAC3C,EAAU,KAAK,KAAO,KAAK,OAAS,EAAK,EACzC,EAAU,KAAK,KAAO,KAAK,OAAS,EAAK,EAErC,EAAC,KAAK,WAAa,KAAK,iBAAiB,KAC3C,GAAU,IAId,MAAI,EAAC,KAAK,WAAa,KAAK,iBAAiB,KAC3C,MAAK,QAAU,KAAK,aAAa,IAE5B,KAAK,aAAa,GAInB,aAAa,EAAa,CAChC,MAAI,MAAK,OAAS,MAAQ,KAAK,QAAU,UAChC,EAEF,KAAK,MAAM,GAIZ,iBAAiB,EAAa,CACpC,MAAO,IAAS,KAAK,OAAS,GAAS,KAAK,QAM1C,QAAgB,CASpB,YACI,EAAe,EAAc,EAC7B,EAAa,CACf,KAAK,MAAQ,EACb,KAAK,KAAO,EAAI,EAChB,KAAK,MAAQ,EAEb,GAAM,GAAY,GAAc,KAAK,SACrC,KAAK,MAAQ,AAAW,QAAK,EAAU,YACvC,KAAK,MAAQ,GAAI,IAAY,EAAG,EAAG,EAAO,GAAO,KAAK,SAEtD,AAAI,EAAQ,EACV,KAAK,EAAI,EAAS,EAAI,EAEtB,KAAK,EAAI,EAAS,EAAI,EAExB,KAAK,EAAI,EAAI,KAAK,KAAK,EAAI,KAAK,GAI3B,WAAS,CACd,GAAI,GAAY,EAAY,EAAY,EAAW,EAAW,EAC9D,OAAa,CACX,EACE,GAAI,KAAK,MAAM,YACf,EAAI,EAAK,KAAK,EAAI,QACX,GAAK,GAMd,GALA,GAAK,EAAI,EACT,EAAK,EAAI,EACT,EAAK,EAAK,KAAQ,EAAK,EACvB,EAAM,GAAM,EAAO,KAAK,EAAK,GAAI,EAAI,KAAK,IAAI,IAC9C,EAAI,KAAK,QACL,EAAI,GAAM,KAAK,IAAI,GAAK,EAC1B,MAGJ,SAAK,EAAI,KAAK,KAAQ,KAAK,EAAI,EAC3B,KAAK,MAAQ,GACf,IAAK,KAAK,IAAI,KAAK,QAAS,EAAI,KAAK,QAEhC,KAAK,aAAa,GAGnB,aAAa,EAAa,CAChC,MAAI,MAAK,QAAU,UACV,EAEF,KAAK,MAAM,KAIhB,QAAoB,CAMxB,YACI,EAAM,EAAG,EAAM,EAAG,EAClB,EAAoB,CAWtB,GAQM,KAAA,eAAiB,IACpB,KAAK,OAAS,MAAQ,KAAK,QAAU,UAnBxC,KAAK,IAAM,EACX,KAAK,MAAQ,EAAM,EACnB,KAAK,MAAQ,EACT,GAAQ,MACV,GAAO,KAAK,UAEV,MAAO,IAAS,UAClB,GAAO,EAAK,YAGV,CAAC,KAAK,kBAAoB,KAAK,OAAS,EAC1C,KAAM,IAAI,OACN,0BAA0B,OAAS,iCAEzC,KAAK,OAAS,AAAW,QAAK,GAOxB,aAAa,EAAa,CAChC,MAAI,MAAK,iBACA,EAEF,KAAK,MAAM,GAGpB,WAAS,CACP,MAAO,MAAK,aAAa,KAAK,IAAM,KAAK,MAAQ,KAAK,YCtN1D,AAwCA,YACI,EAAoB,EAAe,EAAO,EAC1C,EAA2B,UAAW,EAAa,CAOrD,GANI,GAAQ,MACV,GAAO,GAEL,GAAS,MACX,GAAQ,WAEN,IAAU,WAAa,IAAU,QACnC,KAAM,IAAI,OAAM,yBAAyB,KAE3C,GAAM,GAAS,GAAI,IAAU,EAAO,EAAM,EAAO,GAC3C,EAAM,GAAO,EAAO,GAC1B,OAAS,GAAI,EAAG,EAAI,EAAI,OAAO,OAAQ,IACrC,EAAI,OAAO,GAAK,EAAO,YAEzB,MAAO,GAAI,WAGN,GAAM,IAAc,EAAG,CAAC,kBC5D/B,AAuCA,YACI,EAAoB,EAAO,EAAG,EAAS,EAAG,EAC1C,EAAa,CACf,GAAI,GAAS,MAAS,IAAuB,OAC3C,KAAM,IAAI,OAAM,yBAAyB,KAE3C,GAAM,GACF,GAAI,IAAY,EAAM,EAAQ,EAAO,GAAuB,GAC1D,EAAM,GAAO,EAAO,GAC1B,OAAS,GAAI,EAAG,EAAI,EAAI,OAAO,OAAQ,IACrC,EAAI,OAAO,GAAK,EAAU,YAE5B,MAAO,GAAI,WAGN,GAAM,IAAe,EAAG,CAAC,mBCtDhC,AA4CA,YACI,EAAoB,EAAS,EAAG,EAAS,EAAG,EAAkB,UAC9D,EAAoB,CACtB,GAAM,GAAM,GAAO,EAAO,GACpB,EAAS,GAAI,IAAc,EAAQ,EAAQ,KAAM,GACvD,OAAS,GAAI,EAAG,EAAI,EAAI,OAAO,OAAQ,IACrC,EAAI,OAAO,GAAK,EAAO,YAEzB,MAAO,GAAI,WAGN,GAAM,IAAgB,EAAG,CAAC,oBCvDjC,AAyCM,YACF,EAAe,EAAc,EAAO,EACpC,EAA2B,UAAS,CACtC,GAAI,IAAS,EACX,KAAM,IAAI,OAAM,8BAGlB,GAAM,GAAoB,CAAC,QAAO,OAAM,OAAM,SAE9C,MAAO,GAAO,UAAU,GAAO,GAAiB,GClDlD,AAwCA,YAAiC,EAAmB,CAGlD,GAAM,GAAqB,CAAC,MAFb,EAAgB,EAAO,QAAS,SAG/C,MAAO,GAAO,UAAU,GAAM,GAGzB,GAAM,IAAO,EAAG,CAAC,WC/CxB,AAsCA,YAAuC,EAAe,CAGpD,GAAM,GAA2B,CAAC,EAFvB,EAAgB,EAAG,IAAK,eAGnC,MAAO,GAAO,UAAU,GAAY,GAE/B,GAAM,IAAa,EAAG,CAAC,iBC5C9B,AAuCA,YAAiC,EAAe,CAG9C,GAAM,GAAqB,CAAC,EAFjB,EAAgB,EAAG,IAAK,SAInC,MAAO,GAAO,UAAU,GAAM,GAGzB,GAAM,IAAO,EAAG,CAAC,WC/CxB,AAuCA,YAAkC,EAAe,CAG/C,GAAM,GAAsB,CAAC,EAFlB,EAAgB,EAAG,IAAK,UAInC,MAAO,GAAO,UAAU,GAAO,GAG1B,GAAM,IAAQ,EAAG,CAAC,YC/CzB,AA0DA,YACI,EAAiB,EAAsB,CAGzC,GAAM,GAAwB,CAAC,EAFpB,EAAgB,EAAG,IAAK,YAG7B,EAAsB,CAAC,KAAM,GAEnC,MAAO,GAAO,UACV,GAAS,EAAgC,GAGxC,GAAM,IAAU,EAAG,CAAC,cCrE3B,AA6BA,YAAoB,EAAsB,CACxC,GAAM,GAAK,EAAgB,EAAG,IAAK,WACnC,MAAK,GACD,EAAG,OAAS,EACZ,IAAM,qDAAqD,EAAG,SAC3D,GAAQ,EAAI,GAGd,GAAM,IAAY,EAAG,CAAC,gBCrC7B,AA+BA,YAAoB,EAAwB,EAAsB,CAChE,GAAM,GAAK,EAAgB,EAAG,IAAK,WACnC,MAAK,GACD,EAAG,OAAS,EACZ,IAAM,qDAAqD,EAAG,SAC3D,GAAQ,EAAI,GAGd,GAAM,IAAY,EAAG,CAAC,gBCvC7B,AA+BA,YAAoB,EAAwB,EAAsB,CAChE,GAAM,GAAK,EAAgB,EAAG,IAAK,WACnC,MAAK,GACD,EAAG,OAAS,EACZ,IAAM,qDAAqD,EAAG,SAC3D,GAAQ,EAAI,GAGd,GAAM,IAAY,EAAG,CAAC,gBCvC7B,AA+BA,YAAoB,EAAwB,EAAsB,CAChE,GAAM,GAAK,EAAgB,EAAG,IAAK,WACnC,MAAK,GACD,EAAG,OAAS,EACZ,IAAM,qDAAqD,EAAG,SAC3D,GAAQ,EAAI,GAGd,GAAM,IAAY,EAAG,CAAC,gBCvC7B,AAuCA,YAAkC,EAAe,CAE/C,GAAM,GAAsB,CAAC,EADlB,EAAgB,EAAG,IAAK,UAGnC,MAAO,GAAO,UAAU,GAAO,GAG1B,GAAM,IAAQ,EAAG,CAAC,YC9CzB,AAuCA,YAAkC,EAAe,CAG/C,GAAM,GAAsB,CAAC,EAFlB,EAAgB,EAAG,IAAK,UAInC,MAAO,GAAO,UAAU,GAAO,GAE1B,GAAM,IAAQ,EAAG,CAAC,YC9CzB,AAqCM,YACF,EAAyC,EAAgB,CAC3D,GAAM,IAAa,IAAU,IAAU,UAAa,MAAM,QAAQ,KAC9D,IAAU,YACZ,KAAM,IAAI,OACN,kFAGN,GAAI,IAAU,UAAY,GAAa,IACnC,CAAE,aAAiB,aACrB,KAAM,IAAI,OACN,6EAKN,MAAO,IAAW,EAFM,GACQ,GACe,GCrDjD,AAwCA,YAAiC,EAAe,CAG9C,GAAM,GAAqB,CAAC,EAFjB,EAAgB,EAAG,IAAK,SAInC,MAAO,GAAO,UAAU,GAAM,GAGzB,GAAM,IAAO,EAAG,CAAC,WCuBxB,YACI,EAAiB,EACjB,EAAsC,EACtC,EAAqB,EAAoC,CAAC,EAAG,GAC7D,EAA4B,OAAM,CACpC,GAAM,GAAK,EAAgB,EAAG,IAAK,mBAC7B,EACF,EAAgB,EAAiB,kBAAmB,mBAClD,EACF,EAAgB,EAAiB,kBAAmB,mBAEpD,EAAM,EACN,EAAe,GAMnB,GALI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAGvD,IAAe,OACjB,KAAM,IAAI,OACN,sFAIN,AAAK,EACD,EAAI,OAAS,EACb,IAAM,gEACM,EAAI,SACpB,AAAK,EACD,EAAiB,OAAS,EAC1B,IAAM,2EACU,EAAiB,SACrC,AAAK,EACD,EAAiB,OAAS,EAC1B,IAAM,2EACU,EAAiB,SACrC,AAAK,EACD,EAAiB,MAAM,KAAO,EAC9B,IACI,yFACuB,EAAiB,MAAM,OACtD,AAAK,EACD,EAAiB,MAAM,KAAO,EAC9B,IAAM,yFAC2B,EAAiB,MAAM,OAE5D,GAAM,GAAa,EAAiB,MAAM,GACpC,EAAoB,EAAiB,MAAM,GACjD,AAAK,EACD,EAAiB,MAAM,KAAO,EAAa,EAC3C,IACI,6EACW,EAAa,cACb,EAAiB,MAAM,OAE1C,GAAM,GAAY,GACd,EAAK,EAAkB,EAAS,EAAK,EAAY,GAE/C,EACF,GAAO,EAAW,EAFE,EAEiC,QAAS,GAElE,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAEtD,EAGF,GAAM,IAAkB,EAAG,CAAC,sBC1InC,AAkDA,kBACI,EAAsB,EAAoB,CAC5C,GAAM,GAAK,EAAgB,EAAG,IAAK,aAC7B,EAAK,EAAgB,EAAG,IAAK,aAEnC,AAAK,EACD,EAAG,QAAU,EAAG,MAChB,IAAM,kDACF,EAAG,iBAAiB,EAAG,WAE/B,AAAK,EACD,EAAG,OAAS,EAAG,IAAM,qCAAqC,EAAG,WAEjE,AAAK,EACD,EAAG,OAAS,EAAG,IAAM,qCAAqC,EAAG,WAEjE,GAAM,GAAQ,KAAM,GAAG,OACjB,EAAQ,KAAM,GAAG,OACjB,EAAO,GAAI,KAAI,GAEjB,EAAa,EACjB,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,IAChC,AAAK,EAAK,IAAI,EAAM,KAClB,IAIJ,GAAM,GAAS,GAAI,IAAa,CAAC,GAAa,EAAG,OAC3C,EAAU,GAAI,IAAa,CAAC,GAAa,SAC/C,OAAS,GAAI,EAAG,EAAI,EAAG,EAAI,EAAM,OAAQ,IACvC,AAAK,EAAK,IAAI,EAAM,KAClB,GAAO,OAAO,GAAK,EAAM,GACzB,EAAQ,OAAO,GAAK,EACpB,KAGJ,MAAO,CAAC,EAAO,WAAY,EAAQ,YAE9B,GAAM,IAAiB,GCxF9B,AAsCA,YAAiC,EAAe,CAE9C,GAAM,GAAqB,CAAC,EADjB,EAAgB,EAAG,IAAK,SAEnC,MAAO,GAAO,UAAU,GAAM,GAEzB,GAAM,IAAO,EAAG,CAAC,WC3CxB,AAsCA,YAAgC,EAAe,CAG7C,GAAM,GAAoB,CAAC,EAFhB,EAAgB,EAAG,IAAK,QAInC,MAAO,GAAO,UAAU,GAAK,GAExB,GAAM,IAAM,EAAG,CAAC,UC7CvB,AAsCA,YAAiC,EAAe,CAE9C,GAAM,GAAqB,CAAC,EADjB,EAAgB,EAAG,IAAK,SAGnC,MAAO,GAAO,UAAU,GAAM,GAEzB,GAAM,IAAO,EAAG,CAAC,WC5CxB,AA6BA,YACI,EAAwB,EAAe,EAAY,CACrD,GAAM,GAAK,EAAgB,EAAG,IAAK,WACnC,MAAK,GACD,EAAG,OAAS,EACZ,IACI,mDAAmD,EAAG,eACvD,GAAM,EAAI,CAAC,GAAQ,CAAC,IAEtB,GAAM,IAAU,EAAG,CAAC,cCtC3B,AA6BA,YACI,EAAwB,EACxB,EAAsB,CACxB,GAAM,GAAK,EAAgB,EAAG,IAAK,WACnC,MAAK,GACD,EAAG,OAAS,EACZ,IACI,mDAAmD,EAAG,eACvD,GAAM,EAAI,EAAO,GAEnB,GAAM,IAAU,EAAG,CAAC,cCvC3B,AA6BA,YACI,EAAwB,EACxB,EAA8B,CAChC,GAAM,GAAK,EAAgB,EAAG,IAAK,WACnC,MAAK,GACD,EAAG,OAAS,EACZ,IACI,mDAAmD,EAAG,eACvD,GAAM,EAAI,EAAO,GAEnB,GAAM,IAAU,EAAG,CAAC,cCvC3B,AA6BA,YACI,EAAwB,EACxB,EAAsC,CACxC,GAAM,GAAK,EAAgB,EAAG,IAAK,WACnC,MAAK,GACD,EAAG,OAAS,EACZ,IACI,mDAAmD,EAAG,eACvD,GAAM,EAAI,EAAO,GAEnB,GAAM,IAAU,EAAG,CAAC,cCvC3B,AAgDA,YAAoC,EAAsB,EAAM,GAAE,CAChE,GAAM,GAAU,EAAgB,EAAQ,SAAU,UAAW,WAK7D,GAHI,IAAQ,IACV,GAAM,EAAQ,KAAO,GAEnB,IAAQ,EAAQ,KAAO,EACzB,KAAM,OACF,4EACmB,EAAQ,oBAAoB,KAGrD,GAAM,GAAwB,CAAC,OAAQ,GACjC,EAAsB,CAAC,OAE7B,MAAO,GAAO,UACV,GAAS,EAAgC,GAGxC,GAAM,IAAU,EAAG,CAAC,cCnE3B,AAyCA,YAAc,EAAa,CACzB,EACI,EAAM,QAAU,YAChB,IAAM,6DACS,EAAM,UAEzB,GAAM,GAAoB,CAAC,SAE3B,MAAO,GAAO,UAAU,GAAK,GAGxB,GAAM,IAAM,EAAG,CAAC,UCpDvB,AAyCA,YAAe,EAAa,CAC1B,EACI,EAAM,QAAU,YAChB,IAAM,8DACS,EAAM,UAEzB,GAAM,GAAqB,CAAC,SAE5B,MAAO,GAAO,UAAU,GAAM,GAGzB,GAAM,IAAO,EAAG,CAAC,WCpDxB,AAgDA,YAAgB,EAAa,CAC3B,GAAM,GAAqB,EAAM,MAAM,EAAM,MAAM,OAAS,GACtD,EAAQ,EAAM,KAAO,EACvB,EACJ,GAAI,GAAsB,EAAG,CAC3B,GAAM,GAAe,EAAQ,EAAO,CAAC,EAAO,IAC5C,EAAM,GAAK,OACN,CAGL,GAAM,GAAc,CAAC,EAAO,EAAK,GAAqB,IAChD,EAAY,EAAQ,GAAK,GAAQ,CAAC,EAAO,IACzC,EAAY,EAAQ,GAAK,GAAQ,CAAC,EAAO,IAEzC,EACF,GAAQ,GAAM,EAAW,CAAC,EAAG,GAAI,CAAC,EAAO,EAAqB,IAAK,GACjE,EAA0B,EAC5B,GAAQ,GAAM,EAAW,CAAC,EAAG,GAAI,CAAC,EAAO,EAAqB,IAAK,GACnE,GAAO,KAEL,EAAI,GAAO,CAAC,EAAW,GAAgB,GACvC,EAAI,GAAO,CAAC,EAAW,GAAgB,GACvC,EACF,EAAQ,GAAQ,EAAG,GAAI,CAAC,EAAY,GAAI,EAAY,KACxD,EAAM,GAAK,GAIb,GAFA,EAAM,GAAK,GAEP,EAAM,OAAS,GAAK,EAAM,MAAM,KAAO,EAAG,CAC5C,GAAM,GAAO,EACP,EAAQ,EAAM,MAAM,GAC1B,EAAM,EAAQ,EAAK,CAAC,EAAO,EAAI,MAAM,GAAK,EAAO,EAAI,MAAM,KAC3D,EAAK,UAEP,MAAO,GAGF,GAAM,IAAQ,EAAG,CAAC,YCrFzB,AA6DA,YACI,EAAsB,EAAkC,EAAO,EAAC,CAGlE,GAAM,GAAuB,CAAC,EAFnB,EAAgB,EAAG,IAAK,UAG7B,EAAoB,CAAC,kBAAiB,QAE5C,MAAO,GAAO,UACH,GAAQ,EACR,GAGN,GAAM,IAAQ,EAAG,CAAC,YCzEzB,AA+CA,YAAe,EAAe,EAAkB,CAC9C,EACI,EAAM,QAAU,UAChB,IAAM,mDAAmD,EAAM,SAEnE,GAAI,GAAqB,EAAM,MAAM,EAAM,MAAM,OAAS,GACpD,EAAQ,EAAM,KAAO,EAEvB,EACJ,GAAI,GAAa,MAAQ,EAAY,EAAoB,CAEvD,GAAM,GAAQ,EAAM,MAAM,IAAI,GAAK,GAC7B,EAAO,EAAM,MAAM,IAAI,GAAK,GAClC,EAAK,EAAM,MAAM,OAAS,GAAK,EAC/B,EAAgB,GAAM,EAAO,EAAO,GACpC,EAAqB,UACZ,GAAa,MAAQ,EAAY,EAAoB,CAE9D,GAAM,GAAa,EAAM,MAAM,IAAI,GAAK,GACxC,EAAW,EAAM,MAAM,OAAS,GAAK,EAAY,EACjD,EAAgB,GAAO,CAAC,EAAO,GAAM,IAAc,EAAM,MAAM,OAAS,GACxE,EAAqB,MAErB,GAAgB,EAIlB,GAAM,GAAa,GAAU,GACvB,EACF,EAAQ,GAAQ,EAAe,GAAa,CAAC,EAAO,IAElD,EAAM,GAAI,GAGV,EAAO,KAAK,MAAM,EAAqB,GAAK,EAC5C,EAAa,GAAK,GAClB,EAAa,GAAK,GAClB,EAAuB,GACzB,EAAY,CAAC,EAAM,EAAqB,GACxC,EAAW,MAAM,OAAS,GACxB,EAAuB,GACzB,EAAY,CAAC,EAAM,EAAqB,GACxC,EAAW,MAAM,OAAS,GAExB,EAAc,EAAc,MAAM,QACxC,SAAY,EAAc,MAAM,OAAS,GAAK,EAEvC,EACH,GAAQ,EAAqB,GAAI,EAAqB,IAAK,GAG1D,GAAM,IAAO,EAAG,CAAC,WClGxB,AAsCA,YAAiC,EAAe,CAG9C,GAAM,GAAqB,CAAC,EAFjB,EAAgB,EAAG,IAAK,SAInC,MAAO,GAAO,UAAU,GAAM,GAEzB,GAAM,IAAO,EAAG,CAAC,WC7CxB,AAoDA,YACI,EAAsB,EAAoB,CAC5C,GAAI,GAAK,EAAgB,EAAG,IAAK,qBAC7B,EAAK,EAAgB,EAAG,IAAK,qBACjC,CAAC,EAAI,GAAM,GAAe,EAAI,GAE9B,GAA2B,EAAG,MAAO,EAAG,OAExC,GAAM,GAAkC,CAAC,EAAG,EAAI,EAAG,GAC7C,EAAQ,GAEd,MAAO,GAAO,UACV,GAAmB,EAAqC,GAGvD,GAAM,IAAoB,EAAG,CAAC,wBCnErC,AAwCA,YAAoC,EAAsB,EAAe,CACvE,GAAM,GAAK,EAAgB,EAAG,IAAK,WACnC,MAAO,GAAQ,EAAI,GAAa,EAAG,MAAO,GAAM,UAG3C,GAAM,IAAU,EAAG,CAAC,cC7C3B,AA2CA,YACI,EAA8B,EAAO,EAAC,CACxC,GAAM,GACF,GAAqB,EAAS,UAAW,QAAS,qBAEtD,AAAK,EACD,EAAS,QAAU,EAAG,IAAM,wCAE5B,EAAS,OAAS,GACpB,AAAK,EACD,GAAQ,EAAS,GAAG,KAAM,IAAM,sCAGtC,GAAM,GAAqB,EACrB,EAAmB,CAAC,QAE1B,MAAO,GAAO,UACV,GAAM,EAAgC,GAGrC,GAAM,IAAQ,EAAG,CAAC,YC/DzB,AAwCA,YAAiC,EAAiB,EAAQ,EAAG,CAG3D,GAAM,GAAqB,CAAC,EAFjB,EAAgB,EAAG,IAAK,SAG7B,EAAmB,CAAC,SAE1B,MAAO,GAAO,UACV,GAAM,EAAgC,GAErC,GAAM,IAAO,EAAG,CAAC,WCjDxB,AA4DA,YACI,EAAsB,EAAiB,EAAe,EACtD,EAAY,EAAG,EAAU,EAAG,EAAe,EAAG,EAAc,EAC5D,EAAiB,EAAC,CAGpB,GAAM,GAA6B,CAAC,EAFzB,EAAgB,EAAG,IAAK,iBAG7B,EAA2B,CAC/B,QACA,MACA,UACA,YACA,UACA,eACA,cACA,kBAGF,MAAO,GAAO,UACV,GAAc,EACd,GAGC,GAAM,IAAe,EAAG,CAAC,mBCnFhC,AAsCA,YAAgC,EAAe,CAG7C,GAAM,GAAoB,CAAC,EAFhB,EAAgB,EAAG,IAAK,QAInC,MAAO,GAAO,UAAU,GAAK,GAExB,GAAM,IAAM,EAAG,CAAC,UC7CvB,AAwCM,YAAmB,EAAsB,EAAgB,CAC7D,GAAc,GACd,GAAM,GAAgB,GAAW,EAAQ,GACzC,GAAI,EAAc,SAAW,EAC3B,KAAM,IAAI,OAAM,sDAGlB,MAAO,IAAW,EADM,KACS,EAAe,GC/ClD,AA+CM,YACF,EAAsB,EACtB,EAAgB,CAElB,GADA,GAAc,GACV,GAAS,MAAQ,EAAM,SAAW,EACpC,KAAM,IAAI,OAAM,iDAElB,GAAM,GAAgB,GAAW,EAAQ,GACzC,GAAI,EAAc,SAAW,GAAK,EAAc,SAAW,EACzD,KAAM,IAAI,OACN,kEAEN,GAAI,EAAc,SAAW,GAAK,GAAS,KACzC,KAAM,IAAI,OACN,gFAGN,MAAO,IAAW,EAAQ,EAAO,EAAe,GChElD,AA+CM,YACF,EAAsB,EACtB,EAAgB,CAElB,GADA,GAAc,GACV,GAAS,MAAQ,EAAM,SAAW,EACpC,KAAM,IAAI,OAAM,kDAElB,GAAM,GAAgB,GAAW,EAAQ,GACzC,GAAI,EAAc,SAAW,GAAK,EAAc,SAAW,EACzD,KAAM,IAAI,OACN,sEAEN,GAAI,EAAc,SAAW,GAAK,GAAS,KACzC,KAAM,IAAI,OACN,2EAGN,MAAO,IAAW,EAAQ,EAAO,EAAe,GChElD,AA+CM,YACF,EAAsB,EACtB,EAAgB,CAElB,GADA,GAAc,GACV,GAAS,MAAQ,EAAM,SAAW,EACpC,KAAM,IAAI,OAAM,kDAElB,GAAM,GAAgB,GAAW,EAAQ,GACzC,GAAI,EAAc,SAAW,GAAK,EAAc,SAAW,EACzD,KAAM,IAAI,OACN,wEAGN,GAAI,EAAc,SAAW,GAAK,GAAS,KACzC,KAAM,IAAI,OACN,2EAGN,MAAO,IAAW,EAAQ,EAAO,EAAe,GCjElD,AA+CM,YACF,EACA,EACA,EAAgB,CAElB,GADA,GAAc,GACV,GAAS,MAAQ,EAAM,SAAW,EACpC,KAAM,IAAI,OAAM,iDAElB,GAAM,GAAgB,GAAW,EAAQ,GACzC,GAAI,EAAc,SAAW,GAAK,EAAc,SAAW,EACzD,KAAM,IAAI,OACN,0EAGN,GAAI,EAAc,SAAW,GAAK,GAAS,KACzC,KAAM,IAAI,OACN,2EAGN,SAAQ,GACJ,EACG,GAAW,EAAQ,EAAO,EAAe,GCpElD,AAmDA,YACI,EAAiB,EAAI,EAAG,EAAS,GAAI,CACvC,GAAM,GAAK,EAAgB,EAAG,IAAK,QACnC,GAAI,EAAG,OAAS,EACd,KAAM,IAAI,OAAM,sDAElB,GAAM,GAAU,EAAG,MAAM,EAAG,MAAM,OAAS,GAC3C,GAAI,EAAI,EACN,KAAM,IAAI,OACN,uDAAuD,cAC5C,KAGjB,GAAM,GAAqB,CAAC,EAAG,GACzB,EAAmB,CAAC,IAAG,UAEvB,CAAC,EAAQ,GAAW,EAAO,UAC7B,GAAM,EAAgC,GAE1C,MAAO,CAAC,SAAQ,WAGX,GAAM,IAAO,EAAG,CAAC,WCzExB,AA4CA,YACI,EAAoB,EAAO,EAAG,EAAS,EAAG,EAC1C,EAAa,CACf,GAAI,GAAS,MAAS,IAAuB,OAC3C,KAAM,IAAI,OAAM,qCAElB,GAAM,GACF,GAAI,IAAY,EAAM,EAAQ,EAAO,GAAsB,GACzD,EAAM,GAAO,EAAO,GAC1B,OAAS,GAAI,EAAG,EAAI,EAAI,OAAO,OAAQ,IACrC,EAAI,OAAO,GAAK,EAAU,YAE5B,MAAO,GAAI,WAGN,GAAM,IAAkB,EAAG,CAAC,sBC3DnC,AA6EA,YACI,EAAiB,EAAO,EAAC,CAC3B,GAAM,GAAK,EAAgB,EAAG,IAAK,SAAU,qBAC7C,EAAO,EAAG,KAAO,EAAG,IAAM,wCAE1B,GAAM,GAAuB,CAAC,EAAG,GAC3B,EAAqB,CAAC,QACtB,CAAC,EAAQ,GAAW,EAAO,UACH,GAAQ,EACR,GAC9B,MAAO,CAAC,SAAQ,WAGX,GAAM,IAAS,EAAG,CAAC,aC1F1B,AA8CA,YACI,EAAiB,EAAiC,EAAmB,CACvE,GAAM,GAAK,EAAgB,EAAG,IAAK,sBAC7B,EACF,EAAgB,EAAY,aAAc,qBAAsB,SACpE,EAAO,GAAM,GAAc,IAAM,oCAEjC,GAAM,GAAmC,CAAC,EAAG,EAAI,WAAY,GACvD,EAAiC,CAAC,eAExC,MAAO,GAAO,UACV,GAAoB,EACpB,GAGC,GAAM,IAAqB,EAAG,CAAC,yBC7DtC,AA0CA,YAAkB,EAAsB,EAAO,EAAC,CAC9C,GAAM,GAAK,EAAgB,EAAG,IAAK,UAAW,qBAC9C,AAAK,EACD,GAAQ,CAAC,EAAG,MAAM,QAAU,EAAO,EAAG,MAAM,OAC5C,IACI,UAAU,iBAAoB,EAAG,MAAM,WAAW,EAAG,MAAM,WAEnE,GAAM,GAAuB,CAAC,MAAO,GAC/B,EAAqB,CAAC,QAE5B,MAAO,GAAO,UACV,GAAQ,EAAgC,GAGvC,GAAM,IAAU,EAAG,CAAC,cCxD3B,AAqCM,YACF,EAAyB,EAAY,GAAM,EAC3C,EAAgB,CAClB,MAAO,GAAO,aAAa,EAAc,EAAW,EAAM,GCxC5D,AAuBM,YAAoB,EAAqB,EAAoB,CACjE,GAAM,GAAU,GAChB,OAAS,GAAI,EAAG,EAAI,EAAS,OAAQ,IACnC,AAAI,EAAS,IACX,EAAQ,KAAK,GAIjB,GAAM,GAAW,GAAO,EAAW,SAE7B,EAAM,GAAO,CAAC,EAAQ,OAAQ,EAAU,QAAS,SACvD,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,CACvC,GAAM,GAAM,EAAS,WAAW,EAAQ,IAClC,EAAS,EAAI,EAAU,OAC7B,EAAI,OAAO,IAAI,EAAK,GAEtB,MAAO,GAAI,WCvCb,AAyCA,kBAA2B,EAA4B,CACrD,GAAM,GACF,EAAgB,EAAW,YAAa,aAAc,QACpD,EAAO,KAAM,GAAW,OACxB,EAAM,GAAU,EAAW,MAAO,GACxC,MAAI,KAAc,GAChB,EAAW,UAEN,EAGF,GAAM,IAAa,GCpD1B,AA6CA,kBACI,EAA2B,EAC3B,EAAa,CACf,GAAM,GAAU,EAAgB,EAAQ,SAAU,YAC5C,EAAQ,EAAgB,EAAM,OAAQ,WAAY,QAElD,EAAW,GAAQ,KAAO,EAAI,EAC9B,EAAU,EAAM,KAChB,EAAc,EAAQ,MAE5B,AAAK,EAAO,EAAU,EAAG,IAAM,yBAC/B,AAAK,GACD,EAAY,MAAM,EAAU,EAAW,GAAU,EAAM,MACvD,qEAEJ,GAAI,GAAc,EAClB,OAAS,GAAI,EAAU,EAAI,EAAW,EAAS,IAC7C,GAAe,EAAY,GAE7B,GAAM,GACF,EAAY,MAAM,EAAG,GAChB,OAAO,CAAC,GAAc,EAAY,MAAM,EAAW,IACtD,EAAiB,EAAQ,EAAS,GAClC,EAAe,EAAQ,EAAO,CAAC,KAC/B,EAAoB,KAAM,IAAW,GACrC,EAAU,GAAQ,EAAmB,CAAC,IAEtC,EAAM,GAAO,EAAgB,EAAS,GAG5C,MAAI,KAAW,GACb,EAAQ,UAEN,IAAS,GACX,EAAM,UAER,EAAQ,UACR,EAAe,UACf,EAAa,UACb,EAAkB,UAEX,EAGF,GAAM,IAAmB,GCzFhC,AAwEA,YACI,EAAsB,EAAgC,YACtD,EAAwB,KAAM,EAAW,GAAK,CAChD,EAAI,EAAgB,EAAG,IAAK,QAE5B,GAAM,GAAO,GAAS,EAAG,EAAK,GAC1B,EAAgB,EAAK,MACzB,GAAI,EAAU,CACZ,GAAM,GAAO,GAAe,EAAM,EAAE,OACpC,EAAgB,AAAU,GAAqB,EAAK,MAAO,GAE7D,MAAO,GAAQ,EAAM,GAGvB,YACI,EAAW,EAAkB,EAAwB,KAAI,CAC3D,GAAI,EAAE,OAAS,EACb,MAAO,IAAI,GAIb,GAAI,EAAE,OAAS,GAAK,IAAS,KAC3B,MAAO,IAAS,EAAQ,EAAG,CAAC,KAAM,EAAG,GAIvC,GAAI,EAAE,OAAS,GAAK,MAAO,IAAS,UAChC,MAAM,QAAQ,IAAS,EAAK,SAAW,EAAG,CAC5C,GAAI,IAAM,EACR,MAAO,IAAI,GAAI,GAAI,GAErB,GAAI,IAAM,SACR,MAAO,IAAI,GAAI,GAAI,GAErB,GAAI,IAAM,UACR,MAAO,IAAI,GAAI,GAAI,GAErB,GAAI,IAAM,aAAe,IAAM,EAE7B,MAAO,IAAK,GAAI,GAAI,GAAI,GAAI,GAAO,EAAG,UAAW,IAGnD,KAAM,IAAI,OAAM,qCAAqC,KAIvD,GAAI,MAAM,QAAQ,IAAS,EAAK,SAAW,EAAG,CAC5C,GAAI,IAAM,EACR,MAAO,IAAI,GAAI,GAAI,GAAI,EAAK,IAAK,EAAK,GAAK,GAE7C,GAAI,IAAM,SACR,MAAO,IAAI,GAAI,GAAI,GAAI,EAAK,IAAK,EAAK,IAExC,GAAI,IAAM,UACR,MAAO,IAAI,GAAI,GAAI,GAAI,EAAK,IAAK,EAAK,IAExC,GAAI,IAAM,OAAS,IAAM,YAEvB,MAAO,IAAK,GAAI,GAAO,GAAI,IAG7B,KAAM,IAAI,OAAM,qCAAqC,KAGvD,KAAM,IAAI,OAAM,gCAAgC,KAG3C,GAAM,IAAO,EAAG,CAAC,WC3IxB,AA2DA,YACI,EAAiB,EAAiB,EAClC,EAAsB,EAAa,GAAI,CACzC,GAAM,GAAK,EAAgB,EAAG,IAAK,iBAC7B,EAAK,EAAgB,EAAG,IAAK,iBAC7B,EAAS,EAAgB,EAAO,QAAS,iBAE/C,GAAiB,EAAI,GACrB,AAAK,EACD,AAAK,GAAY,EAAG,MAAO,EAAG,OAAQ,IAAM,6BAEhD,GAAM,GAAM,GAAO,GACb,EAAgB,GAAI,EAAK,GAE3B,EAAS,EAAI,GAAI,EAAI,GAAK,GAC9B,GAAI,EAAY,CACd,AAAK,EACD,GAAQ,KAAM,IAAM,kDACxB,GAAM,GAAQ,EAAgB,EAAM,OAAQ,iBAC5C,EAAS,GAAI,EAAQ,GAAI,EAAK,GAAI,EAAQ,KAE5C,MAAO,IAAI,EAAI,GAGV,GAAM,IAAgB,EAAG,CAAC,oBCnFjC,AA+CA,YACI,EAA4B,EAC5B,EAAkB,CACpB,GAAM,GAAW,EAAgB,EAAS,UAAW,YAAa,SAC5D,EAAW,EAAgB,EAAS,UAAW,aACrD,AAAgB,GAAc,EAAU,EAAU,GAElD,GAAM,GAA0B,CAAC,QAAS,EAAU,QAAS,GACvD,EAAwB,CAAC,SAG/B,MAAO,GAAO,UACH,GAAW,EACX,GAGN,GAAM,IAAY,EAAG,CAAC,gBChCvB,YACF,EAAuB,EAAsB,EAC7C,EAAqB,CACvB,GAAI,EAAc,QAAU,QAC1B,KAAM,IAAI,OACN,8EACsB,EAAc,UAE1C,GAAI,EAAc,KAAO,EACvB,KAAM,IAAI,OACN,sEACkB,EAAc,UAGtC,GAAM,GAAW,EAAc,KAAO,EAAI,EAAc,MAAM,GAAK,EAC7D,EAAU,EAAc,KAAO,EAAI,EAAc,MAAM,GAAK,EAElE,GAAI,EAAY,SAAW,EACzB,KAAM,IAAI,OACN,kDACI,EAAY,sBAAsB,MAG5C,GAAM,GAAY,EAAa,KAC/B,GAAI,CAAE,GAAa,OAAS,GACtB,EAAa,OAAS,GAAK,IAAc,GAC7C,KAAM,IAAI,OACN,oCACG,EAAa,2BAA2B,MAGjD,GAAI,EAAa,QAAU,EAAc,MACvC,KAAM,IAAI,OAAM,qDC/DpB,AAkEA,YACI,EAAkC,EAClC,EAA0B,EAAkC,EAAC,CAC/D,GAAM,GACF,EAAgB,EAAe,gBAAiB,gBAAiB,SAC/D,EACF,EAAgB,EAAc,eAAgB,iBAC5C,EAAgB,EAClB,EAAc,eAAgB,gBAAiB,EAAc,OAEjE,AAAgB,GACZ,EAAgB,EAAe,EAAa,GAEhD,GAAM,GAA8B,CAClC,cAAe,EACf,aAAc,EACd,aAAc,GAGV,EAA4B,CAAC,eAEnC,MAAO,GAAO,UACV,GAAe,EACf,GAGC,GAAM,IAAgB,EAAG,CAAC,oBC5FjC,AA8DA,YAAmB,EAAsB,EAA0B,CACjE,GAAM,GAAW,EAAgB,EAAS,UAAW,WAAY,SAG3D,EAAyB,CAAC,OAFrB,EAAgB,EAAG,IAAK,YAES,QAAS,GAErD,MAAO,GAAO,UAAU,GAAU,GAG7B,GAAM,IAAW,EAAG,CAAC,eCvE5B,AA4BM,YAAwB,EAAW,EAAqB,CAC5D,GAAI,GAAc,KAChB,MAAO,GAAE,MAAM,QAEjB,GAAI,AAAK,GAAY,EAAE,MAAO,GAC5B,MAAO,GAET,GAAI,EAAE,MAAM,SAAW,EAAW,OAAQ,CACxC,GAAM,GAAyB,GAC/B,OAAS,GAAI,EAAG,EAAI,EAAE,MAAM,OAAQ,IAClC,AAAI,EAAW,IAAM,MAAQ,EAAE,MAAM,IAAM,KACzC,EAAa,KAAK,EAAE,MAAM,IAE1B,EAAa,KAAK,EAAW,IAGjC,MAAO,GAGT,MAAO,GC/CT,AAoDA,YACI,EAAsB,EAAc,EACpC,EAAoB,CACtB,GAAM,GAAK,EAAgB,EAAG,IAAK,WAUnC,GARA,AAAK,EACD,EAAG,QAAU,UACb,IAAM,gFACmB,EAAG,yBAChC,AAAK,EACD,GAAQ,GAAK,EAAO,EACpB,IAAM,qDAAqD,MAE3D,IAAS,EACX,MAAO,aAAa,IAAS,EAAG,QAAU,EAG5C,GAAM,GAAc,GAAc,EAAI,GAChC,EAAW,EAAI,EACf,EAAa,GACf,GAAM,GAAI,GAAc,EAAa,EAAG,EAAG,UAAW,GAAO,IAC7D,GAEJ,MAAO,GAAI,EAAI,GAGV,GAAM,IAAU,EAAG,CAAC,cC9E3B,AAoBM,YAA8B,EAAa,CAE/C,MAAO,MAAK,MAAM,KAAK,IAAI,EAAG,KAAK,KAAK,KAAK,IAAI,GAAS,KAAK,IAAI,MAG/D,YACF,EAAsB,EAAW,EAAS,CAC5C,GAAM,GAAO,EAAI,EAAe,EAC1B,EAAY,GAAI,cAAa,GACnC,OAAS,GAAI,EAAG,EAAI,EAAc,EAAE,EAAG,CACrC,GAAM,GAAU,EAAM,KAAK,GAAK,EAAM,GAAe,EAAO,GAC5D,EAAU,GAAK,EAAI,EAAI,KAAK,IAAI,GAElC,MAAO,IAAS,EAAW,WCjC7B,AAwCA,kBACI,EAA2B,EAAuB,EAAI,EAAC,CACzD,GAAM,GAAe,EAAgB,EAAa,cAAe,UAC3D,EAAW,EAAgB,EAAS,UAAW,UAErD,EACI,EAAa,KAAO,EACpB,IAAM,uEACS,EAAa,QAChC,EACI,EAAa,KAAO,IAAM,EAAS,KACnC,IAAM,mFAEC,EAAa,yBAAyB,EAAS,QAC1D,GACI,EAAa,MAAM,MAAM,EAAG,EAAa,MAAM,OAAS,GACxD,EAAS,MACT,2FAEJ,GAAM,GAAU,EAAa,MAAM,EAAa,MAAM,OAAS,GAC/D,EACI,EAAI,GAAK,GAAK,EACd,IAAM,4EACY,eAAqB,KAE3C,GAAM,GAAkB,KAAM,GAAa,OACrC,EAAc,KAAM,GAAS,OAI7B,CAAC,EAAO,GAAQ,CAAC,EAAgB,OAAS,EAAS,GACnD,EAAY,GAAuB,OAAQ,GAEjD,OAAS,GAAI,EAAG,EAAI,EAAO,IAAK,CAC9B,GAAM,GAAS,EAAI,EACb,EAAO,EAAgB,SAAS,EAAQ,EAAS,GACjD,EAAmD,GACzD,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAC/B,EAAU,KAAK,CAAC,MAAO,EAAK,GAAI,MAAO,IAEzC,EAAU,KAAK,CAAC,EAAG,IAAM,EAAE,MAAQ,EAAE,OAErC,EAAU,GAAK,EACf,OAAS,GAAI,EAAG,EAAI,EAAG,IACrB,GAAI,EAAU,GAAG,QAAU,EAAY,GAAI,CACzC,EAAU,GAAK,EACf,OAKN,MAAI,KAAgB,GAClB,EAAa,UAEX,IAAY,GACd,EAAS,UAIJ,GAAO,EAAW,EAAS,MAAO,QAGpC,GAAM,IAAc,GCtG3B,sECAA,AA+CA,YACI,EAAM,EAAO,EACb,EACA,EACA,EAA4B,OAC5B,EAAwC,CAC1C,GAAI,GAAM,EACV,AAAI,EAAE,OAAS,GACb,GAAM,EAAQ,EAAG,CAAC,EAAG,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,MAEvD,GAAI,GAAO,EACX,AAAI,EAAK,OAAS,GAChB,GAAO,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAE5D,AAAK,EACD,EAAI,OAAS,EACb,IAAM,iEACC,EAAI,UACf,AAAK,EACD,EAAK,OAAS,EACd,IAAM,8DACC,EAAK,UAChB,AAAK,EACD,EAAY,SAAW,EACvB,IAAM,mEACC,MACX,GAAM,GAAU,IAAe,OAAS,EAAI,MAAM,GAAK,EAAI,MAAM,GAC3D,EAAW,IAAe,OAAS,EAAK,MAAM,GAAK,EAAK,MAAM,GACpE,AAAK,EACD,IAAY,EAAY,GACxB,IAAM,4CAA4C,wCACd,EAAY,OACpD,AAAK,EACD,IAAa,EAAY,GACzB,IAAM,0CAA0C,0CACV,EAAY,QAClD,GAAmB,MACrB,AAAK,EACD,AAAK,GAAM,GACX,IAAM,gFACiB,iBAA+B,MAG5D,GAAM,GAAqC,CAAC,EAAG,EAAK,GAAI,GAClD,EACF,CAAC,UAAS,MAAK,aAAY,kBAAiB,eAGhD,MAAO,GAAO,UACH,GAAsB,EACtB,GAGN,GAAM,IAAuB,EAAG,CAAC,2BCpGxC,AAgCM,YACF,EAAY,EAAW,EAAsB,CAC/C,GAAI,GAAc,MAAQ,IAAe,SACvC,MAAO,GAET,GAAI,IAAe,OACjB,MAAO,GAAI,EAAI,GAAK,IAEtB,KAAM,IAAI,OACN,gDAAgD,MAIhD,YACF,EAAc,EAAoB,CACpC,GAAI,GAAM,EACJ,EACF,AAAe,GAAiB,EAAK,MAAO,EAAa,OAC7D,MAAI,GAAW,OAAS,GACtB,GAAM,GAAI,EAAK,IAEV,EAAQ,EAAK,EAAK,OAGrB,YACF,EAAW,EAAwB,EACnC,EAAuB,CACzB,GAAI,IAAe,SACjB,MAAO,GACF,GAAI,IAAe,OACxB,MAAO,IAAK,GACP,GAAI,IAAe,MACxB,MAAO,IAAI,GACN,GAAI,IAAe,QACxB,MAAO,IAAM,GACR,GAAI,IAAe,QACxB,MAAO,IAAM,EAAG,GACX,GAAI,IAAe,YACxB,MAAO,IAAU,EAAG,GAEtB,KAAM,IAAI,OAAM,4BAA4B,MAIvC,GAAM,IAAa,CAAC,EAAuB,IAEzC,CADc,GAAgB,IACb,IAAe,SC9EzC,AA+FA,YAAmD,CACjD,IACA,SACA,UACA,MACA,aAAa,OACb,YAAY,CAAC,EAAG,GAChB,kBACA,OACA,aAAa,SACb,yBACA,kBAaD,CAGC,GAFA,EAAa,GAAc,SAEvB,GAAW,EAAO,MAAM,cAAe,KAAgB,GAAO,CAChE,GAAI,GAAS,GACT,EAAG,EAAQ,EAAS,EAAK,EAAY,EAAW,GACpD,MAAI,IAAQ,MACV,GAAS,GAAI,EAAQ,IAGhB,GACI,EAAQ,EAAY,EAAwB,GAGzD,GAAM,GAAK,EAAgB,EAAG,IAAK,UAC7B,EAAU,EAAgB,EAAQ,SAAU,UAE9C,EAAM,EACN,EAAe,GAEnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAE3D,AAAK,EACD,EAAI,OAAS,EACb,IAAM,6DACC,EAAI,SACf,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,8DACC,EAAQ,SACf,GAAmB,MACrB,AAAK,EACD,AAAK,GAAM,GACX,IAAM,6EACiB,iBAA+B,MAG5D,AAAK,EACD,EAAI,MAAM,KAAO,EAAQ,MAAM,GAC/B,IAAM,oCAAoC,EAAI,MAAM,yCACtB,EAAQ,MAAM,OAChD,AAAK,EACD,AAAU,GAA+B,EAAS,GAClD,IAAM,uEACa,oBAA0B,MACjD,AAAK,EACD,IAAe,OACf,IAAM,sCACF,2CAER,GAAM,GAAW,AAAU,GACvB,EAAI,MAAO,EAAQ,MAAO,EAAS,EAAW,EAAK,GAEnD,EACJ,AAAI,GAAQ,MACV,GAAQ,EAAgB,EAAM,OAAQ,gBACtC,CAAC,GAAS,GAAe,EAAO,GAEhC,AAAe,GAA2B,EAAS,SAAU,EAAM,QAGrE,GAAI,GACJ,AAAI,GAA0B,MAC5B,GAA0B,EACtB,EAAwB,gBAAiB,iBAG/C,GAAM,GAAO,CAAC,EAAc,IAAmB,CAC7C,GAAM,CAAC,EAAS,EAAK,EAAG,GACpB,EAEE,EAAe,GAAqB,EAAI,EAAG,GAEjD,AAAK,EACD,AAAU,GAAkB,GAC5B,IAAM,uHAEoD,MAE9D,GAAM,GACF,GAAoB,EAAI,MAAO,EAAc,EAAS,EAAS,GAC7D,EACF,GAAqB,EAAK,EAAc,EAAQ,MAAO,EAAS,GAC9D,EAAgB,CAAC,EAAM,GAE7B,GAAI,GAAS,KAAM,CACjB,GAAM,GAAU,GAAqB,EAAO,GAC5C,EAAI,KAAK,GAEX,MAAO,IAGH,EAA4B,CAChC,EAAG,EACH,OAAQ,EACR,KAAM,EACN,uBAAwB,GAGpB,EAA0B,CAC9B,UACA,MACA,aACA,YACA,kBACA,aACA,kBAKF,MAAI,IAAQ,KAmBH,AAjBH,GAAW,CAAC,EAAe,EAAkB,IAAsB,CACjE,GAAI,GAEA,EAAO,UACH,GAAa,EACb,GAER,SAAK,CAAC,EAAQ,EAAK,IAEf,GAEF,GAAM,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,MAIrD,CAAC,MAAO,EAAK,SAAU,KAEpB,EAAK,GAmBd,AAjBkB,GACrB,CAAC,EAAe,EAAkB,EAAc,IAAsB,CACpE,GAAI,GAAyB,EAAO,UAChC,GAAa,EACb,GAEJ,SAAK,CAAC,EAAQ,EAAK,EAAK,IAEpB,GAEF,GAAM,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,MAIrD,CAAC,MAAO,EAAK,SAAU,KAGZ,EAAK,EAAS,GAGnC,GAAM,IAAS,EAAG,CAAC,kBCjR1B,AAyBA,YACI,EAAM,EAAO,EACb,EAAkC,EAClC,EAAqC,CAAC,EAAG,GACzC,EAAwC,CAC1C,GAAI,GAAM,EACV,AAAI,EAAE,OAAS,GACb,GAAM,EAAQ,EAAG,CAAC,EAAG,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,MAEvD,GAAI,GAAO,EACX,AAAI,EAAK,OAAS,GAChB,GAAO,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAG5D,GAAM,GAAoD,CAAC,EAAG,EAAK,GAAI,GACjE,EACF,CAAC,UAAS,MAAK,kBAAiB,YAAW,eAG/C,MAAO,GAAO,UACH,GACA,EAAgC,GAItC,GAAM,IACT,EAAG,CAAC,0CCnDR,AAyBA,YACI,EAA0C,EAAO,EACjD,EAAkC,EAClC,EAAqC,CAAC,EAAG,GACzC,EAAwC,CAC1C,GAAI,GAAO,EACP,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAO,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAG5D,GAAM,GAAmD,CAAC,GAAI,EAAM,UAC9D,EACF,CAAC,UAAS,MAAK,kBAAiB,YAAW,WAAY,GAErD,EAEF,EAAO,UACH,GAAoC,EACpC,GAER,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAEtD,EAGF,GAAM,IACT,EAAG,CAAC,yCCtDR,AA0FA,YAA4D,CAC1D,IACA,SACA,UACA,MACA,aAAa,OACb,YAAY,CAAC,EAAG,GAChB,kBACA,OACA,aAAa,SACb,yBACA,kBAaD,CACC,GAAI,GAAW,EAAO,MAAM,cAAe,KAAgB,GAAO,CAChE,GAAI,GAAS,GACT,EAAG,EAAQ,EAAS,EAAK,EAAY,EAAW,GACpD,MAAI,IAAQ,MACV,GAAS,GAAI,EAAQ,IAGhB,GACI,EAAQ,EAAY,EAAwB,GAGzD,GAAM,GAAK,EAAgB,EAAG,IAAK,mBAC7B,EAAU,EAAgB,EAAQ,SAAU,mBAE9C,EAAM,EACN,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAE3D,AAAK,EACD,EAAI,OAAS,EACb,IAAM,sEACM,EAAI,SACpB,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,uEACc,EAAQ,SAChC,AAAK,EACD,EAAI,MAAM,KAAO,EAAQ,MAAM,GAC/B,IAAM,6DACE,EAAI,MAAM,qDACJ,EAAQ,MAAM,OAC5B,GAAa,MACf,GAAY,CAAC,EAAG,IAElB,AAAK,EACD,AAAU,GAA+B,EAAS,GAClD,IACI,sFACqB,oBAA0B,MAEnD,GAAmB,MACrB,AAAK,EACD,AAAK,GAAM,GACX,IAAM,qFACuB,iBAA+B,MAGlE,GAAM,GAAW,AAAU,GACvB,EAAI,MAAO,EAAQ,MAAO,EAAS,EAAW,EAAK,EACnD,IAEA,EACJ,AAAI,GAAQ,MACV,GAAQ,EAAgB,EAAM,OAAQ,gBACtC,CAAC,GAAS,GAAe,EAAO,GAEhC,AAAe,GAA2B,EAAS,SAAU,EAAM,QAGrE,GAAI,GACJ,AAAI,GAA0B,MAC5B,GAA0B,EACtB,EAAwB,gBAAiB,0BAG/C,GAAM,GAAO,CAAC,EAAc,IAAmB,CAC7C,AAAK,EACD,AAAU,GAAkB,GAC5B,IAAM,mHAEE,MACZ,GAAM,CAAC,EAAS,EAAK,EAAG,GAAQ,EAE1B,EAAe,GAAqB,EAAI,EAAG,GAE3C,EAAO,GACR,EAAiB,MAAO,EAAc,EAAqB,EAC5D,EAAK,EAAW,GACd,EAAY,GACd,EAAiB,EAAe,EAAqB,MAAO,EAC5D,EAAK,EAAW,GAEpB,GAAI,GAAQ,KAAM,CAChB,GAAM,GAAU,GAAqB,EAAO,GAC5C,MAAO,CAAC,EAAM,EAAW,GAE3B,MAAO,CAAC,EAAM,IAGV,EAAqC,CACzC,EAAG,EACH,OAAQ,EACR,KAAM,EACN,uBAAwB,GAEpB,EAAmC,CACvC,UACA,MACA,aACA,YACA,kBACA,aACA,kBAKF,MAAI,IAAQ,KAkBH,AAhBH,GAAW,CAAC,EAAe,EAAkB,IAAsB,CAEjE,GAAI,GAAyB,EAAO,UAChC,GAAsB,EACtB,GAEJ,SAAK,CAAC,EAAQ,EAAK,IAEf,GAEF,GAAM,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,MAIrD,CAAC,MAAO,EAAK,SAAU,KAEpB,EAAK,GAoBd,AAlBkB,GACrB,CAAC,EAAe,EAAkB,EAAc,IAAsB,CAEpE,GAAI,GAAyB,EAAO,UAChC,GAAsB,EACtB,GAEJ,SAAK,CAAC,EAAQ,EAAK,EAAK,IAEpB,GAEF,GAAM,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,MAIrD,CAAC,MAAO,EAAK,SAAU,KAGZ,EAAK,EAAS,GAGnC,GAAM,IAAkB,EAAG,CAAC,2BCzQnC,AAyDA,YAAwC,CACtC,IACA,IACA,aAAa,GACb,aAAa,GACb,OACA,aAAa,SACb,yBACA,kBAUD,CACG,GAAI,GAAW,EAAO,MAAM,cAAe,KAAgB,GAAO,CAChE,GAAI,GAAS,GAAc,EAAG,EAAG,EAAY,GAC7C,MAAI,IAAQ,MACV,GAAS,GAAI,EAAQ,IAGhB,GACI,EAAQ,EAAY,EAAwB,GAIzD,GAAI,GAAK,EAAgB,EAAG,IAAK,gBAC7B,EAAK,EAAgB,EAAG,IAAK,gBACjC,CAAC,EAAI,GAAM,GAAe,EAAI,GAE9B,GAAM,GACF,EAAa,EAAG,MAAM,EAAG,KAAO,GAAK,EAAG,MAAM,EAAG,KAAO,GACtD,EACF,EAAa,EAAG,MAAM,EAAG,KAAO,GAAK,EAAG,MAAM,EAAG,KAAO,GAEtD,EACF,EAAa,EAAG,MAAM,EAAG,KAAO,GAAK,EAAG,MAAM,EAAG,KAAO,GACtD,EACF,EAAa,EAAG,MAAM,EAAG,KAAO,GAAK,EAAG,MAAM,EAAG,KAAO,GAEtD,EAAa,EAAG,MAAM,MAAM,EAAG,IAC/B,EAAa,EAAG,MAAM,MAAM,EAAG,IAC/B,EAAY,AAAK,GAAc,GAC/B,EAAY,AAAK,GAAc,GAErC,AAAK,EACD,EAAG,MAAQ,GAAK,EAAG,MAAQ,GAAK,EAAG,OAAS,EAAG,KAC/C,IAAM,kFACoB,EAAG,YAAY,EAAG,SAEhD,AAAK,EACD,AAAK,GAAY,EAAY,GAC7B,IAAM,4CAA4C,WAC3C,6BAAsC,EAAG,aACzC,EAAG,qBAEd,AAAK,EACD,IAAgB,EAChB,IAAM,wCAAwC,WACvC,6BAAuC,EAAG,aAC1C,EAAG,wBAAwB,oBACX,iBAE3B,GAAM,GAAW,EAAG,MAAM,MAAM,EAAG,IAAI,OAAO,CAAC,EAAa,IAEtD,EAAgB,EAClB,EAAQ,EAAI,CAAC,EAAW,EAAa,IACrC,EAAQ,EAAI,CAAC,EAAW,EAAa,IACnC,EAAgB,EAClB,EAAQ,EAAI,CAAC,EAAW,EAAa,IACrC,EAAQ,EAAI,CAAC,EAAW,EAAa,IAErC,EACJ,AAAI,GAAQ,MACV,GAAQ,EAAgB,EAAM,OAAQ,gBACtC,CAAC,GAAS,GAAe,EAAO,GAEhC,AAAe,GAA2B,EAAU,EAAM,QAG5D,GAAI,GACJ,AAAI,GAA0B,MAC5B,GAA0B,EACtB,EAAwB,gBAAiB,iBAG/C,GAAM,GAAO,CAAC,EAAc,IAAmB,CAC7C,GAAM,CAAC,EAAK,EAAK,EAAG,GAAS,EAIvB,EACF,GAAqB,EAAQ,EAAI,EAAE,OAAQ,EAAG,GAC9C,GACA,EAgBJ,GAdA,AAAI,CAAC,GAAc,CAAC,EAClB,IAAO,GAAc,EAAc,EAAK,GAAO,IAC/C,EAAO,GAAc,EAAK,EAAc,GAAM,KACzC,AAAI,CAAC,GAAc,EACxB,IAAO,GAAc,EAAc,EAAK,GAAO,IAC/C,EAAO,GAAc,EAAc,EAAK,GAAM,KACzC,AAAI,GAAc,CAAC,EACxB,IAAO,GAAc,EAAK,EAAc,GAAO,IAC/C,EAAO,GAAc,EAAK,EAAc,GAAO,KAE/C,IAAO,GAAc,EAAK,EAAc,GAAM,IAC9C,EAAO,GAAc,EAAc,EAAK,GAAM,KAG5C,GAAQ,KAAM,CAChB,GAAM,IAAU,GAAqB,EAAO,GAC5C,MAAO,CAAC,GAAM,EAAM,QAEpB,OAAO,CAAC,GAAM,IAIZ,EAA6B,CACjC,EAAG,EACH,EAAG,EACH,KAAM,EACN,uBAAwB,GAEpB,EACF,CAAC,aAAY,aAAY,aAAY,kBAIzC,MAAI,IAAQ,KAaH,AAXH,GAAW,CAAC,EAAe,EAAe,IAAsB,CAC9D,GAAM,GAEF,EAAO,UACH,GAAc,EACd,GAER,SAAK,CAAC,EAAK,EAAK,IAET,CAAC,MAAO,EAAQ,EAAK,GAAW,SAAU,KAEvC,EAAK,GAed,AAbkB,GACrB,CAAC,EAAe,EAAe,EAAe,IAAsB,CAClE,GAAM,GAEF,EAAO,UACH,GAAc,EACd,GAER,SAAK,CAAC,EAAK,EAAK,EAAK,IAEd,CAAC,MAAO,EAAQ,EAAK,GAAW,SAAU,KAG/B,EAAK,EAAK,GAI/B,GAAM,IAAS,EAAG,CAAC,kBP9N5B,AQAA,AAiCA,YAAwB,EAAoB,CAC1C,MAAO,IAAa,EAAc,IAAM,KAEnC,GAAM,IAAgB,EAAG,CAAC,oBCpCjC,AAiCA,YAAqB,EAAoB,CACvC,MAAO,IAAa,EAAc,GAAK,IAGlC,GAAM,IAAa,EAAG,CAAC,iBCrC9B,AAyCA,YACI,EAAkB,EAAqB,EAAmB,EAAS,GACnE,EAAW,EAAC,CACd,GAAI,GAAQ,EACN,EAAmB,GACzB,KAAO,EAAQ,GAAe,EAAO,MACnC,EAAO,KAAK,GAAM,EAAQ,EAAO,IACjC,GAAS,EAGX,GAAI,EACF,KAAO,EAAQ,EAAO,MAAM,CAC1B,GAAM,GAAU,EAAQ,EAAe,EAAO,KACxC,EAAM,GAAO,CACjB,GAAM,EAAQ,EAAO,EAAc,GAAS,GAAK,CAAC,GAAS,KAE7D,EAAO,KAAK,GACZ,GAAS,EAIb,MAAI,GAAO,SAAW,EACb,GAAS,GAAI,CAAC,EAAG,IAGnB,EAAQ,GAAO,GAAS,CAAC,EAAO,OAAQ,IAE1C,GAAM,IAAQ,EAAG,CAAC,YCpEzB,AA4CA,YACI,EAAkB,EAAqB,EACvC,EACA,EAAyC,GAAU,CACrD,AAAI,GAAa,MACf,GAAY,GAAoB,IAElC,GAAM,GAAe,GAAM,EAAQ,EAAa,GAC1C,EAAiB,EAAI,EAAc,EAAS,IAC5C,EAAmB,GACzB,OAAS,GAAI,EAAG,EAAI,EAAa,MAAM,GAAI,IACzC,EAAO,KACH,GAAK,GAAM,EAAgB,CAAC,EAAG,GAAI,CAAC,EAAG,IAAe,IAE5D,MAAO,IAAO,GAET,GAAM,IAAO,EAAG,CAAC,WC5DxB,AAmDA,YACI,EACA,EACA,EACA,EACA,EAA+B,WAC/B,EAAqB,EAAC,CAExB,GAAM,GAAS,EAAgB,EAAO,QAAS,iBACzC,EAAS,EAAgB,EAAO,QAAS,gBAAiB,WAC1D,EAAU,EAAgB,EAAQ,SAAU,gBAAiB,SAE7D,EAAW,EAAO,MAAM,GAE9B,AAAK,EACD,EAAO,OAAS,EAChB,IAAM,6DACc,EAAO,SAC/B,AAAK,EACD,EAAO,OAAS,GAAK,EAAO,MAAM,KAAO,EACzC,IAAM,oDAAoD,sBACrC,EAAO,UAChC,AAAK,EACD,EAAQ,OAAS,GAAK,EAAQ,MAAM,KAAO,EAC3C,IAAM,qDAAqD,oBACtC,EAAO,UAChC,AAAK,EACD,EAAS,SAAW,EACpB,IAAM,wEACQ,EAAS,WAC3B,AAAK,EACD,EAAS,IAAM,GAAK,EAAS,IAAM,EACnC,IAAM,2CAA2C,KACrD,AAAK,EACD,IAAW,YAAc,IAAW,UACpC,IAAM,+CAA+C,KAEzD,GAAM,GACoB,CAAC,MAAO,EAAQ,MAAO,EAAQ,OAAQ,GAC3D,EAA4B,CAAC,SAAQ,qBAAoB,YAI/D,MAHY,GAAO,UACf,GAAe,EACf,GAIC,GAAM,IAAgB,EAAG,CAAC,oBCjGjC,AAiCA,YAAwB,EAA0B,CAChD,GAAM,GAAS,EAAgB,EAAO,QAAS,gBAAiB,WAEhE,AAAK,EACD,EAAO,OAAS,EAChB,IAAM,6DACc,EAAO,SAE/B,GAAM,GAA8B,CAAC,MAAO,GAG5C,MADI,GAAO,UAAU,GAAe,EAAgC,IAI/D,GAAM,IAAgB,EAAG,CAAC,oBC/CjC,AA4CA,YACI,EAA4B,EAC5B,EAA6C,EAC7C,EAAkC,GAAG,CACvC,GAAM,GAAS,EAAgB,EAAO,QAAS,mBAAoB,WAEnE,AAAK,EACD,EAAO,OAAS,EAChB,IAAM,gEACc,EAAO,SAE/B,GAAM,GAAiC,CAAC,MAAO,GACzC,EAA+B,CAAC,UAAS,YAAW,UAI1D,MAHY,GAAO,UACf,GAAkB,EAClB,GAIC,GAAM,IAAmB,EAAG,CAAC,uBC/DpC,AAoBA,YACI,EAAiB,EAAkB,EACnC,EAAsB,EAAwB,EAAqB,CAMrE,AAAI,GAAgB,MAClB,GAAe,IAEb,GAAkB,MACpB,GAAiB,OAAO,mBAEtB,GAAgB,MAClB,GAAe,GAGjB,GAAM,GAAW,EAAM,MAAM,GAC7B,SAAgB,KAAK,IAAI,EAAe,GAExC,AAAK,EACD,GAAK,GAAgB,GAAgB,EACrC,IAAM,4CAA4C,MACtD,AAAK,EACD,EAAM,OAAS,EACf,IAAM,+CAA+C,EAAM,SAC/D,AAAK,EACD,EAAM,MAAM,KAAO,EACnB,IACI,oDAAoD,EAAM,MAAM,MACxE,AAAK,EAAO,EAAO,OAAS,EAAG,IAAM,8BACrC,AAAK,EACD,EAAO,MAAM,KAAO,EACpB,IAAM,sDAAsD,cAC7C,EAAO,MAAM,MAChC,AAAK,EACD,GAAK,GAAgB,GAAgB,EACrC,IAAM,4CAA4C,MAC/C,CAAC,gBAAe,eAAc,iBAAgB,gBC3DvD,AA4CA,YACI,EAA4B,EAC5B,EAAuB,EAAe,GACtC,EAAiB,OAAO,kBAAiB,CAC3C,GAAM,GAAS,EAAgB,EAAO,QAAS,qBACzC,EAAU,EAAgB,EAAQ,SAAU,qBAE5C,EAAS,GACX,EAAQ,EAAS,EAAe,EAAc,GAClD,EAAgB,EAAO,cACvB,EAAe,EAAO,aACtB,EAAiB,EAAO,eAExB,GAAM,GAAQ,CAAC,gBAAe,eAAc,kBAC5C,MAAO,GAAO,UACV,GAAqB,CAAC,MAAO,EAAQ,OAAQ,GAAU,GAGtD,GAAM,IAAoB,EAAG,CAAC,wBC9DrC,AA8BM,YACF,EAAU,EAAY,EAAmC,CAC3D,GAAM,GAAQ,GAAa,EAAK,EAAS,GACnC,EAAiB,EAAQ,EAAI,CAAE,GAAQ,GAAK,EAClD,EAAI,OAAO,EAAgB,EAAG,GAkB1B,YACF,EAAU,EAAW,EAAmC,CAC1D,MAAO,IAAc,EAAK,EAAQ,GAAc,IAUlD,YAA8B,EAAM,EAAI,CACtC,MAAO,GAAI,EAAI,EAAI,EAAI,EAAI,GAAK,EAGlC,YACI,EAAU,EAAW,EAAkC,CACzD,GAAI,GAAO,EACP,EAAQ,EAAI,OACZ,EAAS,EACT,EAAQ,GACZ,KAAO,EAAO,GAAO,CACnB,EAAS,EAAS,GAAQ,IAAU,GACpC,GAAM,GAAgB,EAAW,EAAQ,EAAI,IAC7C,AAAI,EAAgB,EAClB,EAAO,EAAS,EAEhB,GAAQ,EAGR,EAAQ,CAAC,GAIb,MAAO,GAAQ,EAAO,CAAC,EAAO,ECvFhC,AAmCM,YACF,EAAmB,EAAoB,EACvC,EAAsB,EAAsB,CAC9C,MAAO,IACH,EAAO,EAAQ,EAAe,EAAc,EAC5C,GAGA,YACF,EAAmB,EAAoB,EACvC,EAAsB,EACtB,EAA2B,CAC7B,MAAO,IACH,EAAO,EAAQ,EAAe,EAAc,EAC5C,EAAsB,GACtB,EAA6C,IAI7C,YACF,EAAmB,EAAoB,EACvC,EAAsB,EACtB,EAAoB,CACtB,MAAO,IACH,EAAO,EAAQ,EAAe,EAAc,EAAgB,EAC5D,IAGN,YACI,EAAmB,EAAoB,EACvC,EAAsB,EAAwB,EAC9C,EAAqB,GAAO,EAAqB,GACjD,EAAqB,GAAK,CAG5B,GAAM,GAAa,GAEnB,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,IACjC,AAAI,EAAO,GAAK,GACd,EAAW,KAAK,CAAC,MAAO,EAAO,GAAI,SAAU,EAAG,mBAAoB,IAIxE,EAAW,KAAK,IAIhB,GAAM,GAAQ,EAAe,EAAK,IAAO,EAAgB,EAEnD,EAA4B,GAC5B,EAA2B,GAEjC,KAAO,EAAgB,OAAS,GAAiB,EAAW,OAAS,GAAG,CACtE,GAAM,GAAY,EAAW,MACvB,CAAC,MAAO,EAAe,WAAU,sBAAsB,EAE7D,GAAI,EAAgB,EAClB,MASF,GAAI,GAAkB,GACtB,OAAS,GAAI,EAAgB,OAAS,EAAG,GAAK,EAAoB,EAAE,EAAG,CACrE,GAAM,GAAM,GAAsB,EAAO,EAAU,EAAgB,IAEnE,GAAI,GAAO,EAAc,CACvB,EAAkB,GAClB,MAMF,GAHA,EAAU,MACN,EAAU,MAAQ,GAAe,EAAc,EAAO,GAEtD,EAAU,OAAS,EACrB,MAWJ,EAAU,mBAAqB,EAAgB,OAE1C,GAGH,CAAI,EAAU,QAAU,EACtB,GAAgB,KAAK,GACrB,EAAe,KAAK,EAAU,QACrB,EAAU,MAAQ,GAG3B,GAAa,EAAY,EAAW,KAM1C,GAAM,GAAe,EAAgB,OAC/B,EAAa,EAAgB,EAEnC,AAAI,GAAsB,EAAa,GACrC,GAAgB,KAAK,GAAG,GAAI,OAAM,GAAY,KAAK,IACnD,EAAe,KAAK,GAAG,GAAI,OAAM,GAAY,KAAK,KAGpD,GAAM,GAAkC,CAAC,mBAEzC,MAAI,IACF,GAAO,eAAoB,GAGzB,GACF,GAAO,aAAkB,GAGpB,EAGT,YAA+B,EAAmB,EAAW,EAAS,CACpE,GAAM,GAAS,EAAM,SAAS,EAAI,EAAG,EAAI,EAAI,GACvC,EAAS,EAAM,SAAS,EAAI,EAAG,EAAI,EAAI,GACvC,EAAQ,KAAK,IAAI,EAAO,GAAI,EAAO,IACnC,EAAQ,KAAK,IAAI,EAAO,GAAI,EAAO,IACnC,EAAQ,KAAK,IAAI,EAAO,GAAI,EAAO,IACnC,EAAQ,KAAK,IAAI,EAAO,GAAI,EAAO,IACnC,EAAQ,KAAK,IAAI,EAAO,GAAI,EAAO,IACnC,EAAQ,KAAK,IAAI,EAAO,GAAI,EAAO,IACnC,EAAQ,KAAK,IAAI,EAAO,GAAI,EAAO,IACnC,EAAQ,KAAK,IAAI,EAAO,GAAI,EAAO,IACnC,EAAS,GAAQ,GAAU,GAAQ,GACnC,EAAS,GAAQ,GAAU,GAAQ,GACzC,GAAI,GAAS,GAAK,GAAS,EACzB,MAAO,GAET,GAAM,GAAmB,KAAK,IAAI,EAAO,GACnC,EAAmB,KAAK,IAAI,EAAO,GACnC,EAAmB,KAAK,IAAI,EAAO,GACnC,EAAmB,KAAK,IAAI,EAAO,GACnC,EAAmB,KAAK,IAAI,EAAmB,EAAkB,GACnE,KAAK,IAAI,EAAmB,EAAkB,GAClD,MAAO,GAAoB,GAAQ,EAAQ,GAO7C,YAAwB,EAAsB,EAAe,EAAW,CACtE,GAAM,GAAS,KAAK,IAAI,EAAQ,EAAM,GACtC,MAAO,IAAO,EAAe,EAAS,EAGxC,YAA6B,EAAe,EAAa,CAKvD,MAAQ,GAAG,MAAQ,EAAG,OAChB,EAAG,QAAU,EAAG,OAAW,EAAG,SAAW,EAAG,SC3MpD,AA4CA,kBACI,EAA4B,EAC5B,EAAuB,EAAe,GACtC,EAAiB,OAAO,kBAAiB,CAC3C,GAAM,GAAS,EAAgB,EAAO,QAAS,0BACzC,EAAU,EAAgB,EAAQ,SAAU,0BAE5C,EAAS,GACX,EAAQ,EAAS,EAAe,EAAc,GAClD,EAAgB,EAAO,cACvB,EAAe,EAAO,aACtB,EAAiB,EAAO,eAExB,GAAM,GAAiB,KAAM,SAAQ,IAAI,CAAC,EAAO,OAAQ,EAAQ,SAC3D,EAAY,EAAe,GAC3B,EAAa,EAAe,GAK5B,CAAC,mBAAmB,GACtB,EAAW,EAAY,EAAe,EAAc,GACxD,MAAI,KAAW,GACb,EAAO,UAEL,IAAY,GACd,EAAQ,UAGH,GAAS,EAAiB,SAG5B,GAAM,IAAyB,GC5EtC,AAyDA,YACI,EAA4B,EAC5B,EAAuB,EAAe,GACtC,EAAiB,OAAO,kBACxB,EAAe,EAAG,CACpB,GAAM,GAAS,EAAgB,EAAO,QAAS,qBACzC,EAAU,EAAgB,EAAQ,SAAU,qBAE5C,EAAS,GACX,EAAQ,EAAS,EAAe,EAAc,EAC9C,GACJ,EAAgB,EAAO,cACvB,EAAe,EAAO,aACtB,EAAiB,EAAO,eACxB,EAAe,EAAO,aAEtB,GAAM,GAAoC,CAAC,MAAO,EAAQ,OAAQ,GAC5D,EACF,CAAC,gBAAe,eAAc,iBAAgB,gBAG5C,EAAS,EAAO,UACH,GAAqB,EACrB,GAEnB,MAAO,CAAC,gBAAiB,EAAO,GAAI,eAAgB,EAAO,IAGtD,GAAM,IAA6B,EAAG,CAAC,iCCrF9C,AAqDA,kBACI,EAA4B,EAC5B,EAAuB,EAAe,GACtC,EAAiB,OAAO,kBACxB,EAAe,EAAG,CACpB,GAAM,GAAS,EAAgB,EAAO,QAAS,0BACzC,EAAU,EAAgB,EAAQ,SAAU,0BAE5C,EAAS,GACX,EAAQ,EAAS,EAAe,EAAc,EAC9C,GACJ,EAAgB,EAAO,cACvB,EAAe,EAAO,aACtB,EAAiB,EAAO,eACxB,EAAe,EAAO,aAEtB,GAAM,GAAiB,KAAM,SAAQ,IAAI,CAAC,EAAO,OAAQ,EAAQ,SAC3D,EAAY,EAAe,GAC3B,EAAa,EAAe,GAK5B,CAAC,kBAAiB,kBAAkB,GACtC,EAAW,EAAY,EAAe,EAAc,EACpD,GAEJ,MAAI,KAAW,GACb,EAAO,UAEL,IAAY,GACd,EAAQ,UAGH,CACL,gBAAiB,GAAS,EAAiB,SAC3C,eAAgB,GAAS,IAItB,GAAM,IAAkC,GC7F/C,AAmDA,YACI,EAA4B,EAC5B,EAAuB,EAAe,GACtC,EAAiB,OAAO,kBACxB,EAAqB,GAAK,CAC5B,GAAM,GAAS,EAAgB,EAAO,QAAS,qBACzC,EAAU,EAAgB,EAAQ,SAAU,qBAE5C,EAAS,GACX,EAAQ,EAAS,EAAe,EAAc,EAC9C,MACE,EAAiB,EAAO,cACxB,EAAgB,EAAO,aACvB,EAAkB,EAAO,eAEzB,EAAoC,CAAC,MAAO,EAAQ,OAAQ,GAC5D,EAAkC,CACtC,cAAe,EACf,aAAc,EACd,eAAgB,EAChB,sBAII,EAAS,EAAO,UACH,GAAqB,EACrB,GAEnB,MAAO,CAAC,gBAAiB,EAAO,GAAI,aAAc,EAAO,IAGpD,GAAM,IAA0B,EAAG,CAAC,8BClF3C,AAgDA,kBACI,EAA4B,EAC5B,EAAuB,EAAe,GACtC,EAAiB,OAAO,kBACxB,EAAqB,GAAK,CAC5B,GAAM,GAAS,EAAgB,EAAO,QAAS,0BACzC,EAAU,EAAgB,EAAQ,SAAU,0BAE5C,EAAS,GACX,EAAQ,EAAS,EAAe,EAAc,EAC9C,MACE,EAAiB,EAAO,cACxB,EAAgB,EAAO,aACvB,EAAkB,EAAO,eAEzB,CAAC,EAAW,GACd,KAAM,SAAQ,IAAI,CAAC,EAAO,OAAQ,EAAQ,SAKxC,CAAC,kBAAiB,gBAAgB,GACpC,EAAW,EAAY,EAAgB,EAAe,EACtD,GAEJ,MAAI,KAAW,GACb,EAAO,UAEL,IAAY,GACd,EAAQ,UAGH,CACL,gBAAiB,GAAS,EAAiB,SAC3C,aAAc,GAAO,EAAc,UAIhC,GAAM,IAA+B,GCtF5C,AA8CA,YACI,EAAsB,EAAwB,EAAe,GAC7D,EAAmB,GAAK,CAC1B,GAAM,GAAU,EAAgB,EAAQ,SAAU,kBAElD,AAAK,EACD,EAAQ,OAAS,GAAK,EAAQ,OAAS,EACvC,IAAM,gEACM,EAAQ,SACxB,AAAK,EACD,EAAK,SAAW,EAChB,IAAM,6DACC,MACX,AAAK,EACD,IAAqB,IAAS,IAAiB,GAC/C,IAAM,qFAGV,GAAI,GAAc,EACd,EAAe,GACnB,AAAI,EAAQ,OAAS,GACnB,GAAe,GACf,EAAc,EACV,EAAS,CAAC,EAAG,EAAQ,MAAM,GAAI,EAAQ,MAAM,GAAI,EAAQ,MAAM,MAGrE,GAAM,GAAK,EAEL,EAA+B,CAAC,OAAQ,GACxC,EAA6B,CAAC,eAAc,mBAAkB,QAG9D,EAAM,EAAO,UACH,GAAgB,EAChB,GAEhB,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAEtD,EAGF,GAAM,IAAiB,EAAG,CAAC,qBCxFlC,AA+CA,YACI,EAAsB,EAAwB,EAAe,GAC7D,EAAmB,GAAK,CAC1B,GAAM,GAAU,EAAgB,EAAQ,SAAU,yBAElD,AAAK,EACD,EAAQ,OAAS,GAAK,EAAQ,OAAS,EACvC,IAAM,uEACM,EAAQ,SACxB,AAAK,EACD,EAAK,SAAW,EAChB,IACI,oEACG,MACX,AAAK,EACD,EAAQ,QAAU,WAAa,EAAQ,QAAU,QACjD,IAAM,oDACV,AAAK,EACD,IAAqB,IAAS,IAAiB,GAC/C,IAAM,4FAEV,GAAI,GAAc,EACd,EAAe,GACnB,AAAI,EAAQ,OAAS,GACnB,GAAe,GACf,EAAc,EACV,EAAS,CAAC,EAAG,EAAQ,MAAM,GAAI,EAAQ,MAAM,GAAI,EAAQ,MAAM,MAErE,GAAM,GAAK,EAEL,EAAsC,CAAC,OAAQ,GAC/C,EAC2B,CAAC,eAAc,mBAAkB,QAG5D,EAAM,EAAO,UACH,GAAuB,EACvB,GAEhB,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAEtD,EAGF,GAAM,IAAwB,EAAG,CAAC,4BC5FzC,AAyDA,YACI,EAA4B,EAC5B,EAAsC,UACtC,EAAkD,WAAY,EAAY,EAC1E,EAA8B,CAChC,GAAM,GAAS,EAAgB,EAAO,QAAS,YAAa,WACtD,EACF,EAAgB,EAAY,aAAc,YAAa,WAE3D,AAAK,EACD,EAAO,OAAS,EAChB,IAAM,yDACc,EAAO,SAE/B,AAAK,EACD,EAAY,OAAS,GAChB,GAAY,MAAM,KAAO,EAAO,MAAM,IACtC,EAAY,MAAM,KAAO,IAC1B,EAAY,MAAM,KAAO,EAC7B,IAAM,oEAEV,AAAK,EACD,GAAe,MAAQ,EAAY,SAAW,EAC9C,IACI,4EACW,MAEnB,GAAM,GAA0B,CAAC,MAAO,EAAQ,WAAY,GACtD,EACe,CAAC,gBAAe,WAAU,YAAW,eAE1D,MAAO,GAAO,UACV,GAAW,EAAgC,GAG1C,GAAM,IAAY,EAAG,CAAC,gBC5F7B,AAyEA,YACI,EAAiB,EAAkB,EAAgB,CACrD,EACI,EAAW,GAAM,EACjB,IAAM,gDAAgD,MAC1D,EACI,EAAW,GAAM,EACjB,IAAM,gDAAgD,MAE1D,GAAM,GAAK,EAAgB,EAAG,IAAK,YAEnC,EACI,EAAG,MAAQ,EACX,IAAM,4CAA4C,EAAG,SAEzD,GAAM,GAAQ,EAAG,MACX,CAAC,EAAG,GAAK,EAAG,MAAM,MAAM,IAE9B,GAAI,CAAE,IAAY,GAChB,KAAM,IAAI,OACN,yBAAyB,mDACwB,OAEvD,GAAI,CAAE,IAAY,GAChB,KAAM,IAAI,OACN,yBAAyB,sDAC2B,OAG1D,AAAI,EAAW,GACb,GAAW,GAET,EAAW,GACb,GAAW,GAGb,GAAM,GAAI,EAAQ,GAAM,EAAG,EAAG,EAAG,SAAU,CAAC,GAAI,IAC1C,EAAI,GAAM,EAAG,EAAG,EAAG,SACnB,EAAK,GAAI,EAAG,GAEZ,EAAS,GACX,GAAU,EAAI,GAAO,CAAC,EAAU,UAChC,GAAa,EAAI,GAAO,CAAC,EAAU,WAEjC,EAAO,GAAM,CAAC,EAAG,GAAI,EAAG,OAE9B,MAAO,GACI,GAAM,GAAQ,EAAQ,EAAI,CAAC,GAAI,EAAG,KACvB,IAAI,GAAO,GAAM,EAAQ,EAAK,KACzC,GAGN,GAAM,IAAW,EAAG,CAAC,eC7H5B,AA2DA,YAAsB,EAAuB,CAC3C,GAAI,GACJ,GAAI,MAAM,QAAQ,GAAK,CACrB,EAAkB,GAClB,EACI,GAAM,MAAQ,EAAG,OAAS,EAC1B,IAAM,qEAEV,GAAM,GAAM,EAAG,GAAG,MAAM,GACxB,OAAS,GAAI,EAAG,EAAI,EAAG,OAAQ,EAAE,EAC/B,EACI,EAAG,GAAG,MAAM,KAAO,EACnB,IACI,iEACK,EAAkB,GAAG,MAAM,UAAU,UAGpD,GAAkB,GAClB,EAAK,GAAM,EAAI,EAAG,MAAM,GAAI,GAAG,IAAI,GAAK,GAAQ,EAAG,CAAC,KAGtD,EACI,EAAG,QAAU,EAAG,GAAG,MAAM,GACzB,IAAM,oCACK,EAAkB,yCACC,EAAkB,GAAG,MAAM,QAE7D,GAAM,GAAiB,GACjB,EAAO,EACb,OAAS,GAAI,EAAG,EAAI,EAAG,OAAQ,EAAE,EAC/B,EAAG,KAAK,EAAO,KAAK,IAAK,CACvB,GAAI,GAAI,EAAK,GACb,GAAI,EAAI,EACN,OAAS,GAAI,EAAG,EAAI,EAAG,EAAE,EAAG,CAC1B,GAAM,GAAO,EAAI,GAAI,EAAI,EAAG,GAAI,IAAK,EAAG,IACxC,EAAI,GAAI,EAAG,GAGf,MAAO,IAAI,EAAG,GAAK,EAAG,iBAI1B,MAAI,GACK,GAAM,EAAI,GAEV,EAIJ,GAAM,IAAc,EAAG,CAAC,kBC5G/B,AAmFA,YAAa,EAAW,EAAe,GAAK,CAM1C,GALA,EACI,EAAE,MAAQ,EACV,IAAM,gEACF,EAAE,QAEN,EAAE,OAAS,EACb,MAAO,IAAK,EAAe,GACtB,CAKL,GAAM,GAAgB,EAAE,MAAM,MAAM,EAAG,EAAE,MAAM,OAAS,GAC7B,OAAO,CAAC,EAAO,IAAS,EAAQ,GACrD,EAAO,GACT,EACI,EACA,CACE,EAAe,EAAE,MAAM,EAAE,MAAM,OAAS,GACxC,EAAE,MAAM,EAAE,MAAM,OAAS,KAE/B,GACE,EAAmB,GACnB,EAAmB,GACzB,EAAK,QAAQ,GAAM,CACjB,GAAM,CAAC,EAAK,GAAO,GAAK,EAAiB,GACzC,EAAK,KAAK,GACV,EAAK,KAAK,KAEZ,GAAM,GAAI,EAAQ,GAAM,EAAM,GAAI,EAAE,OAC9B,EAAI,EAAQ,GAAM,EAAM,GAAI,EAAE,OACpC,MAAO,CAAC,EAAG,IAIf,YAAc,EAAa,EAAe,GAAK,CAC7C,MAAO,GAAO,KAAK,IAAK,CACtB,EACI,EAAE,MAAM,SAAW,EACnB,IAAM,0CACF,EAAE,MAAM,mBAEhB,GAAM,GAAI,EAAE,MAAM,GACZ,EAAI,EAAE,MAAM,GAEd,EAAI,GAAI,GACR,EAAI,GAAM,GAER,EAAQ,GAAS,CAAC,CAAC,IAAK,CAAC,EAAG,IAC9B,EAAc,GAAM,GAElB,EAAQ,GAAK,EAAI,EAAI,EAC3B,OAAS,GAAI,EAAG,EAAI,EAAO,EAAE,EAAG,CAG9B,GAAM,GAAQ,EACR,EAAQ,EACR,EAAQ,EACd,CAAC,EAAG,EAAG,GAAK,EAAO,KAAK,IAAqC,CAE3D,GAAM,GAAS,GAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAI,EAAG,IAClC,EAAQ,GAAK,GACb,EAAM,GAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,IAG3B,EAAI,GAAM,GAAQ,EAAK,GAAI,GAAS,CAAC,CAAC,MAAO,GAAS,CAAC,CAAC,MAExD,EAAK,GAAI,EAAK,EAAI,EAAG,IACrB,EAAO,GAAI,EAAQ,GACzB,AAAI,EAAK,MAAM,KAAO,EACpB,EAAI,GAAM,GAEV,EAAI,GACA,CACE,EACA,GAAM,EAAM,CAAC,EAAG,GAAI,CAAC,EAAK,MAAM,GAAK,EAAG,EAAK,MAAM,MAGrD,GAEN,GAAM,GAAM,GAAI,GAAI,GAAO,EAAG,GAAK,IAG7B,EAAW,GAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAI,EAAG,IACpC,EAAsB,EAAI,EAAK,GAC/B,EAAe,GAAU,GAC/B,GAAI,IAAM,EACR,EAAI,GAAI,EAAU,GAAO,EAAW,GAAO,EAAI,SAC1C,CACL,GAAM,GACF,GAAI,EAAU,GAAO,EAAW,GAAO,EAAI,KAC/C,EAAI,GAAO,CAAC,GAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,IAAK,GAAY,GAEpD,GAAM,GAAuB,GAAU,GACjC,EAAW,GAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,EAAE,MAAM,GAAK,IACnD,GAAI,IAAM,EACR,EAAI,GAAI,EAAU,GAAO,GAAO,EAAU,GAAI,QACzC,CACL,GAAM,GACF,GAAI,EAAU,GAAO,GAAO,EAAU,GAAI,IAC9C,EAAI,GAAO,CAAC,GAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,IAAK,GAAY,GAEpD,MAAO,CAAC,EAAG,EAAG,KAEhB,GAAQ,CAAC,EAAO,EAAO,IAGzB,MAAI,CAAC,GAAgB,EAAI,GACvB,GAAI,GAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,IACzB,EAAI,GAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,KAGpB,CAAC,EAAG,KAIR,GAAM,IAAK,EAAG,CAAC,SCxMtB,AAiBA,GAAY,IAAZ,AAAA,UAAY,EAAS,CACnB,EAAA,EAAA,KAAA,GAAA,OACA,EAAA,EAAA,KAAA,GAAA,OACA,EAAA,EAAA,IAAA,GAAA,MACA,EAAA,EAAA,uBAAA,GAAA,2BAJU,IAAA,IAAS,KCyBrB,YACI,EAAsB,EACtB,EAAY,GAAU,uBAAsB,CAC9C,GAAM,GAAU,EAAgB,EAAQ,SAAU,uBAC9C,EAAmB,KACvB,AAAI,GAAW,MACb,GAAW,EAAgB,EAAS,UAAW,wBAGjD,GAAM,GAAgB,GAAY,KAAQ,EAAU,EAAI,EAAS,GAEjE,GAAI,IAAc,GAAU,KAC1B,MAAO,GAET,GAAI,IAAc,GAAU,IAC1B,MAAO,IAAI,GAEb,GAAI,IAAc,GAAU,KAAM,CAChC,GAAI,GAAY,KACd,MAAO,IAAK,GACP,CACL,GAAM,GAAkB,EAAQ,KAAO,EAAS,KAC1C,EAAS,GAAI,GAAI,GAAe,GAAI,IAC1C,MAAO,GAAkB,EAAI,GAAI,EAAQ,GAAO,IACnB,GAGjC,GAAI,IAAc,GAAU,uBAAwB,CAClD,GAAI,GAAY,KACd,MAAO,IAAI,GAAI,GAAe,GAAO,EAAQ,OACxC,CACL,GAAM,GAAqB,EAAI,EAAU,GAAK,EAAQ,QAEhD,EACF,GAAK,GAAI,GAAS,EAAoB,GAAO,KAAM,WACvD,MAAO,IAAI,GAAI,GAAe,IAIlC,KAAM,OAAM,sBAAsB,KAE7B,GAAM,IAAsB,EAAG,CAAC,0BCnFvC,AA2CA,YACI,EAAsB,EACtB,EACA,EAAY,GAAU,uBAAsB,CAC9C,GAAM,GAAU,EAAgB,EAAQ,SAAU,sBAC5C,EACF,EAAgB,EAAa,cAAe,sBAC5C,EAAmB,KACvB,AAAI,GAAW,MACb,GAAW,EAAgB,EAAS,UAAW,uBAEjD,GACI,EAAQ,MAAO,EAAa,MAAO,iCAEvC,GAAM,GAAS,GAAI,GAAI,EAAS,IAChC,MAAO,IAAoB,EAAQ,EAAU,GAGxC,GAAM,IAAqB,EAAG,CAAC,yBChBtC,YACI,EAAsB,EAA2B,EACjD,EACA,EAAY,GAAU,uBAAsB,CAC9C,GAAM,GAAU,EAAgB,EAAQ,SAAU,kBAC5C,EACF,EAAgB,EAAa,cAAe,kBAC5C,EAAmB,KACvB,AAAI,GAAW,MACb,GAAW,EAAgB,EAAS,UAAW,mBAEjD,GACI,EAAQ,MAAO,EAAa,MAAO,6BAEvC,GAAM,GAAM,GAAO,GACb,EAAS,GAAI,EAAK,GAAI,EAAI,EAAS,GAAe,EAAM,KAC9D,MAAO,IAAoB,EAAQ,EAAU,GAExC,GAAM,IAAiB,EAAG,CAAC,qBCnBlC,YACI,EAAsB,EACtB,EACA,EAAY,GAAU,uBAAsB,CAC9C,GAAI,GAAU,EAAgB,EAAQ,SAAU,aAC1C,EAAe,EAAgB,EAAa,cAAe,aAC7D,EAAmB,KACvB,AAAI,GAAW,MACb,GAAW,EAAgB,EAAS,UAAW,cAEjD,GAAkB,EAAQ,MAAO,EAAa,MAAO,wBAErD,GAAM,GAAM,GAAO,GAEnB,EAAU,GAAI,EAAI,GAAO,GAAI,GAAU,GACvC,GAAM,GAAS,GAAK,GAAI,EAAK,EAAI,EAAS,KAC1C,MAAO,IAAoB,EAAQ,EAAU,GAExC,GAAM,IAAY,EAAG,CAAC,gBC9D7B,AAiDA,YACI,EAAsB,EACtB,EAA6B,EAAQ,EACrC,EAAY,GAAU,uBAAsB,CAC9C,GAAM,GAAU,EAAgB,EAAQ,SAAU,aAC5C,EAAe,EAAgB,EAAa,cAAe,aAC7D,EAAmB,KACvB,AAAI,GAAW,MACb,GAAW,EAAgB,EAAS,UAAW,cAEjD,GAAkB,EAAQ,MAAO,EAAa,MAAO,wBAErD,GAAM,GAAc,GAAO,GACrB,EAAQ,GAAI,GAAI,EAAc,IAC9B,EAAY,GAAQ,EAAO,GAC3B,EAAS,GAAI,EAAO,GAEpB,EACF,GAAI,EAAI,GAAO,IAAM,GAAO,IAAa,EAAI,EAAa,IAC9D,MAAO,IAAoB,EAAQ,EAAU,GAExC,GAAM,IAAY,EAAG,CAAC,gBCtE7B,AAgDA,YACI,EAAsB,EACtB,EAA6B,EAAU,KACvC,EAAY,GAAU,uBAAsB,CAC9C,GAAM,GAAU,EAAgB,EAAQ,SAAU,WAC5C,EAAe,EAAgB,EAAa,cAAe,WAC7D,EAAmB,KACvB,AAAI,GAAW,MACb,GAAW,EAAgB,EAAS,UAAW,YAEjD,GAAkB,EAAQ,MAAO,EAAa,MAAO,sBAErD,GAAM,GAAM,GAAO,GACb,EAAgB,GAAO,GAEvB,EAAK,GAAI,EAAI,EAAS,GAAI,GAAI,EAAc,MAC5C,EACF,EAAI,GAAI,EAAK,GAAU,GAAI,GAAI,GAAI,EAAK,GAAe,KACrD,EAAS,GAAI,EAAI,GACvB,MAAO,IAAoB,EAAQ,EAAU,GAExC,GAAM,IAAU,EAAG,CAAC,cCrE3B,AA0CA,YACI,EAAsB,EACtB,EACA,EAAY,GAAU,uBAAsB,CAC9C,GAAM,GAAU,EAAgB,EAAQ,SAAU,oBAC5C,EACF,EAAgB,EAAa,cAAe,oBAC5C,EAAmB,KACvB,AAAI,GAAW,MACb,GAAW,EAAgB,EAAS,UAAW,qBAEjD,GACI,EAAQ,MAAO,EAAa,MAAO,+BAEvC,GAAM,GAAS,GAAkB,EAAS,GAC1C,MAAO,IAAoB,EAAQ,EAAU,GAExC,GAAM,IAAmB,EAAG,CAAC,uBC3DpC,AAmCA,YACI,EAAsB,EAAoB,CAC5C,GAAM,GACF,EAAgB,EAAQ,SAAU,iCAChC,EACF,EAAgB,EAAQ,SAAU,iCACtC,GACI,EAAQ,MAAO,EAAQ,MAAO,4CAsBlC,GAAM,GAAY,GAAK,GACjB,EAAgB,EAAI,EAAS,GAC7B,EAAgB,GAAM,GAAI,GAAI,GAAI,MAExC,MAAO,IAAI,GAAI,EAAW,GAAgB,GAwB5C,YACI,EAAgC,EAChC,EAA6B,EAAiB,EAC9C,EAAY,GAAU,uBAAsB,CAC9C,GAAI,GAAoB,EACpB,EAAkB,mBAAoB,uBACpC,EAAU,EAAgB,EAAQ,SAAU,uBAC9C,EAAmB,KAOvB,GANI,GAAW,MACb,GAAW,EAAgB,EAAS,UAAW,wBAEjD,GACI,EAAkB,MAAO,EAAQ,MAAO,kCAExC,EAAiB,EAAG,CACtB,GAAM,GAAuB,GAAO,GAC9B,EAAM,GAAO,GACb,EAAO,GAAO,IAEpB,EACI,GAAI,EAAI,EAAmB,GAAI,EAAK,IAChC,EAAI,EAAM,IAEpB,GAAM,GAAS,GAA+B,EAAmB,GAEjE,MAAO,IAAoB,EAAQ,EAAU,GAGxC,GAAM,IAAsB,EAAG,CAAC,0BCxHvC,AA+DA,YACI,EAAW,EAAW,EAAM,GAAE,CAKhC,GAJI,IAAQ,IACV,GAAM,EAAO,KAAO,GAGlB,IAAQ,EAAO,KAAO,EACxB,KAAM,OACF,mGACuC,EAAO,oBAC/B,KA6BrB,MAAO,AAzBH,IAAW,CAAC,EAAgB,EAAgB,IAAsB,CAKhE,GAAM,GAAM,GAAU,EAAQ,CAAC,GADd,IAEX,EAAY,GAAI,GAAK,EAAQ,WAAY,GAC/C,EAAK,CAAC,EAAQ,IAEd,GAAM,GAAa,GAAI,EAAI,EAAW,IAatC,MAAO,CAAC,MAZS,GAAI,EAAY,CAAC,IAYnB,SAVE,CAAC,EAAO,IAAmB,CAC1C,GAAM,CAAC,EAAQ,GAAa,EACtB,EAAU,GAAqB,EAAG,MAAO,CAAC,IAChD,MAAO,CACL,EAAI,EAAQ,EAAI,GACZ,GAAI,GAAK,EAAQ,WAAY,GAAI,KACrC,EAAI,EAAQ,EAAI,GACZ,GAAI,GAAI,GAAY,GAAK,EAAQ,kBAM/B,EAAQ,GAsB1B,YACI,EAA4B,EAC5B,EAA6B,EAAiB,EAC9C,EAAY,GAAU,uBAAsB,CAC9C,GAAI,GACA,EAAgB,EAAc,eAAgB,uBAC5C,EAAU,EAAgB,EAAQ,SAAU,uBAC9C,EAAmB,KASvB,GAPI,GAAW,MACb,GAAW,EAAgB,EAAS,UAAW,wBAGjD,GACI,EAAc,MAAO,EAAQ,MAAO,kCAEpC,EAAiB,EAAG,CACtB,GAAM,GAAuB,GAAO,GAC9B,EAAM,GAAO,GACb,EAAa,GAAO,EAAc,MAAM,IAE9C,EACI,GAAI,EAAI,EAAe,GAAI,EAAK,IAC5B,GAAI,EAAsB,IAGpC,GAAM,GAAS,GAA+B,EAAe,GAE7D,MAAO,IAAoB,EAAQ,EAAU,GAGxC,GAAM,IAAsB,EAAG,CAAC,0BC3JvC,AAwNA,GAAM,IAAW,CACf,OACA,QACA,QACA,UASI,GAAS,CACb,iBACA,cACA,SACA,SAgBI,GAAQ,CACZ,iBACA,yBACA,kBACA,oBACA,iBACA,qBACA,0BACA,8BACA,mCACA,2BACA,gCACA,cAOI,GAAS,CACb,YACA,eACA,OAaI,GAAS,CACb,sBACA,uBACA,kBACA,aACA,aACA,WACA,oBACA,uBACA,wBCrSF,AAyCM,oBAAkC,GAAY,CAiBlD,SAAS,EAAiB,EAAa,GAAO,EAAoB,CAEhE,GAAM,CAAC,QAAO,SAAS,KAAK,iBAAiB,EAAG,GAEhD,GAAI,GAAW,KAAM,CACnB,GAAM,GACF,EAAQ,IAAI,GAAM,EAAC,KAAM,EAAE,KAAM,OAAQ,EAAM,EAAE,SACrD,KAAK,eAAe,OAEpB,MAAK,eAAe,GAMtB,MAFA,IAAQ,GAEJ,EACK,EAEP,GAAM,UACC,SAOP,aAAU,CACZ,MAAI,MAAK,aAAe,MACtB,MAAK,YAAc,GAEd,KAAK,YAGJ,qBAAmB,CAC3B,KAAK,YAAc,KAAK,WAAa,EAgBvC,iBAAiB,EAAiB,EAAoB,CAEpD,MAAO,IAAc,EAAG,GAgB1B,SAAO,CACL,AAAI,KAAK,aAAe,MACtB,GAAQ,KAAK,kBAIX,iBAAc,CAClB,MAAI,MAAK,aAAe,MACtB,MAAK,YAAc,GAEd,CACL,KAAM,OAEN,OAAQ,GAAO,KAAK,YAAa,eAI/B,aAAU,CACd,KAAM,IAAI,OAAM,gEAGZ,YAAW,EAA2B,CAC1C,KAAM,IAAI,OACN,4DACG,KAAK,uBAUE,mBAAkB,EAA2B,CAE3D,YAAK,YAAe,MAAM,GAAa,GAAG,OAAO,QAAQ,GAClD,EAAa,MAAM,KAI9B,OAAO,eAAe,GAAW,OAAO,YAAa,CACnD,MAAO,AAAC,GACC,EAAS,UAAY,MAAQ,EAAS,kBAAoB,MAC7D,EAAS,gBAAkB,OC1KnC,AA+BM,oBAAiC,GAAS,CAM9C,YACc,EAAgC,EAChC,EAAkB,KAAI,CAClC,QAFY,KAAA,aAAA,EAAgC,KAAA,IAAA,EAChC,KAAA,QAAA,EALN,KAAA,iBAAwC,GACxC,KAAA,mBAA0C,GAO5C,GAAW,MACb,MAAK,QAAU,EAAO,QAAQ,WAIlC,eAAe,EAAiD,CAK9D,AAJsB,OAAM,QAAQ,GAChC,EAAkB,IAAI,GAAQ,EAAK,MACnC,OAAO,KAAK,IAEF,QAAQ,CAAC,EAAM,IAAK,CAChC,GAAM,GAAQ,EAAO,oBAAoB,GACnC,EAAY,GAClB,AAAI,KAAK,iBAAiB,IAAM,MAC9B,MAAK,iBAAiB,GAAK,CACzB,aAAc,GAAG,eACjB,SAAU,EAAK,IAAM,GAAU,GAAO,SAAS,MAG/C,KAAK,mBAAmB,IAAM,MAChC,MAAK,mBAAmB,GAAK,CAC3B,aAAc,GAAG,cACjB,SAAU,EAAK,IAAM,GAAU,GAAO,SAAS,MAInD,GAAM,GAAW,MAAM,QAAQ,GAC3B,EAAkB,GAAG,OACrB,EAAkB,GACtB,GAAI,GAAY,KACd,OAGF,GAAM,GAAkB,KAAK,iBAAiB,GAAG,SAC3C,EAAoB,KAAK,mBAAmB,GAAG,SAErD,EAAK,IAAK,CACR,GAAM,GACF,GAAI,EAAI,EAAiB,KAAK,KAC1B,EAAI,GAAO,GAAW,EAAI,KAAK,MAEjC,EACF,EAAI,GAAI,GAAK,GAAI,EAAmB,KAAK,UACjC,GAAK,GAAI,EAAiB,KAAK,WACnC,GAEF,EACF,GAAI,EAAI,EAAmB,KAAK,KAC5B,EAAI,GAAO,GAAU,EAAI,KAAK,MAEtC,EAAgB,OAAO,GACvB,EAAkB,OAAO,GAEzB,GAAM,GAAW,GAAI,EAAI,EAAS,CAAC,KAAK,cAAe,GACvD,EAAM,OAAO,OAGjB,KAAK,sBAGP,SAAO,CACL,AAAI,KAAK,oBAAsB,MAC7B,IAAQ,KAAK,iBAAiB,IAAI,GAAK,EAAE,WACzC,GAAQ,KAAK,mBAAmB,IAAI,GAAK,EAAE,iBAIzC,aAAU,CAEd,GAAM,GACF,CAAC,GAAG,KAAK,iBAAkB,GAAG,KAAK,oBACvC,MAAO,CAAC,KAAM,MAAK,kBAAkB,OACjC,EAAU,IAAI,GAAM,EAAC,KAAM,EAAE,aAAc,OAAQ,EAAE,kBAGrD,YAAW,EAA2B,CAC1C,EAAe,KAAM,MAAK,kBAAkB,GAC5C,GAAM,GAAgB,EAAa,OAAS,EACtC,EAAY,GAClB,KAAK,iBACD,EAAa,MAAM,EAAG,GAAe,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SACf,MAEnD,KAAK,mBACD,EAAa,MAAM,EAAe,EAAgB,GAC7C,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SAAS,MAI7C,WAAS,CACP,MAAO,CACL,aAAgB,KAAK,aACrB,IAAO,KAAK,IACZ,QAAW,KAAK,eAKb,YACH,EAAiC,EAAkB,CACrD,MAAO,IAAI,GAAI,EAAO,aAAiB,EAAO,IAAQ,EAAO,WAjHxD,GAAA,UAAY,WAoHrB,GAAc,ICrJd,AA+BM,oBAAgC,GAAS,CAM7C,YACc,EAA8B,EAA0B,GAAG,CACvE,QADY,KAAA,aAAA,EAA8B,KAAA,wBAAA,EAHpC,KAAA,iBAAwC,GAOhD,eAAe,EAAiD,CAK9D,AAJsB,OAAM,QAAQ,GAChC,EAAkB,IAAI,GAAQ,EAAK,MACnC,OAAO,KAAK,IAEF,QAAQ,CAAC,EAAM,IAAK,CAChC,GAAM,GAAQ,EAAO,oBAAoB,GACzC,GAAI,KAAK,iBAAiB,IAAM,KAAM,CACpC,GAAM,GAAY,GAClB,KAAK,iBAAiB,GAAK,CACzB,aAAc,GAAG,gBACjB,SAAU,EACN,IAAM,GAAK,EAAM,MAAO,KAAK,yBAClB,SAAS,KAI5B,GAAM,GAAW,MAAM,QAAQ,GAC3B,EAAkB,GAAG,OACrB,EAAkB,GACtB,GAAI,GAAY,KACd,OAGF,GAAM,GAAkB,KAAK,iBAAiB,GAAG,SAEjD,EAAK,IAAK,CACR,GAAM,GAAqB,GAAI,EAAiB,GAAO,IACvD,EAAgB,OAAO,GAEvB,GAAM,GAAW,GACb,EAAI,GAAI,EACA,GAAK,GAAI,EAAoB,EAAO,QAAQ,aAChD,CAAC,KAAK,cACV,GACJ,EAAM,OAAO,OAGjB,KAAK,sBAGP,SAAO,CACL,AAAI,KAAK,kBAAoB,MAC3B,GAAQ,KAAK,iBAAiB,IAAI,GAAK,EAAE,gBAIvC,aAAU,CAEd,MAAO,CAAC,KAAM,MAAK,kBAAkB,OAAO,KAAK,iBAAiB,IAC9D,GAAM,EAAC,KAAM,EAAE,aAAc,OAAQ,EAAE,kBAGvC,YAAW,EAA2B,CAC1C,EAAe,KAAM,MAAK,kBAAkB,GAC5C,GAAM,GAAY,GAClB,KAAK,iBAAmB,EAAa,IACjC,GAAM,EAAC,aAAc,EAAE,KAAM,SAAU,EAAE,OAAO,SAAS,MAG/D,WAAS,CACP,MAAO,CACL,aAAgB,KAAK,aACrB,wBAA2B,KAAK,+BAK7B,YACH,EAAiC,EAAkB,CACrD,MAAO,IAAI,GAAI,EAAO,aAAiB,EAAO,2BA/EzC,GAAA,UAAY,UAkFrB,GAAc,ICnHd,AAkCM,oBAA6B,GAAS,CAS1C,YACc,EAAgC,EAChC,EAAyB,EAAkB,KAAI,CAC3D,QAFY,KAAA,aAAA,EAAgC,KAAA,MAAA,EAChC,KAAA,MAAA,EAAyB,KAAA,QAAA,EAL/B,KAAA,uBAA8C,GAC9C,KAAA,wBAA+C,GAMrD,EAAK,IAAK,CAER,KAAK,SAAW,GAAO,GAAO,WAC9B,KAAK,SAAW,GAAO,GAAO,aAG5B,GAAW,MACb,MAAK,QAAU,EAAO,QAAQ,WAIlC,eAAe,EAAiD,CAC9D,GAAM,GAAW,MAAM,QAAQ,GAC3B,EAAkB,IAAI,GAAK,EAAE,MAC7B,OAAO,KAAK,GAChB,EAAK,IAAK,CACR,GAAM,GAAmB,GAAI,EAAG,KAAK,UAC/B,EAAmB,GAAI,EAAG,KAAK,UAErC,EAAS,QAAQ,CAAC,EAAM,IAAK,CAC3B,GAAM,GAAQ,EAAO,oBAAoB,GACnC,EAAY,GAClB,AAAI,KAAK,uBAAuB,IAAM,MACpC,MAAK,uBAAuB,GAAK,CAC/B,aAAc,GAAG,MACjB,SAAU,EAAK,IAAM,GAAU,GAAO,SAAS,MAG/C,KAAK,wBAAwB,IAAM,MACrC,MAAK,wBAAwB,GAAK,CAChC,aAAc,GAAG,MACjB,SAAU,EAAK,IAAM,GAAU,GAAO,SAAS,MAInD,GAAM,GAAW,MAAM,QAAQ,GAC3B,EAAkB,GAAG,OACrB,EAAkB,GACtB,GAAI,GAAY,KACd,OAGF,GAAM,GAAc,KAAK,uBAAuB,GAAG,SAC7C,EAAe,KAAK,wBAAwB,GAAG,SAE/C,EACF,GAAI,EAAI,EAAa,KAAK,OAAQ,EAAI,EAAU,EAAI,KAAK,QACvD,EACF,GAAI,EAAI,EAAc,KAAK,OACvB,EAAI,GAAO,GAAW,EAAI,KAAK,QAEjC,EAA2B,GAAI,EAAgB,GAC/C,EACF,GAAI,EAAiB,GAEzB,EAAY,OAAO,GACnB,EAAa,OAAO,GAEpB,GAAM,GACF,GAAI,EAAI,GAAI,EACA,GAAI,GAAK,GAA4B,KAAK,UAC9C,CAAC,KAAK,cACV,GACR,EAAM,OAAO,KAGf,KAAK,SAAS,OAAO,EAAI,KAAK,SAAU,KAAK,QAC7C,KAAK,SAAS,OAAO,EAAI,KAAK,SAAU,KAAK,UAE/C,KAAK,sBAGP,SAAO,CACL,KAAK,SAAS,UACd,KAAK,SAAS,UAEV,KAAK,wBAA0B,MACjC,GAAQ,KAAK,uBAAuB,IAAI,GAAK,EAAE,WAE7C,KAAK,yBAA2B,MAClC,GAAQ,KAAK,wBAAwB,IAAI,GAAK,EAAE,gBAI9C,aAAU,CAEd,GAAM,GACF,CAAC,GAAG,KAAK,uBAAwB,GAAG,KAAK,yBAC7C,MAAO,CAAC,KAAM,MAAK,kBAAkB,OACjC,EAAU,IAAI,GAAM,EAAC,KAAM,EAAE,aAAc,OAAQ,EAAE,kBAGrD,YAAW,EAA2B,CAC1C,EAAe,KAAM,MAAK,kBAAkB,GAC5C,EAAK,IAAK,CACR,KAAK,SAAS,OAAO,GAAI,KAAK,MAAO,KAAK,YAAc,IACxD,KAAK,SAAS,OAAO,GAAI,KAAK,MAAO,KAAK,YAAc,MAG1D,GAAM,GAAgB,EAAa,OAAS,EACtC,EAAY,GAClB,KAAK,uBACD,EAAa,MAAM,EAAG,GAAe,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SACf,MAEnD,KAAK,wBACD,EAAa,MAAM,EAAe,EAAgB,GAC7C,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SAAS,MAI7C,WAAS,CACP,MAAO,CACL,aAAgB,KAAK,aACrB,MAAS,KAAK,MACd,MAAS,KAAK,MACd,QAAW,KAAK,eAKb,YACH,EAAiC,EAAkB,CACrD,MAAO,IAAI,GACP,EAAO,aAAiB,EAAO,MAAU,EAAO,MAChD,EAAO,WA5IN,GAAA,UAAY,OA+IrB,GAAc,ICnLd,AAiCM,oBAA+B,GAAS,CAS5C,YACc,EAAgC,EAChC,EAAyB,EAAkB,KAC3C,EAAQ,EAAG,CACvB,QAHY,KAAA,aAAA,EAAgC,KAAA,MAAA,EAChC,KAAA,MAAA,EAAyB,KAAA,QAAA,EACzB,KAAA,MAAA,EANN,KAAA,uBAA8C,GAC9C,KAAA,2BAAkD,GAQxD,EAAK,IAAK,CACR,KAAK,UAAY,GAAO,GAAG,WAC3B,KAAK,SAAW,GAAO,GAAO,aAG5B,GAAW,MACb,MAAK,QAAU,EAAO,QAAQ,WAIlC,eAAe,EAAiD,CAC9D,GAAM,GAAgB,MAAM,QAAQ,GAChC,EAAkB,IAAI,GAAQ,EAAK,MACnC,OAAO,KAAK,GAEhB,EAAK,IAAK,CACR,GAAM,GAAmB,GAAI,EAAG,KAAK,UAC/B,EACF,GAAI,CAAC,KAAK,aAAc,GAAI,EAAI,KAAK,UAAW,KAAK,OAAQ,IAEjE,EAAc,QAAQ,CAAC,EAAM,IAAK,CAChC,GAAM,GAAQ,EAAO,oBAAoB,GACnC,EAAY,GAClB,AAAI,KAAK,uBAAuB,IAAM,MACpC,MAAK,uBAAuB,GAAK,CAC/B,aAAc,GAAG,MACjB,SAAU,GAAU,GAAO,SAAS,KAGpC,KAAK,2BAA2B,IAAM,MACxC,MAAK,2BAA2B,GAAK,CACnC,aAAc,GAAG,MACjB,SAAU,GAAU,GAAO,SAAS,KAIxC,GAAM,GAAW,MAAM,QAAQ,GAC3B,EAAkB,GAAG,OACrB,EAAkB,GACtB,GAAI,GAAY,KACd,OAGF,GAAM,GAAc,KAAK,uBAAuB,GAAG,SAC7C,EAAkB,KAAK,2BAA2B,GAAG,SAErD,EACF,GAAI,EAAI,EAAa,KAAK,OAAQ,EAAI,EAAU,EAAI,KAAK,QAEvD,EAAM,EAAI,EAAiB,KAAK,OAChC,EAAM,GAAI,GAEV,EAAqB,GAAQ,EAAK,GAExC,EAAY,OAAO,GACnB,EAAgB,OAAO,GAEvB,GAAM,GACF,GAAI,EAAI,GAAI,EAAI,GACR,GAAI,EAAgB,GAAI,EAAoB,KAAK,WACrD,GAER,EAAM,OAAO,KAGf,KAAK,UAAU,OAAO,GAAI,KAAK,UAAW,IAC1C,KAAK,SAAS,OAAO,EAAI,KAAK,SAAU,KAAK,UAE/C,KAAK,sBAGP,SAAO,CACL,KAAK,SAAS,UACd,KAAK,UAAU,UAEX,KAAK,wBAA0B,MACjC,GAAQ,KAAK,uBAAuB,IAAI,GAAK,EAAE,WAE7C,KAAK,4BAA8B,MACrC,GAAQ,KAAK,2BAA2B,IAAI,GAAK,EAAE,gBAIjD,aAAU,CACd,KAAM,IAAI,OAAM,wDAGZ,YAAW,EAA2B,CAC1C,KAAM,IAAI,OAAM,mDAGlB,WAAS,CACP,MAAO,CACL,aAAgB,KAAK,aACrB,MAAS,KAAK,MACd,MAAS,KAAK,MACd,QAAW,KAAK,QAChB,MAAS,KAAK,aAKX,YACH,EAAiC,EAAkB,CACrD,MAAO,IAAI,GACP,EAAO,aAAiB,EAAO,MAAU,EAAO,MAChD,EAAO,QAAY,EAAO,SAvHzB,GAAA,UAAY,SA0HrB,GAAc,IC7Jd,AA6BM,oBAA4B,GAAS,CAKzC,YAAsB,EAAoB,CACxC,QADoB,KAAA,aAAA,EAEpB,KAAK,gBAAgB,GAGvB,eAAe,EAA+C,CAI5D,AAHiB,OAAM,QAAQ,GAC3B,EAAkB,IAAI,GAAK,EAAE,MAC7B,OAAO,KAAK,IACP,QAAQ,CAAC,EAAM,IAAK,CAC3B,GAAM,GAAW,MAAM,QAAQ,GAC3B,EAAkB,GAAG,OACrB,EAAkB,GACtB,GAAI,GAAY,KACd,OAEF,GAAM,GAAQ,EAAO,oBAAoB,GACzC,EAAK,IAAK,CACR,GAAM,GAAW,GAAI,EAAI,KAAK,EAAG,GAAW,GAC5C,EAAM,OAAO,OAGjB,KAAK,sBAMP,gBAAgB,EAAoB,CAClC,KAAK,aAAe,EAChB,KAAK,GAAK,MACZ,KAAK,EAAE,UAET,KAAK,EAAI,GAAK,GAAO,CAAC,IAGxB,SAAO,CACL,KAAK,EAAE,eAGH,aAAU,CACd,MAAO,CAAC,KAAM,MAAK,uBAGf,YAAW,EAA2B,CAE1C,GADA,EAAe,KAAM,MAAK,kBAAkB,GACxC,EAAa,SAAW,EAC1B,KAAM,IAAI,OAAM,iDAIpB,WAAS,CACP,MAAO,CAAC,aAAgB,KAAK,oBAIxB,YACH,EAAiC,EAAkB,CACrD,MAAO,IAAI,GAAI,EAAO,gBA7DjB,GAAA,UAAY,MAgErB,GAAc,IC/Fd,AA+BM,oBAAiC,GAAY,CAMjD,YACc,EAA8B,EAChC,EAAc,GAAK,CAC7B,MAAM,GAFM,KAAA,aAAA,EAA8B,KAAA,SAAA,EAChC,KAAA,YAAA,EAJJ,KAAA,cAAqC,GAM3C,KAAK,EAAI,GAAO,KAAK,UAGvB,eAAe,EAAiD,CAK9D,AAJsB,OAAM,QAAQ,GAChC,EAAkB,IAAI,GAAQ,EAAK,MACnC,OAAO,KAAK,IAEF,QAAQ,CAAC,EAAM,IAAK,CAChC,GAAM,GAAQ,EAAO,oBAAoB,GACzC,GAAI,KAAK,cAAc,IAAM,KAAM,CACjC,GAAM,GAAY,GAClB,KAAK,cAAc,GAAK,CACtB,aAAc,GAAG,aACjB,SAAU,EAAK,IAAM,GAAU,GAAO,SAAS,KAInD,GAAM,GAAe,KAAK,cAAc,GAAG,SACrC,EAAW,MAAM,QAAQ,GAC3B,EAAkB,GAAG,OACrB,EAAkB,GACtB,AAAI,GAAY,MAIhB,EAAK,IAAK,CACR,GAAI,GACE,EAAkB,GAAI,EAAI,KAAK,EAAG,GAAe,GACvD,AAAI,KAAK,YACP,EAAW,GACP,EAAI,KAAK,EAAG,GAAI,EAAU,EAAI,EAAiB,KAAK,KAAM,GAE9D,EAAW,GAAI,EAAI,KAAK,EAAG,GAAkB,GAE/C,EAAa,OAAO,GACpB,EAAM,OAAO,OAGjB,KAAK,sBAGP,SAAO,CACL,KAAK,EAAE,UACH,KAAK,eAAiB,MACxB,GAAQ,KAAK,cAAc,IAAI,GAAK,EAAE,WAS1C,YAAY,EAAgB,CAC1B,KAAK,SAAW,OAGZ,aAAU,CAEd,MAAO,CAAC,KAAM,MAAK,kBAAkB,OAAO,KAAK,cAAc,IAC3D,GAAM,EAAC,KAAM,EAAE,aAAc,OAAQ,EAAE,kBAGvC,YAAW,EAA2B,CAC1C,EAAe,KAAM,MAAK,kBAAkB,GAC5C,GAAM,GAAY,GAClB,KAAK,cAAgB,EAAa,IAC9B,GAAM,EAAC,aAAc,EAAE,KAAM,SAAU,EAAE,OAAO,SAAS,MAG/D,WAAS,CACP,MAAO,CACL,aAAgB,KAAK,aACrB,SAAY,KAAK,SACjB,YAAe,KAAK,mBAKjB,YACH,EAAiC,EAAkB,CACrD,MAAO,IAAI,GACP,EAAO,aAAiB,EAAO,SAAa,EAAO,eA3FlD,GAAA,UAAY,WA8FrB,GAAc,IC/Hd,AAgCM,oBAAgC,GAAS,CAS7C,YACc,EAAgC,EAAQ,GACxC,EAAW,EAAe,EAAkB,KACtD,EAAW,GAAK,CAClB,QAOA,GAVY,KAAA,aAAA,EAAgC,KAAA,MAAA,EAChC,KAAA,SAAA,EAA0B,KAAA,QAAA,EANhC,KAAA,uBAA8C,GAC9C,KAAA,mBAA0C,GAC1C,KAAA,qBAA4C,GAQlD,KAAK,SAAW,EAEZ,GAAW,MACb,MAAK,QAAU,EAAO,QAAQ,WAE5B,GAAgB,KAClB,KAAM,IAAI,OAAM,sDAIpB,eAAe,EAA+C,CAK5D,AAJsB,OAAM,QAAQ,GAChC,EAAkB,IAAI,GAAQ,EAAK,MACnC,OAAO,KAAK,IAEF,QAAQ,CAAC,EAAM,IAAK,CAChC,GAAM,GAAQ,EAAO,oBAAoB,GACnC,EAAY,GAClB,AAAI,KAAK,uBAAuB,IAAM,MACpC,MAAK,uBAAuB,GAAK,CAC/B,aAAc,GAAG,QACjB,SAAU,EAAK,IAAM,GAAU,GAAO,SAAS,MAG/C,KAAK,mBAAmB,IAAM,MAChC,MAAK,mBAAmB,GAAK,CAC3B,aAAc,GAAG,aACjB,SAAU,EAAK,IAAM,GAAU,GAAO,SAAS,MAG/C,KAAK,qBAAqB,IAAM,MAAQ,KAAK,UAC/C,MAAK,qBAAqB,GAAK,CAC7B,aAAc,GAAG,OACjB,SAAU,EAAK,IAAM,GAAU,GAAO,SAAS,MAInD,GAAM,GAAW,MAAM,QAAQ,GAC3B,EAAkB,GAAG,OACrB,EAAkB,GACtB,GAAI,GAAY,KACd,OAGF,GAAM,GAAwB,KAAK,uBAAuB,GAAG,SACvD,EAAqB,KAAK,mBAAmB,GAAG,SACtD,EAAK,IAAK,CACR,GAAM,GACF,GAAI,EAAI,EAAuB,KAAK,OAChC,EAAI,GAAO,GAAW,EAAI,KAAK,QAEvC,GAAI,KAAK,SAAU,CACjB,GAAM,GAAsB,KAAK,qBAAqB,GAAG,SAEnD,EACF,GAAI,EAAI,EAAqB,KAAK,OAC9B,EAAI,EAAU,EAAI,KAAK,QAEzB,EACF,GAAI,EAAI,EAAU,KAAK,cACnB,GACI,GAAI,EACA,GAAI,GAAO,GAAyB,KAAK,YACnD,EACF,GAAI,EAAI,EAAoB,KAAK,UAAW,GAEhD,EAAsB,OAAO,GAC7B,EAAoB,OAAO,GAC3B,EAAmB,OAAO,GAE1B,GAAM,GAAW,GAAI,EAAO,GAC5B,EAAM,OAAO,OACR,CAEL,GAAM,GACF,GAAI,EAAI,EAAuB,KAAK,OAChC,EAAI,GAAO,GAAW,EAAI,KAAK,QAEjC,EACF,GAAI,EAAI,EAAoB,KAAK,UAC7B,GAAI,EAAI,EAAU,KAAK,cACnB,GAAK,GAAI,EAA0B,KAAK,YAEpD,EAAsB,OAAO,GAC7B,EAAmB,OAAO,GAE1B,GAAM,GAAW,GAAI,EAAO,GAC5B,EAAM,OAAO,QAInB,KAAK,sBAGP,SAAO,CACL,AAAI,KAAK,wBAA0B,MACjC,GAAQ,KAAK,uBAAuB,IAAI,GAAK,EAAE,WAE7C,KAAK,sBAAwB,MAAQ,KAAK,UAC5C,GAAQ,KAAK,qBAAqB,IAAI,GAAK,EAAE,WAE3C,KAAK,oBAAsB,MAC7B,GAAQ,KAAK,mBAAmB,IAAI,GAAK,EAAE,gBAIzC,aAAU,CAEd,GAAM,GACF,CAAC,GAAG,KAAK,uBAAwB,GAAG,KAAK,oBAC7C,MAAI,MAAK,UACP,EAAU,KAAK,GAAG,KAAK,sBAElB,CAAC,KAAM,MAAK,kBAAkB,OACjC,EAAU,IAAI,GAAM,EAAC,KAAM,EAAE,aAAc,OAAQ,EAAE,kBAGrD,YAAW,EAA2B,CAC1C,EAAe,KAAM,MAAK,kBAAkB,GAC5C,GAAM,GACF,KAAK,SAAW,EAAa,OAAS,EAAI,EAAa,OAAS,EAC9D,EAAY,GAClB,KAAK,uBACD,EAAa,MAAM,EAAG,GAAe,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SACf,MAEnD,KAAK,mBACD,EAAa,MAAM,EAAe,EAAgB,GAC7C,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SAAS,MAEvC,KAAK,UACP,MAAK,qBACD,EAAa,MAAM,EAAgB,EAAG,EAAgB,GACjD,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SAAS,OAK/C,WAAS,CACP,MAAO,CACL,aAAgB,KAAK,aACrB,MAAS,KAAK,MACd,SAAY,KAAK,SACjB,QAAW,KAAK,QAChB,SAAY,KAAK,gBAKd,YACH,EAAiC,EAAkB,CACrD,MAAO,IAAI,GACP,EAAO,aAAiB,EAAO,MAAU,EAAO,SAChD,EAAO,QAAY,EAAO,YA5KzB,GAAA,UAAY,UA+KrB,GAAc,ICjNd,AAyBM,YAA4B,OAsCzB,KAAI,EAAoB,CAC7B,MAAO,IAAI,IAAa,SAkBnB,UAAS,EAAsB,EAAkB,EAAc,GAAK,CAEzE,MAAO,IAAI,IAAkB,EAAc,EAAU,SAuBhD,SACH,EAAsB,EAAQ,GAAI,EAAW,EAAK,EAAkB,KACpE,EAAW,GAAK,CAClB,MAAO,IAAI,IACP,EAAc,EAAO,EAAU,EAAS,SAevC,MACH,EAAe,KAAO,EAAQ,GAAK,EAAQ,KAC3C,EAAkB,KAAI,CACxB,MAAO,IAAI,IAAc,EAAc,EAAO,EAAO,SAehD,UAAS,EAAe,KAAM,EAAM,IAAK,EAAkB,KAAI,CAEpE,MAAO,IAAI,IAAkB,EAAc,EAAK,SAgB3C,QACH,EAAe,KAAO,EAAQ,GAAK,EAAQ,KAAO,EAAkB,KACpE,EAAQ,EAAG,CACb,MAAO,IAAI,IAAgB,EAAc,EAAO,EAAO,EAAS,SAmB3D,SAAQ,EAAsB,EAA0B,GAAG,CAEhE,MAAO,IAAI,IAAiB,EAAc,KC1L9C,AA+BO,GAAM,IAAQ,CACnB,IAAK,GAAsB,IAC3B,SAAU,GAAsB,SAChC,SAAU,GAAsB,SAChC,QAAS,GAAsB,QAC/B,QAAS,GAAsB,QAC/B,OAAQ,GAAsB,OAC9B,KAAM,GAAsB,MCtC9B,AAiBA,GAAM,IAA2B,KAC3B,MAAO,wBAA0B,YAC5B,sBACE,MAAO,eAAiB,YAC1B,aAEF,AAAC,GAAgB,OAa1B,aAAkB,CAChB,MAAO,IAAI,SAAc,GAAW,GAAc,IAAM,MCrC1D,g+CCAA,AAmBM,YAAiC,EAAoB,EAAY,CACrE,GAAM,GAAO,EAAO,GAAG,OACvB,EAAO,QAAQ,CAAC,EAAO,IAAK,CAC1B,AAAK,EACD,EAAM,SAAW,EACjB,IACI,kBAAkB,uBAA0B,gDAChB,QAGtC,AAAK,EACD,GAAQ,GAAK,EAAO,EACpB,IAAM,kBAAkB,kCAAqC,EAAO,MAExE,GAAM,GAAa,EAAO,GAC1B,EAAO,QAAQ,CAAC,EAAO,IAAK,CAC1B,OAAS,GAAI,EAAG,EAAI,EAAM,IACxB,AAAK,EACA,IAAM,GAAU,EAAM,KAAO,EAAW,GACzC,IAAM,kBAAkB,wBAA2B,OAAO,4CACb,sCACN,QAK3C,YAA0B,EAAoB,EAAY,CAC9D,GAAM,GAAc,EAAO,GAAG,QAC9B,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,IACjC,EAAY,IAAS,EAAO,GAAG,GAEjC,MAAO,GClDT,AAuBO,GAAM,IAAwB,GAS/B,YAAmC,EAAc,CACrD,MAAI,IAAU,GACL,EAEF,GAAe,EAAQ,KAAK,MAAM,KAAK,KAAK,KCpCrD,AAkBM,YACF,EAAiC,EACjC,EAAkB,CACpB,GAAM,GACF,EAAc,OAAO,IAAW,SAAW,EAAS,EAAO,IACzD,EACF,EAAe,OAAO,IAAW,SAAW,EAAS,EAAO,IAChE,MAAO,CAAC,EAAS,GCzBnB,AAyBM,YACF,EAAsB,EAAsB,EAC5C,EAAe,GAAI,CACrB,GAAI,GAAqB,GACzB,GAAI,EACF,EAAW,EAAS,OAAO,EAAW,MAAM,IAC5C,EAAS,KAAK,EAAW,GAAK,GAC9B,EAAW,EAAS,OAAO,EAAW,MAAM,QACvC,CACL,EAAW,EAAS,OAAO,EAAW,IACtC,GAAM,GAAgB,EAAW,OACjC,OAAS,GAAI,EAAG,EAAI,EAAe,EAAE,EACnC,EACI,EAAS,OAAO,CAAC,EAAW,EAAI,GAAK,EAAW,GAAI,EAAW,KAErE,EAAW,EAAS,OAAO,EAAW,MAAM,EAAgB,IAE9D,MAAO,GAYH,YACF,EAAsB,EACtB,EAAe,GAAI,CACrB,GAAM,GAAW,GACjB,GAAI,EAAc,CAChB,EAAS,KAAK,GACd,OAAS,GAAI,EAAiB,EAAG,EAAI,EAAc,EAAE,EACnD,AAAI,GAAK,EAAI,EACX,GAAS,KAAK,GACd,EAAS,KAAK,EAAK,GAAiB,KAEpC,EAAS,KAAK,OAGb,CACL,GAAM,GAAsB,GACtB,EAAqB,GAC3B,OAAS,GAAI,EAAG,EAAI,EAAc,EAAE,EAClC,AAAI,GAAK,EAAiB,EAAI,GAAK,EAAI,GAAM,EAC3C,EAAmB,KAAK,GAExB,EAAoB,KAAK,GAG7B,EAAS,KAAK,GAAG,GACjB,EAAS,KAAK,GACd,EAAS,KAAK,GAAG,GAEnB,MAAO,GAYH,YACF,EAAsB,EAAsB,EAC5C,EAAe,GAAI,CACrB,GAAM,GAAmB,GAEzB,AAAI,EACF,EAAiB,KAAK,EAAW,GAAK,GAEtC,EAAiB,KAAK,EAAW,GAAK,GAGxC,OAAS,GAAI,EAAG,EAAI,EAAW,OAAQ,EAAE,EACvC,AAAI,GAAK,EAAW,OAClB,AAAI,EACF,EAAiB,KAAK,EAAW,EAAI,GAAK,EAAW,IAErD,EAAiB,KAAK,EAAW,GAAK,EAAW,EAAI,IAGvD,EAAiB,KAAK,EAAW,IAIrC,MAAO,GAOH,YACF,EAAmB,EAAkB,CACvC,GAAM,GAAmB,CAAC,GAC1B,OAAS,GAAI,EAAG,EAAI,EAAY,EAAE,EAChC,EAAiB,KAAK,EAAM,GAAG,IAEjC,MAAO,GAcH,YACF,EAA0B,EAAmB,EAAkB,CACjE,GAAM,GAAY,EAAe,MAAM,EAAG,GAC1C,OAAS,GAAI,EAAG,EAAI,EAAY,EAAE,EAChC,EAAU,KAAK,EAAe,EAAI,GAAK,EAAM,GAAG,GAAK,EAAM,GAAG,IAGhE,MAAO,GCvJT,AAiBO,GAAM,IAAkB,mBAClB,GAAa,mBClB1B,AAiBO,GAAM,IAAQ,SACR,GAAS,WACT,GAAS,YACT,GAAS,YACT,GAAS,aACT,GAAS,YCtBtB,AAmBM,eAAkB,EAAc,CACpC,AAAK,IAAM,QAAQ,YACjB,QAAQ,KAAK,GAAG,GAId,eAAiB,EAAc,CACnC,AAAK,IAAM,QAAQ,YACjB,QAAQ,IAAI,GAAG,GC3BnB,AAgCM,YACF,EAAoB,EAAkB,CACxC,GAAI,EAAK,SAAW,EAAK,OACvB,KAAM,IAAI,OACN,gEACG,EAAK,iBAAiB,EAAK,WAEpC,GAAM,GAAS,GAAI,cAAa,EAAK,OAAS,GAC9C,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,GAAK,EACtC,EAAO,GAAK,EAAK,EAAI,GACrB,EAAO,EAAI,GAAK,EAAK,EAAI,GAE3B,MAAO,GAiBH,YAAiC,EAAqB,CAE1D,GAAM,GAAO,GAAI,cAAa,EAAQ,OAAS,GACzC,EAAO,GAAI,cAAa,EAAQ,OAAS,GAC/C,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAQ,GAAK,EACvC,EAAK,EAAI,GAAK,EAAQ,GACtB,EAAK,EAAI,GAAK,EAAQ,EAAI,GAE5B,MAAO,CAAC,OAAM,QAOV,YAA+B,EAAqB,CAExD,GAAM,GAAM,KAAK,KAAK,EAAQ,OAAS,GACjC,EAAO,GAAI,cAAa,GACxB,EAAO,GAAI,cAAa,GAC9B,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAQ,GAAK,EACvC,EAAK,KAAK,MAAM,EAAI,IAAM,EAAQ,GAClC,EAAK,KAAK,MAAM,EAAI,IAAM,EAAQ,EAAI,GAExC,MAAO,CAAC,OAAM,QAOV,YAA8B,EAAqB,CAEvD,GAAM,GAAM,KAAK,MAAM,EAAQ,OAAS,GAClC,EAAO,GAAI,cAAa,GACxB,EAAO,GAAI,cAAa,GAC9B,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAQ,GAAK,EACvC,EAAK,KAAK,MAAM,EAAI,IAAM,EAAQ,GAClC,EAAK,KAAK,MAAM,EAAI,IAAM,EAAQ,EAAI,GAExC,MAAO,CAAC,OAAM,QAQV,YACF,EAAuB,EAAa,CACtC,GAAM,GAAO,EAAQ,EAAQ,GACvB,EAAO,EAAQ,EAAQ,EAAI,GACjC,MAAO,CAAC,OAAM,QASV,YACF,EAAkB,EAAc,EAAc,EAAa,CAC7D,EAAK,EAAQ,GAAK,EAClB,EAAK,EAAQ,EAAI,GAAK,EAMlB,YACF,EAAW,EAAgB,CAC7B,GAAM,GAAO,GAAI,cAAa,EAAI,GAC5B,EAAO,GAAI,cAAa,EAAI,GAClC,OAAS,GAAI,EAAG,EAAI,KAAK,KAAK,EAAI,GAAI,IAAK,CACzC,GAAM,GAAK,GAAU,EAAI,IAAM,KAAK,GAAM,GAAI,GAC9C,EAAK,GAAK,KAAK,IAAI,GACnB,EAAK,GAAK,KAAK,IAAI,GAErB,MAAO,CAAC,OAAM,QAMV,YACF,EAAW,EAAW,EAAgB,CACxC,GAAM,GAAK,GAAU,EAAI,IAAM,KAAK,GAAM,GAAI,GACxC,EAAO,KAAK,IAAI,GAChB,EAAO,KAAK,IAAI,GACtB,MAAO,CAAC,OAAM,QC9HV,YACF,EAAsB,EACtB,EAAO,EAAC,CACV,GAAI,GAAa,GACjB,GAAI,MAAQ,IAAqB,SAC/B,EACI,EAAE,MAAM,GAAQ,GAAoB,EACpC,IAAM,iDACV,EACI,GAAI,OAAM,GAAiB,KAAK,EAAE,MAAM,GAAQ,OAC/C,CACL,GAAM,GAAY,EAAgB,OAAO,CAAC,EAAO,IAC3C,KAAU,IACZ,IAAS,GAEJ,GACN,GACH,EACI,GAAa,EACb,IAAM,2DACV,GAAM,GAAW,EAAgB,QAAQ,IAGzC,GAAI,IAAa,GAAI,CACnB,GAAM,GAAQ,EAAgB,OAAO,CAAC,EAAG,IAAM,EAAI,EAAI,EAAI,EAAI,GAC/D,EAAgB,GAAY,EAAE,MAAM,GAAQ,EAE9C,EACI,EAAE,MAAM,KAAU,EAAgB,OAAO,CAAC,EAAG,IAAM,EAAI,GACvD,IAAM,+DACV,EAAa,EAGf,MAAO,GC1DT,+GAAA,AA6BM,YACF,EAAgB,EAAmB,CACrC,GAAI,GAAO,GACP,EASJ,IAPA,AAAI,GAAU,GACZ,GAAM,EACN,EAAO,IAEP,EAAM,GAAe,EAAQ,KAAK,MAAM,KAAK,KAAK,KAG7C,CAAC,GACN,AAAI,EAAM,GAAe,IAAQ,EAC/B,EAAO,GAEP,EAAM,GAAe,EAAQ,EAAM,GAGvC,MAAO,GAGH,YACF,EAAkB,EAAc,EAAmB,CACrD,GAAM,GAAW,GACX,EAAO,EAAO,OACpB,OAAS,GAAM,EAAG,EAAM,EAAM,IAC5B,AAAI,IAAQ,EACV,EAAS,KAAK,EAAO,IAErB,EAAS,KAAK,GAGlB,MAAO,GAWH,YACF,EAAe,EAAqB,EACpC,EAAiB,CACnB,GAAM,GAAc,EAAQ,MAAM,OAC5B,EAAQ,EAAE,MAAM,OAEtB,GAAI,IAAc,GACZ,GAAY,CAAC,GAAe,EAAY,GAC1C,KAAM,IAAI,OAAM,sCAAsC,MAClD,eAAyB,KAQjC,GAJI,EAAY,GACd,IAAa,GAGX,EAAY,EACd,KAAM,IAAI,OAAM,cAAc;MAC5B,OAGJ,GAAI,EAAO,EACT,KAAM,IAAI,OAAM,cACZ,0CAAkD,OAGxD,OAAS,GAAI,EAAG,EAAI,EAAW,EAAE,EAC/B,GAAI,EAAE,MAAM,KAAO,EAAQ,MAAM,GAC/B,KAAM,IAAI,OACN,WAAW,OAAO,EAAE,MAAM,uCACtB,OAAO,EAAQ,MAAM,OAGjC,GAAM,GAAU,EAAE,MAAM,GAElB,EAAwB,GAC1B,EAAY,EACZ,EAAY,EACZ,EAAY,EAEhB,OAAS,GAAI,EAAG,EAAI,EAAW,EAAE,EAC/B,EAAY,KAAK,EAAE,MAAM,IACzB,GAAa,EAAE,MAAM,GAGvB,OAAS,GAAI,EAAW,EAAI,EAAM,IAChC,EAAY,KAAK,EAAE,MAAM,IACzB,GAAa,EAAE,MAAM,GAGvB,OAAS,GAAI,EAAW,EAAI,EAAa,IACvC,EAAY,KAAK,EAAQ,MAAM,IAGjC,OAAS,GAAI,EAAO,EAAG,EAAI,EAAO,IAChC,EAAY,KAAK,EAAE,MAAM,IACzB,GAAa,EAAE,MAAM,GAGvB,MAAO,CAAC,YAAW,YAAW,YAAW,UAAS,eVrIpD,AA+CM,YAAiC,EAAkB,CACvD,GAAI,CAEF,MAAO,GAAK,IAAI,GAAO,GAAa,UAC7B,EAAP,CACA,KAAM,IAAI,OACN,4DAA4D,MAI9D,YAAiC,EAAiB,CACtD,MAAO,GAAQ,IAAI,GAAK,GAAa,IW1DvC,iIAAA,ACAA,ACAA,AAwBO,GAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,GAAK,GAAK,EAAG,WAAY,QC7BtD,AA4BO,GAAM,IAA6B,CACxC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EAEZ,MAAO,CACL,EAAG,IAAK,CACN,GAAM,GAAI,GAAO,GAAK,EAAG,YACnB,EAAI,GAAK,GAAI,GAAO,GAAI,IAC9B,MAAO,IAAI,GAAI,EAAI,QCtC3B,AA0BO,GAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EAEZ,MAAO,CACL,EAAG,IAAK,CACN,GAAM,GAAI,GAAK,GAAI,GAAO,GAAK,EAAG,YAAa,IAC/C,MAAO,IAAI,EAAI,OCnCvB,AAuBO,GAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,EAAG,GAAK,EACT,EACF,AAAe,GAA2B,EAAE,MAAO,EAAE,OAmBzD,MAAO,CAAC,EAjBK,IAAK,CAChB,GAAI,GAAM,EACJ,EAAa,AAAe,GAAiB,EAAE,MAAO,GAC5D,MAAI,GAAW,OAAS,GACtB,GAAM,GAAI,EAAK,IAEV,EAAQ,EAAK,EAAE,QAWP,EATJ,IAAK,CAChB,GAAI,GAAM,EACJ,EAAa,AAAe,GAAiB,EAAE,MAAO,GAC5D,MAAI,GAAW,OAAS,GACtB,GAAM,GAAI,EAAK,IAEV,EAAQ,EAAK,EAAE,WC7C5B,AAqBO,GAAM,IAA6B,CACxC,WAAY,GACZ,cAAe,GACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,GAAsC,GAC5C,SAAM,QAAQ,CAAC,EAAG,IAAK,CACrB,EAAK,GAAK,IAAM,EAAG,UAEd,IC7BX,AAsBO,GAAM,IAA+B,CAC1C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,GAAU,MC3B/B,AAsBO,GAAM,IAA+B,CAC1C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,GAAU,MC3B/B,AA2BO,GAAM,IAA6B,CACxC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,GAAI,EAAI,GAAK,GAAI,GAAO,GAAI,GAAO,GAAK,EAAG,kBChChE,AA2BO,GAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EAEZ,MAAO,CACL,EAAG,IAAK,CACN,GAAM,GAAI,GAAK,GAAI,GAAO,GAAI,GAAO,GAAK,EAAG,cAC7C,MAAO,IAAI,EAAI,OCpCvB,AA6BO,GAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,EAAG,GAAK,EACT,EAAW,GAA2B,EAAE,MAAO,EAAE,OAoBvD,MAAO,CAAC,EAlBK,IAAK,CAChB,GAAM,GAAI,GAAI,GAAO,GAAI,GAAO,IAC5B,EAAM,EAAI,EAAI,GAAI,EAAG,IACnB,EAAa,GAAiB,EAAE,MAAO,GAC7C,MAAI,GAAW,OAAS,GACtB,GAAM,GAAI,EAAK,IAEV,EAAQ,EAAK,EAAE,QAWP,EATJ,IAAK,CAChB,GAAM,GAAI,GAAI,GAAO,GAAI,GAAO,IAC5B,EAAM,GAAI,EAAI,EAAI,GAAI,EAAG,KACvB,EAAa,GAAiB,EAAE,MAAO,GAC7C,MAAI,GAAW,OAAS,GACtB,GAAM,GAAI,EAAK,IAEV,EAAQ,EAAK,EAAE,WCpD5B,AAyBO,GAAM,IAA6B,CACxC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EAEZ,MAAO,CAAC,EAAG,IAAM,GAAI,EAAI,GAAI,GAAO,GAAK,EAAG,YAAa,OC/B7D,AA0BO,GAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EAEZ,MAAO,CAAC,EAAG,IAAM,GAAI,EAAI,GAAI,GAAO,GAAI,GAAO,GAAK,EAAG,iBC/B3D,AAiDA,YACI,EAAkB,EAClB,EACA,EAA0C,EAC1C,EAAwC,CAC1C,GAAM,GAAM,EAAgB,EAAI,KAAM,iBAChC,EAAS,EAAgB,EAAO,QAAS,iBAE3C,EAAO,EACP,EAAU,EACV,EAAe,GAEnB,AAAI,EAAO,OAAS,GAClB,GAAe,GACf,EAAO,EACH,EAAK,CAAC,EAAG,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KACjE,EAAU,EAAQ,EAAQ,CACxB,EAAG,EAAO,MAAM,GAAI,EAAO,MAAM,GAAI,EAAO,MAAM,GAAI,EAAO,MAAM,MAIvE,AAAK,EACD,EAAK,OAAS,EACd,IAAM,0DACC,EAAK,SAChB,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,6DACC,EAAQ,SAEf,GAAmB,MACrB,AAAK,EACD,AAAK,GAAM,GACX,IAAM,8EACwB,iBAA+B,MAGnE,GAAM,GAA8B,CAAC,GAAI,EAAM,MAAO,GAEhD,EAA4B,CAAC,aAAY,UAAS,MAAK,mBAGvD,EAAM,EAAO,UACH,GAAe,EACf,GAEhB,MAAI,GACK,EACI,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAIhE,EAGF,GAAM,IAAgB,EAAG,CAAC,oBCzGjC,AAsBO,GAAM,IAAkC,CAC7C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,CAAC,GAAK,EACN,CAAC,aAAY,UAAS,MAAK,mBAC7B,EAEJ,MAAO,CACL,EAAG,IAAM,GACL,EAAgB,EAAG,EAAY,EAAS,EAAK,MChCvD,AA6CA,YACI,EAAkB,EAAqB,EACvC,EAAkC,EAA0B,CAC9D,GAAM,GAAM,EAAgB,EAAI,KAAM,eAChC,EAAS,EAAgB,EAAO,QAAS,eAE/C,AAAK,EACD,EAAO,OAAS,EAAI,KACpB,IAAM,kBAAkB,EAAO,oCAC3B,EAAI,SAEZ,GAAI,GAAU,EACV,EAAO,EACP,EAAe,GAEnB,AAAI,EAAO,OAAS,GAClB,GAAe,GACf,EACI,EAAQ,EAAQ,CAAC,EAAG,EAAO,MAAM,GAAI,EAAO,MAAM,GAAI,EAAO,MAAM,KACvE,EAAO,EAAQ,EAAK,CAAC,EAAG,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,MAGhE,AAAK,EACD,EAAK,OAAS,EACd,IAAM,wDACC,EAAK,SAChB,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,2DACC,EAAQ,SAEnB,GAAM,GAA4B,CAAC,GAAI,EAAM,MAAO,GAE9C,EAA0B,CAAC,aAAY,UAAS,OAGhD,EAAM,EAAO,UACH,GAAa,EACb,GAEhB,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAEtD,EAGF,GAAM,IAAc,EAAG,CAAC,kBC3F/B,AAsBO,GAAM,IAAgC,CAC3C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,CAAC,GAAK,EACN,CAAC,aAAY,UAAS,OAAO,EACnC,MAAO,CAAC,EAAG,IAAM,GAAY,EAAgB,EAAG,EAAY,EAAS,MC5BzE,AAsBO,GAAM,IAAoC,CAC/C,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,CAAC,EAAG,GAAK,EAET,CAAC,aAAY,cAAc,EAEjC,MAAI,CAAC,GAAc,CAAC,EACX,CACL,EAAG,IAAM,GAAO,EAAI,EAAG,GAAO,IAC9B,EAAG,IAAM,GAAO,EAAG,EAAI,GAAM,KAEtB,CAAC,GAAc,EACjB,CACL,EAAG,IAAM,GAAO,EAAI,EAAG,GAAO,IAC9B,EAAG,IAAM,GAAO,EAAI,EAAG,GAAM,KAEtB,GAAc,CAAC,EACjB,CACL,EAAG,IAAM,GAAO,EAAG,EAAI,GAAO,IAC9B,EAAG,IAAM,GAAO,EAAG,EAAI,GAAO,KAGzB,CACL,EAAG,IAAM,GAAO,EAAG,EAAI,GAAM,IAC7B,EAAG,IAAM,GAAO,EAAI,EAAG,GAAM,OChDrC,AAsBO,GAAM,IAAuC,CAClD,WAAY,GACZ,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,CAAC,aAAY,SAAS,EAC5B,MAAO,CAAC,EAAG,IAAM,GAAe,EAAI,EAAY,MC1BpD,AAsBO,GAAM,IAAoC,CAC/C,WAAY,GACZ,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,GACF,EAEE,EAAa,EAAiB,WAC9B,EAAc,EAAiB,MAE/B,EAAiB,MAAM,KAAK,GAClC,OAAS,GAAI,EAAW,OAAS,EAAG,GAAK,EAAG,IAC1C,GAAI,EAAW,KAAO,EAAY,GAChC,EAAK,GAAK,UACD,EAAW,KAAO,EAC3B,KAAM,IAAI,OAAM,mBACZ,8BAAuC,OAG/C,GAAM,GAAiB,GACvB,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAC/B,AAAI,EAAK,GAAK,GACZ,EAAK,KAAK,GAId,MAAO,CAAC,EAAG,IAAM,GAAI,EAAI,EAAM,OC/CnC,AAqBO,GAAM,IAA6B,CACxC,WAAY,GACZ,SAAU,AAAC,GACF,EAAC,EAAG,IAAM,EAAG,WCxBxB,AAsBO,GAAM,IAA6B,CACxC,WAAY,GACZ,SAAU,AAAC,GAEF,EAAC,EAAG,IAAM,GAAU,MC1B/B,AA0BO,GAAM,IAAoC,CAC/C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,CAAC,GAAK,EACN,CAAC,eAAc,gBAAgB,EACrC,MAAO,CACL,EAAG,IAAM,GACL,GAAW,GAAa,EAAG,GAAe,GAAU,EAAG,IACvD,EAAI,GAAU,OCnCxB,AAqBO,GAAM,IAAmC,CAC9C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,GAAc,UCxB1B,AAsBO,GAAM,IAA+B,CAC1C,WAAY,GACZ,cAAe,GACf,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,GAAS,EAAM,IAAI,GAAK,EAAE,OAC1B,CAAC,QAAQ,EACT,EAAQ,GAAe,EAAM,EAAM,GAAG,OAAO,GAC7C,EAAa,EAAO,IAAI,GAAK,EAAE,IAErC,MAAO,AADY,IAAM,EAAI,EAAY,GACvB,IAAI,GAAK,IAAM,KC/BrC,AAwBO,GAAM,IAA+B,CAC1C,WAAY,GACZ,aAAc,CAAC,IAAK,UACpB,SAAU,CAAC,EAAc,EAAiB,IAAuB,CAC/D,GAAM,CAAC,EAAK,GAAW,EACjB,CAAC,YAAW,UAAS,MAAK,cAAc,EAE9C,MAAK,GACD,AAAU,GAAkB,GAC5B,IAAM,iHACoD,MAEvD,CACL,EAAG,IACC,GAAoB,EAAI,MAAO,EAAI,EAAS,EAAS,EAAK,GAC9D,OAAQ,IACJ,GAAqB,EAAK,EAAI,EAAQ,MAAO,EAAS,EAAK,MCxCrE,AAsBO,GAAM,IAA4C,CACvD,WAAY,GACZ,aAAc,CAAC,KAAM,UACrB,SAAU,CAAC,EAAe,EAAiB,IAAuB,CAChE,GAAM,CAAC,EAAI,GAAU,EAEf,CAAC,UAAS,MAAK,aAAY,mBAC7B,EAEJ,MAAO,CACL,GAAI,IAAM,GACN,EAAK,EAAQ,EAAS,EAAK,EAAY,EACvC,GACJ,OAAQ,IAAM,GACV,EAAK,EAAI,EAAO,MAAO,EAAS,EAAK,EAAY,MCpC3D,AA0CA,YACI,EAAM,EAAO,EACb,EAA0C,EAAmB,CAC/D,GAAI,GAAM,EACV,AAAI,EAAE,OAAS,GACb,GAAM,EAAQ,EAAG,CAAC,EAAG,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,MAEnE,GAAI,GAAO,EACX,AAAI,EAAK,OAAS,GAChB,GAAO,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAEzE,AAAK,EACD,EAAI,OAAS,EACb,IAAM,iEACC,EAAI,UACf,AAAK,EACD,EAAK,OAAS,EACd,IAAM,8DACC,EAAK,UAChB,AAAK,EACD,EAAY,SAAW,EACvB,IAAM,mEACC,MACX,AAAK,EACD,EAAI,MAAM,KAAO,EAAY,GAC7B,IAAM,4CAA4C,EAAI,MAAM,yCACxB,EAAY,OACpD,AAAK,EACD,EAAK,MAAM,KAAO,EAAY,GAC9B,IAAM,0CAA0C,EAAK,MAAM,2CACrB,EAAY,QAEtD,GAAM,GAAuC,CAAC,EAAG,EAAK,GAAI,GAEpD,EAAqC,CAAC,UAAS,MAAK,eAG1D,MAAO,GAAO,UACH,GAAwB,EACxB,GAGN,GAAM,IAAuB,EAAG,CAAC,2BCpFxC,AAwBO,GAAM,IAA+B,CAC1C,WAAY,GACZ,aAAc,CAAC,IAAK,UACpB,SAAU,CAAC,EAAc,EAAiB,IAAuB,CAC/D,GAAM,CAAC,YAAW,UAAS,OAAO,EAClC,AAAK,EACD,GAAkB,GAClB,IACI,iHACkD,MAE1D,GAAM,CAAC,EAAK,GAAW,EAEvB,MAAO,CACL,EAAG,IAAM,GACJ,EAAiB,MAAO,EAAI,EAAqB,EAAS,GAC/D,OAAQ,IAAM,GACV,EAAiB,EAAK,EAAqB,MAAO,EAAS,MCzCrE,AAyBO,GAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EAEZ,MAAO,CAAC,EAAG,IAAM,EAAI,GAAI,GAAI,GAAK,EAAG,aAAc,MC/BvD,AAwBO,GAAM,IAA6B,CACxC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EAEZ,MAAO,CAAC,EAAG,IAAM,EAAI,GAAK,GAAK,EAAG,YAAa,MC9BnD,AAwBO,GAAM,IAA+B,CAC1C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,CAAC,GAAK,EACN,CAAC,OAAM,YAAW,WAAwB,EAEhD,MAAO,CACL,EAAG,IAAK,CACN,GAAM,GAAc,GAAmB,CAAC,GAAO,EAAE,MAE7C,EAAM,GAAO,EAAI,EAAM,EAAW,CAAC,GAEvC,MAAI,IAAe,MACjB,GAAM,GAAU,EAAK,IAGhB,MCzCf,AAwBO,GAAM,IAA8C,CACzD,WAAY,GACZ,aAAc,CAAC,IAAK,UACpB,SAAU,CAAC,EAAc,EAAiB,IAAuB,CAC/D,GAAM,CAAC,YAAW,UAAS,MAAK,mBAC5B,EAEE,EAAa,GAAa,KAAO,CAAC,EAAG,GAAK,EAEhD,AAAK,EACD,AAAU,GAAkB,GAC5B,IAAM,mHAEE,MAEZ,GAAM,CAAC,EAAG,GAAU,EAEpB,MAAK,GACD,EAAE,OAAS,EACX,IAAM,kFACsB,EAAE,SAClC,AAAK,EACD,EAAO,OAAS,EAChB,IAAM,mFACsB,EAAO,SACvC,AAAK,EACD,EAAE,MAAM,KAAO,EAAO,MAAM,GAC5B,IAAM,mEACW,EAAE,MAAM,qDACR,EAAO,MAAM,OAElC,AAAK,EACD,AAAU,GAA+B,EAAS,GAClD,IAAM,6FACmC,oBACjC,OAER,GAAmB,MACrB,AAAK,EACD,AAAK,GAAM,GACX,IACI,gFACmB,iBAA+B,MAGrD,CACL,EAAG,IAAM,GACL,EAAE,MAAO,EAAI,EAAQ,EAAS,EAAK,EAAW,GAClD,OAAQ,IAAM,GACV,EAAG,EAAI,EAAO,MAAO,EAAS,EAAK,EAAW,MCzExD,AAuBO,GAAM,IAAmC,CAC9C,WAAY,GACZ,aAAc,CAAC,IAAK,UACpB,SAAU,CAAC,EAAc,EAAiB,IAAuB,CAC/D,GAAM,CAAC,EAAG,GAAU,EAEd,EAA6C,CAAC,IAAG,SAAQ,MACzD,EAA+C,CAAC,IAAG,SAAQ,MAEjE,MAAO,CACL,EAAG,IAAM,EAAO,UACZ,GAAyB,EAAqC,GAClE,OAAQ,IAAM,EAAO,UACjB,GAA0B,EAAsC,MCpC1E,AAsBO,GAAM,IAA4B,CACvC,WAAY,GACZ,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EAEN,EAAwB,CAAC,KAAI,KAEnC,MAAO,CAAC,EAAG,IAAM,EAAO,UAAU,GAAS,MC9B/C,AAyBO,GAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EACN,EAAI,EAAI,GAAI,GAAI,GAAO,KAAM,EAAI,KAAK,KAAK,KAAK,KACtD,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,MC/B7B,AAsBO,GAAM,IAA4B,CACvC,WAAY,GACZ,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,MC3B7B,AAsBO,GAAM,IAAmC,CAC9C,WAAY,GACZ,aAAc,CAAC,SACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAS,EAChB,MAAO,CAAC,MAAO,IAAM,EAAQ,EAAI,EAAM,UC3B3C,AAuBO,GAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,GAAI,OC5BjC,AAsBO,GAAM,IAA8B,CACzC,WAAY,GACZ,SAAU,AAAC,GACF,EAAC,EAAG,IAAM,GAAU,MCzB/B,AA6BO,GAAM,IAAiC,CAC5C,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,EAAG,GAAK,EACT,EAAW,GAA2B,EAAE,MAAO,EAAE,OAmBvD,MAAO,CAAC,EAjBK,IAAK,CAChB,GAAM,GAAM,GAAI,EAAI,GAAK,EAAG,YACtB,EAAa,GAAiB,EAAE,MAAO,GAC7C,MAAI,GAAW,OAAS,EACf,EAAQ,GAAI,EAAK,GAAa,EAAE,OAElC,GAWQ,EATJ,IAAK,CAChB,GAAI,GAAM,EAAI,EAAI,GAAK,EAAG,YACpB,EAAa,GAAiB,EAAE,MAAO,GAC7C,AAAI,EAAW,OAAS,GACtB,GAAM,EAAQ,GAAI,EAAK,GAAa,EAAE,QAExC,GAAM,GAAM,GAAO,GACnB,MAAO,IAAI,GAAI,EAAK,GAAK,EAAK,iBCnDpC,AA8BO,GAAM,IAAuC,CAClD,WAAY,GACZ,aAAc,CAAC,IAAK,OAAQ,WAAY,SACxC,SAAU,CACN,EAAY,EAAiB,IAAuB,CACtD,GAAM,CAAC,mBAAmB,EACpB,CAAC,EAAG,EAAM,EAAU,GAAS,EAE7B,EAAa,GAAS,KAAO,GAAO,GAAK,EACzC,EAAgB,GAAiB,EAAK,MAAO,EAAE,OAC/C,EAAsB,GAC5B,GAAI,EAAK,OAAS,EAAG,CACnB,OAAS,GAAI,EAAG,EAAI,EAAE,MAAM,OAAS,EAAG,EAAE,EACxC,EAAU,KAAK,EAAE,MAAM,IAEzB,EAAU,KAAK,GAGjB,GAAM,GAAa,GAAI,EAAG,GACpB,EAAoB,EAAI,EAAI,GAC5B,EAAsB,GAAM,GAAI,EAAU,GAAO,KACjD,EAAiB,EACnB,EAAI,EAAI,EAAqB,GAAsB,GACnD,GAAO,MAgDX,MAAO,CACL,EA/CW,IACP,EAAK,OAAS,EACT,EACH,EAAI,EAAI,EACA,GACI,EAAQ,EAAqB,CAAC,EAAG,EAAG,EAAG,EAAK,MAAM,KAClD,IACR,GACJ,EAAE,OAEC,EAAQ,EAAI,EAAI,EAAI,GAAsB,GAAa,EAAE,OAsClE,KAnCc,IAAK,CACnB,GAAI,GACA,EAAI,EAAI,EAAqB,GAAO,KAAM,GAC9C,MAAI,GAAK,OAAS,GAChB,GAAU,GAAI,EAAS,IAElB,EAAQ,EAAS,EAAK,QA8B7B,SA5BkB,IAAK,CACvB,GAAI,GAAc,EAAI,EAAI,EAAgB,GAAa,GAEvD,MAAI,GAAK,OAAS,GAChB,GAAc,GAAI,EAAa,IAE1B,EAAQ,EAAa,EAAK,QAuBjC,MArBe,IAAK,CACpB,GAAM,GAAwB,EAAI,EAAY,GAE1C,EAAW,EAAI,EAAI,GACvB,MAAI,GAAK,OAAS,GAChB,GAAW,GAAI,EAAU,IAEpB,EAAQ,EAAU,EAAK,QAe9B,OAbgB,IAAK,CACrB,GAAI,GAAY,EAChB,MAAI,GAAK,OAAS,GAChB,GAAY,GAAI,EAAW,IAEtB,EAAQ,EAAW,EAAK,WClGrC,AA0BO,GAAM,IAA+B,CAC1C,WAAY,GACZ,aAAc,CAAC,IAAK,WACpB,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,CAAC,EAAG,GAAW,EACf,CAAC,QAAQ,EAET,EAAa,GAAe,EAAM,EAAE,OAAO,GA+BjD,MAAO,CAAC,EA7BK,IAAK,CAChB,GAAM,GAAc,EAAE,MAChB,EAAc,EAAQ,KAEtB,EAAa,EAAY,MAAM,EAAG,GAClC,EAAY,EAAW,OACvB,EAAa,EAAY,MAAM,EAAM,EAAY,QAAQ,MAAM,GAC/D,EAAY,EAAW,OAEvB,EAAmB,GAAW,EAAG,GACjC,EACF,GAAW,EAAY,EAAG,EAAY,EAAI,GAExC,EAAc,GAAY,CAAC,EAAY,CAAC,GAAc,IAEtD,EAAS,EAAQ,EAAI,GACrB,EAAkB,EAAQ,EAAS,CAAC,IAEpC,EACF,GAAY,CAAC,CAAC,GAAY,EAAkB,IAC1C,EAAkB,GAAU,EAAQ,GACtC,EAAa,GACb,EAAiB,EAA6B,EAAE,MAAM,IAEpD,EAAsB,GAAuB,GACnD,SAAa,GAAU,EAAY,GAE5B,GAEQ,QAAS,IAAM,KAIpC,YAAoB,EAAe,EAAY,CAC7C,GAAM,GAAS,GACf,OAAS,GAAI,EAAO,EAAI,EAAM,EAAE,EAC9B,EAAO,KAAK,GAEd,MAAO,GAGT,YAAqB,EAAkB,CACrC,GAAM,GAAS,GACf,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,EAAE,EACnC,OAAS,GAAI,EAAG,EAAI,EAAO,GAAG,OAAQ,EAAE,EACtC,EAAO,KAAK,EAAO,GAAG,IAG1B,MAAO,GCnFT,AAqBO,GAAM,IAAqC,CAChD,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,EAAG,GAAK,EACf,MAAO,CAAC,EAAG,IAAM,GAAU,GAAI,EAAG,IAAM,GAAU,MC1BtD,AAsBO,GAAM,IAAiC,CAC5C,WAAY,GACZ,SAAU,AAAC,GACF,EAAC,EAAG,IAAM,GAAK,EAAI,cCzB9B,AAsBO,GAAM,IAAiC,CAC5C,WAAY,GACZ,SAAU,AAAC,GAGF,EAAC,EAAG,IAAM,GAAU,MC1B/B,AAsBO,GAAM,IAA8B,CACzC,WAAY,GACZ,SAAU,AAAC,GAGF,EAAC,EAAG,IAAM,GAAU,MC5B/B,AAsBO,GAAM,IAA8B,CACzC,WAAY,GACZ,SAAU,AAAC,GAGF,EAAC,EAAG,IAAM,GAAU,MC3B/B,AAuBO,GAAM,IAAkC,CAC7C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,CAAC,GAAK,EACN,CAAC,SAAS,EACV,EAAO,GAAQ,EAAG,GAIxB,MAAO,CAAC,EAAG,IAAM,GAAM,EAAM,EAAI,EAAI,EAAI,OCjC7C,AAuBO,GAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,GAAI,EAAI,GAAI,EAAG,OC5BpC,AAuBO,GAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,GAAI,EAAI,GAAK,EAAG,eC5BrC,AAyBO,GAAM,IAAmC,CAC9C,WAAY,GACZ,aAAc,GACd,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,CAAC,GAAS,EACV,CAAC,QAAQ,EACf,MAAO,CACL,OAAQ,IAAK,CACX,GAAM,GAAW,GACX,EAAU,GAAI,GACpB,MAAO,IAAI,EAAI,EAAI,GAAI,EAAI,EAAM,GAAW,QCpCpD,AAyBA,YACI,EAAM,EAAM,EAAO,EAAc,EAAG,EAAO,EAAG,EAAQ,EAAG,EAAO,GAAG,CACrE,GAAM,GAAwB,CAAC,IAAG,IAAG,MAE/B,EAAsB,CAAC,cAAa,OAAM,QAAO,QAEvD,MAAO,GAAO,UACV,GAAS,EAAgC,GAGxC,GAAM,IACT,EAAG,CAAC,yCCpCR,AAqBO,GAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,KACf,cAAe,CAAC,IAChB,SAAU,CAAC,EAAc,EAAiB,IAAuB,CAC/D,GAAM,CAAC,EAAG,GAAK,EACT,CAAC,cAAa,OAAM,QAAO,QAAQ,EAEzC,MAAO,CACL,EAAG,IAAM,GACL,EAAG,EAAG,EAAI,EAAa,EAAM,EAAO,MC/B9C,AA2BM,YACF,EAAO,EAAM,EAAe,EAAkB,CAChD,MAAI,GAAE,KAAO,EAAM,MACjB,GAAI,EAAQ,EAAG,AAAU,GAAqB,EAAE,MAAO,KAErD,EAAG,KAAO,EAAM,MAClB,GAAK,EAAQ,EAAI,AAAU,GAAqB,EAAG,MAAO,KAErD,CACL,EAAG,IACU,EAAI,EAAI,GAAK,GAAM,EAAO,GAAI,EAAG,SCrClD,AAwBO,GAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,KACf,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,GAAqB,EACrB,CAAC,oBAAoB,EACrB,EAAI,EAAM,GACV,EAAI,EAAM,GACV,EAAW,AAAK,GAAe,EAAkB,EAAE,OACnD,EAAU,GAAiB,EAAI,EAAG,EAAG,GAC3C,MAAO,CACL,EAAG,IACM,EAAQ,OCrCvB,AAyBO,GAAM,IAAgC,CAC3C,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,EAAG,GAAK,EAGf,MAAO,CAAC,EAFK,IAAM,EAAI,EAAI,GAAK,GAAa,EAAG,GAAI,YAEnC,EADJ,IAAM,EAAI,EAAI,GAAK,GAAK,EAAG,GAAI,eC/BhD,AAmDA,YACI,EAAkB,EAAqB,EACvC,EACA,EAA0C,EAC1C,EAAwC,CAC1C,GAAM,GAAM,EAAgB,EAAI,KAAM,iBAChC,EAAS,EAAgB,EAAO,QAAS,iBACzC,EAAU,EAAgB,EAAQ,SAAU,iBAE9C,EAAO,EACP,EAAU,EACV,EAAW,EACX,EAAe,GAEnB,AAAI,EAAO,OAAS,GAClB,GAAe,GACf,EAAO,EACH,EAAK,CAAC,EAAG,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KACjE,EAAU,EAAQ,EAAQ,CACxB,EAAG,EAAO,MAAM,GAAI,EAAO,MAAM,GAAI,EAAO,MAAM,GAAI,EAAO,MAAM,KAErE,EAAW,EAAQ,EAAS,CAC1B,EAAG,EAAQ,MAAM,GAAI,EAAQ,MAAM,GAAI,EAAQ,MAAM,GAAI,EAAQ,MAAM,MAI3E,AAAK,EACD,EAAK,OAAS,EACd,IAAM,0DACC,EAAK,SAChB,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,6DACC,EAAQ,SACnB,AAAK,EACD,EAAS,OAAS,EAClB,IAAM,8DACC,EAAS,SAChB,GAAmB,MACrB,AAAK,EACD,AAAK,GAAM,GACX,IAAM,8EACwB,iBAA+B,MAGnE,GAAM,GACoB,CAAC,GAAI,EAAM,MAAO,EAAS,OAAQ,GAEvD,EAA4B,CAAC,aAAY,UAAS,MAAK,mBAGvD,EAAM,EAAO,UACH,GAAe,EACf,GAEhB,MAAI,GACK,EACI,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAIhE,EAGF,GAAM,IAAgB,EAAG,CAAC,oBCnHjC,AAsBO,GAAM,IAAkC,CAC7C,WAAY,GACZ,aAAc,CAAC,KACf,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,CAAC,EAAG,GAAK,EACT,CAAC,aAAY,UAAS,MAAK,mBAC7B,EAEJ,MAAO,CACL,EAAG,IAAM,GACL,EAAgB,EAAG,EAAG,EAAY,EAAS,EAAK,MCjC1D,AA+CA,YACI,EAAyB,EACzB,EAA6B,EAC7B,EAAkC,EAClC,EAAwC,CAC1C,GAAM,GAAM,EAAgB,EAAI,KAAM,eAChC,EAAS,EAAgB,EAAO,QAAS,eACzC,EAAU,EAAgB,EAAQ,SAAU,eAElD,AAAK,EACD,EAAO,OAAS,EAAI,KACpB,IAAM,kBAAkB,EAAO,oCACvB,EAAI,SAEhB,AAAK,EACD,EAAI,OAAS,EACb,IAAM,wDACC,EAAI,SACf,AAAK,EACD,EAAO,OAAS,EAChB,IAAM,2DACC,EAAO,SACd,GAAmB,MACrB,AAAK,EACD,AAAK,GAAM,GACX,IAAM,4EACiB,iBAA+B,MAG5D,GAAM,GAA4B,CAAC,GAAI,EAAK,MAAO,EAAQ,OAAQ,GAE7D,EAA0B,CAAC,aAAY,UAAS,MAAK,mBAG3D,MAAO,GAAO,UACH,GAAa,EACb,GAGN,GAAM,IAAc,EAAG,CAAC,kBCtF/B,AAsBO,GAAM,IAAgC,CAC3C,WAAY,GACZ,aAAc,CAAC,KACf,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,CAAC,EAAG,GAAK,EACT,CAAC,aAAY,UAAS,OAAO,EAEnC,MAAO,CACL,EAAG,IAAM,GAAY,EAAgB,EAAG,EAAG,EAAY,EAAS,MC/BtE,AA2BO,GAAM,IAA6B,CACxC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,CAAC,GAAK,EACN,CAAC,QAAQ,EACT,EAAO,AAAK,GAAe,EAAM,EAAE,OAEnC,EAAc,AADL,GAA0B,EAAE,MAAO,GACvB,GACrB,EAAa,AAAK,GAAc,GAYtC,MAAO,CAAC,EAVK,IAAK,CAChB,GAAM,GAAkB,EAAE,MAAM,QAChC,EAAK,QAAQ,GAAO,CAClB,EAAgB,GAAQ,IAE1B,GAAM,GAAa,EAAQ,EAAI,GAE/B,MADY,IAAI,EAAI,EAAY,GAAK,EAAE,MAAO,YAAa,OC5CjE,AAwBO,GAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,KACf,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,GAAqB,EACrB,CAAC,QAAQ,EACT,CAAC,EAAG,GAAK,EACT,EAAW,AAAK,GAAe,EAAM,EAAE,OACvC,EAAU,GAAiB,EAAI,EAAG,EAAG,GAC3C,MAAO,CACL,EAAG,IACM,EAAQ,OCpCvB,AAyBO,GAAM,IAAgC,CAC3C,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,EAAG,GAAK,EAGf,MAAO,CAAC,EAFK,IAAM,EAAI,EAAI,GAAK,GAAU,EAAG,GAAI,YAEhC,EADJ,IAAM,EAAI,EAAI,GAAK,GAAQ,EAAG,GAAI,eC/BnD,AAsBO,GAAM,IAAkC,CAC7C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAG7D,GAAM,GAAI,EAAM,GACV,CAAC,YAAY,EACb,EAAQ,EAAS,IAAI,GAAK,EAAE,IAClC,MAAO,CAAC,EAAG,IAAM,GAAM,EAAI,EAAO,EAAE,UC/BxC,AA4BO,GAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,EAAG,GAAK,EACT,EAAW,GAA2B,EAAE,MAAO,EAAE,OAiBvD,MAAO,CAAC,EAfK,IAAK,CAChB,GAAM,GAAa,GAAiB,EAAE,MAAO,GAC7C,MAAI,GAAW,OAAS,EACf,EAAQ,GAAI,EAAI,GAAa,EAAE,OAEjC,GAUQ,EARJ,IAAK,CAChB,GAAM,GAAM,EAAI,EAAI,GAAI,GAAM,GAAI,EAAG,MAC/B,EAAa,GAAiB,EAAE,MAAO,GAC7C,MAAI,GAAW,OAAS,EACf,EAAQ,GAAI,EAAK,GAAa,EAAE,OAElC,MChDb,AA0BO,GAAM,IAAiC,CAC5C,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,EAAG,GAAK,EACT,EAAW,GAA2B,EAAE,MAAO,EAAE,OAkBvD,MAAO,CAAC,EAhBK,IAAK,CAChB,GAAM,GAAM,EAAI,EAAI,GAAK,EAAG,YACtB,EAAa,GAAiB,EAAE,MAAO,GAC7C,MAAI,GAAW,OAAS,EACf,EAAQ,GAAI,EAAK,GAAa,EAAE,OAElC,GAUQ,EARJ,IAAK,CAChB,GAAM,GAAM,EAAI,EAAI,GAAK,EAAG,YACtB,EAAa,GAAiB,EAAE,MAAO,GAC7C,MAAI,GAAW,OAAS,EACf,EAAQ,GAAI,EAAK,GAAa,EAAE,OAElC,MC/Cb,AAsBO,GAAM,IAA4B,CACvC,WAAY,GACZ,SAAU,AAAC,GACF,EAAC,EAAG,IAAM,GAAI,MCzBzB,AAsBO,GAAM,IAA+B,CAC1C,WAAY,GACZ,aAAc,CAAC,WACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,GAAU,EAAM,GACtB,MAAO,CAAC,QAAS,IAAM,GAAM,EAAQ,MAAO,cC3BhD,AAsBO,GAAM,IAAiC,CAC5C,WAAY,GACZ,SAAU,AAAC,GACF,EAAC,EAAG,IAAM,GAAU,MCzB/B,AAsBO,GAAM,IAA6B,CACxC,WAAY,GACZ,cAAe,GACf,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,CAAC,QAAQ,EAEf,MAAO,AADY,IAAQ,EAAI,GACb,IAAI,GAAK,IAAM,KC5BrC,AAsBO,GAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAG7D,GAAM,GAAI,EAAM,GACV,CAAC,YAAY,EACb,EAAQ,EAAS,IAAI,GAAK,EAAE,IAClC,MAAO,CAAC,EAAG,IAAM,GAAM,EAAI,EAAO,EAAE,UC/BxC,AAgCO,GAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,EAAG,EAAG,GAAK,EACZ,EAAO,EACP,EAAM,EACN,EACF,AAAe,GAA2B,EAAK,MAAO,EAAI,OAqB9D,MAAO,CAAC,EAnBQ,IAAK,CACnB,GAAM,GAAW,GAAK,EAAK,WACvB,EAAM,EAAI,EAAI,EAAI,EAAU,GAAI,EAAM,GAAI,EAAU,GAAO,OACzD,EAAa,AAAe,GAAiB,EAAK,MAAO,GAC/D,MAAI,GAAW,OAAS,GACtB,GAAM,GAAI,EAAK,IAEV,EAAQ,EAAK,EAAK,QAYP,EAVL,IAAK,CAClB,GAAM,GAAY,GAAQ,EAAM,GAC1B,EAAU,GAAM,EAAW,GAAI,GAAO,GAAU,IAClD,EAAM,EAAI,EAAI,EAAI,EAAG,IACnB,EAAa,AAAe,GAAiB,EAAI,MAAO,GAC9D,MAAI,GAAW,OAAS,GACtB,GAAM,GAAI,EAAK,IAEV,EAAQ,EAAK,EAAI,WC5D9B,AA2BO,GAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,IAAK,SACpB,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,EAAG,GAAS,EACb,EAAO,GAAQ,EAAG,GAExB,MAAO,CACL,EAAG,IAAM,GAAM,EAAM,EAAI,EAAI,EAAI,IACjC,MAAO,IAAK,CACV,GAAI,GAAM,GAAM,EAAM,GAAU,GAAK,EAAI,EAAI,IACvC,EAAa,GAAiB,EAAM,MAAO,EAAG,OACpD,MAAI,GAAW,OAAS,GACtB,GAAM,GAAI,EAAK,IAEV,EAAQ,EAAK,EAAM,WC1ClC,AA6BO,GAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,EAAG,GAAK,EACT,EACF,AAAe,GAA2B,EAAE,MAAO,EAAE,OAkBzD,MAAO,CAAC,EAjBK,IAAK,CAChB,GAAM,GAAM,GAAI,EAAI,GAAK,EAAG,YACtB,EAAa,AAAe,GAAiB,EAAE,MAAO,GAC5D,MAAI,GAAW,OAAS,EACf,EAAQ,GAAI,EAAK,GAAa,EAAE,OAElC,GAWQ,EATJ,IAAK,CAChB,GAAI,GAAM,EAAI,EAAI,GAAK,EAAG,YACpB,EAAa,AAAe,GAAiB,EAAE,MAAO,GAC5D,AAAI,EAAW,OAAS,GACtB,GAAM,EAAQ,GAAI,EAAK,GAAa,EAAE,QAExC,GAAM,GAAM,GAAO,GACnB,MAAO,IAAI,GAAI,EAAK,GAAK,EAAK,iBCnDpC,AAwBO,GAAM,IAAmC,CAC9C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,GAAI,EAAI,GAAI,GAAO,QC7BxC,AAwBO,GAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EACN,EAAO,EAAI,GAAU,EAAG,GAAI,GAAK,IAEvC,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,GAAK,EAAM,eC/BxC,AAuBO,GAAM,IAA6B,CACxC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,GAAK,GAAK,GAAI,eC5B3C,AAqBO,GAAM,IAAgC,CAC3C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,EAAQ,EAAI,EAAE,UC1BnC,AAuBO,GAAM,IAAuC,CAClD,WAAY,GACZ,aAAc,CAAC,UACf,SAAU,CAAC,EAAc,EAAiB,IAAuB,CAC/D,GAAM,CAAC,GAAU,EAEX,EAAmC,CAAC,KAAI,UAO9C,MAAO,CAAC,OANU,IAEd,EAAO,UACH,GAAoB,EAAgC,MCjChE,AAuBO,GAAM,IAA8C,CACzD,WAAY,GACZ,aAAc,CAAC,UACf,SAAU,CAAC,EAAc,EAAiB,IAAuB,CAC/D,GAAM,CAAC,GAAU,EAEX,EAA0C,CAAC,KAAI,UAOrD,MAAO,CAAC,OANU,IAEd,EAAO,UACH,GAA2B,EAAgC,MCjCvE,AAsBO,GAAM,IAAgC,CAC3C,WAAY,GACZ,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,CAAC,QAAQ,EACT,EAAO,GAAe,EAAM,EAAG,OACrC,MAAO,CAAC,EAAG,IAAM,GAAQ,EAAI,MC3BjC,AAsBO,GAAM,IAA8B,CACzC,WAAY,GACZ,SAAU,AAAC,GAGF,EAAC,EAAG,IAAM,GAAU,MC3B/B,AAyBO,GAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,GAAI,GAAI,EAAI,EAAI,GAAI,EAAG,KAAM,QC9BlD,AAyBO,GAAM,IAA+B,CAC1C,WAAY,GACZ,aAAc,CAAC,aACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAa,EACpB,MAAO,CAGL,UAAW,IAAM,GAAK,GAAU,GAAY,WAC5C,EAAG,IAAM,EAAI,EAAI,GAAK,EAAW,EAAG,QACpC,EAAG,IAAM,EAAI,EAAI,GAAK,GAAW,GAAY,EAAG,WCnCtD,AA2BO,GAAM,IAA6B,CACxC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EACZ,MAAO,CACL,EAAG,IAAK,CACN,GAAM,GAAO,GAAQ,EAAG,GAAO,IAEzB,EAAa,GAAO,IACpB,EAAQ,GAAO,IAEf,EAAqB,EAAI,EAAI,GAC7B,EACF,EAAI,EAAI,EAAI,GAAa,GAAI,GAAK,EAAG,aAEzC,MAAO,IAAM,EAAM,EAAoB,OC3C/C,AAwBO,GAAM,IAAgC,CAC3C,WAAY,GACZ,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EAEZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,EAAI,EAAG,GAAI,GAAO,GAAI,QC9BnD,AAsBO,GAAM,IAA6B,CACxC,WAAY,GACZ,SAAU,AAAC,GACF,EAAC,EAAG,IAAM,GAAU,MCzB/B,AAwBO,GAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,EAAI,GAAI,GAAK,EAAG,YAAa,MC7BlD,AAwBO,GAAM,IAA6B,CACxC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EAEZ,MAAO,CAAC,EAAG,IAAM,EAAI,GAAK,GAAK,EAAG,YAAa,MC9BnD,AAuBO,GAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,CAAC,GAAK,EACN,CAAC,QAAO,QAAQ,EAEhB,EAAa,EAAE,MACf,CAAC,EAAQ,GAAS,GAAiB,EAAG,EAAO,GAQ7C,EAAoC,GAC1C,OAAS,GAAI,EAAG,EAAI,EAAG,KAAM,IAC3B,EAAS,KAAK,CAAC,EAAO,GAAI,EAAW,GAAK,EAAO,GAAK,EAAM,KAE9D,MAAO,CAAC,EAAG,IAAM,GAAI,EAAI,MC3C7B,AAwBO,GAAM,IAAgC,CAC3C,WAAY,GACZ,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,CAAC,GAAK,EACN,CAAC,OAAO,EACR,EAAW,GAEX,EAAW,EAAI,EAAI,GACzB,MAAO,CACL,OAAQ,IAAM,GAAI,EAAU,EAAI,GAAI,EAAU,CAAC,GAAM,GAAW,OClCtE,AAuBO,GAAM,IAAiC,CAC5C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EAEZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,GAAQ,OC7BrC,AAsBO,GAAM,IAAuC,CAClD,WAAY,GACZ,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,CAAC,aAAY,YAAY,EAC/B,MAAO,CAAC,EAAG,IAAM,GAAe,EAAI,EAAY,MC1BpD,AAqBO,GAAM,IAA+B,CAC1C,WAAY,GACZ,SAAU,CAAC,EAAc,EAAiB,IAAuB,CAC/D,GAAM,CAAC,QAAQ,EAEf,MAAO,CAAC,EAAG,IAAM,GAAO,EAAI,MC1BhC,AAyBO,GAAM,IAA6B,CACxC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EAEZ,MAAO,CAAC,EAAG,IAAM,GAAI,EAAI,EAAI,GAAK,GAAK,EAAG,YAAa,OC/B3D,AAuBO,GAAM,IAA+B,CAC1C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,EAAI,GAAK,EAAG,WAAY,OC5BrD,AAwBO,GAAM,IAA0C,CACrD,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,EAAG,GAAK,EACT,EAAM,GAAO,GAGnB,MAAO,CAAC,EAFK,IAAM,EAAI,EAAI,EAAI,EAAK,GAAI,EAAG,KAE1B,EADJ,IAAM,EAAI,EAAI,EAAI,EAAK,GAAI,EAAG,QC/B/C,AAsBO,GAAM,IAA6B,CACxC,WAAY,GACZ,SAAU,AAAC,GAGF,EAAC,EAAG,IAAM,GAAU,MC3B/B,AAwBO,GAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,EAAG,GAAK,EACT,EACF,AAAe,GAA2B,EAAE,MAAO,EAAE,OAmBzD,MAAO,CAAC,EAjBK,IAAK,CAChB,GAAI,GAAM,EACJ,EAAa,AAAe,GAAiB,EAAE,MAAO,GAC5D,MAAI,GAAW,OAAS,GACtB,GAAM,GAAI,EAAK,IAEV,EAAQ,EAAK,EAAE,QAWP,EATJ,IAAK,CAChB,GAAI,GAAM,EACJ,EAAa,AAAe,GAAiB,EAAE,MAAO,GAC5D,MAAI,GAAW,OAAS,GACtB,GAAM,GAAI,EAAK,IAEV,EAAQ,GAAI,GAAM,EAAE,WC9CjC,AAyBO,GAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,CAAC,GAAK,EACN,EAAkB,EAAE,MAAM,QAC1B,CAAC,QAAQ,EAGf,AADa,GAAe,EAAM,EAAE,OAC/B,QAAQ,GAAO,CAClB,EAAgB,GAAQ,IAE1B,GAAM,GAAa,EAAQ,EAAI,GACzB,EAAO,EAAI,EAAY,GAAK,EAAE,MAAO,YAE3C,MAAO,CAAC,EAAG,IAAM,KCxCrB,AAwBO,GAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EAEZ,MAAO,CAAC,EAAG,IAAM,GAAI,EAAI,GAAO,GAAI,QC9BxC,AAyBO,GAAM,IAA6B,CACxC,WAAY,GACZ,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAK,EAEZ,MAAO,CAAC,EAAG,IAAM,EAAI,GAAI,GAAO,GAAI,GAAO,IAAK,MC/BpD,AAwBO,GAAM,IAA6B,CACxC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,CAAC,GAAK,EACN,CAAC,QAAQ,EAuDf,MAAO,CAAC,EArDK,IAAK,CAChB,GAAI,GAAQ,GAAU,GAGtB,GAAI,EAAE,OAAS,EACb,OAAS,GAAI,EAAG,EAAI,EAAK,GAAI,EAAE,EAC7B,EAAQ,GAAI,EAAO,GAAM,EAAI,CAAC,EAAI,EAAE,MAAM,IAAK,CAAC,EAAE,MAAM,cAEjD,EAAE,OAAS,EACpB,OAAS,GAAI,EAAG,EAAI,EAAK,GAAI,EAAE,EAC7B,OAAS,GAAI,EAAG,EAAI,EAAK,GAAI,EAAE,EAC7B,EAAQ,GAAI,EAAO,GAAM,EAAI,CAAC,EAAI,EAAE,MAAM,GAAI,EAAI,EAAE,MAAM,IAAK,CACjD,EAAE,MAAM,GAAI,EAAE,MAAM,cAI7B,EAAE,OAAS,EACpB,OAAS,GAAI,EAAG,EAAI,EAAK,GAAI,EAAE,EAC7B,OAAS,GAAI,EAAG,EAAI,EAAK,GAAI,EAAE,EAC7B,OAAS,GAAI,EAAG,EAAI,EAAK,GAAI,EAAE,EAC7B,EACI,GAAI,EACA,GACI,EAAI,CAAC,EAAI,EAAE,MAAM,GAAI,EAAI,EAAE,MAAM,GAAI,EAAI,EAAE,MAAM,IACjD,CAAC,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,cAI1C,EAAE,OAAS,EACpB,OAAS,GAAI,EAAG,EAAI,EAAK,GAAI,EAAE,EAC7B,OAAS,GAAI,EAAG,EAAI,EAAK,GAAI,EAAE,EAC7B,OAAS,GAAI,EAAG,EAAI,EAAK,GAAI,EAAE,EAC7B,OAAS,GAAI,EAAG,EAAI,EAAK,GAAI,EAAE,EAC7B,EACI,GAAI,EACA,GACI,EACA,CACE,EAAI,EAAE,MAAM,GAAI,EAAI,EAAE,MAAM,GAAI,EAAI,EAAE,MAAM,GAC5C,EAAI,EAAE,MAAM,IAEd,CAAC,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,UAMjE,MAAM,IAAI,OACN,2DACG,EAAE,qBAEX,MAAO,OClFb,AAuBO,GAAM,IAAkC,CAC7C,WAAY,GACZ,SAAU,CAAC,EAAY,EAAiB,IAAuB,CAC7D,GAAM,GAAiC,EACjC,CAAC,QAAQ,EACT,EAAW,AAAU,GAAuB,GAClD,MAAO,CAAC,EAAG,IAAM,GAAU,EAAI,MC7BnC,AAqBO,GAAM,IAA+B,CAC1C,WAAY,GACZ,SAAU,CAAC,EAAc,EAAiB,IAAuB,CAC/D,GAAM,GAA2B,EAC3B,CAAC,QAAQ,EACf,MAAO,CAAC,MAAO,IAAM,GAAM,EAAI,MC1BnC,AA8BO,GAAM,IAA2C,CACtD,WAAY,GACZ,aAAc,CAAC,cACf,SAAU,CAAC,EAAY,IAAmB,CACxC,GAAM,CAAC,GAAc,EAKrB,MAAO,CAAC,EAHK,IACJ,GAAoB,EAAI,MAMrC,YAA+C,EAAM,EAAiB,CAIpE,GAAM,GAAqB,GAAQ,EAAS,GAAU,IAChD,EAAW,GAAO,EAAG,GACvB,EAAa,GAAa,EAAS,GAAO,EAAG,UAC3C,EAAW,EAAS,KAAO,EAAW,KAC5C,OAAS,GAAI,EAAG,EAAI,EAAU,EAAE,EAC9B,EAAa,GAAW,EAAY,EAAI,GAE1C,EAAa,GAAW,EAAY,GAAK,EAAS,MAAO,SACzD,GAAM,GAAY,GAAU,GAC5B,MAAO,IAAM,EAAY,EAAU,GCxDrC,AAsBO,GAAM,IAAkC,CAC7C,WAAY,GACZ,SAAU,AAAC,GACF,EAAC,EAAG,IAAM,GAAU,MCzB/B,AAwHA,GAAM,IAA4B,CAChC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAkB,IAC3B,GAAiB,GCpOnB,AA4BA,IAAuB,UAAU,IAAM,UAAA,CACrC,YAAK,kBACE,GAAI,OC9Bb,AA4BA,IAAuB,UAAU,KAAO,UAAA,CACtC,YAAK,kBACE,GAAK,OC9Bd,AA4BA,IAAuB,UAAU,MAAQ,UAAA,CACvC,YAAK,kBACE,GAAM,OC9Bf,AA2BA,IAAuB,UAAU,IAAM,SACnC,EAAoB,CACtB,YAAK,kBACE,GAAI,KAAM,IC9BnB,AA2BA,IAAuB,UAAU,IAAM,SAC1B,EAAwB,EAAkB,CACrD,YAAK,kBACE,GAAI,KAAM,EAAM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AgC,CACpC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAgB,IACzB,GAAe,GC/UjB,ACAA,AAiBA,GAAM,IAAmD,GAEnD,GAA2C,CAC/C,MAAO,GACP,UAAW,GACX,mBAAoB,GACpB,sBAAuB,GACvB,MAAO,GACP,QAAS,GACT,6BAA8B,IAO1B,YACF,EAAsB,EAAyB,CACjD,GAAS,GAAgB,EAGrB,YAA0B,EAAoB,CAClD,GAAI,CAAE,KAAgB,KAAW,CAC/B,GAAM,GAAS,GAAyB,GACxC,GAAI,IAAW,KACb,GAAS,GAAgB,MAEzB,gBAAQ,IAAI,0CAA2C,GAChD,KAGX,GAAM,GAAK,GAAS,GACpB,MAAI,GAAG,gBACL,OAAO,IAAS,GACT,GAAgB,IAGzB,GAAG,QAAQ,EAAG,YACd,EAAG,QAAQ,EAAG,cACd,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1B,SAAU,KAAK,GACf,EAAU,KAAK,GAGX,EAAa,EAAQ,EAAW,EAAU,EAAO,IAIrD,EAAc,EAChB,EAAK,qBAAsB,EAAY,EAAa,GAElD,EACF,GAAQ,CAAC,OAAQ,CAAC,GAAiB,UAAS,MAAO,CAAC,MAAO,KAE3D,EAAS,EACb,GAAI,GAAe,KAAM,CACvB,EAAU,KAAK,GACf,GAAM,GAAO,EAAa,uBAAuB,GACjD,EAAS,GAAU,CAAC,OAAQ,CAAC,EAAG,GAAS,UAAS,MAAO,CAAC,UAG5D,SAAU,QAAQ,GAAK,EAAQ,8BAA8B,IACtD,EAGF,GAAM,IAAyC,CACpD,WAAY,GACZ,YAAa,QACb,WAAY,IChHd,AA6KA,GAAM,IAAgC,CACpC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAgB,IACzB,GAAe,GC1UjB,ACAA,AA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", "names": [] } diff --git a/dist/tfjs.esm.json b/dist/tfjs.esm.json deleted file mode 100644 index d708612..0000000 --- a/dist/tfjs.esm.json +++ /dev/null @@ -1,29564 +0,0 @@ -{ - "inputs": { - "node_modules/@tensorflow/tfjs-core/dist/backends/backend.js": { - "bytes": 3244, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/util_base.js": { - "bytes": 20100, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/environment.js": { - "bytes": 5556, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util_base.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/global_util.js": { - "bytes": 2316, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js": { - "bytes": 5914, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/kernel_registry.js": { - "bytes": 4943, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/environment.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/global_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/util.js": { - "bytes": 3793, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/environment.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util_base.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util_base.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/profiler.js": { - "bytes": 4499, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/environment.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/tape.js": { - "bytes": 6245, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/tensor_format.js": { - "bytes": 6412, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/tensor.js": { - "bytes": 13373, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/global_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_format.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/types.js": { - "bytes": 2833, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js": { - "bytes": 2692, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/types.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/engine.js": { - "bytes": 42719, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/backends/backend.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/environment.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/global_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_registry.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/profiler.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/device_util.js": { - "bytes": 3385, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/flags.js": { - "bytes": 2541, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/device_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/environment.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js": { - "bytes": 4589, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/environment.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js": { - "bytes": 2225, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/complex.js": { - "bytes": 2044, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tensor_ops_util.js": { - "bytes": 2782, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tensor.js": { - "bytes": 1847, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor_ops_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/io/types.js": { - "bytes": 1039, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/io/io_utils.js": { - "bytes": 17504, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/complex.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/types.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/io/router_registry.js": { - "bytes": 3367, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/io/indexed_db.js": { - "bytes": 14300, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/flags.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/environment.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/io_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/router_registry.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/io/local_storage.js": { - "bytes": 12540, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/flags.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/environment.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/io_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/router_registry.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/io/model_management.js": { - "bytes": 11433, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/router_registry.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/platforms/platform_browser.js": { - "bytes": 2092, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/flags.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/environment.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/indexed_db.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/local_storage.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/model_management.js", - "kind": "import-statement" - } - ] - }, - "(disabled):node_modules/node-fetch/browser.js": { - "bytes": 0, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/platforms/platform_node.js": { - "bytes": 2554, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/environment.js", - "kind": "import-statement" - }, - { - "path": "(disabled):node_modules/node-fetch/browser.js", - "kind": "require-call" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/buffer.js": { - "bytes": 1840, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js": { - "bytes": 1769, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/clone.js": { - "bytes": 1463, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/print.js": { - "bytes": 1188, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/base_side_effects.js": { - "bytes": 1333, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/flags.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/platforms/platform_browser.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/platforms/platform_node.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/buffer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/clone.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/print.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/io/browser_files.js": { - "bytes": 14793, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/flags.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/environment.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/io_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/router_registry.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/io/progress.js": { - "bytes": 2613, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/io/weights_loader.js": { - "bytes": 8924, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/environment.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/io_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/progress.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/types.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/io/http.js": { - "bytes": 14085, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/environment.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/io_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/router_registry.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/weights_loader.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/io/passthrough.js": { - "bytes": 3915, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/io/io.js": { - "bytes": 1714, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/indexed_db.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/local_storage.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/browser_files.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/http.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/io_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/passthrough.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/router_registry.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/weights_loader.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/model_management.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/mat_mul.js": { - "bytes": 1886, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/one_hot.js": { - "bytes": 2063, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/transpose.js": { - "bytes": 2318, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/confusion_matrix.js": { - "bytes": 3705, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mat_mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/one_hot.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/math.js": { - "bytes": 871, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/confusion_matrix.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tensor3d.js": { - "bytes": 2284, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor_ops_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/browser.js": { - "bytes": 9105, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_registry.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor3d.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/gather_nd_util.js": { - "bytes": 2129, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/scatter_nd_util.js": { - "bytes": 4154, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/slice_util.js": { - "bytes": 13296, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/serialization.js": { - "bytes": 3947, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/test_util.js": { - "bytes": 4999, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/version.js": { - "bytes": 175, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/globals.js": { - "bytes": 12108, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/environment.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/add.js": { - "bytes": 1780, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/floorDiv.js": { - "bytes": 1896, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/div.js": { - "bytes": 2026, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/floorDiv.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js": { - "bytes": 1935, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/abs.js": { - "bytes": 1491, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/acos.js": { - "bytes": 1342, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/acosh.js": { - "bytes": 1381, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/add_n.js": { - "bytes": 2176, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/all.js": { - "bytes": 2111, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/any.js": { - "bytes": 2152, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/arg_max.js": { - "bytes": 1713, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/arg_min.js": { - "bytes": 1713, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/asin.js": { - "bytes": 1342, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/asinh.js": { - "bytes": 1376, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/atan.js": { - "bytes": 1345, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/atan2.js": { - "bytes": 1638, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/atanh.js": { - "bytes": 1378, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/conv_util.js": { - "bytes": 16739, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js": { - "bytes": 2074, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool.js": { - "bytes": 3356, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_3d.js": { - "bytes": 3888, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/concat.js": { - "bytes": 2817, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/clone.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/sigmoid.js": { - "bytes": 1360, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/slice.js": { - "bytes": 2430, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tanh.js": { - "bytes": 1359, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/basic_lstm_cell.js": { - "bytes": 2762, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/concat.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mat_mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sigmoid.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tanh.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/batch_to_space_nd.js": { - "bytes": 4007, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm_util.js": { - "bytes": 457, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm.js": { - "bytes": 3361, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm2d.js": { - "bytes": 2015, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm3d.js": { - "bytes": 2015, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm4d.js": { - "bytes": 2015, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/bincount.js": { - "bytes": 2417, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_to.js": { - "bytes": 2955, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/clone.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/ceil.js": { - "bytes": 1345, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/clip_by_value.js": { - "bytes": 1831, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/concat_1d.js": { - "bytes": 536, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/concat.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/concat_2d.js": { - "bytes": 930, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/concat.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/concat_3d.js": { - "bytes": 1075, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/concat.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/concat_4d.js": { - "bytes": 451, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/concat.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d.js": { - "bytes": 4324, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/conv1d.js": { - "bytes": 3539, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_backprop_input.js": { - "bytes": 4192, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_transpose.js": { - "bytes": 1462, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_backprop_input.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/conv3d.js": { - "bytes": 4253, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_backprop_input.js": { - "bytes": 3535, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_transpose.js": { - "bytes": 1336, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_backprop_input.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/cos.js": { - "bytes": 1353, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/cosh.js": { - "bytes": 1355, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/cumsum.js": { - "bytes": 1946, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/dense_bincount.js": { - "bytes": 2772, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/depth_to_space.js": { - "bytes": 3564, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d.js": { - "bytes": 4875, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/diag.js": { - "bytes": 1613, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/dilation2d.js": { - "bytes": 3812, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js": { - "bytes": 2732, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/equal.js": { - "bytes": 1712, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/where.js": { - "bytes": 3076, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_to.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js": { - "bytes": 1397, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/div_no_nan.js": { - "bytes": 2232, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/where.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/dot.js": { - "bytes": 2831, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mat_mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/elu.js": { - "bytes": 1340, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/erf.js": { - "bytes": 1606, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/exp.js": { - "bytes": 1337, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/expand_dims.js": { - "bytes": 1765, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/expm1.js": { - "bytes": 1372, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tile.js": { - "bytes": 2115, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/eye.js": { - "bytes": 2756, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/buffer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/expand_dims.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tile.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/fill.js": { - "bytes": 1343, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/floor.js": { - "bytes": 1354, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/gather.js": { - "bytes": 2144, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/greater.js": { - "bytes": 1729, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/greater_equal.js": { - "bytes": 1776, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/imag.js": { - "bytes": 1539, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/is_finite.js": { - "bytes": 1374, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/is_inf.js": { - "bytes": 1365, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/is_nan.js": { - "bytes": 1348, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/leaky_relu.js": { - "bytes": 1664, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/less.js": { - "bytes": 1699, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/less_equal.js": { - "bytes": 1749, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/linspace.js": { - "bytes": 1383, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/local_response_normalization.js": { - "bytes": 2639, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/log.js": { - "bytes": 1347, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/log1p.js": { - "bytes": 1385, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients.js": { - "bytes": 12386, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/neg.js": { - "bytes": 1315, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/softplus.js": { - "bytes": 1393, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/log_sigmoid.js": { - "bytes": 2133, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sigmoid.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/softplus.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/max.js": { - "bytes": 2078, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js": { - "bytes": 1811, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js": { - "bytes": 2273, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/log_softmax.js": { - "bytes": 3330, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/exp.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/log.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/max.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/axis_util.js": { - "bytes": 3147, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/log_sum_exp.js": { - "bytes": 2650, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/axis_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/exp.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/log.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/max.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/logical_and.js": { - "bytes": 1754, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/logical_not.js": { - "bytes": 1402, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/logical_or.js": { - "bytes": 1741, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/logical_xor.js": { - "bytes": 1820, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/logical_and.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/logical_not.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/logical_or.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/max_pool.js": { - "bytes": 3641, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_3d.js": { - "bytes": 3821, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_with_argmax.js": { - "bytes": 3212, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/maximum.js": { - "bytes": 2220, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/mean.js": { - "bytes": 2061, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/min.js": { - "bytes": 2085, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/minimum.js": { - "bytes": 2217, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/mirror_pad.js": { - "bytes": 3397, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/mod.js": { - "bytes": 1932, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/square.js": { - "bytes": 1317, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/moments.js": { - "bytes": 2212, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/axis_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mean.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/multi_rnn_cell.js": { - "bytes": 1344, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/multinomial.js": { - "bytes": 2853, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/not_equal.js": { - "bytes": 1737, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/zeros.js": { - "bytes": 1579, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/complex.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/ones.js": { - "bytes": 1569, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/complex.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/ones_like.js": { - "bytes": 1366, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/outer_product.js": { - "bytes": 1095, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mat_mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/pad.js": { - "bytes": 2106, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/pad1d.js": { - "bytes": 446, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/pad.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/pad2d.js": { - "bytes": 513, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/pad.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/pad3d.js": { - "bytes": 541, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/pad.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/pad4d.js": { - "bytes": 577, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/pad.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/space_to_batch_nd.js": { - "bytes": 4237, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/pool.js": { - "bytes": 6517, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/batch_to_space_nd.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/max_pool.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/space_to_batch_nd.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/pow.js": { - "bytes": 2151, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/prelu.js": { - "bytes": 1577, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/prod.js": { - "bytes": 2360, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/rand.js": { - "bytes": 1827, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/seedrandom/lib/alea.js": { - "bytes": 3243, - "imports": [] - }, - "node_modules/seedrandom/lib/xor128.js": { - "bytes": 1748, - "imports": [] - }, - "node_modules/seedrandom/lib/xorwow.js": { - "bytes": 1919, - "imports": [] - }, - "node_modules/seedrandom/lib/xorshift7.js": { - "bytes": 2418, - "imports": [] - }, - "node_modules/seedrandom/lib/xor4096.js": { - "bytes": 4559, - "imports": [] - }, - "node_modules/seedrandom/lib/tychei.js": { - "bytes": 2525, - "imports": [] - }, - "(disabled):crypto": { - "bytes": 0, - "imports": [] - }, - "node_modules/seedrandom/seedrandom.js": { - "bytes": 8358, - "imports": [ - { - "path": "(disabled):crypto", - "kind": "require-call" - } - ] - }, - "node_modules/seedrandom/index.js": { - "bytes": 2110, - "imports": [ - { - "path": "node_modules/seedrandom/lib/alea.js", - "kind": "require-call" - }, - { - "path": "node_modules/seedrandom/lib/xor128.js", - "kind": "require-call" - }, - { - "path": "node_modules/seedrandom/lib/xorwow.js", - "kind": "require-call" - }, - { - "path": "node_modules/seedrandom/lib/xorshift7.js", - "kind": "require-call" - }, - { - "path": "node_modules/seedrandom/lib/xor4096.js", - "kind": "require-call" - }, - { - "path": "node_modules/seedrandom/lib/tychei.js", - "kind": "require-call" - }, - { - "path": "node_modules/seedrandom/seedrandom.js", - "kind": "require-call" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/rand_util.js": { - "bytes": 7411, - "imports": [ - { - "path": "node_modules/seedrandom/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/test_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/random_gamma.js": { - "bytes": 1968, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/buffer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/rand_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/random_normal.js": { - "bytes": 1829, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/buffer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/rand_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/random_uniform.js": { - "bytes": 1945, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/buffer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/rand_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/range.js": { - "bytes": 1645, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/real.js": { - "bytes": 1526, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/reciprocal.js": { - "bytes": 1378, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/relu.js": { - "bytes": 1400, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/relu6.js": { - "bytes": 1419, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/reverse.js": { - "bytes": 1941, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/reverse_1d.js": { - "bytes": 1222, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reverse.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/reverse_2d.js": { - "bytes": 1374, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reverse.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/reverse_3d.js": { - "bytes": 1374, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reverse.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/reverse_4d.js": { - "bytes": 1374, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reverse.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/round.js": { - "bytes": 1390, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/rsqrt.js": { - "bytes": 1385, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js": { - "bytes": 1849, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor_ops_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/selu.js": { - "bytes": 1380, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/separable_conv2d.js": { - "bytes": 4906, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/setdiff1d_async.js": { - "bytes": 3036, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/sign.js": { - "bytes": 1351, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/sin.js": { - "bytes": 1348, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/sinh.js": { - "bytes": 1355, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/slice1d.js": { - "bytes": 1298, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/slice2d.js": { - "bytes": 1294, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/slice3d.js": { - "bytes": 1294, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/slice4d.js": { - "bytes": 1294, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/softmax.js": { - "bytes": 1948, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/fft.js": { - "bytes": 1623, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/ifft.js": { - "bytes": 1649, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/irfft.js": { - "bytes": 3062, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/complex.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/concat.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/imag.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/real.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reverse.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/ifft.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/split.js": { - "bytes": 2418, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/rfft.js": { - "bytes": 3487, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/complex.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/concat.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/imag.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/real.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/split.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/fft.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/sqrt.js": { - "bytes": 1355, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/squared_difference.js": { - "bytes": 2078, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/squeeze.js": { - "bytes": 1556, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/stack.js": { - "bytes": 1880, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/step.js": { - "bytes": 1467, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/strided_slice.js": { - "bytes": 3026, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tan.js": { - "bytes": 1353, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tensor1d.js": { - "bytes": 1677, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor_ops_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tensor2d.js": { - "bytes": 2273, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor_ops_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tensor4d.js": { - "bytes": 2297, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor_ops_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tensor5d.js": { - "bytes": 2352, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor_ops_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tensor6d.js": { - "bytes": 2402, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor_ops_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/topk.js": { - "bytes": 2433, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/truncated_normal.js": { - "bytes": 2085, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/buffer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/rand_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/unique.js": { - "bytes": 2939, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/unsorted_segment_sum.js": { - "bytes": 2138, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/unstack.js": { - "bytes": 1726, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/variable.js": { - "bytes": 1416, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/backends/where_impl.js": { - "bytes": 1383, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/buffer.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/where_async.js": { - "bytes": 1983, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/backends/where_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/boolean_mask.js": { - "bytes": 2988, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/gather.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/squeeze.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/where_async.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/norm.js": { - "bytes": 4758, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/abs.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/axis_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/max.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/min.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/pow.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sqrt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/moving_average.js": { - "bytes": 2944, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/pow.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/scatter_nd.js": { - "bytes": 2252, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scatter_nd_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/sparse_to_dense_util.js": { - "bytes": 1784, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/sparse_to_dense.js": { - "bytes": 3246, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sparse_to_dense_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/gather_nd.js": { - "bytes": 2704, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/dropout_util.js": { - "bytes": 1630, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/dropout.js": { - "bytes": 2566, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/dropout_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/floor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/random_uniform.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/signal_ops_util.js": { - "bytes": 1331, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor1d.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/in_top_k.js": { - "bytes": 3685, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_backprop_filter.js": { - "bytes": 3772, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/fused_util.js": { - "bytes": 2554, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/elu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/leaky_relu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/prelu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/relu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/relu6.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/step.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/fused/conv2d.js": { - "bytes": 8918, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_backprop_filter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_backprop_input.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/fused_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d_native_backprop_filter.js": { - "bytes": 1666, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d_native_backprop_input.js": { - "bytes": 1739, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/fused/depthwise_conv2d.js": { - "bytes": 9364, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d_native_backprop_filter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d_native_backprop_input.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/fused_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/fused/mat_mul.js": { - "bytes": 7331, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/fused_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mat_mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/fused_ops.js": { - "bytes": 927, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/fused/conv2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/fused/depthwise_conv2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/fused/mat_mul.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/signal/hamming_window.js": { - "bytes": 1265, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/signal_ops_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/signal/hann_window.js": { - "bytes": 1245, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/signal_ops_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/signal/frame.js": { - "bytes": 2278, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/concat.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/fill.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor2d.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/signal/stft.js": { - "bytes": 2183, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/concat.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/signal_ops_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/rfft.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/signal/frame.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/signal/hann_window.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/crop_and_resize.js": { - "bytes": 3821, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/flip_left_right.js": { - "bytes": 1642, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/rotate_with_offset.js": { - "bytes": 2329, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/nonmax_util.js": { - "bytes": 2005, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression.js": { - "bytes": 2618, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/nonmax_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/backends/non_max_suppression_util.js": { - "bytes": 3592, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/backends/non_max_suppression_impl.js": { - "bytes": 7522, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/backends/non_max_suppression_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_async.js": { - "bytes": 3166, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/backends/non_max_suppression_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/nonmax_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor1d.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_with_score.js": { - "bytes": 3530, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/nonmax_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_with_score_async.js": { - "bytes": 3969, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/backends/non_max_suppression_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/nonmax_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor1d.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_padded.js": { - "bytes": 3362, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/nonmax_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_padded_async.js": { - "bytes": 3669, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/backends/non_max_suppression_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/nonmax_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor1d.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/resize_bilinear.js": { - "bytes": 3163, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/resize_nearest_neighbor.js": { - "bytes": 3421, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/linalg/band_part.js": { - "bytes": 4035, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/greater_equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/less_equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/logical_and.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/range.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/stack.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/unstack.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/where.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/linalg/gram_schmidt.js": { - "bytes": 3609, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/norm.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/split.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/squeeze.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/stack.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/linalg/qr.js": { - "bytes": 7131, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/globals.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/clone.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/concat.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/eye.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/greater.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mat_mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/norm.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/stack.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/transpose.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/unstack.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/where.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/loss_ops_utils.js": { - "bytes": 1048, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/losses/compute_weighted_loss.js": { - "bytes": 2354, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/loss_ops_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mean.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/not_equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ones.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/losses/absolute_difference.js": { - "bytes": 2347, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/abs.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/loss_ops_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/losses/compute_weighted_loss.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/losses/cosine_distance.js": { - "bytes": 1803, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/loss_ops_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/losses/compute_weighted_loss.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/losses/hinge_loss.js": { - "bytes": 1751, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/loss_ops_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/relu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/losses/compute_weighted_loss.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/losses/huber_loss.js": { - "bytes": 2736, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/abs.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/loss_ops_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/minimum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/losses/compute_weighted_loss.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/losses/log_loss.js": { - "bytes": 2660, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/log.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/loss_ops_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/losses/compute_weighted_loss.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/losses/mean_squared_error.js": { - "bytes": 2334, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/loss_ops_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/squared_difference.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/losses/compute_weighted_loss.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/losses/sigmoid_cross_entropy.js": { - "bytes": 4662, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/abs.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/exp.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/log1p.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/loss_ops_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/relu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/losses/compute_weighted_loss.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/losses/softmax_cross_entropy.js": { - "bytes": 5765, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/axis_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/exp.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/log_sum_exp.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/loss_ops_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/losses/compute_weighted_loss.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js": { - "bytes": 10612, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/abs.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/acos.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/acosh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add_n.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/all.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/any.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/arg_max.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/arg_min.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/asin.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/asinh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/atan.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/atan2.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/atanh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_3d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/basic_lstm_cell.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/batch_to_space_nd.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm3d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm4d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/bincount.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_to.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/buffer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ceil.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/clip_by_value.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/clone.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/complex.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/concat.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/concat_1d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/concat_2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/concat_3d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/concat_4d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv1d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_transpose.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv3d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_transpose.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cos.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cosh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cumsum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/dense_bincount.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/depth_to_space.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/diag.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/dilation2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div_no_nan.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/dot.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/elu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/erf.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/exp.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/expand_dims.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/expm1.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/eye.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/fill.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/floor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/floorDiv.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/gather.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/greater.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/greater_equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/imag.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/is_finite.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/is_inf.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/is_nan.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/leaky_relu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/less.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/less_equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/linspace.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/local_response_normalization.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/log.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/log1p.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/log_sigmoid.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/log_softmax.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/log_sum_exp.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/logical_and.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/logical_not.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/logical_or.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/logical_xor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mat_mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/max.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/max_pool.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_3d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_with_argmax.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/maximum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mean.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/min.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/minimum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mirror_pad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mod.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/moments.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/multi_rnn_cell.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/multinomial.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/not_equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/one_hot.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ones.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ones_like.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/outer_product.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/pad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/pad1d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/pad2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/pad3d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/pad4d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/pool.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/pow.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/prelu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/print.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/prod.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/rand.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/random_gamma.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/random_normal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/random_uniform.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/range.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/real.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reciprocal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/relu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/relu6.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reverse.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reverse_1d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reverse_2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reverse_3d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reverse_4d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/round.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/rsqrt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/selu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/separable_conv2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/setdiff1d_async.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sigmoid.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sign.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sin.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sinh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice1d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice3d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice4d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/softmax.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/softplus.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/space_to_batch_nd.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/fft.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/ifft.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/irfft.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/rfft.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/split.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sqrt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/squared_difference.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/squeeze.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/stack.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/step.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/strided_slice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tan.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tanh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor1d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor3d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor4d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor5d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tensor6d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tile.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/topk.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/truncated_normal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/unique.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/unsorted_segment_sum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/unstack.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/variable.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/where.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/where_async.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/boolean_mask.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/transpose.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/norm.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/moving_average.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scatter_nd.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sparse_to_dense.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/gather_nd.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/dropout.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/signal_ops_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/in_top_k.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/rfft.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/fft.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/ifft.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/irfft.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/fused_ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/signal/hamming_window.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/signal/hann_window.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/signal/frame.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/signal/stft.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/image/crop_and_resize.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/image/flip_left_right.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/image/rotate_with_offset.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_async.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_with_score.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_with_score_async.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_padded.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_padded_async.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/image/resize_bilinear.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/image/resize_nearest_neighbor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/linalg/band_part.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/linalg/gram_schmidt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/linalg/qr.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/losses/absolute_difference.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/losses/compute_weighted_loss.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/losses/cosine_distance.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/losses/hinge_loss.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/losses/huber_loss.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/losses/log_loss.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/losses/mean_squared_error.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/losses/sigmoid_cross_entropy.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/losses/softmax_cross_entropy.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer.js": { - "bytes": 4784, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/globals.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/serialization.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/optimizers/adadelta_optimizer.js": { - "bytes": 5112, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/globals.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/serialization.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/optimizers/adagrad_optimizer.js": { - "bytes": 3907, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/globals.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/fill.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sqrt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/serialization.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/optimizers/adam_optimizer.js": { - "bytes": 6232, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/globals.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/pow.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sqrt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/serialization.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/optimizers/adamax_optimizer.js": { - "bytes": 5248, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/globals.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/abs.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/maximum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/serialization.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/optimizers/sgd_optimizer.js": { - "bytes": 2904, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/globals.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/serialization.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/optimizers/momentum_optimizer.js": { - "bytes": 4192, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/globals.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/serialization.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/sgd_optimizer.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/optimizers/rmsprop_optimizer.js": { - "bytes": 7635, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/globals.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sqrt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/serialization.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer_constructors.js": { - "bytes": 7386, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/adadelta_optimizer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/adagrad_optimizer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/adam_optimizer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/adamax_optimizer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/momentum_optimizer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/rmsprop_optimizer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/sgd_optimizer.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/train.js": { - "bytes": 1795, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/adadelta_optimizer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/adagrad_optimizer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/adam_optimizer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/adamax_optimizer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/momentum_optimizer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer_constructors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/rmsprop_optimizer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/sgd_optimizer.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/browser_util.js": { - "bytes": 1434, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/concat_util.js": { - "bytes": 1810, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/reduce_util.js": { - "bytes": 1124, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/rotate_util.js": { - "bytes": 1049, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/array_ops_util.js": { - "bytes": 5089, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/selu_util.js": { - "bytes": 867, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/erf_util.js": { - "bytes": 948, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/log.js": { - "bytes": 981, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/environment.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/backends/complex_util.js": { - "bytes": 4593, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/split_util.js": { - "bytes": 1513, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/segment_util.js": { - "bytes": 3269, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reduce_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/backends/backend_util.js": { - "bytes": 1981, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/axis_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/concat_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/fused_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reduce_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/types.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/rotate_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/array_ops_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/gather_nd_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scatter_nd_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/selu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/fused_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/erf_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/log.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/backends/complex_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/split_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/segment_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/backends/kernel_impls.js": { - "bytes": 905, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/backends/non_max_suppression_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/backends/where_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/base.js": { - "bytes": 3187, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/io/io.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/math.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/browser.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/gather_nd_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scatter_nd_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/serialization.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/test_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/version.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/adadelta_optimizer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/adagrad_optimizer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/adam_optimizer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/adamax_optimizer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/momentum_optimizer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/rmsprop_optimizer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/optimizers/sgd_optimizer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/types.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/loss_ops_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/train.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/globals.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_registry.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/environment.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/browser_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/backends/backend_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/device_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/backends/kernel_impls.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/backends/backend.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/index.js": { - "bytes": 875, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/base_side_effects.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/base.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Abs_grad.js": { - "bytes": 1095, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/step.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Acos_grad.js": { - "bytes": 1390, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sqrt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Acosh_grad.js": { - "bytes": 1278, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sqrt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Add_grad.js": { - "bytes": 1766, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/AddN_grad.js": { - "bytes": 1031, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/ArgMax_grad.js": { - "bytes": 1023, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/ArgMin_grad.js": { - "bytes": 1023, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Asin_grad.js": { - "bytes": 1233, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sqrt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Asinh_grad.js": { - "bytes": 1326, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sqrt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Atan2_grad.js": { - "bytes": 2069, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Atan_grad.js": { - "bytes": 1143, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Atanh_grad.js": { - "bytes": 1195, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_3d_grad.js": { - "bytes": 3355, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/AvgPool3D_grad.js": { - "bytes": 1192, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_3d_grad.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_grad.js": { - "bytes": 3017, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/AvgPool_grad.js": { - "bytes": 1123, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_grad.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/BatchMatMul_grad.js": { - "bytes": 1813, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mat_mul.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/BatchToSpaceND_grad.js": { - "bytes": 1092, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/space_to_batch_nd.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/BroadcastTo_grad.js": { - "bytes": 1689, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Cast_grad.js": { - "bytes": 907, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Ceil_grad.js": { - "bytes": 1041, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/ClipByValue_grad.js": { - "bytes": 1395, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/greater_equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/less_equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/logical_and.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/where.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/ComplexAbs_grad.js": { - "bytes": 968, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Abs_grad.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Concat_grad.js": { - "bytes": 1293, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/split.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Conv2D_grad.js": { - "bytes": 1671, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_backprop_filter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_backprop_input.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Conv2DBackpropInput_grad.js": { - "bytes": 1439, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_backprop_filter.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_backprop_filter.js": { - "bytes": 3054, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Conv3D_grad.js": { - "bytes": 1632, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_backprop_filter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_backprop_input.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Cos_grad.js": { - "bytes": 1127, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sin.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Cosh_grad.js": { - "bytes": 1095, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sinh.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Cumsum_grad.js": { - "bytes": 1480, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/axis_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cumsum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/DepthwiseConv2dNative_grad.js": { - "bytes": 2992, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d_native_backprop_filter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d_native_backprop_input.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Dilation2D_grad.js": { - "bytes": 1359, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Elu_grad.js": { - "bytes": 1066, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Erf_grad.js": { - "bytes": 1172, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/exp.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Exp_grad.js": { - "bytes": 998, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/ExpandDims_grad.js": { - "bytes": 1058, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Expm1_grad.js": { - "bytes": 1043, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/exp.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Floor_grad.js": { - "bytes": 961, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/FloorDiv_grad.js": { - "bytes": 2068, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/FusedBatchNorm_grad.js": { - "bytes": 3748, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/rsqrt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tile.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/GatherV2_grad.js": { - "bytes": 2934, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/axis_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/transpose.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/unsorted_segment_sum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/GreaterEqual_grad.js": { - "bytes": 1078, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Identity_grad.js": { - "bytes": 968, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/IsFinite_grad.js": { - "bytes": 1081, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/IsInf_grad.js": { - "bytes": 1069, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/IsNan_grad.js": { - "bytes": 1069, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/LeakyRelu_grad.js": { - "bytes": 1295, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/greater.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/where.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Log1p_grad.js": { - "bytes": 1046, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Log_grad.js": { - "bytes": 1049, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/LogSoftmax_grad.js": { - "bytes": 1377, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/exp.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/local_response_normalization_backprop.js": { - "bytes": 1225, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/LRN_grad.js": { - "bytes": 1242, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/local_response_normalization_backprop.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/min_max_grad_util.js": { - "bytes": 1439, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/axis_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Max_grad.js": { - "bytes": 1392, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/min_max_grad_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Maximum_grad.js": { - "bytes": 1280, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/greater_equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/less.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_3d_grad.js": { - "bytes": 3879, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/MaxPool3D_grad.js": { - "bytes": 1225, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_3d_grad.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_grad.js": { - "bytes": 3091, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/MaxPool_grad.js": { - "bytes": 1176, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_grad.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Mean_grad.js": { - "bytes": 1811, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/axis_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ones.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Min_grad.js": { - "bytes": 1342, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/min_max_grad_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Minimum_grad.js": { - "bytes": 1280, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/greater.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/less_equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/MirrorPad_grad.js": { - "bytes": 1265, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Mod_grad.js": { - "bytes": 1894, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/floor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Multiply_grad.js": { - "bytes": 1896, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Neg_grad.js": { - "bytes": 934, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/neg.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/OneHot_grad.js": { - "bytes": 1052, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/OnesLike_grad.js": { - "bytes": 973, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Pack_grad.js": { - "bytes": 1071, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/unstack.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/PadV2_grad.js": { - "bytes": 1249, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Pow_grad.js": { - "bytes": 2459, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/greater.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/log.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/pow.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/where.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Prelu_grad.js": { - "bytes": 1703, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/greater.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/where.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/RealDiv_grad.js": { - "bytes": 2076, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Reciprocal_grad.js": { - "bytes": 1111, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Relu6_grad.js": { - "bytes": 1195, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/less_equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/step.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Relu_grad.js": { - "bytes": 1095, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/step.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Reshape_grad.js": { - "bytes": 1030, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/ResizeBilinear_grad.js": { - "bytes": 1277, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/ResizeNearestNeighbor_grad.js": { - "bytes": 1319, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/engine.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Reverse_grad.js": { - "bytes": 1109, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reverse.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Round_grad.js": { - "bytes": 1069, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Rsqrt_grad.js": { - "bytes": 1129, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/pow.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Select_grad.js": { - "bytes": 1446, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/logical_not.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Selu_grad.js": { - "bytes": 1666, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/exp.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/greater.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/selu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/where.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Sigmoid_grad.js": { - "bytes": 1112, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Sign_grad.js": { - "bytes": 957, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Sin_grad.js": { - "bytes": 1088, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cos.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Sinh_grad.js": { - "bytes": 1095, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cosh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Slice_grad.js": { - "bytes": 1737, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/pad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Softmax_grad.js": { - "bytes": 1256, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Softplus_grad.js": { - "bytes": 1067, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sigmoid.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/SpaceToBatchND_grad.js": { - "bytes": 1098, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/batch_to_space_nd.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/SplitV_grad.js": { - "bytes": 1007, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/concat.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Sqrt_grad.js": { - "bytes": 1137, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sqrt.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Square_grad.js": { - "bytes": 1069, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/SquaredDifference_grad.js": { - "bytes": 1276, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Step_grad.js": { - "bytes": 1052, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Sub_grad.js": { - "bytes": 1805, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Sum_grad.js": { - "bytes": 1453, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ones.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Tan_grad.js": { - "bytes": 1083, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cos.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Tanh_grad.js": { - "bytes": 1140, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/square.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Tile_grad.js": { - "bytes": 3235, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/slice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Transpose_grad.js": { - "bytes": 1191, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/axis_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Unpack_grad.js": { - "bytes": 1049, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/stack.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/UnsortedSegmentSum_grad.js": { - "bytes": 2289, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/expand_dims.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/gather.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/greater_equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/logical_and.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/maximum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ones.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/where.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/ZerosLike_grad.js": { - "bytes": 977, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/register_all_gradients.js": { - "bytes": 9512, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Abs_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Acos_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Acosh_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Add_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/AddN_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/ArgMax_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/ArgMin_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Asin_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Asinh_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Atan2_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Atan_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Atanh_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/AvgPool3D_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/AvgPool_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/BatchMatMul_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/BatchToSpaceND_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/BroadcastTo_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Cast_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Ceil_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/ClipByValue_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/ComplexAbs_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Concat_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Conv2D_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Conv2DBackpropInput_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Conv3D_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Cos_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Cosh_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Cumsum_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/DepthwiseConv2dNative_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Dilation2D_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Elu_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Erf_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Exp_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/ExpandDims_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Expm1_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Floor_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/FloorDiv_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/FusedBatchNorm_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/GatherV2_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/GreaterEqual_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Identity_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/IsFinite_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/IsInf_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/IsNan_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/LeakyRelu_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Log1p_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Log_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/LogSoftmax_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/LRN_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Max_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Maximum_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/MaxPool3D_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/MaxPool_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Mean_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Min_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Minimum_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/MirrorPad_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Mod_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Multiply_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Neg_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/OneHot_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/OnesLike_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Pack_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/PadV2_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Pow_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Prelu_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/RealDiv_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Reciprocal_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Relu6_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Relu_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Reshape_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/ResizeBilinear_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/ResizeNearestNeighbor_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Reverse_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Round_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Rsqrt_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Select_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Selu_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Sigmoid_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Sign_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Sin_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Sinh_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Slice_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Softmax_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Softplus_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/SpaceToBatchND_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/SplitV_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Sqrt_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Square_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/SquaredDifference_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Step_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Sub_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Sum_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Tan_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Tanh_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Tile_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Transpose_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/Unpack_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/UnsortedSegmentSum_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/gradients/ZerosLike_grad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/kernel_registry.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/abs.js": { - "bytes": 981, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/acos.js": { - "bytes": 985, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/acosh.js": { - "bytes": 989, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/add.js": { - "bytes": 934, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/all.js": { - "bytes": 960, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/all.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/any.js": { - "bytes": 960, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/any.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/arg_max.js": { - "bytes": 957, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/arg_max.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/arg_min.js": { - "bytes": 957, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/arg_min.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as_scalar.js": { - "bytes": 1179, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as_type.js": { - "bytes": 1162, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as1d.js": { - "bytes": 1063, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as2d.js": { - "bytes": 1185, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as3d.js": { - "bytes": 1239, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as4d.js": { - "bytes": 1304, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as5d.js": { - "bytes": 1371, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/asin.js": { - "bytes": 985, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/asinh.js": { - "bytes": 989, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atan.js": { - "bytes": 985, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atan2.js": { - "bytes": 944, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/atan2.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atanh.js": { - "bytes": 989, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/avg_pool.js": { - "bytes": 1052, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/batch_to_space_nd.js": { - "bytes": 1027, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/batch_to_space_nd.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/batchnorm.js": { - "bytes": 1054, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/broadcast_to.js": { - "bytes": 984, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_to.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cast.js": { - "bytes": 997, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ceil.js": { - "bytes": 985, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/clip_by_value.js": { - "bytes": 1033, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/concat.js": { - "bytes": 1028, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/concat.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv1d.js": { - "bytes": 1063, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv1d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv2d_transpose.js": { - "bytes": 1110, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_transpose.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv2d.js": { - "bytes": 1067, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cos.js": { - "bytes": 981, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cosh.js": { - "bytes": 985, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cumsum.js": { - "bytes": 995, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/cumsum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/depth_to_space.js": { - "bytes": 1023, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/depth_to_space.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/depthwise_conv2d.js": { - "bytes": 1130, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/dilation2d.js": { - "bytes": 1069, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/dilation2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/div_no_nan.js": { - "bytes": 963, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div_no_nan.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/div.js": { - "bytes": 934, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/dot.js": { - "bytes": 934, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/dot.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/elu.js": { - "bytes": 930, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/elu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/equal.js": { - "bytes": 944, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/erf.js": { - "bytes": 981, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/exp.js": { - "bytes": 981, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/expand_dims.js": { - "bytes": 977, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/expand_dims.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/expm1.js": { - "bytes": 989, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/fft.js": { - "bytes": 981, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/flatten.js": { - "bytes": 1058, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/floor.js": { - "bytes": 989, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/floorDiv.js": { - "bytes": 959, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/floorDiv.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/gather.js": { - "bytes": 973, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/gather.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/greater_equal.js": { - "bytes": 981, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/greater_equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/greater.js": { - "bytes": 954, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/greater.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ifft.js": { - "bytes": 985, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/irfft.js": { - "bytes": 989, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_finite.js": { - "bytes": 1002, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_inf.js": { - "bytes": 990, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_nan.js": { - "bytes": 990, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/leaky_relu.js": { - "bytes": 974, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/leaky_relu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/less_equal.js": { - "bytes": 966, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/less_equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/less.js": { - "bytes": 939, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/less.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/local_response_normalization.js": { - "bytes": 1127, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/local_response_normalization.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_sigmoid.js": { - "bytes": 1010, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_softmax.js": { - "bytes": 1020, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_sum_exp.js": { - "bytes": 994, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/log_sum_exp.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log.js": { - "bytes": 981, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log1p.js": { - "bytes": 989, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_and.js": { - "bytes": 971, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/logical_and.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_not.js": { - "bytes": 967, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/logical_not.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_or.js": { - "bytes": 966, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/logical_or.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_xor.js": { - "bytes": 971, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/logical_xor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mat_mul.js": { - "bytes": 999, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mat_mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/max_pool.js": { - "bytes": 1052, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/max_pool.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/max.js": { - "bytes": 960, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/max.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/maximum.js": { - "bytes": 954, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/maximum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mean.js": { - "bytes": 965, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mean.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/min.js": { - "bytes": 960, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/min.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/minimum.js": { - "bytes": 954, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/minimum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mirror_pad.js": { - "bytes": 992, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mirror_pad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mod.js": { - "bytes": 934, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mod.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mul.js": { - "bytes": 934, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/neg.js": { - "bytes": 981, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/norm.js": { - "bytes": 1025, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/not_equal.js": { - "bytes": 961, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/not_equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/one_hot.js": { - "bytes": 1005, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/one_hot.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ones_like.js": { - "bytes": 1002, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pad.js": { - "bytes": 978, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/pad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pool.js": { - "bytes": 1049, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/pool.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pow.js": { - "bytes": 938, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/pow.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/prelu.js": { - "bytes": 952, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/prelu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/prod.js": { - "bytes": 965, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/prod.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reciprocal.js": { - "bytes": 1009, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/relu.js": { - "bytes": 935, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/relu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/relu6.js": { - "bytes": 940, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/relu6.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reshape_as.js": { - "bytes": 1135, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reshape.js": { - "bytes": 962, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/resize_bilinear.js": { - "bytes": 1095, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/image/resize_bilinear.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/resize_nearest_neighbor.js": { - "bytes": 1132, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/image/resize_nearest_neighbor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reverse.js": { - "bytes": 960, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/reverse.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/rfft.js": { - "bytes": 985, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/round.js": { - "bytes": 989, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/rsqrt.js": { - "bytes": 989, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/selu.js": { - "bytes": 935, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/selu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/separable_conv2d.js": { - "bytes": 1146, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/separable_conv2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sigmoid.js": { - "bytes": 997, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sign.js": { - "bytes": 985, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sin.js": { - "bytes": 981, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sinh.js": { - "bytes": 985, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/slice.js": { - "bytes": 1013, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/softmax.js": { - "bytes": 1005, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/softplus.js": { - "bytes": 1001, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/space_to_batch_nd.js": { - "bytes": 1033, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/space_to_batch_nd.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/split.js": { - "bytes": 984, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/split.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sqrt.js": { - "bytes": 985, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/square.js": { - "bytes": 993, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/squared_difference.js": { - "bytes": 1006, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/squared_difference.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/squeeze.js": { - "bytes": 960, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/squeeze.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/stack.js": { - "bytes": 1054, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/stack.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/step.js": { - "bytes": 997, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/strided_slice.js": { - "bytes": 1184, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sub.js": { - "bytes": 934, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sum.js": { - "bytes": 960, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tan.js": { - "bytes": 981, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tanh.js": { - "bytes": 985, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tile.js": { - "bytes": 945, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/tile.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_bool.js": { - "bytes": 1095, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_float.js": { - "bytes": 1103, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_int.js": { - "bytes": 1095, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/topk.js": { - "bytes": 955, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/topk.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/transpose.js": { - "bytes": 970, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/transpose.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unique.js": { - "bytes": 955, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/unique.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unsorted_segment_sum.js": { - "bytes": 1073, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/unsorted_segment_sum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unstack.js": { - "bytes": 960, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/unstack.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/where.js": { - "bytes": 966, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/where.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/zeros_like.js": { - "bytes": 1006, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/tensor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/register_all_chained_ops.js": { - "bytes": 3456, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/abs.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/acos.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/acosh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/all.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/any.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/arg_max.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/arg_min.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as_scalar.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as_type.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as1d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as3d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as4d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as5d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/asin.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/asinh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atan.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atan2.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atanh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/avg_pool.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/batch_to_space_nd.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/batchnorm.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/broadcast_to.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ceil.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/clip_by_value.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/concat.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv1d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv2d_transpose.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cos.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cosh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cumsum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/depth_to_space.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/depthwise_conv2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/dilation2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/div_no_nan.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/div.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/dot.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/elu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/erf.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/exp.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/expand_dims.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/expm1.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/fft.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/flatten.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/floor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/floorDiv.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/gather.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/greater_equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/greater.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ifft.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/irfft.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_finite.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_inf.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_nan.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/leaky_relu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/less_equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/less.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/local_response_normalization.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_sigmoid.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_softmax.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_sum_exp.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log1p.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_and.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_not.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_or.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_xor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mat_mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/max_pool.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/max.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/maximum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mean.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/min.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/minimum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mirror_pad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mod.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/norm.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/not_equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/one_hot.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ones_like.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pool.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pow.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/prelu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/prod.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reciprocal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/relu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/relu6.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reshape_as.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/resize_bilinear.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/resize_nearest_neighbor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reverse.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/rfft.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/round.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/rsqrt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/selu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/separable_conv2d.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sigmoid.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sign.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sin.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sinh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/slice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/softmax.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/softplus.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/space_to_batch_nd.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/split.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sqrt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/square.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/squared_difference.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/squeeze.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/stack.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/step.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/strided_slice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tan.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tanh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tile.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_bool.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_float.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_int.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/topk.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/transpose.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unique.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unsorted_segment_sum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unstack.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/where.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/zeros_like.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/backend/common.js": { - "bytes": 868, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/errors.js": { - "bytes": 2147, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js": { - "bytes": 17710, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/constraints.js": { - "bytes": 4756, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/common.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/exports_constraints.js": { - "bytes": 1434, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/constraints.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/keras_format/common.js": { - "bytes": 725, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-layers/dist/common.js": { - "bytes": 3812, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/keras_format/common.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/utils/math_utils.js": { - "bytes": 3576, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js": { - "bytes": 22373, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/common.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/math_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/common.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/keras_format/initializer_config.js": { - "bytes": 989, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-layers/dist/initializers.js": { - "bytes": 16324, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/common.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/keras_format/initializer_config.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/math_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/exports_initializers.js": { - "bytes": 6333, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/initializers.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/backend/state.js": { - "bytes": 943, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js": { - "bytes": 2197, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/utils/variable_utils.js": { - "bytes": 834, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-layers/dist/variables.js": { - "bytes": 10561, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/state.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/common.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js": { - "bytes": 48195, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/state.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/common.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/initializers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/variable_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/variables.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/engine/input_layer.js": { - "bytes": 4599, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/state.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/logs.js": { - "bytes": 1684, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/base_callbacks.js": { - "bytes": 16830, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/logs.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/serialization.js": { - "bytes": 1265, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/losses.js": { - "bytes": 9345, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/common.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/metrics.js": { - "bytes": 5481, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/losses.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/losses.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/losses.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/optimizers.js": { - "bytes": 1516, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/common.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/user_defined_metadata.js": { - "bytes": 4150, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-layers/dist/utils/layer_utils.js": { - "bytes": 6924, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/variable_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/utils/serialization_utils.js": { - "bytes": 4594, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/version.js": { - "bytes": 175, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-layers/dist/engine/executor.js": { - "bytes": 16550, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/input_layer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/engine/container.js": { - "bytes": 50723, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/state.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/serialization.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/serialization_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/variables.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/version.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/executor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/input_layer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/engine/training_utils.js": { - "bytes": 6421, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/engine/training_dataset.js": { - "bytes": 16648, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/base_callbacks.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/logs.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/training_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/engine/training_tensors.js": { - "bytes": 18140, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/base_callbacks.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/logs.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/math_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/engine/training.js": { - "bytes": 71105, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/common.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/serialization.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/losses.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/metrics.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/optimizers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/user_defined_metadata.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/layer_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/math_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/serialization_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/version.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/container.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/executor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/training_dataset.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/training_tensors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/training_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/models.js": { - "bytes": 38442, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/state.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/input_layer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/training.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/serialization.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/serialization_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/exports.js": { - "bytes": 9603, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/base_callbacks.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/input_layer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/training.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/models.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/activations.js": { - "bytes": 6280, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/regularizers.js": { - "bytes": 3423, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/advanced_activations.js": { - "bytes": 7480, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/activations.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/constraints.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/initializers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/regularizers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/utils/conv_utils.js": { - "bytes": 2570, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/math_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional.js": { - "bytes": 36500, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/activations.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/common.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/common.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/constraints.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/initializers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/regularizers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/conv_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional_depthwise.js": { - "bytes": 6317, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/common.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/common.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/constraints.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/initializers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/regularizers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/conv_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/recurrent.js": { - "bytes": 58717, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/activations.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/common.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/constraints.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/initializers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/regularizers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/math_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/variables.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/serialization.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional_recurrent.js": { - "bytes": 15963, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/common.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/initializers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/conv_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/recurrent.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/core.js": { - "bytes": 17087, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/activations.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/constraints.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/initializers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/regularizers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/math_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/embeddings.js": { - "bytes": 6051, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/constraints.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/initializers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/regularizers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/merge.js": { - "bytes": 35145, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/losses.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/math_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/noise.js": { - "bytes": 5527, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/normalization.js": { - "bytes": 17934, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/constraints.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/initializers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/regularizers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/math_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/padding.js": { - "bytes": 7082, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/common.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/pooling.js": { - "bytes": 18271, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/common.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/common.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/conv_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/wrappers.js": { - "bytes": 19378, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/common.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/keras_format/common.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/recurrent.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/serialization.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/exports_layers.js": { - "bytes": 54662, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/input_layer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/exports.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/advanced_activations.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional_depthwise.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional_recurrent.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/core.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/embeddings.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/merge.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/noise.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/normalization.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/padding.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/pooling.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/recurrent.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/wrappers.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/exports_metrics.js": { - "bytes": 8233, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/losses.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/metrics.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/exports_models.js": { - "bytes": 367, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/models.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/exports_regularizers.js": { - "bytes": 1315, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/regularizers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/regularizers.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/callbacks.js": { - "bytes": 5457, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/base_callbacks.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/training.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/errors.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/logs.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-layers/dist/index.js": { - "bytes": 1553, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/register_all_chained_ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/register_all_gradients.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/exports_constraints.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/exports_initializers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/exports_layers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/exports_metrics.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/exports_models.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/exports_regularizers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/base_callbacks.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/callbacks.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/engine/training.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/exports.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/layers/recurrent.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/models.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/variables.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/version.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/data/compiled_api.js": { - "bytes": 3104, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/register.js": { - "bytes": 2321, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js": { - "bytes": 5247, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/arithmetic.js": { - "bytes": 6259, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/basic_math.js": { - "bytes": 13688, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/control.js": { - "bytes": 12318, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/convolution.js": { - "bytes": 13326, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/creation.js": { - "bytes": 5989, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/dynamic.js": { - "bytes": 3703, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/evaluation.js": { - "bytes": 1466, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/graph.js": { - "bytes": 3589, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/hash_table.js": { - "bytes": 3450, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/image.js": { - "bytes": 2534, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/logical.js": { - "bytes": 4631, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/matrices.js": { - "bytes": 4421, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/normalization.js": { - "bytes": 4928, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/reduction.js": { - "bytes": 4459, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/slice_join.js": { - "bytes": 7304, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/spectral.js": { - "bytes": 1671, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/transformation.js": { - "bytes": 4411, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/operation_mapper.js": { - "bytes": 19017, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/data/compiled_api.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/register.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/arithmetic.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/basic_math.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/control.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/convolution.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/creation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/dynamic.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/evaluation.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/graph.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/hash_table.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/image.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/logical.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/matrices.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/normalization.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/reduction.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/slice_join.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/spectral.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/transformation.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/node_value_impl.js": { - "bytes": 3604, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/operation_mapper.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/ops_for_converter.js": { - "bytes": 973, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/arithmetic_executor.js": { - "bytes": 3101, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops_for_converter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/basic_math_executor.js": { - "bytes": 5820, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops_for_converter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_utils.js": { - "bytes": 3608, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_array.js": { - "bytes": 10172, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_list.js": { - "bytes": 14167, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/control_executor.js": { - "bytes": 15597, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_array.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_list.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/convolution_executor.js": { - "bytes": 10307, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops_for_converter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/creation_executor.js": { - "bytes": 4282, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops_for_converter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/dynamic_executor.js": { - "bytes": 3446, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops_for_converter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/evaluation_executor.js": { - "bytes": 1966, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops_for_converter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/graph_executor.js": { - "bytes": 3301, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops_for_converter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/executor/hash_table.js": { - "bytes": 4644, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/hash_table_executor.js": { - "bytes": 2437, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/executor/hash_table.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/image_executor.js": { - "bytes": 2762, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops_for_converter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/logical_executor.js": { - "bytes": 2818, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops_for_converter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/matrices_executor.js": { - "bytes": 3081, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops_for_converter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/normalization_executor.js": { - "bytes": 2823, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops_for_converter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/reduction_executor.js": { - "bytes": 4610, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops_for_converter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/slice_join_executor.js": { - "bytes": 7123, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops_for_converter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/spectral_executor.js": { - "bytes": 1576, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops_for_converter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/transformation_executor.js": { - "bytes": 3483, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/ops/ops_for_converter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/operation_executor.js": { - "bytes": 5144, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/node_value_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/register.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/arithmetic_executor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/basic_math_executor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/control_executor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/convolution_executor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/creation_executor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/dynamic_executor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/evaluation_executor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/graph_executor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/hash_table_executor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/image_executor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/logical_executor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/matrices_executor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/normalization_executor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/reduction_executor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/slice_join_executor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/spectral_executor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/transformation_executor.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/executor/execution_context.js": { - "bytes": 4710, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/executor/model_analysis.js": { - "bytes": 5211, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/executor/graph_executor.js": { - "bytes": 23876, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/operation_executor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/executor/execution_context.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/executor/model_analysis.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/executor/resource_manager.js": { - "bytes": 1746, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/executor/graph_model.js": { - "bytes": 16253, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/operation_mapper.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/executor/graph_executor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/executor/resource_manager.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-converter/dist/version.js": { - "bytes": 175, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-converter/dist/index.js": { - "bytes": 939, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/executor/graph_model.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/register.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/version.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-data/dist/util/deep_map.js": { - "bytes": 9229, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-data/dist/util/deep_clone.js": { - "bytes": 1247, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/util/deep_map.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-data/dist/util/ring_buffer.js": { - "bytes": 5166, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-data/dist/util/growing_ring_buffer.js": { - "bytes": 1916, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-data/dist/util/ring_buffer.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-data/dist/iterators/lazy_iterator.js": { - "bytes": 39500, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/seedrandom/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/util/deep_clone.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/util/deep_map.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/util/growing_ring_buffer.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/util/ring_buffer.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-data/dist/dataset.js": { - "bytes": 25380, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/seedrandom/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/iterators/lazy_iterator.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/util/deep_map.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-data/dist/datasets/text_line_dataset.js": { - "bytes": 1618, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-data/dist/dataset.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-data/dist/datasets/csv_dataset.js": { - "bytes": 16838, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/dataset.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/datasets/text_line_dataset.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-data/dist/iterators/microphone_iterator.js": { - "bytes": 8149, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/iterators/lazy_iterator.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-data/dist/iterators/webcam_iterator.js": { - "bytes": 7903, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/iterators/lazy_iterator.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-data/dist/datasource.js": { - "bytes": 1196, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-data/dist/iterators/string_iterator.js": { - "bytes": 3914, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-data/dist/iterators/lazy_iterator.js", - "kind": "import-statement" - } - ] - }, - "(disabled):node_modules/string_decoder/lib/string_decoder.js": { - "bytes": 0, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-data/dist/iterators/byte_chunk_iterator.js": { - "bytes": 4634, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/iterators/lazy_iterator.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/iterators/string_iterator.js", - "kind": "import-statement" - }, - { - "path": "(disabled):node_modules/string_decoder/lib/string_decoder.js", - "kind": "require-call" - } - ] - }, - "node_modules/@tensorflow/tfjs-data/dist/iterators/file_chunk_iterator.js": { - "bytes": 4215, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/iterators/byte_chunk_iterator.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-data/dist/iterators/url_chunk_iterator.js": { - "bytes": 2158, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/iterators/file_chunk_iterator.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-data/dist/util/source_util.js": { - "bytes": 983, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-data/dist/sources/file_data_source.js": { - "bytes": 1979, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/datasource.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/iterators/file_chunk_iterator.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/util/source_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-data/dist/sources/url_data_source.js": { - "bytes": 2026, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-data/dist/datasource.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/iterators/url_chunk_iterator.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/util/source_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/sources/file_data_source.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-data/dist/readers.js": { - "bytes": 8952, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-data/dist/dataset.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/datasets/csv_dataset.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/iterators/lazy_iterator.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/iterators/microphone_iterator.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/iterators/webcam_iterator.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/sources/url_data_source.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-data/dist/version.js": { - "bytes": 175, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-data/dist/index.js": { - "bytes": 1145, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-data/dist/dataset.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/datasets/csv_dataset.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/datasets/text_line_dataset.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/readers.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/sources/file_data_source.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/sources/url_data_source.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/version.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js": { - "bytes": 1098, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/backend_cpu.js": { - "bytes": 6720, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Abs.js": { - "bytes": 1512, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js": { - "bytes": 2503, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Complex.js": { - "bytes": 1658, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/zeros_impl.js": { - "bytes": 1432, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Complex.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Identity.js": { - "bytes": 1093, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Real.js": { - "bytes": 1410, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cast.js": { - "bytes": 3227, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/zeros_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Complex.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Identity.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Real.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js": { - "bytes": 6778, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Complex.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Add.js": { - "bytes": 1328, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Bincount_impl.js": { - "bytes": 2352, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_impl.js": { - "bytes": 1153, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js": { - "bytes": 2971, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Ceil.js": { - "bytes": 1132, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Concat_impl.js": { - "bytes": 1874, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Exp.js": { - "bytes": 1122, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Expm1.js": { - "bytes": 1142, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Floor.js": { - "bytes": 1142, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherV2_impl.js": { - "bytes": 1413, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Greater.js": { - "bytes": 1200, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Less.js": { - "bytes": 1173, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LinSpace_impl.js": { - "bytes": 1083, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Log.js": { - "bytes": 1122, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max_impl.js": { - "bytes": 1270, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Maximum.js": { - "bytes": 1189, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Minimum.js": { - "bytes": 1189, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multiply.js": { - "bytes": 1455, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Neg.js": { - "bytes": 1441, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multiply.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NotEqual.js": { - "bytes": 1211, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose_impl.js": { - "bytes": 1530, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose.js": { - "bytes": 1589, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Prod.js": { - "bytes": 2774, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Range_impl.js": { - "bytes": 1591, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Rsqrt.js": { - "bytes": 1145, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Slice.js": { - "bytes": 2497, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SquaredDifference.js": { - "bytes": 1296, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StridedSlice_impl.js": { - "bytes": 1236, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sub.js": { - "bytes": 1348, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tile_impl.js": { - "bytes": 1536, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/TopK_impl.js": { - "bytes": 2221, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unique_impl.js": { - "bytes": 5755, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/shared.js": { - "bytes": 2262, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Abs.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Bincount_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Ceil.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Concat_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Exp.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Expm1.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Floor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherV2_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Greater.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Less.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LinSpace_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Log.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Maximum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Minimum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multiply.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NotEqual.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Prod.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Range_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Rsqrt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Slice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SquaredDifference.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StridedSlice_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tile_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/TopK_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unique_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/version.js": { - "bytes": 175, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/base.js": { - "bytes": 1227, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/backend_cpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/shared.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/backend_cpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/version.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Elu.js": { - "bytes": 1011, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LeakyRelu.js": { - "bytes": 1481, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Prelu.js": { - "bytes": 1524, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Relu.js": { - "bytes": 1000, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Relu6.js": { - "bytes": 1020, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/fused_utils.js": { - "bytes": 1833, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Elu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Identity.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LeakyRelu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Prelu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Relu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Relu6.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js": { - "bytes": 1782, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchMatMul.js": { - "bytes": 5645, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/_FusedMatMul.js": { - "bytes": 1950, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/fused_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchMatMul.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Acos.js": { - "bytes": 998, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Acosh.js": { - "bytes": 1006, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AddN.js": { - "bytes": 1503, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/All.js": { - "bytes": 2687, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Any.js": { - "bytes": 2699, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ArgMax.js": { - "bytes": 2530, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ArgMin.js": { - "bytes": 2530, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Asin.js": { - "bytes": 998, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Asinh.js": { - "bytes": 1006, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atan.js": { - "bytes": 998, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atan2.js": { - "bytes": 1168, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atanh.js": { - "bytes": 1006, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/pool_utils.js": { - "bytes": 15245, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool.js": { - "bytes": 2119, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/pool_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Identity.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool3D.js": { - "bytes": 1607, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/pool_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool3DGrad.js": { - "bytes": 4723, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPoolGrad.js": { - "bytes": 3578, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchNorm.js": { - "bytes": 2977, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchToSpaceND.js": { - "bytes": 2437, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Slice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Bincount.js": { - "bytes": 1365, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Bincount_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Clip.js": { - "bytes": 1199, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ComplexAbs.js": { - "bytes": 1620, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Imag.js": { - "bytes": 1410, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Concat.js": { - "bytes": 4037, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Complex.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Concat_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Identity.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Imag.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Real.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2D.js": { - "bytes": 4471, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2DBackpropFilter.js": { - "bytes": 3715, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2DBackpropInput.js": { - "bytes": 4597, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3D.js": { - "bytes": 4502, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3DBackpropFilterV2.js": { - "bytes": 4854, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3DBackpropInputV2.js": { - "bytes": 4854, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cos.js": { - "bytes": 994, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cosh.js": { - "bytes": 998, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/CropAndResize.js": { - "bytes": 6502, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cumsum.js": { - "bytes": 2992, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DenseBincount.js": { - "bytes": 1912, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Bincount_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthToSpace.js": { - "bytes": 2616, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNative.js": { - "bytes": 4226, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNativeBackpropFilter.js": { - "bytes": 3367, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNativeBackpropInput.js": { - "bytes": 4102, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Diag.js": { - "bytes": 1384, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2D.js": { - "bytes": 3944, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2DBackpropFilter.js": { - "bytes": 4272, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2DBackpropInput.js": { - "bytes": 4296, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/EluGrad.js": { - "bytes": 1578, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Equal.js": { - "bytes": 1184, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Erf.js": { - "bytes": 1415, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ExpandDims.js": { - "bytes": 1552, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RealDiv.js": { - "bytes": 1150, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/fft_utils.js": { - "bytes": 11611, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Complex.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Concat.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Identity.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Imag.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multiply.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Real.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RealDiv.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Slice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sub.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FFT.js": { - "bytes": 1727, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/fft_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Fill.js": { - "bytes": 1378, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FlipLeftRight.js": { - "bytes": 2834, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FloorDiv.js": { - "bytes": 1212, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FusedConv2D.js": { - "bytes": 1862, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/fused_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2D.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FusedDepthwiseConv2D.js": { - "bytes": 1961, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/fused_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNative.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherNd.js": { - "bytes": 2308, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherV2.js": { - "bytes": 2530, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherV2_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GreaterEqual.js": { - "bytes": 1246, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IFFT.js": { - "bytes": 1732, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/fft_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsFinite.js": { - "bytes": 1048, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsInf.js": { - "bytes": 1033, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsNaN.js": { - "bytes": 1024, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LessEqual.js": { - "bytes": 1219, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LinSpace.js": { - "bytes": 1184, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LinSpace_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Log1p.js": { - "bytes": 1006, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalAnd.js": { - "bytes": 1218, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalNot.js": { - "bytes": 1045, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalOr.js": { - "bytes": 1209, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LRN.js": { - "bytes": 2083, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LRNGrad.js": { - "bytes": 2327, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max.js": { - "bytes": 2563, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool.js": { - "bytes": 2119, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/pool_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Identity.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool3D.js": { - "bytes": 1607, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/pool_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool3DGrad.js": { - "bytes": 5367, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/pool_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolGrad.js": { - "bytes": 4110, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/pool_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolWithArgmax_impl.js": { - "bytes": 1239, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/pool_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolWithArgmax.js": { - "bytes": 1954, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolWithArgmax_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sum.js": { - "bytes": 3116, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/zeros_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Identity.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Mean.js": { - "bytes": 1888, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RealDiv.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sum.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Min.js": { - "bytes": 2729, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MirrorPad.js": { - "bytes": 2446, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Mod.js": { - "bytes": 1318, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Softmax.js": { - "bytes": 2670, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Exp.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RealDiv.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sum.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multinomial.js": { - "bytes": 2786, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/seedrandom/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Softmax.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV3.js": { - "bytes": 1684, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV4.js": { - "bytes": 1837, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV5.js": { - "bytes": 2041, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/OneHot.js": { - "bytes": 1621, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ZerosLike.js": { - "bytes": 1974, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Complex.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Fill.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Imag.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Real.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/OnesLike.js": { - "bytes": 2007, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Complex.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Fill.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Imag.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Real.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ZerosLike.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Pack.js": { - "bytes": 1957, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Concat.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ExpandDims.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/PadV2.js": { - "bytes": 2152, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Pow.js": { - "bytes": 1131, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Range.js": { - "bytes": 1166, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Range_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reciprocal.js": { - "bytes": 1033, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeBilinear.js": { - "bytes": 4562, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeBilinearGrad.js": { - "bytes": 4602, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeNearestNeighbor.js": { - "bytes": 3708, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeNearestNeighborGrad.js": { - "bytes": 5214, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reverse.js": { - "bytes": 1763, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Identity.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RotateWithOffset.js": { - "bytes": 4033, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Round.js": { - "bytes": 1354, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Scatter_impl.js": { - "bytes": 2154, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ScatterNd.js": { - "bytes": 1604, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Scatter_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Select.js": { - "bytes": 1999, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Selu.js": { - "bytes": 1207, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sigmoid.js": { - "bytes": 1029, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sign.js": { - "bytes": 1113, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sin.js": { - "bytes": 990, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sinh.js": { - "bytes": 998, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Softplus.js": { - "bytes": 1874, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SpaceToBatchND.js": { - "bytes": 2831, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/PadV2.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseToDense.js": { - "bytes": 1768, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Scatter_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SplitV.js": { - "bytes": 1607, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Slice.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sqrt.js": { - "bytes": 998, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Square.js": { - "bytes": 1456, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Step.js": { - "bytes": 1133, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StridedSlice.js": { - "bytes": 2477, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Slice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StridedSlice_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tan.js": { - "bytes": 990, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tanh.js": { - "bytes": 998, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tile.js": { - "bytes": 1266, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tile_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/TopK.js": { - "bytes": 1484, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/TopK_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unique.js": { - "bytes": 1450, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unique_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unpack.js": { - "bytes": 1901, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Slice.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/UnsortedSegmentSum.js": { - "bytes": 2923, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ExpandDims.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multiply.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Pack.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sum.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/register_all_kernels.js": { - "bytes": 12571, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/_FusedMatMul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Abs.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Acos.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Acosh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AddN.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/All.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Any.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ArgMax.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ArgMin.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Asin.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Asinh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atan.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atan2.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atanh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool3D.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool3DGrad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPoolGrad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchMatMul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchNorm.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchToSpaceND.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Bincount.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Ceil.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Clip.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Complex.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ComplexAbs.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Concat.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2D.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2DBackpropFilter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2DBackpropInput.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3D.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3DBackpropFilterV2.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3DBackpropInputV2.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cos.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cosh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/CropAndResize.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cumsum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DenseBincount.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthToSpace.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNative.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNativeBackpropFilter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNativeBackpropInput.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Diag.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2D.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2DBackpropFilter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2DBackpropInput.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Elu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/EluGrad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Erf.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Exp.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ExpandDims.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Expm1.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FFT.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Fill.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FlipLeftRight.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Floor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FloorDiv.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FusedConv2D.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FusedDepthwiseConv2D.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherNd.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherV2.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Greater.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GreaterEqual.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Identity.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IFFT.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Imag.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsFinite.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsInf.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsNaN.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LeakyRelu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Less.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LessEqual.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LinSpace.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Log.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Log1p.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalAnd.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalNot.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalOr.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LRN.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LRNGrad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Maximum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool3D.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool3DGrad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolGrad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolWithArgmax.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Mean.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Min.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Minimum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MirrorPad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Mod.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multinomial.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multiply.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV3.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV4.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV5.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NotEqual.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/OneHot.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/OnesLike.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Pack.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/PadV2.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Pow.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Prelu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Prod.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Range.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Real.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RealDiv.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reciprocal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Relu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Relu6.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeBilinear.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeBilinearGrad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeNearestNeighbor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeNearestNeighborGrad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reverse.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RotateWithOffset.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Round.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Rsqrt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ScatterNd.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Select.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Selu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sigmoid.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sign.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sin.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sinh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Slice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Softmax.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Softplus.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SpaceToBatchND.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseToDense.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SplitV.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sqrt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Square.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SquaredDifference.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Step.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StridedSlice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tan.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tanh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tile.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/TopK.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unique.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unpack.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/UnsortedSegmentSum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ZerosLike.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/index.js": { - "bytes": 845, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/base.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/register_all_kernels.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/canvas_util.js": { - "bytes": 2962, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/tex_util.js": { - "bytes": 6526, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js": { - "bytes": 22338, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/canvas_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/tex_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/flags_webgl.js": { - "bytes": 7125, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/glsl_version.js": { - "bytes": 3604, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler_util.js": { - "bytes": 4007, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/decode_matrix_gpu.js": { - "bytes": 1939, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/glsl_version.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/tex_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/decode_matrix_packed_gpu.js": { - "bytes": 1981, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/glsl_version.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/tex_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_float_gpu.js": { - "bytes": 1319, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/glsl_version.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/tex_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_float_packed_gpu.js": { - "bytes": 1481, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/glsl_version.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/tex_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_matrix_gpu.js": { - "bytes": 2068, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/glsl_version.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_matrix_packed_gpu.js": { - "bytes": 3424, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/glsl_version.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_util.js": { - "bytes": 9722, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/glsl_version.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/tex_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_context.js": { - "bytes": 20008, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/canvas_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/tex_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js": { - "bytes": 42762, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/glsl_version.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_math.js": { - "bytes": 6749, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js": { - "bytes": 2188, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/packing_util.js": { - "bytes": 1279, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/pack_gpu.js": { - "bytes": 3484, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/packing_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/reshape_packed_gpu.js": { - "bytes": 2441, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/texture_manager.js": { - "bytes": 10014, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/tex_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js": { - "bytes": 1623, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_packed_gpu.js": { - "bytes": 2076, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/unpack_gpu.js": { - "bytes": 1600, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/packing_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/backend_webgl.js": { - "bytes": 38346, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/flags_webgl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/canvas_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/decode_matrix_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/decode_matrix_packed_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_float_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_float_packed_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_matrix_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_matrix_packed_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_context.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_math.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/pack_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/reshape_packed_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/tex_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/tex_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/texture_manager.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_packed_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unpack_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/version.js": { - "bytes": 175, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl.js": { - "bytes": 1300, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/backend_webgl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/canvas_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_context.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/base.js": { - "bytes": 1291, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/backend_webgl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/version.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_gpu.js": { - "bytes": 1400, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_packed_gpu.js": { - "bytes": 3376, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/packing_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Identity.js": { - "bytes": 1095, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Complex.js": { - "bytes": 1859, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Identity.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LeakyRelu.js": { - "bytes": 1839, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_packed_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Prelu.js": { - "bytes": 1583, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_packed_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js": { - "bytes": 7293, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_packed_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Complex.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LeakyRelu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Prelu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_packed_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_packed_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/mulmat_packed_gpu.js": { - "bytes": 3892, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_complex_gpu.js": { - "bytes": 1716, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Multiply.js": { - "bytes": 3806, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_complex_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_complex_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_packed_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Complex.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reshape.js": { - "bytes": 1549, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/reshape_packed_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js": { - "bytes": 1932, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/mean_gpu.js": { - "bytes": 3070, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/reduce_gpu.js": { - "bytes": 5367, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reduce.js": { - "bytes": 2410, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/mean_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/reduce_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/transpose_gpu.js": { - "bytes": 1842, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/transpose_packed_gpu.js": { - "bytes": 2399, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/packing_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose_impl.js": { - "bytes": 1272, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/transpose_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/transpose_packed_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sum_impl.js": { - "bytes": 2518, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reduce.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sum.js": { - "bytes": 1101, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sum_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose.js": { - "bytes": 1856, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchMatMul_impl.js": { - "bytes": 6611, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/mulmat_packed_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Multiply.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/_FusedMatMul.js": { - "bytes": 1394, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchMatMul_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Abs.js": { - "bytes": 1835, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_packed_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Acos.js": { - "bytes": 1159, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Acosh.js": { - "bytes": 1169, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Add.js": { - "bytes": 1200, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/addn_gpu.js": { - "bytes": 1529, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/addn_packed_gpu.js": { - "bytes": 1608, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AddN.js": { - "bytes": 2100, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/addn_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/addn_packed_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Identity.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/All.js": { - "bytes": 2462, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reduce.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Any.js": { - "bytes": 2462, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reduce.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/argminmax_gpu.js": { - "bytes": 1856, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/argminmax_packed_gpu.js": { - "bytes": 5806, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/packing_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/arg_min_max.js": { - "bytes": 3614, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/argminmax_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/argminmax_packed_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ArgMax.js": { - "bytes": 1818, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/arg_min_max.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ArgMin.js": { - "bytes": 1818, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/arg_min_max.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Asin.js": { - "bytes": 1159, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Asinh.js": { - "bytes": 1141, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atan.js": { - "bytes": 1118, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atan2.js": { - "bytes": 1357, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atanh.js": { - "bytes": 1194, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/pool_gpu.js": { - "bytes": 14900, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool.js": { - "bytes": 1941, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/pool_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Identity.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool3D.js": { - "bytes": 1448, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/pool_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/avg_pool_backprop_gpu.js": { - "bytes": 5906, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool3DGrad.js": { - "bytes": 1513, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/avg_pool_backprop_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPoolGrad.js": { - "bytes": 1542, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/avg_pool_backprop_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchMatMul.js": { - "bytes": 1200, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchMatMul_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/batchnorm_gpu.js": { - "bytes": 2116, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/batchnorm_packed_gpu.js": { - "bytes": 2153, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchNorm.js": { - "bytes": 2481, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/batchnorm_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/batchnorm_packed_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/slice_gpu.js": { - "bytes": 2599, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/slice_packed_gpu.js": { - "bytes": 3373, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/packing_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Slice.js": { - "bytes": 3791, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/slice_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/slice_packed_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchToSpaceND.js": { - "bytes": 2612, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Slice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Bincount.js": { - "bytes": 1366, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NotEqual.js": { - "bytes": 1099, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Real.js": { - "bytes": 1160, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Identity.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/int.js": { - "bytes": 1075, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cast.js": { - "bytes": 2920, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Complex.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Identity.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NotEqual.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Real.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/int.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Ceil.js": { - "bytes": 1146, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/clip_gpu.js": { - "bytes": 1585, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/clip_packed_gpu.js": { - "bytes": 1683, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ClipByValue.js": { - "bytes": 1509, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/clip_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/clip_packed_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/complex_abs_gpu.js": { - "bytes": 1358, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ComplexAbs.js": { - "bytes": 1809, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/complex_abs_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/concat_gpu.js": { - "bytes": 1993, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/concat_packed_gpu.js": { - "bytes": 4445, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/packing_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Imag.js": { - "bytes": 1160, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Identity.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Concat_impl.js": { - "bytes": 5062, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/concat_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/concat_packed_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Complex.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Imag.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Real.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Concat.js": { - "bytes": 1772, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Concat_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Identity.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu.js": { - "bytes": 11615, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/im2col_packed_gpu.js": { - "bytes": 3148, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/glsl_version.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2D_impl.js": { - "bytes": 9845, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/im2col_packed_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/mulmat_packed_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchMatMul_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Identity.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2D.js": { - "bytes": 2312, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2D_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu.js": { - "bytes": 9150, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2DBackpropFilter.js": { - "bytes": 1597, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2DBackpropInput.js": { - "bytes": 1586, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3D.js": { - "bytes": 1329, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3DBackpropFilterV2.js": { - "bytes": 1452, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3DBackpropInputV2.js": { - "bytes": 1452, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cos.js": { - "bytes": 1088, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cosh.js": { - "bytes": 1085, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/crop_and_resize_gpu.js": { - "bytes": 4536, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/CropAndResize.js": { - "bytes": 1373, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/crop_and_resize_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/cumsum_gpu.js": { - "bytes": 2522, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cumsum.js": { - "bytes": 3164, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/cumsum_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Identity.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DenseBincount.js": { - "bytes": 1919, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/depth_to_space_gpu.js": { - "bytes": 2578, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthToSpace.js": { - "bytes": 1978, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/depth_to_space_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu_depthwise.js": { - "bytes": 4110, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_packed_gpu_depthwise.js": { - "bytes": 13245, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNative.js": { - "bytes": 2154, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu_depthwise.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_packed_gpu_depthwise.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu_depthwise.js": { - "bytes": 4214, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNativeBackpropFilter.js": { - "bytes": 1617, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu_depthwise.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNativeBackpropInput.js": { - "bytes": 1622, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu_depthwise.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/diag_gpu.js": { - "bytes": 1076, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Diag.js": { - "bytes": 1550, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/diag_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/dilation_gpu.js": { - "bytes": 2261, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Dilation2D.js": { - "bytes": 1618, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/dilation_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Elu.js": { - "bytes": 1345, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/EluGrad.js": { - "bytes": 1599, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_packed_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Equal.js": { - "bytes": 1157, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Erf.js": { - "bytes": 1600, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Exp.js": { - "bytes": 1141, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ExpandDims.js": { - "bytes": 1551, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Expm1.js": { - "bytes": 1162, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/fft_gpu.js": { - "bytes": 2483, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FFT_impl.js": { - "bytes": 2453, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/fft_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Complex.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FFT.js": { - "bytes": 1069, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FFT_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/fill_gpu.js": { - "bytes": 1362, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Fill.js": { - "bytes": 1576, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/fill_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/flip_left_right_gpu.js": { - "bytes": 1462, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FlipLeftRight.js": { - "bytes": 1250, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/flip_left_right_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Floor.js": { - "bytes": 1159, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FloorDiv.js": { - "bytes": 2123, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/from_pixels_gpu.js": { - "bytes": 1678, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/glsl_version.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/from_pixels_packed_gpu.js": { - "bytes": 2093, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/glsl_version.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels.js": { - "bytes": 2870, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/tex_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/from_pixels_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/from_pixels_packed_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FusedConv2D.js": { - "bytes": 3694, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2D_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FusedDepthwiseConv2D.js": { - "bytes": 3368, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu_depthwise.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_packed_gpu_depthwise.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/gather_nd_gpu.js": { - "bytes": 961, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GatherNd.js": { - "bytes": 2073, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/gather_nd_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/gather_gpu.js": { - "bytes": 1729, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GatherV2.js": { - "bytes": 2943, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/gather_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Greater.js": { - "bytes": 1286, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GreaterEqual.js": { - "bytes": 1254, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IFFT.js": { - "bytes": 1074, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FFT_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsFinite.js": { - "bytes": 1113, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsInf.js": { - "bytes": 1075, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsNaN.js": { - "bytes": 1075, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Less.js": { - "bytes": 1247, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LessEqual.js": { - "bytes": 1223, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LinSpace.js": { - "bytes": 1275, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Log.js": { - "bytes": 1463, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Log1p.js": { - "bytes": 1055, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalAnd.js": { - "bytes": 1310, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalNot.js": { - "bytes": 1103, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalOr.js": { - "bytes": 1302, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_gpu.js": { - "bytes": 2121, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_packed_gpu.js": { - "bytes": 3901, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LRN.js": { - "bytes": 1438, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_packed_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_grad_gpu.js": { - "bytes": 2802, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LRNGrad.js": { - "bytes": 1306, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_grad_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Max_impl.js": { - "bytes": 1488, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reduce.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Max.js": { - "bytes": 3361, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Max_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Maximum.js": { - "bytes": 1548, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_packed_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool.js": { - "bytes": 1939, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/pool_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Identity.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool3D.js": { - "bytes": 1446, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/pool_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/max_pool_backprop_gpu.js": { - "bytes": 6262, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool3DGrad.js": { - "bytes": 1865, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/max_pool_backprop_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/pool_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolGrad.js": { - "bytes": 1949, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/max_pool_backprop_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/pool_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolWithArgmax_impl.js": { - "bytes": 1212, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/pool_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolWithArgmax.js": { - "bytes": 1855, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolWithArgmax_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mean_impl.js": { - "bytes": 1493, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reduce.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mean.js": { - "bytes": 3117, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mean_impl.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose_impl.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Min.js": { - "bytes": 2471, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reduce.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Minimum.js": { - "bytes": 1548, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_packed_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/mirror_pad_gpu.js": { - "bytes": 2366, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/mirror_pad_packed_gpu.js": { - "bytes": 4761, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/packing_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MirrorPad.js": { - "bytes": 1449, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/mirror_pad_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/mirror_pad_packed_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mod.js": { - "bytes": 1305, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_packed_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/multinomial_gpu.js": { - "bytes": 1729, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RealDiv.js": { - "bytes": 1695, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sub.js": { - "bytes": 1180, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Softmax.js": { - "bytes": 2372, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Exp.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Max.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RealDiv.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sum.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Multinomial.js": { - "bytes": 1711, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/multinomial_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Softmax.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Neg.js": { - "bytes": 1782, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_packed_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV3.js": { - "bytes": 1721, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV4.js": { - "bytes": 1868, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV5.js": { - "bytes": 2069, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/onehot_gpu.js": { - "bytes": 1187, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/OneHot.js": { - "bytes": 1717, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/onehot_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ZerosLike.js": { - "bytes": 1979, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Complex.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Fill.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Imag.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Real.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/OnesLike.js": { - "bytes": 2132, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Complex.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Fill.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Imag.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Real.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ZerosLike.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Pack.js": { - "bytes": 1959, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Concat.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ExpandDims.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/pad_gpu.js": { - "bytes": 2143, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/pad_packed_gpu.js": { - "bytes": 2879, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/packing_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/PadV2.js": { - "bytes": 1389, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/pad_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/pad_packed_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Pow.js": { - "bytes": 1985, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_packed_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Prod.js": { - "bytes": 2926, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reduce.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Range.js": { - "bytes": 1188, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reciprocal.js": { - "bytes": 1090, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Relu.js": { - "bytes": 1443, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Relu6.js": { - "bytes": 1478, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_gpu.js": { - "bytes": 3080, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_packed_gpu.js": { - "bytes": 5043, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeBilinear.js": { - "bytes": 1638, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_packed_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_backprop_gpu.js": { - "bytes": 4957, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeBilinearGrad.js": { - "bytes": 1347, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_backprop_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_nearest_neighbor_gpu.js": { - "bytes": 2721, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeNearestNeighbor.js": { - "bytes": 1459, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_nearest_neighbor_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_nearest_neighbor_backprop_gpu.js": { - "bytes": 4552, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeNearestNeighborGrad.js": { - "bytes": 1409, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_nearest_neighbor_backprop_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/reverse_gpu.js": { - "bytes": 1804, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/reverse_packed_gpu.js": { - "bytes": 3695, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/packing_util.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reverse.js": { - "bytes": 1581, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/reverse_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/reverse_packed_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Identity.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/rotate_gpu.js": { - "bytes": 2491, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RotateWithOffset.js": { - "bytes": 1328, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/rotate_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Round.js": { - "bytes": 1370, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Rsqrt.js": { - "bytes": 1140, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/scatter_gpu.js": { - "bytes": 2452, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ScatterNd.js": { - "bytes": 2330, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/scatter_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/select_gpu.js": { - "bytes": 2019, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Select.js": { - "bytes": 1243, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/select_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Selu.js": { - "bytes": 1316, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sigmoid.js": { - "bytes": 1086, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sign.js": { - "bytes": 1111, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sin.js": { - "bytes": 1088, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sinh.js": { - "bytes": 1084, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Softplus.js": { - "bytes": 1398, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SpaceToBatchND.js": { - "bytes": 2637, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/PadV2.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SparseToDense.js": { - "bytes": 1815, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/scatter_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SplitV.js": { - "bytes": 1594, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Slice.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sqrt.js": { - "bytes": 1041, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Square.js": { - "bytes": 1056, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SquaredDifference.js": { - "bytes": 1197, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Step.js": { - "bytes": 1247, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/strided_slice_gpu.js": { - "bytes": 1872, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/StridedSlice.js": { - "bytes": 2890, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/strided_slice_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Slice.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tan.js": { - "bytes": 1033, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tanh.js": { - "bytes": 1108, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/tile_gpu.js": { - "bytes": 1899, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tile.js": { - "bytes": 1724, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/tile_gpu.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/TopK.js": { - "bytes": 1415, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Unique.js": { - "bytes": 1618, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Unpack.js": { - "bytes": 1994, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Slice.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/segment_gpu.js": { - "bytes": 4884, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/UnsortedSegmentSum.js": { - "bytes": 3728, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/segment_gpu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Range.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tile.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/register_all_kernels.js": { - "bytes": 12202, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/_FusedMatMul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Abs.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Acos.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Acosh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AddN.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/All.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Any.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ArgMax.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ArgMin.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Asin.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Asinh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atan.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atan2.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atanh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool3D.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool3DGrad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPoolGrad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchMatMul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchNorm.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchToSpaceND.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Bincount.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Ceil.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ClipByValue.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Complex.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ComplexAbs.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Concat.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2D.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2DBackpropFilter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2DBackpropInput.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3D.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3DBackpropFilterV2.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3DBackpropInputV2.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cos.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cosh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/CropAndResize.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cumsum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DenseBincount.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthToSpace.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNative.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNativeBackpropFilter.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNativeBackpropInput.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Diag.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Dilation2D.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Elu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/EluGrad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Erf.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Exp.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ExpandDims.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Expm1.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FFT.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Fill.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FlipLeftRight.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Floor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FloorDiv.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FusedConv2D.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FusedDepthwiseConv2D.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GatherNd.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GatherV2.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Greater.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GreaterEqual.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Identity.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IFFT.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Imag.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsFinite.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsInf.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsNaN.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LeakyRelu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Less.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LessEqual.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LinSpace.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Log.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Log1p.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalAnd.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalNot.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalOr.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LRN.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LRNGrad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Max.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Maximum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool3D.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool3DGrad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolGrad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolWithArgmax.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mean.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Min.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Minimum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MirrorPad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mod.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Multinomial.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Multiply.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV3.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV4.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV5.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NotEqual.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/OneHot.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/OnesLike.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Pack.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/PadV2.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Pow.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Prelu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Prod.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Range.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Real.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RealDiv.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reciprocal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Relu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Relu6.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeBilinear.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeBilinearGrad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeNearestNeighbor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeNearestNeighborGrad.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reverse.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RotateWithOffset.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Round.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Rsqrt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ScatterNd.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Select.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Selu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sigmoid.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sign.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sin.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sinh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Slice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Softmax.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Softplus.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SpaceToBatchND.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SparseToDense.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SplitV.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sqrt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Square.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SquaredDifference.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Step.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/StridedSlice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tan.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tanh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tile.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/TopK.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Unique.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Unpack.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/UnsortedSegmentSum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ZerosLike.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/index.js": { - "bytes": 845, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/base.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/register_all_kernels.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs/dist/version.js": { - "bytes": 175, - "imports": [] - }, - "node_modules/@tensorflow/tfjs/dist/index.js": { - "bytes": 2058, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/register_all_gradients.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/register_all_chained_ops.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-data/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-layers/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-converter/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs/dist/version.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/types.js": { - "bytes": 1617, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/_FusedMatMul.js": { - "bytes": 3163, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/types.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/unary_kernel.js": { - "bytes": 1517, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Abs.js": { - "bytes": 892, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/unary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/binary_kernel.js": { - "bytes": 3000, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/types.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Add.js": { - "bytes": 954, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/binary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/AddN.js": { - "bytes": 1663, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/types.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Identity.js": { - "bytes": 1179, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Transpose.js": { - "bytes": 3301, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Identity.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/types.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/kernel_utils.js": { - "bytes": 2049, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ArgMax.js": { - "bytes": 2343, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/kernel_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/types.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/AvgPool.js": { - "bytes": 2795, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Reshape.js": { - "bytes": 1489, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/BatchMatMul.js": { - "bytes": 4299, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Cast.js": { - "bytes": 1171, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Ceil.js": { - "bytes": 896, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/unary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ClipByValue.js": { - "bytes": 1504, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernel_utils/shared.js": { - "bytes": 1290, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/shared.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/shared.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-cpu/dist/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Concat.js": { - "bytes": 4180, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernel_utils/shared.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Identity.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Conv2D.js": { - "bytes": 3095, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Conv2DBackpropInput.js": { - "bytes": 3641, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Cos.js": { - "bytes": 892, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/unary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/CropAndResize.js": { - "bytes": 2825, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Cast.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Cumsum.js": { - "bytes": 2755, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/types.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Transpose.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/DepthToSpace.js": { - "bytes": 2779, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/DepthwiseConv2dNative.js": { - "bytes": 3298, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Equal.js": { - "bytes": 971, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/binary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Exp.js": { - "bytes": 892, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/unary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ExpandDims.js": { - "bytes": 1554, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Fill.js": { - "bytes": 1111, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/FlipLeftRight.js": { - "bytes": 1648, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Floor.js": { - "bytes": 900, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/unary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/FloorDiv.js": { - "bytes": 975, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/binary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/FusedBatchNorm.js": { - "bytes": 1989, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/FusedConv2D.js": { - "bytes": 4302, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/types.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/FusedDepthwiseConv2D.js": { - "bytes": 4554, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/types.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/GatherNd.js": { - "bytes": 2110, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/types.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/GatherV2.js": { - "bytes": 3164, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/types.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Greater.js": { - "bytes": 979, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/binary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/GreaterEqual.js": { - "bytes": 999, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/binary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/LeakyRelu.js": { - "bytes": 1477, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Less.js": { - "bytes": 967, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/binary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/LessEqual.js": { - "bytes": 987, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/binary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Log.js": { - "bytes": 892, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/unary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/LogicalAnd.js": { - "bytes": 991, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/binary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Max.js": { - "bytes": 2444, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/kernel_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Maximum.js": { - "bytes": 971, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/binary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/MaxPool.js": { - "bytes": 2806, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Mean.js": { - "bytes": 3054, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/kernel_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Min.js": { - "bytes": 2551, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/kernel_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Minimum.js": { - "bytes": 971, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/binary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Multiply.js": { - "bytes": 974, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/binary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Neg.js": { - "bytes": 892, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/unary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/NonMaxSuppression_util.js": { - "bytes": 1321, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/NonMaxSuppressionV3.js": { - "bytes": 2061, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/NonMaxSuppression_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/NonMaxSuppressionV4.js": { - "bytes": 2197, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/NonMaxSuppression_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/NonMaxSuppressionV5.js": { - "bytes": 2200, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/NonMaxSuppression_util.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/NotEqual.js": { - "bytes": 983, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/binary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/OneHot.js": { - "bytes": 1583, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/OnesLike.js": { - "bytes": 1118, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Pack.js": { - "bytes": 1947, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Concat.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ExpandDims.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/PadV2.js": { - "bytes": 2085, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/types.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Pow.js": { - "bytes": 955, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/binary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Prelu.js": { - "bytes": 1458, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Prod.js": { - "bytes": 2787, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/kernel_utils.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/types.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Range.js": { - "bytes": 1274, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernel_utils/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/RealDiv.js": { - "bytes": 970, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/binary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Relu.js": { - "bytes": 896, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/unary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Relu6.js": { - "bytes": 900, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/unary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ResizeBilinear.js": { - "bytes": 2396, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Cast.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Reverse.js": { - "bytes": 2033, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Identity.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Reshape.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/RotateWithOffset.js": { - "bytes": 2323, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Round.js": { - "bytes": 900, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/unary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Rsqrt.js": { - "bytes": 900, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/unary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ScatterNd.js": { - "bytes": 2150, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/types.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Select.js": { - "bytes": 1767, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Sigmoid.js": { - "bytes": 1440, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Sin.js": { - "bytes": 892, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/unary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Slice.js": { - "bytes": 4226, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernel_utils/shared.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Softmax.js": { - "bytes": 1661, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/SplitV.js": { - "bytes": 1611, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Slice.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Sqrt.js": { - "bytes": 896, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/unary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Square.js": { - "bytes": 904, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/unary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/SquaredDifference.js": { - "bytes": 1010, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/binary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Step.js": { - "bytes": 1398, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/StridedSlice.js": { - "bytes": 4847, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Slice.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Sub.js": { - "bytes": 954, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/binary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Sum.js": { - "bytes": 2667, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/kernel_utils.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Tanh.js": { - "bytes": 896, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/unary_kernel.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Tile.js": { - "bytes": 1865, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/types.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/TopK.js": { - "bytes": 1923, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/types.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Unpack.js": { - "bytes": 1768, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Slice.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ZerosLike.js": { - "bytes": 1124, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/register_all_kernels.js": { - "bytes": 7433, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/_FusedMatMul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Abs.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Add.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/AddN.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ArgMax.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/AvgPool.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/BatchMatMul.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Cast.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Ceil.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ClipByValue.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Concat.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Conv2D.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Conv2DBackpropInput.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Cos.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/CropAndResize.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Cumsum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/DepthToSpace.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/DepthwiseConv2dNative.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Equal.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Exp.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ExpandDims.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Fill.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/FlipLeftRight.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Floor.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/FloorDiv.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/FusedBatchNorm.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/FusedConv2D.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/FusedDepthwiseConv2D.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/GatherNd.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/GatherV2.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Greater.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/GreaterEqual.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Identity.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/LeakyRelu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Less.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/LessEqual.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Log.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/LogicalAnd.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Max.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Maximum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/MaxPool.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Mean.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Min.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Minimum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Multiply.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Neg.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/NonMaxSuppressionV3.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/NonMaxSuppressionV4.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/NonMaxSuppressionV5.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/NotEqual.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/OneHot.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/OnesLike.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Pack.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/PadV2.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Pow.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Prelu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Prod.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Range.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/RealDiv.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Relu.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Relu6.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Reshape.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ResizeBilinear.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Reverse.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/RotateWithOffset.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Round.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Rsqrt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ScatterNd.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Select.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Sigmoid.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Sin.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Slice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Softmax.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/SplitV.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Sqrt.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Square.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/SquaredDifference.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Step.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/StridedSlice.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Sub.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Sum.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Tanh.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Tile.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/TopK.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Transpose.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Unpack.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ZerosLike.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/flags_wasm.js": { - "bytes": 2231, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - } - ] - }, - "(disabled):path": { - "bytes": 0, - "imports": [] - }, - "(disabled):worker_threads": { - "bytes": 0, - "imports": [] - }, - "(disabled):perf_hooks": { - "bytes": 0, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js": { - "bytes": 64769, - "imports": [ - { - "path": "(disabled):path", - "kind": "require-call" - }, - { - "path": "(disabled):path", - "kind": "require-call" - }, - { - "path": "(disabled):worker_threads", - "kind": "require-call" - }, - { - "path": "(disabled):path", - "kind": "require-call" - }, - { - "path": "(disabled):perf_hooks", - "kind": "require-call" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js": { - "bytes": 3172, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js": { - "bytes": 26723, - "imports": [ - { - "path": "(disabled):path", - "kind": "require-call" - }, - { - "path": "(disabled):path", - "kind": "require-call" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/backend_wasm.js": { - "bytes": 14972, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/flags_wasm.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/version.js": { - "bytes": 175, - "imports": [] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/base.js": { - "bytes": 1144, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/flags_wasm.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/backend_wasm.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/backend_wasm.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/version.js", - "kind": "import-statement" - } - ] - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/index.js": { - "bytes": 793, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/register_all_kernels.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/base.js", - "kind": "import-statement" - } - ] - }, - "src/tfjs/tf-browser.ts": { - "bytes": 276, - "imports": [ - { - "path": "node_modules/@tensorflow/tfjs/dist/index.js", - "kind": "import-statement" - }, - { - "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/index.js", - "kind": "import-statement" - } - ] - } - }, - "outputs": { - "dist/tfjs.esm.js.map": { - "imports": [], - "exports": [], - "inputs": {}, - "bytes": 1142745 - }, - "dist/tfjs.esm.js": { - "imports": [], - "exports": [ - "Abs", - "Acos", - "Acosh", - "AdadeltaOptimizer", - "AdagradOptimizer", - "AdamOptimizer", - "AdamaxOptimizer", - "Add", - "AddN", - "All", - "Any", - "ArgMax", - "ArgMin", - "Asin", - "Asinh", - "Atan", - "Atan2", - "Atanh", - "AvgPool", - "AvgPool3D", - "AvgPool3DGrad", - "AvgPoolGrad", - "BackendWasm", - "BatchMatMul", - "BatchToSpaceND", - "Bincount", - "BroadcastTo", - "Callback", - "CallbackList", - "Cast", - "Ceil", - "ClipByValue", - "Complex", - "ComplexAbs", - "Concat", - "Conv2D", - "Conv2DBackpropFilter", - "Conv2DBackpropInput", - "Conv3D", - "Conv3DBackpropFilterV2", - "Conv3DBackpropInputV2", - "Cos", - "Cosh", - "CropAndResize", - "Cumsum", - "CustomCallback", - "DataStorage", - "DenseBincount", - "DepthToSpace", - "DepthwiseConv2dNative", - "DepthwiseConv2dNativeBackpropFilter", - "DepthwiseConv2dNativeBackpropInput", - "Diag", - "Dilation2D", - "Dilation2DBackpropFilter", - "Dilation2DBackpropInput", - "ENV", - "EarlyStopping", - "Elu", - "EluGrad", - "Environment", - "Equal", - "Erf", - "Exp", - "ExpandDims", - "Expm1", - "FFT", - "Fill", - "FlipLeftRight", - "Floor", - "FloorDiv", - "FromPixels", - "FusedBatchNorm", - "FusedConv2D", - "FusedDepthwiseConv2D", - "GatherNd", - "GatherV2", - "GraphModel", - "Greater", - "GreaterEqual", - "History", - "IFFT", - "Identity", - "Imag", - "InputSpec", - "IsFinite", - "IsInf", - "IsNan", - "KernelBackend", - "LRN", - "LRNGrad", - "LayerVariable", - "LayersModel", - "LeakyRelu", - "Less", - "LessEqual", - "LinSpace", - "Log", - "Log1p", - "LogSoftmax", - "LogicalAnd", - "LogicalNot", - "LogicalOr", - "Max", - "MaxPool", - "MaxPool3D", - "MaxPool3DGrad", - "MaxPoolGrad", - "MaxPoolWithArgmax", - "Maximum", - "Mean", - "Min", - "Minimum", - "MirrorPad", - "Mod", - "MomentumOptimizer", - "Multinomial", - "Multiply", - "Neg", - "NonMaxSuppressionV3", - "NonMaxSuppressionV4", - "NonMaxSuppressionV5", - "NotEqual", - "OP_SCOPE_SUFFIX", - "OneHot", - "OnesLike", - "Optimizer", - "Pack", - "PadV2", - "Pool", - "Pow", - "Prelu", - "Prod", - "RMSPropOptimizer", - "RNN", - "Range", - "Rank", - "Real", - "RealDiv", - "Reciprocal", - "Reduction", - "Relu", - "Relu6", - "Reshape", - "ResizeBilinear", - "ResizeBilinearGrad", - "ResizeNearestNeighbor", - "ResizeNearestNeighborGrad", - "Reverse", - "RotateWithOffset", - "Round", - "Rsqrt", - "SGDOptimizer", - "ScatterNd", - "Select", - "Selu", - "Sequential", - "Sigmoid", - "Sign", - "Sin", - "Sinh", - "Slice", - "Softmax", - "Softplus", - "SpaceToBatchND", - "SparseToDense", - "SplitV", - "Sqrt", - "Square", - "SquaredDifference", - "Step", - "StridedSlice", - "Sub", - "Sum", - "SymbolicTensor", - "Tan", - "Tanh", - "Tensor", - "TensorBuffer", - "Tile", - "TopK", - "Transpose", - "Unique", - "Unpack", - "UnsortedSegmentSum", - "Variable", - "ZerosLike", - "_FusedMatMul", - "abs", - "acos", - "acosh", - "add", - "addN", - "all", - "any", - "argMax", - "argMin", - "asin", - "asinh", - "atan", - "atan2", - "atanh", - "avgPool", - "avgPool3d", - "backend", - "backend_util", - "basicLSTMCell", - "batchNorm", - "batchNorm2d", - "batchNorm3d", - "batchNorm4d", - "batchToSpaceND", - "bincount", - "booleanMaskAsync", - "broadcastTo", - "browser", - "buffer", - "callbacks", - "cast", - "ceil", - "clipByValue", - "clone", - "complex", - "concat", - "concat1d", - "concat2d", - "concat3d", - "concat4d", - "constraints", - "conv1d", - "conv2d", - "conv2dTranspose", - "conv3d", - "conv3dTranspose", - "copyRegisteredKernels", - "cos", - "cosh", - "cosineWindow", - "cumsum", - "customGrad", - "data", - "denseBincount", - "deprecationWarn", - "depthToSpace", - "depthwiseConv2d", - "deregisterOp", - "device_util", - "diag", - "dilation2d", - "disableDeprecationWarnings", - "dispose", - "disposeVariables", - "div", - "divNoNan", - "dot", - "dropout", - "elu", - "enableDebugMode", - "enableProdMode", - "enclosingPowerOfTwo", - "engine", - "env", - "equal", - "erf", - "exp", - "expandDims", - "expm1", - "eye", - "fft", - "fill", - "findBackend", - "findBackendFactory", - "floor", - "floorDiv", - "fused", - "gather", - "gatherND", - "gather_util", - "getBackend", - "getGradient", - "getKernel", - "getKernelsForBackend", - "grad", - "grads", - "greater", - "greaterEqual", - "ifft", - "imag", - "image", - "inTopKAsync", - "initializers", - "input", - "io", - "irfft", - "isFinite", - "isInf", - "isNaN", - "keep", - "kernel_impls", - "layers", - "leakyRelu", - "less", - "lessEqual", - "linalg", - "linspace", - "loadGraphModel", - "loadLayersModel", - "localResponseNormalization", - "log", - "log1p", - "logSigmoid", - "logSoftmax", - "logSumExp", - "logicalAnd", - "logicalNot", - "logicalOr", - "logicalXor", - "losses", - "matMul", - "math", - "max", - "maxPool", - "maxPool3d", - "maxPoolWithArgmax", - "maximum", - "mean", - "memory", - "metrics", - "min", - "minimum", - "mirrorPad", - "mod", - "model", - "models", - "moments", - "movingAverage", - "mul", - "multiRNNCell", - "multinomial", - "neg", - "nextFrame", - "norm", - "notEqual", - "oneHot", - "ones", - "onesLike", - "op", - "outerProduct", - "pad", - "pad1d", - "pad2d", - "pad3d", - "pad4d", - "pool", - "pow", - "prelu", - "print", - "prod", - "profile", - "rand", - "randomGamma", - "randomNormal", - "randomUniform", - "range", - "ready", - "real", - "reciprocal", - "registerBackend", - "registerCallbackConstructor", - "registerGradient", - "registerKernel", - "registerOp", - "regularizers", - "relu", - "relu6", - "removeBackend", - "reshape", - "reverse", - "reverse1d", - "reverse2d", - "reverse3d", - "reverse4d", - "rfft", - "round", - "rsqrt", - "scalar", - "scatterND", - "scatter_util", - "selu", - "separableConv2d", - "sequential", - "serialization", - "setBackend", - "setPlatform", - "setWasmPath", - "setWasmPaths", - "setdiff1dAsync", - "sigmoid", - "sign", - "signal", - "sin", - "sinh", - "slice", - "slice1d", - "slice2d", - "slice3d", - "slice4d", - "slice_util", - "softmax", - "softplus", - "spaceToBatchND", - "sparseToDense", - "spectral", - "split", - "sqrt", - "square", - "squaredDifference", - "squeeze", - "stack", - "step", - "stridedSlice", - "sub", - "sum", - "sumOutType", - "tan", - "tanh", - "tensor", - "tensor1d", - "tensor2d", - "tensor3d", - "tensor4d", - "tensor5d", - "tensor6d", - "tensor_util", - "test_util", - "tidy", - "tile", - "time", - "topk", - "train", - "transpose", - "truncatedNormal", - "unique", - "unregisterGradient", - "unregisterKernel", - "unsortedSegmentSum", - "unstack", - "upcastType", - "util", - "valueAndGrad", - "valueAndGrads", - "variable", - "variableGrads", - "version", - "version_converter", - "version_core", - "version_layers", - "version_wasm", - "where", - "whereAsync", - "zeros", - "zerosLike" - ], - "entryPoint": "src/tfjs/tf-browser.ts", - "inputs": { - "(disabled):node_modules/node-fetch/browser.js": { - "bytesInOutput": 18 - }, - "node_modules/seedrandom/lib/alea.js": { - "bytesInOutput": 995 - }, - "node_modules/seedrandom/lib/xor128.js": { - "bytesInOutput": 760 - }, - "node_modules/seedrandom/lib/xorwow.js": { - "bytesInOutput": 850 - }, - "node_modules/seedrandom/lib/xorshift7.js": { - "bytesInOutput": 1006 - }, - "node_modules/seedrandom/lib/xor4096.js": { - "bytesInOutput": 1169 - }, - "node_modules/seedrandom/lib/tychei.js": { - "bytesInOutput": 885 - }, - "(disabled):crypto": { - "bytesInOutput": 18 - }, - "node_modules/seedrandom/seedrandom.js": { - "bytesInOutput": 1620 - }, - "node_modules/seedrandom/index.js": { - "bytesInOutput": 177 - }, - "(disabled):node_modules/string_decoder/lib/string_decoder.js": { - "bytesInOutput": 18 - }, - "(disabled):path": { - "bytesInOutput": 18 - }, - "(disabled):worker_threads": { - "bytesInOutput": 18 - }, - "(disabled):perf_hooks": { - "bytesInOutput": 18 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js": { - "bytesInOutput": 39230 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js": { - "bytesInOutput": 16473 - }, - "node_modules/@tensorflow/tfjs-core/dist/backends/backend.js": { - "bytesInOutput": 1032 - }, - "node_modules/@tensorflow/tfjs-core/dist/util_base.js": { - "bytesInOutput": 6295 - }, - "node_modules/@tensorflow/tfjs-core/dist/environment.js": { - "bytesInOutput": 2118 - }, - "node_modules/@tensorflow/tfjs-core/dist/global_util.js": { - "bytesInOutput": 462 - }, - "node_modules/@tensorflow/tfjs-core/dist/kernel_names.js": { - "bytesInOutput": 2294 - }, - "node_modules/@tensorflow/tfjs-core/dist/kernel_registry.js": { - "bytesInOutput": 946 - }, - "node_modules/@tensorflow/tfjs-core/dist/util.js": { - "bytesInOutput": 1966 - }, - "node_modules/@tensorflow/tfjs-core/dist/profiler.js": { - "bytesInOutput": 1335 - }, - "node_modules/@tensorflow/tfjs-core/dist/tape.js": { - "bytesInOutput": 1538 - }, - "node_modules/@tensorflow/tfjs-core/dist/tensor_format.js": { - "bytesInOutput": 1811 - }, - "node_modules/@tensorflow/tfjs-core/dist/tensor.js": { - "bytesInOutput": 3947 - }, - "node_modules/@tensorflow/tfjs-core/dist/tensor_util.js": { - "bytesInOutput": 657 - }, - "node_modules/@tensorflow/tfjs-core/dist/types.js": { - "bytesInOutput": 802 - }, - "node_modules/@tensorflow/tfjs-core/dist/engine.js": { - "bytesInOutput": 15341 - }, - "node_modules/@tensorflow/tfjs-core/dist/device_util.js": { - "bytesInOutput": 2280 - }, - "node_modules/@tensorflow/tfjs-core/dist/flags.js": { - "bytesInOutput": 819 - }, - "node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js": { - "bytesInOutput": 1700 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/operation.js": { - "bytesInOutput": 515 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/complex.js": { - "bytesInOutput": 247 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tensor_ops_util.js": { - "bytesInOutput": 828 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tensor.js": { - "bytesInOutput": 52 - }, - "node_modules/@tensorflow/tfjs-core/dist/io/types.js": { - "bytesInOutput": 73 - }, - "node_modules/@tensorflow/tfjs-core/dist/io/io_utils.js": { - "bytesInOutput": 5274 - }, - "node_modules/@tensorflow/tfjs-core/dist/io/router_registry.js": { - "bytesInOutput": 686 - }, - "node_modules/@tensorflow/tfjs-core/dist/io/indexed_db.js": { - "bytesInOutput": 3447 - }, - "node_modules/@tensorflow/tfjs-core/dist/io/local_storage.js": { - "bytesInOutput": 4305 - }, - "node_modules/@tensorflow/tfjs-core/dist/io/model_management.js": { - "bytesInOutput": 1951 - }, - "node_modules/@tensorflow/tfjs-core/dist/platforms/platform_browser.js": { - "bytesInOutput": 497 - }, - "node_modules/@tensorflow/tfjs-core/dist/platforms/platform_node.js": { - "bytesInOutput": 563 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/buffer.js": { - "bytesInOutput": 71 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/cast.js": { - "bytesInOutput": 304 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/clone.js": { - "bytesInOutput": 109 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/print.js": { - "bytesInOutput": 47 - }, - "node_modules/@tensorflow/tfjs-core/dist/base_side_effects.js": { - "bytesInOutput": 57 - }, - "node_modules/@tensorflow/tfjs-core/dist/io/io.js": { - "bytesInOutput": 463 - }, - "node_modules/@tensorflow/tfjs-core/dist/io/browser_files.js": { - "bytesInOutput": 3912 - }, - "node_modules/@tensorflow/tfjs-core/dist/io/progress.js": { - "bytesInOutput": 563 - }, - "node_modules/@tensorflow/tfjs-core/dist/io/weights_loader.js": { - "bytesInOutput": 1497 - }, - "node_modules/@tensorflow/tfjs-core/dist/io/http.js": { - "bytesInOutput": 4112 - }, - "node_modules/@tensorflow/tfjs-core/dist/io/passthrough.js": { - "bytesInOutput": 872 - }, - "node_modules/@tensorflow/tfjs-core/dist/math.js": { - "bytesInOutput": 42 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/mat_mul.js": { - "bytesInOutput": 181 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/one_hot.js": { - "bytesInOutput": 233 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/transpose.js": { - "bytesInOutput": 407 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/confusion_matrix.js": { - "bytesInOutput": 740 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/browser.js": { - "bytesInOutput": 2908 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tensor3d.js": { - "bytesInOutput": 380 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/gather_nd_util.js": { - "bytesInOutput": 890 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/scatter_nd_util.js": { - "bytesInOutput": 1764 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/slice_util.js": { - "bytesInOutput": 3874 - }, - "node_modules/@tensorflow/tfjs-core/dist/serialization.js": { - "bytesInOutput": 734 - }, - "node_modules/@tensorflow/tfjs-core/dist/test_util.js": { - "bytesInOutput": 1852 - }, - "node_modules/@tensorflow/tfjs-core/dist/version.js": { - "bytesInOutput": 15 - }, - "node_modules/@tensorflow/tfjs-core/dist/globals.js": { - "bytesInOutput": 970 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/add.js": { - "bytesInOutput": 129 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/floorDiv.js": { - "bytesInOutput": 145 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/div.js": { - "bytesInOutput": 192 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/mul.js": { - "bytesInOutput": 129 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/abs.js": { - "bytesInOutput": 162 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/acos.js": { - "bytesInOutput": 87 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/acosh.js": { - "bytesInOutput": 89 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/add_n.js": { - "bytesInOutput": 521 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/all.js": { - "bytesInOutput": 128 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/any.js": { - "bytesInOutput": 128 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/arg_max.js": { - "bytesInOutput": 108 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/arg_min.js": { - "bytesInOutput": 108 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/asin.js": { - "bytesInOutput": 87 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/asinh.js": { - "bytesInOutput": 89 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/atan.js": { - "bytesInOutput": 87 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/atan2.js": { - "bytesInOutput": 136 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/atanh.js": { - "bytesInOutput": 89 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/conv_util.js": { - "bytesInOutput": 4584 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js": { - "bytesInOutput": 128 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool.js": { - "bytesInOutput": 621 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_3d.js": { - "bytesInOutput": 657 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/concat.js": { - "bytesInOutput": 398 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/sigmoid.js": { - "bytesInOutput": 93 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/slice.js": { - "bytesInOutput": 206 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tanh.js": { - "bytesInOutput": 87 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/basic_lstm_cell.js": { - "bytesInOutput": 451 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/batch_to_space_nd.js": { - "bytesInOutput": 536 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm_util.js": { - "bytesInOutput": 180 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm.js": { - "bytesInOutput": 671 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm2d.js": { - "bytesInOutput": 784 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm3d.js": { - "bytesInOutput": 784 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm4d.js": { - "bytesInOutput": 784 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/bincount.js": { - "bytesInOutput": 474 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_to.js": { - "bytesInOutput": 662 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/ceil.js": { - "bytesInOutput": 87 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/clip_by_value.js": { - "bytesInOutput": 231 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/concat_1d.js": { - "bytesInOutput": 55 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/concat_2d.js": { - "bytesInOutput": 57 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/concat_3d.js": { - "bytesInOutput": 57 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/concat_4d.js": { - "bytesInOutput": 57 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d.js": { - "bytesInOutput": 885 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/conv1d.js": { - "bytesInOutput": 986 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_backprop_input.js": { - "bytesInOutput": 1133 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_transpose.js": { - "bytesInOutput": 154 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/conv3d.js": { - "bytesInOutput": 854 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_backprop_input.js": { - "bytesInOutput": 957 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_transpose.js": { - "bytesInOutput": 143 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/cos.js": { - "bytesInOutput": 85 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/cosh.js": { - "bytesInOutput": 87 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/cumsum.js": { - "bytesInOutput": 140 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/dense_bincount.js": { - "bytesInOutput": 610 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/depth_to_space.js": { - "bytesInOutput": 676 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d.js": { - "bytesInOutput": 838 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/diag.js": { - "bytesInOutput": 87 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/dilation2d.js": { - "bytesInOutput": 618 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js": { - "bytesInOutput": 609 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/equal.js": { - "bytesInOutput": 156 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/where.js": { - "bytesInOutput": 371 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js": { - "bytesInOutput": 97 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/div_no_nan.js": { - "bytesInOutput": 143 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/dot.js": { - "bytesInOutput": 712 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/elu.js": { - "bytesInOutput": 85 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/erf.js": { - "bytesInOutput": 222 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/exp.js": { - "bytesInOutput": 85 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/expand_dims.js": { - "bytesInOutput": 201 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/expm1.js": { - "bytesInOutput": 89 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tile.js": { - "bytesInOutput": 233 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/eye.js": { - "bytesInOutput": 446 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/fill.js": { - "bytesInOutput": 79 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/floor.js": { - "bytesInOutput": 89 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/gather.js": { - "bytesInOutput": 174 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/greater.js": { - "bytesInOutput": 162 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/greater_equal.js": { - "bytesInOutput": 177 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/imag.js": { - "bytesInOutput": 95 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/is_finite.js": { - "bytesInOutput": 95 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/is_inf.js": { - "bytesInOutput": 89 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/is_nan.js": { - "bytesInOutput": 89 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/leaky_relu.js": { - "bytesInOutput": 116 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/less.js": { - "bytesInOutput": 153 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/less_equal.js": { - "bytesInOutput": 168 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/linspace.js": { - "bytesInOutput": 144 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/local_response_normalization.js": { - "bytesInOutput": 559 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/log.js": { - "bytesInOutput": 85 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/log1p.js": { - "bytesInOutput": 89 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients.js": { - "bytesInOutput": 3002 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/neg.js": { - "bytesInOutput": 85 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/softplus.js": { - "bytesInOutput": 95 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/log_sigmoid.js": { - "bytesInOutput": 138 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/max.js": { - "bytesInOutput": 133 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/sub.js": { - "bytesInOutput": 130 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/sum.js": { - "bytesInOutput": 165 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/log_softmax.js": { - "bytesInOutput": 424 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/axis_util.js": { - "bytesInOutput": 787 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/log_sum_exp.js": { - "bytesInOutput": 214 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/logical_and.js": { - "bytesInOutput": 171 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/logical_not.js": { - "bytesInOutput": 106 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/logical_or.js": { - "bytesInOutput": 168 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/logical_xor.js": { - "bytesInOutput": 161 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/max_pool.js": { - "bytesInOutput": 595 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_3d.js": { - "bytesInOutput": 639 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_with_argmax.js": { - "bytesInOutput": 209 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/maximum.js": { - "bytesInOutput": 214 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/mean.js": { - "bytesInOutput": 123 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/min.js": { - "bytesInOutput": 121 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/minimum.js": { - "bytesInOutput": 214 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/mirror_pad.js": { - "bytesInOutput": 755 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/mod.js": { - "bytesInOutput": 130 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/square.js": { - "bytesInOutput": 104 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/moments.js": { - "bytesInOutput": 210 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/multi_rnn_cell.js": { - "bytesInOutput": 313 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/multinomial.js": { - "bytesInOutput": 414 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/not_equal.js": { - "bytesInOutput": 165 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/zeros.js": { - "bytesInOutput": 147 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/ones.js": { - "bytesInOutput": 147 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/ones_like.js": { - "bytesInOutput": 95 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/outer_product.js": { - "bytesInOutput": 268 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/pad.js": { - "bytesInOutput": 216 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/pad1d.js": { - "bytesInOutput": 133 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/pad2d.js": { - "bytesInOutput": 170 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/pad3d.js": { - "bytesInOutput": 187 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/pad4d.js": { - "bytesInOutput": 204 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/space_to_batch_nd.js": { - "bytesInOutput": 558 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/pool.js": { - "bytesInOutput": 983 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/pow.js": { - "bytesInOutput": 135 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/prelu.js": { - "bytesInOutput": 126 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/prod.js": { - "bytesInOutput": 167 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/rand.js": { - "bytesInOutput": 289 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/rand_util.js": { - "bytesInOutput": 1914 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/random_gamma.js": { - "bytesInOutput": 289 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/random_normal.js": { - "bytesInOutput": 240 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/random_uniform.js": { - "bytesInOutput": 182 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/range.js": { - "bytesInOutput": 154 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/real.js": { - "bytesInOutput": 95 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/reciprocal.js": { - "bytesInOutput": 99 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/relu.js": { - "bytesInOutput": 87 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/relu6.js": { - "bytesInOutput": 89 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/reverse.js": { - "bytesInOutput": 108 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/reverse_1d.js": { - "bytesInOutput": 162 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/reverse_2d.js": { - "bytesInOutput": 164 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/reverse_3d.js": { - "bytesInOutput": 164 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/reverse_4d.js": { - "bytesInOutput": 164 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/round.js": { - "bytesInOutput": 89 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/rsqrt.js": { - "bytesInOutput": 89 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js": { - "bytesInOutput": 340 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/selu.js": { - "bytesInOutput": 87 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/separable_conv2d.js": { - "bytesInOutput": 1183 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/setdiff1d_async.js": { - "bytesInOutput": 585 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/sign.js": { - "bytesInOutput": 87 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/sin.js": { - "bytesInOutput": 85 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/sinh.js": { - "bytesInOutput": 87 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/slice1d.js": { - "bytesInOutput": 174 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/slice2d.js": { - "bytesInOutput": 170 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/slice3d.js": { - "bytesInOutput": 170 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/slice4d.js": { - "bytesInOutput": 170 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/softmax.js": { - "bytesInOutput": 290 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/fft.js": { - "bytesInOutput": 177 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/ifft.js": { - "bytesInOutput": 179 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/irfft.js": { - "bytesInOutput": 416 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/split.js": { - "bytesInOutput": 126 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/rfft.js": { - "bytesInOutput": 593 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/sqrt.js": { - "bytesInOutput": 87 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/squared_difference.js": { - "bytesInOutput": 199 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/squeeze.js": { - "bytesInOutput": 101 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/stack.js": { - "bytesInOutput": 264 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/step.js": { - "bytesInOutput": 105 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/strided_slice.js": { - "bytesInOutput": 227 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tan.js": { - "bytesInOutput": 85 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tensor1d.js": { - "bytesInOutput": 145 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tensor2d.js": { - "bytesInOutput": 381 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tensor4d.js": { - "bytesInOutput": 381 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tensor5d.js": { - "bytesInOutput": 383 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/tensor6d.js": { - "bytesInOutput": 391 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/topk.js": { - "bytesInOutput": 362 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/truncated_normal.js": { - "bytesInOutput": 250 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/unique.js": { - "bytesInOutput": 217 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/unsorted_segment_sum.js": { - "bytesInOutput": 257 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/unstack.js": { - "bytesInOutput": 250 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/variable.js": { - "bytesInOutput": 55 - }, - "node_modules/@tensorflow/tfjs-core/dist/backends/where_impl.js": { - "bytesInOutput": 227 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/where_async.js": { - "bytesInOutput": 135 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/boolean_mask.js": { - "bytesInOutput": 497 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/ops.js": { - "bytesInOutput": 576 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/norm.js": { - "bytesInOutput": 889 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/moving_average.js": { - "bytesInOutput": 385 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/scatter_nd.js": { - "bytesInOutput": 192 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/sparse_to_dense_util.js": { - "bytesInOutput": 648 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/sparse_to_dense.js": { - "bytesInOutput": 299 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/gather_nd.js": { - "bytesInOutput": 148 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/dropout_util.js": { - "bytesInOutput": 228 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/dropout.js": { - "bytesInOutput": 395 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/signal_ops_util.js": { - "bytesInOutput": 225 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/in_top_k.js": { - "bytesInOutput": 963 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/fused_ops.js": { - "bytesInOutput": 70 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_backprop_filter.js": { - "bytesInOutput": 1004 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/fused_util.js": { - "bytesInOutput": 522 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/fused/conv2d.js": { - "bytesInOutput": 1946 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d_native_backprop_filter.js": { - "bytesInOutput": 325 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d_native_backprop_input.js": { - "bytesInOutput": 318 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/fused/depthwise_conv2d.js": { - "bytesInOutput": 1969 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/fused/mat_mul.js": { - "bytesInOutput": 1805 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/signal/hamming_window.js": { - "bytesInOutput": 66 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/signal/hann_window.js": { - "bytesInOutput": 61 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/signal/frame.js": { - "bytesInOutput": 242 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/signal/stft.js": { - "bytesInOutput": 173 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/crop_and_resize.js": { - "bytesInOutput": 891 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/flip_left_right.js": { - "bytesInOutput": 223 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/rotate_with_offset.js": { - "bytesInOutput": 277 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/nonmax_util.js": { - "bytesInOutput": 645 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression.js": { - "bytesInOutput": 330 - }, - "node_modules/@tensorflow/tfjs-core/dist/backends/non_max_suppression_util.js": { - "bytesInOutput": 270 - }, - "node_modules/@tensorflow/tfjs-core/dist/backends/non_max_suppression_impl.js": { - "bytesInOutput": 1384 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_async.js": { - "bytesInOutput": 374 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_with_score.js": { - "bytesInOutput": 425 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_with_score_async.js": { - "bytesInOutput": 455 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_padded.js": { - "bytesInOutput": 409 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_padded_async.js": { - "bytesInOutput": 432 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/resize_bilinear.js": { - "bytesInOutput": 606 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/image/resize_nearest_neighbor.js": { - "bytesInOutput": 738 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/linalg/band_part.js": { - "bytesInOutput": 742 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/linalg/gram_schmidt.js": { - "bytesInOutput": 699 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/linalg/qr.js": { - "bytesInOutput": 1252 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/loss_ops_utils.js": { - "bytesInOutput": 145 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/losses/compute_weighted_loss.js": { - "bytesInOutput": 547 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/losses/absolute_difference.js": { - "bytesInOutput": 308 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/losses/cosine_distance.js": { - "bytesInOutput": 308 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/losses/hinge_loss.js": { - "bytesInOutput": 299 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/losses/huber_loss.js": { - "bytesInOutput": 323 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/losses/log_loss.js": { - "bytesInOutput": 324 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/losses/mean_squared_error.js": { - "bytesInOutput": 294 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/losses/sigmoid_cross_entropy.js": { - "bytesInOutput": 621 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/losses/softmax_cross_entropy.js": { - "bytesInOutput": 829 - }, - "node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer.js": { - "bytesInOutput": 1029 - }, - "node_modules/@tensorflow/tfjs-core/dist/optimizers/adadelta_optimizer.js": { - "bytesInOutput": 1726 - }, - "node_modules/@tensorflow/tfjs-core/dist/optimizers/adagrad_optimizer.js": { - "bytesInOutput": 1243 - }, - "node_modules/@tensorflow/tfjs-core/dist/optimizers/adam_optimizer.js": { - "bytesInOutput": 2253 - }, - "node_modules/@tensorflow/tfjs-core/dist/optimizers/adamax_optimizer.js": { - "bytesInOutput": 1872 - }, - "node_modules/@tensorflow/tfjs-core/dist/optimizers/sgd_optimizer.js": { - "bytesInOutput": 774 - }, - "node_modules/@tensorflow/tfjs-core/dist/optimizers/momentum_optimizer.js": { - "bytesInOutput": 1257 - }, - "node_modules/@tensorflow/tfjs-core/dist/optimizers/rmsprop_optimizer.js": { - "bytesInOutput": 2725 - }, - "node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer_constructors.js": { - "bytesInOutput": 389 - }, - "node_modules/@tensorflow/tfjs-core/dist/train.js": { - "bytesInOutput": 130 - }, - "node_modules/@tensorflow/tfjs-core/dist/browser_util.js": { - "bytesInOutput": 181 - }, - "node_modules/@tensorflow/tfjs-core/dist/backends/backend_util.js": { - "bytesInOutput": 1675 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/concat_util.js": { - "bytesInOutput": 544 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/reduce_util.js": { - "bytesInOutput": 71 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/rotate_util.js": { - "bytesInOutput": 99 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/array_ops_util.js": { - "bytesInOutput": 794 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/selu_util.js": { - "bytesInOutput": 48 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/erf_util.js": { - "bytesInOutput": 91 - }, - "node_modules/@tensorflow/tfjs-core/dist/log.js": { - "bytesInOutput": 121 - }, - "node_modules/@tensorflow/tfjs-core/dist/backends/complex_util.js": { - "bytesInOutput": 1172 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/split_util.js": { - "bytesInOutput": 474 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/segment_util.js": { - "bytesInOutput": 1124 - }, - "node_modules/@tensorflow/tfjs-core/dist/backends/kernel_impls.js": { - "bytesInOutput": 129 - }, - "node_modules/@tensorflow/tfjs-core/dist/index.js": { - "bytesInOutput": 0 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Abs_grad.js": { - "bytesInOutput": 111 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Acos_grad.js": { - "bytesInOutput": 148 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Acosh_grad.js": { - "bytesInOutput": 136 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Add_grad.js": { - "bytesInOutput": 257 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/AddN_grad.js": { - "bytesInOutput": 115 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/ArgMax_grad.js": { - "bytesInOutput": 89 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/ArgMin_grad.js": { - "bytesInOutput": 89 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Asin_grad.js": { - "bytesInOutput": 123 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Asinh_grad.js": { - "bytesInOutput": 139 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Atan2_grad.js": { - "bytesInOutput": 317 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Atan_grad.js": { - "bytesInOutput": 114 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Atanh_grad.js": { - "bytesInOutput": 119 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_3d_grad.js": { - "bytesInOutput": 713 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/AvgPool3D_grad.js": { - "bytesInOutput": 152 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_grad.js": { - "bytesInOutput": 621 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/AvgPool_grad.js": { - "bytesInOutput": 132 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/BatchMatMul_grad.js": { - "bytesInOutput": 300 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/BatchToSpaceND_grad.js": { - "bytesInOutput": 95 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/BroadcastTo_grad.js": { - "bytesInOutput": 312 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Cast_grad.js": { - "bytesInOutput": 55 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Ceil_grad.js": { - "bytesInOutput": 51 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/ClipByValue_grad.js": { - "bytesInOutput": 151 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/ComplexAbs_grad.js": { - "bytesInOutput": 63 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Concat_grad.js": { - "bytesInOutput": 165 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Conv2D_grad.js": { - "bytesInOutput": 328 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Conv2DBackpropInput_grad.js": { - "bytesInOutput": 202 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_backprop_filter.js": { - "bytesInOutput": 822 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Conv3D_grad.js": { - "bytesInOutput": 313 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Cos_grad.js": { - "bytesInOutput": 112 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Cosh_grad.js": { - "bytesInOutput": 108 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Cumsum_grad.js": { - "bytesInOutput": 186 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/DepthwiseConv2dNative_grad.js": { - "bytesInOutput": 1012 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Dilation2D_grad.js": { - "bytesInOutput": 191 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Elu_grad.js": { - "bytesInOutput": 114 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Erf_grad.js": { - "bytesInOutput": 130 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Exp_grad.js": { - "bytesInOutput": 90 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/ExpandDims_grad.js": { - "bytesInOutput": 104 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Expm1_grad.js": { - "bytesInOutput": 94 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Floor_grad.js": { - "bytesInOutput": 51 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/FloorDiv_grad.js": { - "bytesInOutput": 327 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/FusedBatchNorm_grad.js": { - "bytesInOutput": 711 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/GatherV2_grad.js": { - "bytesInOutput": 541 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/GreaterEqual_grad.js": { - "bytesInOutput": 107 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Identity_grad.js": { - "bytesInOutput": 61 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/IsFinite_grad.js": { - "bytesInOutput": 51 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/IsInf_grad.js": { - "bytesInOutput": 51 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/IsNan_grad.js": { - "bytesInOutput": 51 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/LeakyRelu_grad.js": { - "bytesInOutput": 122 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Log1p_grad.js": { - "bytesInOutput": 96 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Log_grad.js": { - "bytesInOutput": 105 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/LogSoftmax_grad.js": { - "bytesInOutput": 164 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/local_response_normalization_backprop.js": { - "bytesInOutput": 175 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/LRN_grad.js": { - "bytesInOutput": 164 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/min_max_grad_util.js": { - "bytesInOutput": 137 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Max_grad.js": { - "bytesInOutput": 176 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Maximum_grad.js": { - "bytesInOutput": 149 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_3d_grad.js": { - "bytesInOutput": 905 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/MaxPool3D_grad.js": { - "bytesInOutput": 175 - }, - "node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_grad.js": { - "bytesInOutput": 632 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/MaxPool_grad.js": { - "bytesInOutput": 155 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Mean_grad.js": { - "bytesInOutput": 239 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Min_grad.js": { - "bytesInOutput": 158 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Minimum_grad.js": { - "bytesInOutput": 149 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/MirrorPad_grad.js": { - "bytesInOutput": 135 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Mod_grad.js": { - "bytesInOutput": 262 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Multiply_grad.js": { - "bytesInOutput": 285 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Neg_grad.js": { - "bytesInOutput": 51 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/OneHot_grad.js": { - "bytesInOutput": 119 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/OnesLike_grad.js": { - "bytesInOutput": 51 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Pack_grad.js": { - "bytesInOutput": 103 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/PadV2_grad.js": { - "bytesInOutput": 135 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Pow_grad.js": { - "bytesInOutput": 370 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Prelu_grad.js": { - "bytesInOutput": 221 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/RealDiv_grad.js": { - "bytesInOutput": 327 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Reciprocal_grad.js": { - "bytesInOutput": 99 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Relu6_grad.js": { - "bytesInOutput": 123 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Relu_grad.js": { - "bytesInOutput": 108 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Reshape_grad.js": { - "bytesInOutput": 96 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/ResizeBilinear_grad.js": { - "bytesInOutput": 133 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/ResizeNearestNeighbor_grad.js": { - "bytesInOutput": 133 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Reverse_grad.js": { - "bytesInOutput": 95 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Round_grad.js": { - "bytesInOutput": 51 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Rsqrt_grad.js": { - "bytesInOutput": 108 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Select_grad.js": { - "bytesInOutput": 173 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Selu_grad.js": { - "bytesInOutput": 179 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Sigmoid_grad.js": { - "bytesInOutput": 105 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Sign_grad.js": { - "bytesInOutput": 51 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Sin_grad.js": { - "bytesInOutput": 108 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Sinh_grad.js": { - "bytesInOutput": 108 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Slice_grad.js": { - "bytesInOutput": 198 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Softmax_grad.js": { - "bytesInOutput": 137 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Softplus_grad.js": { - "bytesInOutput": 94 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/SpaceToBatchND_grad.js": { - "bytesInOutput": 98 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/SplitV_grad.js": { - "bytesInOutput": 79 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Sqrt_grad.js": { - "bytesInOutput": 114 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Square_grad.js": { - "bytesInOutput": 109 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/SquaredDifference_grad.js": { - "bytesInOutput": 139 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Step_grad.js": { - "bytesInOutput": 51 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Sub_grad.js": { - "bytesInOutput": 261 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Sum_grad.js": { - "bytesInOutput": 193 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Tan_grad.js": { - "bytesInOutput": 99 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Tanh_grad.js": { - "bytesInOutput": 104 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Tile_grad.js": { - "bytesInOutput": 831 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Transpose_grad.js": { - "bytesInOutput": 92 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/Unpack_grad.js": { - "bytesInOutput": 88 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/UnsortedSegmentSum_grad.js": { - "bytesInOutput": 271 - }, - "node_modules/@tensorflow/tfjs-core/dist/gradients/ZerosLike_grad.js": { - "bytesInOutput": 51 - }, - "node_modules/@tensorflow/tfjs-core/dist/register_all_gradients.js": { - "bytesInOutput": 343 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/abs.js": { - "bytesInOutput": 69 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/acos.js": { - "bytesInOutput": 70 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/acosh.js": { - "bytesInOutput": 71 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/add.js": { - "bytesInOutput": 71 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/all.js": { - "bytesInOutput": 76 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/any.js": { - "bytesInOutput": 76 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/arg_max.js": { - "bytesInOutput": 75 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/arg_min.js": { - "bytesInOutput": 75 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as_scalar.js": { - "bytesInOutput": 135 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as_type.js": { - "bytesInOutput": 75 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as1d.js": { - "bytesInOutput": 81 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as2d.js": { - "bytesInOutput": 78 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as3d.js": { - "bytesInOutput": 82 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as4d.js": { - "bytesInOutput": 86 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as5d.js": { - "bytesInOutput": 90 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/asin.js": { - "bytesInOutput": 70 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/asinh.js": { - "bytesInOutput": 71 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atan.js": { - "bytesInOutput": 70 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atan2.js": { - "bytesInOutput": 74 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atanh.js": { - "bytesInOutput": 71 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/avg_pool.js": { - "bytesInOutput": 88 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/batch_to_space_nd.js": { - "bytesInOutput": 87 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/batchnorm.js": { - "bytesInOutput": 94 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/broadcast_to.js": { - "bytesInOutput": 80 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cast.js": { - "bytesInOutput": 73 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ceil.js": { - "bytesInOutput": 70 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/clip_by_value.js": { - "bytesInOutput": 84 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/concat.js": { - "bytesInOutput": 109 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv1d.js": { - "bytesInOutput": 95 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv2d_transpose.js": { - "bytesInOutput": 100 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv2d.js": { - "bytesInOutput": 95 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cos.js": { - "bytesInOutput": 69 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cosh.js": { - "bytesInOutput": 70 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cumsum.js": { - "bytesInOutput": 83 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/depth_to_space.js": { - "bytesInOutput": 85 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/depthwise_conv2d.js": { - "bytesInOutput": 104 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/dilation2d.js": { - "bytesInOutput": 95 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/div_no_nan.js": { - "bytesInOutput": 77 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/div.js": { - "bytesInOutput": 72 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/dot.js": { - "bytesInOutput": 72 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/elu.js": { - "bytesInOutput": 69 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/equal.js": { - "bytesInOutput": 74 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/erf.js": { - "bytesInOutput": 69 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/exp.js": { - "bytesInOutput": 69 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/expand_dims.js": { - "bytesInOutput": 79 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/expm1.js": { - "bytesInOutput": 71 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/fft.js": { - "bytesInOutput": 69 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/flatten.js": { - "bytesInOutput": 84 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/floor.js": { - "bytesInOutput": 71 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/floorDiv.js": { - "bytesInOutput": 77 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/gather.js": { - "bytesInOutput": 79 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/greater_equal.js": { - "bytesInOutput": 81 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/greater.js": { - "bytesInOutput": 76 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ifft.js": { - "bytesInOutput": 70 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/irfft.js": { - "bytesInOutput": 71 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_finite.js": { - "bytesInOutput": 74 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_inf.js": { - "bytesInOutput": 71 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_nan.js": { - "bytesInOutput": 71 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/leaky_relu.js": { - "bytesInOutput": 78 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/less_equal.js": { - "bytesInOutput": 78 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/less.js": { - "bytesInOutput": 73 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/local_response_normalization.js": { - "bytesInOutput": 107 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_sigmoid.js": { - "bytesInOutput": 76 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_softmax.js": { - "bytesInOutput": 79 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_sum_exp.js": { - "bytesInOutput": 82 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log.js": { - "bytesInOutput": 69 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log1p.js": { - "bytesInOutput": 71 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_and.js": { - "bytesInOutput": 79 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_not.js": { - "bytesInOutput": 76 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_or.js": { - "bytesInOutput": 78 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_xor.js": { - "bytesInOutput": 79 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mat_mul.js": { - "bytesInOutput": 83 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/max_pool.js": { - "bytesInOutput": 88 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/max.js": { - "bytesInOutput": 76 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/maximum.js": { - "bytesInOutput": 76 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mean.js": { - "bytesInOutput": 77 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/min.js": { - "bytesInOutput": 76 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/minimum.js": { - "bytesInOutput": 76 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mirror_pad.js": { - "bytesInOutput": 82 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mod.js": { - "bytesInOutput": 72 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mul.js": { - "bytesInOutput": 71 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/neg.js": { - "bytesInOutput": 69 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/norm.js": { - "bytesInOutput": 81 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/not_equal.js": { - "bytesInOutput": 77 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/one_hot.js": { - "bytesInOutput": 87 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ones_like.js": { - "bytesInOutput": 74 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pad.js": { - "bytesInOutput": 76 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pool.js": { - "bytesInOutput": 89 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pow.js": { - "bytesInOutput": 72 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/prelu.js": { - "bytesInOutput": 74 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/prod.js": { - "bytesInOutput": 77 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reciprocal.js": { - "bytesInOutput": 76 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/relu.js": { - "bytesInOutput": 70 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/relu6.js": { - "bytesInOutput": 71 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reshape_as.js": { - "bytesInOutput": 83 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reshape.js": { - "bytesInOutput": 75 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/resize_bilinear.js": { - "bytesInOutput": 91 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/resize_nearest_neighbor.js": { - "bytesInOutput": 98 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reverse.js": { - "bytesInOutput": 76 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/rfft.js": { - "bytesInOutput": 70 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/round.js": { - "bytesInOutput": 71 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/rsqrt.js": { - "bytesInOutput": 71 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/selu.js": { - "bytesInOutput": 70 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/separable_conv2d.js": { - "bytesInOutput": 104 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sigmoid.js": { - "bytesInOutput": 73 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sign.js": { - "bytesInOutput": 70 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sin.js": { - "bytesInOutput": 69 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sinh.js": { - "bytesInOutput": 70 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/slice.js": { - "bytesInOutput": 78 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/softmax.js": { - "bytesInOutput": 76 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/softplus.js": { - "bytesInOutput": 74 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/space_to_batch_nd.js": { - "bytesInOutput": 87 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/split.js": { - "bytesInOutput": 78 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sqrt.js": { - "bytesInOutput": 70 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/square.js": { - "bytesInOutput": 72 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/squared_difference.js": { - "bytesInOutput": 86 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/squeeze.js": { - "bytesInOutput": 76 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/stack.js": { - "bytesInOutput": 116 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/step.js": { - "bytesInOutput": 73 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/strided_slice.js": { - "bytesInOutput": 109 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sub.js": { - "bytesInOutput": 72 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sum.js": { - "bytesInOutput": 76 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tan.js": { - "bytesInOutput": 69 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tanh.js": { - "bytesInOutput": 70 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tile.js": { - "bytesInOutput": 73 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_bool.js": { - "bytesInOutput": 79 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_float.js": { - "bytesInOutput": 83 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_int.js": { - "bytesInOutput": 79 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/topk.js": { - "bytesInOutput": 77 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/transpose.js": { - "bytesInOutput": 78 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unique.js": { - "bytesInOutput": 75 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unsorted_segment_sum.js": { - "bytesInOutput": 91 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unstack.js": { - "bytesInOutput": 76 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/where.js": { - "bytesInOutput": 78 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/zeros_like.js": { - "bytesInOutput": 75 - }, - "node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/register_all_chained_ops.js": { - "bytesInOutput": 0 - }, - "node_modules/@tensorflow/tfjs/dist/index.js": { - "bytesInOutput": 130 - }, - "node_modules/@tensorflow/tfjs-layers/dist/exports_constraints.js": { - "bytesInOutput": 206 - }, - "node_modules/@tensorflow/tfjs-layers/dist/backend/common.js": { - "bytesInOutput": 96 - }, - "node_modules/@tensorflow/tfjs-layers/dist/errors.js": { - "bytesInOutput": 452 - }, - "node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js": { - "bytesInOutput": 3474 - }, - "node_modules/@tensorflow/tfjs-layers/dist/constraints.js": { - "bytesInOutput": 1841 - }, - "node_modules/@tensorflow/tfjs-layers/dist/exports_initializers.js": { - "bytesInOutput": 766 - }, - "node_modules/@tensorflow/tfjs-layers/dist/keras_format/common.js": { - "bytesInOutput": 144 - }, - "node_modules/@tensorflow/tfjs-layers/dist/common.js": { - "bytesInOutput": 706 - }, - "node_modules/@tensorflow/tfjs-layers/dist/utils/math_utils.js": { - "bytesInOutput": 441 - }, - "node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js": { - "bytesInOutput": 4919 - }, - "node_modules/@tensorflow/tfjs-layers/dist/keras_format/initializer_config.js": { - "bytesInOutput": 77 - }, - "node_modules/@tensorflow/tfjs-layers/dist/initializers.js": { - "bytesInOutput": 6267 - }, - "node_modules/@tensorflow/tfjs-layers/dist/exports_layers.js": { - "bytesInOutput": 3496 - }, - "node_modules/@tensorflow/tfjs-layers/dist/backend/state.js": { - "bytesInOutput": 117 - }, - "node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js": { - "bytesInOutput": 430 - }, - "node_modules/@tensorflow/tfjs-layers/dist/utils/variable_utils.js": { - "bytesInOutput": 101 - }, - "node_modules/@tensorflow/tfjs-layers/dist/variables.js": { - "bytesInOutput": 1018 - }, - "node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js": { - "bytesInOutput": 11560 - }, - "node_modules/@tensorflow/tfjs-layers/dist/engine/input_layer.js": { - "bytesInOutput": 1960 - }, - "node_modules/@tensorflow/tfjs-layers/dist/logs.js": { - "bytesInOutput": 332 - }, - "node_modules/@tensorflow/tfjs-layers/dist/base_callbacks.js": { - "bytesInOutput": 4775 - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/serialization.js": { - "bytesInOutput": 91 - }, - "node_modules/@tensorflow/tfjs-layers/dist/losses.js": { - "bytesInOutput": 2411 - }, - "node_modules/@tensorflow/tfjs-layers/dist/metrics.js": { - "bytesInOutput": 1426 - }, - "node_modules/@tensorflow/tfjs-layers/dist/optimizers.js": { - "bytesInOutput": 393 - }, - "node_modules/@tensorflow/tfjs-layers/dist/user_defined_metadata.js": { - "bytesInOutput": 842 - }, - "node_modules/@tensorflow/tfjs-layers/dist/utils/layer_utils.js": { - "bytesInOutput": 1880 - }, - "node_modules/@tensorflow/tfjs-layers/dist/utils/serialization_utils.js": { - "bytesInOutput": 885 - }, - "node_modules/@tensorflow/tfjs-layers/dist/version.js": { - "bytesInOutput": 15 - }, - "node_modules/@tensorflow/tfjs-layers/dist/engine/executor.js": { - "bytesInOutput": 3705 - }, - "node_modules/@tensorflow/tfjs-layers/dist/engine/container.js": { - "bytesInOutput": 12541 - }, - "node_modules/@tensorflow/tfjs-layers/dist/engine/training_utils.js": { - "bytesInOutput": 1678 - }, - "node_modules/@tensorflow/tfjs-layers/dist/engine/training_dataset.js": { - "bytesInOutput": 5966 - }, - "node_modules/@tensorflow/tfjs-layers/dist/engine/training_tensors.js": { - "bytesInOutput": 3802 - }, - "node_modules/@tensorflow/tfjs-layers/dist/engine/training.js": { - "bytesInOutput": 16837 - }, - "node_modules/@tensorflow/tfjs-layers/dist/models.js": { - "bytesInOutput": 7760 - }, - "node_modules/@tensorflow/tfjs-layers/dist/exports.js": { - "bytesInOutput": 193 - }, - "node_modules/@tensorflow/tfjs-layers/dist/activations.js": { - "bytesInOutput": 1600 - }, - "node_modules/@tensorflow/tfjs-layers/dist/regularizers.js": { - "bytesInOutput": 1066 - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/advanced_activations.js": { - "bytesInOutput": 3222 - }, - "node_modules/@tensorflow/tfjs-layers/dist/utils/conv_utils.js": { - "bytesInOutput": 660 - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional.js": { - "bytesInOutput": 15979 - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional_depthwise.js": { - "bytesInOutput": 2350 - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/recurrent.js": { - "bytesInOutput": 21973 - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional_recurrent.js": { - "bytesInOutput": 6609 - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/core.js": { - "bytesInOutput": 7021 - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/embeddings.js": { - "bytesInOutput": 2137 - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/merge.js": { - "bytesInOutput": 8255 - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/noise.js": { - "bytesInOutput": 1536 - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/normalization.js": { - "bytesInOutput": 5936 - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/padding.js": { - "bytesInOutput": 2180 - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/pooling.js": { - "bytesInOutput": 6848 - }, - "node_modules/@tensorflow/tfjs-layers/dist/layers/wrappers.js": { - "bytesInOutput": 6222 - }, - "node_modules/@tensorflow/tfjs-layers/dist/exports_metrics.js": { - "bytesInOutput": 822 - }, - "node_modules/@tensorflow/tfjs-layers/dist/exports_models.js": { - "bytesInOutput": 40 - }, - "node_modules/@tensorflow/tfjs-layers/dist/exports_regularizers.js": { - "bytesInOutput": 139 - }, - "node_modules/@tensorflow/tfjs-layers/dist/index.js": { - "bytesInOutput": 0 - }, - "node_modules/@tensorflow/tfjs-layers/dist/callbacks.js": { - "bytesInOutput": 1695 - }, - "node_modules/@tensorflow/tfjs-converter/dist/data/compiled_api.js": { - "bytesInOutput": 1173 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/register.js": { - "bytesInOutput": 164 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js": { - "bytesInOutput": 1145 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/arithmetic.js": { - "bytesInOutput": 2908 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/basic_math.js": { - "bytesInOutput": 6654 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/control.js": { - "bytesInOutput": 7159 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/convolution.js": { - "bytesInOutput": 6589 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/creation.js": { - "bytesInOutput": 2755 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/dynamic.js": { - "bytesInOutput": 1656 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/evaluation.js": { - "bytesInOutput": 415 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/graph.js": { - "bytesInOutput": 1591 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/hash_table.js": { - "bytesInOutput": 1836 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/image.js": { - "bytesInOutput": 1011 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/logical.js": { - "bytesInOutput": 2058 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/matrices.js": { - "bytesInOutput": 1711 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/normalization.js": { - "bytesInOutput": 2071 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/reduction.js": { - "bytesInOutput": 2118 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/slice_join.js": { - "bytesInOutput": 3407 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/spectral.js": { - "bytesInOutput": 476 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/transformation.js": { - "bytesInOutput": 1956 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/operation_mapper.js": { - "bytesInOutput": 6217 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/node_value_impl.js": { - "bytesInOutput": 970 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/arithmetic_executor.js": { - "bytesInOutput": 751 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/basic_math_executor.js": { - "bytesInOutput": 1762 - }, - "node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_utils.js": { - "bytesInOutput": 923 - }, - "node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_array.js": { - "bytesInOutput": 4188 - }, - "node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_list.js": { - "bytesInOutput": 4744 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/control_executor.js": { - "bytesInOutput": 4753 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/convolution_executor.js": { - "bytesInOutput": 3336 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/creation_executor.js": { - "bytesInOutput": 1047 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/dynamic_executor.js": { - "bytesInOutput": 1136 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/evaluation_executor.js": { - "bytesInOutput": 361 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/graph_executor.js": { - "bytesInOutput": 993 - }, - "node_modules/@tensorflow/tfjs-converter/dist/executor/hash_table.js": { - "bytesInOutput": 1161 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/hash_table_executor.js": { - "bytesInOutput": 587 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/image_executor.js": { - "bytesInOutput": 635 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/logical_executor.js": { - "bytesInOutput": 649 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/matrices_executor.js": { - "bytesInOutput": 831 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/normalization_executor.js": { - "bytesInOutput": 704 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/reduction_executor.js": { - "bytesInOutput": 1139 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/slice_join_executor.js": { - "bytesInOutput": 1817 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/spectral_executor.js": { - "bytesInOutput": 240 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/transformation_executor.js": { - "bytesInOutput": 875 - }, - "node_modules/@tensorflow/tfjs-converter/dist/operations/operation_executor.js": { - "bytesInOutput": 1110 - }, - "node_modules/@tensorflow/tfjs-converter/dist/executor/execution_context.js": { - "bytesInOutput": 2061 - }, - "node_modules/@tensorflow/tfjs-converter/dist/executor/model_analysis.js": { - "bytesInOutput": 1419 - }, - "node_modules/@tensorflow/tfjs-converter/dist/executor/graph_executor.js": { - "bytesInOutput": 7656 - }, - "node_modules/@tensorflow/tfjs-converter/dist/executor/resource_manager.js": { - "bytesInOutput": 506 - }, - "node_modules/@tensorflow/tfjs-converter/dist/executor/graph_model.js": { - "bytesInOutput": 3711 - }, - "node_modules/@tensorflow/tfjs-converter/dist/index.js": { - "bytesInOutput": 0 - }, - "node_modules/@tensorflow/tfjs-converter/dist/version.js": { - "bytesInOutput": 15 - }, - "node_modules/@tensorflow/tfjs-data/dist/index.js": { - "bytesInOutput": 234 - }, - "node_modules/@tensorflow/tfjs-data/dist/dataset.js": { - "bytesInOutput": 3470 - }, - "node_modules/@tensorflow/tfjs-data/dist/iterators/lazy_iterator.js": { - "bytesInOutput": 8089 - }, - "node_modules/@tensorflow/tfjs-data/dist/util/deep_map.js": { - "bytesInOutput": 1589 - }, - "node_modules/@tensorflow/tfjs-data/dist/util/deep_clone.js": { - "bytesInOutput": 149 - }, - "node_modules/@tensorflow/tfjs-data/dist/util/ring_buffer.js": { - "bytesInOutput": 1497 - }, - "node_modules/@tensorflow/tfjs-data/dist/util/growing_ring_buffer.js": { - "bytesInOutput": 428 - }, - "node_modules/@tensorflow/tfjs-data/dist/datasets/text_line_dataset.js": { - "bytesInOutput": 187 - }, - "node_modules/@tensorflow/tfjs-data/dist/datasets/csv_dataset.js": { - "bytesInOutput": 3822 - }, - "node_modules/@tensorflow/tfjs-data/dist/iterators/microphone_iterator.js": { - "bytesInOutput": 3488 - }, - "node_modules/@tensorflow/tfjs-data/dist/iterators/webcam_iterator.js": { - "bytesInOutput": 2989 - }, - "node_modules/@tensorflow/tfjs-data/dist/datasource.js": { - "bytesInOutput": 15 - }, - "node_modules/@tensorflow/tfjs-data/dist/iterators/string_iterator.js": { - "bytesInOutput": 688 - }, - "node_modules/@tensorflow/tfjs-data/dist/iterators/byte_chunk_iterator.js": { - "bytesInOutput": 671 - }, - "node_modules/@tensorflow/tfjs-data/dist/iterators/file_chunk_iterator.js": { - "bytesInOutput": 989 - }, - "node_modules/@tensorflow/tfjs-data/dist/iterators/url_chunk_iterator.js": { - "bytesInOutput": 381 - }, - "node_modules/@tensorflow/tfjs-data/dist/util/source_util.js": { - "bytesInOutput": 68 - }, - "node_modules/@tensorflow/tfjs-data/dist/sources/file_data_source.js": { - "bytesInOutput": 245 - }, - "node_modules/@tensorflow/tfjs-data/dist/sources/url_data_source.js": { - "bytesInOutput": 196 - }, - "node_modules/@tensorflow/tfjs-data/dist/readers.js": { - "bytesInOutput": 259 - }, - "node_modules/@tensorflow/tfjs-data/dist/version.js": { - "bytesInOutput": 15 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js": { - "bytesInOutput": 166 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/backend_cpu.js": { - "bytesInOutput": 2540 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/shared.js": { - "bytesInOutput": 588 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Abs.js": { - "bytesInOutput": 337 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js": { - "bytesInOutput": 579 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Complex.js": { - "bytesInOutput": 355 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/zeros_impl.js": { - "bytesInOutput": 220 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Identity.js": { - "bytesInOutput": 176 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Real.js": { - "bytesInOutput": 228 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cast.js": { - "bytesInOutput": 1026 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js": { - "bytesInOutput": 1950 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Add.js": { - "bytesInOutput": 129 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Bincount_impl.js": { - "bytesInOutput": 498 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_impl.js": { - "bytesInOutput": 126 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js": { - "bytesInOutput": 648 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Ceil.js": { - "bytesInOutput": 91 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Concat_impl.js": { - "bytesInOutput": 368 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Exp.js": { - "bytesInOutput": 90 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Expm1.js": { - "bytesInOutput": 92 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Floor.js": { - "bytesInOutput": 92 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherV2_impl.js": { - "bytesInOutput": 203 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Greater.js": { - "bytesInOutput": 102 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Less.js": { - "bytesInOutput": 102 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LinSpace_impl.js": { - "bytesInOutput": 131 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Log.js": { - "bytesInOutput": 90 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max_impl.js": { - "bytesInOutput": 180 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Maximum.js": { - "bytesInOutput": 96 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Minimum.js": { - "bytesInOutput": 96 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multiply.js": { - "bytesInOutput": 137 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Neg.js": { - "bytesInOutput": 288 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NotEqual.js": { - "bytesInOutput": 104 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose_impl.js": { - "bytesInOutput": 306 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose.js": { - "bytesInOutput": 343 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Prod.js": { - "bytesInOutput": 815 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Range_impl.js": { - "bytesInOutput": 240 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Rsqrt.js": { - "bytesInOutput": 93 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Slice.js": { - "bytesInOutput": 728 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SquaredDifference.js": { - "bytesInOutput": 105 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StridedSlice_impl.js": { - "bytesInOutput": 191 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sub.js": { - "bytesInOutput": 129 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tile_impl.js": { - "bytesInOutput": 289 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/TopK_impl.js": { - "bytesInOutput": 450 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unique_impl.js": { - "bytesInOutput": 687 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/version.js": { - "bytesInOutput": 15 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/base.js": { - "bytesInOutput": 23 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/index.js": { - "bytesInOutput": 0 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Elu.js": { - "bytesInOutput": 89 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LeakyRelu.js": { - "bytesInOutput": 341 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Prelu.js": { - "bytesInOutput": 297 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Relu.js": { - "bytesInOutput": 82 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Relu6.js": { - "bytesInOutput": 94 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/fused_utils.js": { - "bytesInOutput": 436 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js": { - "bytesInOutput": 585 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchMatMul.js": { - "bytesInOutput": 1845 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/_FusedMatMul.js": { - "bytesInOutput": 436 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Acos.js": { - "bytesInOutput": 81 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Acosh.js": { - "bytesInOutput": 82 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AddN.js": { - "bytesInOutput": 323 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/All.js": { - "bytesInOutput": 849 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Any.js": { - "bytesInOutput": 849 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ArgMax.js": { - "bytesInOutput": 746 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ArgMin.js": { - "bytesInOutput": 746 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Asin.js": { - "bytesInOutput": 81 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Asinh.js": { - "bytesInOutput": 82 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atan.js": { - "bytesInOutput": 81 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atan2.js": { - "bytesInOutput": 98 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atanh.js": { - "bytesInOutput": 82 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/pool_utils.js": { - "bytesInOutput": 3613 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool.js": { - "bytesInOutput": 649 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool3D.js": { - "bytesInOutput": 381 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool3DGrad.js": { - "bytesInOutput": 1144 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPoolGrad.js": { - "bytesInOutput": 915 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchNorm.js": { - "bytesInOutput": 1068 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchToSpaceND.js": { - "bytesInOutput": 665 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Bincount.js": { - "bytesInOutput": 260 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Clip.js": { - "bytesInOutput": 155 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ComplexAbs.js": { - "bytesInOutput": 385 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Imag.js": { - "bytesInOutput": 228 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Concat.js": { - "bytesInOutput": 1239 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2D.js": { - "bytesInOutput": 1283 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2DBackpropFilter.js": { - "bytesInOutput": 1105 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2DBackpropInput.js": { - "bytesInOutput": 1359 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3D.js": { - "bytesInOutput": 1303 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3DBackpropFilterV2.js": { - "bytesInOutput": 1366 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3DBackpropInputV2.js": { - "bytesInOutput": 1375 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cos.js": { - "bytesInOutput": 80 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cosh.js": { - "bytesInOutput": 81 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/CropAndResize.js": { - "bytesInOutput": 1619 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cumsum.js": { - "bytesInOutput": 959 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DenseBincount.js": { - "bytesInOutput": 538 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthToSpace.js": { - "bytesInOutput": 685 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNative.js": { - "bytesInOutput": 1315 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNativeBackpropFilter.js": { - "bytesInOutput": 1036 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNativeBackpropInput.js": { - "bytesInOutput": 1199 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Diag.js": { - "bytesInOutput": 307 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2D.js": { - "bytesInOutput": 1096 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2DBackpropFilter.js": { - "bytesInOutput": 1167 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2DBackpropInput.js": { - "bytesInOutput": 1184 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/EluGrad.js": { - "bytesInOutput": 353 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Equal.js": { - "bytesInOutput": 104 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Erf.js": { - "bytesInOutput": 248 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ExpandDims.js": { - "bytesInOutput": 321 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RealDiv.js": { - "bytesInOutput": 86 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/fft_utils.js": { - "bytesInOutput": 4287 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FFT.js": { - "bytesInOutput": 365 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Fill.js": { - "bytesInOutput": 258 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FlipLeftRight.js": { - "bytesInOutput": 511 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FloorDiv.js": { - "bytesInOutput": 111 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FusedConv2D.js": { - "bytesInOutput": 511 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FusedDepthwiseConv2D.js": { - "bytesInOutput": 511 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherNd.js": { - "bytesInOutput": 605 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherV2.js": { - "bytesInOutput": 698 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GreaterEqual.js": { - "bytesInOutput": 103 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IFFT.js": { - "bytesInOutput": 365 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsFinite.js": { - "bytesInOutput": 98 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsInf.js": { - "bytesInOutput": 102 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsNaN.js": { - "bytesInOutput": 95 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LessEqual.js": { - "bytesInOutput": 103 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LinSpace.js": { - "bytesInOutput": 180 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Log1p.js": { - "bytesInOutput": 82 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalAnd.js": { - "bytesInOutput": 99 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalNot.js": { - "bytesInOutput": 81 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalOr.js": { - "bytesInOutput": 99 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LRN.js": { - "bytesInOutput": 488 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LRNGrad.js": { - "bytesInOutput": 599 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max.js": { - "bytesInOutput": 624 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool.js": { - "bytesInOutput": 649 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool3D.js": { - "bytesInOutput": 381 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool3DGrad.js": { - "bytesInOutput": 1192 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolGrad.js": { - "bytesInOutput": 1064 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolWithArgmax_impl.js": { - "bytesInOutput": 116 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolWithArgmax.js": { - "bytesInOutput": 447 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sum.js": { - "bytesInOutput": 955 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Mean.js": { - "bytesInOutput": 536 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Min.js": { - "bytesInOutput": 853 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MirrorPad.js": { - "bytesInOutput": 679 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Mod.js": { - "bytesInOutput": 132 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multinomial.js": { - "bytesInOutput": 687 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Softmax.js": { - "bytesInOutput": 899 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV3.js": { - "bytesInOutput": 397 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV4.js": { - "bytesInOutput": 491 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV5.js": { - "bytesInOutput": 516 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/OneHot.js": { - "bytesInOutput": 368 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ZerosLike.js": { - "bytesInOutput": 615 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/OnesLike.js": { - "bytesInOutput": 614 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Pack.js": { - "bytesInOutput": 598 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/PadV2.js": { - "bytesInOutput": 580 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Pow.js": { - "bytesInOutput": 96 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Range.js": { - "bytesInOutput": 183 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reciprocal.js": { - "bytesInOutput": 72 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeBilinear.js": { - "bytesInOutput": 926 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeBilinearGrad.js": { - "bytesInOutput": 854 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeNearestNeighbor.js": { - "bytesInOutput": 771 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeNearestNeighborGrad.js": { - "bytesInOutput": 1041 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reverse.js": { - "bytesInOutput": 454 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RotateWithOffset.js": { - "bytesInOutput": 746 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Round.js": { - "bytesInOutput": 151 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Scatter_impl.js": { - "bytesInOutput": 405 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ScatterNd.js": { - "bytesInOutput": 338 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Select.js": { - "bytesInOutput": 516 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Selu.js": { - "bytesInOutput": 134 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sigmoid.js": { - "bytesInOutput": 87 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sign.js": { - "bytesInOutput": 83 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sin.js": { - "bytesInOutput": 80 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sinh.js": { - "bytesInOutput": 81 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Softplus.js": { - "bytesInOutput": 185 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SpaceToBatchND.js": { - "bytesInOutput": 714 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseToDense.js": { - "bytesInOutput": 403 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SplitV.js": { - "bytesInOutput": 370 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sqrt.js": { - "bytesInOutput": 81 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Square.js": { - "bytesInOutput": 289 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Step.js": { - "bytesInOutput": 116 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StridedSlice.js": { - "bytesInOutput": 803 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tan.js": { - "bytesInOutput": 80 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tanh.js": { - "bytesInOutput": 81 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tile.js": { - "bytesInOutput": 214 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/TopK.js": { - "bytesInOutput": 302 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unique.js": { - "bytesInOutput": 314 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unpack.js": { - "bytesInOutput": 512 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/UnsortedSegmentSum.js": { - "bytesInOutput": 756 - }, - "node_modules/@tensorflow/tfjs-backend-cpu/dist/register_all_kernels.js": { - "bytesInOutput": 490 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/canvas_util.js": { - "bytesInOutput": 1106 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/tex_util.js": { - "bytesInOutput": 1292 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js": { - "bytesInOutput": 8548 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/flags_webgl.js": { - "bytesInOutput": 2409 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/glsl_version.js": { - "bytesInOutput": 1626 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler_util.js": { - "bytesInOutput": 1318 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/decode_matrix_gpu.js": { - "bytesInOutput": 724 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/decode_matrix_packed_gpu.js": { - "bytesInOutput": 754 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_float_gpu.js": { - "bytesInOutput": 253 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_float_packed_gpu.js": { - "bytesInOutput": 375 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_matrix_gpu.js": { - "bytesInOutput": 885 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_matrix_packed_gpu.js": { - "bytesInOutput": 1439 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_util.js": { - "bytesInOutput": 3256 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_context.js": { - "bytesInOutput": 8972 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js": { - "bytesInOutput": 23775 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_math.js": { - "bytesInOutput": 2637 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js": { - "bytesInOutput": 412 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/packing_util.js": { - "bytesInOutput": 221 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/pack_gpu.js": { - "bytesInOutput": 1366 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/reshape_packed_gpu.js": { - "bytesInOutput": 1056 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/texture_manager.js": { - "bytesInOutput": 3665 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js": { - "bytesInOutput": 501 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_packed_gpu.js": { - "bytesInOutput": 1132 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/unpack_gpu.js": { - "bytesInOutput": 388 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/backend_webgl.js": { - "bytesInOutput": 14521 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/version.js": { - "bytesInOutput": 15 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/base.js": { - "bytesInOutput": 41 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/index.js": { - "bytesInOutput": 0 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_gpu.js": { - "bytesInOutput": 413 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_packed_gpu.js": { - "bytesInOutput": 1491 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Identity.js": { - "bytesInOutput": 178 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Complex.js": { - "bytesInOutput": 290 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LeakyRelu.js": { - "bytesInOutput": 542 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Prelu.js": { - "bytesInOutput": 425 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js": { - "bytesInOutput": 2028 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/mulmat_packed_gpu.js": { - "bytesInOutput": 1738 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_complex_gpu.js": { - "bytesInOutput": 642 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Multiply.js": { - "bytesInOutput": 1233 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reshape.js": { - "bytesInOutput": 222 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js": { - "bytesInOutput": 559 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/mean_gpu.js": { - "bytesInOutput": 1623 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/reduce_gpu.js": { - "bytesInOutput": 2949 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reduce.js": { - "bytesInOutput": 638 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/transpose_gpu.js": { - "bytesInOutput": 538 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/transpose_packed_gpu.js": { - "bytesInOutput": 899 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose_impl.js": { - "bytesInOutput": 144 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sum_impl.js": { - "bytesInOutput": 600 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sum.js": { - "bytesInOutput": 155 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose.js": { - "bytesInOutput": 405 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchMatMul_impl.js": { - "bytesInOutput": 1978 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/_FusedMatMul.js": { - "bytesInOutput": 329 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Abs.js": { - "bytesInOutput": 402 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Acos.js": { - "bytesInOutput": 148 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Acosh.js": { - "bytesInOutput": 150 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Add.js": { - "bytesInOutput": 153 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/addn_gpu.js": { - "bytesInOutput": 391 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/addn_packed_gpu.js": { - "bytesInOutput": 431 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AddN.js": { - "bytesInOutput": 518 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/All.js": { - "bytesInOutput": 758 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Any.js": { - "bytesInOutput": 758 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/argminmax_gpu.js": { - "bytesInOutput": 821 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/argminmax_packed_gpu.js": { - "bytesInOutput": 3185 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/arg_min_max.js": { - "bytesInOutput": 1118 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ArgMax.js": { - "bytesInOutput": 462 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ArgMin.js": { - "bytesInOutput": 462 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Asin.js": { - "bytesInOutput": 148 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Asinh.js": { - "bytesInOutput": 122 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atan.js": { - "bytesInOutput": 107 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atan2.js": { - "bytesInOutput": 254 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atanh.js": { - "bytesInOutput": 175 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/pool_gpu.js": { - "bytesInOutput": 10264 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool.js": { - "bytesInOutput": 563 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool3D.js": { - "bytesInOutput": 294 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/avg_pool_backprop_gpu.js": { - "bytesInOutput": 3558 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool3DGrad.js": { - "bytesInOutput": 281 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPoolGrad.js": { - "bytesInOutput": 278 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchMatMul.js": { - "bytesInOutput": 205 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/batchnorm_gpu.js": { - "bytesInOutput": 794 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/batchnorm_packed_gpu.js": { - "bytesInOutput": 803 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchNorm.js": { - "bytesInOutput": 828 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/slice_gpu.js": { - "bytesInOutput": 934 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/slice_packed_gpu.js": { - "bytesInOutput": 1481 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Slice.js": { - "bytesInOutput": 1101 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchToSpaceND.js": { - "bytesInOutput": 717 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Bincount.js": { - "bytesInOutput": 248 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NotEqual.js": { - "bytesInOutput": 119 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Real.js": { - "bytesInOutput": 196 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/int.js": { - "bytesInOutput": 160 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cast.js": { - "bytesInOutput": 909 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Ceil.js": { - "bytesInOutput": 136 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/clip_gpu.js": { - "bytesInOutput": 580 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/clip_packed_gpu.js": { - "bytesInOutput": 639 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ClipByValue.js": { - "bytesInOutput": 291 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/complex_abs_gpu.js": { - "bytesInOutput": 538 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ComplexAbs.js": { - "bytesInOutput": 328 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/concat_gpu.js": { - "bytesInOutput": 639 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/concat_packed_gpu.js": { - "bytesInOutput": 1568 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Imag.js": { - "bytesInOutput": 196 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Concat_impl.js": { - "bytesInOutput": 1445 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Concat.js": { - "bytesInOutput": 433 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu.js": { - "bytesInOutput": 7879 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/im2col_packed_gpu.js": { - "bytesInOutput": 1645 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2D_impl.js": { - "bytesInOutput": 2528 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2D.js": { - "bytesInOutput": 752 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu.js": { - "bytesInOutput": 6539 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2DBackpropFilter.js": { - "bytesInOutput": 317 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2DBackpropInput.js": { - "bytesInOutput": 321 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3D.js": { - "bytesInOutput": 256 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3DBackpropFilterV2.js": { - "bytesInOutput": 248 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3DBackpropInputV2.js": { - "bytesInOutput": 252 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cos.js": { - "bytesInOutput": 106 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cosh.js": { - "bytesInOutput": 143 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/crop_and_resize_gpu.js": { - "bytesInOutput": 2552 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/CropAndResize.js": { - "bytesInOutput": 251 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/cumsum_gpu.js": { - "bytesInOutput": 1196 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cumsum.js": { - "bytesInOutput": 912 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DenseBincount.js": { - "bytesInOutput": 526 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/depth_to_space_gpu.js": { - "bytesInOutput": 1148 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthToSpace.js": { - "bytesInOutput": 452 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu_depthwise.js": { - "bytesInOutput": 2100 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_packed_gpu_depthwise.js": { - "bytesInOutput": 6440 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNative.js": { - "bytesInOutput": 566 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu_depthwise.js": { - "bytesInOutput": 2653 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNativeBackpropFilter.js": { - "bytesInOutput": 283 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNativeBackpropInput.js": { - "bytesInOutput": 287 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/diag_gpu.js": { - "bytesInOutput": 268 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Diag.js": { - "bytesInOutput": 381 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/dilation_gpu.js": { - "bytesInOutput": 1295 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Dilation2D.js": { - "bytesInOutput": 368 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Elu.js": { - "bytesInOutput": 392 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/EluGrad.js": { - "bytesInOutput": 428 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Equal.js": { - "bytesInOutput": 173 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Erf.js": { - "bytesInOutput": 586 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Exp.js": { - "bytesInOutput": 135 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ExpandDims.js": { - "bytesInOutput": 323 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Expm1.js": { - "bytesInOutput": 141 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/fft_gpu.js": { - "bytesInOutput": 1296 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FFT_impl.js": { - "bytesInOutput": 710 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FFT.js": { - "bytesInOutput": 128 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/fill_gpu.js": { - "bytesInOutput": 397 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Fill.js": { - "bytesInOutput": 341 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/flip_left_right_gpu.js": { - "bytesInOutput": 566 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FlipLeftRight.js": { - "bytesInOutput": 157 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Floor.js": { - "bytesInOutput": 137 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FloorDiv.js": { - "bytesInOutput": 852 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/from_pixels_gpu.js": { - "bytesInOutput": 708 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/from_pixels_packed_gpu.js": { - "bytesInOutput": 1080 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels.js": { - "bytesInOutput": 818 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FusedConv2D.js": { - "bytesInOutput": 1157 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FusedDepthwiseConv2D.js": { - "bytesInOutput": 895 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/gather_nd_gpu.js": { - "bytesInOutput": 590 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GatherNd.js": { - "bytesInOutput": 528 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/gather_gpu.js": { - "bytesInOutput": 437 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GatherV2.js": { - "bytesInOutput": 908 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Greater.js": { - "bytesInOutput": 195 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GreaterEqual.js": { - "bytesInOutput": 184 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IFFT.js": { - "bytesInOutput": 128 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsFinite.js": { - "bytesInOutput": 135 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsInf.js": { - "bytesInOutput": 121 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsNaN.js": { - "bytesInOutput": 121 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Less.js": { - "bytesInOutput": 192 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LessEqual.js": { - "bytesInOutput": 181 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LinSpace.js": { - "bytesInOutput": 182 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Log.js": { - "bytesInOutput": 440 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Log1p.js": { - "bytesInOutput": 105 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalAnd.js": { - "bytesInOutput": 260 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalNot.js": { - "bytesInOutput": 111 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalOr.js": { - "bytesInOutput": 274 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_gpu.js": { - "bytesInOutput": 766 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_packed_gpu.js": { - "bytesInOutput": 2505 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LRN.js": { - "bytesInOutput": 277 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_grad_gpu.js": { - "bytesInOutput": 1821 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LRNGrad.js": { - "bytesInOutput": 226 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Max_impl.js": { - "bytesInOutput": 276 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Max.js": { - "bytesInOutput": 882 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Maximum.js": { - "bytesInOutput": 275 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool.js": { - "bytesInOutput": 561 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool3D.js": { - "bytesInOutput": 292 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/max_pool_backprop_gpu.js": { - "bytesInOutput": 4026 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool3DGrad.js": { - "bytesInOutput": 378 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolGrad.js": { - "bytesInOutput": 408 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolWithArgmax_impl.js": { - "bytesInOutput": 162 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolWithArgmax.js": { - "bytesInOutput": 498 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mean_impl.js": { - "bytesInOutput": 279 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mean.js": { - "bytesInOutput": 728 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Min.js": { - "bytesInOutput": 771 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Minimum.js": { - "bytesInOutput": 275 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/mirror_pad_gpu.js": { - "bytesInOutput": 1115 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/mirror_pad_packed_gpu.js": { - "bytesInOutput": 2012 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MirrorPad.js": { - "bytesInOutput": 252 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mod.js": { - "bytesInOutput": 251 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/multinomial_gpu.js": { - "bytesInOutput": 705 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RealDiv.js": { - "bytesInOutput": 465 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sub.js": { - "bytesInOutput": 153 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Softmax.js": { - "bytesInOutput": 739 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Multinomial.js": { - "bytesInOutput": 377 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Neg.js": { - "bytesInOutput": 389 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV3.js": { - "bytesInOutput": 459 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV4.js": { - "bytesInOutput": 547 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV5.js": { - "bytesInOutput": 569 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/onehot_gpu.js": { - "bytesInOutput": 329 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/OneHot.js": { - "bytesInOutput": 422 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ZerosLike.js": { - "bytesInOutput": 552 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/OnesLike.js": { - "bytesInOutput": 616 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Pack.js": { - "bytesInOutput": 600 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/pad_gpu.js": { - "bytesInOutput": 933 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/pad_packed_gpu.js": { - "bytesInOutput": 1181 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/PadV2.js": { - "bytesInOutput": 263 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Pow.js": { - "bytesInOutput": 940 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Prod.js": { - "bytesInOutput": 909 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Range.js": { - "bytesInOutput": 178 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reciprocal.js": { - "bytesInOutput": 100 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Relu.js": { - "bytesInOutput": 404 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Relu6.js": { - "bytesInOutput": 429 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_gpu.js": { - "bytesInOutput": 1520 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_packed_gpu.js": { - "bytesInOutput": 3411 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeBilinear.js": { - "bytesInOutput": 307 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_backprop_gpu.js": { - "bytesInOutput": 2959 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeBilinearGrad.js": { - "bytesInOutput": 211 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_nearest_neighbor_gpu.js": { - "bytesInOutput": 1026 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeNearestNeighbor.js": { - "bytesInOutput": 238 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_nearest_neighbor_backprop_gpu.js": { - "bytesInOutput": 2470 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeNearestNeighborGrad.js": { - "bytesInOutput": 211 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/reverse_gpu.js": { - "bytesInOutput": 585 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/reverse_packed_gpu.js": { - "bytesInOutput": 1562 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reverse.js": { - "bytesInOutput": 342 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/rotate_gpu.js": { - "bytesInOutput": 1036 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RotateWithOffset.js": { - "bytesInOutput": 206 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Round.js": { - "bytesInOutput": 420 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Rsqrt.js": { - "bytesInOutput": 124 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/scatter_gpu.js": { - "bytesInOutput": 918 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ScatterNd.js": { - "bytesInOutput": 727 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/select_gpu.js": { - "bytesInOutput": 594 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Select.js": { - "bytesInOutput": 226 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Selu.js": { - "bytesInOutput": 338 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sigmoid.js": { - "bytesInOutput": 120 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sign.js": { - "bytesInOutput": 136 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sin.js": { - "bytesInOutput": 106 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sinh.js": { - "bytesInOutput": 142 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Softplus.js": { - "bytesInOutput": 424 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SpaceToBatchND.js": { - "bytesInOutput": 757 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SparseToDense.js": { - "bytesInOutput": 438 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SplitV.js": { - "bytesInOutput": 376 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sqrt.js": { - "bytesInOutput": 100 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Square.js": { - "bytesInOutput": 98 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SquaredDifference.js": { - "bytesInOutput": 129 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Step.js": { - "bytesInOutput": 227 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/strided_slice_gpu.js": { - "bytesInOutput": 497 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/StridedSlice.js": { - "bytesInOutput": 904 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tan.js": { - "bytesInOutput": 99 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tanh.js": { - "bytesInOutput": 166 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/tile_gpu.js": { - "bytesInOutput": 581 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tile.js": { - "bytesInOutput": 349 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/TopK.js": { - "bytesInOutput": 280 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Unique.js": { - "bytesInOutput": 396 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Unpack.js": { - "bytesInOutput": 551 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/segment_gpu.js": { - "bytesInOutput": 3184 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/UnsortedSegmentSum.js": { - "bytesInOutput": 1097 - }, - "node_modules/@tensorflow/tfjs-backend-webgl/dist/register_all_kernels.js": { - "bytesInOutput": 487 - }, - "node_modules/@tensorflow/tfjs/dist/version.js": { - "bytesInOutput": 15 - }, - "src/tfjs/tf-browser.ts": { - "bytesInOutput": 0 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/types.js": { - "bytesInOutput": 300 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/_FusedMatMul.js": { - "bytesInOutput": 1193 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/unary_kernel.js": { - "bytesInOutput": 327 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Abs.js": { - "bytesInOutput": 14 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/binary_kernel.js": { - "bytesInOutput": 897 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Add.js": { - "bytesInOutput": 23 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/AddN.js": { - "bytesInOutput": 430 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Identity.js": { - "bytesInOutput": 199 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Transpose.js": { - "bytesInOutput": 992 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/kernel_utils.js": { - "bytesInOutput": 408 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ArgMax.js": { - "bytesInOutput": 567 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/AvgPool.js": { - "bytesInOutput": 1029 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Reshape.js": { - "bytesInOutput": 390 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/BatchMatMul.js": { - "bytesInOutput": 1655 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Cast.js": { - "bytesInOutput": 209 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Ceil.js": { - "bytesInOutput": 14 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ClipByValue.js": { - "bytesInOutput": 360 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Concat.js": { - "bytesInOutput": 1165 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Conv2D.js": { - "bytesInOutput": 1093 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Conv2DBackpropInput.js": { - "bytesInOutput": 1188 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Cos.js": { - "bytesInOutput": 14 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/CropAndResize.js": { - "bytesInOutput": 846 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Cumsum.js": { - "bytesInOutput": 874 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/DepthToSpace.js": { - "bytesInOutput": 862 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/DepthwiseConv2dNative.js": { - "bytesInOutput": 1080 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Equal.js": { - "bytesInOutput": 30 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Exp.js": { - "bytesInOutput": 14 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ExpandDims.js": { - "bytesInOutput": 322 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Fill.js": { - "bytesInOutput": 181 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/FlipLeftRight.js": { - "bytesInOutput": 362 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Floor.js": { - "bytesInOutput": 14 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/FloorDiv.js": { - "bytesInOutput": 23 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/FusedBatchNorm.js": { - "bytesInOutput": 605 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/FusedConv2D.js": { - "bytesInOutput": 1611 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/FusedDepthwiseConv2D.js": { - "bytesInOutput": 1650 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/GatherNd.js": { - "bytesInOutput": 539 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/GatherV2.js": { - "bytesInOutput": 1045 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Greater.js": { - "bytesInOutput": 30 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/GreaterEqual.js": { - "bytesInOutput": 30 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/LeakyRelu.js": { - "bytesInOutput": 356 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Less.js": { - "bytesInOutput": 30 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/LessEqual.js": { - "bytesInOutput": 30 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Log.js": { - "bytesInOutput": 14 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/LogicalAnd.js": { - "bytesInOutput": 30 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Max.js": { - "bytesInOutput": 712 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Maximum.js": { - "bytesInOutput": 23 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/MaxPool.js": { - "bytesInOutput": 938 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Mean.js": { - "bytesInOutput": 920 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Min.js": { - "bytesInOutput": 713 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Minimum.js": { - "bytesInOutput": 23 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Multiply.js": { - "bytesInOutput": 23 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Neg.js": { - "bytesInOutput": 14 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/NonMaxSuppression_util.js": { - "bytesInOutput": 185 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/NonMaxSuppressionV3.js": { - "bytesInOutput": 512 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/NonMaxSuppressionV4.js": { - "bytesInOutput": 566 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/NonMaxSuppressionV5.js": { - "bytesInOutput": 565 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/NotEqual.js": { - "bytesInOutput": 30 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/OneHot.js": { - "bytesInOutput": 383 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/OnesLike.js": { - "bytesInOutput": 174 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Pack.js": { - "bytesInOutput": 588 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/PadV2.js": { - "bytesInOutput": 613 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Pow.js": { - "bytesInOutput": 23 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Prelu.js": { - "bytesInOutput": 348 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Prod.js": { - "bytesInOutput": 779 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Range.js": { - "bytesInOutput": 206 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/RealDiv.js": { - "bytesInOutput": 23 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Relu.js": { - "bytesInOutput": 14 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Relu6.js": { - "bytesInOutput": 14 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ResizeBilinear.js": { - "bytesInOutput": 678 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Reverse.js": { - "bytesInOutput": 642 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/RotateWithOffset.js": { - "bytesInOutput": 597 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Round.js": { - "bytesInOutput": 14 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Rsqrt.js": { - "bytesInOutput": 14 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ScatterNd.js": { - "bytesInOutput": 612 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Select.js": { - "bytesInOutput": 505 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Sigmoid.js": { - "bytesInOutput": 329 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Sin.js": { - "bytesInOutput": 14 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Slice.js": { - "bytesInOutput": 1262 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Softmax.js": { - "bytesInOutput": 405 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/SplitV.js": { - "bytesInOutput": 371 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Sqrt.js": { - "bytesInOutput": 14 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Square.js": { - "bytesInOutput": 14 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/SquaredDifference.js": { - "bytesInOutput": 23 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Step.js": { - "bytesInOutput": 327 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/StridedSlice.js": { - "bytesInOutput": 1874 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Sub.js": { - "bytesInOutput": 23 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Sum.js": { - "bytesInOutput": 755 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Tanh.js": { - "bytesInOutput": 14 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Tile.js": { - "bytesInOutput": 555 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/TopK.js": { - "bytesInOutput": 540 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Unpack.js": { - "bytesInOutput": 478 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ZerosLike.js": { - "bytesInOutput": 174 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/register_all_kernels.js": { - "bytesInOutput": 292 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/flags_wasm.js": { - "bytesInOutput": 484 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/backend_wasm.js": { - "bytesInOutput": 4763 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js": { - "bytesInOutput": 3145 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/version.js": { - "bytesInOutput": 16 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/base.js": { - "bytesInOutput": 76 - }, - "node_modules/@tensorflow/tfjs-backend-wasm/dist/index.js": { - "bytesInOutput": 0 - } - }, - "bytes": 1047769 - } - } -} diff --git a/package-lock.json b/package-lock.json index 643b7db..b1899b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,10 +9,10 @@ "version": "1.0.1", "license": "MIT", "devDependencies": { - "@tensorflow/tfjs": "^3.2.0", - "@tensorflow/tfjs-backend-wasm": "^3.2.0", - "@tensorflow/tfjs-node": "^3.2.0", - "@tensorflow/tfjs-node-gpu": "^3.2.0", + "@tensorflow/tfjs": "^3.3.0", + "@tensorflow/tfjs-backend-wasm": "^3.3.0", + "@tensorflow/tfjs-node": "^3.3.0", + "@tensorflow/tfjs-node-gpu": "^3.3.0", "@types/node": "^14.14.33", "@typescript-eslint/eslint-plugin": "^4.17.0", "@typescript-eslint/parser": "^4.17.0", @@ -194,17 +194,17 @@ } }, "node_modules/@tensorflow/tfjs": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-3.2.0.tgz", - "integrity": "sha512-rgcHHhzI+JVl206eMbYO8WzBW3DO9pinEbgtUWdxjfk+a4ojlqvJ34RPEISMSQZRR5KRCA7E/dHFv9+EULfqmw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-3.3.0.tgz", + "integrity": "sha512-xo22GCUCGcPtNGIdDpLPrp9ms3atXmzX8AF4y3aIBEwK5KlvGe+ZhcoQ2xEOCPQGBr7NB7AO6rwT8gRoziAHVg==", "dev": true, "dependencies": { - "@tensorflow/tfjs-backend-cpu": "3.2.0", - "@tensorflow/tfjs-backend-webgl": "3.2.0", - "@tensorflow/tfjs-converter": "3.2.0", - "@tensorflow/tfjs-core": "3.2.0", - "@tensorflow/tfjs-data": "3.2.0", - "@tensorflow/tfjs-layers": "3.2.0", + "@tensorflow/tfjs-backend-cpu": "3.3.0", + "@tensorflow/tfjs-backend-webgl": "3.3.0", + "@tensorflow/tfjs-converter": "3.3.0", + "@tensorflow/tfjs-core": "3.3.0", + "@tensorflow/tfjs-data": "3.3.0", + "@tensorflow/tfjs-layers": "3.3.0", "argparse": "^1.0.10", "chalk": "^4.1.0", "core-js": "3", @@ -216,9 +216,9 @@ } }, "node_modules/@tensorflow/tfjs-backend-cpu": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.2.0.tgz", - "integrity": "sha512-L3Pp7FHO92BaeG8Uuc/RJMJ/e61UrIbKgFHS3MKr0zcbmEsqGfos6/5yR1EHj7SoYG2nPlC5+6HxbYy0zp22IA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.3.0.tgz", + "integrity": "sha512-DLctv+PUZni26kQW1hq8jwQQ8u+GGc/p764WQIC4/IDagGtfGAUW1mHzWcTxtni2l4re1VrwE41ogWLhv4sGHg==", "dev": true, "dependencies": { "@types/seedrandom": "2.4.27", @@ -228,7 +228,7 @@ "yarn": ">= 1.3.2" }, "peerDependencies": { - "@tensorflow/tfjs-core": "3.2.0" + "@tensorflow/tfjs-core": "3.3.0" } }, "node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom": { @@ -238,25 +238,25 @@ "dev": true }, "node_modules/@tensorflow/tfjs-backend-wasm": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-wasm/-/tfjs-backend-wasm-3.2.0.tgz", - "integrity": "sha512-gXxhJWRCmkcwSNatG7eGrmHKmjJC/AxvQdToHymkp1KtRazrsMWFrROoj1HuHwK1hCZyGa90ldmXlY9QdzFkuQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-wasm/-/tfjs-backend-wasm-3.3.0.tgz", + "integrity": "sha512-1mU3+GuCc0tPzG65qIVwlJoIOyOOvVVkNl1NsId7PTt/PwE/QwiofsCmfPDqH47rTMxBzhvnHZTi+Nj9VBaz1g==", "dev": true, "dependencies": { - "@tensorflow/tfjs-backend-cpu": "3.2.0", + "@tensorflow/tfjs-backend-cpu": "3.3.0", "@types/emscripten": "~0.0.34" }, "peerDependencies": { - "@tensorflow/tfjs-core": "3.2.0" + "@tensorflow/tfjs-core": "3.3.0" } }, "node_modules/@tensorflow/tfjs-backend-webgl": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.2.0.tgz", - "integrity": "sha512-WORXpDt5Ey5/+a4NioyrJkfbJUlleaSELpHnxeDsGt6BpRC2P/1pVJS1IjnBD/f4QlOm3mhouN2Oq28dRhRvqA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.3.0.tgz", + "integrity": "sha512-GWCtXbrjPTyye3ooId9GlcNDwnIMskZarUpNIQ5g/zeISLfwEQoutA/UqJF+HzuEHgGMsWFkmaO3xKVT7UMpdg==", "dev": true, "dependencies": { - "@tensorflow/tfjs-backend-cpu": "3.2.0", + "@tensorflow/tfjs-backend-cpu": "3.3.0", "@types/offscreencanvas": "~2019.3.0", "@types/seedrandom": "2.4.27", "@types/webgl-ext": "0.0.30", @@ -267,7 +267,7 @@ "yarn": ">= 1.3.2" }, "peerDependencies": { - "@tensorflow/tfjs-core": "3.2.0" + "@tensorflow/tfjs-core": "3.3.0" } }, "node_modules/@tensorflow/tfjs-backend-webgl/node_modules/seedrandom": { @@ -277,18 +277,18 @@ "dev": true }, "node_modules/@tensorflow/tfjs-converter": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-3.2.0.tgz", - "integrity": "sha512-iE2Q0naHR8OVcMc9RluebMObsPysru7X1y+mWtkPNnYlNUJORxfkEitrMbVDAKw6lsivIfo4Ar5UcstiG8/ckQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-3.3.0.tgz", + "integrity": "sha512-k57wN4yelePhmO9orcT/wzGMIuyedrMpVtg0FhxpV6BQu0+TZ/ti3W4Kb97GWJsoHKXMoing9SnioKfVnBW6hw==", "dev": true, "peerDependencies": { - "@tensorflow/tfjs-core": "3.2.0" + "@tensorflow/tfjs-core": "3.3.0" } }, "node_modules/@tensorflow/tfjs-core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-3.2.0.tgz", - "integrity": "sha512-MZnTk9wcJai5lTfkC8T1rr6/M9C4eO0DfojZghopZXDflCTndLPIKcudx6E8qfrmZOkRSqMIwB7A8UFs7f+3Kg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-3.3.0.tgz", + "integrity": "sha512-6G+LcCiQBl4Kza5mDbWbf8QSWBTW3l7SDjGhQzMO1ITtQatHzxkuHGHcJ4CTUJvNA0JmKf4QJWOvlFqEmxwyLQ==", "dev": true, "dependencies": { "@types/offscreencanvas": "~2019.3.0", @@ -308,36 +308,36 @@ "dev": true }, "node_modules/@tensorflow/tfjs-data": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-3.2.0.tgz", - "integrity": "sha512-fG4rYJlxh/B9fzgc+/qdj5gPI485RsDUM99mErxovlh3UMIdRgMeHHdFse44VlyAShEAgsOehuWovhY5520kEw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-3.3.0.tgz", + "integrity": "sha512-0x28tRe6RJu5GmYq3IYN2GNnOgXU0nY+o6zZrlijkK+W3vjSTJlZzaBSifoeD6J8gzVpjs8W8qd/JKHQ1MQp8w==", "dev": true, "dependencies": { "@types/node-fetch": "^2.1.2", "node-fetch": "~2.6.1" }, "peerDependencies": { - "@tensorflow/tfjs-core": "3.2.0", + "@tensorflow/tfjs-core": "3.3.0", "seedrandom": "~2.4.3" } }, "node_modules/@tensorflow/tfjs-layers": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-3.2.0.tgz", - "integrity": "sha512-TgTpH6RI+NmL4s8pQ76wkq15p79SfSQLOfFL2rGmJgatQRuA/mxLlH5GLir5HwwER3a0Vj8lMbexxCAGTqr2Xg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-3.3.0.tgz", + "integrity": "sha512-qO+TL2I29vWUiuFcQJXNyayWFYagwR+SIfbex8p5jjYaCGHGwE5GQcrH+ngoCgKZxm5tdMvYJsJPnih2M3fYzQ==", "dev": true, "peerDependencies": { - "@tensorflow/tfjs-core": "3.2.0" + "@tensorflow/tfjs-core": "3.3.0" } }, "node_modules/@tensorflow/tfjs-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-node/-/tfjs-node-3.2.0.tgz", - "integrity": "sha512-4k8HvT+lFauy30EMoKhLvXykQ4xKfi5yTs0EdWue80z9XNNDIMG3932owBpWMeaRb5P0ONUuv9MSu+pi17rNnA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-node/-/tfjs-node-3.3.0.tgz", + "integrity": "sha512-grRgaXereQt5mQnu31gHCPkzA6SGReXW94b5FEMk1Psenmb0APnT7MGgZbujiMruQ81vG0/8gYA28uyZeZKcJw==", "dev": true, "hasInstallScript": true, "dependencies": { - "@tensorflow/tfjs": "3.2.0", + "@tensorflow/tfjs": "3.3.0", "adm-zip": "^0.4.11", "google-protobuf": "^3.9.2", "https-proxy-agent": "^2.2.1", @@ -351,13 +351,13 @@ } }, "node_modules/@tensorflow/tfjs-node-gpu": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-node-gpu/-/tfjs-node-gpu-3.2.0.tgz", - "integrity": "sha512-zAQPT9RwA5KOFFtkRzUGXE+9loJeJWbxkw2OnIPdB8+18c8s6/ICsHpN9nYLhelR+9wl877aaN4wQVR5T7iQDw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-node-gpu/-/tfjs-node-gpu-3.3.0.tgz", + "integrity": "sha512-a641ugrLvVjz2p0eGD0V+jyh9mtxrUSxVvX+aH2aQvOnz4BTFv/zOlPPCI/7D8zIiLBzSJCXMB5DdI3qg92n8Q==", "dev": true, "hasInstallScript": true, "dependencies": { - "@tensorflow/tfjs": "3.2.0", + "@tensorflow/tfjs": "3.3.0", "adm-zip": "^0.4.11", "google-protobuf": "^3.9.2", "https-proxy-agent": "^2.2.1", @@ -4044,17 +4044,17 @@ } }, "@tensorflow/tfjs": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-3.2.0.tgz", - "integrity": "sha512-rgcHHhzI+JVl206eMbYO8WzBW3DO9pinEbgtUWdxjfk+a4ojlqvJ34RPEISMSQZRR5KRCA7E/dHFv9+EULfqmw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-3.3.0.tgz", + "integrity": "sha512-xo22GCUCGcPtNGIdDpLPrp9ms3atXmzX8AF4y3aIBEwK5KlvGe+ZhcoQ2xEOCPQGBr7NB7AO6rwT8gRoziAHVg==", "dev": true, "requires": { - "@tensorflow/tfjs-backend-cpu": "3.2.0", - "@tensorflow/tfjs-backend-webgl": "3.2.0", - "@tensorflow/tfjs-converter": "3.2.0", - "@tensorflow/tfjs-core": "3.2.0", - "@tensorflow/tfjs-data": "3.2.0", - "@tensorflow/tfjs-layers": "3.2.0", + "@tensorflow/tfjs-backend-cpu": "3.3.0", + "@tensorflow/tfjs-backend-webgl": "3.3.0", + "@tensorflow/tfjs-converter": "3.3.0", + "@tensorflow/tfjs-core": "3.3.0", + "@tensorflow/tfjs-data": "3.3.0", + "@tensorflow/tfjs-layers": "3.3.0", "argparse": "^1.0.10", "chalk": "^4.1.0", "core-js": "3", @@ -4063,9 +4063,9 @@ } }, "@tensorflow/tfjs-backend-cpu": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.2.0.tgz", - "integrity": "sha512-L3Pp7FHO92BaeG8Uuc/RJMJ/e61UrIbKgFHS3MKr0zcbmEsqGfos6/5yR1EHj7SoYG2nPlC5+6HxbYy0zp22IA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.3.0.tgz", + "integrity": "sha512-DLctv+PUZni26kQW1hq8jwQQ8u+GGc/p764WQIC4/IDagGtfGAUW1mHzWcTxtni2l4re1VrwE41ogWLhv4sGHg==", "dev": true, "requires": { "@types/seedrandom": "2.4.27", @@ -4081,22 +4081,22 @@ } }, "@tensorflow/tfjs-backend-wasm": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-wasm/-/tfjs-backend-wasm-3.2.0.tgz", - "integrity": "sha512-gXxhJWRCmkcwSNatG7eGrmHKmjJC/AxvQdToHymkp1KtRazrsMWFrROoj1HuHwK1hCZyGa90ldmXlY9QdzFkuQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-wasm/-/tfjs-backend-wasm-3.3.0.tgz", + "integrity": "sha512-1mU3+GuCc0tPzG65qIVwlJoIOyOOvVVkNl1NsId7PTt/PwE/QwiofsCmfPDqH47rTMxBzhvnHZTi+Nj9VBaz1g==", "dev": true, "requires": { - "@tensorflow/tfjs-backend-cpu": "3.2.0", + "@tensorflow/tfjs-backend-cpu": "3.3.0", "@types/emscripten": "~0.0.34" } }, "@tensorflow/tfjs-backend-webgl": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.2.0.tgz", - "integrity": "sha512-WORXpDt5Ey5/+a4NioyrJkfbJUlleaSELpHnxeDsGt6BpRC2P/1pVJS1IjnBD/f4QlOm3mhouN2Oq28dRhRvqA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.3.0.tgz", + "integrity": "sha512-GWCtXbrjPTyye3ooId9GlcNDwnIMskZarUpNIQ5g/zeISLfwEQoutA/UqJF+HzuEHgGMsWFkmaO3xKVT7UMpdg==", "dev": true, "requires": { - "@tensorflow/tfjs-backend-cpu": "3.2.0", + "@tensorflow/tfjs-backend-cpu": "3.3.0", "@types/offscreencanvas": "~2019.3.0", "@types/seedrandom": "2.4.27", "@types/webgl-ext": "0.0.30", @@ -4113,16 +4113,16 @@ } }, "@tensorflow/tfjs-converter": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-3.2.0.tgz", - "integrity": "sha512-iE2Q0naHR8OVcMc9RluebMObsPysru7X1y+mWtkPNnYlNUJORxfkEitrMbVDAKw6lsivIfo4Ar5UcstiG8/ckQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-3.3.0.tgz", + "integrity": "sha512-k57wN4yelePhmO9orcT/wzGMIuyedrMpVtg0FhxpV6BQu0+TZ/ti3W4Kb97GWJsoHKXMoing9SnioKfVnBW6hw==", "dev": true, "requires": {} }, "@tensorflow/tfjs-core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-3.2.0.tgz", - "integrity": "sha512-MZnTk9wcJai5lTfkC8T1rr6/M9C4eO0DfojZghopZXDflCTndLPIKcudx6E8qfrmZOkRSqMIwB7A8UFs7f+3Kg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-3.3.0.tgz", + "integrity": "sha512-6G+LcCiQBl4Kza5mDbWbf8QSWBTW3l7SDjGhQzMO1ITtQatHzxkuHGHcJ4CTUJvNA0JmKf4QJWOvlFqEmxwyLQ==", "dev": true, "requires": { "@types/offscreencanvas": "~2019.3.0", @@ -4141,9 +4141,9 @@ } }, "@tensorflow/tfjs-data": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-3.2.0.tgz", - "integrity": "sha512-fG4rYJlxh/B9fzgc+/qdj5gPI485RsDUM99mErxovlh3UMIdRgMeHHdFse44VlyAShEAgsOehuWovhY5520kEw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-3.3.0.tgz", + "integrity": "sha512-0x28tRe6RJu5GmYq3IYN2GNnOgXU0nY+o6zZrlijkK+W3vjSTJlZzaBSifoeD6J8gzVpjs8W8qd/JKHQ1MQp8w==", "dev": true, "requires": { "@types/node-fetch": "^2.1.2", @@ -4151,19 +4151,19 @@ } }, "@tensorflow/tfjs-layers": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-3.2.0.tgz", - "integrity": "sha512-TgTpH6RI+NmL4s8pQ76wkq15p79SfSQLOfFL2rGmJgatQRuA/mxLlH5GLir5HwwER3a0Vj8lMbexxCAGTqr2Xg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-3.3.0.tgz", + "integrity": "sha512-qO+TL2I29vWUiuFcQJXNyayWFYagwR+SIfbex8p5jjYaCGHGwE5GQcrH+ngoCgKZxm5tdMvYJsJPnih2M3fYzQ==", "dev": true, "requires": {} }, "@tensorflow/tfjs-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-node/-/tfjs-node-3.2.0.tgz", - "integrity": "sha512-4k8HvT+lFauy30EMoKhLvXykQ4xKfi5yTs0EdWue80z9XNNDIMG3932owBpWMeaRb5P0ONUuv9MSu+pi17rNnA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-node/-/tfjs-node-3.3.0.tgz", + "integrity": "sha512-grRgaXereQt5mQnu31gHCPkzA6SGReXW94b5FEMk1Psenmb0APnT7MGgZbujiMruQ81vG0/8gYA28uyZeZKcJw==", "dev": true, "requires": { - "@tensorflow/tfjs": "3.2.0", + "@tensorflow/tfjs": "3.3.0", "adm-zip": "^0.4.11", "google-protobuf": "^3.9.2", "https-proxy-agent": "^2.2.1", @@ -4185,12 +4185,12 @@ } }, "@tensorflow/tfjs-node-gpu": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-node-gpu/-/tfjs-node-gpu-3.2.0.tgz", - "integrity": "sha512-zAQPT9RwA5KOFFtkRzUGXE+9loJeJWbxkw2OnIPdB8+18c8s6/ICsHpN9nYLhelR+9wl877aaN4wQVR5T7iQDw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-node-gpu/-/tfjs-node-gpu-3.3.0.tgz", + "integrity": "sha512-a641ugrLvVjz2p0eGD0V+jyh9mtxrUSxVvX+aH2aQvOnz4BTFv/zOlPPCI/7D8zIiLBzSJCXMB5DdI3qg92n8Q==", "dev": true, "requires": { - "@tensorflow/tfjs": "3.2.0", + "@tensorflow/tfjs": "3.3.0", "adm-zip": "^0.4.11", "google-protobuf": "^3.9.2", "https-proxy-agent": "^2.2.1", diff --git a/package.json b/package.json index b4761d6..875eb27 100644 --- a/package.json +++ b/package.json @@ -40,10 +40,10 @@ ], "peerDependencies": {}, "devDependencies": { - "@tensorflow/tfjs": "^3.2.0", - "@tensorflow/tfjs-backend-wasm": "^3.2.0", - "@tensorflow/tfjs-node": "^3.2.0", - "@tensorflow/tfjs-node-gpu": "^3.2.0", + "@tensorflow/tfjs": "^3.3.0", + "@tensorflow/tfjs-backend-wasm": "^3.3.0", + "@tensorflow/tfjs-node": "^3.3.0", + "@tensorflow/tfjs-node-gpu": "^3.3.0", "@types/node": "^14.14.33", "@typescript-eslint/eslint-plugin": "^4.17.0", "@typescript-eslint/parser": "^4.17.0", diff --git a/server/build.js b/server/build.js index 319305a..2867feb 100644 --- a/server/build.js +++ b/server/build.js @@ -4,20 +4,17 @@ /* eslint-disable node/no-unpublished-require */ /* eslint-disable node/shebang */ -const fs = require('fs'); const esbuild = require('esbuild'); const ts = require('typescript'); const log = require('@vladmandic/pilogger'); -// keeps esbuild service instance cached -let es; -const banner = ` +const banner = { js: ` /* Face-API homepage: author: ' */ -`; +` }; // tsc configuration const tsconfig = { @@ -46,6 +43,7 @@ const common = { minifySyntax: true, bundle: true, sourcemap: true, + metafile: true, logLevel: 'error', target: 'es2018', // tsconfig: './tsconfig.json', @@ -56,7 +54,6 @@ const targets = { tfjs: { platform: 'node', format: 'cjs', - metafile: 'dist/tfjs.esm.json', entryPoints: ['src/tfjs/tf-node.ts'], outfile: 'dist/tfjs.esm.js', external: ['@tensorflow'], @@ -64,7 +61,6 @@ const targets = { node: { platform: 'node', format: 'cjs', - metafile: 'dist/face-api.node.json', entryPoints: ['src/index.ts'], outfile: 'dist/face-api.node.js', external: ['@tensorflow'], @@ -76,7 +72,6 @@ const targets = { format: 'cjs', entryPoints: ['src/tfjs/tf-node-gpu.ts'], outfile: 'dist/tfjs.esm.js', - metafile: 'dist/tfjs.esm.json', external: ['@tensorflow'], }, node: { @@ -84,7 +79,6 @@ const targets = { format: 'cjs', entryPoints: ['src/index.ts'], outfile: 'dist/face-api.node-gpu.js', - metafile: 'dist/face-api.node-gpu.json', external: ['@tensorflow'], }, }, @@ -92,7 +86,6 @@ const targets = { tfjs: { platform: 'node', format: 'cjs', - metafile: 'dist/tfjs.esm.json', entryPoints: ['src/tfjs/tf-node-cpu.ts'], outfile: 'dist/tfjs.esm.js', external: ['@tensorflow'], @@ -100,7 +93,6 @@ const targets = { node: { platform: 'node', format: 'cjs', - metafile: 'dist/face-api.node-cpu.json', entryPoints: ['src/index.ts'], outfile: 'dist/face-api.node-cpu.js', external: ['@tensorflow'], @@ -112,7 +104,6 @@ const targets = { format: 'esm', entryPoints: ['src/tfjs/tf-browser.ts'], outfile: 'dist/tfjs.esm.js', - metafile: 'dist/tfjs.esm.json', external: ['fs', 'buffer', 'util', 'os', '@tensorflow'], }, esm: { @@ -120,7 +111,6 @@ const targets = { format: 'esm', entryPoints: ['src/index.ts'], outfile: 'dist/face-api.esm-nobundle.js', - metafile: 'dist/face-api.esm-nobundle.json', external: ['fs', 'buffer', 'util', 'os', '@tensorflow', 'tfjs.esm.js'], }, }, @@ -130,7 +120,6 @@ const targets = { format: 'esm', entryPoints: ['src/tfjs/tf-browser.ts'], outfile: 'dist/tfjs.esm.js', - metafile: 'dist/tfjs.esm.json', external: ['fs', 'buffer', 'util', 'os'], }, iife: { @@ -139,7 +128,6 @@ const targets = { globalName: 'faceapi', entryPoints: ['src/index.ts'], outfile: 'dist/face-api.js', - metafile: 'dist/face-api.json', external: ['fs', 'buffer', 'util', 'os'], }, esm: { @@ -147,19 +135,15 @@ const targets = { format: 'esm', entryPoints: ['src/index.ts'], outfile: 'dist/face-api.esm.js', - metafile: 'dist/face-api.esm.json', external: ['fs', 'buffer', 'util', 'os'], }, }, }; -async function getStats(metafile) { +async function getStats(json) { const stats = {}; - if (!fs.existsSync(metafile)) return stats; - const data = fs.readFileSync(metafile); - const json = JSON.parse(data.toString()); - if (json && json.inputs && json.outputs) { - for (const [key, val] of Object.entries(json.inputs)) { + if (json && json.metafile.inputs && json.metafile.outputs) { + for (const [key, val] of Object.entries(json.metafile.inputs)) { if (key.startsWith('node_modules')) { stats.modules = (stats.modules || 0) + 1; stats.moduleBytes = (stats.moduleBytes || 0) + val.bytes; @@ -169,7 +153,7 @@ async function getStats(metafile) { } } const files = []; - for (const [key, val] of Object.entries(json.outputs)) { + for (const [key, val] of Object.entries(json.metafile.outputs)) { if (!key.endsWith('.map')) { files.push(key); stats.outputBytes = (stats.outputBytes || 0) + val.bytes; @@ -204,15 +188,15 @@ function compile(fileNames, options) { // rebuild on file change async function build(f, msg) { log.info('Build: file', msg, f, 'target:', common.target); - if (!es) es = await esbuild.startService(); try { // rebuild all target groups and types for (const [targetGroupName, targetGroup] of Object.entries(targets)) { for (const [targetName, targetOptions] of Object.entries(targetGroup)) { // if triggered from watch mode, rebuild only browser bundle if ((require.main !== module) && (targetGroupName !== 'browserBundle')) continue; - await es.build({ ...common, ...targetOptions }); - const stats = await getStats(targetOptions.metafile); + // @ts-ignore + const meta = await esbuild.build({ ...common, ...targetOptions }); + const stats = await getStats(meta); log.state(`Build for: ${targetGroupName} type: ${targetName}:`, stats); } } diff --git a/server/changelog.js b/server/changelog.js index 2e5a2b2..ab6be02 100644 --- a/server/changelog.js +++ b/server/changelog.js @@ -1,7 +1,10 @@ const fs = require('fs'); const path = require('path'); +// eslint-disable-next-line node/no-unpublished-require, import/no-extraneous-dependencies const dayjs = require('dayjs'); +// eslint-disable-next-line node/no-unpublished-require, import/no-extraneous-dependencies const simpleGit = require('simple-git/promise'); +// eslint-disable-next-line node/no-unpublished-require, import/no-extraneous-dependencies const logger = require('@vladmandic/pilogger'); const app = require('../package.json');